From 63732e48c25d917755d64ba3f159b4520d017018 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 09:24:50 +0800 Subject: [PATCH 001/655] AboutUs.adoc: Updated team members --- docs/AboutUs.adoc | 22 +++++----- docs/images/imarbles.jpg | Bin 0 -> 132990 bytes docs/team/afiq.adoc | 72 +++++++++++++++++++++++++++++++++ docs/team/amabelyeo.adoc | 72 +++++++++++++++++++++++++++++++++ docs/team/ngohwenjun.adoc | 72 +++++++++++++++++++++++++++++++++ docs/team/semjinghan.adoc | 72 +++++++++++++++++++++++++++++++++ docs/team/thangavelsharan.adoc | 72 +++++++++++++++++++++++++++++++++ 7 files changed, 371 insertions(+), 11 deletions(-) create mode 100644 docs/images/imarbles.jpg create mode 100644 docs/team/afiq.adoc create mode 100644 docs/team/amabelyeo.adoc create mode 100644 docs/team/ngohwenjun.adoc create mode 100644 docs/team/semjinghan.adoc create mode 100644 docs/team/thangavelsharan.adoc diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index e647ed1e715a..23abdc0abec2 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -11,7 +11,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team -=== John Doe +=== Afiq image::damithc.jpg[width="150", align="left"] {empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<>] @@ -19,34 +19,34 @@ Role: Project Advisor ''' -=== John Roe +=== Sem Jing Han image::lejolly.jpg[width="150", align="left"] {empty}[http://github.com/lejolly[github]] [<>] -Role: Team Lead + -Responsibilities: UI +Role: Developer + +Responsibilities: - ''' -=== Johnny Doe -image::yijinl.jpg[width="150", align="left"] -{empty}[http://github.com/yijinl[github]] [<>] +=== Amabel Yeo +image::imarbles.jpg[width="150", align="left"] +{empty}[https://github.com/iMarbles[github]] [<>] Role: Developer + -Responsibilities: Data +Responsibilities: - ''' -=== Johnny Roe +=== Thangavel Sharan image::m133225.jpg[width="150", align="left"] {empty}[http://github.com/m133225[github]] [<>] Role: Developer + -Responsibilities: Dev Ops + Threading +Responsibilities: - ''' -=== Benson Meier +=== Ngoh Wen Jun image::yl_coder.jpg[width="150", align="left"] {empty}[http://github.com/yl-coder[github]] [<>] diff --git a/docs/images/imarbles.jpg b/docs/images/imarbles.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b27dcee833062cf53cc6ea491aa36e752d77ef81 GIT binary patch literal 132990 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 N1j@%0QAGfM|Jf551F`@B literal 0 HcmV?d00001 diff --git a/docs/team/afiq.adoc b/docs/team/afiq.adoc new file mode 100644 index 000000000000..59f90d26e1b7 --- /dev/null +++ b/docs/team/afiq.adoc @@ -0,0 +1,72 @@ += Afiq - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +== PROJECT: AddressBook - Level 4 + +--- + +== Overview + +AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +== Summary of contributions + +* *Major enhancement*: added *the ability to undo/redo previous commands* +** What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. +** Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. +** Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. +** Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_ + +* *Minor enhancement*: added a history command that allows the user to navigate to previous commands using up/down keys. + +* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ + +* *Other contributions*: + +** Project management: +*** Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +** Enhancements to existing features: +*** Updated the GUI color scheme (Pull requests https://github.com[#33], https://github.com[#34]) +*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) +** Documentation: +*** Did cosmetic tweaks to existing contents of the User Guide: https://github.com[#14] +** Community: +*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] +*** Contributed to forum discussions (examples: https://github.com[1], https://github.com[2], https://github.com[3], https://github.com[4]) +*** Reported bugs and suggestions for other teams in the class (examples: https://github.com[1], https://github.com[2], https://github.com[3]) +*** Some parts of the history feature I added was adopted by several other class mates (https://github.com[1], https://github.com[2]) +** Tools: +*** Integrated a third party library (Natty) to the project (https://github.com[#42]) +*** Integrated a new Github plugin (CircleCI) to the team repo + +_{you can add/remove categories in the list above}_ + +== Contributions to the User Guide + + +|=== +|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._ +|=== + +include::../UserGuide.adoc[tag=undoredo] + +include::../UserGuide.adoc[tag=dataencryption] + +== Contributions to the Developer Guide + +|=== +|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._ +|=== + +include::../DeveloperGuide.adoc[tag=undoredo] + +include::../DeveloperGuide.adoc[tag=dataencryption] + + +== PROJECT: PowerPointLabs + +--- + +_{Optionally, you may include other projects in your portfolio.}_ diff --git a/docs/team/amabelyeo.adoc b/docs/team/amabelyeo.adoc new file mode 100644 index 000000000000..800f8f138ec5 --- /dev/null +++ b/docs/team/amabelyeo.adoc @@ -0,0 +1,72 @@ += Amabel Yeo - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +== PROJECT: AddressBook - Level 4 + +--- + +== Overview + +AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +== Summary of contributions + +* *Major enhancement*: added *the ability to undo/redo previous commands* +** What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. +** Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. +** Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. +** Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_ + +* *Minor enhancement*: added a history command that allows the user to navigate to previous commands using up/down keys. + +* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ + +* *Other contributions*: + +** Project management: +*** Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +** Enhancements to existing features: +*** Updated the GUI color scheme (Pull requests https://github.com[#33], https://github.com[#34]) +*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) +** Documentation: +*** Did cosmetic tweaks to existing contents of the User Guide: https://github.com[#14] +** Community: +*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] +*** Contributed to forum discussions (examples: https://github.com[1], https://github.com[2], https://github.com[3], https://github.com[4]) +*** Reported bugs and suggestions for other teams in the class (examples: https://github.com[1], https://github.com[2], https://github.com[3]) +*** Some parts of the history feature I added was adopted by several other class mates (https://github.com[1], https://github.com[2]) +** Tools: +*** Integrated a third party library (Natty) to the project (https://github.com[#42]) +*** Integrated a new Github plugin (CircleCI) to the team repo + +_{you can add/remove categories in the list above}_ + +== Contributions to the User Guide + + +|=== +|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._ +|=== + +include::../UserGuide.adoc[tag=undoredo] + +include::../UserGuide.adoc[tag=dataencryption] + +== Contributions to the Developer Guide + +|=== +|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._ +|=== + +include::../DeveloperGuide.adoc[tag=undoredo] + +include::../DeveloperGuide.adoc[tag=dataencryption] + + +== PROJECT: PowerPointLabs + +--- + +_{Optionally, you may include other projects in your portfolio.}_ diff --git a/docs/team/ngohwenjun.adoc b/docs/team/ngohwenjun.adoc new file mode 100644 index 000000000000..b7fe0e02ead1 --- /dev/null +++ b/docs/team/ngohwenjun.adoc @@ -0,0 +1,72 @@ += Ngoh Wen Jun - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +== PROJECT: AddressBook - Level 4 + +--- + +== Overview + +AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +== Summary of contributions + +* *Major enhancement*: added *the ability to undo/redo previous commands* +** What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. +** Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. +** Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. +** Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_ + +* *Minor enhancement*: added a history command that allows the user to navigate to previous commands using up/down keys. + +* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ + +* *Other contributions*: + +** Project management: +*** Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +** Enhancements to existing features: +*** Updated the GUI color scheme (Pull requests https://github.com[#33], https://github.com[#34]) +*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) +** Documentation: +*** Did cosmetic tweaks to existing contents of the User Guide: https://github.com[#14] +** Community: +*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] +*** Contributed to forum discussions (examples: https://github.com[1], https://github.com[2], https://github.com[3], https://github.com[4]) +*** Reported bugs and suggestions for other teams in the class (examples: https://github.com[1], https://github.com[2], https://github.com[3]) +*** Some parts of the history feature I added was adopted by several other class mates (https://github.com[1], https://github.com[2]) +** Tools: +*** Integrated a third party library (Natty) to the project (https://github.com[#42]) +*** Integrated a new Github plugin (CircleCI) to the team repo + +_{you can add/remove categories in the list above}_ + +== Contributions to the User Guide + + +|=== +|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._ +|=== + +include::../UserGuide.adoc[tag=undoredo] + +include::../UserGuide.adoc[tag=dataencryption] + +== Contributions to the Developer Guide + +|=== +|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._ +|=== + +include::../DeveloperGuide.adoc[tag=undoredo] + +include::../DeveloperGuide.adoc[tag=dataencryption] + + +== PROJECT: PowerPointLabs + +--- + +_{Optionally, you may include other projects in your portfolio.}_ diff --git a/docs/team/semjinghan.adoc b/docs/team/semjinghan.adoc new file mode 100644 index 000000000000..a9310ed4ccdb --- /dev/null +++ b/docs/team/semjinghan.adoc @@ -0,0 +1,72 @@ += Sem Jing Han - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +== PROJECT: AddressBook - Level 4 + +--- + +== Overview + +AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +== Summary of contributions + +* *Major enhancement*: added *the ability to undo/redo previous commands* +** What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. +** Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. +** Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. +** Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_ + +* *Minor enhancement*: added a history command that allows the user to navigate to previous commands using up/down keys. + +* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ + +* *Other contributions*: + +** Project management: +*** Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +** Enhancements to existing features: +*** Updated the GUI color scheme (Pull requests https://github.com[#33], https://github.com[#34]) +*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) +** Documentation: +*** Did cosmetic tweaks to existing contents of the User Guide: https://github.com[#14] +** Community: +*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] +*** Contributed to forum discussions (examples: https://github.com[1], https://github.com[2], https://github.com[3], https://github.com[4]) +*** Reported bugs and suggestions for other teams in the class (examples: https://github.com[1], https://github.com[2], https://github.com[3]) +*** Some parts of the history feature I added was adopted by several other class mates (https://github.com[1], https://github.com[2]) +** Tools: +*** Integrated a third party library (Natty) to the project (https://github.com[#42]) +*** Integrated a new Github plugin (CircleCI) to the team repo + +_{you can add/remove categories in the list above}_ + +== Contributions to the User Guide + + +|=== +|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._ +|=== + +include::../UserGuide.adoc[tag=undoredo] + +include::../UserGuide.adoc[tag=dataencryption] + +== Contributions to the Developer Guide + +|=== +|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._ +|=== + +include::../DeveloperGuide.adoc[tag=undoredo] + +include::../DeveloperGuide.adoc[tag=dataencryption] + + +== PROJECT: PowerPointLabs + +--- + +_{Optionally, you may include other projects in your portfolio.}_ diff --git a/docs/team/thangavelsharan.adoc b/docs/team/thangavelsharan.adoc new file mode 100644 index 000000000000..228de9df876c --- /dev/null +++ b/docs/team/thangavelsharan.adoc @@ -0,0 +1,72 @@ += Thangavel Sharan - Project Portfolio +:site-section: AboutUs +:imagesDir: ../images +:stylesDir: ../stylesheets + +== PROJECT: AddressBook - Level 4 + +--- + +== Overview + +AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +== Summary of contributions + +* *Major enhancement*: added *the ability to undo/redo previous commands* +** What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. +** Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. +** Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. +** Credits: _{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}_ + +* *Minor enhancement*: added a history command that allows the user to navigate to previous commands using up/down keys. + +* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ + +* *Other contributions*: + +** Project management: +*** Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +** Enhancements to existing features: +*** Updated the GUI color scheme (Pull requests https://github.com[#33], https://github.com[#34]) +*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) +** Documentation: +*** Did cosmetic tweaks to existing contents of the User Guide: https://github.com[#14] +** Community: +*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] +*** Contributed to forum discussions (examples: https://github.com[1], https://github.com[2], https://github.com[3], https://github.com[4]) +*** Reported bugs and suggestions for other teams in the class (examples: https://github.com[1], https://github.com[2], https://github.com[3]) +*** Some parts of the history feature I added was adopted by several other class mates (https://github.com[1], https://github.com[2]) +** Tools: +*** Integrated a third party library (Natty) to the project (https://github.com[#42]) +*** Integrated a new Github plugin (CircleCI) to the team repo + +_{you can add/remove categories in the list above}_ + +== Contributions to the User Guide + + +|=== +|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._ +|=== + +include::../UserGuide.adoc[tag=undoredo] + +include::../UserGuide.adoc[tag=dataencryption] + +== Contributions to the Developer Guide + +|=== +|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._ +|=== + +include::../DeveloperGuide.adoc[tag=undoredo] + +include::../DeveloperGuide.adoc[tag=dataencryption] + + +== PROJECT: PowerPointLabs + +--- + +_{Optionally, you may include other projects in your portfolio.}_ From 7990ca1e57a9d17a75cfdada5febf2103880be11 Mon Sep 17 00:00:00 2001 From: Sem Jing Han Date: Tue, 18 Sep 2018 09:26:21 +0800 Subject: [PATCH 002/655] Add About Us picture and entry for Jing Han --- docs/AboutUs.adoc | 9 +++++++++ docs/images/kratious.jpg | Bin 0 -> 30226 bytes 2 files changed, 9 insertions(+) create mode 100644 docs/images/kratious.jpg diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index e647ed1e715a..710d0a536273 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -54,3 +54,12 @@ Role: Developer + Responsibilities: UI ''' + +=== Sem Jing Han +image::kratious.jpg[width="150", align="left"] +{empty}[http://github.com/kratious[github]] [<>] + +Role: Developer + +Responsibilities: UI + +''' diff --git a/docs/images/kratious.jpg b/docs/images/kratious.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2557b52a897501fe54cdf4c289425ab78db4e42 GIT binary patch literal 30226 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 Date: Tue, 18 Sep 2018 09:34:41 +0800 Subject: [PATCH 003/655] Update About Us entry for Jing Han --- docs/AboutUs.adoc | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 3d7236f161e3..80b3058f1679 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -20,8 +20,8 @@ Role: Project Advisor ''' === Sem Jing Han -image::lejolly.jpg[width="150", align="left"] -{empty}[http://github.com/lejolly[github]] [<>] +image::kratious.jpg[width="150", align="left"] +{empty}[http://github.com/kratious[github]] [<>] Role: Developer + Responsibilities: - @@ -54,12 +54,3 @@ Role: Developer + Responsibilities: UI ''' - -=== Sem Jing Han -image::kratious.jpg[width="150", align="left"] -{empty}[http://github.com/kratious[github]] [<>] - -Role: Developer + -Responsibilities: UI - -''' From 90e4374f79048759922f02b94f6caa257f47fa87 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 09:42:33 +0800 Subject: [PATCH 004/655] AboutUs.adoc: Updated portfolio link for everyone --- docs/AboutUs.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 80b3058f1679..40f1b57fe764 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -13,7 +13,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio === Afiq image::damithc.jpg[width="150", align="left"] -{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<>] +{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<>] Role: Project Advisor @@ -30,7 +30,7 @@ Responsibilities: - === Amabel Yeo image::imarbles.jpg[width="150", align="left"] -{empty}[https://github.com/iMarbles[github]] [<>] +{empty}[https://github.com/iMarbles[github]] [<>] Role: Developer + Responsibilities: - @@ -39,7 +39,7 @@ Responsibilities: - === Thangavel Sharan image::m133225.jpg[width="150", align="left"] -{empty}[http://github.com/m133225[github]] [<>] +{empty}[http://github.com/m133225[github]] [<>] Role: Developer + Responsibilities: - @@ -48,9 +48,9 @@ Responsibilities: - === Ngoh Wen Jun image::yl_coder.jpg[width="150", align="left"] -{empty}[http://github.com/yl-coder[github]] [<>] +{empty}[http://github.com/yl-coder[github]] [<>] Role: Developer + -Responsibilities: UI +Responsibilities: - ''' From 2bc4efcf171fda623dd00671d577662d78fdc35a Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 10:53:42 +0800 Subject: [PATCH 005/655] AboutUs.adoc: Updated Github links for everyone --- docs/AboutUs.adoc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 40f1b57fe764..e60fd50d74c5 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -11,11 +11,12 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team -=== Afiq +=== Afiq Latiff image::damithc.jpg[width="150", align="left"] -{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<>] +{empty}[https://github.com/afiqlattif[github]] [<>] -Role: Project Advisor +Role: Developer + +Responsibilities: - ''' @@ -39,7 +40,7 @@ Responsibilities: - === Thangavel Sharan image::m133225.jpg[width="150", align="left"] -{empty}[http://github.com/m133225[github]] [<>] +{empty}[https://github.com/sharan8[github]] [<>] Role: Developer + Responsibilities: - @@ -48,7 +49,7 @@ Responsibilities: - === Ngoh Wen Jun image::yl_coder.jpg[width="150", align="left"] -{empty}[http://github.com/yl-coder[github]] [<>] +{empty}[https://github.com/Scrubbius[github]] [<>] Role: Developer + Responsibilities: - From 6a9fb41e1aad5267d77a4d113cf378375601d3a7 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 10:57:32 +0800 Subject: [PATCH 006/655] AboutUs.adoc: Updated naming --- docs/team/{afiq.adoc => afiqlatiff.adoc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/team/{afiq.adoc => afiqlatiff.adoc} (100%) diff --git a/docs/team/afiq.adoc b/docs/team/afiqlatiff.adoc similarity index 100% rename from docs/team/afiq.adoc rename to docs/team/afiqlatiff.adoc From 5da2d5d6f4ee107cf73e8b97f10e0e775b68e07e Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 11:08:00 +0800 Subject: [PATCH 007/655] AboutUs.adoc: Updated adoc for Afiq --- docs/AboutUs.adoc | 2 +- docs/team/afiqlatiff.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index e60fd50d74c5..2aa39cd96d38 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -13,7 +13,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio === Afiq Latiff image::damithc.jpg[width="150", align="left"] -{empty}[https://github.com/afiqlattif[github]] [<>] +{empty}[https://github.com/afiqlattif[github]] [<>] Role: Developer + Responsibilities: - diff --git a/docs/team/afiqlatiff.adoc b/docs/team/afiqlatiff.adoc index 59f90d26e1b7..692d1c75dffa 100644 --- a/docs/team/afiqlatiff.adoc +++ b/docs/team/afiqlatiff.adoc @@ -1,4 +1,4 @@ -= Afiq - Project Portfolio += Afiq Latiff - Project Portfolio :site-section: AboutUs :imagesDir: ../images :stylesDir: ../stylesheets From 1755ebf1657eaa330822e0953ceeb82225bf34aa Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 11:14:58 +0800 Subject: [PATCH 008/655] Merge branch 'master' of https://github.com/iMarbles/main into W6.10 From c865a6d498262b5e52c26ab9061904c93de78d74 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 12:36:54 +0800 Subject: [PATCH 009/655] UserGuide.adoc: Updated commands for volunteers and shared commands --- docs/UserGuide.adoc | 131 ++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 83 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 7e0070e12f49..6124bdb130d5 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -1,4 +1,4 @@ -= AddressBook Level 4 - User Guide += SocialCare - User Guide :site-section: UserGuide :toc: :toc-title: @@ -12,32 +12,33 @@ ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: endif::[] -:repoURL: https://github.com/se-edu/addressbook-level4 +:repoURL: https://github.com/CS2103-AY1819S1-W16-2/main -By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT` +By: `Team W16-2` Since: `Sept 2018` Licence: `MIT` == Introduction -AddressBook Level 4 (AB4) is for those who *prefer to use a desktop app for managing contacts*. More importantly, AB4 is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB4 can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! +SocialCare morphs the given AB4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. SocialCare is for organizations which *prefer to use a desktop app for managing their volunteers *. More importantly, SocialCare is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialCare can get your volunteer and event management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! == Quick Start . Ensure you have Java version `9` or later installed in your Computer. . Download the latest `addressbook.jar` link:{repoURL}/releases[here]. -. Copy the file to the folder you want to use as the home folder for your Address Book. +. Copy the file to the folder you want to use as the home folder for SocialCare. . Double-click the file to start the app. The GUI should appear in a few seconds. + image::Ui.png[width="790"] + . Type the command in the command box and press kbd:[Enter] to execute it. + e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. +//// . Some example commands you can try: * *`list`* : lists all contacts * **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : adds a contact named `John Doe` to the Address Book. * **`delete`**`3` : deletes the 3rd contact shown in the current list * *`exit`* : exits the app - +//// . Refer to <> for details of each command. [[Features]] @@ -47,8 +48,8 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. *Command Format* * Words in `UPPER_CASE` are the parameters to be supplied by the user e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. -* Items in square brackets are optional e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. -* Items with `…`​ after them can be used multiple times including zero times e.g. `[t/TAG]...` can be used as `{nbsp}` (i.e. 0 times), `t/friend`, `t/friend t/family` etc. +* Items in square brackets are optional e.g `[n/NAME]`. +* Items with `…`​ after them can be used multiple times including zero times e.g. `[t/TAG]...` can be used as `{nbsp}` (i.e. 0 times), `t/charity`, `t/charity t/help` etc. * Parameters can be in any order e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. ==== @@ -56,103 +57,67 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. Format: `help` -=== Adding a person: `add` - -Adds a person to the address book + -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` +=== Switching context : `switch` -[TIP] -A person can have any number of tags (including 0) +Switches context to volunteers or events + +Format: `switch` Examples: -* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` - -=== Listing all persons : `list` +* `switch -e` + +Switches to the event context +* `switch -v` + +Switches to the volunteers context +* `switch -assign` + +Switches to the assigning roles context -Shows a list of all persons in the address book. + -Format: `list` - -=== Editing a person : `edit` +=== Register new volunteer: `add` -Edits an existing person in the address book. + -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...` +Adds a volunteer to the system when in the volunteers context+ +Format: `add n/NAME b/BIRTHDAY g/GENDER a/ADDRESS e/EMAIL p/PHONE_NUMBER [t/TAG]...` **** -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index *must be a positive integer* 1, 2, 3, ... -* At least one of the optional fields must be provided. -* Existing values will be updated to the input values. -* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. -* You can remove all the person's tags by typing `t/` without specifying any tags after it. +* Birthday is in the 'DD-MM-YYYY format' +* A person can have any number of tags (including 0) **** Examples: -* `edit 1 p/91234567 e/johndoe@example.com` + -Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` + -Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. - -=== Locating persons by name: `find` - -Finds persons whose names contain any of the given keywords. + -Format: `find KEYWORD [MORE_KEYWORDS]` +* `add n/John Doe b/05-08-1995 g/M a/Yishun Block 62 p/87183749 e/John@gmail.com` +* `add n/Betty Sue b/31-12-1995 g/M a/Ang Mo Kio Block 62 p/81749272 e/Betty@gmail.com t/Longtime t/Helpful` -**** -* The search is case insensitive. e.g `hans` will match `Hans` -* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` -* Only the name is searched. -* Only full words will be matched e.g. `Han` will not match `Hans` -* Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` -**** +=== Listing all volunteers : `list` -Examples: +Lists all volunteers in the system when in the volunteers context. + +Format: `list` -* `find John` + -Returns `john` and `John Doe` -* `find Betsy Tim John` + -Returns any person having names `Betsy`, `Tim`, or `John` +=== Editing volunteers details : `edit` -=== Deleting a person : `delete` - -Deletes the specified person from the address book. + -Format: `delete INDEX` +Edit details of an existing volunteer in the system when in the volunteers context. + +Format: `edit INDEX [n/NAME] [b/BIRTHDAY] [g/GENDER] [a/ADDRESS] [e/EMAIL] [p/PHONE_NUMBER] [t/TAG]...` **** -* Deletes the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. -* The index *must be a positive integer* 1, 2, 3, ... +* Edits the volunteer at the specified `INDEX`. The index refers to the index number shown in the displayed volunteer list. The index *must be a positive integer* 1, 2, 3, ... +* At least one of the optional fields must be provided. +* Existing values will be updated to the input values. +* When editing tags, the existing tags of the volunteer will be removed i.e adding of tags is not cumulative. +* You can remove all the volunteer's tags by typing `t/` without specifying any tags after it. **** Examples: -* `list` + -`delete 2` + -Deletes the 2nd person in the address book. -* `find Betsy` + -`delete 1` + -Deletes the 1st person in the results of the `find` command. - -=== Selecting a person : `select` +* `edit 1 n/John Doe`+ +Edits the name of the person at index 1 -Selects the person identified by the index number used in the displayed person list. + -Format: `select INDEX` +=== Deleting volunteer details : `delete` -**** -* Selects the person and loads the Google search page the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. -* The index *must be a positive integer* `1, 2, 3, ...` -**** +Deletes details of an existing volunteer in the system when in the volunteer context. + +Format: `delete INDEX` Examples: -* `list` + -`select 2` + -Selects the 2nd person in the address book. -* `find Betsy` + -`select 1` + -Selects the 1st person in the results of the `find` command. +* `delete 1+ +Deletes the details of the person specified at index 1 === Listing entered commands : `history` @@ -167,12 +132,12 @@ Pressing the kbd:[↑] and kbd:[↓] arrows will display the previous and // tag::undoredo[] === Undoing previous command : `undo` -Restores the address book to the state before the previous _undoable_ command was executed. + +Restores the system to the state before the previous _undoable_ command was executed. + Format: `undo` [NOTE] ==== -Undoable commands: those commands that modify the address book's content (`add`, `delete`, `edit` and `clear`). +Undoable commands: those commands that modify the system's content (`add`, `edit`, and `delete`). ==== Examples: @@ -216,7 +181,7 @@ The `redo` command fails as there are no `undo` commands executed previously. === Clearing all entries : `clear` -Clears all entries from the address book. + +Clears all entries from the volunteers or events, depending on context. + Format: `clear` === Exiting the program : `exit` @@ -226,7 +191,7 @@ Format: `exit` === Saving the data -Address book data are saved in the hard disk automatically after any command that changes the data. + +SocialCare data are saved in the hard disk automatically after any command that changes the data. + There is no need to save manually. // tag::dataencryption[] @@ -238,7 +203,7 @@ _{explain how the user can enable/disable data encryption}_ == FAQ *Q*: How do I transfer my data to another Computer? + -*A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder. +*A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous SocialCare folder. == Command Summary From 06625fc5a2149182158d4436051c2f8d547b1fe5 Mon Sep 17 00:00:00 2001 From: Sharan Date: Tue, 18 Sep 2018 15:09:57 +0800 Subject: [PATCH 010/655] AboutUs.adoc: Update adoc for Sharan with sharan8.jpeg --- docs/AboutUs.adoc | 2 +- docs/images/sharan8.jpeg | Bin 0 -> 157315 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/sharan8.jpeg diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 2aa39cd96d38..5f688f57dcf2 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -39,7 +39,7 @@ Responsibilities: - ''' === Thangavel Sharan -image::m133225.jpg[width="150", align="left"] +image::sharan8.jpeg[width="150", align="left"] {empty}[https://github.com/sharan8[github]] [<>] Role: Developer + diff --git a/docs/images/sharan8.jpeg b/docs/images/sharan8.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3aecf1bb189334f6b6bd95dfc5a64e9498742417 GIT binary patch literal 157315 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 r@ Date: Tue, 18 Sep 2018 16:20:08 +0800 Subject: [PATCH 011/655] Add SocialCare initial UI mockup --- docs/images/Ui.png | Bin 86102 -> 154423 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 5ec9c527b49c5c32c294ad629a8ee895a33ce0c7..639f80f7c55d72f38f8cbc0db12dd5572093fce8 100644 GIT binary patch literal 154423 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

n)ke;c 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%0DOLqgf1sw3XL=+)n;NqUa*5bwsB;vtL{?7y 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

Zqm-!E$4_P+|S0j8}Bak^N374M*9=P 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 literal 86102 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

$k`o&0)Hv2ZNtYb2Mz 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 From bc109085f401339fb8a540ba19283046aa1d0c21 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 16:32:59 +0800 Subject: [PATCH 012/655] UserGuide.adoc: Added features to guide --- docs/UserGuide.adoc | 239 ++++++++++++++++++++++++++++---------------- 1 file changed, 152 insertions(+), 87 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 6124bdb130d5..8b80d1d9664f 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -18,7 +18,9 @@ By: `Team W16-2` Since: `Sept 2018` Licence: `MIT` == Introduction -SocialCare morphs the given AB4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. SocialCare is for organizations which *prefer to use a desktop app for managing their volunteers *. More importantly, SocialCare is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialCare can get your volunteer and event management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! +SocialCare morphs the given AB4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. + + +SocialCare is for organizations which *prefer to use a desktop app for managing their volunteers *. More importantly, SocialCare is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialCare can get your volunteer and event management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! == Quick Start @@ -31,14 +33,6 @@ image::Ui.png[width="790"] + . Type the command in the command box and press kbd:[Enter] to execute it. + e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. -//// -. Some example commands you can try: - -* *`list`* : lists all contacts -* **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : adds a contact named `John Doe` to the Address Book. -* **`delete`**`3` : deletes the 3rd contact shown in the current list -* *`exit`* : exits the app -//// . Refer to <> for details of each command. [[Features]] @@ -53,11 +47,83 @@ e.g. typing *`help`* and pressing kbd:[Enter] will open the help window. * Parameters can be in any order e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. ==== -=== Viewing help : `help` +=== General Commands + +==== Viewing help : `help` Format: `help` -=== Switching context : `switch` +==== Listing entered commands : `history` + +Lists all the commands that you have entered in reverse chronological order. + +Format: `history` + +[NOTE] +==== +Pressing the kbd:[↑] and kbd:[↓] arrows will display the previous and next input respectively in the command box. +==== + +// tag::undoredo[] +==== Undoing previous command : `undo` + +Restores the system to the state before the previous _undoable_ command was executed. + +Format: `undo` + +[NOTE] +==== +Undoable commands: those commands that modify the system's content (`add`, `edit`, and `delete`). +==== + +Examples: + +* `delete 1` + +`list` + +`undo` (reverses the `delete 1` command) + + +* `select 1` + +`list` + +`undo` + +The `undo` command fails as there are no undoable commands executed previously. + +* `delete 1` + +`clear` + +`undo` (reverses the `clear` command) + +`undo` (reverses the `delete 1` command) + + +==== Redoing the previously undone command : `redo` + +Reverses the most recent `undo` command. + +Format: `redo` + +Examples: + +* `delete 1` + +`undo` (reverses the `delete 1` command) + +`redo` (reapplies the `delete 1` command) + + +* `delete 1` + +`redo` + +The `redo` command fails as there are no `undo` commands executed previously. + +* `delete 1` + +`clear` + +`undo` (reverses the `clear` command) + +`undo` (reverses the `delete 1` command) + +`redo` (reapplies the `delete 1` command) + +`redo` (reapplies the `clear` command) + +// end::undoredo[] + +==== Clearing all entries : `clear` + +Clears all entries from the volunteers or events, depending on context. + +Format: `clear` + +==== Exiting the program : `exit` + +Exits the program. + +Format: `exit` + +==== Switching context : `switch` Switches context to volunteers or events + Format: `switch` @@ -71,14 +137,16 @@ Switches to the volunteers context * `switch -assign` + Switches to the assigning roles context -=== Register new volunteer: `add` +=== Volunteer Management -Adds a volunteer to the system when in the volunteers context+ +==== Register new volunteer: `add` + +Adds a volunteer to the system when in the volunteers context + Format: `add n/NAME b/BIRTHDAY g/GENDER a/ADDRESS e/EMAIL p/PHONE_NUMBER [t/TAG]...` **** * Birthday is in the 'DD-MM-YYYY format' -* A person can have any number of tags (including 0) +* A volunteer can have any number of tags (including 0) **** Examples: @@ -86,12 +154,12 @@ Examples: * `add n/John Doe b/05-08-1995 g/M a/Yishun Block 62 p/87183749 e/John@gmail.com` * `add n/Betty Sue b/31-12-1995 g/M a/Ang Mo Kio Block 62 p/81749272 e/Betty@gmail.com t/Longtime t/Helpful` -=== Listing all volunteers : `list` +==== Listing all volunteers : `list` Lists all volunteers in the system when in the volunteers context. + Format: `list` -=== Editing volunteers details : `edit` +==== Editing volunteers details : `edit` Edit details of an existing volunteer in the system when in the volunteers context. + Format: `edit INDEX [n/NAME] [b/BIRTHDAY] [g/GENDER] [a/ADDRESS] [e/EMAIL] [p/PHONE_NUMBER] [t/TAG]...` @@ -106,96 +174,78 @@ Format: `edit INDEX [n/NAME] [b/BIRTHDAY] [g/GENDER] [a/ADDRESS] [e/EMAIL] [p/PH Examples: -* `edit 1 n/John Doe`+ -Edits the name of the person at index 1 +* `edit 1 n/John Doe` + +Edits the name of the volunteer at index 1 -=== Deleting volunteer details : `delete` +==== Deleting volunteer details : `delete` Deletes details of an existing volunteer in the system when in the volunteer context. + Format: `delete INDEX` Examples: -* `delete 1+ -Deletes the details of the person specified at index 1 +* `delete 1 + +Deletes the details of the volunteer specified at index 1 -=== Listing entered commands : `history` +=== Event Management -Lists all the commands that you have entered in reverse chronological order. + -Format: `history` +==== Add new event: `add` -[NOTE] -==== -Pressing the kbd:[↑] and kbd:[↓] arrows will display the previous and next input respectively in the command box. -==== +Adds an event to the system when in the event context + +Format: `add n/NAME l/LOCATION sd/START_DATE ed/END_DATE d/DESCRIPTION [t/TAG]...` -// tag::undoredo[] -=== Undoing previous command : `undo` - -Restores the system to the state before the previous _undoable_ command was executed. + -Format: `undo` - -[NOTE] -==== -Undoable commands: those commands that modify the system's content (`add`, `edit`, and `delete`). -==== +**** +* Start date and end dates are in the 'DD-MM-YYYY format' +* An event can have any number of tags (including 0) +**** Examples: -* `delete 1` + -`list` + -`undo` (reverses the `delete 1` command) + +* `add n/Flag Day l/Yishun MRT S sd/31-10-2018 ed/31-10-2018 d/For the children's home` +* `add n/Fundraising l/Tampines S sd/31-09-2018 ed/31-09-2018 d/Raising funds t/fundraiser t/charity` -* `select 1` + -`list` + -`undo` + -The `undo` command fails as there are no undoable commands executed previously. +==== Listing all events : `list` -* `delete 1` + -`clear` + -`undo` (reverses the `clear` command) + -`undo` (reverses the `delete 1` command) + +Lists all events in the system when in the events context. + +Format: `list` -=== Redoing the previously undone command : `redo` +==== Editing event details : `edit` -Reverses the most recent `undo` command. + -Format: `redo` +Edit details of an existing event in the system when in the event context. + +Format: `edit INDEX [n/NAME] [l/LOCATION] [sd/START_DATE] [ed/END_DATE] [d/DESCRIPTION] [t/TAG]...` -Examples: +**** +* Edits the event at the specified `INDEX`. The index refers to the index number shown in the displayed event list. The index *must be a positive integer* 1, 2, 3, ... +* At least one of the optional fields must be provided. +* Existing values will be updated to the input values. +* When editing tags, the existing tags of the event will be removed i.e adding of tags is not cumulative. +* You can remove all the event's tags by typing `t/` without specifying any tags after it. +**** -* `delete 1` + -`undo` (reverses the `delete 1` command) + -`redo` (reapplies the `delete 1` command) + +Examples: -* `delete 1` + -`redo` + -The `redo` command fails as there are no `undo` commands executed previously. +* `edit 1 n/Charity Fun Run t/` + +Edits the name of event at index 1 and removes all tags -* `delete 1` + -`clear` + -`undo` (reverses the `clear` command) + -`undo` (reverses the `delete 1` command) + -`redo` (reapplies the `delete 1` command) + -`redo` (reapplies the `clear` command) + -// end::undoredo[] +==== Deleting event details : `delete` -=== Clearing all entries : `clear` +Deletes details of an existing event in the system when in the event context. + +Format: `delete INDEX` -Clears all entries from the volunteers or events, depending on context. + -Format: `clear` +Examples: -=== Exiting the program : `exit` +* `delete 1+ +Deletes the details of the event specified at index 1 -Exits the program. + -Format: `exit` +=== Miscellaneous -=== Saving the data +==== Saving the data SocialCare data are saved in the hard disk automatically after any command that changes the data. + There is no need to save manually. // tag::dataencryption[] -=== Encrypting data files `[coming in v2.0]` +==== Encrypting data files `[coming in v2.0]` _{explain how the user can enable/disable data encryption}_ // end::dataencryption[] @@ -205,21 +255,36 @@ _{explain how the user can enable/disable data encryption}_ *Q*: How do I transfer my data to another Computer? + *A*: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous SocialCare folder. -== Command Summary +== Commands Summary + +=== General Commands -* *Add* `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...` + -e.g. `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` -* *Clear* : `clear` -* *Delete* : `delete INDEX` + -e.g. `delete 3` -* *Edit* : `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...` + -e.g. `edit 2 n/James Lee e/jameslee@example.com` -* *Find* : `find KEYWORD [MORE_KEYWORDS]` + -e.g. `find James Jake` -* *List* : `list` * *Help* : `help` -* *Select* : `select INDEX` + -e.g.`select 2` +* *Clear* : `clear` * *History* : `history` * *Undo* : `undo` * *Redo* : `redo` +* *Exit* : `exit` +* *Switching Context* : `switch` + +e.g. `switch -e` + +=== Volunteer Management + +* *Add* `add n/NAME b/BIRTHDAY g/GENDER a/ADDRESS e/EMAIL p/PHONE_NUMBER [t/TAG]...` + +e.g. `add n/John Doe b/05-08-1995 g/M a/Yishun Block 62 p/87183749 e/John@gmail.com` +* *List* : `list` +* *Edit* : `edit INDEX [n/NAME][b/BIRTHDAY] [g/GENDER] [a/ADDRESS] [e/EMAIL] [p/PHONE_NUMBER] [t/TAG]...` + +e.g. `edit 2 n/James Lee e/jameslee@example.com` +* *Delete* : `delete INDEX` + +e.g. `delete 3` + +=== Event Management +* *Add* `add n/NAME l/LOCATION sd/START_DATE ed/END_DATE d/DESCRIPTION [t/TAG]...` + +e.g. `add n/Fundraising l/Tampines S sd/31-09-2018 ed/31-09-2018 d/Raising funds t/fundraiser t/charity` +* *List* : `list` +* *Edit* : `edit INDEX [n/NAME] [l/LOCATION] [sd/START_DATE] [ed/END_DATE] [d/DESCRIPTION] [t/TAG]...` + +e.g. `edit 2 n/Fundraiser` +* *Delete* : `delete INDEX` + +e.g. `delete 3` + + From 2723ce6aab5f35478b62ecc76420d46b01850c43 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 18 Sep 2018 17:06:34 +0800 Subject: [PATCH 013/655] UserGuide.adoc: Updated TOC levels --- docs/UserGuide.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 8b80d1d9664f..bb38e7dbb4e9 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -3,6 +3,7 @@ :toc: :toc-title: :toc-placement: preamble +:toclevels: 4 :sectnums: :imagesDir: images :stylesDir: stylesheets @@ -137,6 +138,7 @@ Switches to the volunteers context * `switch -assign` + Switches to the assigning roles context + === Volunteer Management ==== Register new volunteer: `add` From eaca03d17f73acf359aa6dd50607f7c30cd96727 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 18 Sep 2018 17:39:03 +0800 Subject: [PATCH 014/655] Update README.adoc --- README.adoc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/README.adoc b/README.adoc index 450054624f48..667e0bfb10d2 100644 --- a/README.adoc +++ b/README.adoc @@ -1,11 +1,10 @@ -= Address Book (Level 4) += SocialCare ifdef::env-github,env-browser[:relfileprefix: docs/] -https://travis-ci.org/se-edu/addressbook-level4[image:https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master[Build Status]] -https://ci.appveyor.com/project/damithc/addressbook-level4[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]] -https://coveralls.io/github/se-edu/addressbook-level4?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master[Coverage Status]] -https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]] -https://gitter.im/se-edu/Lobby[image:https://badges.gitter.im/se-edu/Lobby.svg[Gitter chat]] +https://travis-ci.org/CS2103-AY1819S1-W16-2/main[image:https://travis-ci.org/CS2103-AY1819S1-W16-2/main.svg?branch=master[Build Status]] +https://ci.appveyor.com/project/Kratious/main[image:https://ci.appveyor.com/api/projects/status/suon744fyw9kqi3x?svg=true[Build status]] +https://coveralls.io/github/CS2103-AY1819S1-W16-2/main?branch=master[image:https://coveralls.io/repos/github/CS2103-AY1819S1-W16-2/main/badge.svg?branch=master[Coverage Status]] +https://www.codacy.com/app/Kratious/main?utm_source=github.com&utm_medium=referral&utm_content=CS2103-AY1819S1-W16-2/main&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/474fa34d8e394186aa0f558eb50060c8[Codacy Badge]] ifdef::env-github[] image::docs/images/Ui.png[width="600"] @@ -15,13 +14,15 @@ ifndef::env-github[] image::images/Ui.png[width="600"] endif::[] -* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). +* This is a desktop social welfare event and volunteer management application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). * It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language. * It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules. -* What's different from https://github.com/se-edu/addressbook-level3[level 3]: -** A more sophisticated GUI that includes a list panel and an in-built Browser. -** More test cases, including automated GUI testing. -** Support for _Build Automation_ using Gradle and for _Continuous Integration_ using Travis CI. +* The target audience is social welfare organisations that want to better manage their volunteers & events, and gain further statistical insights from the data. +** Manage contacts and events faster than a typical mouse/GUI driven app +** Use tags to categorize events and volunteers +** Support more fields for volunteers, such as number of volunteer hours +** View volunteer and event statistics and derive insights from them + == Site Map @@ -33,6 +34,8 @@ endif::[] == Acknowledgements +* This application is based on https://github.com/nus-cs2103-AY1819S1/addressbook-level4[Address Book - Level 4] developed by +the https://se-edu.github.io/docs/Team.html[se-edu] team. * Some parts of this sample application were inspired by the excellent http://code.makery.ch/library/javafx-8-tutorial/[Java FX tutorial] by _Marco Jakob_. * Libraries used: https://github.com/TestFX/TestFX[TextFX], https://bitbucket.org/controlsfx/controlsfx/[ControlsFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/google/guava[Guava], https://github.com/junit-team/junit5[JUnit5] From 0074089456e4fb9d5e047560f8068151581c8ad4 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 18 Sep 2018 18:10:14 +0800 Subject: [PATCH 015/655] Delete LearningOutcomes.adoc --- README.adoc | 1 - docs/LearningOutcomes.adoc | 266 ------------------------------------- 2 files changed, 267 deletions(-) delete mode 100644 docs/LearningOutcomes.adoc diff --git a/README.adoc b/README.adoc index 667e0bfb10d2..ab334bd8d0e5 100644 --- a/README.adoc +++ b/README.adoc @@ -28,7 +28,6 @@ endif::[] * <> * <> -* <> * <> * <> diff --git a/docs/LearningOutcomes.adoc b/docs/LearningOutcomes.adoc deleted file mode 100644 index 83cda0927226..000000000000 --- a/docs/LearningOutcomes.adoc +++ /dev/null @@ -1,266 +0,0 @@ -= Learning Outcomes -:site-section: LearningOutcomes -:toc: macro -:toc-title: -:toclevels: 1 -:sectnums: -:sectnumlevels: 1 -:imagesDir: images -:stylesDir: stylesheets -:repoURL: https://github.com/se-edu/addressbook-level4/tree/master - -After studying this code and completing the corresponding exercises, you should be able to, - -toc::[] - -''' - -== Use High-Level Designs `[LO-HighLevelDesign]` - -Note how the <> describes the high-level design using an _Architecture Diagrams_ and high-level sequence diagrams. - -*Resources* - -* https://se-edu.github.io/se-book/architecture/[se-edu/se-book: Design: Architecture] -* https://se-edu.github.io/se-book/design/introduction/multilevelDesign/[se-edu/se-book: Design: Introduction: Multi-Level Design] - -''' - -== Use Event-Driven Programming `[LO-EventDriven]` - -Note how the <> uses events to communicate with components without needing a direct coupling. Also note how the link:{repoURL}/src/main/java/seedu/address/commons/core/index/EventsCenter.java[`EventsCenter.java`] acts as an event dispatcher to facilitate communication between event creators and event consumers. - -*Resources* - -* https://se-edu.github.io/se-book/architecture/architecturalStyles/eventDriven/[se-edu/se-book: Design: Architecture: Architecture Styles: Event-Driven Architectural Style] - -''' - -== Use API Design `[LO-ApiDesign]` - -Note how components of AddressBook have well-defined APIs. For example, the API of the `Logic` component is given in the link:{repoURL}/src/main/java/seedu/address/logic/Logic.java[`Logic.java`] -image:LogicClassDiagram.png[width="800"] - -*Resources* - -* https://se-edu.github.io/se-book/reuse/apis/[se-edu/se-book: Implementation: Reuse: APIs] - -''' - -== Use Assertions `[LO-Assertions]` - -Note how the AddressBook app uses Java ``assert``s to verify assumptions. - -*Resources* - -* https://se-edu.github.io/se-book/errorHandling/assertions/[se-edu/se-book: Implementation: Error Handling: Assertions] - -=== Exercise: Add more assertions - -* Make sure assertions are enabled in your IDE by forcing an assertion failure (e.g. add `assert false;` somewhere in the code and run the code to ensure the runtime reports an assertion failure). -* Add more assertions to AddressBook as you see fit. - - -''' - -== Use Logging `[LO-Logging]` - -Note <>. - -*Resources* - -* https://se-edu.github.io/se-book/errorHandling/logging/[se-edu/se-book: Implementation: Error Handling: Logging] - -=== Exercise: Add more logging - -Add more logging to AddressBook as you see fit. - - -''' - -== Use Defensive Coding `[LO-DefensiveCoding]` - -Note how AddressBook uses the `ReadOnly*` interfaces to prevent objects being modified by clients who are not supposed to modify them. - -*Resources* - -* https://se-edu.github.io/se-book/errorHandling/defensiveProgramming/[se-edu/se-book: Implementation: Error Handling: Defensive Programming] - -=== Exercise: identify more places for defensive coding - -Analyze the AddressBook code/design to identify, - -* where defensive coding is used -* where the code can be more defensive - -''' - -== Use Build Automation `[LO-BuildAutomation]` - -Note <>. - -*Resources* - -* https://se-edu.github.io/se-book/integration/buildAutomation/what/[se-edu/se-book: Implementation: Integration: Build Automation: What] - -=== Exercise: Use gradle to run tasks - -* Use gradle to do these tasks: Run all tests in headless mode, build the jar file. - -=== Exercise: Use gradle to manage dependencies - -* Note how the build script `build.gradle` file manages third party dependencies such as ControlsFx. Update that file to manage a third-party library dependency. - - -''' - -== Use Continuous Integration `[LO-ContinuousIntegration]` - -Note <>. (https://travis-ci.org/se-edu/addressbook-level4[image:https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master[Build Status]]) - -*Resources* - -* https://se-edu.github.io/se-book/integration/buildAutomation/continuousIntegrationDeployment/[se-edu/se-book: Implementation: Integration: Build Automation: CI & CD] - -=== Exercise: Use Travis in your own project - -* Set up Travis to perform CI on your own fork. - - -''' - -== Use Code Coverage `[LO-CodeCoverage]` - -Note how our CI server <>. (https://coveralls.io/github/se-edu/addressbook-level4?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master[Coverage Status]]) After <> for your project, you can visit Coveralls website to find details about the coverage of code pushed to your repo. https://coveralls.io/github/se-edu/addressbook-level4?branch=master[Here] is an example. - -*Resources* - -* https://se-edu.github.io/se-book/testing/testCoverage/[se-edu/se-book: QA: Testing: Test Coverage] - -=== Exercise: Use the IDE to measure coverage locally - -* Use the IDE to measure code coverage of your tests. - -''' - -== Apply Test Case Design Heuristics `[LO-TestCaseDesignHeuristics]` - -The link:{repoURL}/src/test/java/seedu/address/commons/util/StringUtilTest.java[`StringUtilTest.java`] -class gives some examples of how to use _Equivalence Partitions_, _Boundary Value Analysis_, and _Test Input Combination Heuristics_ to improve the efficiency and effectiveness of test cases testing the link:../src/main/java/seedu/address/commons/util/StringUtil.java[`StringUtil.java`] class. - -*Resources* - -* https://se-edu.github.io/se-book/testCaseDesign/[se-edu/se-book: QA: Test Case Design] - -=== Exercise: Apply Test Case Design Heuristics to other places - -* Use the test case design heuristics mentioned above to improve test cases in other places. - -''' - -== Write Integration Tests `[LO-IntegrationTests]` - -Consider the link:{repoURL}/src/test/java/seedu/address/storage/StorageManagerTest.java[`StorageManagerTest.java`] class. - -* Test methods `prefsReadSave()` and `addressBookReadSave()` are integration tests. Note how they simply test if The `StorageManager` class is correctly wired to its dependencies. -* Test method `handleAddressBookChangedEvent_exceptionThrown_eventRaised()` is a unit test because it uses _dependency injection_ to isolate the SUT `StorageManager#handleAddressBookChangedEvent(...)` from its dependencies. - -Compare the above with link:{repoURL}/src/test/java/seedu/address/logic/LogicManagerTest.java[`LogicManagerTest`]. Some of the tests in that class (e.g. `execute_*` methods) are neither integration nor unit tests. They are _integration + unit_ tests because they not only check if the LogicManager is correctly wired to its dependencies, but also checks the working of its dependencies. For example, the following two lines test the `LogicManager` but also the `Parser`. - -[source,java] ----- -@Test -public void execute_invalidCommandFormat_throwsParseException() { - ... - assertParseException(invalidCommand, MESSAGE_UNKNOWN_COMMAND); - assertHistoryCorrect(invalidCommand); -} ----- - -*Resources* - -* https://se-edu.github.io/se-book/testing/testingTypes/[se-edu/se-book: QA: Testing: Testing Types] - -=== Exercise: Write unit and integration tests for the same method. - -* Write a unit test for a high-level method somewhere in the code base (or a new method you wrote). -* Write an integration test for the same method. - -''' - -== Write System Tests `[LO-SystemTesting]` - -Note how tests below `src/test/java/systemtests` package (e.g link:{repoURL}/src/test/java/systemtests/AddCommandSystemTest.java[`AddCommandSystemTest.java`]) are system tests because they test the entire system end-to-end. - -*Resources* - -* https://se-edu.github.io/se-book/testing/testingTypes/[se-edu/se-book: QA: Testing: Testing Types] - -=== Exercise: Write more system tests - -* Write system tests for the new features you add. - -''' - -== Automate GUI Testing `[LO-AutomateGuiTesting]` - -Note how this project uses TextFX library to automate GUI testing, including <>. - -=== Exercise: Write more automated GUI tests - -* Covered by `[LO-SystemTesting]` - -''' - -== Apply Design Patterns `[LO-DesignPatterns]` - -Here are some example design patterns used in the code base. - -* *Singleton Pattern* : link:{repoURL}/src/main/java/seedu/address/commons/core/EventsCenter.java[`EventsCenter.java`] is Singleton class. Its single instance can be accessed using the `EventsCenter.getInstance()` method. -* *Facade Pattern* : link:{repoURL}/src/main/java/seedu/address/storage/StorageManager.java[`StorageManager.java`] is not only shielding the internals of the Storage component from outsiders, it is mostly redirecting method calls to its internal components (i.e. minimal logic in the class itself). Therefore, `StorageManager` can be considered a Facade class. -* *Command Pattern* : The link:{repoURL}/src/main/java/seedu/address/logic/commands/Command.java[`Command.java`] and its sub classes implement the Command Pattern. -* *Observer Pattern* : The <> used by this code base employs the Observer pattern. For example, objects that are interested in events need to have the `@Subscribe` annotation in the class (this is similar to implementing an `\<>` interface) and register with the `EventsCenter`. When something noteworthy happens, an event is raised and the `EventsCenter` notifies all relevant subscribers. Unlike in the Observer pattern in which the `\<>` class is notifying all `\<>` objects, here the `\<>` classes simply raises an event and the `EventsCenter` takes care of the notifications. -* *MVC Pattern* : -** The 'View' part of the application is mostly in the `.fxml` files in the `src/main/resources/view` folder. -** `Model` component contains the 'Model'. However, note that it is possible to view the `Logic` as the model because it hides the `Model` behind it and the view has to go through the `Logic` to access the `Model`. -** Sub classes of link:{repoURL}/src/main/java/seedu/address/ui/UiPart.java[`UiPart`] (e.g. `PersonListPanel` ) act as 'Controllers', each controlling some part of the UI and communicating with the 'Model' (via the `Logic` component which sits between the 'Controller' and the 'Model'). -* *Abstraction Occurrence Pattern* : Not currently used in the app. - -*Resources* - -* https://se-edu.github.io/se-book/designPatterns/[se-edu/se-book: Design: Design Patterns] - -=== Exercise: Discover other possible applications of the patterns - -* Find other possible applications of the patterns to improve the current design. e.g. where else in the design can you apply the Singleton pattern? -* Discuss pros and cons of applying the pattern in each of the situations you found in the previous step. - -=== Exercise: Find more applicable patterns - -* Learn other _Gang of Four_ Design patterns to see if they are applicable to the app. - -''' - -== Use Static Analysis `[LO-StaticAnalysis]` - -Note how this project uses the http://checkstyle.sourceforge.net/[CheckStyle] static analysis tool to confirm compliance with the coding standard. - -*Resources* - -* https://se-edu.github.io/se-book/qualityAssurance/staticAnalysis/[se-edu/se-book: QA: Static Analysis] - -=== Exercise: Use CheckStyle locally to check style compliance - -* Install the CheckStyle plugin for your IDE and use it to check compliance of your code with our style rules (given in `/config/checkstyle/checkstyle.xml`). - -''' - -== Do Code Reviews `[LO-CodeReview]` - -* Note how some PRs in this project have been reviewed by other developers. Here is an https://github.com/se-edu/addressbook-level4/pull/147[example]. -* Also note how we have used https://www.codacy.com[Codacy] to do automate some part of the code review workload (https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]]) - - -=== Exercise: Review a PR - -* Review PRs created by team members. From b61f7d44b4c7b2e585a159d59211f64e73b199e2 Mon Sep 17 00:00:00 2001 From: Afiq Lattif Date: Wed, 19 Sep 2018 07:04:46 +0800 Subject: [PATCH 016/655] AboutUs.adoc: Update adoc for Afiq with afiqlattif.jpg --- docs/AboutUs.adoc | 4 ++-- docs/images/afiqlattif.jpg | Bin 0 -> 543640 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs/images/afiqlattif.jpg diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 5f688f57dcf2..8b3cf8e444f4 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -11,8 +11,8 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team -=== Afiq Latiff -image::damithc.jpg[width="150", align="left"] +=== Afiq Lattif +image::afiqlattif.jpg[width="150", align="left"] {empty}[https://github.com/afiqlattif[github]] [<>] Role: Developer + diff --git a/docs/images/afiqlattif.jpg b/docs/images/afiqlattif.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f0e4b043f3b07483700b85e80a9c672c181e200 GIT binary patch literal 543640 zcmeFa2S60dnl?NzNRBdOBxeL935dgx1e7F_5fDUjMsh|#vZNtM zWyXV{e_p^rTe!Hr=s^6#Hs(z}vy1AXXT?P=TDyk>~P*4B> zW#kWVy8?(+@OQKW05miJoB#j-3xE>s2tY$h$Rq$!qz3>{b5MT|L4TA3{9VRQ_$?MK z0SG`vN~B2dnw0pPj3&S*4EUq7`1!!1;(TJ_U@!R7&BZ#xDH^|!7-qBTx@t~=V5#(qi#b_v`!KdMV z-`2rVIndKqFHrL#B+wZmX2U2W4U+U1_jhr3vGslg@^^Xc>LutFfSwM zw4e~KQBK&H!=mc zSAeVcBY$pJFQ(sfcwp-V@pN?ec64(E{mk)^wVRK(6eA-qvIO407V%U3n{Lv-U&F8c zF9d!e@C$)o2>e3e7XtqmA@Fy0Wb2BgM1Dx_bGru+)pl_6cJp#@a|a3V@Bu{SRW#6k zvOA>vO=kH`B$}jy&c*|((6&OcU+tdDhup5B3aZ?{Z>g=TrKqB=@Ec)7Wq#!D{`lv~ zF0S65x=QjOBV!W~<_Z84`NId013-@;UhZ<*+Uh^^{C)ph{(sw?PW{F!0TbLm^BSN| z31@jqq#^qH&X>>IWZ{2H_KyV|8zd`2MqMGjEyUf^8%a`akTR2>xBE{y1}T$zA}

    n-#0RU)s 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 z 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

    4jN~sd0AriYD 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

    0fHsMybv;Mx3H%X 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
    vCDxE&(NQWsjFK^=f)oM`NcZw&3whLu6f`)kw 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

    2UPD3#P*w==qj{Pj&JF<+c**f~ zwNM)(A@ATXTy5cfn((MB=r6d}~vQKdj?H2@?kP5+ce!-i^ zBC7hX!P~a6ASt9zJPyB{I^^7)*X=!3+5uU4cRNTq6HMY$DKQ_0tt5;_ymvejg%cvS zKtTIqK<93=qO*G<$Vo33IcKvun}`Fx)Rn>~y${ay2+e#|UFmYJ1vD~S-Idk%A7Im( z8>nU&8hWoUaZAQJd{(t<08bYise70E;gO5~PM7A_88iIOnnhw*{^wb1NenF2%0h}k zFcA?n0V_lqid5HQuAW#FDe{aRwA+Tx`jt7?D*Ih~q@4S$&{EOG{%6f9I5iXdr&QLj z<@ys5gkzS2>2WL0SAnSI%MzAw%DOrFl{p=xZJvTbk~!(Ke=}_g@zA6H9V_z{+3@1# z8aZ6a<52R$7%#3{cxC8ftu9uzNP`GZu@Fj}p^NRyaodSjfz+N_B!6Nu;;W%E@${$Z zaO%3eVW|QionQjR{B@=rb31sy*aSr3GhC%ipS}IN@`vQi3xe(G$Mhijy*V@@YX8fVkm<0u9kFqt73D{uG7l8gc01wVN!eG!oQt%$gjJ=8EpTH%0#rj zl+aN+hrCW5=Oe(Me+Y#y*_8ekwO`_GX0&Vy*+) zjesXbm0Q!F=d-ULWOhmlv3(Z~VCs-;^%w=Cg!E^Uu0Hj3BD4JBhQXBh)qhf^k4`C< z7ioH%-q=8Lunrm&OC#M8=ZC_oIcF?ZNkUFPI*m{%c6Cf(C4^CTqwvZi#D!Ey72E*_)XWnCwtcpCz=0m zWRJ#Jeq=}T@t3jg;xfcgL;i9lDxYdkUOd!TAof(u!Nh2F2t3+!`p)Q~Edy7RU7U?1 z6BNrmbG2r)?(&gWJ^SA+p@swF-6JywXa7nw0CB*SKdfuAB^hcdO8Gsc z6sd49nuX&tO`vqh7Sx@WOidDor-74)4Sk~LYb+X`xl+7$Gr?I>;@c!(LMQSmpN;UF zyns^GtWfaXgAK^g;=q{giW3Yw{8QyG+ebx`>`sd4abU0?AmcPgs&b$liBgGQ8m8>s z+$`tfY3230M-=YUqYMjPRXS83h&+F`NcO*?1i$+)?qHekve&Y3alDdC{n*KWf9KJ1 zS_}UJA*@QcAUP4PXchzko+zD4mVHT(IE&K(b^7mr;#*$O=TNShy_*hldEygi;#GI$ z@EhR;F`NaEh0^S=5=&<}8ud)PFFkazL7HhoWCHC=#%A;Bp6B7t>&R}yYR(8j+y~{J z`#bM*z+KiB9J2`UP7olqxFo5(Rjv<=HsuA>eNv! zVLQ09KE{LVl@+X3TK~%(y%QGJ&O$<7{)peQ4nUcHW9+$*>kLvEIF>v}vT;b>Ozn;C zfLC%JJrX=4ZL>g2`#&G-KKIScp9@nAtbd3XUD|Fr;ha(w++=c^YG5_`dp_MlQ#*Elh@pzVB^5zot@=6<%ZZX+~(V*lai zD3E>Xrb+Qpm0z&c$m5t1T}(LU!YwK-R=JJ$`rOB&!if8-qrZBrs_M1P@=LIDTzZmh z+};miUh=new7-ann{bZxAuGQa%lzJfDV*+O&6>X4x4{+*k92q*=kjvGh&pq~-bGM${0jE3z z{oMfli(7KN{@m(w(RFGTod=cQ>YgOi&V5oDaEmA5yUkznO6-mm`cbDO zMeYjRRJ|hhjl2QtcOXcyBDQ{ten?zL1lNH0AtW|3FshpE&`Sq{6zh*PaSQO|#&x zqT0$-jP&u#?#q1cj~!`NJGBIKIC%{y+ucf%HY8Lg*H7|wbuXq^8lgD=8}8+oUlDm% zE>Dtk*A7`bJ^i;qBUl=qgvc)0P(Z=-ApkbUF!QA4B4?cqPlbWtLAcPb%wA>O|! zOzn!r8tuPNxlAXMcWE2})#-wyy!}L3xjQ|VkLhyZn%7%97OJ+}Xm|>W3TOviw8BgyV)|@32T#&DGO@cw#D59S zYejb&hjvb@adQwU3VuNbUEUvBCQvL(ANJR(FxHxE4|BzTz_LG^(aQXRsZMlwU@lP% z*Zq$x{yOF#^Lq~V#Si`}KZlE>F=aFHSSsdd0W67sB4_tbMvUl89ES5gehL3eQ&x0|cn zcF)n?eWW8vt?ZundsCvM*R{HAOl4pYUO!)?LNjE>w&#%-w)4MnBQXQ;idwywH9VH; z7NYrQPz4Ro()YnR7{ykQU>`9-W(yXd1QUMSCrF9|M|VTb!E;r(i$ViOfAJGj*L?`6 z;osY^9*1Wrx4^i7xbJRRzlb?}CK`?D+9qQ4~p&J_&d@&i$qaTn$iTg9j@BeCaJ4nshwy2r{3pPW2q7(Bc-|Kxm8 zGi{!Gi~1rcyjje` z`6OtTEa6}m@K35jqrAQ=4b@Bond#D#$-7b9PxA}G=wsR5%9VNF3s;N~R+_tgn?O@L1qNn@iEuxTuK>HXeSXBMvh8+A|p;0?o3Q zO6?Hf!V`GU07H;QgART4=To~LcbJe!y!J(RGM**1I{KJ#xy#BA7R#%S1=>QxOB+=% zeYu67{M+kaQ{b*3U^=g&tzS8&4_q&r}Y*g$W8-Q%9vT-K}Q8Q}>X z9V;H1eVtt#dhckEWJ4Nf4h%u!zHm7&5}ac^{ZzBFWEgKxg5-!xpI%*3M%CXE4a~6@ z2F7S+`yacPNTz?Cbzctjhap`QbWd12O@p9dC=;0wl-`o=8GWJ6OZ!qzM=y|QOJ$kB z{<&O{uQ!$Y)O(8-?7PPQVO%sA2W2vUQS^!C7UgE1y+lzb8FFRCwuzrDYUR%?e3N~J zcjbVw>SM$zrr%cTPJynM{VX(-}0HQ{OKUf^3dTfxU2WlWL%nWmJMOoW_QgRt+26hEw?s1q2AE%^l{2e(`HCG#Yc9tg^olLPt0^0aawH&>!f25p? zXwIM8n5FE@ft;5|brosz6A6NM!5S6SzaEqZ267m)ywqjqDn%f;Ve@o$#jNn@msH?! zH5*+-m9lf;g3_^;bBbx(<} z4B(7_iEKd?a%tYmyp}J?|0}XaKnx?#n<&@$rTq4DlitJ0!Cs0L(=ZeJ)ohWI62VD= z@hOx-pa={{KtAk;r?jj{rkdRYFIHvWz}FeWM18)?N8DpO=#hR!+|=yh5H@=7kIPk6 z&47HeJvf4kMK;9~w3B}Q&fe_((0j+p4_ZFUjWHDWb5N?i?)0MC0SCJtkgUTnOX=TV z+hOmorxui!N8j#!7&?BChw~A%G$u0Ga38v}j@P3gA8YgDR%~zx$iKkrFvCdW@~4Sk z^C1JPv{+_`O7b9-gTPd5J$^*^5rRCJscWnzF#Eem!d^eh2sJgDcKeC)6tVm0qXr~a z#o!GcXr5p2#byo8<*mVTl75*L-Ix-Uzk$;zy%(vTmF7kynah7uw}|Z+Y<_!r(dCe| zA?2(6+P7wfl7}>5|1Lg0=8ssV=k0lSxm24{t(FD}RQG`HF!FJ{8smUp%f&WaJBrKu zn!5Zc`4sV2p1dX+c?L-V^T)EU6xLK-7YaMa^Vbi0;`@lT?Sr`}rdg*MoOP#J&m!z8=g!r$g>q-ql!MP}wz;VX06#x->@k`pwDhOc{>R`Qq|7+%ZXt*saG27Qh>^6Fe2sb9^akf$&?#zx6S zuiG{{;{w;2U0+zJUu?`irV2P%HSauKv+x9CppY8#0b@~D7g})}E3HA3tec!BFiT{6 zMavJof<`>09ibteWbyY~Sxh1=oWvXQP-u(aV>qY|)gn zEofua0mzNrf;mRcohuILV&;tOdJa$=%?b7RpxGH5dd>N`1Rl9X9h$^|3%R{4~^1Q}y#w%F!v)Y0G8f=)lb(4(*Q$WUo1b-!qv`QUR zYKS9&li3<9LaeOi&Ef!IyXVjxp*Y?9?WzZ?o$OJ2D(n0&3!5j7oH|)6`px=^jzKk4 z1b@LGCG7pspu~6II^9kn4R3Yzn@UW0d`2L*wqNejq1$BsffAf~DxhR3U@tmz?|;X! zlopCXpa3on(mQtW&*xA%jNWtF*G|^ar)(&5`SQRP>Y9_xnODvEJqHev&|bMd4%j@l zz+Bv(uII3=Wa?WYqNe8(1UCr%^=pv7Ugc0H|NBePzpLNVB?#KYmy|Co%jU~<;h%)u z-~VAM@Rx{85fV+=re7J2^rD~9PU8VpTKx={)nhvOm4ezlTA`7!{C?OVDXwtNg|D7Y zfl7$*ru@q|6E#Sx`Z&+t8aJb+&y)hv=Nkuw@^1z#sq>vlo)AbQ?E?_?y>(#O#vxvEKRfpwK&~) z`t$^T1m{^YLL++pD+_mj!AVK9#7?)3A)EEJhy{;6$9#)5A;c-BW)b$e&#_ZwF!^ohBng#GAz*kT`|1ZTpnEmmjD8XNu^W?3_s<_U-1<%n zHvDR~@<{f51rm>)ky`V(10D*<(vDBO<~|Xo)3J5@q91Wx5@XhC)XH0&tUAu{uYFXI zphk_(VMAp9$Qt1^uoHilGy8xxDSaNvCCBs&Ai{BE4O5Z~_G(pqOqBhP!^Dr6GUb)#6Js zLk!Yv7e7ih8BH5s*5XlYJuvH8r3yTOW=%^|D%Dk1SxdP=PvSVI0S&Zf05Rrs^47hB*`s5{HOY=Ni16!-F{f@6i z>Prn*veH1w?0;D4UXOJ2|ICJ?-bq%&l=0+yeMO`n; zR1=4Tn3*6sHHM>(hfU=Bls}oiOkJbL(^Gp7wHY;dsvZ9?#4R-XnbnAH`C4K1H^%t) zyt=sug(;sToU^ynQA`!azmdfws)a7(1Li8mXZqJqZr2JcBm0ylld6ONS~Wy?*_0A4Jf_KC6LImZ~5EBNHjN;3=KC9mcB4xU+9^{Qk~9Nfo`SuTdKAqc2O2Oy-8H(zb*3#g;zme)!(-cgdap#$+z+k-aGuA`#e1B??X(}fU) zB)Z6liXV4J>S_Fd(_BP1H7mNb3;b3f$)yhWcA)~AXJDlhCsW6mnJ!I41(^7m%4qk{ zVg&-=YX&^n*^Mu!zBcUWvdrrP&3*W71M**+EQHAbn`Xp`m7c)lt3KU6y$tO>k@OA- zTHrVSQYb67Xky2}8cZjbt;BPa|BhA`_m*=X;GDsq3B<9tF8~U#&@+btboV>1G#g^L zW^Cw0{wsYXRH@~Bi~yX&`NT;&miv+TtLQPhzDC#{cO<==809%`EX z?gXgzZ}R%XEv2pnG(VJo)syC91*k#1U$^kTQqy=+qf_vp_TLWEj#Sb-4GH->8^rjf znRX)Z;BA={p1R;X6d`LRpQ}FXaG<^m3GR0?le7MB+dj5~bM~{DN7e};HiDegF3MT` z>pW62GNaDAG;v4rOr1bc-1M-Bf&UoeO->r2!M=B1_Xx)OiQcRjub_r^nQ*WWqqr_d z0E?!f+BUu!o0x;34*4T|$zT>H86Zxy~~={pkd zc6`0o`T?Sq<}ohczQZe12h7MxsgLh((R|4{S%?2JK1<;Y1_Fb`ikhdH@;bS2{1o4( zqC5?Yb0r2AQ*}$J%c+BeYj28`Y$SHNQD3RY0uK169P|mGfM)$F3|lbZ2mUE&!{p3M zEcK20a|0O|K3tNQPc(w@^~zhD$DRp}BJJ+yh-rXUV`QCO^KG&iKcE*hGFMD)t1u{g zp78qX*&*Wk4X)@Ry14zzUo#i{BIZoyIv~(4fo-jq@j)*Y8;?Txv|Gbhl-E4zdckBu{BQ9Q@fw=}M_-H-5!;M<-5%m$YOJ<e}<~rHUF7Vmm z@hbdb>`bxaLyZAWO1mUJ`%m_gi{Do@*QT%V068m|Aw&G~aLCFE?0J^2o91rx326(j z6*T52;ilMTzQ2BZ3bZG}L`WniaUNU5S8&sG_zPjG`+4ZaolvD0A5e(;ScTn%=PlE+~d@6#U0))<7bl|9?qZf+4VoG*^9Qp(4F_aip~=MmJtvgy|utqr-R8r ziyb`nLjA=3k=vTjEvNdPJn#?Uz&Xz}t&O^?P}kvi2IVI4P)Lkv_n;5Hn>SO>&=UYk zqhuelXqM;MB2F_%oZXaDHgRm)E#XX$ls_z-Z*uIdd|LR1l7qM9`7kA`=5uxb6)N0# zUk5f^A4D>49(xnhF2uE*V_6?}8#hJsUZ6I8?baBlHEUkOj*`%qx_!H3@$B_dpuj{k zVCPL`30iv>Ix40``9{v(91( zI!1AST{Pb6!_JsEqb||h!Sv|bPtJ#~$jrCoHRPw6f>p?jr-xY9yu}N7hc&Yl zz6n9TLX9jh#%?bW?+ltVFdg72!5$?N0dB{pN)FKO8698R?X zNC)-feAGLU_eANG;`aMW^lCBt=vk7sFnqnBCttEHf+jK9j2ZykIm=l>oXqM3XE*YcX?=+!6W5(YEX4O5I?;S&6lho!RPiz}gu{%kew-lQmDzAv6 z3w^nb0WJ#TOdjaL1b>RolkpV+ehUy^GZrN3j|e@Rzb;BEKaVU5KdBhZMyr66DXE}% zAD3$nXfs0d0-6!qV=si4$^Mi_{XSnb2(mU8)<~RdStggZDKog(LHXOC>Tg{QaXn9U zybG`E0zghG0%SU$+l(4E2(`Sf;|`!x%XkP`b+xA%dep$HEhfg=-JDJK+ePPM;tOh@ zML?k5O7yAoIS-%7xRX%i%m)D@?~&Sh%e7C_!&Tp{89_kX->bca5jPuUCoP8H`GqRR zC!ZMsrm5fWf7V&a=mLGu@wL0#8PzL=l0b0=Pi>AO4Paaql>PCsRazIf$N?gCrsD*pM&!x1e zgN!1dD1p?$q0beUf&C9ps$7(IEB_S9H57A|T2s{usVf{YCJ?97zD+b|-nA z){FS1H`K}rg-d|W<|l^Ts%Z+OOqg|eOp)5G#FBiV@NHRrf9a6&Qu4W{X)fkMo_%o7n z-mJaMfL%rKnG8aI#2VkeLUNJ9!A6k~xLAC_P4mZjKkc3l1QhojHhM{k?&=h{QG$%& zR9ixZWtT#$k0)J%`ow(GiHVwSGyEGVKia7DQcIh05ieuG{0-jlt3+)(C={%gR&TTf zI0t6;N~E)N(+4nTN&W!UF0|i^M~|#4fUj0(Do@l)F4Y>#*q%AaB6d{H76fJv(0^X+ z5Q|0B?g=ZssyeI6NeMzKqwx(04urosFuW_d8pXnsLy%Z-w$^D;1jG-m*$Y9kz8 z4nVEr9-tJqy0*$kYtL&|BWLw+MDh^2x83U zf*uCGyWc?|GJv?wAY5c(T`^6GW|r*h7xTud8xq16nBC%_t8;YKoLik7H6*LnbOn+1 zR8rsjEDYeAgw$0>EQ1Z$^4*9Yi9_3WK|UxW!p;1s9NXe<*p=})thd!96L2X_aa&Ma8Agh7Nd9It;?twch ziUL@E{{z|UAA`TF<*v9NR}CZ{U;g^lWr`1s=Cw(nl9}c9$c!UVGBfTejMQs@!$rpa z?6y(jtKoSy{)))iTqcX3;vm=gKhT)#S$|1ug?H_~Yao^RaM5@=aiTWHQk_zS`Zs?( z`apzJ6@`DE4_z<0fzS2qduQ^2<`6AlXNSb_Q;&?a9nq;CnX_m{vcfsWnL$hEJyy=4y z^+$Y6-({g4*6)~lIc%Fj8Ij2La^{E|QU9d&_ zV>(=Og(iU_pK`wZry#zwUwKugnpZ-nykv`lfusXvWAu&|t2-|oj90#+nZT*}<}FkF zx}m(KgG>?k&Hfpu0#7>qa=w!I;Rmte_!(qC#ChZ_Ff4;}XL<9G)j^xb=h6;ZnSS%{ z7LZow{+wOraszlfF0F?cj+%8pon$mfCd$pk5qZ<)4`@$TMe5rA5Slrm3s|yLO4cjk z)z@IKOIAwnP@M*7xk@W`&v^IW$Pegq#b1R)@8s+KHs#4vbob9&;-$KED}T78n~1(w zMZjlq4%kGsCFK06=C!rL5XUSrFF7;>iZSG!ZKR)3?)tQ@+$PD^csYdKA-pdq5t%Ab zsKCw5KMhh&CNI=vg+jUxc4eoGGdrBn++ZWpF9)k!V=bFFD!Vay<)5^S39$2Y)%xTW zZj}m47WMj#8BE%Nab91UcU$mor7F3xdn^R)bt#>bfFPpm)S6e?jI9n?uFXLO1ZF^F zcPeVln|id@V9GwaISzT)4vcy{c!>c_&d!+|RDW=PPH4+4fg(w93f#=F)`?L8ExK|w zQ9RAsSJw9F@`}w7&vWaYd;Eiu}-LBx6zV|p2wjB4biz*8nZ4qM;dqPbAFqJwk z7QgOqRp~Nv?A%M8Qjt~uAMGUk7+Nl0yyl7q z%`^D1`;BgL*c1Et>kr3gX)<*DRK}tT&BK4a;K798j7W{q{!R5l^_mBz62gW|5C+8g zZ(TwRg4r`#inx`}p7cCNTFH9!ZiR&-PS>%4l;OKar`uzWt566whRFh{M61|u)>A?o z1Hz?Gb3>g4MVKsE`&b{q7bi;)UcO}2M-divmhM&otIRV&o9LBBb&EQS03y^c*MrK? zJgO#fao3q7FI-9Nr7bvNM*Fzn6sQy>ihrvZv5}SQ16eY zCzAs8Ol}8rA$xf$W3sQBW=S|0Y8!$PByB+c7VGHG__%u^*xTo}Mj4;dII4H7s^a$N zYo{H|r^5r6J0V~DbM~$8QeVV+HCLqTC};p+UlCp`*w$Ad$y4JM+)f3^c>qcseIG#?Vh!-`(QxVT`&K89eH3YlZm; znI{#;FBt#580~|8KuSx0$;Vq6keFqYTmhB5U8J>wKzF_d`-H{=KLAMSs1~u=>jn)AA5K= zrCT)%qIkMF{&=Gk9?44pfsL14JI}X{baRQwTlf6?;NEo3Zs~@q+0lbRjK_@=5k-VB zLWBxINF@Hc^m#R_!ZQ~He+Y!~Uhc6r%v0i#G5q~kf{9j1A&3tV98M(=xfw5nlW#D};7Wgyp*Fo;EUzF}Hq-+>#E! z8w4jQ5h;Hhwex+SWeWEdB2>*OXoFuG^A)Q&-R9;@KjC2E9bsbNbzjxQX;37g}g{az7vXkg%ka7#QUOA$+sQa}j1``(r^hyfebf|}!S>2pZ z4t53;656npmw4A=6kpDpvWJ~{y18y8}nHX%<$)3~WN`(WrZX?Fk+5!%v_(MTxi~m5h z*xwF+y#4t%EfVr>!sT>~po7NDrudk2B-|uBMa!E{C?sVDK;CN@%NXVa`O_=EbMxdP z$M)Rdyh)!UX`Ze@ErgvbMZCwfZkUSO3mGtb_kUU_HOc(?@yz@~V-T~*FlsnKdX0kv zfU9v_eW2~-QPi~K&0vH%*@|C4{&vA*V5lEdvOO5~4Xx6Y#u{$B(K8avmaTa848+`F zIzIX_dPgsl_~n!Ki{`gh)`#yOPDmPb)>s1O_Q8m5-z}lb_P6267y(2Gtx5)YPT(_{ zyQKQM$jo#nkfV~%{ye^R-J|%F3*>yIPUW|PH0g(+5IkSZZ^z^Y)2@Ph3+}@fL&5A_ zB?#T1NJaRpT{(r#W>bP>tgGCGWBz<%kTAwtFs3&L-qb9=D}&mte>`aJ?TzWzCGx0S zVKk6v21RJ1VvK;#p8F6Daff5k-G{U&UR|cM_LXS&+L0N2NDHfk~1_bEo087 zCg>dnI0wR(#bbJiUDShU?=8 zK%hZH`j{>CO$$+*UhBAb2?lia!!?>PH0furI(h#Cof&l+P|mH{#0W@>$jkOd@^nJ$ zYpQZbPx_jA-uFyV3g!Hn#%R;x2Okw1_Z8+v?4NY*hpC$=9ctF&>FtA4w%pIHkO#*Q z_e;TAQj1CJWBc!d+^;DzUu&PW>h(JA+Q9$1W>*ZOlo4w5*SG1%Gc@Pej+gXn&S0+TQiKil4hNQuN+BESrXouC5f` zYOOx?u)UL;3z5jrj0wA{+@`7AH~Qf|HVNG}+rP%MK{0_*jO7aNuzj_D0hZv6#?4ivD9;0 zf?-LC+Qf!&!fz*oCYarc3>}kt=!H-m1}CEb@0=H^UyE=^QCJ{2(vN@zxURP@rwzaT zq)}Ib`daR-Nqd*`X9mgM8nc|bhFKOjeXGO28y|&jV)Kt#?c@d8%)uJ@KqH6T&%naS z>xJQ^p5!deR9==6I=XM?i5ofg(V5k%-0#8Pm1P7|92quzNC=3S+6jwOwkWxUQPB~U z>P5`qko00B*B!43Wd$c|X1%@VH4RCWOf0@(jMtse%3s(2{9|-hC?TnO0c>Ir z44Mno{S;m~@}W#;cgE2>!#;&<@%5NL>sPc4e({|{5SbqIIxhz|tOGdHp-AX9M`qdg z)@ekfz?NCkUdqqDY^5X$;g92;4sy)anPT|4=WxBki+;XzWdYfIMricn^0nZ~#5uVj z-e7KIA6CFsmC7goxHt9=OmA%N zczx#+kU<7BCR6>rM&7*5XwM6AV9kM(2%?6%Sr(T)ZSW^cAQ!C+EXuXOtygd44eV5&-#i>kD?D%}_1yI0nM&#t7%H z{|8#C&dfD-V4G`ZbRqsmkY0deuDCDUzuYqsJAGRT$LGtg8B)#IB1rbqc_XV=)iO$N z3f*)3Xf0R<=sjh>ETHN}q&Mrsk}}+G#l4 zTh`FS#1Moy)UsmBFD7bbe@q)%&q5i|ba|>7pbwb|c+0?uOP$fZ-1$ggl^C`9`6yA- zLHx&8i!KT46`c-SuuH3hBhpVe0C8{)LH;3m?+DJf2Az-cdqSiduL1;D7N4##$1uaX z@`0TAQ}3s^$Y3awCoyC~c6;UGVW>&q3DT>bCnksx^babDH^G11;P?0=CHFz0nddRd*PT?LA9x;TJ-A?P85%g-X*jJr#R-xci4BE-!NRa zKCqUPj}37hx8V0T7#&d{92z?0lKBk=!fEiM2IK1ZmK<;8uQgm{-xbx;<$#l@v#*j( zIbmi}>4k(@WAnuC*CN^K*1S#EpOeC-GA-X0n({N0Nh}`lv!BK?@vl3T#B#TM6mvBH zjCQLfBoOwPpD<;x*1?yyjPj$&D19L=f_T*Sd`oWMEy~*s_qY6nYEU>fVa!UCBIKYq zayn~L=@11qWQDr%9S&t@ZmLAuK3L^b^h%lw>Y9D|nfaUYuRRB5Sv`1d?QkN`Q=QN* zFr~Qv+=!$CN=YE)!4G0MVqmbZ* zSnO>5bgGG0^kZ*q2ut~}pP;}ZC7cI+1hX0FIj=s`uZRwjd}B0x zVw*W0On)3GzXs^9`c7F17_R&VDv3+Twa4-FOIjr1AK)p9_vFaqif0{z-_-W$a^a#t ze|8)4F1(^NJ;~SmG9B7n?+h4qe$lYm-#ROkk z9N?!`TsNtYZjckO`{@p2yjd~L&b(Jy4+MtomKqT3GSV;V)4qmvsUL+EUlyYlupQb{ z6){W~B038F`(JeB>#Y9c(ZDodS1$pSGN?5WA%hNEy_zh3a#GL1@cEl(k&I~CR7Hq= z_4wH;F=CHdK691p+NGc&-c57hITF3|1nEOhB#A{*e23ra`K?J&4M8p)wZ`Hj!yB;vtD zQxL4Wie%vXoo}`$g21E#P(rND8&LFd$NQ9h4{xTI)|-12YTPYj&vb|2`cgI=M&RhT!3vVL*Xk zM+RM|uzmZ{8_`o`ygK$ZFkxwQ*yr@t-BpCf=;CoC2#Y)=-JxN@+E_2FVe`Y_W8FGM zuTDX3^b#-0zNn>K8zF?B@DO}>cja)xTF4Y4X$p#5LN1!T69;QHBiJ<;#?Yyrgo&^~ zRiP_cG2CFJp?i3(oLBdymRuq5%t#P&`!FE?ZeSg*OH3v{8TRq!z5DVyh?hXZMJ*G& zIR^Q4tt_n(!J0_bcjF=_#+1mT*4GW%^Sm=f??3QGrw=kdOzf`XInJ<-B=?g@i&@M0M{~GJ)F7 z{LN}PC!CG$BVQS~cqwQMastn4LT-=QCas)bYn=k=MiYNcZ^@>1=&+Ii%HHBi;D=&1 z!}8h%{F^D@8-6HMA{HO>yKn*C_DBDue=IYrOWOE#QZAjnd+_YTZLV%1!9(7PEnVW; zgBV~uL;IBLjLVRuy=|Ez3de?wXOHT|-MSa2>RVbP?N162zWzg%@`x?+{FQpV;6hpF z{nj`0cj>j>N>IT*K!RkL%CqR8CSSy|s~61C(u5$A4qRl*H!u3rZo@vB!MO`md4gWQ zvRcuYHrwJf__FD_^FO}%%t)H7?ptZ`Sy=!V3#xz1DEY0_x!!wKq_EZLuGM$ft|+^V z6_TQTQegyfkqK7ya(c=U-KcVMg$I7s2PV@KjoupK+5GYBv|d2iyP2b=bcLH@8Xp@W zYf1x`R~ovfyBu%eXW_HWGH!fRVa#gV=BF`zl(L`lEyoU!wBki zXqq5C?mZvBjD~ixYwz<3FY3bTeS$Z+cOMV@+2P-;_kSF|8JzPrxge?)sz-cT)@0RP z3plPnoH*o$LJAs#ix^3C4#2<;7+jKqY6E~e3bu(CubcEM#@5IC8X|*_fmGIw;K=;R z9IkJ8Y(7UG5fwP}zOYzahkOQ5;63!mhnrY477xeQ%jBEKuAywHuuxP>~$$n;TW}0OK{Hqh&&1HBD^2 z-)50rT3+kGAG0wYm>qqOEyBSUwI!6~t=J*DBK+>%16;p6@qUbN`LJ?ak!?{qcrB4e zd}Z~*Lefk6D!ab522l+X%lNQ62HE*hT6PEFb8Ylvt*J5UL_Fx;T|cTp(P>hBh!zn> zNJfW#={3CZALyFi~?fxC79P&7=lb$;7D5t3;I3Nx- zu^!eY+vIw!2E#mn49~_Gct4_kzaBeMddZsH=%Y$LM$!x|j$(RH!NJ`JDwy5*S$VGu zZ6o9bo2KdmYq^h4-Otrmka+rqt=xFA$fbDUIORvPL5z#6Yw7)O?N29ag=!7>0qx*` z>?O;D$_=xV3Z&{xJzQ+k5Hl{sRn9Z(B>0h2-y%Laq?6zc3kQC)hxpFjCp5d~EI20+ zyJ-yp=)TuFVQnE(#f^aDt?XsRmb9sxIr*}yRtr~)eTnVRnA+wB`5Q5%=J~GeyZQaw z@D8@Lj>b%47hFlHQba%9drDk43(*hL7S$CGHQU;$pX`n@%gcN@;E}M$A4tvbTeMPM zVAT$(l{r(UFXkxMzS7`LL`MOJk~$Zt*HMpWl$Eb;A&9U{4?Rb3T#Ah^x7r^Ev*8lH z#X*o^s&&O}ceQuJn?^R)KQmI%R(xm?OH0?!W2AIx$FyD2a5CNj#W*i+BSr{C$NhE~ z$$N_A&9&2M0b#+*nZqsLpS7pyS3hqiQ)I{w`c%G2=d+KFO%;y4m@Jg`6RNw zN&*+<9`Wyv{6yoKpaxsmDiMJo8LPF)J+8#X?#V35M<(7)n(HBt^NNPh-fhc$>RLiu zHmQ_d!VpJAwASWEp*lj`AjY&gdNdS#IlQ56`jjO6Dmd3S*yhhLaJW^V`0H_s!r+6pJfrRD;jrw?o$x#A0ozYY%xwU zokMmYo4#h8l@-o>Fj|r_R~@Es5MXNDvG3W;wT(y`)CG{_$8Ve-*kBTcEl`TTmO=m- z6BlBVw?IC=fY5jpdSoxi28@7P@q ztc1bHqrb6B0Z$72Z@T$uDb!+Iup>O}d?8~{C3(5h+J@t9Z<|xqr1?ibWK?;+zB}MY zU?r^t)R5`|_is>im>N+^$bRlH;uU@|wq}RSBf=W8-$U#@&^X$4#8|o(ik((9;vWba za%UcVhR?HzG4@$LE+zTNapgE9YEXN89!^w#F|lDbS4(Z$?i&Ofe9@->o${)Jlk%D# zRXp*Y1W~<&-bR1Dn@(ywQa>!bZYV=_n-2jwHAZAjqx>I3TyAk%qJw98z-?KK%Hrh*(KD6wBYyO&ok zrhbb5O_r?f7fg&0Halr0YSHy#HvN+BiB94LjM$A$j!bII==08~v9};C@o522GY^GKGNRLDx7}urJ$%PchkQ4NdJ_44ShD%> zbC&;H)F+?7fN+d4urK`T&oA zFM?e(fR7XgRDe$%wbZ|SqxoS&0*B>R<-d=9q(Q+H@1uP~+cLUNhGBQ~J6kz{H}el4 zPwABoy@Uh*P+oD&o@UULz6na>Eucs?A)Yd!(a)`6mvV*4&4;_ut-lK=Y%DIi*yl|4 zmigu79nKMS4)W46M@erHt9amykiw^DN8uX!$?wC`G=w!`J-9*tfrR#I4Bj1otMS=F z#-tgXFp>TKp3+9O_x&6MpQFd6q%}<<3vZ?A{^(1qt3)GQeRI_6{o6OuGsMU^;CDU&7OFH%(#i)Fd z>$uH0u7p9cVe8B|BX+Tgia$)H+M`?PRtWuTRq0qK9J=Tb@jS~yI5Z)}Dl9315@#eC zI(^&Za+n#)K!q$0$PP;3%PQZ%EWo*X8w z#a%;T!7Gg+@+`vd!mP87_oYInYPT}Sh{dj@l7sJs&li=0N)j#l_GZSc1Ykef0~>i# zAGL5bhpu$#ha|>fqE@dtSwJmj3O7zlTu9^^8jO1ZSkcEiD$4n|a`?O8)q|HnCWV3fMLONf#5k=T)g&EdtaEs<%*d{ z#YZTBv$zv2Ap0%70EXp40c6O1PCcpBJpHnly+a?wGh-$OCosyjQ~#wrca~XZSST{% z_#fyd7F+`?JEp8dAGpowVWB}~^H+0%jd>t2PG>_%WNTZ`u?R2U!+WukUe=xmh9A2p zB7Lq(bJn@%TCd*v$!@lRF!5%dgVyomkMD$pYSqE~d-M!~hD(y6NYrSI2N0lqc5OrD z39uO?nO~!a5sm+)7F%+ff}dO}zu&F;aCH6go+S>&l0Q1t;IpdgUc(rg2%0P#!B?9j zK-P}C;9^&Hu7>x2Ap2?w57-=W9&vX-Sj0o`&hEk;myhgyv3WGDwi$}mz@8Vi}(6O6=p+_YFW+kva7Qb+_O_Fxg6sXM?^FLHVD;X7|aA zdHZM?SAuA>y-JS(1-ncp?gZt2wGVf+>*v16Xqb8`Jn-A$7LQbMwes-YPoRvXwQkgO zqQH^{3Y2N-b;J7P@wLbT`=a!IL@3v5%0H8ihwqOsShIVY`9*TmLA~@Pjjk09H2Otd zX{3XZ=G8sxA&O57J~T?sHCKUTs^9>GgRHOfY4_4#vVUV8a;KBwLZa3C9qb(z zWObaUxIyv6xwRt24r<`c-BFmjh(1ghV8S{+>I^j+5rDO&p9k@O)&}4tD4G>*`O5gA zw;hX$eKxQ)+XJ__LGTpJt7)-PuOnzK4+`TS6IkznBKvn`;5O zPd1k4Abp~6)TsJ|!ey}@n6E)9UgTW@0ER!5;jQ%`i3g+!*xi)ri@0 zs+ERxi9Rk)1?B#ULdrszNLhGq>NE}Oo=0nvV!{gN)ee=-Ag1sZIYzpGGNpw4K8b#C zD~2_Uuj!`S#Rxr(4PRZhznuuk!s4?>?CehonQ-)pG26TKlxH#|3(||{$Z04*5$B;E zYmCInusQL-F`&sb|+H2V?x$ltCnn^;XTPf9B;5 zjpdo1K8MA1mv5+8F6!MSJ;Q-{@K$;|tLrYh=@oBhz2?uYx!jBE^~i&;i8Ie)9E-+V zRiEZ*)hghVPF#@hQ=vw$uc4QVUpz}(M<7ErmLxdJ{V8lAZx~joF!#ZuKp%Jg`ojh; z5loL3uq)nkz^T0cib&h!&?_}NQ9+9&rHYQ^BmdDR! z8&Vn*eV}k@VPoVDSVrV-WJOeYvef*EZc9Q^(v}~Uf>nBjt|MP6ed1rF*3&W~#Ve~r zCL%did_~~3U~YxFr<6c1b7|y~R>)}FC|c#D+&NM6;b9+8GaLepFKygNIj zVc?SSZ%v2oH>Vo20jRe)g&$qvQafi0=18gJYZij$^4v|^+k+uf%Z?2^X#;5^LLRa@ zVp-02mbwn2_Ufi=rxD%BkM|ndBZUZ?QS19ZN;cQjeiG`E5~CTKJtfHb2bT1~vWYJ8 z)26(WKB_vBDkS?I$nSf1LcO!13AA80fLKa5lQAf6@IKoJy?$(Zj!=oyp>}az$!s~^ ze=TWVsx+8~` zk?4nb)4&Z9mo(1&dNi9;Jls?uYZ^pO-V(W<53d;nGE+IlRrM9+S+?!wGDdb>Y>$7a zcUG-I*yb}Jg2ocqpnGUnfs&I!zDrjtGw{CWJI@8hM6AjCB=i{+KzCRT7N-+`yi??@ z$FGJ-Ne5f}+mKG&_y?_(yJZoP^rzE{@7@9c&Hy+F#lhQDT*|q@Nu%zeUXak%(9Z9P zEqHK}Sb?a(tH`H4q0R*M2E~uyuuMK|B#D!W2`j3w;+LamZqyGxOC}C5zV{+dfm4>u z8Vq7HTieJ3`@>Hk(S>xyLx#|r>xHwFa1Gob4!GJcW7U?F6%twRwg4tcvd_k>vb;jf$R>Vq>soSG!-j>1s?8U5@ zP(JiK-}TtzwKq+>l5@@Y?K@V~Ei*m%clPS{8Tt=7nMwiQ!9LJ^tuJ#g{KuQ!Quqz* zOqy^!FrHs`&R!5H&`=xj5X-#!nZ5DmWJ7gXw}R2w^X<@k9$=Lm);K}TNvxCvIqF>& zc~ZwwzBtd{lQ!|csG)@BCD;f%gOo!`28RVR%KhYFcX$dj%3Qo}BSrgFdotf@Gs2b^ z{M9UL+t0H2X7pdvBKYYehH#|JScTT)(N%eYh$HNu7%l_{v5lgm(aPW+emowEr^!w6 z6uZ*=*UC*q@owuN5Cp8$5xwYQg}C@Q@2YXY3AdXQ(Wy5-oAcr=_AP5*oCa$y@lpf` zeBEfdnAYxn0rpYnM~az)bRu5M%#M#wTVpT2Z^f%2~9KqE4Z^&HG2%PJMNP@N$iYjJ>-0HDZ76 z1gejh5InRC-K$gN^`vr=WG%dO)_izm#!5gtjXQc}#W~yB3AaM&KifW3XNx~clu#EW zgiF7Akr*0#r$IYB3sq?21oeVi;|jJHFO-3`Mx|A(iZsKL=WeIizxwRX=hg5#!h7hR8NIYYbs9@ z(hmy-g9b~vc&0$v>y95ym;>5yag;s_{0c~Wi2sN``7>Dh2S&&|s3(>R#Hlw`?&a#1 z40(5uMAg`WqTbCY1kPwg1p8igQY7Eo$3GNn2p1N%u)`RGw|+a`56&_w)=(P)k;=2j zWyYG?eTTJiG*sR^pk@n6G$;V3dLO&KPAoCTCgoQ4H+#wX_tkQSE+X*OP#87!Yj;|c zuam`veax|MG?OI_@b!Ge79-59Q~c80(AgweFDZQjhvEkZ9?-FW9Qn%1MK>G2cUvo$ za8W6gqTcPXeRVrGNTpL&w298b>r!{@O$e`FE#4eCcCu`fBA?%7VwmO}&VwAzp5P?L z68V&8dM@zFx|cfe8Sh)$X-+i85)avSL43olABhTUgpGn<-MHOwDSZYydQH%YtjgB) z)fNR7f$#6gST{*tGx_fF!8!*nmw&fwK^V24*?~m9Q+47yKQqKSLJ`(N8YJ;GC_OqF zMAPq-j~77g?JN)CR8HGB1Jq0XMF#}j+bDZptgFhZpK6V+8Nc3Jw&$5;WP3RP!61|7J+$NamubL89A3wD=^mA^oZ44j1k zzl!-XAuHtfMC5t0$z@GZKz9H~qQ~wrIK+0$XZnJLXS7%K$bA08e(FP3Ex*s`R-Cjem)mG=qJH+0HFRU4;gBE#A|e&Wok zYgZ#xL(7`KmUvJ>?%BjLs9~mLX&9{dOY8H)9pR(r4|*PI?8ksCWHgRw$hCf5&*6td z$J{;e8ivZLW!+DR<@^sC+T;wQ&&-D_m9hcJ$d3jy@6CZ$J#LX<3nX;;+j8O9(U<>$ z&U+}h2!F_6Fe!J-aoiNjr@!qJKQH9}l)SL!pcvA{-T%tn!^xzk^l2hS9MNLw(rgn# zWP5K>^J&Y!9E;yYZ`BNPLc3Llpf;& zaZ(OhyZeoA)pze8m(1+m>g4Y3j+|slz<4MkRaNJFA&9i87?I~zAz5s;#`OEs`dh0G z_4AwFUru;jOEC&0VPa)bi~DkxliklSISMJ?0$X(sD|det;msL?9GrS|rlvtpa?Zhy zPfI!?CM1E%r^}HU1UD#*u(`#$@A0n~FHaxr)Mjv{IHr3Ee2=YRB`a%LduUT^URzY0 zIjtJQU3MaDBIJ#kT3YV!V^<~;Ocj6P?geJI;i6gSWYiEP>1g!*qLRPyppb*=6ePiK z^)&t%3OIUTLu8Y7&^2l%qiOm)iKwe7o(pbO!Jp?lt8NvE#z=ZL_vGGI>%I2;4-Wim za-!qXyeQ)-rX=^I=9af`I(my({5ME3obW{0LJ?-oHba{sRrxb{5se81DmUzRe@D5e&&D7rVhdiw~FXc=a8WhzY=}C^~btvd?`BGHTU&nAHYH0+!35{bX>rS zCBfD0jkT{~b&iHbg7=hsh?m!}9UeGe&)OjvsEtWM!9 zl5tEcGiOj5hvt{zVsl-MJ+af$0Q;11DND@Ofj~9AC67y!?s3 zomnuhU5PSGy-{_pIQWBUMD3bVsk@MGn@2*Z zY4X$4h?K>i+cz2w+9x4(!oTx^9?xkfkf)%12l0aK{?P6anVx(T%9=ay9T=a6?#$P` znIC8@zdb#{H6}BJ;!IarPJUGXL7Zz~+g;$ybE?MCW-^1ytRsg`JAb`+v%wLPm?EfA zYt^eKTy}VM)s@u$w{ioB{|IElZ-PMmiD3jL6Q{*r8x$-Xlm$QefdEiYWpv3oaHZL2 zXkA(kFX;aFh%8|SL5TS8TZ8vx!DA<#AMnxL z2L^Q<%bub*R77UQpDm(rg87WW@Nd*A^hMt#sh`8OD+YIP!>?x5Hn-tNs9iL^&J>#d z)P=$x&9i@g48mE;!rvKOMSVS#pDKkUGu~0wJXzRzgNgwhJJxf*oNV>Q8QG}Nn&ZrB z+DP~4Y#DM$K7OZ*Gv8qmsZ|pN@Yr#;k zH>aSCOQQ#DO9_pZe$3eTmhP=EZ(fY8B?&--s%|cYWYgS%f=XZGy~^G93qk8A(l1Dq zamDb^4T_8Jole=DU(xFcHCC>woP+V92SdgnlJ9Dsxjg9n+9}RQ%jdt^dEy1_?md}9 z;W}F8c`*3cf($H!^ze+Wf9GqAk7NuR#kE?p4Cm6sV`6)nhyjgi~%cw$DtC-l}GzK zB(@wPk1U*5V8S##M8Fe3cDdtzu+QlL&r4wuH%7nyv-7#;L=upF9!A+&w)y(*^i{Q& zGyT#JYdkRjdL`k|9eDc3XU*x(-X=XGs_9(dgi`?7j2*JQ;-3kNrJM4;nq^iSR@MAf zj)XxUpMC6#0S#Ih-moeI8oHk@wU*rOMG#{+`a&Hdt}V)!gM16p^%QbFg@JkNc`zpu zE-$Xf9dKA4{_1|R>gy}RpSgrT5NBuNlzk*8YP7}|$Iey%u~0eTtA^(r48|aB6UIh9 zlD=q*sM#O0zbp=tEs61}Jweo;Z^nRvo zrcKo1o6A1$+aYDwB&YF$Ty-KJCcIU%@8olxRNvjBq`?KsJ{ZkOV z+WQ>;@2w)(@mH3^!s=XigiJK`i2Nw1ylm9^4qvDDxYWhrWA=)XAww_^u{P$~itg`8 zhmXdN(+XL37x!N}Eug@ZpH@*Tx*r4!VIPU*HUZq9B_2U_g7l2QRkvxc43qtJ8uLP) z!S@YZ^lUZ02=NDTTDCcv7aWul)Ubbx#F7v=^d&cAC% zW1@RyDOX?FyuUJ4@VufBIPqasY*@b zt&C*0rsXm&9gb@em&myLb0&oR6vh;eM$#J2(j??juWMCg@7ZXXy%nIrt5~+QP@AU+ z_uKZ;k3l~{D3u+ST)*?|O2Nnl3toSamz%Ok30(=eY4dEo5glH>ZMgRO5!u+`1P&w= z#_-GR*SGUg$9lLJ*`3!MTyIbgU zm`6Epb-L6yFdNl>jPmv#hYqNJXt%Z<;+4&pv+T)9)IxZ)tb)k&AruM%S3-_eNzi|! zeCgaH6ZuToKXv`GX`T-16^w=S`VWv_Ufh)e*ZR?iVOYY(zN1Y|B-T&%P5x`fiGoMU zm_9ei*9H>TC=#vQYY;6e<*tLH1T95-b{2m(OuqgBF4e4ZjkNLd2NrZRdm)z86H5#z z`gno+?BT7IHKP%k&!b={YRuiSbFW@e`bqbTo^HF=lQV-F56L;wAzOHB`P{)+xdy*C zM-ASumAdEh?$8JM;()A7B+|uIL3|C|J#kw6lAO+D8V4y zbaXHJ8TKrv<$j*=`+8f;4u2e6h$YNeJCe}5OxgGw&{4(X`i`rBZsvPsNib1jQ-enE zmK%J!8q9Vp`XJ$(23|*c=KOif0Ju48kHYD9>>+zXSfn*RAO$5J}NjL1yn*Td6>aU!;hmwlqmNTHa}^FKrR zwBr6?3kx^j|1BVcG@q*5pP%{61xvIB{KTcbzE6r99oCOmEDKyU|G8Nr4#lG z5`RW1rAT+JyAA71w9O9c6iFvEQ#yW#`d9-;N!f0FPKD0!ZJk3m(;NatA)MO)tWRnC z%@ysSg3_6+rgjVXyw~9%o|mAp_x~IuPGb>@CbczQ=Cn}(0Qe*%;_jG5y&w7|n}M{= ziah8i8X>4)pmpwT_`=0LqiGWu*d@>wZu#fTnXxOrV^&%Q?N4vP&-Hjo?RRMGNAufzwN!%Y+6S5#h*^ls`E_qq@3Z!%9wqke5_xqc8Uro zyYV2_VSPUXu|*fDW;$iI(@ihGzyKJ_S`W)@t(F!iJ@te18wt(RNhTb5vE zhfaez+J1xhLL>C?jF9PUN6*L?g%XcNhX+Ipd|*NZVPTwJy3awY(Q#zC;#KeBGwKc& z(@E37iK85Q@`4c2z*j?+;)5A~`?Ai1;xx?r(C>oD$`+Y!NS_nA z4vfB}lbH3#YkxwumkGZoA6Mu2xTrA@2`0JvOmPwUpP_oYwcq@2-T{kkNi@1>k|H|g z{$lsX8|RdhrL;!mAhuaxAoK)tczQ>?-0m%QE12IuO^G*1g{Tom>~E^L=&4kIO!YsM zuy232>}3>K2C4MzQ`Q=ne&yzu$3SXw{l%aW$3@Z&YG*w`Edozb(5~*j%o{vF4cs9Y(kv3P=Vdyz#p>ym7re zjCoKm1{$b{Zuik#FLi5a)%;25R04^SXPyE6ILj)3kQO1wFsmzoWeC_ZbaC2RDjABPY&SlC{*=i1Wxs;oe|O&2qBR? zrO6h;wru;TZkpmiI$@)GKR>u%YBn}v=C4ZWN7bYo_g0SOq%v%*803t8v^3@DVrG@k zQD~1$!wcrEQ{i_~pj1znL0fy;1{`nmWlFs@tL6CX#~)K_xY`llrfhQcM27?- z*bxX14e|k#iJiTw%e$LygS`T|*lvpx5B5Vy_liQ+ZdH~yc=>cBYsPU}wA63h@9l-a zd1JPb^$#D0=tDhPtG^l}^(75ngp3Wx=Y(szrIluRe+NJ6f;DRioDZg1UCkV9NjnM$ z&H4g9KMT}X@H+O`FJrUSi+Q&OkJ*4QX2e32eWZDRL?unklv_V|0N*o z{K>B_58dznQc6Lgk!Wp-EMwx5%yUb{RIxRLC*Dsf^BE4sie3lr^p_ws#EKYgD}bCD4LN< z>DBjxztjB0y-n7>2zGrQkeS0xr)U_XXsJx_5ONJ5`0%%7h1`Y z4qHFIpHU^4@ml5RkdHi>;JraiB|e|89gz?cs!DX4IK%Msck~QZ{|3F9zZ8(=jkmWyU zj(f56h!lO*PjKAZ0y<5G;E+7{khTPBQOG;DG+DD5D5LN4!>6~7lz|Pa50({HUJ8}I z`ea~Wqh&4K^5p?wBCMpQT57M|-Zk|Sx+E3I^*-qvk@|V{Ym1olJ(rvb;eI$z>Ghb9 zubp?yy^i0yUP^Rr`$?LMJbbCaCr@h$9?JT?X0 zwK$t4klX?v9g^3y>s|du?;R2ZTXsjuc;;SN+P4dRezychHSPuQW1kktssZ1gy9a^3 zO9v1`{wE|hlS>Zusu-!kt=x9YpHkC>6lwekE#aam$&7|keiR=)97`GwNfruA=!40c z!-y%hAnyb(BaQNAR%+jCa<5EF0*$ZHq~+=06HT~TTZu~c2rr#Q?tyL1w%N_6pZxv! zKafw+>dBWkzXY*x+R5A&G9CPb(LxrGKo9J>I^>mAsNi8SiYFe%{@->FQxF%?(QvEt z)ZN}`i5+w#*E-Fxw6>K&3*Imt74kVRS}xva({&;W5yZPOUD(;G`FQVv_|W`NBKi%N zT|~y0C6E#&mPOUHZl@IZrY|YLgb!oUD1$D}@4c#_7}efx;RIul_d!pJgK#Vv%>z=*ql=QEb0cO?<_8ws@rkx zrgbXFUQh--zx$_Io3b-x__4VfHj7nDi8SD2X||Gt=~#$ z@f_6+UeNt$E#J0(N$A-@S0BK4!hvtcJhbXAFzyVtva)__^c98L+uN;YycihSt#6?j zk0KYW!0#s-24)Jp7)CPX!v!ebgK~T{M5tUi6+lZkxcn$&y)#bEDa*b&_U^eK0E~E{ z6@9Xv25V&?j|SmDAds=L`JWe|{OGtN&J&LX(8Ef@bD4P%l-cCHb&)6S^$x>8g80%r@-ivz#UYy@)8W>^%x+i~PJ2v0 zWO{k08k=jDaqqo$MmLhZK?8YYPbFOaG*9^|#g=~j_EC=?PWoy#BY|)V6kceEDG*3HA4(6;S8+W_wZe-{lC;+t_>y@TkYq;I)7_A(7AOGgj2vgvA6mC8@wD;9B%2JG*aGJ` z!DF29k71nB+vegGaxxhehZrG9$nEc%>54?Qjxbd^f}@O{r#(30vW+gK+U&(fc)&3# z#>8VIKYOQtn~!|diF950jf!Nh0bQqX$;Q%BlW4nRC+z7@^ zQb^;QbW$L1F;sHc&UgcmFlzjXlubC9a#}~i4cmY`l5^NL zd-nr9Ii!~A8+eS9vPBTXeArS+-~xC993H*vYinYYu!}F);!(t9vPmN@M+1Y#7uVLQ zT*$@q1cw>kS2@n($;imb0CnrdHXC=ANhEYAs>PVH?^wXaevK9cv8W)G2g@U{Huar5XzT# z0tpmKK2;!}WF!Jd(xAP$bY#fb<96(H!5#W>Qd~y@+=qZFcLh4IAc36p9+;}LNfSC- zqX8-$E_0S{fDC`0m2PGZI+RrTa(uipmIot~xb->XrU3K+3T(5o&Zt*u0B#*f{J0s& z{P?X0ng}9}UzSEEA;1~+9WZ&0^78KOnt(!0iu z8wl7RpNwu8!0Vow?T(#l+|XNj1V#jM5tGU1Bz49(#zqDzk{!Dxm4+F)bN5trILB<^ zbA!ngYIBsf-yjm8C75F%t_e8#NjL*Mb`5`Wshqez~|-}7|$3TaCxp#T3N6Y%-bU?3=*aAK^ew)_3AO(IjJK)dkG}q zxF-s5z-073oj=c2McrKKrgir$$v*o~RxFh&I9!o~(~fxU@0x~7Smz#WU?jVS3n?Tr z;Bqnpae>F@R3MV#5Qsvn%6R~7C9nskap}!Zx=0jD3xSewe7vhZ2MoiL>Pa2?Ql#%I z8crQdbt2j~S({){g5^j91cAqMk<&eWDp}%ojh`eH;D*Le<->NI*RI=Rx+_d7?oFbQL{aG-kRaz{Uh21U6L#&*gW$%EK{R{#Om z1S@A9^I4=h%R^RZ;${v$QpDtT{{Z##QL;$}&BKQoAY&Ut5uaS~^r-2$dfZRqTS0D@@mm#svI#Quk zlgJIiaLnA}XCF2(@7va`{j^%jp_gzaknYGVcI1KIBRT8du*nJ@Xyd^7nN=Hs=rY;K zJvq&C(w3#we5J&85-f5@xX3aFKq>(GbL+>wNV3Mz#9f0ne5TrdUHCca(4D0B{#8OL zB!UAJ5vw`EhZ!JxWPmUaY=KOQ>S;%tBdhHss7Ks?x<}m{4tv*ib*0Es_e;KO{{YW* u{FnS_^I!gZujIeuSAWs}0O{lY_&@w|kMw`~c>e&t5B~rht{aogfB)HvY5bu8 literal 0 HcmV?d00001 From 33f99d5623667c148c77aa9b81834cc7f7782ae7 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 19 Sep 2018 07:55:48 +0800 Subject: [PATCH 017/655] docs: Updated team adoc files with overview of application --- docs/AboutUs.adoc | 2 +- docs/team/{afiqlatiff.adoc => afiqlattif.adoc} | 6 +++--- docs/team/amabelyeo.adoc | 4 ++-- docs/team/ngohwenjun.adoc | 4 ++-- docs/team/semjinghan.adoc | 4 ++-- docs/team/thangavelsharan.adoc | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) rename docs/team/{afiqlatiff.adoc => afiqlattif.adoc} (88%) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 8b3cf8e444f4..9399d078ba93 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -13,7 +13,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio === Afiq Lattif image::afiqlattif.jpg[width="150", align="left"] -{empty}[https://github.com/afiqlattif[github]] [<>] +{empty}[https://github.com/afiqlattif[github]] [<>] Role: Developer + Responsibilities: - diff --git a/docs/team/afiqlatiff.adoc b/docs/team/afiqlattif.adoc similarity index 88% rename from docs/team/afiqlatiff.adoc rename to docs/team/afiqlattif.adoc index 692d1c75dffa..931f6d5c4eba 100644 --- a/docs/team/afiqlatiff.adoc +++ b/docs/team/afiqlattif.adoc @@ -1,15 +1,15 @@ -= Afiq Latiff - Project Portfolio += Afiq Lattif - Project Portfolio :site-section: AboutUs :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 4 +== PROJECT: SocialCare --- == Overview -AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +SocialCare morphs the given AddressBook - Level 4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. == Summary of contributions diff --git a/docs/team/amabelyeo.adoc b/docs/team/amabelyeo.adoc index 800f8f138ec5..ffebf31782ce 100644 --- a/docs/team/amabelyeo.adoc +++ b/docs/team/amabelyeo.adoc @@ -3,13 +3,13 @@ :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 4 +== PROJECT: SocialCare --- == Overview -AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +SocialCare morphs the given AddressBook - Level 4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. == Summary of contributions diff --git a/docs/team/ngohwenjun.adoc b/docs/team/ngohwenjun.adoc index b7fe0e02ead1..9be665286c64 100644 --- a/docs/team/ngohwenjun.adoc +++ b/docs/team/ngohwenjun.adoc @@ -3,13 +3,13 @@ :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 4 +== PROJECT: SocialCare --- == Overview -AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +SocialCare morphs the given AddressBook - Level 4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. == Summary of contributions diff --git a/docs/team/semjinghan.adoc b/docs/team/semjinghan.adoc index a9310ed4ccdb..572324a80e7a 100644 --- a/docs/team/semjinghan.adoc +++ b/docs/team/semjinghan.adoc @@ -3,13 +3,13 @@ :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 4 +== PROJECT: SocialCare --- == Overview -AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +SocialCare morphs the given AddressBook - Level 4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. == Summary of contributions diff --git a/docs/team/thangavelsharan.adoc b/docs/team/thangavelsharan.adoc index 228de9df876c..f37bd6d322d6 100644 --- a/docs/team/thangavelsharan.adoc +++ b/docs/team/thangavelsharan.adoc @@ -3,13 +3,13 @@ :imagesDir: ../images :stylesDir: ../stylesheets -== PROJECT: AddressBook - Level 4 +== PROJECT: SocialCare --- == Overview -AddressBook - Level 4 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +SocialCare morphs the given AddressBook - Level 4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. == Summary of contributions From c1e777ba00f4bd5f60d1ffc9a94f491be1fb21bd Mon Sep 17 00:00:00 2001 From: Sharan Date: Thu, 20 Sep 2018 01:11:32 +0800 Subject: [PATCH 018/655] DeveloperGuide.adoc: Update Appendix B & C --- docs/DeveloperGuide.adoc | 50 +++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 817ec81d7832..cf7f71b473c1 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -820,13 +820,13 @@ See this https://github.com/se-edu/addressbook-level4/pull/599[PR] for the step- *Target user profile*: -* has a need to manage a significant number of contacts +* has a need to manage a significant number of volunteers and social welfare events * prefer desktop apps over other types * can type fast * prefers typing over mouse input * is reasonably comfortable using CLI apps -*Value proposition*: manage contacts faster than a typical mouse/GUI driven app +*Value proposition*: manage volunteers and events faster than a typical mouse/GUI driven app, and derive insights from them [appendix] == User Stories @@ -838,18 +838,52 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un |Priority |As a ... |I want to ... |So that I can... |`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App -|`* * *` |user |add a new person | +|`* * *` |user |register a new volunteer |begin tracking their volunteer work & hours -|`* * *` |user |delete a person |remove entries that I no longer need +|`* * *` |user |view a volunteer's details |track their volunteer work & hours -|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list +|`* * *` |user |update volunteer details |keep their details updated for administrative & other purposes -|`* *` |user |hide <> by default |minimize chance of someone else seeing them by accident +|`* *` |user |archive volunteer details |stash away unnecessary volunteer records, yet have the option of restoring them if needed -|`*` |user with many persons in the address book |sort persons by name |locate a person easily +|`* *` |user |restore volunteer record |restore volunteer details that were archived + +|`* * *` |user |delete volunteer record |permanently remove volunteer record from database + +|`* *` |user |import volunteer record details |add multiple volunteer data into the database + +|`*` |user |export volunteer record details |have a backup of the volunteer records + +|`* * *` |user |create new event |have a record of the event details + +|`* * *` |user |update event details |ensure that event details are kept up to date + +|`* * *` |user |view event details |verify the details of the event + +|`* * *` |user |delete event details |remove the event from the list if event details were entered wrongly or cancelled + +|`* *` |user |archive event details |stash away event records yet have the option of restoring them + +|`* *` |user |restore event details |restore event details that were archived + +|`* *` |user |import event data |add multiple events at once + +|`*` |user |export event data |have a backup of event details + +|`* * *` |user |add volunteer hours to volunteer profiles |keep track of the number of hours spent by the volunteer volunteering + +|`* * *` |user |edit volunteer hours in volunteer profiles |maintain accuracy of information pertaining to volunteer work + +|`*` |user |export certification document from volunteers’ data |provide volunteers with official acknowledgement of service rendered to organization + +|`* *` |user |view spread of volunteers across events |determine which are the more popular events + +|`* *` |user |view demographics of volunteers |know what my volunteer profiles are like + +|`* *` |user |auto-complete commands |execute commands more efficiently |======================================================================= -_{More to be added}_ +_{To be updated and expanded}_ [appendix] == Use Cases From 083efb1abe08f3ed09eb7ffa41920ae44e969664 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sun, 23 Sep 2018 16:36:23 +0800 Subject: [PATCH 019/655] UserGuide.adoc: Updated section for record management --- docs/UserGuide.adoc | 81 ++++++++++++++++++++++++++++++++++++++++++-- docs/images/Ui.png | Bin 154423 -> 236195 bytes 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index bb38e7dbb4e9..8081d38c6c31 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -135,8 +135,6 @@ Examples: Switches to the event context * `switch -v` + Switches to the volunteers context -* `switch -assign` + -Switches to the assigning roles context === Volunteer Management @@ -236,9 +234,77 @@ Format: `delete INDEX` Examples: -* `delete 1+ +* `delete 1` + Deletes the details of the event specified at index 1 +=== Record Management + +==== View event's volunteer records: `manage` + +Switches context to event and display volunteers at the side bar. Can only be executed in event context. + +Format: `manage EVENT_INDEX` + +Examples: + +* `manage 1` + +View the list of volunteers assigned to event at index 1 + +==== Add volunteer to event: `add` + +Adds a volunteer to the event that is currently being managed. + +Format: `add [h\HOURS] VOLUNTEER_INDEX...` + +**** +* This command is executed after the 'manage' command. +* VOLUNTEER_INDEX comes from the global pool of volunteers. +**** + +Examples: + +* `add 1` + +Adds a volunteer at index 1 to the event with 0 hours +* `add 1 2 3` + +Adds a volunteer at index 1, 2 and 3 to the event with 0 hours +* `add h\5 3` + +Adds a volunteer at index 3 to the event with 5 hours +* `add h\5 1 2 3` + +Adds a volunteer at index 1, 2 and 3 to the event with 5 hours + +==== Update volunteer hours: `edit` + +Update number of hours for volunteer in the event that is currently being managed. + +Format: `edit [-a] h\HOURS [VOLUNTEER_INDEX]...` + +**** +* This command is executed after the 'manage' command. +* VOLUNTEER_INDEX comes from the table view of existing volunteers. +* VOLUNTEER_INDEX is only optional when '-a' is entered. +**** + +Examples: + +* `edit -a h\5` + +Updates amount of hours volunteered for all existing volunteers in the event to 5 hours +* `edit h\5 3` + +Updates amount of hours volunteered for volunteer at index 3 to 5 hours +* `edit h\5 1 2 3` + +Updates amount of hours volunteered for volunteer at index 1, 2 and 3 to 5 hours + +==== Delete volunteer record from event: `delete` + +Deletes the volunteer record from the event that is currently being managed. + +Format: `delete VOLUNTEER_INDEX` + +**** +* This command is executed after the 'manage' command. +* VOLUNTEER_INDEX comes from the table view of existing volunteers. +**** + +Examples: + +* `delete 1` + +Deletes the volunteer record of the volunteer at index 1. + === Miscellaneous ==== Saving the data @@ -289,4 +355,13 @@ e.g. `edit 2 n/Fundraiser` * *Delete* : `delete INDEX` + e.g. `delete 3` +=== Record Management +* *Manage* `manage EVENT_INDEX` + +e.g. `manage 1` +* *Add* `add [h\HOURS] VOLUNTEER_INDEX...` + +e.g. `add h\5 1 2 3` +* *Edit* `edit [-a] h\HOURS [VOLUNTEER_INDEX]...` + +e.g. `edit h\5 1 2 3` +* *Delete* `delete VOLUNTEER_INDEX` + +e.g. `delete 1` diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 639f80f7c55d72f38f8cbc0db12dd5572093fce8..cb63d09f3f93acd4f41d80e59063ba6a1503f7a7 100644 GIT binary patch literal 236195 zcmd?RWmuJ4)HaHW5|WGVTy%qk2nbS(F6nL&DUnXeMR!P-lu{xc(kU%n(nxp1H`&|$ zp7;DX=jZuzyzpWLi)TJ_j=0A??g3m$K?)s}7!?5l0UahSu7ZGo$c2D_#De?~yfSyk z`2c)-@Lokq454IzbQ3&5v=EgSML;Nze0pv47(7R@lh%5VfPm3<|NlXkZGkBQ!d)Ir zTvW|PfBObKb?`&od1T~!Ck>Qkw(k|l(eeeel?h_C8dCIPuGZRQ*+RYc3A69MXUl1= zQuukxkOg!Yt?GwzO`*jrf3-;}J7lfq#w`?@*%R2?dRFTB^XfhK-rzd7xiELhx=Djx z>DGrvn+4~I6W4|KtKUHsD!3BL|9;6tcyrz{hh#JS^A(3hobc}>h7grjOU=J8GsvLi z7{UL00u2j<{?7+E{(t#_Rj>2kNHm=tzK@V>8c)Vex+18&kACurTn zy}DkwyUB>|#X_+$3CX7AUhR$NR)Ou8-d&bTGNE`~FH?{d(lQt{HAKsN3}tVcl!mrL z6LpPqV=`6pWWZ0TsH%pmiK!K;bVzq7oc#F(p6I%5=7D$E>bJRQ;t@q|HWkBhlbK6u zvi0hn=&+G$!r(*o&bF%2|D6;8?`rR=-f6I(cxi%Kfzt2osc*>lYrH*(^uF$E-q17Z zkng$G)o^3Hr6895)77zbCtq&rE%l-_RoHV{dOg;*>7rA59bLdC!*(D|(1KQ?79seg z60!iJig@Kl+O^_CVCwMxeK>9e15*EnRP6>*0RvJ(Ze8SBtNq}1!rh$nLisLj#bmR$ z_gviv35rzer?QYQQh!Y^Zln+FA2F}>`C0Rw=jHJxrpR^K@DsY>P!h94E#&_!)HvH_ zuFm0L#ry8eTLK3M9tg!_QsapEpL^tRIGg_676c{w=PhP+p8xfh_ubWkR_B?uQMM7x zz6o3Nzbn^lE;M`Bw*KhU?CL92%@4zU3Ku?{&xOTCirf;me5I$MS^hqu-#0KI+4MV* zq|SMdd`mEFy+8Sz>(QD-D1Ne|Xu;j-jID_Ml0R)Eg@~~2e1m)nFO~D3u{ZmREzn!- zw|`d;;|+cuhKpz56BQr-tHJesEHbQ4tw?QitF)QTpy|4L!RxJ>FXQFe#mMmK&dlfp z3VC5+A??H$Et3kr;e5pmM%B+r;`|EfFBl*G)cf%3_51Y!=&f&lx?7P>wGARuOz~fD zm6=7O5N-fVV}aIM4pYZ`)&7pUW!o37b}-le`dCAji;FAxRRo!!IlESOJZ0@M6@kj1 zU&R{v3S?)f%1%zFU;}p~@IHp0Y)wRx3u(v1x!qo@lkiw_xa==po@~kDj2O2CqU%&y z3%p;GdlP{|E#tZpEoH4WohIUaOXfT)THyEd{9u{Sdh&Xi7BEz)`*{3Md{Q!n8ii}96=HmcL&pjQWzcz z?F##03;FuCKk<1`t68GoNc@1rH0<3zr79hE@ED~sx-3b8=C`saSsrS8jGr)RzZmrf z4^=9ym^fIz1B~h4AS$Ev(135e4ACPR7PoLvtXBB3B`;CmYNTB0crf8d)~ldE3^HJW z`q#H?dUfEGJ+99WHo!*TyLx%_Oy24C)KM>UDM!`q&6P%}zGqhiSyR_+hWD+jxl{>O z&$nm5j7}X;*9(EwfHTV-dp4nKLLpV|ocPtCIeqnTwXfc_KSLyArRv>GgWUgk-AjF} z>-$(069yM=gS?r6($M4p`#L0M6Z_Z`OF#JOnQXd&?NDY55{1X2)~b+PYlZq(Z9(VV zFB+xk48SQA?4tuxQ&Sbvo+pbV1Mh%V?hDzyLZ(&5vX`EzdM81Y@chG{GEz=s{}*YP zz?#WkxRkB@wyY(7+>Z@Gdrev$q{XQiruYrv>b(O(k7HlrFKtP=|J`yyN#|xd{)| znOU?1Hc!3NPBz5gCuMcGQI*|qu|K(SJ5_&;lvd!pT9jkFe4!m0`2zX;*Y2F|VN?Jn zinQ15QAUa*3+*Kxo2vllN1aIa0%NpTI{6~~#><1{uKEvKRqxjo;@TgvH|&cYt^NE~ zQL)=_q+pDK#>LHjb+#w+cAVv5J=l$}I@JTLV%IP2s5#-DIElE4s9H9YWmzA##!H(n znZ8H=DmRg;b(ZZ_@pn0}^}b5+T*g09Oy!TpFp;E4_c(-k5+(k-Ru!h;6G7VYCiv4p zOp5gM^azp2Pz9B14^msw4_BuC0ln`X9PVT6ltl*7YeNXSEL+pLvFlx8Df#S;kozem z&zq6<36om+zB6A5vEb2s#fhTV#a=g;w2bK~Da>4x)JZ+xsMWDnZd#F>)^bVO6(Dyt z5`W=Cp4w>9Yvzj!VN`!CL8omj0d;qypP!xyxgB$$402_0}4{WDhhe(}eH98|e% zBRKl-{|f&}Wf~8&7Xz`%r@KP@p}&e==TPOK{x58S``}QZBjb97-ri$FXqeBwSlmbC=z|rUk!SnNe zGZbT~N&POxe<{mIg?eLKf*NK{=c=xx@{Xx)?hhQn5rQjG8+CEHRSK5`A@lb3thwu~ z+kKv!3T}6?nkXyermp_qz2E0twcr4dS{=71?fVi~kx|AU!LJA67H!p_nhmDz81S*E zl$5u*H4Ibb^uiwqh@YDrWF6u2J^#=GTS;uG=}V}Sq-t6M0bf!j?rAzh69v*c&2r<% zeZroXELs)qrigU#R>*&MEW-{VMkD6g0I`9q=*PVQ{`XECB8-Oxw(n5%UrG$oXZ@S# zaP$0!%f$c7dJxIB|LfNgqRajV0vWj+mfYIv|G!0b|3N5_Jj#tbQ2l*QR#sNRNCh13 zZg0ASFvyBD%d(hI##@j^m=T-UVqoLH5CsH~d{%zDMFe+F!L=k#lXSN~jH(rs(3*8ROu0|dG9nWE3E620 zrX{TQ4|nI3rON`_1ra1v;3^>ujv`D?9t9gO&(O8mWM}n?_lNjX=CIkfzkbQ@dT9Cs zgWlnLZhLDC;>>GYC~`d0>mucx&h-p$n-OwSW620oSAcFYiFu@Xw&S-`&gR|st}l)x zmS3Ie-Wy@<&<~>@4=DMk8eG5WK4FX#Z;e^g%Pj#L{ zoM1$9qv5|h$76?SHCEtT_GXlBI8`G=kmX`i(c6kvLRsdaSacV;yPWA2ZoNPBkikRK zaqu$s;_u020N(xL1*3TdL$RA!?@79;n*wvXMvzfc%%yrw~W)<2mXa*qh}mR!js zY7Gm4In~ETkP3{P9jCvLqvl;7NIP;g8WPg`=Kx=}zuOnUTt{it&So$pt(BLx9M0~@ z{CK=OH$(n58(hElf}sUgZ8HbJOV>!Qs!9Zf$UKOBacx1Ed`$m%q6}3DyZ!ADaJOE5 zaWdY0m*Zh61Jsr$B=!cZJ>A`!&0aSEhG{MhCCpiAS6rYM`+M|@vX4+FbW?eA6^k&W(WAwwgN z?o+8aU3T16yV%q>i@~LiPUH|PayK%Ni$JC^$SGlh@Oc7B$2K&0g?0)*)#_)*mzItg#E zek}sFffg@$AAm-lpN_=;-V7y2?A!4#M1oE%-@0s)qN7CtoH*%l7A8FIkt1A&-%mb=D{eeT1T5KX`>pUL0B>?lNZcgS-faCmo9#bQ1d zh*fpx!}1{}6rDJksIUc}ely|Fmq=n8je&r2*WAR&B;o7Fuc6`odG$t5t!ISMVf~Z) z+rud`LkJ{HZXudlXr>eou!m$rW1cb;A_}G0=b}GzG>Dp}B|r}k@tLn?R;HheI8mZ( zJhZ+;Nz27G=gOchY*}$#H~z!{Hv}%5QiLokSI5!*%i_&QdDI4@5=eV6^VzaofL|-l zYUMJ7^&Fs#4h&F$1ufvsQ-N7;{a# z{+ZcqSo-}+ws_P}voFY6>17;)O{^!IZU17iLG;4 z+7Zoh*%Ajo+Cw3a!rtYmF~?`Ns3`EVnJPzi6VBL3=S+^0K9d$bn8|f`qjy}DDReBG zgRGp%@=S^97jb;d@%@I#hoV2+p`M&J^%jRIT3fJKmgS<<1yQzT$vU#A+-XfK$I7Z) z!pqgD6^tAwRde-X)!C#?zj4AnCa)*6vAQ7-CRa=qqn9~mB1y%}R81KlPUi5L?F@9V z8S=@R>WGj<33uziVl)+?GYRac3+JqlCtQzrMy_WMZe%cHkEmoGMii3US6ZYtiLMwa zFucM^)ocsX+|h%eWAdtsg9)H)N-r5sbWjzSxV{w#o zTdgXf6>%adqiy@V)m!DDLn36_mkZ$;?+;*kL0A{^$UoeAKJ4N0(CuKVKrFOkcx`3~ z-;I*UbD6+0PCwb-A&WXC9Jb;o$*afg^WBsgea>O>k67e<(+#zoCbia&gg5WsbsL@8 zz))2<91R%OUipSP!t;)O;l|Dh=l%nPIfmU|@jGx5HfZ)j9I~RikF3_Oe){Z?Zodx# z!C_tcX8LVuBLGXO5NR<`miOaS;LrgVNi$)SXxH!l`SY2ID9F(E6MD`&ljVLif))WA zgV*-$cZ+_Q;t71oV@0n+%`8_B`9GIp4i#&ZrU^O^ByqlSv#F#~a!uiV$N$cbd}IPE zUb5lccobTS4KBdd&z-jUL0klpx}xW+v#^&{RyF2}{U0E9=F26E>6mneiT2PDSKZAu zoNb@%%uHC)%W2j+Ku_GCtzNv^mI669(UcaHh2j>sSIu`bx$#f&1Ul{oC1}j zEos2chxoZ8!vP9CT`a-Vj-zgO`ygl*<{VQ<%yoAPPTOv?1D6j-#i9GrLEXF>^A!+g z5EEq-6%86(4obaFm}5v)1QcH!wBtBvYu7t{6%x_n&+LnY{U~<<5j)*eX)tsrVNEH38TaH_z2P2;;U zRYli7apXd7L)7UM5t){)TsE`(l9jGU=HakjLg@ERN#A$zE`I#JMVcex1@+^N?#>C0 ze(34%V$hSqn?ZeSbQOuthB5O(Pr`L$i0brdoGYH|gPEu74N=L-u=m+0eU)!U3)&M@ z*fb}fOilv8$Ed@_iK4SPR;W64-R{G3icB3YMd67n%LB5V$6n(Ztush8J2TZ%$nMAZ zDVj#!(R1N$YXfP_S2Vxek{<_Gu;Z?0QL?<7sWPL4EOWYxKRc*hYLSH=3VzmSh2iol zp>)YU-QEvKZ;X2y?hCo>8&1cocQ1`~ z$Be?Z#=mkFDCY!{F8MwOsrUTHBg{Bv4U8+RUqx{8I>*h{3P7yIpk0ZgXlEg(@z9(_ zaYv~zacr?-n%Iw=t&RMBHu+=g6l!BjI-GJ29KG zXgQdgU%mNNgjYZR!}n3S6w&F1UcN#a;7zE0kdag8&=wI0uvDZeCUXTquV~Qcysmci zBQm6~T3v;3%aCg6$p|invjAnhJ+|B#o+I1OBt#_+5XYBEL|T`ZDu_ubwM)=(3)vM` zla?LUFUs!hh76>VdD?~}Q#_HbiVu4{%dLBj@hJdCqMPQ0d*qrwB`XWZ#~YIzrRGM| z&QgYT1_{c(JfodjsKvECjrW#zzjX)fYL%dW)JZj!)8Xo@V%iMr z#z#}SEXtFJ8$q9`tB3lPn&6j4KTJY{ZgMjBx9D|L2qlRl>XIzri*ZHBPq3OXM;4M- z%W~p5+CL4EOWWOGvFFQ*dp$`z8NV&bVD~UakHygs+kIgi+DV6vpz~FyIUc?)N*seE z(rVKmZFg2EUBlay7LYr`OrcycD-&gsh7-z!6zOV;x-H*0Uth!-Q8i(%p4xVHPft3lyCI@9y`*38X zDE)kDHRMpAxh0iysGz4i5~i7*i@E#BYz!hyrK;}G$hLlxoSVe>fRTsAC^7Cn;e^bp z5xd1jpBS5AYr-ijeoB<}a$(lveQQ~>^43xUg~C!GjuJ|`D1SQNKDl?|qk5rIJxXa! z3E|0uiSo!&oWJ=_i zHG~}U5~n~qX32$?0bBgl4J~$V$B@g*I*SuXSb1E8mgpa<&2gV6jXcDR*>?F483ty# z%DdxEy4bp+liw`=qUtbO5pZ>d2MA7wU?*q_o58Gg#8XAFaoxCJ*_Sgy_P zM5-{@Xd0ghC;Aw{b=%N|ddouc4719ZcAAvdjLr_o;_l0zn%}|N6&6?#>&K!P+vBXY zFNex<5tgRrFe`pi?!Bwx3(k)cyTL4`F zqOTiPE~OHQ3?p@VwPB;v^ERxo@%K|5gw~}|%Ep`HhB=g`8j6IJZUo1>EWT*5m&2n` z?T=LGAO1Y)^A@amnc&X}DMGPq4MgRQh?&Y{8t$96KeLJ5utR3>PwAzL9DIcJqFfC1F4ADb-adtOR|%! znW<@Re!i@W&$4Vgm;I7BOAsann?Aoj*X~K0^E}+%$*JnaTc{hKVXy+=uoTl@z&XtO z39WDjQ``!E3gbsUu;Ftn@&v`C#6^(EH5E6v>hYw=$(ZWS^miIH$}Lc-s4<&!*v`Lr z&TfRzW~6jFtaH3Ht7_L9$0(ZqDgJD?heTm>GK%UIgD~^mNyL7!!HpFten(src+T2! z6o;r!xZ8NdJ;X2pgGV?$3%Gia#na>CCD`Kc*7%ySZ-OYiq~nY!)*&k&TmZFahtyYO zAUbbEbq_|d8;FBZ8nIPq>JRxxD0lhkj zST2Una^;#KCsxKzqp?JJP?oD{(De_SAmgC)Lc};Bt*pIK2)^-=a%D3=gV$9*YW?_cB#Tx!oWPwS4)6MsE-E8Lm^Qs?hg+#TRTDI`SZYZ&=5cr&}LpW}B%yYC@JlhSOG_(QR*H=~~!JT)|0 zo3a#3?7!+aej<$7umQw>yX|RRtO_mStQV8|m+nK5SYp(GPvNeLE%qmKv&c$m#-ui< zFMa7Fc*Fu~*RJF$@*Tk3T%Byu@76S;$O!vSmFNk6#E%*0H;nrz^g5jQS;%-{m)AS= z1!8*P^E5*W&*SK5((QG3WcT~z&Xq32Iz3_A}xlX`&=;=VDOkJ$&Xo2&|>!U|D5=zX~Z))X-R z(1A!qsS?d-y8ER|z<8Ukb_EkUj^fW8_~RtQLZfM)LXG|M{_i#d7EPsEhgHy3Tb97~)djsXz(0_1 znIfNHWoObp%rZ1Lrz;V_aCCFK1R$r-pO~ZbsOj$Z3X}W=L&osIha?;6pK2d(z~`mH z2t`?FtF4D;I88d0SPxKsRoTpGyV-_EtV&;xKExC`#35a2Yhbx%*4HwRPqVDUILLV4CnlEw2GhipG#xUu#7 zP3~A&jPN(d4Cx1j96WT`w24`HpFax&m**0pV{i6)ZlZzMLhkkvR;#qEb0veD^aB9t z-cR=!-ps5PG>iknDSUtW<;^|uz%qqIC5abiZ_l}?yGc3Ty6F?Y4XmiPr)w)kyOa&e z2AxUon-9QaoOh->Y<|@{?}3J0N?5@?cZs_>l-0KOGbNmf--Qakzu$)0rKU(~y9C+K zUwy5>vf5&km@pt);FH@>4|k=4(=c;ku)z{yo}R*;mXOYPIl}T3jw`!IOjl^0>2NrO z`gv;LwZL^XGf8OkxPLHMYMWk~TuF+4ilrWd2Vz8t!*Uo7PNF$K*H|KOA5-U4KC6*t zeBeIAnfZvT@#73BRz?l%W#|0q6z@Buq?oObou=+bG&lD3RMPLMN29(_8piZM8X;I` z^19K08T_!S^aPz)tyEvgioreN-`3->D`+K#y;35CH^7U>bOA*U#h5LIBDx!SOU2D@ zXvi+nEDk2Lc+aso^r;NO_~VvYr|N&70wR>D>$De>wKr%=`4P%V+5~uw_%Dj2xI`%t+xB%p83R;VAKL- z>OYT^|6iE>q$Mw$3D2`RKJQx(e`@dFgX=+&UT*svT^VNH7ac7$UGJUt+|IU>ZHMj_ zL=K5BgQ~BaDO3hLW6yru_0@9U$)#VdIbO&z#g{4()m}qg`%v+i4IE*sA@M53y6W`~ zR`FwFOh2`64wo{nWq+ZH6nXVT7U>->Tg{I!dwQYp*C}O(X&8=Cb2!oPb5lCx$(EiU zG$+&-h^@*L7Rn*3D&I=osi>%CwfkSum27OJ)couASgtr4q4=yzF8KtAi(O{J9!uXj@&)E?wAPc&qUt^P^mtJ7!EYoDnKo?%@~42@I}8cz}NJPuWr z!lX*=CCEG-oKaE?uajpo(5^qs({S9IMM1g=8Ox|_s^I!KNh|G<^Zp=wYzc#imbknH zZfLPs|ALBLwsUt=F&3KUYn+4%#s0h3d6NtmWx0SA1$}Csq5@j-gvBr3PAl6Pq8S>dCx^iDda#(CN=X!iwA1fjokijpY?NzwKwnW)lxqC*Jk^ZpP=chT6t_<)=w; z`o#_5xhkujupoJAXr9f{>CP^>JeuLiLB+e_%BmYFs)l+8wqc2`mdH?H3`hoQp5@;L zQ=DY>5&Rzg@o=_Rz=Yv5h|Q^ z42RDLrRb@wzcT>J*#gqSux!*bjj8zMZewNmk^8*c1st5Q{?+=s=a{m^9-DY{^_2X( z-d7v!ja^N&J&M&|-E4m~+^Qzn>hOG(OzRAvJ{5!OmUjF^_J@Xh4IdS6V`|E5P#eK^ zqnp2aIw9r_QSNzKu!^;j)aQ?16NzDMtal!B=0}j%m2_o-oBh2e`Fgjeq^^fqS}wg{{z(SgU=bsINS}Bar<6lfl ziH&MaI;&o?&?RXnhZ=c0T$Pz*woefh-Dr2s~e&9 zCV>y5jW}LjN6je>cHJlbIzbAex0mf2dn~RPLG@R!2EV!-3UA4UUXMyn;3V*Dc?`x+ zIP0EW7pULy#_6KSZU^8R#{`(TYt(+h$a83V&cE1$*FuBygY0fAr7xIg_j<0_xw?tx zSWNUw&eO(L8Y9i>1-Xp7eb(@q)4FUJb1TPjyBgZj%klBLpEGyYYl0}|v~JPZ@YT<* zkxo}XD@VKT7CsZuoqAd;e=XLLEDTQ;HLO!ANjumVQZ4OZ}jlucCE>M~htvhy!+|It&q%tvzN; zC*^t6l7qFPu}sIH13;Ex_GJI)ky8yz5OmO1_cVX03Q`@nWY&M_0*B~au zmR00b3RSkfW8v-=pE?$4t#RwAEbpK@&sn!>A1|C`7GKj3LxKoK*zT^ ztRt+vs<4R>EBz_862{tCqSOu5tW^4t7ode4{4dgd=QDUh6^``|oo?WIC)8zqR+QMRMdUFLwDMLQYDy>~>RTO^{BL9EFjb zY&)a~E~a&m+KFRf-QfaF9?5iaMc?QZgI9a zYO;b%|5m)KsC&JKBuD))+KSnr#bc5d12qj5+9Tk8`X&0Gd{N8s!?sj8=Sk~lc~Jwz zc;ud2Gk8<=hZ3#3=`Gu!KHjqb5rtJT~X2xXL@2Sp4|uu z9Mo9`35Sl@v#%a*mc{dJx)ZuJrwO+yYeJX1y|ve5lWEF@Zc2k_QnQ|)mWCNecehSt zW7n~|HiDtKBK|PP`m10I)wj1{K1IXqZcWeEc%Rg42EfzA=J(w}WT57dli^&sz+8yA z`X#EYuYRY!W^{L@L#t)^4l;;HyQub84n@G#abpdiq-h`9P03hkxX{{#+unK||47$+ zySBWX-5zN>d?UOdTa3&qJkxXvjytK+uR(PyKfL5_cYES>sio5Gl8k0TsnX_gd0V{I zSWKd$=YFSHZ(Tg8VA=Z1adm&-sYtHfB=?%e*`HiK&=2 z?G5nzhYQ*VbzC?T6ZE3{Y8l7^Cru*L_R7SOx0+^bLyqXpp#d(xK{DpA^TtfuopMXPaaqq7uFdvlUH(YVhpQy&fs##9=zyYe=5_r_m%YpH z9^SenhG~%D5dW$;;3Vj>4-Yze-h%`@=YBlH?l7>k;EfPOcy;M3{q($`ESH6eoV) z1_zcOSA&gYIFu>M-e@YUPM-FZhvmS2DP^yj|6(pH^?f(};I-#o)1b($hrXe ztDR)kh17wL51qdFCZv`zl1>jJl@1$D9T*ApREQGMt9K0UPNYQM+I;{Lg<_3jm1g}$ zbw1s*Z+*plO+~`ohN!6&)Zx4J&394m$3tg#XKl_GG%@A=oseCZa4gp`Hk(-o<&GE0 zg#}8CC-vVJ;=0usII&-_6oSsNf`kIZ_@hP6&pviu@v(atUvqlJY z@?O^ncy*r5kK5DVw>k(6QaMcmVf2!@RGAB9Mvufmacf(M!Y18vnY+E>{`wg8NuVnU#+!iiFP4!CZ)R-?W7#;u9c!Jj`Rnzk$YY??0Cq(`X@ z?*N%1wb=;>e?sL9VNbc|53CnJCjxK+8aa~a!!vIRwZ736gWv0$9h4`V*mN?kLn9ex zh|ATsKCs%@9>#`F#MM4-N0k}b@Q-dB!e@3DeU_BOXG?Bl2B>+v4Go|IcsIivs~nZg zZDF&})aWM#Qc3i1QUh|s?d29wvGBpM22urRnyi<^i61`n%&guxKz?`a<26;$P}<-P zlvXVEO+Y0f8|(mD4NID`gg8-vosFvCVtu({!bLji7Tgpp*&a9)Kr0hV7U4Ya8brhk zx8wM*;C1yCMvK7qEG>)axnxWsmQZ(PrR_qKexn=U8RE5|>aNS-e8I4dAAnRa4NTVm zyjwM6VvhemX^XiR7(J!~WLpX5EI718120!V)b-eDf)*K2Et9)# zWL1%CQs;=;vbMu)q|;`WSr zz>{cUBE~QPiIw+CH}>T?Sf$d0$OxA3&GBewI7z4+BNNs0R^Rj&u7}`f#WB%Lfr_3- z{Dyd}XkFKxqqYAUJN=iwYF9A3h&k2u=^skBu;6EdKrL>D4_2jqM7D#q}zK-3oQ ze!t0W(D&;~M``buH2V?M)jrrBHU`z8ORM`hIqi_I0=^NoURHI{a>C{Mg@ zwhWfLwHGddth`$0(uX9xT0V)hXBn6$4Wq`RjTvAoC`@7|fefz-l(IfXtEjLwUpv$u z^k}pJYB$)_(y}K8D$d0>=NQ|AjDRQB=yvky+1rHVrdjO;VEmW0Cux9VC-jInkPL;*$a$i z1#lm<@Mhr-KPBJX*|=4=o-A?VRuE0Xa0M!K8(cWEBo>-HQHl$wj<;bI^Y+K-R^WT1x167?Za3oqjNOT}&Rz$aB7{)}Yfk6x# zqR9QJ>dIvbkUE~dLB|rB{V<^?8ILKCgAGbbeW3&hi6$X-xi7mq)!`f9#jT**xT+vg zplDF<^e*A_=L3HvWpWDYK4DEvKortxbGTv~YLASJBoP@y&cuRd(8I)(ik3EcTF+m@()|;4Lu-hNrb>&&dP7`(0tLYg>(^HsF92C zdz_bxN-`0S@ zX=UBDsDo0bi?SC>saMGG*a&!*%MKv!pSfaGro_iXqy5^|n%+JQi~eYs@!c+~I0JQ z!1&tmS}$ysOx@DZa{S7BAMhaao=ks@B`B% zlO&bfan#((?Hm=KlSb-y>q3=6U>hLRO(t0ZjiB6j_l_qkGc!-y_7Z08yU3W;zr2+GuV!QvYtk9{mp>+Xt+rAR1^x1?>!ZPN zCXOER1O$b65?cf+DNO?WGi_a?>$xHNlvN9_YjgN(#Mv#-Ie};N(xwZ%?|k;sZ;;hl z=z@)_UHq6zx}?;^XP)fyvB=0|PTNaON&BuhTfj;MKyyFs`3IYZ14#p%kv3F3rgN*P zi>w(rnr|z_O8(#bXSwnYPNt|IIonS>uFWEQkb-qTuft%Z=^bB_Odxr7)PBC=YkZuvW-5R#23TKX?hchA-R-=^ha z0jrtrc{&A9#uM*v>R(RRQ%vTA9(vlYy^iC0rQ8VL0zHlt5pQ9!3h)?6JZo!fff$Ex z^Jxrlo(tn`kO(nABSJ=6UcPbd(_5fZ_~1LJNF=G@soWB63ZT)c=P_`TcM~OP-3LH; z`Oj<-gA>r!h+B^2!ocQBsK=c%$g?A}rI-2t&dbj~+nLc2?pc>bMI;15&;&&sUVs%1 zn!O;_nTdNSK+yROxb`C?jN^WEZi|6y&{;F@Pcj-|1U4fFqQdn(q?~>w%+C+9M=TrK zb{@SLI0BCyHqA0hZtkPm+V{XlcZPFOJvcX0Hq!}AqRpHFgyS$ zA!eHo7XoO6AKvUOG&eK&wV~ZlI}NqH0RkL;n^{27ptxz9g@H73Kho0kyFlm9>>0%1 zB+ulmv}a{GHER!8{}*Lcq#(h)2Gu`W zRn}T@OV((>x(y}#=g9eAD1739`QboqXj%TJBf@0%f@P}e9SJ#_mn#6{_Pd@ila-5I zmkSW7akvC6Kx+z`$gvDWtBABK5R_TqeWxjI;w;T~H+#b~k)QlL(r0h1_*r|`=lz19 zY9ISLLZWl`+&_|jtk=e{>it{aK01@4T%aI!XdzB(GvQNF2(^Ek8azojeO>3mt`X=Su7npbe+i#q*G^ytl)mFdmyS&uj1QR=tN(BA+*Q#`D z9VAhoaEkzW6;Ki-IZg%qwB8)aBMn;RCqgaf?0Ow7Yoe)BQQTBHm<|OkHjtg^up^Qr zExZ{}WPy6wd?1zRngi;a(aow;HCt{H)XjDdIa}~<777&qxCCx_v|Ah=xr8Pgb29}w z7_%R0qkAAl>g<1jQ-DUqg@{D9zrE_f>t>85hAkEckT0Lr*apDCp}79{06xk8D8b$A zQ84w;7cje)+$%7Y8U1AuwA&&nIZ@KQ0pP^qj{rs#z=o~uxHqrYB!_t%ZWrto^8vu; z?EJeJ2|4Q5Jq!h+$Btoya{UDvNwg6qOfvS=XQ_z4S9)SMH#dPWh)~!Acw1Nac#BXU zq@1Ks?e`_lX;Y|AyA>ul$1R`~&b?rfwF~Q*^H}sn>WrkYReM~hRu~iAfG{bY=l`!w zvGhwGCn549N=*BEDCxu{A>y;^%jII*-3s*0fY+7$@!Owxmk%W&mSw$(Rf?mfn`(oQ z9)M=^%)+fF?0#SYkkWR#ApgR4VZOErUDl z5?d^VFM9O}!Y&t#8D5u+@}d2~y@~95r!tgs)Nx$!INWUFkY-?GnkAa$AA>u_Ga1aD zyzpDhKYAJqnrA?X{HM(A#EJ)`^P}KDY!dy6F(L!9?((KmX0TIG!{tsyu?aFQq9Zh7+?Qp_jlt#g}vp!iT zCtgn2MmRk%CLR@0%TEfQ{IlC13V)3r5XoDV*KJxK_Ur+e6gFl=F{oK#iV|_PnrOfV zI~$P!_4F4-b^=WRa3%d;A}rpr_{xJyw%eG3POau@x1L$8!0_v)?>SbXj>NzFTw!90bQi|*rXD1~x0yA~(yw$S~p&KY4b{o&;LHXzU z;)&LANK9oJ32{%``vO!Siy<&qk|Bt9?WkWDyz;6YHK=8ne1{ZFI{F4KPlDkuQ7=yTD%A-%BK6tsoQ?tGXIhb_d=sId zA_SKwATXHNuBH-iZ8nT4tFe&DC@i4VzJUje4=_^Yd>!S(2i zq9SfNkTx!;@{xZ2XR<>YhH|AF6u{7`K@#Ch`m-S6V%=wryf@ut357-gi}9=0H}m@g zOb+Oz)zZ=;#RRRZ0ES?t-ZM0En6~%HFAe$W`smW3KH(6Rin!=9(}@y2Kxtql>(v2> z1a9o=cvMlK0?Zz@&!c_-go=9?t|0w`S4fzyzdAuupwW8Bb_<4sS1u(rgVA?SYPL%1 z!;vx8ymOUjCu8qh>K(9(UiADfmYAJc?Q=1RwSJmtBw3BbCP;vxWj=;1;e zD85QF*HRaFdDcG!@N9qFeBT3e#@sO~`?t44?gC;|h^@}{bEAOT`SaC2FZ!tZPoMq@ zMFJ=whRaib6nHu@sY4uEjJ@p(hqR*IK4_va0z8FGu?y?^Pp;hq! zv_@nPz;sCaG)@B+BeT-0B@vy#lRQ*20AWrO$X`r@(k_G)RaIPs=$VPdlic-tdTR>% z2ZB3`{Is8dIL+(Fg|xWO+q7eeeQw2z{NXoXYD%uPK8aF7Y-bY>ui~}%6ycKQ)tF@3 zWPNcG^|3(_HD82$_o~Mix4Jnn=Lpmt8pY~APs4wYz9!4%-oVn$S>UXQxXS;#~d|!xpETf{ShYD5c zL9JLrQ4Q4O;=7_@DVwADsxUxSf_Vhv@733*)y;aKLV@x3++7de-T$EgY<-}>SfL_c z34vgJ0Yldr1W>aKfLNj*_jB-r*aA}5-MaT}m*tTwm72)5y|4hj_LUFVzrCWNmI1ht@=bAhv3gX(D50*4xoOG zB8i7*^2bPxe7DpG&|=TDgY>}ow5y8=7#{&4h5Pew%4&cNJD($JFI3xRaE7Cig|6si zI)7`$pnCo}H%R%h;qTUf&tYeFp~Lw1!dMrH&H_q@t%h=D8+@bxoU7pv*=-=i!f$m4KJ%yMH9BJ}j{le|2H5lm5Odoe`}S0#Q;qsArpV*winSDo+3}fQ8dg%( zq*PlUMH}iobGn!b3~0GDPth`q*{MR@WvSIM&(ev0OWGI|0>O8+%LK3*3_utgfU+5k zauZ@$7%^6rt$Z64=8g%H*IppozqKFL3x~!C<60#!v`YP0V&nPalwvhUTWbixn9Ov( zdO6xszw%b1_6Or5Bls5SIccHvy7hxI=ve6?c85SGeK2GMd5q$QC$h^>?h)3wKxhQx zrjc5Uodw-kqmy2zG{=QpG-FgG3Em=_M8?ZYrGii*Q`VYd%1dJBl=s!loyL_Hv=yiF zRZ?*rFk}+!$1QPZ97TrW+9v@{ud$ZPzO9cdZPe)6&J(PTFgs6R1k4VF^U_)0WEJc0 zze9))^h++^N1mhcAQZ&R;8g8pYa@j;PO> z%g#dchYBlBSPD_6eWN;_=#n`(tKU5RI2t-7j6zkouj-FlT^J7!zT%x@Xh}3-2UMLH80! z_W1_d6rpPk=Myba_2<0y+wAz4ffkt2&wIv=wGV^G)Q`V1#4!YYDHE^ApRv)U&pgnR z&knAKN-fOcLLmnM(1Y4bvweA8K)DkEN@3Y+?~C)^yd+cD?}2)I1bRPi9&*ekf*K3Q z{@vy~uh?#SFl5&Fi)0-E2_v^=iy7fvfG~YjboB32QuYvGrAKpy@H4DGuW{)o47?ko z8}o{dKJ7-%kAXtTu_d%5ny=01cTNO>xUuG_Cpl&TLZIVe4tgiTT@XP%1t-ABlTM-uA+#0#hg5e$4)8o>`!Ys$JC~>}{ zI{*fzgxOWToft^F2q)nqW<+%E9+3|F)335luE%@eJ{rfUx{pl4Yt8Ri$~*nBhWF)&28#X1o~Kj1voVB)G1NA6 zYURH493iKzi*Z8ltwdD45vy*ACE9%OtN%{B<>rvqqi5s1ky4ElV;m@k!k-hB2NJP29;?iHf+1G*7!ei} z1xrWl&D5Re_{s{MCCgi&&%Y4ZOwz-6aPhe$S?7_BJZ}Ezhl5vh5r0=wqPSNVZ^P4p z5MD(YHuj8U{e}IOo8FJfH{B}&H3|Z}l3R;Mx}ILm9j5Mt@lsgpgYR0?eA_3Qlvib6i9%Cjz(JJt4o*g6ZKD%bAqONbyH(#fT)Js7{PCUsrLZ>2vu6?=xyfnl+EJ}H zrvo=Re=9Wp9nAgPZC=lfXgxA@lbWXPy1%lZ(W5}M{fE@+%elocICQN^s&v|d0!8Nz zTCgalhUU%-cU#Y0hz$dG>%=naR9=AK_ydYg2a<(6n*B;0j#mG=D@k`+z4<9<5^`N$ zDBM%~rc;(NLh%9OkrsK1a$>&i~Qi^I3ZGn<(_tTtozX$LA07!T; z*9Un8?-`e-xJgwKN}sf=aB{*k4k;crDESl8%ZgsVj$1m5l#jyW*Atu5mLeLcH!rU| z{4pyUr@ncK2R1tg7T?Oad4_p&pXIA8k&F}=SIt@7(@ti*sigdBQsmt3sOw8^p6l$q zJ??0XpN)UQa0U0`K?6-&)$z2Q$lR4EAKt-cG-R*%Uj1X1ffEaiT^QuqYmfwDaJYkP zLVBc2%l0)fD>VOVf*BdoTJ@;X8U}B7uOIZ%xV|#~;P_0{9||>@9hAj#*%?eo96clf zy?l>mga!`Wcc%E?lF*!r6>k0Tp2lU3L;mOmS(55G$F^$vNLCN#s?AacbQUuXu{4d! zu9|YX!x(o9!+w3c-R434^fIFAoU!DbuBvh=h>G*Cf%UPn_o69lKD5X4@Guxp;S5`_4rTj2q?*H0x6&$7~liX$q}0q?k=BaAUd=E*d3E zXCSHsrmKOi(Pj9&6b2TcA>}pmnzne!NHK;D|Qe4nc8R^42xfxj#^dl006A8O!3 zZs~OH@rWuul<&76ZzN%Ob=H#g+pdF1m;a6y~0`sZ8Ii$7U*dGI8W%vq8C9h?6>1_jci zB5U;M-Y1>eLJrJwsu#9omCWy;Z#$pg+jpIU7~<{Q#^uf`ub7wkJ{?ZgK6+s< z#y5SFiF~;FU;2RfGXKj(XY!S7_)_3!2Awb+$g17E+0Z`#9Xc8Wcj0_dN)_QTq%FADW}_b-GR=rnU%$PUApPN z6iR$+G57v_*1q!tW|ClKSJ_xwBSI3%Y2=8FN$gUBhGJ;V*bDrG5LGg)rza=_I*gaq zE<$7&$KDx>s)By_Y;@&a-9mNS+So3L`>lsQ@R_WCyJp!AtxAtf`}`twH&WiN;q(I5 zF;Z@6>iBqeyK@bQSk*lLU2z=t*0XP=tm+w~qSj&8hdH`&LSzIg+^mbES2WNCEI)!x zeAwZ|{jImT{3cSV3Aj=ZiCNKbdeaqsVfd-br8cl~>9c*gL>+g2j`VL+Gn`}KMZP*e zch3(}nyMi0z85|Os#&6Eo_ibhvY+5C#%SvzuUyp~-*(@#v3V(5a>Ce(3k3W4+vo}G zk*sdCh061Zj6Y9N8OY;h{PRlxmC^gO#;>{&yH~G$n{EyC*T{c>YG#@=3Kv-weKzQu zm;-THu|47N5*k!gjJjJhvdjU~@QDakIC1UategEan~THb_IeCN6~eyxvuSXPQ=p-6 zWX=k`zn_1{3;R$uX+LT92sOjR z4)Zyx-9-N~Bj^J0km698$jZZCkLptJe$!yP zT8Ah&t@b4;vy8mcGda^X%Jv5|g|1$XVf@?C$59sL_PM%Cj|^8q8`}6%%E796xT$I~ zx5zu4=^mv44cvv?qnR2@qZYp>lOz58{d{m|yr~L49WswwI>#5=omC$urPViC?0;fk z-g5MSj`TYtqw(Q^@2KEY3gI{6$Cf@ z-W2=)9BeTu z_ND|3l&y^3JrH(~b0K{1YQ zAtx}QoAzREY2$^fZGXC=YNaf`SAW|{4=+ORY{>jFOtZqQC7Jd4SJt701OJ~r6!EW2 zmdKWQOMWgd)NeHg=GV8GuXrgmt`f&AB;FgX^SVd?EWv^b6H48a>QleRQh%-VPE<3? z2h9ADhdHhzpS6$cEGOHHpkyF>KGUK)pIZ*cIZX*i-aYp{Zv4n%fz;z2FRX4Y9 zmpi?XBrH`h|E>6R&-4+d&u(P)=y7vHg)qk6K($Q0_Fc?PaLRi>OttKaa!*Yxq<7;z zhhUZRw9{PQ#a{g?0Sl|f;XLNt4Y~`x_XX)h7a+wl@vv2?6)Eoq z{CdT~8b4C#VZKC4KG{Qc+soNdIaFfaSZ$8MoAo{g=*9_1RWY46=bf61i3huOqOUcw zNCxi8GJG~Q!w~>}8X5*xW<>O!KVz#Xo8X9Lg)qO{WCInDvQpyEkCi8>Vg7%>5qeB4z4x}7Tuj9>DDcMchp}*G4;)*te%y@!EeqwQIm{SH zpIzp&uvc*Rm)c3=iV%VW=lN~p%IDv2#p&t6Eql1PxcIyHEm*9!sOF!fLwar+vKPnQ z37;PUHw6#H!!jfw->x zUXk46FZu?G4Rk&4lEWVrRq}yZ;v&Q?M0niSUx@WJd>Qr6i32QU?7ur3v^pg1I=<(O za-l?X-)rsqpdu;vm=|-vY}JLY{efGsp(Pf2Z`CfTiS*oj#BUmhM(mw=qL~)TVmKQb zK=18{apw=d`~wO%A>pi)k}}hM|ICfRhuu;}o#m!YX8u2f8#HlW`u8U@trP+a%P8j%jNqD z31VW7Y*jOu65Myk46#+fY8D@_9f^rS(&g6gGFEUkuu%MGfwPg{!RDR6SuyCWN8l|` zQe{=Z#UzQauJM7{#c7UU0n2b}T8{QFk_Z4=MJ(to1L#skHa)`a!1~S&>EpS_9{I8N zGc_D?^==xJlRcy^7+KA^wvj%5b%DmxE_t3-G4W5VF>u!cyHLLMvNve+*Hw2G_@mL4!GDA1(nnn)-myzq+UZ#&p@tpqNu7;* zo@}Y28^dprAb#fm=3{ypc$D?sqTyFmm))W@W!&uJ#rx5H+kV9|-wz_GuzKzjdnvR| zI|0tE>2)ztbV6ad>6mU~_R>sJwNYdJ3wwdGv!(9@=+rQyuF z*O$6mRWJAgj`=!0K}p{On!`KOrXv_2OP?%Z1Yj+a(>NU5V7(6f209l6&-e4aHrIQ) z#OGpkSi{$1_s7+Fb#WfO@U(;p*iO5061{M2So6iv>{_;hH0AkWzkNVvGf`R9EQeDk zTZ-Zp>#CYu&&Po(eeIK?FB0@bT%7BWzem}M)UjPMgq7UbUV}4zy>c z@^_AEoVrzp?dK#oSXVB0KO9`^dcZfGSLax>%%?=JwBD}9?;HB_6a8}O07uM^$A{%? z)klS{8RViFDpC3j0rRpltE0dBwJZ-hm*XqKh-{)*h`&GG?z9btX6tSW#$d>`oJxspSYlj-#`(`-y#6xM)bB z!`uG8-xzMM!E?{}RIVsfp?zD(i#UcP?FyZn)P!8@7g1!;T>(CPY9Z|0UY-5d3*$fFdmD!7-Y^%>mH(c?>$lN+xhCr48E*qWGKPsK9ch+dnn+2cd_tCP&X_6_ zHNHHvXi;7~3Ltx6$>FlO$~Z1@>oBCNzJS3^&ixJZj*8J6v^VMxNmyO}V^vk@tVAp& z{UnzxQrYx4PZL=P(Y=AG%rri-aH3~P=fsdR)O95CDwr_EQ6^SUjg^gVa<5hTCGU0J z*ZkaNY?Ccs9dve9iKeonvmHvV!xC<~a<}j66iM^ZdUO=Ae56-1$N&0qo`B_vaO(%x zRs4?$T(rAyle+4p8A{FWUzfMFO5{S9wbgcurmCd5Hw=&ehH2Pdc)m{M=ot%fpiR|L z*Vm5^VjkX_?J`K8O3LLq^Gu;p{v2l&E6lyU6nHEt9i2}mX$;ZfIn3bNHGo;p0WlUa zR1jE;fX-!M_NHh@{5TTgvJtAgQtK&(HTGjr311_mr|sE+aW15VYZz{p-F>5lnl&|c z_yJAhpc@yIfd!w{#Hv;kVHTFI!0s$*&)qpAKj&HzKGUFo1mykTq)K=mI7iXImSn3N|1*8kzmP|oY>|FOFKe=W*t%l9}> zg!TU8TP#onK+=D6g=(2a{-l#2h@%X^Fa=FJ>K_;wV{nR3?q(N!N^NyZuQ-q_e9LB) z$B>%yt*Cp|Ltv_|foqcx?K<@&KgQ`BDSk|LtObfh)!RGi7zTmmQIqt{p(FUPQ>H$caAoIFeCB zdWD0z+msJ`^MeON&-DGQ%|4jQfc>E2zhr9nSMWDEym5RRoV8b~bdF+(M1`5ZObQ(NU<`HJJIG7Yzk&D1FyZFTMW`{CNpq!(V4{ zP(^;M{78S~f)76(MC(!CR2)sS^`9}>aI8d1ek=HzsHmve3K^#~fVLCXha%Bf3$gK{ zV_@N(z^$pt9D#bQzP#s8i3*Wn0Mo%yKTFaMOz^ zM6Wt;ivlZ@j{Mu5F<$_$s9+DqpZ57?@NMgI1Dee&!k( zOXDn>A$e>nta7Le5p;sa`!d_zS5fsI-|#~S$LkS3EfboDKCF~XWt>!o2>)tH+!YK~ z;rMY92kZ$A;*@PHTW+N3N5eSQuy=Po=7$xcsfz~@%K_Ncva5lSJsGRfcDwR;+pjGtKjv%m+OpB9(&l8T+StdTr`OOpHzZ zc<)p)DAUwGV2`6wcT#T7Hg3zlB0KVYhMd?4C%D@H^r$B7@3kY8$<~}5HyS3C^j<%g zPE%*Mk+W7nq_n7>y-6*3P1YYH!%T`-OhlvF_$sB^GwLk|v!8jhEQ2$7M)j^?TnH}?-JhJ0l4!12MlHYN7CA31&0&4# z%GiTo>MZFP3#Vi=%k5vOT_h5ioK7TpH}{kX*3?p;j!C7;X*?CS#FMwhDptcxOCj{j zVx_=Q-=aZBA`Y!$xv^Y0z11AFuvE(FO7M{i$-WtU@?811vNly>s+=~y*Oqao^=l8# zjf+~#Hlj@YkY|Ip+D<(#1f+uKg_^{1mAHZk)GG`P)lz0T=zqoNAbCciC_B(Z0?oLz zp$~*sU@dcDWdJGxxSL2w|MgET?G4J)0ZG87)C4%Cz`|AqaJS^%^uEjd#>h);515;C zBYhCy>4!llc%i4ku#<8f1^Q@ARMyf_z|SXq0+Mc@^!THDr=vVJkRq0Zu`alUHL?U) z`^O+-kY)qAxd^CJ(9hcf)B5ef!CxHZ_n^*u!G)FDcKXQ`{)V$Umnc0#)R4!lITJ-D zl)q!7r?Ww7o!2E7UG?U{N)@y@l#e>PHlXxNxR<=MvvZB!CnO}Ughe`^W^6J073v}& zht{q$))Cwi2Mafbt;b#hRZsBzq(tT?v`|?Je8qiv-}VXRq%fWX>HNvg)EGjN!wl4! zEz?^M#PkK-9L9bG$jq(8c5!t*R#R7h_-*ZzIQq@8I>&+#{%7@JdbSp`?fL9n?fFS- zXQK9_762(>Tkg1@NT|js!Zo)DPP_O#>#f)7Kk06JWkyiY!)MlqxXye=%%ar)dASn0 z4!GFWUEt$H`vk9@!s~~g_26?%^<*mZI~ZX9*&q9Kf5&|^un9{SZT?CugNgmjE;0C> zg@*tVrJ`q{aA4T1>Q8if_x3wn+AUta}!u$YQS?zl1}oJ%*$k$)2A*eo@`;tq-Zgb`DZjYjC25^J zM=|wz;;-4-!e9@NVfx<(i4)f43GL%@)h(mywa{zy7EcT*;*3%m^20-Z!Y5%W%Sp3D z{+?o0Qz=%}0vfxWhOZ7vlwxj-Plb&+U);=2l0H+Z21tV)A+A`N^FyCCP(J(mSowPA z0Tg}$5A@E+-)iFV#E&080{y+9uZoR3<>h7xc{m4MIEOqCCyDxQQX>gRB!A(}2E$XR zk%vKW3|KJ6lrHcR7~Ow+Z(xX@Pw9FX-q&j^1%$M7YqlchqzTx_<}Yyw_2yt(`GskH z7^a5_z4-FpPCGUR?uN0uw^$1N;V0wpd!1WrNI`i8i$tUutjj_jjY}5lhKeNX5CR|y zz`%)=elGzx%8vgB{z8k!ex!lWC-?9HAzuRUWRb2F%h_Q|0}q|q=-<_+w7VYn!pf&M zg0!f`mwK{cRND2oi)`(&C-BAp z;F%t_i%~o!h$)AmtR7Qr3gk=@!hg)cRCzMvY$gi<~>~!h0xeR(t=0dd59U z8+sY6r+XZQX~VBl{D=&nO<=efGj_TEru>|I6I%#vcSp5k6o+^;UaCGZ>g!!L)lNJ0 z%*T=syfi4j<_-);KU1ucDI`zz!ml2G#A=;V?J)9isw@bNgI;)Db zvhXdu$uVX*lAVr)F`HgjrUb^R#?(CKH*}a+%yyeaVpUNT<0HYb-HpZkDFjv3Ab|dN zbt#A4j!xXkW1J+AOf1PNN{ar)mPK=C3SI`2MQi&YTmwf7h@~O5pd21mR(5bpa-xjv677zDl9;0`Jk} z2a2-0D{}g^FUcL#gzeS*bZ*d*V!WO>W1e7Kz^nHBa{ZoMx!tqq+xwNI=({rZ%zjcf zscQjix%wZ;*GUE z3F@&d*%hoQjAB#1ai$@D{SOqw1MV@-zB`<>48Jx<+F+u$Rl2tvrvf1(+L7Q#xGpwZ z7_TfL7xPqdsuIk2pkmzp6Gh{aDd}6imRdxJx;kd+T$5hj^0s}0M1u6KYW9|8q&_|& z2u?KtUA=d%<0cqPEG+VlN(8eJ#@)}T9AI$L-3k*!a08|o7X!flL5)4r8Ju^^O0XJ& zy5*6|A#;81^RW7zgSX7H!F7y&l|5ax@jEmzuKkQpNJtbKc^7|(ze7!;`#mO`%GeBC z6BX@eYi~W94ZYF@2azOf%`kpExum*N zZm7P@&UP$v>waKd<|pf6G^m}-A9`M6Geka!<$0x>o+)N;Ia(lA2hTv=?eV%q?4Job z+PI~6aT)q&>R21#4-Ktl_gSlJCC*4 zL_1*XDV40SmMzK?i2a9ZSLJ%G{W8ycMK_&<`Rm;Vvs;`p&;nRBYFW7lD?ER>cI>xE z1g?$~eFM|qV9ba5apD7&bbybSm)Bt_>%qfj*Ks*sx)UC&2od5EEsu32PHSTfk9-4l zlXI2aXcYtX&adILpTCf_z3JZH&#rdQmBVJeL!pwxPrdrNE!4EMh>4T3wC0Ys7 zS3>bCS=f(;XWP#X$?a#p$zOdky|s&kh<*Ipf=D@Hw~YV#wOzKSC8|D`Rbtck z?B{iw^-Er|2662+eTi?R2KL zZCT@nbR>>UvJ2zva9Yt{z$B*o@mZjketJJX{wp0EHGpX)I_&FsA#y5&{NKu({e{tPgszkCHu^h%?>T`>LlCK>RhEmL-YS-?EHd30cEBw*Ue;1)(^KD_YkhBOXn8<#G zdaW!7<^hMnrPr3#AYSw1c!$Af39aszgM$Mk2iX24gKa4PYoto03Q*X4^P_oobBE5J zf=t!t1EzA$TSHFn9%1h^%1X(NdCJ({a^dtT#*@R7Lq-9j_T<@DOLkHz>)$XN5GBn} zS{4w8GwQ^8jzkU*MG|nO4=Or1y>@l>XI39s55qyXEx303Is_SJx;5U)tr95frt2lb zNufrB;?uLD&f%}VAE9S~@>8iaodbme}}W z#0%ui+JdB98ckn7;XPMr8QzaFph%vu=lP(&hsaT(rt0==-5vy1fM5zHxt~Dyya3N)dv8{-)(iV0b4X&CYC0L!GHpYxaqm@ubNitR0!@fz=5qG1spwzd*Lry*MRJf z_|~38p$XprYLo*G3Dw3Ukogk>ZJ3xk!0F+>9!rFM1(oO-!*CylOCTDb#tVG0q+Hy_ zwPkQgvGG!Z*z+o%Nj{25aLT_t#((|OL~SW#Uh)Y==iI`<^DQKr9PFT_r`Ogf5$ppO|y{O9^2;z0AV=-$?6&3;YgH;$~SpDObuV%zV(Ys!ps#P~seC=|3GxAQdS4 z&?lxqvi~nE7+ZvXat`;pcGWJD1$&L%am^;(71=C!6d> z0>Ur{)3v%KYm{jc7K&ZM{I2ZfH$|I}yKkv&vY&9S~5Y&!S7 z99@G*j}vT>u!ZGYusQ_QDWVc+Z?x|JpQTj=>EHs&B?`;@x1q-WsC%z2DHmd7Im~!% zFfM{uq*@pklr$KI5e8i;B5AB~nU|oZgS`u((dVsY&>rV!3D{ge7)Pr2B~ZP0n&gqg zb%sp>GC7|i8UUS^T5zRhC5L?B)5(OT9TXBgTs})wdr84yVYI$PwY)EB9559Q?xT>e*sQ9;ZN@lDyT~ zgRkfuz^uaH?DK0r>#kLZS$duu^)$YZ#A|EYGu>J_>4e4rR36fi}!0(gl*DSk>SqS4AW7cEMJZzU^_O?ew?#rXY*|W^dv7@zS7Z z!|7tr`@T1XiOi{40M*h8=;Y91xL5%)%A01^Gpu(Kq)5JE+jl{}KW^NpXep5E%BD~! zR>aW~h-QWD6GwwsQwZ2;wCe_<28aN#U2VXTyZeUa?|hxdj*gC7iFz*bX!&DsbWOW_ zZkd}id6B-UDpwIY8VZ7>C~QAE3VjWpL%K@!R@m*s`Q?8{TSw9Erh{5sbjAI)s9oE6 zUxxN$=|3wUj~=-`GMB(`y&U(`{8qP~82=kJ z8=aZ(tG8D1^UM)Lq}$1AF3q?yp`S}yX@K{-33KAp@Q404wxxOJ&Hx5O#irWZuX6i; zSZot>k19B1RW?u@m34FlxU4Z#GV{Uj{BIpiC+h0-oMWsx?w{TiWiV@4ZSSNaHINd- zdw%iSpMCDM$-s3-u#+N<`{F_-!lf68drE zukZ1Hwolo_a_>bl^yL~5FwY)4o^Sy9!!XbjrCr}su(q?Cy=`EsGYsMvqLUcOPL|G# zF4*ouP|MUy-{OIs(1p*Q|&mC)b zQrJJUNuPQpoVCZC?(uAD-`NO#K)9jW)O-8RwzL=iYp#?h=|DYWRoxjt%BAWtbzXDj zE($snN@U}PMD-gpb_Ma{PY$*gif0ciZ0Lb$cPHsS9C#@2`I?s2v0@lX{HEG|{rU47 zT*=i39B^{L9pm1W*DW4!vJcxvG&?Qfe22A${INs@hnVZIk|P>#plK5&sw38K#apx; z2*F*kRzMe{R}BICgAI1^?{_480nFr)QuM1*i1u*sxtV1(9YJvOui1*n^G&sSPM2lJ zQ_Z(G-OjvS1Ag?j5`Jl}-hTOdf!AH7*U7#?^RO!G@_v5#EXWfoVxAfEb31zYJ*WlcPn{^>@y zfw@hv%(y=N-`O`4;jBj`!rx66o%RjRz0@Oxs(>Lyp&0G?Ajzge0k9V5j{nYv zv4&1pFE0Mtcq8uj=^y@Q5CN2pmv@3&!HXgZNDnxT<&!Bwi;&2HG-sZzcj3~|)Hv_m z`i3eZAiF4=oYdY48le%4uEVWHQcW7JTRsZW^LWx}meO7Z7m`rK_=f~JTicDJAHH>k zpYb`jYFEC;#w%DI>9e9n7tfRMN3aO#Kk9KmtCp>fW@Vt2e!Tm!ME^6r*ptIi&10>T z(@%e01mwhmw%!lXhzQ1pp}YC#6+FJdY}C2-7jV z&I%N%@lnj&I3h7r($lqZXE=hFi*NRbDRR%*j+d@ceQ`36w0T$hOS;z?M?a{+n?l%| z_K#0tZHsf{lNWVw1Pc_TlRtbhRDS)dvIPIZ6Y0arAHjjYf`5noTfdX83QF^bpbI~o zTW(vB(~ic~@z6Az1lP*z{`#orW>~- z7wP8PHpl($h`z-p!i(@bVrZ_~pZzQzfp(+RlqdV(23LdY##Q(Lx%7z}2G^e`Rwh65 zGs@i?-UvkRLC((?em9{xRJX$vthIGe=PDA+a|H@1i*TeW2lAygq59dv z*9O}Qr;4^8cP@YTt&6@+GCMl=50H&S0wOM!Ax2(9f|d2Se^I1`@8{g~XFxy-I$ivI z#iVe$G!jo;^9@9%wE*9C6*KpYK7yTri*HM;UwE9pp6>D<@0Q;y{Hjf3YJOptNQBL| zmKq~@(+Wp_u!pEYGoBtObYHwfS+Vi{067iJuQ}@9g&SVqZJW8#CQ22j_qKm{c)00S zyKK;})sNQW^hfMfWo2bB1k8Z-2gr*jqjq>lOezdH3&m>AL@II83HmlSx~ zoY1AJjwKP;C=WW^^9^lez1QZ`7^H8&G99-L=$3|<;#WTc7eMTKF6d2=luJE-vG|8A z?)F0C6DNqlp@R7Lm#JZJu^ob{#;*Z(# z(@i#++AAr%I;-up^V%kgVtwBbUodeq(NY6*JnSkiIOD96*5um58(_DNzu|a`!w1X1 zr*7x|y@xMq)*9)<2`-+TtG8|MPl|rRtqAa>JZ!3?kY-6rZENz_ov~8}(xkTIrMLkcM(oa=PwZOSew6c#_^( zkG~GzF5V>3k-s1MX5Ivs$SnKz)tA*u^K21H6;B%;jn&_dNtcLheldg}-6^M0%^&#D ze9`1S076m3$|S8UFY^lXY)M5<{fP?mU^!_Z7d(JW{o-ZDG3gaMX;Jkc_0>64@Dqlt zFqHZLyjg%Tq`yxYq1=&A=E*57Z~Vrk^+VJL_3-6bA+fYt&|Z>$Sd{V1Cu!)*cJYMO zvv9n6>S-myICgBLzT*^#&9K3>ed?-p^R?sWono*2MZ#bo+sU$yZBels-dvsQVmP66 zjD`>@6dHj-+zn}ndu|b3!%WH7LpHzQE%R=Ly`#h?`#Xti?ZgnvciiBUu> zz~Pl5Y}Jijn9GNTlPb{ z=OxZsS_XjW%F*I*3U6{dejOpz;oNIL;I5BI8^1i(QEU7A*6>F)Py%;6{~}&i1MODN z_c%K5yY$L*smsp7ag`#9+Zx`woX95AIW;Jat#b5Z?qnu&mN2lUMe`+bAVb#Ywja;t z%S+yx2OFsI9!xQpf#*T6G*DX|08AQ6O#dfJq94i6$OP-q1NEeT_r#`M3UC-EgPiPtke=v7P?nZ zaK@#6bi;$g@H>;t0hhc;UElqVhWM?BrEbk`uVQ3lHwlV zqaj1irfu<=h4DOfpv8!F6x)c;d)ly^r8mP#SN`KuV(Fi91Jkgy-aBoza4TZ6A85UO ze)(%d|8rE!YM`kuH;%a5SuEAbW7l-Gcc+3v0J)X1BB^{y%9OdRZH*UWsgU7!y=7MI zK@k~xPoUbR^Lp#`vClVC2CAzS(Nk^O+U&jvc5#{e^+=_et@;QxEPnVH)r(N03b{*c zH+TALb7-1iBnX&UKFiP$Roj(-v-J4;q&5TureKXBDj*>CW)_t7nfILNZ{*KkFl?#} ze+Ku>x)3Mz%)0f?yk<)wC<6zdSu8^?BK4LgGV}6y44f0VSl7Q8n6oMnXPG!!czObb z0zFi@JzA|WWEwUg#yf>+P?8=k8w{Tzs3_hElIxNrTWA<16waOGgT%_;;eQy`FPjQh zCe{UuYnzmvRXyIPVJzctV#5+9e(zlqT5sQiu4s-}OZdN(SZN<8ix;DAErjsnxnh$B zf#^X{H^wlrIK)-dWUXRv@78yfa!S$$V;8KwAzws$1kx!jpXj5RZcASTbg1It$n^s)+c*dD6U8~vs*)(6Z1cc4scRDZ`L zk-X2hk~eE2?u~t?nVAtM*WPq^C2^l6yq9A{&>2J7KyAe}ydw0VM31%6l7{&k=}VRh zG#D_L&ULLotGN&smSwLwXi7; zxn!*~YJBynJhvir|FA2kx%~v!)+z_aDzKGxH&V1Ky9gZ;iVVY6F<+Ox zl=uEgLFbCY4HxHxOM|3208ouyAG`1sr6b9zD5t-E{kF~xf?8i{D2Y* z1N+P8_^D^| zPN2jd&ct4GyUa?cWCudCCi&&Zk>7`{hRg&3Xn3KT4IaMe@z&hq2j3Da-j0y@Zp5V$!Dn>B^9-nyx}kqa*ko~YJ9u9LOirGNMh#e* z5oyWa&y?kc9id!(+;sz;KBHSa-!hgrA(kY=O`;68QkjhKb5%5;K>u=_=7tC0;3c++ zWwBzau}HY5*Klx$khpbeaFSIV{|-FW&{4YIZuiv8c!eadDz)_x{yX$BDFgKXmK!tnLp)0jn0Oj}f^_EyJ%S0J|D>&4c`yXks5kG_e zL$Qi`Mv5Xhdj<+O+)qPASLOFXR!TvqB`So&SoQiO-IlVODpv*C%O$4 z+p|#~wFh`~#MEk85!ZfzQL%?pMgJa;&4A(n8CvxZaV!L}ikf!v4Mk33AklQU;;_Br z=uv^?08>Y>*-_#OWnWECuj5|92p0%!bIq{$!e_sAw$7~#L}MdxtH7^-+Jp`vagM4E zCk8=V4e;X8gPw0~>o9lTHWm-}I#Ffx7Z%#3JGG9y~ebo2y^bumcEqA^B_LnRjub-$ie zoogb_Q^^MH4?DuH!VhdkQ1zenu&M%s!>H(bL~4$xyP_|)0IXAoqPjKa>SO>sz~y<= z1PmgJ1l0QroOY`&D68mI2w%|}fxdQ(T`B(^uslAki2ob~FZ>JIkeC#uyU zpByh6go;}aIM=^3eyH?mG(fP7L#>M6W33;G3UVgdYZ|&Mj03JKUe@%W5aKqr&2RGs(nE2uLY25vli(Y;TnUa8Mo99pVIlyeC z`tl|N=7YI!EjfKf4>!R~g#ytwh`BR=!s>)f9TZNF5202$N*mEY52bpC0=^({bA|qE zX?0g!qgHWK>v+!!QHPcvwX^WBM@oW82iDJns;_fcKM7pRn*v(mOnq>$fsUMF(93d9 z9Ofe#@GM!W27u%q*`_sj;QIH-b!un6=@<}nC9stUtn|TSiWKt!zdjv!=rf1HY+EUj zdU^1nQozBRI~O>-FU6wyWF$hqYZI@aaUu91^ww#9c|eiEpPa`R2YJp2ixA2IF9)!i zp#V+jzlU(c>|J30HHtP1z9F(>Jp2^f@cgk*Sa(d6rGt=?3ItyyV658B%=Wr+l4wNB zM^*0*Ql6o{RyDm)!hMK#c?{AE+9tpkw{(XrY4*8ux5T%QBiWD4(-B{;-NSOIvre&7 z-zWU}B=IfZZvE<0n4>ld@}(ZC*lLH(k^Rwwu1)pWGe*Ca&YxveQv{LSp)**AHdZ+R;`}utT5&DK`m4 zBu22Vq4FNePicv1xSli0N_czSijKfa%8 zq~w8?VVGT~E`>&vp3?G!1AuFs!xV zr6n|@^=n`5MY8cF7qvt!g?)lvOh8bOzt9<+wcS`1x%F~9FDm`a0)8rXhQLgbRFcTQ z2E+ocK5qtyWSQv0)Q6x~;i>|)2U8fry@&l}fZU+~jAe#+nlz;8mXxsjNj~a?bFAxO zwLnHgBrNf!bqJ-Mo!#9xbhd_acJkB(o2iIDl@xl2fz(O_ygN2H|M=di*KyS6x*VQH zCu%1vUNMN`Fbb1uGw#fe)W5Do%lLJ4RuXX+b^t>|++@4bHO5zV2pt zS494VfJ+g;!bAoO`08tp7`;}Hq11w59}ywZpNN*GkNE1&Q!=bjIkP7KitgqZG4(QJ zq7JGA9SqX*BXaTUbSb6$JOSV**Okhc_Bx#vl~zzx<&pzATZqKlnY7X(%(ndU1sJvA zWg-?ETK%-rXXdw!tglEl=0G7C!;}|r2=_bP7fpF-;fV-@?|V6h)Mx3ZU|TmK+eo;z zpI_r#edH&g<3h|dH7hGtKIt`p47-`+;62)F{LWJ`dI#q`+0W7O8(@#EEvd9q?i8rc^%88cCF z!j8G#c2Ok;U0V!RCLo%~eXTGb(d88~43lHm{IAtN4kcW{-Y^yWlou~<_gKO)Wc_<< zY!!}VP`4N)Jh#9C2(O*y1P2nu2J1-by8<8IL?aoZTX8!kV(lZtzLK$xy49EHO?Iylj11`u`BG6T|$3K6r+JT*5 z?mhB^QVKaT)^hr;Ex*6Q*Azk3;KKQw>MBU>NBGTS6^c4HTrS{9uOfV>iUh znenvBNq%&aKoNwfXOV|*Hy7L%$d9l7@&6GwAZ<1U#Q*Z>yGR9<15x*9VRq_nxj$D; zP3$D@tzwv)I2ZIG$l+f~q?vyIdgQJ4qweCBFliN5@;ZZ58VNn2a)Fvx|1MRS7BC_i zxxxB+ub60im-D|j5+_FY1$EUg&5~0WIJezj{mV`uZg`MR0{UIjb4zE@xWSEF{A0F) z5#s0A)v|n@_bOPHztNsWie%&UYnq@OI4HF0TfVqoY&`$Az89jV=xTbFFK?l?T)7b~ z2K>@|+G0`tOaRkqT7_OWm4CoR=%(6>b<(-LCNQ3p$>h=~a%%neePot8$Xm5sCAB7Q zf5xOnj`?TwcK6$3-5Oh6m1ZmkMKj9-76v)XQWiWm#<9xoSHp<~WbFUQsfZgRu+*$S zh2^)~gSWA_D>*w2c~TQgz1#M9vY|Amlk&UQMIt{gAzJTpX3K@#fw~v_m*C)D&|Ar5crx)Klh2I4AoN$|Q+ZT-95 z6k?rt3`F*a2x-MaCbf3qpra9XJbd2vhc(XZ-!bt4Yp?m&Q~L-AI+NU+x=Dg5Xpgwb zI6ezjjQRgVuHTCFDw?V6iY>VI))BmTL%@wlsmaHdXADaF&ZQu%;NB`q$fb55Gm)E; zVtI`H?@8rxgTt)j?|yVox%BG7mWo5ckUrW%)kWyFW~$NC5wax@)Yw{m+7U9+E&UErK6P)LQA5jVI+l zBo9aBGe70trch_*2+LY&Sb5FCFDs)5iv(cl0gB)cX&2`O7!mRNDr!RZ-F_I+S!F-Q zOhbLcu?+P=4xSbQCPN=+7%b}#g?&W0VVQQg9m{iq_LdsG()+h0pQNyC*Evsjrcy4! zhi3!jmH#BUFskY-DJc=O{m2;0eYOPBX7qyICLCy5CJK6opujf6`U6D*x~B-1?RC{> zFy=?0=?~w*^;i%MdJfnf+7M5f!>S)~fgGa1mmnzr}}t9vbg{oVp*(y7KZD60(k z>4ByS@q>R*8;bw@)HWd@yqGtG)cRQVq}QZb_f2_-z!>6Gl%5VX7A0r3^v#>40jCEj zugPSYk^Fdzg&y1=R^b38ByE6Uu!z<^Kh&wdSb?(jn?sK@4xs*`(wAk%XHRW?stoi# zoHXdnt^FfquAu6zH8ExmcYw=A+Vc1{Ai}FzatIzCREROw%s&qu*XktB@UkN(b8VVUTb%m_8l0w zfrqASX9Coj7l>Hsaa1jsKMGa_=Y#fk(}Qu~DnoY>-;V~F zUafI!pQVyFuU}toYX_&Yi=rr;{4qs+12RcBlh7EGP1=H542*PQjEm}dDUdon|0S2Ex_ zWaKufPtI+GRt`FiA_JrAO*HQ6;NCzOL70VjimD`|1;&Do!6#h|qW}cXUWbSOM~gA# z(2yWsmk%uLI8^3|9gUcfnHpgVGaL9qUy%c^nXlzofg&yaeBS~*3u|wvGE(S24)ymZ z$MtnLgDzmO;>}J4W*M-f0}XQJ^JVLh>Adw)`nd zWN-|iQky+8jGV5_S~;+wZTt&(G;-ME#iU>n11Zyv8}l{*UE9YO=8zmVQ6RYrKbrA8 zJy`eo3j_CM=j*VxR?PQc4g6FP-cg(Q3EotwQr|;V+v8#%cJMN}EElQY3rCt5pgq08 ze3C44broiKI?p)dnaH5z!L{v=xCv^cM3?TAStov?vzGAR6M&mz)h7iDv*UbFxfowLQqI4-eTSu6-_wp>#kPSYsA;lPMfp zePVKP3wX^%%|!IRaU@GgA4p)-AB1+KZ>PeIa!P9q2F!E48(K4`2_iA9^NK1bCTN5?4=bgfCKSxKe{-Pj1=$|o}{Ev??m(|S-O1Lp_&9KG1N1+*=Z6RxjsA=-JNf_t?W(?-j+Qwpy7p3O|soVmSe3fWQ1m2 zm}$OBWC;oTDrC0@3@-%fBxO-Nlsti6QFq}hemG)SM zXkyqkOmNpuzA@uffVT-o9gc8cN18$x*bnocVeE12tjQFG&LS1A-J>v!lv;vtESZrp=0rtT~=c`cyW2T(ki25AK>(IW1q0vShjphi3I#fkt> zZa+V^ih2iBeLAC-Cq*E$$B8Ez>@DOLDW0B@%BIxKESmm%nblOriY zIQzC+8(a=N1}_h`rc-_|!g6M9AQ6$m0nli|Bj)vf6vmk+MZ;cZt{nlpiXw*LXK?5h z5v^q0k2&+W@4un{as)OQG877~xvJth>f~b2@22G@bEEv3nhS?;)Q6k&?Z)BpD{J}s zO5o5C$I_$i9mY*EALM<3;}ph#xwh8~olmlFBrl9DxBZT`z(ltHrVuzYuNp=tD=q@} zvz6Q`??sGWu8okYc6>Db`-a9T00m#vaTLvnIP>mrw`J=nfPg8SsqmA+-~Yky8Go(x5KXaK3r$tLhR|fL9xFcD z(}cSDz$hUR5$V5mx$F$@M-L}baQ^|LGTy&HsZ4JbVDQ=&;~kZqvz}T7o)`GI9V@4iUILI9ORj6--nIbz-FNz@CZ&Oxl4j4Sli8OkKr*PI9a@kTKJmcBnoB+?Oh(4MqI$JQJo6 z7LW|+qr7T2MQnxleGj-SVKQxk*6Q)kNmn>F@LKu8)&pGGlqXR^Gjyv1(#dz<-+uh3 zIwLZmfW#!XV@JUQy=PYhxH|A!{!y-^{dlyCu$_{okGfCr75x+kQ|DiTDgdE>LQg&jEmeQ>%i{ zCe&KRg;Kn|m%ggBc;gb=xRKoC?bRL*uu#0W%=;!);$KqS5EXLiqMZ_z&-=N8-k zf_RY&Z20%Aof|@yP#@1!tjGKAy;lI?Aq_*OiU9zJ#^WdIrgeKY2OJ-O4Q`;u^O#y4 zuz`1D+hvLM_d17Jxd*LBmZQ66rW)!68IYi(Xf$jG>PcA(`;uSA4u;|nSUZgq*O7}Z zG(o5}wl73}KZRYkk`Rm?#J-!?)MP(gOLX!EZqdWf*NS@#W#wQ0H`%1JfY@}r`O!Lz z3}on+f1&FG=lY}#GgRNhdL>-V2Fe&NYUGC|I#%w?=H>@@-@n8A*Ta0X?W9P5n0z`; zGm)F?t1ZeSIRt&|^9Y1v9^2MDw!y~0^C8`aK3()Bt{N{Km$H87#GFpy`Yy^Jkv`77 zMj8k-GqOyw_oH>KTNrC_Ty(6rWOiQsZ|Xv5bK`0NG5sz~3}=34yD&Y?;HbfW8-PTP zit_oX`pzUOGuV^>F?JXK4|oe6LIM>;Z*deohwT;A$z!r zb>^i|QcyqiX#b@w2@U{~Vyn;14gX8`uI$raOvDnp!DCdb@V!x@rur+buMi2JT;r(@ zR4<={G6O2QY94Dl^(6f(?2+v z+{bmrLQf8lgNz0rTktKtY+x=6pO!>ENDnL+)!tQoFG(BKri#{g&WXvRWH}T_9hLcu zYo12Jy+JHX?s3~{ul{PoW{=5U!wb1tgrkYo5S7FqJaP#JS9J|*gO6x^A5vbVEh8ZyUo zG%UI6UYH99QyQ9Z;FVue+I)A6kuUsK*Ad*;xa|b-bUt&5A3$F_b;6~36esVV?aezd5>O&Yy5>4oyW^^ zBu9BQ%)uLiRP5<&0C%$3w`rfsA>?O@lwTG_98gHVM-ehgQG{)U6w-!>LgedQ zFjoRt%Q-gIRHrbiPico6u(a@MC)?_Z=itN*l9qH|L&mGUL&}%ZF+(aaOsmcaC%+yO7_yi{L|EK z+GO^mFJ$Pd^ro{u?sZD!_HQU7v6Md5FZ^X3HO)JtN^J@cLo00`VjkVYouc~k4xt{_ z&}B+fVQD~BiGnL72QZo^JMfogbFofW-k6?ZKIFCnOvyg?4|1N(wCgCCxWyz}uF7Mf~{Bm>9w!2Gl4=NF>bL0lSvswR#xL-V{m(JdGKgTP@#~ZE7Xm%%2J-x zQKXtI`8w=&C_`N=fA3oNxnQo4(rb}@H$^c5+k5!sJZ|%K{%thEo#0mgSbjHsLz&eo z3RdM=4*M^?3T_G8k~3sZtEptWyRw;+m++6VM(U}QfsIC;72ZP7&mK9$Mpl_$Lmujy z8duJ{)SB|5!x-MZS2#MP=}VIPAbeNgBr3$MWGscsRIc%Lb)klwzX5YjY*F`DB)g?a z5=SA{-lqmP4N@H;ckfw(CIlN@Y!_j{hA2rFgT<;P!q%ptI;Z6pBke?3m`xbBPAtf3 zQkf78uxl9M2GHtQt&?*GHk91M>0zN`z(B|pN;$$c@O=8(u%;-L9R&ft)+xlm-guqG ztJ+nclv6uH)mo~4%9o~*%>4D&j$H9PWD;6jDt2ma1%C%7#OHEd)=G4zkctBPMg?bj z3Fg5oYMz1Gg1o%EC%sV-w5r8oaxn5Jg8_QU0~=T3T?gHZZDA|3FHLyccyDHbOsDh) zlH)${*Nu!-E^pMp{Fb!B;Y*Q@H5>h88%f?89+X~a|MVT|jHvmi;EqT1tg})6fRbM} z_anEThhTda21>>Dv+JLG>94eWeX9Y&IJwlY06O<&lIG)drOx|aFxQV$iKv-SB?F!TfzT5{o)7xt1ZDh*n%jB*(t1Y8 z=vfHqk<2%&eqB@eOAjTZo%b$1WIoGhS7W*H3ez;CE%nriUvc6cUo93cj(dlo92D54 zl25@^)nvv0kh25^TiTnlJ&iudZMxpAzc0)qg6JLc(*$ zjT^Ql?*ukPj|fLgYziq&`N6aLVe;<>Q7{hBB_Jg{EZkM0yIEtK(q>qM61snNmPGj%Qdkf za~&pbTWB=kQ+TIjHoq=#=q-6#NNV4|yMcbY492^#c-+ow;u%W*DT`%y7`>JZ4V zdrH;3#H1UX?-e$_RDK1QjwxqYBoogjO0wWXZ|DxN4ItQ$2PzBD9_NrTt5NI_0^uyx zHKE=M_Khw1d&F&nI^zdKx92RswpF=#>FBzz-#R(1cm7mzR}Y*Y8-NL);%=!?E%{{1 zMp=+_(>;5o(_@O`zs+Z2PL6Ylzk(~$@K7dtk`F)X>r!z)uVx?{zICNd<0+6{$FPns zW8fLVDp)Tav0shleqm@l(vfjs^`8C=j|EHWn(fb+r8i+u!YG0-q(Er^4f_TFK|2`} zj1?(wSchU^X!!}Y>wKmqq8)ow1pM`w!Jmzl`J;deDg6w zh|3ef*R?EcTlnyHCWO4I-?-&|aY~Q;?JZ^y9oK}J!xFp3GTn3v%hB(^G*GSnwgXR4 zOq<2gFgao;E?O^_?HM>zMSIE@!lnufvG1Uv-nUNqeff+%Sgn0pkZI z-{~fTbd>`XorMb##-N=>u4JBa_49X5x8)zBh23CB0=e1N7GCD0AN_%P^b^>1JqV0q zgVbd39aSSP98?eyq&W$BRNef>$nXy|@jC!`h5T=G|L>3MPR8h|x&8fV(;gmzb&Vpw zm;4l=&#X=sna7J&vqz>%#=H|EFIJWImut9TPzptoh1TJ336TaQovtZ*_E>^CN11i; z&G6u$1W?K(cQs~VV(f7N596cX4p7}uSt^SG$7aM;`b(U@HlLNduH26GII2&e=p}y+N zpY0dCTMidY;5Zjp6YrIE31sd#2I-kVDPk)?jls)CIo-)+yaX?zw)(e|Gl7YzOt1y$ zIcE`#%E_c&!vR&2q=>Z%#3u5P*Q?FGiV zGer*XlLFPJqYe8c8{PX+Jd-ZpNMBxy`!|IjNT>i%DhyUZjBMlsh&8}Qlr+-HD1{*S zua4n5!WCx!seDiigO;pZ9_v9O@d@s0{~r?-RxuF0H}vK1WIg3Z_;sd_dD1z0UXB=; zsV~d~-p)@!DS%c>DSUJ|NTj+{;4Kle;rpv|%ds=}G&nbdW?7!&Nv@9@Pzwyq>ySC7zN&V{M?vFN2CUFbTURrp&p zW?Oyci3e|)aU(O?M#6J+TF>>ldE=rwa<7O|25(7Dr~6bUZd0xu^{T|P2A^%k$fw7X zkwFo6r_Zw}J&#lI435Kg&)`!i%A8=2e#OF_y0@9PS33S{Z1u$hFr zR^v4~b5;WYu-iN*R@Pm90Z7u82MQu1*7!wNE+Cfs`xWPESJdP?kq*RHt#I~(o{v$Y zE^G1y1taVjrN^28c2d(=8tvJ7ip zQ(h9&O?JllX=sRs&}*+bF7S)urKkG21JS&7<}kP3cK^h9m(c8C*D97{X9 zDD<5bXeZDA+gRLX=<6a6h0Q8}c}{!FAIvvfk1ML@$t^WA1qz`m2?uMz$`m`PYYWg~ zt9F-Zp#~)Ep`$%v#|U131>*Lz^JH*lMEy_Pksu^NY3OhP%tQ(QXLR`~R)Adh)H<&;D7N$m`!)?d-KVt((h!L+!rziMDaT8l62V9!;baq^;33;D7OFBs2 zrolTdQ{pMH|6?$6--peV5m#34p|^)3@$ll*=Cz!ovPuc!iRS@g3dM^A648+ z&TyA0aC;b&OeneTs9E-#Q($Qjpa0tNwfTCcpU)-c>q+t6{qSN{XCrm`BqYpDpd0M5|A=q}hh< z9b#!Y^0x8wPvbrnvorlz82j}hbCH9jZESMtIi)u3p`^>$vuP?P#$`;FeO+?5#lCoWDsVG|=Z=HDq0#6!fd765-|BsU1`K7^Y=~D4AY0>9T@XjyxH@LHD+dBZWA7 zXD~HvD6J$tep1G194x06DN8c9*&bZ1yvy>HUe9?DY-&RrqCY&Iinp1-)Qihi!Eec{ z%Rw=!bFYC>Wqr0`-ZjWei{ISEz6AFcBb5nHJU>4IzMD_(Q{DX(-;vDbj5AG~g0NY_ zop9n*;`m(F6I+6tOi;_CjQw?ig{~QkL9=BlXo4e={c!a5CW#^4*UY)mYOHJ2LiQ7+ zUKV$w!Q&Gj<?+Su!5P3MF^D>A`3(y-Ohs%V2Sh0045 z|M`g8hdm};6(a(4guk8ql(q`vQ_AWD8P4?8Ic-A`eFB-A?K;*!?sVJ>xnp0rWP3O5 zWX?nLx^$;ZC;w|(JWnyZyc&=D_{Hgp!nf?reB@L@Sc;bM=QSjpQ*C z;pTE2Tk;)KZ?2>UElo0szCmlCW6|JFcez?rCz$3b!_`oY)C0Fh`=LlW;M%ZfA!Yzw zr(Ek|TlzNfeoM}gnVL5->P~;xScYNJ%O1kcUQENm(yJ`^_|^y{>-}Dx8B4TC^wAW8 z{)g-scDnBhi?P(EJ`+V36ynxSpd89mQ(5-w_^D{qb&w%!^FI{^|1b@7lLxH+XXVP? zoC(WZX!!?yU_bO00HLb3Q=Zcc23SQ_=@$0_fa|gRVL=s8$01nTk*v#+NIWXJGisy+4X z9C8?GYk31%O@t11=%nxps9C8{PkWoI1h%u}*WOZ{P_?Oq1E{V!d1|rW0-I$g@zZ|C`LDe<=gYTj2LKvcjW5i-Rjm{m zZP4 zBXdB5Fdi4RN!y3z_@5uPt-{E>8b~DXb^Kj80VW^HFZ_fwf@Jpg{_%$N^hocM^2lwB z6r7wEagryRe*N31F3%$$Ny$w4fD~_&xwM2+hTZekRUT?FAbWLg1A#yj5dRn2&((3Y zNqZslE-@v=W;e60zw{$m4#a59L0Zlrf5L&%4f%0FA8~IMQd!iEe- zV8FUn_!OL4^(*u~v_+XR5l;h>j#3b5_Uw0HlJxU+LXy~KS?2%YS0~?{v%<3qO$rIN zkO6WtNMym((iw(3FvRKomhPM#m6(>6mY)8-8B0rtdH)l0CDNLYj0#xcpa z-*>zI>!^+o&~hRbN1ujsqu4YIDMlf%W=Fn9=>Lyyn4DPC2N12OXA^aAf_E9}gE}*T@b`8yjul#PColxq5dCAYfdVcK zsX(2}baJ%=sD9a8BR!$1zuZfBMroq~!**oLsxR;S6u=;+3+M_2EQ|vfAw+ndnN-;e zjc$yz0}3fwSp%bNuOKlVk1W;p|9l_k^tsc^Ry8`cOkt#^YR}bShJ`YuA&$8juz4n~ z^J4wo2$L&k0*dx8bI%CDKz|h#?9R}D6GAIUePW@;{}%Bc>oKhV@4q%qbNrThtThKN zW?@`c&Y``rLwpLwAvton#4Dx)Jsk!xGYhck!pVw2TA^y&=~WAUI!7|vnZi!wwBag- zC^plnoS4Htih>G1*qgbpC$tg(_k{)9u=T0OM#|!iHU|y=sw_Higba>DqQmL4@&Oi7 z^DTT?20s>jp9t@~Cw%=W3@G}`7)BDd72Y@eF6gRttWo|y*8Mk zi%#zMO!T4*Sif}Ha;evL+23ruYj0;qc0Y7(Ei)-e7fubJ)k#kvQ^xDYM^a1J9d5Kd z`5Dfa)`YyLW}rt;N1(Q^dn5TdoPF?dagx$P&%$oRSf%zU7(3F!Tc3sBk;Sdh?;cxi{g&`E%8;?~+QF z+I~q?q6vs*+ImsSrCy=xf7}#x$m$FtM@P*gEWD%cd<;Rw4aIG$T7^ezk}`a+Ers@F zWtGUVig`|6GiFr#c9HzqNvLv)Wp9Q6W%cRO)zicT3Nrov2seJh$@6m3C)PIP3=LNY zShC5b_eic&7&Rw;(`59rAuc_UE#umaBb_o;w)~t%g2daxaG7FBQP#8lwarJ`pb%5J zcijNVwf#=yZ66Icd)WNv>_10Z@`2y0vF~|Fb`R541jf{tkrNw@(LJ%!nKUfm7hl4y z+c}CJ47jU0K4C!W{m$Px&bGw2>nH;A{zkd3N;Z|rEh2;i-_GbO8vb{u)dp4+4Rlub zvz$3_tWx?T;sJn2{j&QVXpJ@+bGUZR?M3SZC?x1pP9ap@Lb8Rw4SRJa*kjPpt* z=i{%Kjg>bZN{3YLxt{4`jFm+iY*wa}Y$|cfw`*6XGVO~i51(*c529LFr{s1V57W(V z+h=e#?D|IH_cdpI>Dti-pSv#_{H+vhY1MTh8>ODf`{O+HxMScYW}Bh&9*d5g@Fe?1 zis*p+y~Gld3gq0V&3iHF1{-?+0Go_kEFrnZN_cu@2rg;?=rNjh?$aZ8ZVDPi)^LCC zyzw#5ZhtvUT9^0=RXqQ}XWM*61-klC-*Q!4t2A9pd;h!FCCu6+y5qCogu6;4-=V*^ z8~Sjno3)>;?c-9;4dVSB%T8)M0lJ-!tPy5pcnZ(M9+G%aSVSn^9%DmUsewBSGf1oe zEM5LzTm?>J1PFXQCj3^DR1*OJs{>eTSQDp)C{ zIW0~b40GSVe}7R{_L=Aaa$~JeVcRGQvfnLmYifVGw>+AK(9oa*g~!I*w{O8xO3Z7^ zFxoP~KFOP!${`*c+c!DOtTqSScPp-$w3D3XW@VwMhocVmV8#^)RP2} zYshMTO{{>SBg^i^rAo6%_svF~1{b z%Re+|zoAFN?5c^(N(wC@NK^ZSUdF2@opjn=7>ikp=n0Y5_k1Dn5-YNbu2bW~I|=`( z&Jbz-bX>2myj}CET#uvi=ao_ze~Nuu{YDA01bO0i_36<1t*&UVPLIZF8be$(zW>3~ zUDGsE<4y!K2!{PSDQbcftP(H&_3KVYukH<^aXzJ=tpQ%|6I#< ze&dnyQPWZSqwUm%K+3y`0 zYws*IOV*5KEeWibX26huv{!PcufJVM1i#ImIQ#?NNmjY;PC#>}0HuI4c_sD#Cs@4_ zxd+aMEI93{y1Dl?g!u+StC1_$7tlDnAVIErnCkoDQWDd0hI?;OL$$X%_n;3u)EDsP zio6+ezw=F}4`sHfD~~pwL^vzV{`el2cX({f!Cup%F7k z_3Qc9Zp4MN+;AyXPb=Z4>(YHom)G2+tHtL3`Ks4Z*W}921Z8^D$*Ndg1&%$**Ce#> z>J5uDjbXQK+mGcb`WWxI;n?g$6v(c7FN?(F0T3>A8(brW{h9k;8N0CA+b}H3Sf_}} z;9ZZIs{ZGY7J?q7yJr?jlSw0b%c9;Y>5ZQH^1zax^~UhkfM{fO&b^8t8m=xs>ojua zosJi{HqC0H|Br&mr3rM2DD4uvtDzqL!(|?ZOb_B7dUm6kzdhs*Fb+%%M2#Mo7Zp*G z4ERuFbZGar-9xshOyQ3OAyTmpaPHq(&6H5&j&+?b3Tqb9^R)R(e_ zAgTjv%QdM(4ntIb!>}ADw5Ktyy8D>+=76-IPvjR5y;K&qc*$3*>v^?46kkCVff|jL zjsP)J82{(<+AJ_u3Cc_IzS7v`R%5+vnX>;Q0#MHai?9E>JcvZN_D}Wouj}Ks8XSJh zp3f+Ay4hLG_$>W=jT$F`eq{Rn&-u3wZSt4TF8k@0WLwv=s_v|1eFw86*_8D*akGnL z^)+67l^f3xYnKV{ZwDt786LOenJDxR^O&$;kt*X3dXbWfZH07QB}V^ap(Dk#5p(KE z%oQ`FtFt$v?DGZpKGukGR0y?_ZH6+boi4c&86hcE5<3#Pg~zt*_PwI+`Ls}0*2nb4 zj0@pA(q;x`W}l^f0`Hp5i(nA`JdMjy6@EZP#X!cuFjhDe@Z`b$1j08)RS!RvzpF2b zb>=pyn0jQ|IQW;4z;lpZY?QHu;UM(d29Y4vYlp{Pj;_V%qq>F>VG%fAh$_wAO2{lu zZtonad6Q9yH6lqBTJeYZnHhS9*3(a_`389Tw40L~1Al+@Yo88yyf_)lOU*W+GD<&L z?c{FwzSngpDVLVq;O7{N%PV#kRd(_o2eb3@-Y*0K4^wFirk~Ffda}PWGYqx2BFZMF z871lT{`_mk%#9?J*(bLrc%?S{&)$zDo3F(gEZH(-B}Cb++`2_65}rvpH%%3E2dQ4{H#&qWu<9H4eXt;L)5sLx+kVbt_S!h`UhjCjcc6se2mcfz zZ5m(>!RPZ!RI(W@K_`iGT@-$*_LpnGhR!ekXW8{if=5HKW^;d+Z0!t?jVm^sH>R&H zjJkKH5lyxqZ9G4goqN$IkTz-MKs4#z)}p4ohi6m^CaoVoYR2py0{eUhgrcZ@!1i@7 z4yH@+`s(iPKCDtq%OJ^<^nM7%i)s;3hLd&EytVv&@h6qp4(Nw~-CFgYdt`axkd2cQ zl~^JGdrTGvI;LBbo)eB&AMC)D)O<7HmQ%asm{WXf_nYT?uHkAAXX@~zZ@LMpl5c}J zv2qf77SUOv5aYua67M=*617F0#%Iyi3i!u(B?qE&HFQ+KDd?%@Fqd;cYAE8G;d^eKPBjQ5C4|$KIk&+L8# zf6n@W_R4bIqflGzRo;sIgBTlrC228tin2e}#h!gf&K@2GEs>Z_Kb}OV9k5K))d}}# zmeXiHmpBBTWn^qD@*F%$pv2=dOtURHlU+cg+6e^uhL;LB4}Q)yzqJMNkcbpu0$+aM zl$(0~7@G-t4eXq@Rb*d@>#3Pd%A`K}6|JNANp%mg8tSJdO#=2GuT8fwP$o%ng}hhO z-og!ZwfKG$y>2RS!g8-bpXT~Ze4^G-h{%tLGe`2;!t+znDYfO%9)XI{lE^JH#o6fd z2lJ5$cYaa?NpT=z7?Jg?wNF*hUpF0*;Q<@fUP{@FOYU_yu1wh` z*S$SX)OvSCT(@jep?*4UibAX~?1brKu*F)r=4ieczd;x7y9wzQjp80gyHgg@%@`;o~Y7+t!Z{`vY=w-)k*}>(D3EieB^psreyQ8l?1ws zzMF=PvL3qURIY35&!z-Dj=K$i>-p!jOS%6!xMO%6nU6j)yH|soajPnK@oe&OY6yG+-{;R!N!-QnK-DAPwZP!g`IuI(?3d_~P}?u0CiN|Nb1hLfE*G9}ubB19e@#nw)YGJmh+^Un2*K7qvKmhq+=Hpi)nuGWp zj48^aS4WSGSFZd{xYM0CLbh?o-lc11RgP46BwyBoJ=X9i`$5?~{&+49j_(kr*chM_ z^5;*r)8`jJ;&!$>EDH{@2RfQBbWz5huww-WwEEw7gK|d`W(_4-&I8B#K_9IBOz9{W z`}=!`{qurdVa{SEoa$TdfNL>M%0hz)A_w#e4(-2vO}XfcJV4w0oWObo3rntiN}N!+ zm4;?8$a4z#m!6Q9psFz^y)6b-{YFPM>q^+x$8`6fEuK6pGuM)i?>PTPEz@wVg&?wv z?1c?Nx|S}RtyPymtSVPLoYYjP<6>ns!5Sw_=^*Q*Yiv7TZX^tM8|tPyG7)HEN2CZM5((d~uL;$%7Q*R-nD#<;c1LV|Gx1JLdppRiHN z>t>t+dUwGVhx9>`j+MxP_fy7bAG|`=09&ph%%*&me~v_+@8^n-=Tg)cJk2lpa+VL@10D) z_4CU@QA3uxKnkp%j3c!1c0-c4XzPEB9@k`i5!E<&e&DHDCKH-({CFcqwu&W=vHh&T z!zJS6%FpV#+eeJSPX?s~zKUYLXd8Pu6a-z)iQUNM8_A*@%FU6f9J!^d ztF~Qo7rHlJJs3YS-@~k6zW8#f%#F*S%f!9trgFjjdC^xwuyk>ys>7x%5p&IpdhgaR zoR7wGugGX<#QUG#iV{h`dAr;Zou$V*cMJ#%!=>KgXshy(6<2#KIz4l&;si?@d8YBQ znPsC1a7#$FnMqSuVM%)^m_jsqfzs)3MK>@;T*8o9sZ{>}4!S}5Y-f#g5)KBngSFCM z*+|b3F1o1;cn>b=KM9JHPK1(Zu&C)2n%DkT(;AL|iH=JnVj$SWIrMpc2!X6Oh0E~* zG(TodH%Iiqu;K9vY-8Qe0cn+g7$w?4EBcPQ6QvG(d>`8UM<9=pvg;aM-vKYJx@;3Vg%Bq}&pRPFqS0DU^+ zLq(ZF-<8!Dd`1O=sb6C|mV{<11a8s|s z;oQ3aL*VAsh4QdDZqDPJwGtCC_n6dKv!0QS>9?F+xJufSMKmXXC|i=>W}VVY7c@Qv zKJW|jUO&-~E7dRqFW;O4-)V!H$TmxG_DQ0gr4I<>Xn{ti{>X zUy6~4p7r8g%sj-&(TQxxiz=~M&pvEdUS06*G+xI{u~F3yaCsoKYZ5y9 zZ=19j(HkZqp(2RvXQY#I^0N-9B8g>laC2OY=#tFX@5OdSl+ORKFV4`cep)g)nok0& z_6hHs5{t{hIsTJs_crcU|9E4UC&UQr}TzPmW6Lks5<5o6IYjw}gvbKgN<)?XY zua%3TCmULvefhPL{xMzv-Rk|doW;P?vg;3$Et(6$7X5`Ue^G1D_0+XgE@s*@D?bP& z=1kyyS@CTbS!de9`6)NCT*V>fc(6Q-{+0O5t+qG0e~bvx({|1ORFRET1@-gCYXlKbQk_Vy!nr%m`H>QJY5v9ZLVYM(EBa6c;DRbRzo1N#2?wi0VCyR zksXcK^%EeQK`8)g(7kw=Q@6}=(d_oh%%1gyeK>OdMm?HqXw!a5w{!T8Sh@P9;Ha*c z*DGBt=>#22EfD$KPwMGhZhFN&CRIU{dEZe_NzzM6`4rnZjfqpAo!H`m3TN@URx$@8 zvaRYPon@d3vwy}%xkc=NOV&HhjQQc``K%J?hiV35Px$k6Pf3PUZVp&s*mjufKpsNy+8?4$n^dGgTwIJJ0l{v?zspF1DqtmGxG1Pfrg-W2!U{uB3$C zC(aW@4lkbl{lc1aZ*b)$-@+kM&G(bW9&WM0JIbsh(y?;oKyCX#FZ+y$7ju)}8CD71 zCRmC*gpv4NJAMqACDKfWJb$dZYZWc{lZU$y87^Q zRx3->m`-nHWB(@w=Y45neye8Z7ccVniH|sMNW42w>8-gwdJ&SVDg5-@IpM*r`TH{S zyF2Z@-KY+n;_vMT)3$>xlNuGOUeES=SH`aU*_lcZ=%QmvDE)}qma$zsXuFOr72;Bk zZZ^Rh*b7qthe+;RyT|Wj2TR510!tl7tU(1V1!Cs1xZvxZ7dtHRx}^&ywa|1vyZpO& zqT#eZr#HKF=R3f!NtcY5ClTkRA3a=lX&o__+0HsQzE-iBpiAIVLtKvEN&9;NKi;sy3 z?d8Za4qG?tsAn=(GEI1!;M5qxkVPi?sHwKlH=eik!Vf zKKim+^htYeIHEboU5r!&%v^;k_`hpea~kkpQAFnkcNQ8sQ7ituon(>_I8#GwcbHc4 zTsr<2ZTJxv4;@oi+pnQuH<@gU#7C?TH+mRIWR7&cI?h(zYW&?a`ZQ()J(P{B|I>r9 z!u7ROTY3y(Y+@}>>$}BM@!4_RufDcwP1egAd(&ZzH0K`;Fk_1M&U6+w*2fQNw-auL z`6?9AetTLtYRiRv&VhkxW~+xe!{HYZ7qVf#MNq$eX1M@JfXm*IKxgm{3-J=5LT52L zc+5z&`vc@rhfoD2K+%Z;fFbO|mXpnqcO~;0(+hcXO6C6+*#*@N(H(6SGfzv zg+`1WG8doTeH>a}{qy0w*tA)Rf=)WALgf8#v3&BQRnM+-)^&mwi|e))Dj;LWG)x+1 zJ6yCAc5dqqosJXy>tiJSHm(PRLYSWvxzi>QR{{(YxoT=^zSk;+>sSso(Ga?P!6x}M z>vBWm)h7G06zWr|q~pq(_5azlCZ6r+?#k+gYbKjwBhM@BLU*J&1j2G8BwE>lZ&{wW=)mM?7nWS7!p7 z_09GTYtB@5Bm(s;dB8Pkm=2&|G+t~z& zeEDU_uk`x~1WMpJUH+hQe zG&M8)Bt_gzt6YDki+R}`4R$SibhagBMfEz^(U|k=l}oaO7AF5_I_Ps2jz#dQy2^53 zV0U4^$EwCBCc61?Xb%Mfb7|l*_f!_}F*6`*O9<0A;mhy;edvFf8=Y+wX3MDivGlq5 zMXRj>E}*jtXV=QD?R;o*A87vj5_eAk_4xk%8i}Hj0xmb>LLdTuN#AJh(PD;Me=_hY zZwS=F>TFFYIW<)nq#bZrECI4GUi*@ioLmcT=G;Jr+AU(JFAUkbT|`bS2sHD$d+fQG z{6=+-Wbuw5AsDn%`bp#>w8^!af7>l@Y6D9cdz#I`*f{$HjxDL)^soC23a`HHaC*ei zi=#xHSAEH;A1ix$?t@S^G$aIkBuN<=7eQft!YmHHTjbZTpM!G^%BBN=x#zOafNyJ3?_C9ZXtFFfthTbO>571TTRq^Y_LL zF0d80r=JJ5)3=CsCm?SPTac5yY0>5nB4t$W(EDKX5Yy?l0Lgu@{-R9&4o=a@%j3+b ztN@V*sWlImBbt67O#QbS|F%aNpDq?^`UH)B9|~RF$)dYNZ3Xp0qZa1 zi>+67d!&fRElenOQkgB>)-_@0OVR$L20RSeC%u_70OZ$7Vy>@&ST_}=ues6 z?0}A7YRXUyo#zs|@Na$IpTT&HnwlEt8~R}wN1?*&CTw3c@qGV%#1z=#NO zL+nr(0X6L-nuE*@qSf}to8-}^&7N0kv6QuQ#r8mZt|q#^Mz!bp->XY%6w=}JA^K`0 zI()A~cg+h#DP+5p%BR%s^-oqBc|6F`j0I90o~a0z#^6#ApL|E0O(nQZLi-M0YeT?# ziX>0$r|SiVS8;JMdqPc5zMMUi;qGW*sM1*?3-t|C(iIRlsFcKqKq!gMl_Gy82A!8c zk2AEXjCG6D4$37p!VrIau%XLO!V{q;*VGOUYBXVL0C2xR`7S)1yLJVpi}EjgEur7# zR|++M)davS`HPja2Q#*h!H*AouuyLUYnQn&I%|QTm?nKls&WI(E&C2P76Fj7B1J^M zsU=xtm&K(Q822;KkAaH6#78gsgz>+k=~&yt=C1G*O*jCKdjC-_noT*qBi)8t_Ed?^k~t914$k+}tCO~Pd(8AyqFz*WoH_MU zzR$qvMpu`NP-~~{c)<_k`K5fiVjLR6T1C_hxCbH$J*RMZMVcA$&RMz?Ul^i%7uB(s z(dDI52@hgzhlYkyYRERwU9lqx`P8_ouAGxED(YVwq6u0GP7W>{Ky$8DqL3=bf*fI6 zyj)W34QVm-;SyN8IE8P0Wy$97*{bPV-3SUS>sTeet(9KDxBw1uG%_JX0Y&WtaVL!C zTpHtVa_`@}`ocFZTletcUA$Yh4@;<5*UPayh`s9RaLezJQZ<>fe{3?)lWqCs#`7&; z!fndbXy@PNYmCsGSHph^VTxN(h$z6)#8xC7WmO|5nQZF%6lSBKfWbx-J2f>0rei24 zlYLBIOgpG>qjp^&_Z1c?0{_8EzUwT^@4U8Osvm8Jh5$=0{WY!7NQvnvp(CDwZoZ6| z2Jk6gHW*m}M{<?ExKgj~V6S zyQ~z~!@laoQCzIgJo34iX3yQso>o_yDIn@Q=8BkktW@HH>Sja&4e%6jYvNn%qPTEe z{R>PB8jp77V>W!?g!*b>6cCZ>Rf)(@UvtJMuKDke!nkb6JUful;JU}HkgY2cO3}cMz#p^) zYSP^onw_)_etKgM*O&`nJ_gc9RbdQVy2V{>G+}*1wJKGX3 zLH31|_Sv`fP?vUJo?YE6%MULP5|Zx(K^q4b7cR{&bmwAUYtYM4@-15JeujPl8$1HJ6wCLZc=$rydtB2&K}RPEA_q0GO`@sO=6%P! zeiRB{P>izkv+e#?z%C{{p!ibkOk*?fp{;R%v(9#hgrR8!z%jFVg<~#Sj_qDIgXT=bOmI}BrQ(2n_(r$r&(8j@`7zCw9rFba*nQG_1m;BQA$6qDhr&e34QiRN|SAz zxzlB>33t3yrjf#;-mK%E>bN#XHdgO)FY|}c%V!!atgQL>E7zW%SW*6Rdm5c{w>#gn z>cS+!@@#H$Q9o4Tfui0|kbTM&jbmKD-|sw%QYYaoee`qsuBdl;IPGjiP`m!h(&C5V zUiiO|q*U;s&R!vFH5PIi4$Z6<>wdg79%9_@cbXMLEa}D@7y~}>nT{5^-TPJS9QNtg z8;q`+${1EkI{L4@Ru9m$40y)J#P#2qNa-ACqVqh!*(337HCBp9bA5`7Q_5&2exDuj zZH6YZ+`N#ZeU6>tM_cbem05R_*sWL+dERC8`o3&M6%}!j4~bAtEri9p-D!C$!D-u$ zH~(yLcCxw${_!Mwy~J@gi8VS*$06Z0e+`oV-#=AF1MC#3mx5Zru08`BMP) zmSeh>4xiw){lip2*3w_iB%C~QILvncP1uQb6LW304XRC=(C-|7*PqEb{|pZ^X7gR6 zOa<$#^A8W%ahQvE|GQv(ofn2F=>{zJ9w}SNYbRW9aeiZmxzBA}!uvNatW5sso&aAS#$k2)= zt~+DkHJLo(cb)sK^yTk#dK}fgk!XsB(}ZhI_swM8)f~F3_<5`%<4ZhAm%*(D%3ZdT zEzsv6P8dp~HUFH~sMd0#R9g_FWpPL$LeCH#1bPY=i&v{zhtD2_f%I`%XPUNG3M%h= zsUr^b9vLSmCl~O_+A zPEJmsXH(#TW%Dl}d=A5d*FdY%LlS$y&*QVyg}S=XG5a^=zoU``b!(yZ0L;gO&Xofw zY#19M*r{CU49zPws&9k_ z3V^>aioAX5LPBi0%_vc*+cgy}0q-Y6k?d{)O{KeA- zj%-a_TpUEL8bP`rcEW~uD43mjQ(%XxlNNe-;+&;or>?wND4hT3uE|$md((0R>pZyi zWq?Em%)Lo0R-7qh`32QA=&zKsjZOn^EF@k`{FRJ1`$X50j0A=~5bipG{4qWr@3qg9 zB#d3cTOOx7FJO2DQJR?;inF=VEcuv6+d`$(8vX{X`Ah%i>TGy z2Z7&yzZ$rPyKw$EKX|QIqurqCR;o_&yY_!R^|)paPp#;BAFmxhSy@lslf3s{wv|xu z7}49O(S(SNtzyK%eiJ|g>tczJ2wD=RhI+z>nWZIwBn12ob9Ni9GJrQkIc^Ws7;v`V z2*JMKD7{B3=fM0Kh(=eywNdE?4^=#^@Gl^eQgr4mmigeglYu%M(iUvubM~hMYH%6n znOZ1GV}k&_L6#i^HbBH5*no=UnMBjFOGMrxT_HeoHEqYaUY6lx&)48 zC#5%p`mA)yVx&60gT#0*A?grQ9N7EIx(mIt zd~O5>U$|rOn_xrVprJ)TMA1TuzBb`sfW#1hM#0hKy){F+S;>q4QxAZadXkxv)JeEf zS^{H&5X4I)czEw{0xX#Q93NgzUx^+Ux3VMpnK}EE6WQ`lA+!Ov|1HhIV5nee+Z%sj z0~Sio17v~wIBAqNv1AV*f}a)hcM773XPSJ-JV7q35a4qw_e zPcC2|1|K<$7hpPb@r&d^TR31ADPF@`HbhML-VII5VGwI5JPZChBEzak6_IP@(uIL) ztcp|Poo?l~BWYo?!ULy@e#w;Pvpf0Rc=H};8a}oPt9@j2RP6m>n~@q3a&n%`hK`e9 zfuX~)R@RH3YyO>R;kzaGD=ip?2QMMmT$lN_wjEm0vT#r2yt1hw=bnwV_0p56O4_N; ztMVVgzRNuk;4g`Opvu0yU0(#3`||QKkm1D&{4bxaBanNwl-C}!Ahro`) zDv+l?Kt0^7$W3B<`1C3N6zHJIv)qZ|T%mLS_(JmJBLU}0vYoEt2ATjaeY3}qYcCXq zy+;e)9|kZ~84`lc>GKkW1qDm1#bm7%G!X>|N4Lj^UFUl7cDH{Fd(J3oI>hv_d!QMT zQ~6JcyHZ(k^YC)<4)*?j$u1y%OT6Ub@u2}3<(Zncz4we3b$)*2JWU zhR7g}5ky%R?i>L%P5yO8oaeEZ}M~Vs3<5VdT?HPLu-SCgw9!}+)m^Y z>VhR-817{97Xm7iArPICnOj7vNOXUf=cpx*Gltq0$#Ab~m3;YbKGrfNLy= zPOcZNTt$8UJ{SKb9FcG9ct5cW;wyD9#^4sRI=eHAFSI7c68 zs^~0vbSFWSif#F0@@sd@I}NTyHgeqyS@ez%%?AKr5!du)*?|Aej=z!?W$ zw-l)tz+po;EW<>dWH|(dLr92hT;AGx1+2Mf#EvNN^%Ayk4t5|Q^lg~}^cX-S%iz7v zx5r>~2zI9Y?_NC#=I!>3a0`O+9`PBJgVbgUhg9e$5b=YILWKZ>6uTH28k!NY9ZZxC zIE$mXjdqm8s=}6uT>cT|6k>mzEmL%M0>R*jG_$GY`vA zL?~&8IJ595#>?sLh}JnS7i9fN0}>B`a9sv5C3b^6^v?KC>HF7gIrLpPKv7Locx3nZ3C*4+XNCp z=iB1WO584v?M?qZrA!+CWFK)=q(JzY0YLvi+;4FJ>n|Osok{PNWSrMgokRIl#V%Eq zT4f1TjblTR2!xgw+RM}y{-~r8&WX3jn6-FkB*mTt+7A5aJpDy)i-jC)>hOR-hM_-| zqUQG94dW%UZ(FWpc6f&-@1?lGV?~}mh+FeU8r~Sih=p@ozoG&L?Ic>;?J~2;ifjSy zGbM@$1m3u?GiL1C;~Z*03Sd8V=`yxU@@9R%G3slci9^qyQPsv&{fqDroNR z^71{f!N3=U0ywt`GzT-_?1z02Bz)Z*qr^x)#CulZM7Ak8IXPcn-+}G$M4otzQ1Fvz z4tn9TuzA#1{!qkV!u8kCM8Vxu(w1Q5Nu*9HKf*6;A1hWKBhb)c!m_fBMU}~dQkm|=dj*ZVGaPPEg z?|za+uluHZX)@Vdb#$Y1y6P}OJ*9ZbAnGF1F0jFyI5B0|gBtQz>p;|j+vRgs*~~!_ zRO8XTxv&bp_2CyrHk8^<#1>$NNkPxk5XvL|H0SyTXJBxdIxM{FnI z2`t;Yf9o;zE>$!}b7H7s*$tSM$&4Zq|LKOY!?5vO{1?@Pz1=)Lc~M&OY@%BRzI7nx-mmJ^`YBhp|hsZflVuo2Rj=TwZ)80_@T zoiuHA+&AEtFBg%%&;ZTD#RXxM)otj*{zW~CdP_dp46$xYSS4A!nZ)?NZXG@98(nz|N<)RB z@q*a#BTbvEFVI}pMf(M27a{%93HklXLdlleCWy9RDJ{F<(0VGR2m*sV3aSTs5@om8 zDw`h{$tz-dlqcISSB0bXyKBr8uriJ6BTWOAPU@|I{fmg#mnWK?srZJ?%lik$HtGlLrTpo zk<8|Nd(}z{k)bZk#m+>V7|hJr%zXQvEoOn=Z34Q&iD*%bD0i2?u_`f4e6Otxar&Sv z)$bv|A;uv~{Y&>ZUr|}K{)iQ{#CzMs*lnR1x)o=ymrOGC3wR??$;m=i7U+4l3ac3s!Jf`myl9a})V z-ZH4v;?I;gVB=p*WS8g&4-W^c^YQND&7*0Hpn&~VwG*g-#sC;8!Jb(QVP@!V$`rYQ z)B#AF4s{7w7OcBEx^olEnSk)^dlH7Emm4=IvzO~T&D1iRY}yKgUQ0ni@eewlauH^+ zeBQcv{`I|W&QB~_pGR9!dlmJVtOOazDEXOL%H1DqHdrueFlp-bIQ>-;T{C{39=$v_ zR!y{48%Rp|JHX8BAAT~2Ed3Ngb{Uyw;Um%)A%y7?n;51!K^DFU-tOr?NUG`XB=kZ| z{AiBCd#v}vW8!TioZr8pEO|H72diqQIxC5_(o(unjge7UsCO-3p8`mwh(C`%XVKEo zAi3JVfB$xcWIC`kA>wRc96#8uZkb2%uE5(;fy~JN$~7XG_qCvvJV-)p(z@oGvP{S= z6n@_4zyZsD3ku`iCtun2B)VX$M6K8zTbRHs)+a_N3Dye(#DBs=_x)DwWg3G3QE`rK{sK)x^hFo-wYLd4I@ftWn+* zIyAvcQUgL5+;(|{bI@nZk)~R7_|ySS8aBE_P0&IT z>j;hHIhV8;4T+f1NO0U>GFWN-p`}CCfAK4!ar5h$&9HI+?lzDVDa2xa-oj0$eqSiHpTnIa4|qUfhZfAzgP4>ET;Y2 zIUMZSYLxjH?LU?6hoX^B0KKlz{=u{QDyhex!cI!xe0?Mk8LQZSKc)9P`#UQQ4)_|tqvAClAXI-Pjs21EvjEC=jKXOnL4-TyO zt-Bl0JZ{-7`O#OZ`0Z+&U<`JzC(8c0aMV;$o~Ykox;3^)lA{{H<7^h^5Xa}cdkr-@(}OG8&z7tAYI z@?5{YC4}MNa`@NaXG>inZt{16LAvfHE<>?&czvi^@hNu1ARcrOxf>xMy2vSZ3xiZ! z*?D#5B=Qre`Ete%Y^6jg$Q839L%>2?W)OdBCMSm~ZP=GG6C>ruB9jtVXD#oa`ldSY z1|!vhiu~FyTgQhH^+%1y^Q8WAa*QjQ0>1Joj9d6oWn{3&Dpn^=+^VoUG(MVv5u+r& zo|n}2ApSO1H%k7}0(rrbh;P@MZNu);08{yDYA5Pgui|w9a^D(!{#T8+e%B2Y+)JUI zt#wF`JgCX~a%;m-hfj4)4o$Fp`qG!-kUeb?AH7ns7t?93lZh zfJk$gC?#bHoSlFzB&s)PZr{Fblq(Wi1*6OyTZ|XI8RJ5~`r~(GLJ%7^tFVSjB`ja3 zFX0He*lP<07FO}~pzPn+A0&L_KG1p#h~GjFmG^`1dY<^Gub}=5>(R946RTHI&A?DI z$+Er5GR949bQmf~>oRxlyU(0Y>Y@9Z+Istt4)K8WusmEm1Z#fX@n1s|t}r78;k&(B zOO&Q1#wQ_ZmUVA${iA+qCQ2nhOaH$we@l~}d=fF-_cyekWkkTJ@u-wv9$~TKSC6rG z20UZ?FFBWRZewAYoCNeUU>qC82G%NjdA+NT6M6DgF|L%WJupCoyBd`;*5ima-M&QM*uG)&&2mQ%H4ru@D)?|x=;a?l7tNFncPK2u$twl0?5tF)GcBpEPc6uUyqZ8Z$ZV*qm5@9eGi=jaRMhWGKvH~0JuR1Iv5FC zM>e~$Z%ToD15gZLqcOdj+g6kz#IjWJ^|gCy9z~b*ng>qN0n+^2V{EF>B2jDt-@@|p zE$I+P-o3vkn&GokvE2Xk-+Ox+v)@#yWHL&|~)P_RI(f#qgz7rB|=xlg`oVelg@ zS28>KL1sv5fACtP_0DUAq<&8(PVJSnM_(VU`DyJEPUbE;>YwSW+IyudfsT`S1PP62 zm8Aa~2*1nosDC#BpW4&qf@YBgVP5rlc<~e; z8bS0b{i+O(+2tT;XZ7Y(LFED40I!%=v+WSsX?LR;@04;!T8y*-{>j%@En6M&!@j&& zD{gZ*V|8jW{vmAE0q*MDqa=+rC^*5OFl9>z(7joOEXv$DNfUv!(XFTS0k6gw!O8ES z835!CPALva_Hc=WZHqn7#Qc6QDMTNd#*Hn>YV3;bNz95@bC2NV=bMX5>Fe2MSXYzT z`z*hIEdAi=xTRexJB%@g%js@j;492ZA$KuY64 zw&hTh1P_SR-!62V@CmU@qsn-akAL5D?>@BzWeBR;-=DMF;bw-zxQSW_)S2WJQ*jrW zZZWpXocay|dU7#&`SH{D6nt31gixB~FRMX(%kY z&d6WO!}fg!ohPHgnx`Idi+0HoF^{%g2K2iSxT*UAyRkrDq~;Sj6H*CgXDvLtej8-D^@0w$FePQE^ZL?tuW$+8Q0-0%MfU$4 zL1b}!#mwZ=zMx!xXs6GS!cJ8Ro(6EW-}Jd^Bb4F&mzRurY-7?Rb+ut=wIa-Q!4rP^K5ws!<3LO$x$%qjq%}JHoD`&Td$fz zufx^3ritFm%U}c|=F;sixGyaEzHG^@F9PfaiX~YX64I{M$KA| zbLR`p{CD0tjG-=1m|cA)iXuw!Ig2Bi?yzVoxq?j$WFTfvd6xG$#1$ z!w9oc^nu420x}}<^apJi)aKwI7|+hVfZ(K2SZ%G~AkF%#_VEg?SZU6 z{u9)V=^Elo^c(ds(V;25i3zJMnxGs|)0_|ty1D?Vr$Apdh69AdI-f5z%tyWBFy%7c zn|o}!wq`$@;T%sh;$&fCy-meh=Mdc!}So`#FYr4G<0zS(pVeui{mNa3tHU{@wzsgTUv^FNDe{}jPZ_c>u@dT76 za!QVvo{P~07M?sVMZH1#wL^g?b$dF#yka>eW^NU|Rb=?Dyf!B0$|`vVK;VTjFJN&v zywwi3p76}WoCLcy)L9FMDtDH>*=H6-^pl7X?D->Q9An-mV4RmttOQjKX!Yku`r|5h z$PK~ChT|@dlhYw+fQ9HHVJr)0@9--97?~&kx186t#|uGBus?Yo`NA3Buu!U&iBH7S zDxs0Yb2+#%F~eM!f`~|$hBAVKXE@-X5P_#H^rpa#a>~NSLzTUp0OuG^`0IsdU*!0p zOu%4#y+lO154jfl2AXi>sxMfR9D>}E6K7&c&Nd2Hn`I$StU&5J9G(j(Hu4_BO#`uZ z<2BKr@G(UvB;-O15JoI*RDHtShxI>qd@9LGyU*iF0+Mj<5i$f3sWj9*Rtj3o)rX%? z&)zBcYt5fWmJrnW8T z^3y*=e7sT%@dF`PJuG1g<~3Lo#F^v60^VU3HlB?yi|Xb9hx(Nkfv0wA8^*Bc1O{F) z|28HyT8GiTd;E<2b07>jhi56}Fzzxl%ksiDgl`Qj=;MBu19T=#A?3II!qSKwJ@ z*a^xm$aXE6TqLmz9GLf0L=w`09bt-DEBxyIX9!!{|&*ZeFLbrA|j0tUpZqz z^XPGv-d4O7@!~!Y^%z;B93D%9?`U5|qBpAn7g3D^sc*J*#E+TMWzYImSkrPBrj?rR zsbZl%2;yB2=Fi@5(M9zdRa;M8Y-=A)Er-Hxk`c1Roq(EuSg5Fzo1zZoWNEUQ;~uGh zIeIEPtA9u;ihBd2qII3s~fVzrS2TIJ}QE14wp#hQDi4+hB6o-7tQ72=rIReI;l zNUOsHdu;9+Y&>R%KfG&F*~9g)z{XqqxX~6ojuLP@9WAwC4r?HO*K!$t%3gcHlhUo2 zh3--zov9=#DQRln`g5(msI-(y0?~JOr0pIFYEJ>C!s%Jn}rML9jp4ceB^vc~e|6iBP_5(htqf^5yhL_GuUm%bvf)g@J*ie4#r zyDIda?|rvC#FCqwU+Ki~1GnEFE^m6ckS`2o{pZZO8V)4-a4tn#D+2Pc;gb4r;kS4%EQ?uELTi;e+=vU zY`*NsywvN_UJ%gW`2(KPtq}0VW|_)M#o~)5^y=$3TDG2!3a_rN%EosAM^G77=EBEU z6TeHkFrSmYo2@Nfq^EZe-*u46`Af|0=v~siTlnwXy~6YCzCA`cThSsK{(2hwU_)S3 zx53L&O|&1J(_?uuA9)@u1xGs}?Fe4Wi@ee*Gl5(hs;Qyy ztAHt^g?#!)pT3%5wfDer-U99{hd8yqml5&5r1$+&r47pQCIAvoEK)p`ALr{0c+lTW zaA&0PfgxvIZk|c^anrlM7^Z|o87)+?%^q^EWM7wtD`=%9@?hGj(Sk(j&RLzzo*J+= zmm{?lNK!_RcD#Ywv_bO}F)T3Lf44>uTRSk&s(QhgjkI&Qu9{%8f~Q&BVY_YqLWAb(UVA1N1FE{PT>Aw^i zq0i=D-oHuBMa{Qv`MGXDDypXc>(k^<30l3LxV*eJvA3M0*tHU`*q~TMog_GT>5spS z3kGGvVWih2gu{IwbK}jAF0}Va=85(N;jFuE;MLPy9{&0taxq=KVc0iLPJ+js>t2Xo^Kp+t-{U|T4Ia)L6h@- zM(}#P>yrbU|F3p9W^VmfTRR>VDOp!{LUp1Ktati}Wq+J&W@j358| znY&euHkIdUN9!d~_dYRlLo)nhZ9CMU4lSdYQLUiNJb+McS zc`6q^JYp~VOrl5{@F`oZOo2&vst-8GS9gWveZddSZ6+@#-elZe_W|D`%fsE zeepW(P6~UG`tq8%yDwO(JwBQ$%{D$E=eNf-bs?doYUrZJ) zS7KM!>?tWt0`eYLM0#__k}NL&sw#MuUKz-(pQPe}sdp=}_=PN08XfABdRci(uwBLR zHaT7JXuz3Tk1;7_Yj!lGQ}Rob7tCbSRZZ+gN7VJKckfEyZ^*8Bh6!&( zDh`s7QAM!xc1WlFMMTysDvAz}>Fg-2+#}+B;P8QZzdZ8b+fM4Z65sN34=G5gI$GVcb5~Iz5yt zxj>o^l#S|Fyz9nr1^lO(n@8h!YT}l0G4Qz)LdxnoHRoxI_%Zm%R_d_$ks7d*4eOXN zE-o$@c_Op3vIuU3BB(TH%dPfrNf$gmy^ZY9GPUU6734W%0$f0N%FR)~TbA2Wr&X!* z15fPM_jYPj7F7)mQ-FKCL?*p-=i{(L@wRFC1s7`!@B&>JenDO+d33dfm+1Cu8>tTg zXP=IaGjrgDe-?qBkSgojU#W|~y+*9U8{)7VI?SE-Ofy(zp4yAADw%ChOkF+3)wT$v zAvj=5c;)?LEch8e_>Q=7dN(Ee8>`3E(5IOOO%Q%=5PNFrHzqqk7^i@3F-WF!E^I9C zbWNOA+qG67j{PA@Nn_Z6uOTJ1yw)MrsU5%4UDXMf>Pcp!?wfceWtnnpvnob6);u~Y zQ7LPw7hlNO@IRR1d3+f8@?~gbG?`tTlUzg7E0Wh({HtAS((6d2RE}^T)DO2!LYL~{ z<3{dV2L-1VzyM-KXmw9uT!`!*h9XaVwr1*(IV#}(6ATqz64b<}F=Yk7N{_}LG_ckJ zgeXW-z*?2Z>kNCaW7hBL;`A#cThoi$bkMHUIJ-_^8D;;+kG=2K(^qs{pp?EJ>27<= zRt^4b>c|XZC28f)bw=OSBN;B;6QdW~D#EQ3x`FJ=G?X#e2{T`a#d*E-@FFkC(@wC9ID6=O&HUQKmDcR^MuG z>KCFjjE}LG5RbD`flZi78b#g64bg$N_vxuJ!IcM-k3QpB^atiIr(dSwFk5MZ$p^+& z41&y>It^_vs-KSr>lC)pRhC*U6dlmNDmK-xcjkUI=V%}>KsT)vkJ4*kcGJ46lGHMV z{fby5IM|i2@CJ#)eY&rc<+NL5KTW<`+dQhU-`;=;k$qA5&DPr`n?at& zdJj@1eU%6YQqSVzVrIS6++|T`f*z*70Wc8KCXo{kebk5@iYg{n4Dh)hNGt>nqXcTf zV>Z%I(*t@Q(Z~^p=zi0Ye@r`3Uh-zr9;>Qszeh8%=~cq<+$C!Bb=WwIG+>Mm(UI6O zhGbd#_TZQ<=DbT1o;RAch#~iA-8o$L-~m7cV~H|FUqVWP%2erxfA&_I65fU!8|RGF2YFOam`V~$I{?^9)Zgf3V%Y4Z;2!IicydH zzVcjj@Vc;mv23j{$4h&8_;AqUVXwuGiw}cF^MH(}lRv>oz=LGlKi~hkCCtAZ{Mxjq zZJcO9#mx^Swc(}!r6}{hf+j_}w@u`u13JwHL}^QJWn5smh>fkycpkng9Y;~T zV4v)nBpV~qa2Mqrty?Ikaxzjkv1&E;DB)FN&#tAQ`bbIP-J2X#k#6$z=u`Xb!!)qc z8+pVqCbL5{U@lqzB*?Z^TTm_SQ|Oa{wYsmEpH&DnuDFcr@oEV^CO;A!tEC|7N!Fdg z)_A&Xu^;OEB=^iSsDtb`eJeqlaLt!~~4y%G{I;75w(&U6_NpvL=JV+-#+> z@XWfnUIbg{6|`mlY8{BTD7N8Q#!ndnej`6TF3mBaNaGB6=n6E_1uTf@on}DHF>3W- zFQT9eyKtBR>gV6_k;if!Bu?Vm;aEzR+PEtWQ;i{tGbUYpd(G%`vQ&j)CuJX9g7DCv zx#Zam6i{OsZB1i+b>@}8NWu;g#ZzQVaYPs0Sr#c)XF@@fO;aAgw9bp*?MJQBNN;!5 zcS=~ZZ}M|BX#d!9QC!+rOOf{PHgErX{21)PWN#;$v;|Y*5uJveMW@L7h8pXizS^1J z5z5oUok>J3z^GlNJRB5gqt@siZJ+e0P*|>#wB_dca04GBnD>{EYz>CqqJ%nluj_|( zI9sfVkJ!UcZvNocAaR4iEuj@V+5_5S#W*5#?H1cwRX81!u90+$t%fh)BT?>jTSmKh zL*VeWPmoWQ4x%L#jYM0_DBcCvz8Q z6%#RpFhY96t?TlA8JI*GKiwoK^9NUwk<4BndATSm>X_=lcC}neT-<9T8z>bL9RR>4a1+1dYn4qTvR3X{ypgCOrjJIk zF>FP;R)T|19fC306NyooMtb2hvCQB#K1EkgH=o6PU$;u}e1v=bsoC8%;K6tFND^vj zpI;PA)l>X%wxS_#nN>}56t%vR`m~W$tl=gb-}ZR~#kH`g$mn~aep+zw##By-9F9BX zzW2iNakZY(hsd6)0A>lF8;At?j{po_OnQ zh<-ozgIAP(>#@O~r1^@xn?*@zM|PvGytV@CA;i)rDDFp~YmHfoAOW4_)jEmTk7wY# ztQe-r6?}UmmQj_OR719it~TQv#w)+-q985$DUXsgENKB7D(YH?aTb67UuWuzOE8I+ z+gkRQr5;)$I8%8lrAsKpl8Nxv0j*#Udt$JS&`i?OnuP$KWGZaJ+V!Ros!au&L2ErU zEZ?PIv9Y6welwbxF)X>_IoZ{ayB@b3kdIqq?$BD)v(p=osJ1^IhML|`Pv4UP2A3ZSW^j@fCRNd}YeDBX-Pj(*96JnwvPI9K;ogMR&mOsEpw?i@j+0I*(%e^&j*8lJrSk&+ z%EB(G{UFwfsF4HxpSo=9epAb$B9`U&zC&>lS(yQqi^bg=|Cs^GQt%e2i=LqHmb-ou z4C;IUUiNEz^VpdERDE!4U+ShA`DxX6G72yU2K!+d`QJ|i(OY@N#0u7(%ssr~U^2XQ>f|R}$^1sODDD^Z#Si`QK&I~#phYff9;CteNA_oUfxy{iydc6BhmcT7 zf*)M~5v+|{usm(n6YzsNQ8Gs}F<=uSQqI)=t+P+Xel8&;nOy9**21(Hh2f4|wIgfnIgNs3%x)e2X zOFPJHWqht|4b`N?Wwsvk6x>Mh11KkUR5AB1IZQ|5HA1W!lRvr6!}i?@GK`}$SAed zGJUx=7uT+l(~T9rwQxkHEN-*sxr9z6w zM3Ir?;*;$nR<3tB%mOrxBz3`1F?CT#kB16z&K1MONG|+w{$-W97O|=7NLo zF$p$NWu9#kZ_uSFYg}yfQdT|?*qi<`y|O1?db0VPP9AaZp zTneTif<5C>;W&TZC_4!!=uc*Ob1)v|Z*Y?0Zp><_y{E*}rMf2F@4F0(!r z=uz{YU z&m)ZL85xw92bP?N%M{T&D z=R^r|{fvAh+8Vt^Hvn8vHUE7(>2sx{&oX-GH%Q1*l`$pWL~0Mw^(Sk>&qPVmqg2H7 zqIHm#CfA~ha0|=r1HQdJn`hrq!tKEAlsdNj>(#6-F^<>PURk(AwAA+WRm+W*1JrJ5 zUX6XcSl#N?s>O@LAFf_Ezc-8i9LB`0B*lmlb*5u5sBzEqV=H0g3#MX=6Ql7|V82RJ zXLI|~c6J_L5jidTgG*GlL9#tR`D}c73WmHj|-?_R@M4`^F zYWh3p%YWg4!Yq2k<)QSAr>c!W)-oRJ`MSsA_Xi3)Pw5!u$CBFd;j;iJ<(C`Z4Kp(J zB_$fo8>SxYtXJZl)1`iYt(eEVhtz$HGPk!EclF~Cj?U6+UDu(9ApcPP_Wy1Bcy;Z~ z70)WR(S=cnq>S+}nND#YFLzk4q0RpfhgLJXhcPtIT(H z-=F!d?oG8fwO36lyB*id0H!N@-sE^rPK}8b^#d5U2M@#~>?VjiuRTy6$dhf$RbWYp zybJiY#JpX|mf*4_CBp1}G&oWc6tgq4sWUttn)RuxZTXVpz4K$;?PXvjHnV@qIyusu zk=Zu-UZC*BZ92fNgmLy!yC#B=d(Hnb8Ne(q2>RR*tKc@i3b>iBbnjP?I&aHUBk;Y$ zgHv;}TJ-g{=Ks9?AW8fGlzyFZ%XfFHtz~&^c2eV)%SERyY3osr;4$zYccdNL)RuC5 zPt7_%TD;z0i~=^V=ds1l<_=-jZ!ZW^QoXc|mGjj4Xf7tK&(SXpva$1M9X@@F=609_ z{NFpyPyPqdA-e(pW;?}l?)m)sLZ8NKeVvahmrr`{<0!-4MGR-!b#Slqyv@w#HGy&$ zoRiOtQPoEm8tpZ^^j?LaWDsd8O>Ch3RJ4T zVf0ZTm+h93|ESWWuU~YhwAl3AywAxInS411Sh&P)YN#ybq-2GcUJkxZCA6N4_xm}b zslZ{XYyCdQrc7|TzV`IlLgVcw7z1Umm*@!oKmH~OKQjyo?a^^uj!0`W-E%(a$rwJ z54=Dlk0n+)>io&KJg*V=cbh%jhknP`C%t(j`5vdxyDNX-Q!m=FS#?cBAar{xrDBy^ zyq3ko$8kbQuk6jGsmUg}I4^}(W1RUujofLww5b#3&)pQ>i})MKHw73y#hIQ|;g7aV zm`P{wIptiRN>*BpOnE%?AtRop0;)DKtpaToXGzwBANX}4ED^r5b4h43 zL0K2tn-%jWAA!;M11ON%4{VkfPP;oSj{MCNGb7#@N*_!&HguZbIcUJ4iERg{nW~m5 z#+lV3Cw{)Z7O@bkg7YzRmCV3ARqVZ0a{TB(N6Om0Z}^b!J0AOUUk7!-Rt9js zXBaQ-2lmq~S8kjY;;M%}e{(fdq&lr9@GIUlzBhEKO+eLMbeOd3im)KMsQ(?rcQs%! zt{{v(9#oj--Q3d7xdnJHv6tI!+ZSr8_zv`3G0$YS&-X@%m*OmHiSRL$Ewi;=Pv1T% zQ#zKGn4PPnmpgk9nbQ{*xK1j=%Ei{v8|=Q`$Y^uTj5e@R4XoV_A#0xcra!j{#2QI9 zq8%9G35f0+a5oF%mffB4`Q9G1_|bDSEds7mi`u8#9QT4Iv-H&?N#&h?ZrA_cq((8h zrTJ$IpGwGeYniB;Z}>Vj?ntlpd|9ke_v3f9~j;;nxEfQa!qG1j3RcJ+28Styne4- z)wPW)EOR~0iqM)AYfqYw;-}-Zy>{PMDf}WU_a{smK#-4m=Xc3W9|mf^r2zm^r%V}I zA-lt>_{~w7i~g@zx3_mT#NQetB8J}Z-)U?=yWIYro!h-GXt_|FQkZ|33COpc7o+oC zB&0eSC09Kzf#-j6y(+0p3zxUI-M0ky8-%pXvgm-v_N0Gwh&LcDxam*dV1 z*I=&QuaXHY_j0*TWlvi%yvCp6`%#T0@g68o$3E@6v|ptiH?9xv*QnUX``SGy$tMR0 zv}M0;K;Ud4Bc&ZDBDp;-qiuPVd(*=2-x#$mC!xyvBkIM=3)pt|v5 zI9u=D%42wrhp!%9I|1^}qGPY+6HV)R&7Nd>Cl|T)XU6Z;Cc9!b`7$Bp-F1c7WWP;X zA_xkQ_*N~0;t?_<717?6>O)(zySK0u@y{3@@u>OLHV8*+l$w8^?<7H3I=xWamJNEJ zFk*c%{D=JmQAs+9yhv7ntC~`7(ALb)w&Se9nFCY%7oSHf9w%_Rm_##CYKHH-D=><_ zX3cqF>#eHC8hfCoxwD9~Y=!u#n>_!ICNj&-Tr!Bv$sze~aix#i!Hm(Z&WZ*~c zlms9efU*{%UMGf=7eYg~v67kai+XhdL4UXIV_3qy3DLPD{E=-Lk&mj9eizRB<}~oR zsWo3T+8lnr{75HGH`w7Jy>>p@+|*hkC?Hw?f!lxM>l_Z&s%~Xz>`FYPbeC1wtC)&zsP94UUJf);uXgQPg3SoO^t()Cu z<-PE&@JpUmP>`)&dxr9W$7ky=`Bqgo(B@o?u6-pUW#*eaRoG}TE|b(X<#w^BVlwg$ zQzM_hi7Y0FoabAZdacheOeXUd@5e{G?Z=04|1_v9(0ALz!<8^GC-re}T%8S>NWNy) z;FU({iugZH0-jyR`(L=vE?+E15cFmZZnlc+YG$7v{w_SdBVI2geDKV5)z*&XNC|`Y zH7TlwTO~E)FPa{A1-}YrGv!|J^UQWk-XJASIxJu@8R&c7+N^spa5(qwsqyS?MuU$- zt*b2^BSo5>gowg9zQ!8)R47BbIj4h4x!t#SCYu=8g6X$eJmPMC$X9`@82`XS>g#KL z82`%*n5^Pm97^*$$yC7MTJy8}5Bp9!J6I3_?Ucga#|mMY5E(L(6-_84X`B?WLp$L$ z?>+X^6xj1b3)_f{R4NN6Dt+LfnOe#K{t$Tu1=t#O6NXSQ?Bu3q-m!)`6bwegtb#6f zHH~{rk8qj$IKkJZv{bXJ-&mS;dPHXNaZb1$28^T?kb0A}pwrziJ7jH@- zxRLydBwg3Y2q7vG$@ZQQy2q6-dJc^k6x604;^!j_`BgN`5dECGxc$vf-&&k2uwURf zd5hbbcUo@;EKB2+q~oOCd*63i$i8n{uPzbuN?c0PY{5iso^ozxV>JXtQlFvU+{?>L zRaI3-hpg@Y%r68<{GsmWGUwL1u2Q~x(38j>5jX7T$qbU2E zHqsQ3_GG-EAFv4A@aMks@rsm~xvtO7uLpjwq0sl==o(t-dQHc`?<8ba$bJ~;B!)w5 z7}m@YSR;QI+sXeQ#64@7HMTkvV(a^mxC_R6jy^|vV8BGO$TX3`D=>OPmKs*~^sAFw415rylSlNn=%$@? zrFg?F^3G**EFax^9oB_0aZO*~)GQ-2x#s3SK(_6x2@$*mXjdrR9~(A7L6RW|f|ZU^ zE<@mjBH)jp7AeFUc$P67I=!?wHM7QYekP@*9Rbv}XAz*D4BU6|7*ED=cR!r-9|fN7 z+p#4FSfZq^#ID<9}GaosZbIxbnYYph841RtZTic+Vh5 z-FQN3-YXM$;d2s2Keo9^uDOR>%2w+n}QL5nItwP>9$J5IFakNEvamvE@B(lv7@XBt7e0-MbioN#8S+ zmzS>%oFHP8`R{#I`HN~S1TrrqCVFRD+*w(iF&0;XfT2ZV-WzN()8YH<`SZpTQ4(JO zQvbEMK1*N6@L?1}Lsyc9`8Wj0y9VgqsS;sa!dsTj zk|q0mad817UY4^cJb3_w^M)XC)H4q6D1ZXxYH!cs6;<_>(b=TIK0eNd={JNK36n?| z82%sD-a4x4w%hxqOOQrFk?xWbq`MIiB&7sFIusd{p@#-J;pg>zvubm9*+xHYyGai=KRjjmm`oWU-_~T{%RfchiOI=3lVufb+aqf z0_KyHB74d_8iyP{lq%;>?T$iaM|=Q5^E2ZPo^GjSna$3 z0F~y%xoh^6WF+WrH$l(2?g=r}Z9B*edHLJ<`9fNT02I!4F}(;}iO%u|eT_VRR4p7O zP5l5SO(aj$aSV))>Y^wH!D7-a8GN*Hw;rv`_6AYRvqSLiiJV7%(Z%yM-Zak3e@N7c zyY$5$i~80aLf>z%O9?IG7a=tnl_3G8b-bofw7pHw)!~Uq&cVo|B&>78*Mlmtwu2s% zQ%glb4#56mI9I?nf@7_s(#Tr9&3K#dl|3 z?!Z36ZpHtu6duwaWPy(M_W5d>I9at!Y5wdFMwLzR~LV!}FNv=c=X(5$ZBxo_D~!e%%QZS3bHT3fh=UUK~w-gC~go z30E2(qBWgBg@qd3V;-P-=f7f=M|h;cxP`Kp76kJK%I#STjUPGWM`*LO;AY411l?u z-A?-5+Iq2^oSc`vJCd{S+9r9^b3%V6F}%sm?NTLD40Z_>ASk;1k_TBH_-)~xQerSu zcyz_xAlDjH_Qk-`!;cSP&1S@4+N{X#dMC;kg&|6~hO|a;-{W!k_ zKr*0`nKpi~9pMtjjK&l;(>s!On(amaSHs@(ftm_YhFEfk_sK5j7HI+_5kp&RYmr`Q z7L=kx!LKe=(ec%_mPE=+XnEWonOTzYq_M8ANjnL*b^ev9Tws zO(2DU&5$0*-@U!-lxtB$`jL-rlO}!N55I?MdvhdNgCcZ+_+V@f>o}qgP2`O3iK}2- zgELv_2e$c+mnJ#ev+r+%i@04Uk?l>Rm$SXr;Uisex;ozvx#uG|b|S0lh%f$qOpZ8r zo&O~C9M6XM$CLlni_Uiw50+{lBRUV>WHTuHUotPThL%>AYAB4ZJ5a>-H(Aqj3r@cM z;zxGyP1ixM2=gMWp=>9Q_SzX$+PohXt+<-3Y*5+c^Sob|s%>vBG~GkJy)pGc;Tkpd zJC3TBxXHfwT3d^-@Ni9Rk(CSBA0Q->ftkjhbRwB3go=jE)?|=tKd*Rn{(M-pX@E|Y z+glpUyM28zUC230Sr@J9MWW&Za*cbz!NE{9M<(&sPBg#y>E)Zh6BNW>6*xsCL{iBg zvUy$cal#6E@(kx`vGDe_6&<;vd!3csPE>~MZ!^4{GSZ*EM!2;e!n~PqJ>WG!(Jw>5 z`^u>LJBgUxl`lU1tzCu^L8DCS`gnzkJVbsXIGoqwf7jKCLQeYpH|kQt!ouJ_+JZ2; ze!_-d)g3$GP^+eY-kM-cr$DXs6R>hhWxGy=95IJGe_zk)K;7be8}K3c;$wE?fLUKR zm#yVo$PxbH#a*(C-e^_WzNy~~B%t%(^2WlRo!a($fIoS$8^Eich@ zu5_3BT?}KL2;cz`Kk#kC8x&Xg_jjCIiirF{G<*ItbBY*7;2deuo-7KMo^LNu^Fk`l zSJkQxH72FYvLyd}tZ$0peB}+Ai+_ggRdYUaFXT{CR&IXv&wIf^b$XWzxFZ+8gEhEt zSDy|6g+_ddd6|O=Yq;3{{rlTAnY9gFvC+{4ML6^O?9tm1oa z#d<)6eAusq9*0Rbm7GjAO|U$2!Tps&&HV$<(Hf(+xoW#XcWu|QDTttf0qPhS7#LVt zv1eRhch>`Q;JE2ED+?uoP9m%5o8r=m`Q>T@vWp!i4yQXz=S|qE>({G+{7H=lCz^s% zK9@bf5bj#Rd<`l(6=jWgYCre(YA4DF)!E{^>5_)t`;NOVhM7PAdbt#e(>$Sq#SCAR=H*3WO7H*EtkR;m z2+%F!<<^$}ycqGJEa#a7R`B1p7yT?A&JKj8?$%RgXWBg|Mq|gPtcC4TQ8Da*omAqh z`YAIys{{7Vy;P5&!Z@dq&DOwB+|fCQ_B;5>?*gv#Z!h1Y4-~^kA71E-Triz|}tS3`1CTd#^z`&<-RyVby4wQ{Ccitm zn$(mOOeyo%0vsw~$qaPn}L-@PUQt;K? z(Po31sH!Qql(LIKLTel$n#RV?t`eJoGh=u$_OMEyc`g6?FHKl$sifl-fPB%oIYvhG zDlCE*f4-ygg!sze*OePns{g(zb;y5~&4tHh42OL;b!U7;B2;F4YD*nW;+FpOOQ;Ak z3yV6Ym2o)x>@8a&BU}3^U##X@Iy?O}jFpb_-Jc%)=nOzF?uZI~YSxn&ur?wBq#YBw zt&b`$w@|e^qTbg(d-}GVqAwKp;g`Jrxf)lUSLfXvT@dPp7Cu|V;cRc{dz60G^l=ZE z*StKuL^x6njUFf8(|-ec(E=%{{^V|mxaoSDkn{bSdc7XW(8X3t3RCOs>))&Fnmo7S zS+i7QXT0x(m`5voWs8=);=Ywg7kwj-h`8wI2#ml+P(8#V{Xy zw!3MG^GNZo&8pSLc=&aqeB+K6c@jssZe|bO6gp7TUkvN2?eCaqhII*-Ud6r z>U=b)D9>S_=!lk+mxFdGR7w}m6F(sl9BOU@YAj3a6)xO}u!D)6g%-Ds=3D%?3~JE} zCz^xtnHllM%5r(=7ow(W=cIg!FrV(oIW4qVDxbyUPMKTZanA`2tuz)EtE`HTlGga?@9_+{{ zJI=@Iv-1uz!t|*U-;X}$^uxF3V$R6Pkxjl#NI>BC6As=`1;9)_QTKD$5OENZm2HLD zo}kk4-P!r){QRFHBkTzt)M=p!S^S*mZb>7#jt#+$1QV2hM41jP)50sRWJ;DEms<6Y z@>!W?Gop{Yt65B7z3AuzoQt*VS$Mec{fK8hxsEgSK!o1>n%56khWH+bx;3VE)!)-Z z4hI!@8Bh*0)Ai_{`z$Nfyh2;qd$}0eTk?i~0Es{QyVsTykw`An--Tj#n@j%-n|S@n z{*STm{e|VBEWN$5d>H}S|IFTJzMnZucl=BH4JdHLcoTe;_~|Jje&p#1G(!FWsbpLO*=`<11Ig#}CDzb6D~j@g%uPPqS` zX?28_UjH4oj9@fz(G36N@wOVt>OtnepHS4yx^?l(1W`?xXnzmO1q28z@%i^TcboX{ zEl_yyJ>K2@bIRY(IY7IJ?ZNl|uOI1L#nA;j`adVLwYfEtzfY@!qVB=`&v!(~cg~+& z6!+hA*WI1(HH@3Wf)_ssyZvAH4MZ6A{P#I#KO3eB8C?7W%bDUuBox{G^Ij3Q7U3rg zB6Mm0HcVC%l!%}IVc37Y0l4=NiHHB4^4FWikVXIf64dQ{*^H^X>gRuhH8}g9zN-7@ z540F((1hT>rkO^}io9Z}y*e5BcZ3X`b-xGpDm17ta590)p*ZQ4wnxgyRVe zf4{g$S6^S-xEMaxWfoRe%{MY=XlSM5WBV+${&Q-2;3sMyfb*x z)h+@?VPg9m6Yda!H0m zU4dEqk*$%7?TVXbP091rj%1VHSJ~ILsi#Z`gzgH8iW=z$Y2(=i*&JkHTtw61B;D#r zW%BW#&Yw>bqE|WaGySLk|L?DrLVE@De}^;jza!!Qm{NBWC+j?j*8s7g9DDJ&S^|iU zx&f(%i+a zk|#Kd4_$!>RC!|g#vbY>UwkXX#gLJdE#N~oBg7^}Joj132O*vrv;H+N>fl;q@=S8- zab$O3o7jZQtSVk|a&or|RzG#^-aXxKrcuHeM}20akAE%natB^c`dRZDrQ=y>Xej&h zXtt=xQHX)xhY$voi@9oQ4$hpN{`NgtGqDMr5@P>n8nr6@|JN=5m%aMG`SX{4v9Uy! zw_3r50n#<;iHR5@%*=TY`d-buqk`LF_bxqX0r4ULqE&tr)5A4 zsCyU9-`^kp`*?LoGch#Zuf2smuM;Ztur`o59Djo zTY3bXU&MzWLhT_GIp{Pa6Y$<@fsWReyI8EF3)Ce2%tl*~Q?GFXe)DrrPoU<92Ypa# zvii+K_hs$QdjI44=SRNQ`$JLBH_y}tKQz$aWrHHH?gCX87ngXQhn>IOEbnM&WN=6q zAd#MYm><24j#>ZZ+JSndt0WU2-yQwLlAYj(M~0t&U5St6CVT%e>dk79)p)WAv? zkJ8Sw+M52Jl<@Y$mQyBGWVH!Ye?4OH~wwc3pU3kTP*GsPx z7&pD?c>b=9W`OcR?MC&`c2KBsUI;0JaeildqQdq!2(6n3Mn1qH2+BhiAzxMkyq{@6 zdTH-dv;(>fkuL$KXyqjIpArYNfj@ryh^>QI`0i2<;NY=qVPS-@`R>8};){)PM=;}7 zyd^QQe{^c@Tja}P(1MFyBZERi>1!T-WvUnx zhuCBVcuXghAdY%%jho=5im;TxA>lG0hxdGIE$QZKM%3w<6ibBbOf&RMtQg;IAnuCU<(g5Rw zNT=Kj7gJ9ce+sp*&{p@V9Im<0^#c$xhvcH&edHx2CE*+dX-u8*2uK_l!$xvxoiI)& zC`=3n`}8NTD2P@GfFu*nmR2_*vaQXf@G!iH!HFl^Nl zt;aY5iZ$r7TuVe^_?^tT+cyfN?P7Bt-C|4nyIG&2nNL0ICNj-ZwL5-sosiHU7mVpN zAT;}@hH(}^dtinF;a;gp34rnZE&Vu!n06%j4e8y^4J`y-<#)qb zZ)zI$K8vheqo9qg5r7%o&bhP)BS!*ZU%2|NcJs@dY-{%<`>BtlYe3t@6D$Kl7XxrU z9VZq4&N!r9zgbEF8^tndSePwlJRyk)wp7efa{&x5C45i4wmvcMjTlzgAcB1qt`tmh zrcm(_2Q|YTt*v2uP~XkMRT&)?P;fesNhO0ph&~M9 zwWP5_Q^?l9)QK(rd#dD15wthZqb7a2ACC>gb=;c>rnOWGvLhj;iCw~fsAbPy5!-Hj=BmlO6yoMS49A?9I}h?2+waDsk5kh=E}y62 z?RW7YWbyrGvy4Z9C=Qy5JRG^@@>I-w&5E)Ss_xKG8HvT!;O%qQR`ZNXE+uom||;7J`oz3#m&1>Qk% zadCh{HM7RH5PGt03S}SAa+qdSP~i+o$Cc-j5|XK5OoM5yjBUBnMOF3_!w}#F^GWgw zvpYa3TAJo$eNH#<{Cj`;NLqF9A1ERX#h|Ae-v;O29W$fz=4xfmU-438`@_J+1Nl%$ z+qCXs4aUR^UH89<^4R`C5C&U+XD9G%PQauKu5_?Q!eop2?wdRm=yV2tY&`I_t-hGo zsP!zOKaVDW(E_dt568+FV_DLYlUW4^p3$WAk`CfZrE%l7Sh#<|wPqfa`13dTbifa| zt(f#Jdn9aUD19$we`PWX=x3mM=`@okrzji*bjAYmHC4>(E}R+l^|O@tnb$7b7+}Qq z42>9`*qVdKq;eKYz*=+5F>?Dirs|Bmd#eq;o5*&SyH$GY(&%2p-yOq8-r4!aFa*P6 ziwL+mB-$j`*)`CT%}Vpp~O=Q|BUVL)ynhN z`r907IVZRBoQtb+$ee}P|J8X2-(=hr3JLY1V6p+`9S%ZIV*a@S9&pj&{o}DyMg?u~ zH)>6*J`bTU7omiU)0*_Zx2XTOYi?4^+yL=3LXvVma;X2kU;K}kj{n_@Oc$rv8!n5T zuy?hTd`JT)6sz>7f&v1hzW{;;x`$Rr!j5Tzw{v6jI{rX6w$$%P6K&Mdsqt_}u$0Tf zMGPHc=U`X$J>F4JR>r|Cn(Goo$%bmTOnC<=o`S1HEBOtwGRfd~Mj|@}DiM*it(0y) zB4bfK>}cYeR+juk2d$+Ohu_Pj4_f_ElScF@BGJeSgTKn#na2DLnLD?Ae7qJ9tRUu8 zWUpckF+_OxIEcUzb%thDS|CuD3tC7^z+Xsn(C->-lbCWe1lk|zs=dl{pu!ziW1fsp zIF~LVSam)(HI(MHO77K&)w=0WgC{%oaQm=}Z|%>8>+WiQCg*Y<#SClyBCotLmL%YF zdiWiPJa|`y2y~4eJ>pkxYNX70^Tym{7Bbt_&z#LZzYr$J+DT zd9Jj&(y*>Z@O$arYNdaifY1!mY^-t^zUJoR#Sq*^dFnXVFY~N6n~#`MR7$?*i@gZK z;ejp7!7A`I1?SF77%2@w1YS^zRty9@xG!jrW7V4@xGa#S_JxeWe3MSNtt%w+0ozUz zgAX!t zC(6;x4jN9Zw>C7QK-v?JfP%zld0G%fsM)BTh=;N)v}ig=dd7~9bGXGY@{&%|U3?H* znCRj%WU^x|a+@K9p%v_hJXeo249(4kZKMcF)7)Szz>A*H^TZdDP^BQ|$~>{Pzicjq zn8MD!c1296gma*e?e6U{HV9W*c7gZf@moUjZk=b5YKSko<1*=yjRtRf8X+o4FCZZB zmSY=>HxVVexTIu2FTXhz(gl1FUIPwtIlxHo;~6$6;Udl+2V_Ld+JX?fIS_`3J^-kN zwaA_Xt>x0>wQM;6e7TYw#$GTD-1SF4K4u@D`uI3dLGYo6st{O#N=i0@>`MEifj}6= zlhlSE?Be1+;Df?uhNdK>BONNxVE>B(sJ^K7GD)vYU5u79eh-AM7$&&A$j{G*<6Ax& zYwoW4y(4E+cWXDq5m%e(&$YQf1|J{29YuK+xu?uHi9$(0MO8?&nk@}|uA=~?%FM-701z%)M zN-%DQLR7<-iJN;1mTZ9I!r2ujR6ix6*8x}_RlF@zj-`0(7lylc3fvogEpx!x2pBkb zsUqkZwmX>?Z-lD^!F)9r17+6+zA9XVN>2g+6(*>+zE>@*2Zm#qC>->)Q?J9zhGv*!DDTkx6#Xf|w6cL>IH zXMnm6#jk9FekMx;X8jag4XrqFjd3kx+ zNzvYmF$(+*$Aqmlk$hLbSBgozQwo}W^BawZz&Qlc`FHcFH`;yz)BdgM;)qn~Qi@zZ zU%x1#qHTB>Xvfj?1&X91^z9iws44m6_?TH}I68Q(k_XRYxAQxjk=J*P zemV4>em~?;FS=H}8I4CVJCxqLWbE!_!(4;$>qQHpp>JL1+e75l!OLS92(=X6d31|t z^?osgu*RN8!kBlI=T?Es_TuW-4^MW?$Jmrg`$}n5ax(n5g)9@y=QS-Kb>3vE*V{?p zoQXOp2*&gwcS7-g{0uqjm;G}`D~q@lWRs;o0~)C6hj);-buLrQ9I;%^QD+Ul6%#}| z^Rs>37vsh_t!W`i5V4nnGea&^j0f5U``eV#Ki^Pz&=pP@9p4g)hsr5SZBc^77ITWs z!r~P()s=qhhs?&ntitR0&^yOY^Zl`pt{H?C=MyKJwY>fIp4LNyAS~2cd;0D3IE^)@ zvFC1{jZw;`rVXQPDGX6hTEm})6KDAN(H-zFS@>~&k7#pij>51;H|v!17cCjI8!DQ) zG+dIK5z_S{hr=e2xRJh3Ca$%_85?jFBuQk-Rn~@_l_uk?mKCXFx4ky>OfxXFxs>Le z7wrhC((8BZ*!C;l zS47TeK84cgD7T$37m4hWbxtPXt=WzmJeh(vu2$|yLPMKq8+-ap5oxRhE_?{Rhgt5I z$=3ea7vfe~yhJi9a@l0*;8#3@A6}IAZ{!UsqbTq2mgtwLCU54OC`~F@0^V!dC2ZaG zmZC?koPVxEhktmhooOQ~nwlTUq+?euqIWd-xHRTgE?c;Y2A`;2iy)c6v3~Pi^6dyUdTwdekF5bf}y-tl22Ta}N3jw=N6V*2cMI`DkZtsE@PS z%S){r92-cL6LekF2iPVzaEZT=aHbf$Yl%KeYr^rM&M)7CX^2Xd=z*VpDZcM`V{w-n2lDWF$A{x z#KoDg2jE(N1HRBKzoW!Bs?2U@mkF1(;4{5r2U=<=-+~4D;m^jxO1=F~UEJ5J7Ml#9 z8-#^RNh^)a4G5o9uH1+U*#I$OLF~q*8gLqC^QqEFd zZf|W4YK;r{nQnTEAmAs9wNGHRzAd`b3N9-T%6i_BV38!RN%b=rxbuDz{lVbM8Ly_K|EY zjBDLEmCdfe5eBr38NJAoI-?69uZ-|et66(j8?RGr0I>+*X=5+E5ZP?}19u_$Ds#AX zSyP?nWWJW%lm!G=UfVA!741uxE)mNtPv_+2-A)n2;~e50eE|Ar-h#_-RFeY)UOfWY z2I%#AG9UiTcGX~R%{$nt`A(fIM|}Ny133JE#5Hql>9aP_s}Erw;R!o`L3}l+{fE;R zc(8#xG_v82=6qn~jS0-W!ZPLC_#{%!dv~VHMUYcLtjd?#7l^sQChvkki}cv)pc^T} z<<7TAe-`Qj|&7K)hlzli_%l{KDVM1uhdUmBJNGIXr>)x$x z9oKy$wo1`2k&U{Zi8=HA@=ivC3ATGWIFq6xYxIPKV-A6g($o>j-45}eG2baAYCKFt zmwq@dc3%J3QiZwNlz^fWvc3i&0liZ zTkhMvLtJl6E4Qr{S|LlmeV=`|a|Zu;r^yMp5#uNCgvzEKNN-Knd{DJV!{Xi+z>$z9 z)_(EcF6h#Dl?`m65y9PlV#>#O4}%(5wlmbdr+V&2$HsmEiE#qYWz3U_&NxYYf1{_}16?a!qsQgh#9MkJ^+jSq9h%g@XUxi$4_|Kj4hMDp4^o zpaD!R6(Xw&a!;oKC_Ha->n26`urI+`7j{{!!JII^?9GWP?iZ9t(k)K8B3G*?T(R}m zZa$LM){eJXnyiVQv9^KVEd6GFvg} zyIssBj+52MGR^NH+G!g3{_$eRO^$k<9p=_o%M>>quFgApi}bui>ZS{S|G+y1F$aA4 zEM(=#Z>l1w@Eq{LH(1B1Lj7vlG|*UIL^SK^`i-w2%7=Cl7j~X-0EVDjKas z;cEQ2DX}8W@x~-@0$-pIrW~VR6Lw)pwH7`N>sI&gB=x|c+|7=WubRX3IesWRqVL5| z@s@x~;<59``5ZY8E_W{4W=SD&$7xaT`2+qPsfE_WRHQj{aW#IV>tgB*B-&JuXx_l( zTnx8WE9{|DT4Uv?x)Gr@ZL_E5G6GVkZWkv%Und=09Z(`tG$<(ib$`X(0@aHP+4cmZ z&rgM1!M~lp1rCg6qt?FQXf-b?`1T*OTy2VhHOC z>}t|Qm8NpS#{3{PnpdXj*W=LMYMfbxr4PlT$TO#FpXa-9WunAJUi&urk!rN+nEZKiO$7M3KbT`iq?)1wk#~CB&BY$4NTG?oRRH`FFuA`8gU2uPC-rXF9m(FPk(OuU2oY!xOo0A{#=lXPEl&6k&(bq!rFUEXoVXbHif31v%f;0a_vvtvXcwh@_ zto&$UPD%_ZM5C?Y*AP2Mc_34)VU^ zNZv2TI~YusC4J`~3P$%2IV~p?x1yyoyEtIwx9W}io#Mt93;9~at)pALP+BUP^Uri7 zjU_|O7Ctw&5L2J2%=r2y6t0^?rq%h6I@@w}HC}xclBn={#OrFc z#M!;C^+R@k{rJK<%~;|*>zA)n`}yaLYmj;K2V#H@fUxG_$eX3cex9q$3-~45cm`CRn!S>?DNp zD=|ixjx2kPTvnS=j}N}%tAR9=|Hn}!u4O1tO_DL}a@?r`cXBHA@`{AQL~=~uBC(W~ zxIzM#A?mJ*7k{2lVOM?hqkbzk5$TkQ2ZnaWH5t{fPafdKoyIGxrg{z}e@SmG1r zY3;D^;ca;@ToI+kZmShe9nU-Vj1R4??>05EkCH*rWDXlcU&^W|lNaG){?B~8#21}# z4Sf?v9b9nd;aV8w@L8q*yHEvjd^Ob+zvF>doo~W*pW+1_aKYmn#g^&Bny1j;Oc*~% z96Uq1|3a*Rm7vPM!EE<=#_=;mGFeZ?BAkpf{yAS+>qK51WC(7tv8{$Prwzz!+n4ko zY@?A68|QkQ9(&lY#$qT(La7iSaag<{oQO3BxzJ|%-_ywDW&mM_P%saFl$%xBSL{RF|9jA_xsB6XtFFihSHE?3eUw~A_*+$35s|i z9D7ES&9W<#{U+YDM~{5f|4z^QDH?yRdE`+xfi*t*7VvCk(0qW6S$d)8>Awm$(dEtj|S&H2Swo+8j66$xc)mPFX+}^X@3Gvoh zS-kD+O7Owe>#2kN@4z_%>U*Sup{xb2)=fM02lLNkLkV=voLgJoGCx3s4O`#GSUKgs zd81sWwUhoku?P@@YY3d(o9lcJBD%!1hod{58hG2)l|X&~G~fDZoCkoLH2d`Q$Za9f zCYoUMir`}?1MzD4oFNrR^KdpkPYoQS*5M2_!1KOt7bkWbP~qe@veZPOz2h=(kAAL& zK7IV-izP%gfGadC5t%}eG+PIj-t~xR6I+;~EMPc~_>guYR1r5V!jq0YaZa2Lw#`nwBVdTtA1uio1OlHY(|ttjTrrT!xo>qh5jtfHzKpHo*ca-7=(aSI5`r$aIXGA?lA zj)c&Ag+BqeMsHUN=s^IZe45mV^@Yw?x5Q)E$Y|m@;`D*LVkB>>m^oAfIwy3WSH>1N& z22S_qB@BA>Z-Y$549 zTOQ>9mDJYu$^$qe(<*8==WRDo^?UygV|%|;ugACD5cieJ$8whYT2S?~_4W1W=;)jr z2BW+Gii_g_b(*ON(;rf%xkkSNSz0MzV@t;QwlM0Yf+X$XLCQY7+&>=r^|%cS4pj2$ zkMP`>UB6c3nIan1gh*YTkmc~f#xs1O{|G^G@w02PegGSwNN(vpovlRFJ z6$&Xr9-t<(N7*6yj1khRXZaE(Rgf!IuG+goB%Pd?IFRy~I~tL^2(t%abtX!{t`l&J z#rZ&pF`b@OUP8ww`JG0K}xY21)Bb<#7P;<-_B*?yq>Zlqtv zY{|g(cE(3DARqY)6uPgtn7khUMjvQ9TxiHw;84u6Fs}EC;CCjpy8QtI7h>rH0#P_S z7uRQhtJQ-NjxKf%^_ti!pS=;UhOwuQW`-l!ugGdjvIYGY0Fj)m?n`=Q8JRouuf&l@ zW0)S4y*qvJ6Ob__f`2}gD18;|+guO1_AScc%5a9hUf>%UjQzm74=Ign*EY;}81QM& zW4h3SlOf+NmHw(Fdze1=5GlsYyjy%)dbpMoc%*)P+DG805Z$TU@3T-WzwyV?TzL#u zx%Xs0ue|t_fteG3RI}ZK97fEK{}DZFDa0Aiw~z~UfUUezCg}*ULN4xKXGcRG=YUuf z5zd4Mb;wrkjIC>)pJL{Fagyd`dUg|Ym`iG4hUU$^p3kTROE+1*Q6K740I#83v+%MR z-YdGpuOs1u*F1l|-Y>Hg_zrv*!$&I=(^B5KPCdq5R=dh3Qk5>dtoHtqeulXwwe5?2NS7 z8b7O|RoTBfR=0bQ)}N`B@&04vtLddv+Q6-6>z=hshCNu$xVl}j;3s6Xj?h?v6&?W* z5uJ~fKTlu>f9I^6wDquc&G;c3?AZfl0^@cZ~s1CY439gd30_5K4dB{s+1OIE6? z5z3>X={>Q19bc*dMzcD$FypIH8PF4T$ zno;7G@!!9C^Umgv0I`F&Z4K8(k2hA&o-YQT8Bu=Yck2=9m(DU0@!hQy{B4nEGG24s z7LclHx4|<@XkW+pvvYH6qz*6pXeCeJhO5h2dr|pwV0uU%hjB>704j=ddfJ#+QLvHF z{`Skq3#-BEGR(hD`)htzg_DoHO&gaF`&zA>ILq77_KpbA`)_$iuYX7NO=R>^w*GmWd+9Z<+^ZWrrbeohC;54rJ+)gDg4oS(W^$5>@rGU^S?=~g zPgYa=%q=+IqjKsEs>aa;2dhMXLSka5sXs4X&}HQ~ja|&H-qtgk;G8x}*%OkuyljET zMG>}OZLE_$xz>qC;TI{&^gXBT&d}r!Rly|Feoe1bL}?Ln>!F+AXu4&WNG;cCswc&( zMVr+fl9kn>tB?X^#hv)$yE26wVHa~B2u z8apHYpF^1&LhW8hQJxzT4!XwDsVz$&GIG4gtl$hVU?I_{!_M<9FDh6ce;KrYlP3}5 z&y-uPH_X)T1zw3D=GoNdVwYsFFc!yj&iW#s=_2Ui_^87eG>R2#de!%+3*Pj%Udb^S zWS|7X4OK;*p|;w|id!_l%h}7K7E1n4F3T@z)31>%PKVijA!>iO#EoWQLdHxxEpw4H zL*x@BCqeV_lw8C;@o=gkcKesERRpzoh8d!pPJdHYpj0vU@=tc_zy*?W4lkwZum_cD zIyKhQ;-+?M*9n!GJH-v1FKC=BNmi zp--udRXfxVF)J$n(7}kk8@YEIDRt}iM_s!}fHr|9>FVHrqueOQj7x@%I8E4Bv7W1G zbuc_S)$R_bzuzhpt-F_q`|!HJ&ohrVBlKWJSN7)XK=>6O;gb2c;tlIJL?e1q>!Uth zoyz=v#Zk0=IrpGXCG7`~X{sB(&hNq7TSpdie@3XM5;HbGqu@C@HY~lSKrpht$kRB= ze=5PjU~AfKNjk%;?Yj1wp0YwQ_2_#3+=6~fBt>CGb*+_;+wyW%x;$R!a6=UC{1qIR z553=)Qc%^h()D)d1LUGE*WR|jsGi8Nncb{mjJ+-&{Hyl6Ys2*pj)-_-(dMkuAU8t31`+pPDhp@Mt7|yk?SX8lmSqo7QD_{F?jRAdPlIu^3nTZE&FK~e`rEfwky?w=<6{eY zCTaq`%J{YexND6cGyR*){2${vqQq1+x7;zL@Vyn;HBi>2mAziO= z^`T{eaXDHrxgDB&Q|4T-hj5?a6y#L(x!JNTRaKL`Lh zEZT$!t2cEM>DMJ0paPp2M6x9Mu#L|UY0%(~a5Di9NmoOFu?*A?K&D2pE z9v&w!f9Dwp0rw)K8W(ixA*h-8on;0WKW_g!(})YuJkP1b(v%MkErJ>W8bh_0JZ2!q zB0w_nJrOt-8W+zsT>~*DAX`9>nNWB;9b6NmE7`ehhnF`vT`&orme-idhClgsa8CuK$CB7kJ<=f6HzC{W*U4UJSq2Z2t2E)2Y?P>jay`yBb|z*zOE7^D=m#u z9#pvo_zIxx27;Mn98Mc6;?gRtnW9YPKOS=nJR(ag;Lhdb1M)mzlBC|ak8wO+jf3bj zxb7m?JuOGWp@l|*w0KVv_e|-1%vO0Y7XBtkZ{ocp=i?*(=(#eLl=@0C=u0F&(FpsV zdJmcId^gt4=U71MygB3j74D_-ksJ-aCwu)8Q7>K$&+IUoy8l(1wl+j-A|JiA_Gy~1 z#C{~_?JXLFuo@jH(su=+B#0T`+RM`-pF!S3&c_AGt-USie)l1uRP z^uuXO1`-OuJK$zvNc9JS0^#k!B^!XYWq^D%+NYrLR;7yp=8Sax3DF27Lo&&j$gy#8 z5nzLHjpA{r7Ak!>T4Dz0j6bv>%6)IFO3wE{6&knywMghV1}-@bLVFe_>wi}m+C5h# z$yD-V=iO~UZbYo$VHUDrWb6a!9KD zLV6b;PqKoU{3EkNR^sIyFs%SQKCo8C_#X6Hf5{0K0(m0-7@tLFGyqv7?|0V41LCCT z?sKg?z_jF}IXNK4C3Mi|St?hRdLSc@K79Dlsy|ImOK@ZCLx*?11&HV>LzPt(Z{OBU zboeM*P<$uvGOpUhRUxOw$|2`D=DXKVTG1 zk0cRRw}nB5jhhJh3CsnA4KB6l69~(IXjg9G+XF;vjz(5RB|=2uz7#7^JI1S>vk!EO z4T2ePi@=)rp7S`;7zD_f1p^#Oq=NPGa&yCp85kLxge|+{Ve!iLS*mCSZxM^F&mVlx zeAWqT?>?lrCN;3Fh3Icq1)HXU6X1zT2BmMTqdh%ZPH}uy-rAROa-iWPyF%v#C2i*qDOL z3K0WF;bR@tX#8)fd9X+ca8@sWD0{ zOPWNJE3fI@Pfw)c*x^JK2Zwk2sFJE@0Ih0?mhpnY(pnM+>y|k}f2sV19^rkyOXus2 z10}o@RgSt;iaPUcS4>D2K&%SF&+5^otP?GyU{l^+lrg`b@Yp{or_Dfpi}~$_+xjR( z{MeHytc7_ctDF`QBcYUd=A|Lsmey6klSI?XWM~!r@P}18#qkgL8zACZVCdtGa&?D_`5&|%*pL`4AL7*_g_Ou z5+6}Sg4rZ}7@TQrQc7JdRxm;Y2Xd}ma%pboGMzP@8@!@m-^o$gHt$IjNex#~M`13ei8#TEpmLo1&G3TA+F+q5`xo5l)ux?v%=s~pOi7+n|xe52f{!_N$5 z3jMWN_dWFvz!Ecli3Rp`rSJ_7`dPyn3bJwXiGjX$bZM?Y^MSneDvcX2BD& zl^jJ|3i;eLooO~e3I!iPGizd^Q1rJu0_nQuaqtymNgcg~>T;2v&X4l1`aB9a)+p{` zE2gq18IcqNYjMB)7AyPj_I9oP2ax7X(0O*KrccT!E>4}d0})y$dp6y+8zT%FG}ZMQ z8xUf5KE2cl{#~q}g#39uj(0jnuyDjr}us;_U6B7bTdE5({A{Q;DLxMGcK^O)9tSSfI>%5))jp(5XJhpCnBy{n|j zMCQ*TyASTVDh2;{|_c+ty+f;)wIy}Dw3VkQT3h@$KTN))yaZL>kBu%s%e#QCV zl_gC3Za_EsMn3Wsibr5C#Drx8i!^0x(cgg-knW6zUTt+moP?@PfS@;%igtRS3rt-! zjI}HqEiHFWS@vj2ZU$a5k%$xL<=riOUmt){nvZaK2v<9x)O@%wWfUd48>W1IJR+*+ zuR`mLM~!Q&0<{7G`Ja>*c78lh;j9!^r-|4GyKPgiW~n91F-#R3-rUO&hUyDX)Ojg> zA{$9+?R>$cSYRJ<&>I-Nm^H?=%@Bk1L(G9Oph6_?Wa2SkPna`i;lMz<5p*gW=lv z{oBr0(f21nD{IyJau5s?mKb#~PPVhDSM)4B!a&?`45uM;nK*!#*g_RbYDuDA$KEOZ6qul?`lKKZ&4DJ{IK%;VZ(npPD;^Enb zRWNv7T1+8|Iv7QBqF3?(OYX)*)!LGNjX*|+)9i|vFbfjZ7%wkx1`=Ww2?#*R$65rZ zw3{y7ukQgBj|Vaq5s#0tc^4KM)y+)Z59$Wy%DU3#JuRpS-`+AhmyJj<7U*~_MBa?I z^e#zg8&nYy29g(KfuOD_voxWQZuYsH#3f%KeYs8JVpx6w2eDG9)L;yeE4k#chdq2L zvhn^=J@+H5UHUvY@y6rhzt9#O+vNXlJ0N)nW-D7R9G(ILmJ;P+V6y~QTXr@!Wv_ay zUoSj!gghlvnP~U~m8dP=l)%E<0LR@fh+UT&YjmeL*2AW8|9B~`*b{Cds4=EKSK^Sq z`L7s(=_JkZCv5>rDeLJ5-!r)ByaP3NcRZ`!$lE&#zI+LOiuc;__@jqH(DyThhQmJZ zC|tRPT>J8-W7^@iN)22Id?6)BfGxx|6gW;pH6%#SL~P3M@#c%$5FBC9_alsRnnIWb z1Q69giu2@_NSLRf23dHbN&1oHYqx8%rl6pp8+fRUUK8g|W({^5*Ed2%U!td(XByD4$dfYW z-(`FwTlmF%lABY3-}w-~m^vs;TVd^80akc{i*oDxhZUINA(@-l3&xBN;Wnh1);0zV zMD82H3um8w5(Rpuf%I~vjJW@(!es5|iTK)~@o!^WvGh+4?#&~d=3C%X1tMH)+|-A! zp?monx7+kHsMe1OpA->YPi2*ssyDwg!SXDNr7gh_{XXbiwWT}F7hUP!pF;BMtQ$rD ztIzR)GZDwNNc9`K6p!@@L}q1%IXT6R9>ZJWffe!NR9sXaqQ#{@Meb!xm3* ze-H zRpuDZdG?EY(o%sDwVW!?1ki>N9*MyuQmJ)kr$->6b%`f<=Az5WRfa}O`}5Kplu{eg z5vlL@Vi|{5g!%c0O2{xGZs@Af2^FB+yzfc;W{|}rC13<;QxP3`?0%l=ejn^KsP zd?{~pA(+kY>66gXx_5|eKp&ZbY5qsH*~NXKZB}#kor9>+i!P{O!{0W-{HevrX=rrX zZkWokCsK(E^E3H!q*ah$VocmO_YfWp^r*m}uV#{yYX`TY`e)N5PZ7-K`|;XU$|&I* zc$UJF`)?rxiQeNzzbt?c4)F|*`&6@XID$y7;XV4fW|lci3F=7+5Co*$J8+LF_7_Gj zx%a=2DZHbk=w9{ET*kYd&$PAA>6d#H^bPLbpmog?(Gu+eGlE2Gb zlvvD(h&gojThiH*TTSOSsZ(EHGj98HOLbg*;7FN-#l&`d?jYx}2lf0Gmzp72*~v>v@9+4isi`kgR%E({8)5GNRZjia$eZ^OFzM59eQQ)a zecD%DVb{*cEh{^(DP?PooXMAWe+@I1RJ#U}o1EXKEo)+Owd6WUxvh%7`9~I>zBpJ7 zM|I1k`Y+{1Cor(_x}H`okNY((UNWs|=#RX7xOdPX3g4d1Y^Ce9A5A)&UnY1HV2jM> z-d+a44~DWufZjGQRHJUtS>;98r5{Sa`t$K>LDOOb_Ta=GzcLpHX@RCBxg|AdvNMwzmrC@0QnHUa zC@AC7eov-OtkX@PO|NTJ8BYRi0Et$Q^YaHjxqzY#uGk!?)^A-85=7=(j$NzFyeoMpv?@kT(BE5#P~=oSPn<@Inl4Ja3aCCoxJmBniSsi+UknwXf5 z(U{sjf*FP-of32u4yEqA)-4Ty2wh%YLR{S*I;7iAeILB{0uGUn1m`PWu1`S{*&nZT3t@p0pI4fIYLXnvzEbMsLx$Y<-p4gG z-6{J8@LWawok}AZ4TOvW!qC*!)h(~)Mh~rv3r5?ea=pN6FgQbN1J0L++n~;a!6nOu zoC8%&Gnc&IuYkD|=Ib2Dlyoq!fmyk?RjdY@m%+XnMj5{yD{djTPUVN)!jK%=YGtxI ziE}3!%bZ7j9Aa=^>L*0w#I3A2YE5Vvd(lcieg((<1SRC#z&xE!#gu*xGuztM&&t$r z+v|7ls9oH7kvzANm`#BlR;$UiX=G_R2Ti{}Ei1IbjkS1=Y?S zCwQ_(x?I=mB7R5;3#SlY0ZM>!^E&u3adDwCC)7V*_ZBxCM7hCWC1!I+ESrU6C)~TQ z(6HkoaA+hvdoCdv_I5Msm(}dkUjiJ83KYKbPmkQ=;K0elGszZqg8KYoh_OZ4E6H>0 zWfz>OA$_3oy+J5@FfaRN0{X%X@R2mV9W`Za(4^2zLT06>r>CSSn?NdXxi~Y;I1JT^ ziHR=arHrmh^l>Vg8-g)#mL{~mX+I?vgxQMTlUFTEijGXhc5-21fgmC#AA&bGLqo5P zCxqWN#7j8z`}*@}kkjYW-}>*xofIyPJHh~{i59Y{{or{@bPU4NB34e&6EHM<_Aw+R4w}%4xxBayyzOzcNi0{@5lc9>PS92HSvI_~Y8Ebw z{$nV%kpv-^p8_knA&)}#3+o;kwKAzHemZ<|*zFMnFLe$GH^eQZKA)YQK52v&co#{j zg^7h_SHU=_7E4i7w?SYX2oASlsQ_4F%W8+k_B>Q+1~RJa$%K~eZ-czW;Wjj-B}Aow zMe6*czgJ&0PXvwynEoUL0mmjo?wE+x};twMl z8`^e))tx@>t%)~KZTNBD$k+a&IOeh?MD5N@9?-L}Fo+iOn44^Cyns0CG|Uh0!nAO3 zaqXt1J?ACsCKWT}&f$qe`~uSEF>KSF>LnIg_x0=MLA{XZ2AOQMKGDrGPkyOx7`%s! z?TF2~0WR8jY6(wW;zWh8ONdesG{X4#K~nP}>?jb*Q2pjpk6LDEO~nP%INxUI;Xj@? z*A@H6dZ77KINPoVp|vJ)q7yhu$@&Kdas=(r567C|5ZbGTjUnbcwMl=9kFh$gY7?;% z4(2hY;o{&VO$hWzzgv%x;x#TG0#sPDJ`au_uHW@CPWICiFB!8L3Mj-(_5AeL+0Iu5 zLWGRo=N9~#6*GhpMYOP2ErKsMMP`O@EGUl*ck32at4OEmj2BgGF?7)Pjx&|e z+-l@;I~xgb@bN{A%CsB378f*EU%s6Mz8Y)cjqs>qFK8WSl_;rvDVm9mRMn$lxdUq+YGibQ$%`I|KuHqH4`FS(K7tu}`n-0_Wj=VLY!UdhY|{b@fDg z4@Y;zeHi-G* z)6-@_m^T%mjAT~XQUmhfzcVlOPjMHbzl%jtV%=RKrBg_|@%&P(7QriN_QsUZ0YK)} zqPwE5rV0GT-2c>b0;z0a;I!I$0(}PDhXc0=rpM-?jrd|cSs#26*qwtRSt7kcB9^hc zyGziMuf#R*{dr-_p}=o=db66%J^$*EfVI+8wvK}1?5&}sYuGcKx~@K%&et$jY>LZoLgN#LBcK+=*GU#(A#n0us|HGad*FM4x5+Gi+NgoZQN2 z?&M06CGL@9t*Sp2NUAVmMDtV@Q7@E0EjD28(jDl`wFtcGDvcXq++^T)vH=LYPht{v zn~GzTM%)sanvIxsY+79Qj5;)>6(vb^FR)UMfB9mDbn1;+;*IE=c?*Qq&`kSFH{pE- z3#>Lip{WR(p!QTQam$+Ewtf;CVV-|@S)$0~vnUy`9ZcD%Ux{-N={ z^~jTT0b9;7CF-4cUT9-OK7iZm7LoeruvTszeyb0*=HEN1M=YIU#CkZaU?BMKyWiX3 zHmo)@^CV8tP*tU3%UAMf<|ft9L#Jofxz_&EGF$R1YtqE=Mw-=KAwxaX{rF*C2bMO{ z6IXF+_d5WrKyshNcYSlIID_vlLQruAwa7EhR(>@`ad8L1C34VI@SvaJF{B_=_R;^d zH8J(A!HWWHIG$E&Tu|!y912NK9Z}*VPLOFYE4Ay6bk358JZCLQwu)NHw(DJ^qltEF zkHw!e1GVKB_=0}1WKvh6YO%!l6@*yw@w3xzU>HSt_4c8z6*aW*9?excfzp`dAxel3 z4q8n&+Xy>UcBNeTde1N|{5I%0K|13nzTXS*7+kbc0Uba_p>kyY@=5UX??8hOwY_0N z3esj^PKSO(Nl7UnMX@<0B?UE{STGQo)H~}j2TORR3l&8{4^_IKQkDYE%Ctmup=^K; z%y02kfV#R8P(RTZBqo_zM{E2e5SpF_W&KU&;7@F_I#wzRC= zv%ES^+4oBfmQbTe+F8`OTuiL0JZmI}JflAp;W!k_jHzX7PF}Y0klTzlzS(kb#g=2F z%gXJ^qnr-NK>?yn>;HaMw#E5Bbv+5XG^Wp#r!>E_hft92liT`!;6#5njkj|$lbpz` z+=1WHZT)sW;pwbt%sS+-T)?POURTNpjSYj8PlPHQ3FLpj>@hC44%w=wVRX)V0dAkw z1s&Zxn|1^>lMpN!frx}9W|TQ}MlI=;amC18ulCh{V(a=vkyeX|J7fXg{t#cA{E;vN zx?t*TqcQ+AKulmg{ShKxGaykCQWBnebYudG1&3wK#Q`;2 zHWpwM@y-8*fO1v~*Mux{Spo}XXcsZ4oA zMur610v3SOz)<_+#}7cT5g1JJDc5AA(U9S&ft44u-)xz|Mc7ar-n-9+j{?AA3- z%-wSV6S_TD@r%gogw$lj#6SKG@cgW-D3FE|fjcnHa6oX#!NK96YW;X;K0EN0UMUiq z0gZTSz>;D|p?3r^|NVk~yU>(t@Dlb60nV;fVn8fqZ}#6yhTYzzYN#!&=I@1@EIkPH z7m#Bnl}2iDrY(Md_;KxzJ3AFC^hkT)PAA=sRTYwht7Zm9`7cZ$qDQS6UV;G~{*3sA zajiWPy64zL3qfgV6pEa%uI|$^+&z~R%E67ZtMWpV#n_rLjF@%OmM>h=?)s2x*;Ce1 zkty}f8Hh3j`WM_4kT>JlF1H5Eq?l0wp#l-hDv8AR&TbywgB_?w{)|3exUIqx7}wfY ztqsZ6$kpkKUFs!BG zZ+L6V^(=%RZ;V0XmLnZzTIzi4qy=^j7*oi}$nL3hap}RhUB9e#;*lWjJPX;ecp} zD}Bt2rI04z(2T5%@#NpXmgelicLRNrNz;5y;GH;W{rs@;CN;HoS_r`BEFoK_00==% zVf)hXz_>V|CnhnGNLw*3bF@amVIxye`qrH0 zQz701WrR*n<0K%fI;Qg*;(3zZ%0c&YM3XYsI=2Z9V{@bPV5l|X7~Dp9KCdtK=lwi7 ziIFAdmhpu{&CrLvTIs{bk0Axx*=V83qxgaEQ77rellQFEci){iE2GOjf?p0MUBvf+ zP&5pfej>DBE?$*>1s21;XN(}_Io{vbscm0XnPZzTl=1T{(@w8)VXESgUJ2({4pR5v zi&lFaF4|*>Nuwir4Xct^<_TCdiNfsKmuX8RQ}s19iPP=n-)EIm@|r6SmnKvABzDa5 z`@%7=q-Z@*5{>yjOJaHT<2ey%Uq-phk#lHCAt7O>nW{>ChlzKmZ(#A->^(d;+U5;- zl7!o!Uy_gXPM4ANEnz(0@%y-JCI{E$ICRNrugdy_{A3{A=@J<7tG`hS(HH!NAB=ys zyl-t1=de0&@Ucu!WJcmVqW--$k@KWh+qu(wGwVs1^~GsuNsMUE&4G)#17?2ctfH7R z*#hReiSq}~CRbfKg~DeB(|KHeg~4eg*&TdFS2a8^AbimeF%B^mjf}2cmgi7Krtq+W zAnDVt{g$;Xo5wWI^!9x7L|aUus7{?T1FPNiBQ-7?&A&o$^+Ua*DQ9L2X{A$Z4pB_4 z$$nV1SmzWgLn(#>2aN1Fhqw0%y@aO~)XDa?HV}99{hT*X#(*7R9UUG1=w(1)v9fbA zHt2Xf{@k~Y-?DOm#8EC1E#fS=mQ(bekmV2k2AaKJP3$DnGo4s6Ybh+^Yhl&q1HSua z^Y4_=VlCb>7KB?@TRs1nTvx{C_MQ{BwSY%^cZn$E1moMusKS-|N^A}oS7-p0%?tYv zyNH239jebg{_-u9qjh3e@mT zeH7`jlsdUA3`(f_QZCMpqaq^*LgK;K$yP_%iXRM_MOt@W-`RZIw7_h4fqokcm~5zW zYXP`gvDP+I&f#?UrDbKe%D)Muz7MBG#Kk>sxNGs=J)0E*N?DmCJ(M3-z5nq~`~P|+ z*@U}T%k;7_ZtxQHzwceP0&EH3WO;dc`%&D0dBTF)+Sgl0%U)?1?vOf)+>#IaknD%SwG@2qb`oDLRUY3a z*tZLRFN`I;$DRXa%p4p8@O`rcc>zxZpfKbK(L(;K&zWypYSX>Hx|jwhH=sdHGbsh` zXf%$v7vfz8W6~gcpqPzyz6pUz{M6O;7qkI?Gwc3aKvOTp^WjSm;4UCqd$_xVgh{@3 zeKI1}6R5z!+t|w{(jNJCgkEt?eW&MfTX1P0BT4mo8UQ;hal4&V2bF9qk90(6>7QvNv(1G zF|^#8#u;HrKo?ZTsr~!2wH14<+XtAk_6pPH<2#&x9}$qFe$?h_PI`kSVX>GticYNi zDe$}JBrYgpz#Si!gpzDI0v{`Ve~j_VHIO_p;#Pckq(Dq)-R6HYpV6Wh`wWL5tbDi1 zs<|#RlM+|zEZLZJ=g!@CR#GfZ-L!W=KLtY4F2QUBn7Rd@_^fH54iz3<;>9-;!!&yh zp(M5)HaWc!+u}oJairJ|q?PX%lwK8Or}d zy9&PecZ-L&!F`q_Y!}30OM(E|1H?hYv*QRfbyru{8ZIHw6t}Ic@|v2OCfMhzrV#Td zH{ii*>FSn}p^_k4tuV^}Z`?Tjv2afKbF(huT7IV-H#c6G-70+kaM$XWq2s|^ll`Ia znw+>e#cv@H@>z(%rkkmRx-XMQw|Q$z(1s?sV1f`)IR(NSU}<{0=O1xsrXV^nKisDn zBLlYOEp&$IGe6Z0uzex_A3P^44)P##VR-9m9$UVx63+d6-(~r3IIZZ7NHI(5ow7*d`BuiwIlapg*EnUu+ zd={-Q9~~R}C@5BlqWRfm!p6q^3SZKSM%=W+!^3n@7ASCzWRuR%0xRH%daA1%%F?H^ z{Wtopq%Qg2oQ8t~Mn>sNSX%1kS;bEU-QeZr*`N3!kC6g7omlnH%CN=?a&MEpBPZsr z(ShhP3&gZq6iOt}uTxM=&0Tjx(nDruZng;-kp}ALeUVte2fs!4g8+`b$pIKGvRyc$ z*Py}S#@+Ve|0G*ULPysQd>IrI(`*-3$KO3Mq>lm`nMQ$J97gPt_QSA?>4$6?(P4grB`(>4g40gr@hl8T5yKF@mG1G-gEY-o*TC+(j1ox+{*V^969|jI<08q``YCDWR;!f~N~El1e^XPMS+_ z5AsZmm>${t4a*g%I+P11zZ^!K3@QvyYOzrbD}<(#sP8@_$vn5hdUO}w;xU*^S@rDU z#KJwH8qdnX;WbmkBqo;5S;+9-isCD@r>1tjoWGRy??GuE932&C#gj;?7lj!W)-*v^ zz!5KhlRVAXqd~tFRvV=7ilN$VOuASE0(Q|=ePxiy14hMP9BH0mb#+*{SZbYrer4Kt zb#-a^yOx7yYXA4ic53(4xX09r(3?y?>5!dym9I2^ci-(wG8Eyvl9AWDQ1 zr~VoJrg*QHNFBEQiy#eaSjyRfUG1UtfH)e&+B=Yf!^|9hU)|XU4wny77KFHTk`J#r z+`gS;N3Br6D>9l=jlmSA&S!*qTBv1Dyg@PQ@yoqL zRDz65Og}+O)gy2B33Fg1S0XWxQ_QiCc-M@KsO#kGT+%(Un)tuV8c*sClNeheC>(B1 zl(H`rw2{>T>30CoTA@W68_1b-jxksZK^=x3$!~M~#YNGUTy6vZpJ(DX^}-c}?=g9> zG02#!H6N3GoaQPoXbnD}KNOh0l9PI{-v5kdv{2gU@+URny^}<015tqs*qlhDVASG% z>d-nh8T8sI+vi0pe>m;+)aCJjHp5hl` zwx=U`Y!dmL!e03m@dGjn3ih|(x?TfWg!qX23`H{!hryMZolkimUkmc2-7hfGsgR3{ zAwXkIejdYVrlLcjdvsg2fMgGA^X=iAFkt7`qB!Hj2JbbSI{t;4dqkw-v9=IOF+1Z_@~B=MQGWr#&nd&y5A;<&ADMDJU}L~4)yj>4@8kG& zE}Y^nI`6LjjY5HOW-W~`XtlrnaD5|LphWAJsK+#i{UOg)`(gG=!HBNzM(ScMeY*LU z;E}%~i;^D?0(_&rrkb}y_N;1r=6G;uSRT>*s{YnMN7#rTzi~QZPyLLAzj5oX;r*1t zj&Jqn?H#18UxS}M{8RKNSe0Y*wV|$In#|9KH00z+p@m7-8VD8#lq&hh2FjBk1Z7t$ zZD3W=)24ek>=pyb2?33`Zk#IleGx=GYdjmkI+g5hbWC$=V+)X9e1K~q)qhR(>zZ}x zV;g-&;_$%7OdoRYZGkn!st5SCxfpKS(VW``aZFhB8)Bvgo;OuvD)w|N z4yobLDLI{#choJ}zqMKfiZUDx<9bcvQtx@@$MYAwxws@CxaWcfk+~HZBQ0~g>T#%# zTJ_`*L>%j(QRn&T66FYT{{$?Y!(G%FLhk5$Y>Ut8gD^h7fTKuKh7%~A0=?ZNw#xN) zAq}hBuiGme)^*MIgEvl%H46SH(0hbxDk7-#n@)c!9@(9B=1}!Z`-m-5f(C=`UZKfH zH8bEAZgL-B#wcg<=No*Z67%_-bhIyjw$v_Gks4gH_z09snYgnTry7hr+%KpC;kW`{ zHUl5R!-s$2;zcq|yM2(#<6vXE*|;nM#X|Mlsut!d=0(Kze}ENw=>G$(4v25eNFict zYHhkqO4JFp?$pe0$~+h^1)R$7*W@P1*hKYOK&t`!gau7Axf}0)VcvcmcS-62yA+6b z1=X+PsFFDP&FxIs#)%FONfQ1GD~PSD`y?x97;(E#s)2Oh;p zEWA-oy7TW%L)}Uf#xIX1sdI*RT1AvnzO*!Fh+f`NHWB4eSKFmMak6CkKq+&ECyw@B zLu$I0KJs_w+Yb2XAjRL^4W#Ux(JsHT1je}7vacu6)HAg>3VdyNyS72`av-q)) zdZ;~hVs2%RZ`P|5mL?+tQ3`@d-YmEOAc+)HGNK9?HQ^;1W9{ea$4Pmwy`*{)(@6`sgsnK8+-YV($Zo?9}_Q%zh zopV)>6jB&@+=!~;?fB%=KJjA-5D; zca(qVJVd2C^~2)TEoaHxEwOp9kpO|$pqU1CA0vMHZ{QYCYVKL&U42d9r}&#VsIQq? zAO{)1I(|CmUmS(1-f$*#UGwB2BE7lzt}aW5n`K$zjaovA&Owuy!b~ zy{>70OeKh-G^ZTTPj-EOArs&kl4jgw0;Zatj#=HF#W_7I#lgDVHb`zE_@=d`swZX95fatg%7Ll3I=I z%+`+GqGy$y;l1*epC+98;WEcvv}t>M$swgR&M%ts;p2ICBGnr@$qtuio7nAz!QQv| zK6aMedrQI6vh+E9D3t!Q8r|PS2kfcQTfsjMj@N@v#68bLdJ;B+_vco#r)|T}kPUji> z81+(UN$^9}aKTS3+y_TT6wB}q4r?a38uGFZDR^sr)1qVMKp5kiFp&|yF$zzbh@47| zLgKvlmZ|z^Gv0iuXM4zGcf6eWQL~C_cwU`$8&4Yfzyp{sVS@(r8|v*%MP#kjFkGsu zs;nc3AxJQKH_d+8UC6;zS&gV`=0 z7c)->v-Q1(-d*||XDnUc$e6<5Xxz9kof2@7?vSrn>x))+LKn>_1hwL@_up(tbfoU- z-3toqWYOLZ8y;W3`;^p%O%|;Ue~yBhetQLeQZ=l4Si>6JsD2J`5-qc}De5>wJR7YW zY{|Yo>_?Tm@|aKpnaOLROwF|ilPW?5+AL5}Aj6!XMz3({zlx_b$jy9o`EUATo#^Ng z@%(6(&~xn#sxP5b-<3up#!O-BD2SL~6NSdrE%{=686#}$>z@0=M0=bfxA02_`}&BP zl+5xAxU)epwq?xbn?)U`PraMKw`AwZ*2TTn(>R&j#f>mB2Mj*|2J3fCyhjXt@8Vtv*>xcG`(f^ z`c#|(Tchob?7$uok!;Ui5#p=+dzrq)<+dav`LFef|L)o^?6#x~zU4*ud=!FmcJJOI z0N_s=tZntElLbE?g^obBH~Kt4|E#L|*mp#t3tgIj1;PSsK*M0M?$PmaCeMe^r8@~2 zgte+fea$%_5@#hWAiHTmx?g?IG8vzvN4e0#CFGf*%As=!}50&;|nxMY~e1tHGv z_4n(Z*tx8&l8>S)ISUdi6d3(4e#ZTcKCX7MmOQ)YC`@Fi+Ev|u=cOjq{sz+*IjowI zRiT>j+p^wm6WjVq+Hd!jC&rq)QrP^5yjvHAdQaPFj-dtwpC4`QILISCe4_<2ekDpE zuUb6@h2G^I;k{li^6aDWo;BDmdLoj~b3f&GpBVFs-BJxsezl)l9$^qScEKj z$o^IumP8(A@%cHK%Q&pp1CiK(O(%G^OwGmL?VjD8zZCFEnxAI|rVV$xlJBb7D|avi zgET^VrM!FoVM!tXiE*)Ak3g{{0DfJ7P@bxs8F_(?$usaw2erx}H5Duet0z{yd1Kg^ zSF!r>+>w{le>*!$!Z~^+Hf0&1b1&>z_|@tWB4WDOpRFRZC4M%|=O$L@8nCQ=@K zZ>1hOrrEW|esYH0w+Hv1T_s!~-&!2s=4B0{uZ$(aHT}AW-!sFtt&*!#`MM+6S(<~G zmE*|6O86JD!RuI*2yaVFTDlbJKv#GW@Pi0xoAMui2&WT=i~i<5J|TD8L?gvgX&0#h zbjXT%eI@VYFRCf0h6uj5yX(*SJtdf?ReUFVvGj6I&r16 z4TCgm@PwX!A(N`|*<~la$vU{W)w*^u21D1l-(Ct(Vfuu@2+ud{CZ4P`MoqTHxql#QZtbN!aqLX?2vH#!y0NQP>>fwW#*N%j9rzw%Csme9J_cJ#55BlzU< zn~KCc8|kY=hWhEtybE_PGAteA2QwM7zrrI}W|fgVGGRx5_qY%LTwS(mY{}acg&UM1 z$bU_~`@X%&o@n}J@}&*kXZuHHWCp4z49gGKAeBwk5~K<&Lf%WNwTjNp<@DwIdT15= z)yVyoKXbFlIpupMZNwHS75_u&UOY$Pb2~tQu55Zuw<7ZRpofBmZ?fGB1VAkN_&t1W zLL2W(F>O&}S@j^GKV3`T(|Jx8l+I;tX3N(ffU^8$7ovDx=MLyMd@}obzcTufC$mj` z*Doi0BhTbk>OSMtMHdT_k&El-8a{iJcy&`;r<~}gJgYgah84y;7AkCspdzS$@^@l2 zTHsHq4>k%RBfEiO-J5m%J3#$$%*ET7ni#le$!ZoN69vlPOEAf@N)BjfXk4A|k3x?A zUy#r_db~r)FUlT*pu}Gul&tgMKR!R6hfQeE>&IH}K7=1pySBSqU}-#R2JX8PvZ+OV z?HCvMI+&#)lzhmU259)*!$WJ>YFul%>z{mKkL%1qVY{FRPykw4sVU+?@0 zxjF-GQd0szWq=jI@5$B^D;IonTl7sXE(R zPBneQe7;j~6Qg7m6_+5*04Snd!YEu0{MXXA1~jXd9M1K zbacZjJxJs&9$5lWSeG){7O)T06?jzxKt$-XI`G9M4oLL-u=w?-ng7^r=q2DFZ?CQ* zyO5)!qvk~`bf@1MK?MjSs~{Y2*yw~Bpk%SA;08}ltY-s3o_Vtm8?FSKip|Aavgh?| zVB=#7-~9T<42H1;dO2?NYrngc@WsZ##0BEM6pHWR%9^^mJqfa~1pX`7y4;_n{o60R zn*SvZQLFW@@IN)easl{UFj!_$sl!1!yB;wdw@*R22*^ixemNj^URC$M;z`84DuEn< zf9eM47#O=h&)%DW$%GV0n7YTC@lapn-x_A@;kXV@wC} z)|^I4BiS|hY9go=sc?7qS$0?7E>c@l9oMwb;>1F`Wm^h5nCAIhzV8!GxGl^)JX`S+ z3-{se0*2*{$s6_~_`sQDLDVo^tQHIEbkn#{?)wlSTX3@MF7I*;H;e-o*c^eH{S{dp zIDq-#%>q)YhJ_)SVF~3G@K%ptj4(%_hk;{#kUPnk2M9+d)?zhYpX+NdUWnfVCbj>N z`CW#eQKb=E92}h3xH#z0SiHGi6(Ac;SBJ~Cgx=L*eI(!hbSYL~h_BtTTM%5?@k9B7 zG$ixi^wdDG56w$l99H?H^cy%blS5U)SI&f!kwm^EYbGZ8@tv7$$knGs$^rrcK`S&p z$~VVDlN-%9sEkSh>rPYVi(Af`IrFh$B8dlqJ}HYOtf&&pCEo;X2OM!@+UWBfagUbi z>oj$kFI5|03~854^Uqtjt2;L2&WHuyaNwNElm-_USGO{`HjI@q(wPB=Rh0?g9e037 zF<0>^cwb&OWY^`Dhbl1xx_J0cSZ(}VRecV2zULY>s2QB(sJe_ZbSSxg_UKDuDg}KG zYDEe(wzU*N&z@Ppf-^ZuNmxG|02C}8*e*bc2KdlW z*~&|{*!C(TGh;m7&RQ8u;5&B?m9%xtGBh;&-s;C7XsZa_Ei4{U8;5uArI)Z5FeBQR zBkzDTL+xm5YB~n$KITN~fZFt%9(!~cBmqK&OcAVl&qKj&_AXA@ygl#<7@>wz579O5 zM3PTOkX{s7c@<^f7=-ahy2`Gm`<)=oS#F*)yR;0WNAtLNxg^s%y%~S z)4j_*$`+*$qfJB6uh5=_=Wm1E?etym9AlTK6+-bcm`~p;PQ80fs63ekePp6sue&eh z=k2_KTZ}h~m$J}Yug|5&j-jMu7w|l1pP*zw;`C?cIrfhR&j5sx%3$OUK3%1}p+6%< zl_&Km5>uKheBST{(LIcx_b;acHlAeENd2KbvIQx{}DqF#5xB@c621%C4Jr z8$e{pwAV(dRaD|pk<1{SBgDryc7n-O?a83b2$>xXbQ25&6COCy7#J8|{;GG};j%Yv zmg*TC)bV^w!60s+?5Z_U3k=$)MMyl*$%`*Qt$PD~cNrOl_u#wT;P9+03H^Wduht7g zAS}PnAeuSII}Jpe{6B+DO{aiz0Xy;r`Hed-*e%-pYfpbKvv@1Kt^$$S9$)U^`sTF# zalKHh#)Pm)3i}%G70aH|1YC ziu5loHXTc0WjC~C45xl{ThE(Xh&Mvw&${Q+=RZ>Rv~wYuC%Crv%d0F41Z1VreIz`z zwW=9Fu@!-P2^^Mnt|SlBZqY_cQ7nA$R`JvjsuHIaBghc=c%EWfYU#RsTif7McQ;^d za`rtq-pl4+!G63S5m!vcN6({^C+Lz`%b%XPSSlvJgqQ0S0{}r*V{{eQ;Hs zDr-jRTk-`W|0-TP3AH<_AaMWo*^`ifNR3POr0fgt12^64P@{Eoc)5EO58oGc1N7n8?vNa{IpRlI8HhQ5P!WoqWjGb z8euqitDVj(9%5~fv=6HUU+zJnW@Tpwslq;7oH#`w?X5(uVWjm&dXgEZF_*n^jM+}d zGs~#)zIpSVW#enmJOdL-BkUNh8exQ3k}|nlXQzJzhOx(+M&kgIcF0<0HcV{LX7TT@ zU_3lK)Z&6d3#9P8F^d-k*}py^ngt?23M_tV)~)?t!4L2QEJzWFq`Klw6;V z)dIW1v7m|`WQ&f4Ox3ZFn_xi4at2b!vZ&j&_G%4i@}+8@`Yp~2|WkB7Qh15;t9>mRD>dR~Us_3TVWgi@VAZi=#s3IoLa zKrPQQ*dqBgU7e`;qox7u2KzQzN)6cgLVMyXqB`d0StTvRV$6ROgcc3Lt$uRGw$(PL z`2-fL8zS%$)7gC1Lvb%7iZFvf6Y~Z_i-bH;!ZqQ7)b~+bS~-|@5|=%Vyl;OB%#sM` z0Q7@{`Fmmbla-Ly-aPlI%%U_+Id7K+yT#IzW(|H=e+Z%krSO}xN!HetM*7R{A{2hE zX$k#aEN~lvKYh=s9eSTN+$5+T0j*eSGXVqHx0H%QR-&q_y^M@fHi-8FxmD4PqKXVv zJ$aM8q(VMYw1(McQnm?305`OxrSz{e?{@POPmtLDgO30#UPY@Y^T$m?(Xfov*_V9~ z=l`y*6vunFg;lLTUD;6PSdpRSsOj!gkeMt7pT$R1_RrSmD}>lM#VDaU;i6IK^vX!w zX7_Qxy#Z|vX~}Ic37y|03Nq2hr>^{_DcAqrZ#Wu>cStMaOHk>+A^Z2E?{7;GtLJAJ zr4<*$iR|HVzoCC`CPG-qsHxJXy=56oR-Y-TE$9@*+||2#DX~TOFgKNF#gORgJETE! z-}_ubbT@WHGn-B3W?eJQrEbZCuAflvrvyIDWmwEtCW{inrh%R|Jx&JAOxh6KjcnAe z*#)6GIF_KR9ti8C+j#rE8tKhAbu;FpHN#MIdX;@K=x`Bq^uagHju!Q?euCn@jATxH zuQ}N)1mqCmn%+Qw_!{xc?zgPIuWK(Rv#?(wXZ!fL2C6Sp=ARTnQ%<#b_q9F}mV1-Y z(&N`u46PWi3Lf=H?0G__*RiaJMZjT`5p*zc?|U;baMY0_x!~r7c#jdN?@5UWw;!}a*Ph!i4jlh+`cX(JR@<{cF?Ma|~_iM~-&I<&m@s9_EU z>l6c&a*)f{f7|&DN>}_zgXMqd!Cu7wsX9QvoAxv=>d!;pISAU4*ek$(ma0!3pw_&O z((eGRbmHMWlGp4!OkE2*3!-^(GoY&^chJAx57!gQ1eDTX*Vs-kG;}>3NP8Mn{F(0| zikH?ec7!kp!WM*myImnl1Rsiu2nRxx!oga|4(iW=RR?>8!(&pvU=pmbj@`kZG(}9^ zj@`TKJ&76}H%YffNAWHRtfuymKeZ@c4WAE#p~9aLc`&&FGAZc=^#xAuBT&4D%UUo= zOV8~RKA-|UBD%+&cUH}iF7blu--MkOkUw{-%nip+Lk%Y+Hd))*o1NMumSL%+}1If_d~r!e9<){3S78v!AX-ja|3&!0frt@dt^zMS%H1c^Cxs%~Tv# zF4wq>(ld)&uzB5e$p#MvMFsIMWN+^@j6~2ffWFqc(KWqi3$qJG+@t+{d>kCxYHkHT z8DL7Ck9|Hfhix1I$;|ZSjhR4Tt3&UN-X_K1qgfaCJYhou!~vYx_$NrTaIeVQ<+`_g zql3PH!y7EWeT8)cha85A5Y^R9vPgl1g0OiDZ@fp;eq$DJtzilkEpMkdoH_gdJDS|?y5C9%<&D)|} zYY>?X|91G4G=YGgKuD81Qcv{>>=oP=GHQ}@6^Mq30x3kLg-BF6TQ7I zpnO;=Pa{C|s#)>5Luh#;T%A3>Qu$p!G`2q=uH{ERg#4LFLAc`WO=H+UUjB322A9J& zczj`UshrxxC9NRV0BFGMQj8K`k5t_uEu?34{>6!Arn&ZUO;XMK7b1t69{QuOtGsQ* zvl!argN)l>y$!lPxWfKM(ib!=%D1!MW^ov4MyuH}ZpRJ>47zb38LGbf=F##>*7T6J zPN0!Y_-#$aSI403m9_o*^=7*lM4>v}-Q{;nuZ;3uSCR7HFj5d|f2%59WgmJ{qm8#V zd21q7`YlEi218FbkQh_d_Y9`o0}`t}TE~#gpu8*|!qnkN7a46Qyv6K=L&|3LzF_{LE2|usx^usvHYOqAvu1|$?-89bl{_WOOqQEb`b$p) z^Y`ymX#LMoG2{+$MkZt<5Nk4;!VKeSi82|MD>oNc4Abr0MtWC@B4i5n-%>K`lt%Wn zIgm_%mpvPAPPqu`sj8_Sj0i9g4G}Sl_aPKW-hr!h>A8rSr0)J(LluyN(5gWy8JF{M z1}uNBaoo?S!u6&>W5!#7HXp8PR0`_Dhl034(Ol5TS;J6J7o7?wg&C{5MYVWq<$Wur zdDaA0ak)op1YM$E_|y?B7{o+9`IC{|5Wa(36?1QWC|hN?%1NgH;>~_;!sr6ayGdij zEI>e(8<=#-3*gTE3nH7BBPiimj%H3xBdDrU#K3O*GFU{roCw;NOuv9SG-JLl=_E!s zo@8tC3)Wv{I*&Dmb@OLeN)8Cx;v}KJ!yloNddQ-`ou&m> zG-!MU_H}P&0OjitbFS#s0Lv4nz&?x(>7AK2H`PgF z>OR`WytqgkKE5{=VrUQZn=)0+^O_?o0EYOaBTU@O0Fc9M6gF&7{>%4U84$2Oqr^LE z8Tv{3>7z%9Qb44 zC(6-D=;I{J(bv-}BVWQs41P>yCu5NH7sQnX=>+9J4bw0wJRzHopzN{-nB$OIH_+E- zd%HMf0XD}vj}r>qtBJ9`Q9gFBx+*bQ@7 zJ1?%D;y4apAy@ab?KLvio=CbUxz~>0V%A?WJng3MVPLs&5FuJ5h$eKG{ksEKm#04Q zbe%-kz00Cn<&uaWa3mdil^XPL_+1{{V2~fO49ue2jEW-NPEorPba6P1Lm;KZWG&{> zJ*+QGG|336!=%qr75z-QnJ?SG?O6ULqOznr1tp_dZB_Ts-qK6}lcg~cV}^UeRnEhX zXBlf{@9Z`Fe)dmuV`ScPVC2pBy*}Ih;eIS#+42G22LEg3T9D~vYt{J#;`#iOf`Ht} zFTf#p^?ggQn?0@v8k2)C^#wGd%nwf9?pd?c0$}1$#TmJwW`!_X^1j;GGz1}8LD}!A z6!)oj);gy8yo%b|h{Msd>3bphI5U;Wm|YSNgj(dIa~U-lR^*D!)_jih+ht{Q$bOQUEWtEZ^1Gi>qz| znujm})arfnV%U9>1aDQ|$o|LxSLE)MMJkAqCg0xmiy~~uwpM&a=7*SQXBz|OcCn4f z03}Xu>ys^Y#ZA#Z2e;(-Tcsa*$|JtOU`j6YQzo}*Io(j-uEN1LG@N(%<2shIkgJFR zPLl7ufyI?}Q$eRU_2(}k>P!!cVQ|XLbs^A&{WbVfesTJW?u_&xd8&VU>{*#~k=gSP z6>V`u8L_>Fi^zNUT`Pl`1~Wm|+$W#5_s#aTRrNFh7iTKQd!l8;G~>k9PuAbm%3!ek z-g`pR?fDgvzXm}DylzhWTT zz-&W%KqRev0zDZ$3(1Rz@41Pb?9xk zOILJpjKesx{Bmc0wxoh_l+`}tTW=*Ap~~H6{e(QDnyrsP&$cVT4#TPGJuvPem91h% zL@%q^`dHEPPyKTNefB(2WZBaOo&2D~I%DUPJ1NF4_hY++@zw~#G(3u3w`~_3n`p?$ zRIBOzf1u@L?5jy#F(}s1d*1I?vfNF6bX@(?nXisq#F?skZuJ8MA9IX5=nn+ z>wVArJkQK~#+h^eIKp-9{f)IgwFX1`pDKHmfe+dJR z+A$+1gij6?#veWY2y4obSx5+(7)gy|9OG(QYa3-YHMu`KYt**SBxk%4E*=iTgCt=? zql7?>=ix%R3$XBvjZ4vu(OGW|Pzpb6Qv{PPq}YhiaxEnzL808rIGhYXIaP zy*=c`$-;ed=B&XUU{+JU!%<@ha0@imf#yhz z_RsQNjyR+EtnZGc>y6L`7uwkr7FkY2_mlc4aOKu+`tUelZ+TRV6Mo}6Y^LbXdRG05 z^;T{Q**44gU9YWD~UON!HBq~`q@T-;TSflR&b+DGv@KTw} z&-!1+8{>yF+jxKtJ+uFx;RfJUSnHg+@4czZSEz?rDlH?RTCO=$UO0|IU;*+(| zgP#sj@eNK#nXEL0w zLyR#C@qg?zsvv(KC}_)!JGu$dP?97O;ZJ-4GLR+MiCQ`!MY>n=NBgQ4NgyvfSuWQd zI5M= z2rDhLL6?2I!pN$EO;@N>JLS&6yE!6uFZa1BzYbXBH1V7q-z5L{3IFN@R{ug~6M+VN2#TZ^?!<-7j25R&DLyO5S>o}K)LTW2io zzQi@2JF~9?o6hX|+oku11(`2UIZ6oFU(_+TtQ=T)sM;*IhGg5-QRi*`cu4$ME6Qno zN4Sf3O3k=huyqwpYq9-D&{2wB{wc~n6;qc;H%*w3b*JL1RRlWoTF=Yn_FP(me293J zyY0}3*jJh~^bb;rgANSXTL;rBwwBK|fN+6&U}7<)Xf685P}1pU+7V>tLGT4}3B|F( z3Xee>&?>-bGb)rqBM8wxaF)G>rXCQUGk|Dz`ljNBXO;!YRG3r{6b=5gU@lnHDw!*I zLC((r8JS=CN4UxN0*L(wH0)q7d7)jX08NB8%Qfmx4i<7S%ZqtGTCuIE;Xl^1 zBkrDjmG5_Tui6ek7&4$~6f`tQqS@w~-#zQFD6CVDMRp)c8UT`K%` zP(Il;pFK-%_swEPl&5Wje;*1 z7#R3WrFscylTW(5?wQ5h6qkEPJ_1oChuNd%=JQrF22IQt$pxQDWi&tz`5K`@@x`1&J~Imo(h@^{IqMeL7~tfeqxhMb zncMnwOMs@(kmu4r1?>sJ`09Qgu5)$FXl~H5-L9r56^*~=I_|;qbkya2N_+I(7r*0wRCnp`++3pMz2vx^Exds@{WTnz z5p{1^DD63k1Uc}fK7wd?ZJJ;I9Y{L{U_5U#v@ifLrPil-Q8NyrKiC6>OE5@5G-ot; zUx%a0yMIPZdHV0*EU5#r3OtDjun*^qGuOmZiE3rd+679sUDcZe&+z??=>g!!e{If; zZISwxG(T%<=ZyBsx7;a(`6&G;A9s$OV5UfgfI##-iS6W`iO8*sSGnFMfuc7^dG{U+ zNfxr~mRWhJV+RvmLpcF@sF#O@lM|{(6R6Wt6Be)L!Z-<^jbVx{d&@XafPA13Wx;8p zWELu;a}rdsfcOY#WurEtCI(E-yK)hP0}y$Zg=e&EX_(H*kIJeZFN@K@dQm#Zj*i>tB!NM-tM{ zLMN)Ot_#gNwo(42-Q`^TG07M%%$6$qNezwbttS2IX<)9&a$;W>Q_<50*x_kDsw|f{ zv$gW*Y`=?(CY$4ToH`r(td16P215v6Ql$-WIZyCu`-*CrvfEEIGJv48v1OQmmf#OH8Ck@2 z#@zsIZ5U&M6iP5?T)6FPzT+w68A9uomP}vOapDZU6*wOQV9cows=Z@J->-I}e7qfq!fH?RQT>~y{of+)X(=3AwEdJPCe zFg`Nrr`aaQzs4x^hDngXh(~>t^!aKTH`9wENh&c&B#tdddFnJjvHFojisa6RnCA4pFbXf;TG&1{^y$7W~L2)6dY9zLUWIXr-H##c?3rO^$bGaZu z#uhAjv9a%xp&l8-bO%Y55%hN)i1O^!{bsI#9Yc8}WWGH7HH22gwV!ZC>k=rDQc<1~hP$A(Hh?c(I-jcF1D#LkcEg%^{x8&n? z29^BtkS%D=Z{>(}nZ&~SVMFmO=!aW^y%vPTHJ_7{l0tD9YVIyd@Z%=q0!5~@l8S6U3+p? z_{9EIo6RiSy+I_$DecU5)#O)EA-2WhG1Sp zhVpYnX;e!_UjyvY*54FBuKq^=1@`v!S(C&uId@&p3;52Sf))jQ!Xyqu_ze(Q^E0$= zokVDVo2jBz93^88JYpE|{qf1|B}*V((j$-r*4zOY5)fjvbZ-IVnon|<`jw;3|Bxsh z%%{5Hw^kUa9pD)tb^)LgBPXKaJwRi&30UsOOQiBoqE;b7AVivvZ+uG^EH%bOM$~ai ze;}=g#0kzD08C&J)L5qbC@F=%c_VvoP_To5MmNkDolya`OOf3N^+DPSoeWb&9FEW; zoP}_$Qu>>E!`lL_NVjnx!!M8`Ok>?MIVHP(J));5n>W};p*DhG$ z7Db+r%*1CmNW!FqNSH=oI;ADX4wrJ;ECu#~S$`6E_#v^!_*KAN4tfc=rj=!lmefr^YNfI^E2^%DB>DW!+2Z0tG8MNmMpbUG6IMr2 zu&0x>m>L?wk>5~#A1bh?A|H^lwfC)Elnk8_l8|)x$a0@BoQLm@`=WwPLW7KWx=B%eT^OOO*%f-2P88f2`TeoW^tm8 zR7hw$w*HnOGHogf6tU1}IoR5&89s-=4bWJs9c<3rqFn#Xk*)wB`sjpX-U-moKOln= zdMGinJaKQ8Q8hJU-SD@|FbbK|;DxQUsdZijUyO|sh6h3KllrMT=HW`LH;~x;G`ELh z&(#7V)PV9t=~egU%M*2{!FE{!X)L6SQG#S9SEm{}xcb#OA|fcPfcK!2#|P5P(VPn7 z)tIU{^9;kQ>o`X3Yh5Z<#dmES2403~7TlxU=6d>ap{s`K^0MEX)9bRU(84Fm-2X|p z8$BD7*1l6ZdmqYQ-g%a4w_2fFmK)J`@S-~{lj|jqzeV12NBdA~-4a-RlzdKvhO}2B zr#oKCG}H7m9UJ&_t2I=%eyRzBJc;M+QfSxP7Uwo{_@uWtvhVC*$GNk#TVX7|Zm!u)#5{!SrJ5KS|6+wQ$b<*(zPn0@MQP-9Cir0MJ7zS9S`8*9LRL7DZ~T@Dn~MyF4NOAmF9xxS#G}Uz zN^3r==SNHF^}zQhp`yk@ZR}ro2^D{Ola0p$+g2Z&J z^r(*zItKIq6nsNnqccWX#0QAPD{q*V5;lPzSBI*y-f;pMBxOtbz-9V5VHQdVeV4@L z-DS>%hoK}6q&8OSw2*-G5c1Jukq#Xw;$GMZj)O@#&Yc1 z$8FB0Rr5xJmE&{J^1?0Ky3e;P9ZwemkVV*#pw^>C%PSBO3@4BX6i_$ z665Nng>JmJm~8DQ(!(ck%f4-%iP9>>z1%$a1wzGaQnd3<*2QT-=_)GeM8>*Zgt0#< zQ0KlQ%F4=vzIi65;PAT?0vnZH_vhFYbC?vP73F&HwQ<)X6vA~-&i!6})Y*xtJPkSC zgGGE3Qcyf8nhJzWVt%I;awNbME5@?Mucv(swz}AiWe>E z20iOf@tK>P(P~WJKNda_r7wp1b9<^R-j=zsw4#AdZ7q(g=EDYzx15{Xo=;`4+GhP8 zY19r0-lY>C`Td;vPB$KUf6)2Dp)owF_85*6Vgr`FPS?c)k|wZ}^fS)5y(dS#wPpW! zL-9&^IPc60D{cAaflOM{%X6?1`;AE$EsAzMjJ>KX$}(IYm9Y7diu87e-sB0c{xU+m zb>+^~VhAj6B2GC#SmP3rkW{?>uy$q=WJU;o1EB#VQK%X}hgM*~>*lK~+CKV7Ig(ljq?*bA3Yr6CGt^en*Fp$+SY>0ahUh6&7G zZh1LGi4s;omT_fzf0(QR%BdC9vK&B$I;&2p7B0M>rikT8W(x%<+n5Spfi2vD{qT28U!^F zCcq$R2?=yBfzurCco5jCgnRIA_a*x-Ux>=!RI>r!-bs>h3;*Z?M3IO31VvQTTfEK9 zmb!m4?bG5f5$0>80H7{7*#!=KL=pspbdqNlQ`GlzdA}*rAnjL4Vv{GNX2dd4=Y}+t zn$;$WSXJhF!V6RxG*pV7H`t*(v6*3Zfw1KShEN+^!>@eT1qJSkeu>n)Zsfw~W?yN? zA6+)rTCCpeh^i^dHMH-dUf43TvvKgT+>MJ;^b*c~;N<|Bl;TdzFxsWPPOl^iKXn zAschlS?+5C1m;}tD7oLC)ZedWVPV0`TLn;PR+W&~AYAXB-fOma?(D4^&_D5-HV*gC zf(Y3NiKP99k3!s%0)GNC9C1{_&ic@aK_<=Q)D-ND?UmuTU{hK%f0zS+0-Y21C7v#O zR#gYm`IX}S%@hCotsVz*YwS^GL0++dlvEJ3#$V&0S3ssufu|hi!0{Wl-2|?C6+1as zL{n1cgC2h*t$!eARC9AP)DW8{IAm+BTy>U|Ii1zC=LqD)=A;Va}< z_@SM@yQvdRNYl|301?MSY8x@YoOJ9Ba*}fB%W;#lq__XeUG`d{g^diml8tu@=4v?V z>+5@Y)#m5tSBzlaK(dnIXi3@z?}W3nvx*AFc3)o~tV>V?=CQiE>pzD39qu1tCMNVD zNR{nXGli`MqaX^m;LPhGr=*OQV_05aM}mxM^agiaue!ja8rJ~@5lY%5?b?&MR_Jh{ zKt|&2x9NR3((~x}fFxL3e9oo58v6jqJuDF-Z8&k@UJ_)D4S*Afl+#d%v+T*yg=XT4 z_%sBITRfG_KDLRMhT(SQIUr0eS=A)`?`}L%8?}Z^Dow z>TA~=GQ9e9(vZR|zJjHL)k8I|dcHf(;CUp_V!(qc3-t{ovql{fBGHWW;|}?pV;P$; z1Wg6~YBw6DPs~(7KI}dP2<WxRwxUAUcpnD`bfH+jZb-Nl< z=Uf2#fSa1bu!7C=3<~1NL+k_i3#R}UWhYAK`Op}AzAw`g9aF~)t%zd8)#WQ`#E|hY zJgm9(fhN=#4NcyuKn^5!e?V*|aQnBw5#vp)NhELm{0@u9tiC+Th~zsl>pk8`x;q zL$xe7>7t>U^2iek8%zpL%**QltVmB*4%+g_UT@q6vwkA%1GkOf<<-?NE<$02?wOfu z6nyTVq=>+kA#k}5&IEwU)uoTqn0<1PlQK6O$@4hrYB)CMu>rGgSh6h1o^(GqNZ`SJu0@E42X zxTlS6V=zhkp5b=AloIDHZPu<62n>cMl;gdK%LmQ8T7xpJ>xSHBttlmUY?VzNNk8^h zLd9wX8G*Gf1H3T1QB6$^Q6iJ-a=TG*dOgYm(;AvXfaHS{pIY*g+Xt*|M~wz_7vRVs zpe1L=oV|ZMVOTF;L^swz4BhUHKEqD3k-RP(&{xyLA!GO8RY4I+xWaL~u@1@Q=&nGG ze;4Sfj!2~0@cai^;Gcnjh>m9r{{d1rl~Vn35s}!~%D=e{jO8#$w^i7AI>7+ENKp7B zPT|R!LfR;Zk(-ZCPVUatD&PGA6Fu%uKTrHE27!Z8FcqB9CJd)UE0mQ83~u`U9^j+s zMNzhW9hfHr-AQN<+yvwofEaz-1|<9%uX${u`2>2X8z?NNflU1k9$=d)h#s*S;BgNt z7?*HX9uR#@?Yo1400}E*DnwtU&Q#nAdoxC32`7;mQfdu)G-E>k4$`YT@umjiCZmi}Nh`gz zWYVgeR{dOnLE?2GRCw0QFT2!GMcJQ*9hw*`dt$cKGX|$SFW@4|`vFo!$(wSD*QQEg z0%5Pl(Bc8z9~V@vyGIa%01HoJVgPd+l9{Ip0Y?+Kcr)_y9>N5n$;eE=hI)E>5TaVy z0&ZA1CXX)8Pir&?Jxmm#;(}bl$S-CR#|iEW?YG64nIG#23QcmU+d#qV1+!$W!{l?N z{E4i5Vbt*?G2sa_*fX1t50Z4>Kueq^@bf5d4b|SrH zh#0-F3fJsN#=J5v;v@tB{m^-!=y9Hy0VEJ+h4!N4rPv$8R+o0KD&>40ChXD3b6zu6BBiMKUJI9P+0ebV9%0c2IOF5 zsnpc@n1%hmF9SI#=}v?h)cztED{=BQwy{8QtZZ3pLpG`oTtjPis(V-QH@TUiXa2dn zYZYz#D#2Gj5V~ob2IPq?m?D{{Y)2^&Vq&Z4<0IsRx|1dX2cbHw+3Pl-f{wi(boLuG zSnzSi40kL*3r)^GpQ;8PrEKB*Vvq}+=0sRs&;wF>=c`UQ&^;_z5;xN@3{YT|RK_hcHC1$eb`CfzVeFr~QInWCY}T!AMmQjn%^5g^MXk&Iz$Z zS3pyd3lmnLA^54Op#hR3Y!!A#F9_6y`;k!Y6u`%uB>G9fvv!YAMqk$})ij26VMG4_ za$kv{0ZcZ4iOm4ovbu@MNc+P*rzt6{M?VL&iiQGG07j$#{QxfG^ssRIhlgR*SP^qCvs-jXA>*QYdwXF5_A-|*EMt&~ByuMGq6QZftO!Tj zJKeFB0BS&Ad^K7<*;G}VrK{2JjRKJ5!ze{_wgT%dsQ28!(e}~s;)<-SZ0T$0qxQJz z0&NWuTT6-B&sMuYBijy$(L(Z5yF<32ii{XwhB$`}7$xzwGV$&Al&JS4Lj`Y1M8!2=hDhH*R(P zh0<{l)@OC$+qgh`cYY{!=%K!jzxxjX{IoxBe_X_gm(Tnx$GrIIE@Kyb`&-u%B!(Q3 zx(#i0M<-bT&XS&$^?lU-V%8=eNG1-}TOy_+=0{Bn?I&Mw2-_E~TcvB=x+UwihJ_LU z9ARy3ZS-Ok;ieHf)03tqKl)D?NLC9>Hfa=^_j1+O*^~blxAOnRurODlL=`POslU4z z08l<)BY)#8TIfv!{v!g(xRVsmq8VMo)pD^Z3n?2GEf+r|8{MVr1?l(iWJO}4%N=vX zr*K=8o1Du=l}Tot(6cJtp0&C`_)>}v(!Y+sQ#<> z)n{*o2W8LH%6#3%IpXjCq5oX7$8?od*)yJq5zdocA*AW4Q4~^y`g0*jO8PmM=Vjfs z-z}RKul@vjO^zm?isZ@O3;+3g`N|)8p+EB@E}4JC4#)nSZ{yny8NAS`I$8CTDqh-G zKfQ~85>99)^Jl7L-znWyW9wdagJKC^XWvL(;P=EQc>%>0?x~o?kwwj=)wTowat@e~ zHJSnCA0!`l*bP7@xE5E^qDx?`>w59v4Lpb$+R==}1d)K9X!)+(XQ~~sEag-6W)SjH zb$0Z@A+$U4<5ADp+{N)U?VIzHm$OH!OSqY`Kfgg9CHeZ5u)3umroSV0jk4WEdhK&h zbtWHomxr1D*It9VhO24=dS#Q}7zZJKZMF4AME@Ev47HVEININX&cT zqcGXBqBZqRmPRtQeWc%rps?FAkuCOQ^0*$!v$^Ud`=gHclc~4Fw4ZNZC|rQ;%kk!}*q|(PLJ!@5dWIJfDd0B)V$xeV3WK&8TzN{PnPFMQnhd`s6Vw z=3(V<^gEqGh0BcpKJW_0kxAN`L5Z7WR_4#`UX3roNy$vx3XIr;L$YU)H6KIZJ!bXi z;S>HzC#-6q5W`-bu^3iRZWsE#YW|}Sd4_X==h|2Lqh|RRZzpWf!KmxO&^`!TEe*A{PeCX>ej9(`R$nObw(EyaDrBNoR$ zDpQn;xr3{IG}>eajDo5OL890{+&`I1avwEs^WUD#%2b5d#lVg~zgf+HrU6z zQtA3$tgLo>u;zyF_f&R=Gv1pl% z2_RcbQq2z{)9J#jk^l8O@6ftwvUW^uZSb3-+d{5U{_i#id99JHgY2Fn=HOscyP(QKBVuZN%d^3FMgZRvlTIAKx>KMOdI9;ul=nR5@S zV>g^+F`#idSZ%UMZuS&UUa=M`U%%!^=BISmFeE3-7hV3|e%ATWEw51Z*^9a92No)_ zciNVd-9lZY4zg?hUXJjQqUj;JPD1zv`H96_w9}_JdDKhA`;Y1&S?(m@<&Q>+__tnb z_-SMdB+JL?JnNWmY=?Cf z*im=i`uFhdRvCv1WKvg3U?f6LrgTG?A@%|G^U1ewbbB#_kIpRmj-rgrAOr9JW?Z$# zA0L!AzK)CCzVQOiGv@Pym@tgtPnv1?PBrMS>(o9ZC1k6AY!{ge!e;CZyk%+AerB$D>U(RypxXS|Ger}r54-BL4^G>>nqbbN zfNnIaC%8QS9Rs~ND}7tWXLx=q4yvOqGc`sXi9n4Eq=il>M1L|e|@SffP(PwXl+5iZ_Dh4DMJ)o z_Ro|WtJT#tH1x6=bMxQqjH}_y-wu4fjMZD3An~#Zac7IRWw?y1mn;SWNKhMp54?X; z$$rqApt6-qVwUI~cKcVl+1{XsEJe&h-IH>futG8sEk^PCP6JORs`=II-H2`6uRUK? z8_(nJKY)NaB0HODHXU|fR^4d!tKrLB6pPzaGp24iqTfR>U$Z`}bvhb#qka9UT<=*l zhg!-?|NrrdMyb|d{?(Gi#9#kUOuPCWAPu3ovi8Bj;~L9rcwwHB;|?h@7n-g~C!Ah~sS z9@9q6S3-=F%mwaq0;h?7N_|S509q0_Sbv3N8SqOO84@BGO$)d&=L|?L`vgMoI7v&a z^bsuV(qQ456cFF=sL)O`4ux(ITKpk4ZLEz*ZB!68ROqpu`ahT?*q?&P3-FWZnA`!x z5jY21yiAJBpvkW}q@1<+wrZkCl%+0}3*ehkmp!fhRE8kQq=O5BAVI&KpnM;4C@Er& zl{IeXK1B^K^DQwNhYf+4=GZLhbd1)7>5w(cax)7YqxErY=RJ90(c1M;<%jN|igr!qkpgmf)a0ni z=UQL{FeomHj#me)RRa@X`Y0ON7J7v>>kx-;jFB4jRT(m3bWYU-zpa@<%y6v7@aElo zV`26pt2GP4IFyq)s9z&J;1d&@?O%xa1c1BYB-8NnY!}DLSWd=1U9w{Cid+_dQm1NZ zuM)K*n~;$HL ziN_M5Ocq-Ssa2{EL9dlFnZ`=wHzwj5X};5`YHf_2#r%-DFEt|%U8kz&ooqQ z^;@1SsA;oV3`7lqls@tFd}y&T;o{ViAC(()=O+|3Yy5n3X;qd)ieZK9qgoeu!U z3?3e)+dS&)bhnuSNY>a2KAFnz5ocmTVpE_yVnoHm!KpnCAUjCldjLYRSPhnUgeSq! z8p8<(2bd?wJY#!zA0B|$Pn{1R{T%6M#l37{b}RYzeHgdR+_f<22yhM{A`^Tmq;1)n zc~Y4d5Xq1^u3h|8&OMRAhaBmAC8ecv8^y3-(tOC%f$h@`X;w&YK&1F9Pd^D(vfUsY z-xGn3eFwV31-@K&>U;~XqYk|{wl_fwdxKgQiJZOH@}nD#UX#@bvqk-FA|gTtCwL@} z&mtr%sPh`v7T;;v3S1tySxL@vmZG_?ZI@JyN3jl*Mo`qtN=noj;J_Iq#AYK7?}2UI zv%?Z8cYrTlh5=+Ncp2=Xf@7i?GFA1lwb@vW^dH|WvP_0Yn(tE4u0|2 zc0u?LU<2&>s(fKm10x4Vv!TZ z$v3CViK(b0VeA1AVL(F}E%{CY^O&}gf252R(0S-$w5I;fi?S!&gErUx0Rx#67i5v0 z!+XF!$i(!)B5NVjqG=o6;-3fUY7wLYq$t$zxjzz&^aN@v+YQuzj=&@ zRM8SFfT0MO+Yh5dXral;$$!9+PAlmf>w{2nFir#Pn3M3zR`?*MqPH+zOfeR++OmL4 z^~GzYF6_kvP4_%}FG#Yfs`>$tlb9E1*UO5&ToLcL;G-=2$py z@1AS@bmpdQ0K4^vVZ7*d#(1gjGd^*wN1&K9`hq)WlS_MTZJL78j(zD_)Nv}s@%$I( zE$0NhY+1At@?|G{tc(AIEFSskMSIaE{lG*Ar+N@9ZMa`nmN+c%v3M{XGzic@0f{K0 zA$u8y@&JLuSELRj0$kw!`4@BunMgR|A-PztAVh~WfdtlYI;q;1)ls<71?n)O*dJ^m z#`nNE4GDNcldwKvb1>%tyjV(#j*%J+r-UxI#w2*Y56~}%>UL{+&#GG%M>fzXv-^__ z<})khqnEPS^WErHHX1g;_F%U*sko>}{aE42hevK4El7VKutG?Cgy0PO`y|32K1uXa zS7r0*!b1T)%rZz(K?V0q3(kV=@xrjh_RM{o3@?_lQElqjVYlkpxTh;mg+E73)HJUg zlMLd?14iBhh5ow>HaftD*)713AWN%Y+e}GECpmHm>Ocq`B7`=%k%(*GlLis zuGvHvP%V-Dft#JqW_YDv%&?FjwCbX8yuiPL!9P9ggf|hIy8&dzu(NSepH@SK^LRnX zohb!rAyJSl#_B&#@(g$!Rs?h4PM-h@8c!pA($Q+<2y-ieR7%>cB|n8V4`y~<^5q?>cml07-4rC!9lTO8#=K#1Ic)U6bv`f77e49SI&|6T9j6A7;*V_!s zckc$KoR->%{v?Ff*No*#rrUv9wO7jk3T=R@VMj;=96V>E=2*Lb3l+Ys67$a4Dv&;j zk0|FX1F0($-?;P9ZYwK{X&}^bUKE(Y;Qs2 z-J>ISNDaseXMl39?$eUf>j8AceadJT=r{)7RsAz#m4I9_@X2aB&qxE+)cS#Vfgzo+ z%F2z+$s){zh5?*~`$qn@av$Sk!;52wgD4}-o0E`B#}rL|z2)I~Ya)jM2P5NKwK;;DlVD5OoC+~~btmfkSNCUd z`~u-AXgDh;1Ms9&wOh-4X6uL;l;z}0G~_dHMH3=!HJEO_tIYx4KJ-^M>vF@P(jmhixX$mud zLFS+ih^`I0zcbbmyu5kfbsDqRQ{g4n_;HM+0*r8ZFRwi~fM9QWLp(}L(;Aqw+hKSU zOu_!HkbG&fdw!nEA(~N~4KZ45^oqz}u}uCo zAul4jY~)YxgXk&lACI^QrGHLp@X})!6&1nh*c5Q+4A^lCE4mF>Sm2Vnb{B=-iqq@` zEFZ4*U-5vK7x1tlW+!3CaXH(oz2$%4j#p8q`kDr1I5Ph0PypoY(FqAuoA6AjU_Kiy zZG7%J8om_bO5cJBTH`~te;+Tq!p`9)$@;d&f3aA9d7d_b{DRb+oFE`JVgH!AJE$s? zm(SN%xASLF4zD~ijiw*Cbm`B5x{|!UAcyjf%e7)HMw_=4wEm1^R~lUsC16oIJg85H zaKW87S`+WyVcI1nJD6L9XU#~%7VCW))J}W+Y7dmtT3JHsev;rN@Sj-*&{O98K<{k| z6;bQvCP}W`f;;YcBC#6YONB>U*|Ix5MpkdN#H&BNP?!5&Z~fs`_b7ult4dqe-*3_4 zkdf{WJ_k*9dn7}OD6Au}o?M6FO@$8?jP(Lw${FE#b|5g+~YlabImhStn|JHcydy6kVHnvzq$~bk(59J_) zSHpx?tiG2Ve!y4yMLq$Z!iok~5?ib!mSt;_r!Zd_8O5to8u^*Z=|csDP1%0XqW^cG zux?;0BGMY=PPmedH%PwO+uKWANdK5N+B1Ul15o$AdAb;y*%t4ziX<0(9`km#F~u?L zGmF4&VIoBOsa_qELj~!a;2(p4&f$;Mu>BrDtpgzY&0DumbItrjiD7d!u35MLk{JNY8;-d*U1JpB=|d!JGy2?D+9;HgO^|h69dEWh5kVQ{HI=} z&!e4CVp0N}9?5Pvx($#4qqz#+n%$Z)G0f**D&nD0RR+H$}cqJxLg6>Dp@L0FtO z8I6lPqO{f5Y?Jt3oY(M~NM%b_E?7LmObPikTwmv^%1p=|tA*Nz{qWE>VO$q>rA zf{RPaXdEjiZy8a7{epq}CHig?16m6U=1R?8dp(~G*Q!|#t<0Zn4f>uA`9cJgf!N6WYm)InLdvU z)AOF4p(2jhq%?|zs)}YhOrImaD}LDk%1qH7p%FouoA^Zvmz=NjuOz|M0-EDu>>Cuv z?FF?x*pOQ*syn#22C6-T{Sg>k>=LxY?kZBcPn48I$J4VEn-TRsaxI5a-I6JS_}Mhw z1dYa&>K3{`dipdYUj2{>2h*>|TMz@Mm>@@{mJ!Cx$=jmgIW$oxS(tn3MLb>ig@H^*%JWwhVtJHhK`_zV)LgwJsK~7N_L? z7^jm(Ky8P8s2yEeLLzJ<6wJ+HoxZZ?l7iR&wSO}DcR#s23xQ~a3L!}yJv*2=6N<$xlFx=>g%gr}4_`3SVZ2wyI_02uLenABD1$N!L>|9*KyXPEFA+C1# zBQZN0rpA_6m*1;#0zD>ga$;f|HxQ?1yZ<&{OBFDzR(r;>ClQnk21qUrj=}ylj8(hO zLOm&zEL57P-qwvz$3PFYO{pst4b~Bu)#(X5Ce(xrP42XbbD$lCB4UW6LvlCKB_W6M zF$~w%u!a(w3sgcHZd~QYJSr=qx9YF`9Y;P3#d!;r6_n|qhRuY0E6JPJnsiCHuO{OS zy=DfN9Fx}eOjZ6JZQJhW6zp$;HglTgUim2`Lk-u(XKd7dpTA4g^!XtN3%#_onSI8$ za~LwHZsaG4yeQj83-7wu1h>81jG&tx8N!BMiVKANn(`Qquj#{ei$dhT0}B~xdo%L$ z+$4K{0X1*ms;NDyo&9r)$8-;Sl4%!yab5l9a{k2uYnmp@5}~X+JI|XYD2?XtT>UM~;3^;}2+0z%0SAsR zS2$GqWhwJ62|6LM-FXWx#z`};`=H;2{5_{|=$*zb;So|x+P#OrZujj(XC1wQ+6gJU zp$>mn!AO1YIRWN7G09-f+%e$MavA4*sGg*{xV#;3Cio z^RMF-9FS{tUm7JDXi_%-)i`U{Sl>p`eTMwt3-RTd3gbGaEf%*=lFJ7om&#O#71WE| zuvbEGjz?^u&je$`o7msWehMT*hPN_iTkp9r*o(M@Du-&lV_Q(<`@xN}5?BNS&RCSz z!0M^|syUAu!3=-q`l}=x*~K0&aKvI=vY!Oo>8A{7`_z_o&Sw+QLz8cEA=-lSd3kXH zZw&@k$8_HQojjb@T^MMmX3}E>TsyN%D2JRo@N&~IxU5aR0ON(QK;wglfRDgEOF$E= z{7?`W+U{B?zrd}{FG1l2QqL5H(=K4JL9(ccH%hV7K?0(kp`( z`kq<$)?m-<-TDN{7`>>|niX%Cqr(?vcWq(&_PhXXwwjbJW<#Oo8m;Q*YSzOmJ{b}r zlv`RajQE8Is;%Dk?16nm!#kyD3*18AB36H{#~os!Wh$;@Ky9VLrQlg~27U6RHwQgW zA=PskaoM*f;_tdAsjuBFjTgsHnr(E;{$|e*hg!+!+)D5J-55gfr4uV$$Wt6AK;%Fx z;e$0GPsWJ32T~lUzoV!KNuxI*wJ)JUw>h$y>-TORR+5`l=OYxA@x@wZCu=2ZF;q$M zCs8J9H*PR=nW#QPBo&1Ugd%YDGw8s0-pQWQXDV?F3}wGTPy;y{O2j=!UcAB@&c3mJ z(ny4B>&I#)NQE!(XP zZCmUmJYmqKg@x#~P6a%4m^f?K+&V(A!VUx9`!VCf8qj@Ky0)-b0@?2WR zDfna&_I{R(LGod*!LwiL=s$pgZSux*HDZMGw8}2+fQgRo^H}hOAZi%dKy;!I+1aYs0R?ZX-;cW;*Z;r$JdARp57>Qh<&?=p_ zDz<(1aVNo0iY!!cMa^1_(LE6NGMTN2tj>xVz(xQD*yL^tsHrke2VaM2!CF|&kYM3U=~@Uoh9!p8IJP+Ij@i4&qf5TV8> z*gwt3vC?VK#>PSsd;VmGd)_Vd*d7?4s`fpcw$Gpdqhv`(w8xib{wo(|R;mww1K|uw zTp?oeBAAz+3L#QpjCD4(&!aCOatu=TRCzqS(1R6-_s8whh2=%)_&z;6bz8%gCdGG6Jwu^hGP@MA|CP7xXAm$*3F@F`Cy8NtCYSwKtdBe{x1Cs=#syLg@!&) zC^&-~fm$0B?6ATWpSIRz62}4Gv#~Y@ zm%u~i9rqUhML{eW@&KQcKIxUtGYr|=*wnd{8duqfCHWuqwhKk-WVn(@Kk`C?pw>P+OIvkw5eFwfH>{+jm&6vAD0&?ED5@n9ckUrxznwB03N>2{ z3!!8|ZRAXeiNvjs-!d_$39UqP<%KCq=LtN$&XPm)@NcRuRS-~*vqfK4?z)iR=byNX zdegR1e&+bT@zDwg@B&AxboVQNGU}Y9c)Cumh9nqi2Cs= zEzu-f^RH{OOyjJfR=QF&r~(W+p;AQlvtOo-toayCh`C~KSHH5`BC3`UmarZr#eUX0 zZ&aqkrNY8%)Mix*pdw^GfJLPm$^sy1C0?U*mdTiM`b=;}&%bvvbev&!?sxL?LJe*k zyk4_kv)NcN;?jm{uwDh3IyVLi#1>6aVHqkvoK^k=9}2WR!@^aSgS6Qh)<1Vx-Mv4LR}ec+Jcq>9)w~iMbtDw7YN9&&t&z-&isNu z-P_r^YZemfSB7C)OiFC%E6B1>KoPiIE5iD`r(J_4p-eL0Xzd>t&U zs$9lZZGmvHD=H`y6V*~jsf(FsIP5{5OFu4C^91I@ORvr!!=*JYUGODBT_>e&7>a11 zS?cHd{;7Ih|2g6p{$|ga!<5MBof;1GaW5VQ7uWb}RKY^ot`H3&C+RHcuevsx7*q4@+v`c1~{Gt`V%7CSpTp*EeY!6s(u$NlObT0l`E zkLyF#atJ$R@Uj^T@{V*xsNY2fLzAGxNM8QrLc0uR0Ej_7rpV)vqL>4s zI4pPUCod~&|J?^Su^kau*lYFf>Mm?y^C|o8mm(5ZW+|ybz-7e}&$W6{>6+eD-xka?)1mW#H9^bU5DrK{kgHtaT@J-BB?l$)C1z&s#?!U1FaZ4u?s{*oTExYU;Qnr+lk?qKqkv*e`jEs;Hp%hw1c4lNN+x0rA z-|xB}_kG=u`?~+Qe~-ua@zdd)^ZC3#@9`SXfsR$xG^^BC8N49ML-RDtQs4fL{HHHt z)ht+ACQO;NLBlFkC)&$`o+mCYL*rW{TIsFR0^XuE6-O%@`Z%7&p;33U z<|#9%MBQ6BZAiP7r)1tbC*hI_KGh26O#I&OFw`B)M0%f%vCO*6%(8M?T{&NGLBD?4 zL*bF(vzk;OrN_m&u198mi=EY>lfaQo34X#_llhMGyeOsTz|YJX|FP@ zw?6Mmy@s*Kp*-!=`vBCn-$PN8{f2f5|na9)-4;2_N5*zYD z4O7FPq20tJWZeoOwb2ufv*KL^n)%oB0`5aG1j@e#|Havg8A=b}yqfGq4_NE_&e#4V zgFpuqHZxeQ5~a>u)`=A0R+o%`WH2N=Tv<^ODnPSvGJ)78d$eL3RKYNxr(1azuM#CD zb{m3xrRg%+Stj5*+C)YSR9y!jmZpG%eJG7%`j1dXx3}jy-C)3VnrPY!!f(-A)0c%X z*QA!!Q$>Nf*EX5t1!&Pg4hElu;mN^iP5UtK#9UHRQYgn`i{_UZA{fON2yyn`(z!f1 ztA|nA6x}5v4EWxFU^lDAHaM=#9!uJ-fGr9@bJKx|Rp+&mXXV~`%w7T^1&nvHVErW2 z@c=fyxiymw{xCo?hn!q~1!8f;YkV9WaubU314yR;q3|{rHd1J1Uby?)QCmBXlJgtq zqjt>+c)pO`Vi={@FF_4JcK-(p7e(ln10!F2Lqt7YR`b8YV;bhK;zi_ zd^(sL0pa`8Ec-jCoqk?@83Rqr!h!VBbkOu~&I59Q;Z3%OtLw9^LGlKj zo(i~?PZ`hMdEBQ`qvX!MJfwA%UQDl#jn#r$re+q1ER1u$UK&4SUa>>Cz*WDxRv(pl z_xFJZ|D}yqvhW15q1~D0y-{hGB=6$ggMEwN21?rj2R9CehZ}tcR7@LCgmvCu6KeW3 z)Kd7en|ym}L_baKYu8Agt|U8H>HXBa#=T~_MMUNMMA~>QaP;6icEINO?8@en^|2*x zsm;5i++;QexkF4H&bd&P16Vv*im5?I9k$n>`_5{BGO!Uj1KpTLvSEgT4h-B@v9tbA zSudN9MKdA2A1CPUI<^|N6-Mg|rXg5BTXC|+#>Oh&C7*X0eQCz;ZT&DcHKITkuhhJW zmOXe<<}Ud_)o;kV#P2N75QRMHqFx@?YK^V(9-z^=s3@p=2fA~HvnQfI0%?YrwzIJ% zk~D{;nB)>Un1CAu4OfI0+(@}_gP5(UkPwP@YG@9`Q%rj#x!Tzz`)Oryh;G5-#a#3&W|u zhZ&`2v>1e>RS;|P6kH??WJ>yI5i#Fdr>)nwiU07XSM61urOQ|1_b&QVbWJ{QWLEO& zLDj+6>G-~r2jV}!ri}RbY4>*!=FgOQZRG!2dMeR`ni~QyVvmt?1eoo?jaVy%od8d6 z4dxpOy|^|n94d5XlWUX*h7_Or0z7Bbo>4S3q`3nPmmBvdA|e-_Km+Ycjttj*Ma@`%A5dIuo0Gn( z6L-_7!Rig(Syq8ttt3ut0yVv!Se^HD!(Taq(j34<#Nt~tcI6hZytAM zMZjbBTeHd7r`eA6fZa{kr(qfw$h-g%o3+HdNKxU_!HGY#)wnup@=MC^QF)Dj@rRXQ zvy8{%(REj(YM#_oJOLAVUjVM2BP05;1~$tAS(nfrvbDSbyDd7{XlZqRKI+{xdhxTJ zrePyKx^lwu#ZL-MQ;8vR6in~EUe&3L!BB>*!qg|Ol|7;H%5Q(yyJZF1vEvwqPfIGg{kFF(m4V0&yg1KXv#~8?2Ok83hKgn_x48;zsz394|Y&M_)KJz<@4DFOa2< zCR9&b7T7H96o7EKW{xNt>NeCe=JrI-H}6x(u8xepq`Ty)c;L(j5ciDVzp?1QNcW)C2AGrzWqwyvp2xuI6qA3*qxo}A?K9xB{NrJcpcKHT&F>F}I_Dz**)=hSRBR@=?=t^UuNg@vl=$8%-XIoN~Ka6jj}3Lw6Ag zWU~eKR2QPu=C<{(B!0yHn0=x0`T+fUXGSyL2aEL53BZ}OQ7jvh1eDvVN^t~rWa-Ad z7D@Im5>u7r&S89&_#(q^(c{=D9A-Z(8>ZTv+PQD3x7T zS5v#-y^1ng{|e%k9~!Jp$3AjhE@*+Wh+49D;%8wHif|wNw6$@^BW(A{l2+Nlb~n4~ zOb?2#Im%4xu?v{O0&`lfO-bNe1_^a|A52Z!{&11+ul%# z2Q)*lkZ?Z)(GUm$lEfJz6uXe~Pz%3z?;fm2o$rwDx2a@;*bb|nhYr~#mhovWd!VM- zq5zjz1NKheldQ*!ng3kP$eSdR?p-*-I{KIZWLlsh7WblUu|ti>#uC zUByK;=ll>;rGq_!A5xi)ioh@yP59MT@NaaN=~UA zgm?EJrh``E1D2A7ex%3>xZQ&T`?=KxE=?vQ$tU0MNtj>^#Rsoj_*Y%7UpRQ`+4jM= z^22)?)djONR}TjGpIT&kSUQ29$HkIwP8qisqXOFZpQl%E+vzQ!o6wtmPT%$cc+1JXr{;+ua4GK^e;p4oo%38!)uwSKQ`mT!m4jKRb z4DM&HG#uBOpEwJZ@7Alo{ixRL)2^2|-B5!w$Cv7itIUnEI!{!E{mndZliC`evJDr4 z=weEbUa&_=KldTVtrrEA%mpB90^rV&^o%e-T^63vY{*>z2h82g6;90z8P5T3u4KoH zX=o0XO6A0%#ygLPdm=JK3F!yx>Wu!dD80oadfjmI!+q&Ya2c2SHqz+aScr2r;li%n=Gazjy~{z<|`9x_0@MTUMO8U%k_sl2NQtDetmiUwBp)}1NRB?>`hO3 zg~$#xEsC58>AoF0_;TxRMqREA#t~wxnfZl}@F&3e0~_r6=3650rCZMvRy_NX^2edf zpyBFzIIbG@F9aPO9MEAPK41a8B~X0j;IIRPB%~Y>5fPT?^o-X$24(c`pU#D<<6AvbmA}MV`*wivYVG6c`CWfO1gGl-Tm1JxxSCqrTB_mW+yTFL z1sBPk)${?)8Xy0rWIw#=p115yc$#vQD`${Z7G;}Hw4WwlQIQ)OQcy~3bY^)&eLs(q z=nsdZF2ozFo+FjOp~<>-m9j0wG7qv4rMGf2GWX(N>_v%#{MjySravYov^k&@3?)qD zUAIYnpPwHUKdYKH`?_^kF5FdjpLiX4)hO$NS9^m-^YE_X9DY-Y^vF8!YgF|4>w>zn zZ~0b+YL~hH)?nCY*m*y^=IaAC^)~Y~w=F#wUg!y3$Cdg46r>83umW z2JHM9WqJG2Z)Q>AG;Cp0{xaPd9LOg4P`?MM!`Alp>}t%&3BAjI0R&H#qM{;*_0dhB zA_LNkiW#pqSAKw1gSA@GO!{sAwfr2qr8cPv=+DQOC%nL~eH{8mR$xCu94W1Qpd8>@R)jCc2WXZD6}F&@4Z&x*936Eu9bP z{Gp_yJ7<7_a^0D746fJKj1G++=ne~l^A?o)axr$((5e_|tlv^72k};n)MJehC`toL zE}}_%RW6ul-+w<=azu0|6J2wW-;^sc*-vStF5$V?mD&N8m%crC;BzmQo%2;nbag#9 zv-eYpSJ?%3Qnng49_K&2S>zUhO!byTA($F~a~`gLosE$Kd1WDENWtFG`u-zWi| zP?Ptb`yBqehkYKMPJj94TP@ymFkGyI%9c}OI0BLz`*?xr94WmLz zy-A^*H{oR2pcrJut-HESe+z??DB7DoOWN%aA0&BU*F2lAb2OkVGVg(8X&MeWN~Wc8 z-VYcj7$__>C;?>|#xIxGPp?i%wmUvL;(Rcx7b|IqVfS3Nh-QwTnc)Z8OoLN^NQSfg z?7@}qBbg(qd}LpQOKYv3(mcg{;-UjGM|?w@uCUY^JHKDGO4Ov{)~(iac{=W_1R9@m z*X}QQJS|MaAeAfR1twr=Q^@9(nllFBae`PI*eQ~h@kWpUel2`zd!kNspa+U0bgp~ z7|O4Trbm9@h4c68D3xm%J`CNF4-w3i6bfVoxFknT6aXG~j@Kzs?<$zGd^ri`5G_w2(~ z9KYB6dO-5#372BHUj2l9*VhD2{EKd+)5ay~pVyDnpw;ATRoy1jt4kiwxS;l2=eAuA z9*kub&Qj#QP3)HZB)BuzImJ|FWg^v5xgI=)I8n&N+b;Zljxi|Wg~vXpPsi%&mZ;BN zp!`t0xhb{PRmGRh#CV~nJhz0B!-DOrCt4lgP&wIco$#6Nu^A;+ zp98L^??Q(%f@KtUc)U#CxxLA;q;+j)^k5(4OL%yVCias{Dhsq_vTaQFNYDvBix-en ztuLcPc7SNK)xI+6@NkBti2j-C14q9g?f6nYC$7_aFP{B|XG@1pHxQ`U-7x;GTjwpd z6N>JL{XXy=?T}LGFSRxwU6MfcPU^~jeT~_O&n>Sp5sjJ`b+nER_S(H$*xe5TtvXZ0dmJ>G?bl*5jIG z*Buu+N)AOSxc*3BR4F=@LPHK~nu-ya100U?$V=O!Fv%}1e)xSAP;_^(4qpZ62)~!( zI%G-klkYkiv0}YePc)Q^TjVg%Kul2-0D@7+pMm)pnk4qnH-OKH{^A7URnag@%V!-n z4oj78iFxttTg3VR6P=lwN&@+;$;{WrzL!B<1k%$Rr45OoLID`SD=2a$;5C${1M_Y`WdQ1>*82L%@ox97 zLNpoYv7d&abYeaoDPIxK&g8o+3nEo$*b?uzodtP0Vcm0}6a%^}pkAlK=D5KBd>e9W zBWr13gn^)yscFWwZ#IAxfI#+6k-|`j?t?HHPX?US6J((g%o7P$Cxw{6Iy%iDrhlkpHe%J8usC1ppR9VG~#vFokA3 zt{Q6Qoaa(Bx>;;co|XB`&GGO%9_;4UR-aW{DWvH@UU?05Lnvnpx=*USnLG#08W1eG z0aa2PP(2Zca~2xG(BIbLm3e-J^zq}zF-DtX!DN7|o@{y6)6)Z$hWo=Y(1)+jRU~K2 zR6eN_Sqa*g#qcgj4Q-Rg`ZJCv!jKE_+Jzxggfc`)TnCjN3o|xcH~=)Av+_GiYI2#| ziZs%{Robd!NGJAmMz-PJ^7onFvMI-mNrPDUCm34HT-fUzO|p#Cjp~`dfO!mUpW{BG z8Sh5@_Arve$xcmGv59>Zr$>&#evEHxo+^=J{`KR>kBMBvG62e2N&uX=6P&0L6I>HP z4Jmn=K>&;#uHW#y)tE;~z5esCtf#Yx1TrzW2!Y7dsZgtnxL`CZ%ZfrN(7P9cD4Yr{ z+ck`}suH(AhuP}lXMm9;KZ-D}aXdq-s@ce;hE}$P7Clt)9Tul@8@+~BvnVvPoouH- zjRqb$Od+rNr?saNMKGD~g9jl+U+g~M;o@4!;>JUaUp&OVB-QZ*6j!xf0iMCD98Ejr z_2Z=(tklExG$ApRKL0ZEAunj2bG$n*T&M=!Os%p6VcBp%&KNH7NdQ{_7=3`A0A?ZE z+K8upZys(|g3?`PNw9RrXizoq;=9n9n+QGVj0cvC-dwBb@Ke-_GJA0W}Dr|PaV`^mEU_Y zuD!3^9)4&Y9R(#nS@Zj2Xz7!$J7z+IviN$NRgV@N>@v)4J0nM161=2#0<&9TRt@~d znn*c$_L>ZpqMO2>Q-`BfhXxZD%Bh3vOT4f0JNC|h)KQE7bh^miEoDN}&GXNMbNJo( zH^bxiCZvbRQYJ{-3RT?BYX8I=IGyI{G4a6ciSXt}C+P|{5-{W1%g7q>%T~TGs z#ave9Ubd?tyA})mEAEFM%10-g{X?luC`wN16+Bb)notNpsXAY~=5RfU%PL-%DuF{Y zRoE!+OD9F4n)5@o4IU)Y+TDHTy?3+g+3$^qW!2d$II; z=9+S|pATCI&Xquo7neI7b+32mnYMn3=H(Pc_{gJ6m2CW2UzOQjrPzM|i!;2KzM1t6 zk9uYo?mNro8Aka@w#=B(x3r#yZh4y2z_~xOHuro|2)Dz@D&2yqUmts_%czor$h4}vYntL* z{&H}Ql#`&NglOk?e1kh0&e9dRZTaKLjsMPMut53C zp2~NjhhHBjF3%gs9=_xk%Hh`hi&WNqzUM_X>DKoTl4FK_Mz_YpPoY{ff27~Jf6Ym z_$RyJS5MxpoL1<+@aXLRSX>YiC1X>d8_9%{b*8TUn6&G2Pu}7Dj}s_0m3vI2-b?N& zdvQ^K zmvAmz{#9S>+%3v5%J|)b@wGWBe~S?*YTEUAcC(hfjbC~@Lv3;=eYvX{lDYNxy$}TG zpr;liUi9Xo;x1cwd}cN080)ty)NV7=>*65XQ=Z;$_7iE4?_?$){P86XUA|<|QeG-A zCDovpqqcUjy>^zSxL0lZr0omdJMzX{6=sRwv%OcNuW__4Xxklb9gz`pm6MANui|7z zgKyp4@o9QIDl2t-`wb*z+w>Jz*)n)I%wjuTT}Dr))A0=$GX_3jVYV??a0Y0&tm&y+MfzIHtG=n< za_>?CEvEUALZK$qp_(c%C|1j* zs9VQSg*Jj7Uzt-#pUt1eQL3r#4^LL0OhRE-Dt63g2aerwmsi$Qhu(s^O*pw7=m`0@Q3Bz@3 zWhz4Ow$!r@I*beQuDXBM5?K5`b2g^AwNtmC>w%sllA?A}j9Z2=TXrncnLWhh?Kw03 z&cgHJpQ`2$Uc7X%H4fj!EqVUYk%7aB`Ea?RoDrXGRfpvsZ=a$ueZ1H4P4ABQw_E;e zW04L4Mflh6sHeXvy4j~X5P4XT zXJIz`EvKA(ib`GChS|mVaz75f@axfN?0`3!LKdnG>qfOP4q^1?VjYVkQ<)vcBVX@J zg;SHtk@o#Alfgmo6A-T7cfAxv+k20Gl1!orqwU$HaNsj!maY108NYJh?-+K z3C~S#f;;}XT%Hw8vDuu5#{ELgBuSkq%^!mwB;%^CeE9KRnb$FKej)7fOLLb(6|obfp!KKLU$%k`3=FedN{NfPEUA z&Z_zL+9=2M>HQ>OKD-+G=am{;3%7|LP4%iK2#d12XBhZ~-6+x;%vDWUvhSOQr`HSr1+_l7WdOK%Lz|LvYV7^7%_a^da zzK5eV-j_WwdwNW=` z2S?{NE8|rYziXP_omkxxQQrn&0T&f6+!3s7^xE#qQuBeDX1@Jk^&CJq80hK2-JJz@ zZZcMS|J4$J2r%3jxv1%6{OT%Y zvwz}%A^X9`mf{LR35R2U$sy{UYoN;N`<1&H7BQ|b$BRuPn2E^q)uY-f6{5?rtX!JpM}3I{ zzh7M5`Fve~ak!a+evEE=&mwi--@n;Bk&1Sfry7eqNVX(o^FaK->FN_=zfH5r{$kP# zSpErx&qzp!Iub;(GtJ(8dA#5*F8+XfJe6JkXJh@XW%=7EZa9WR6c9oh$px1mt^!JK z;SK?in>t;33|UYYgi?4_<5@$Sn=$yT^G@3v{1@d^hVr3H4*i;7wuG>d$Ck%ep0Ahe zI((9)bsgOKh?^lBkr@S<3<)jV(H2=0Dx~!^q-!E)}#QICTbHXqV9ARX8iU9-5x{)mnbP5xA?Srl7? zj%4=XxAvJnb>RoI&BTcm*MB2#H}u>LdxHCu0^dH`&cT7F{)&Ax1yfu%Grc`qR#ukl zo0owk%q`c1Z>D5Ve=WW!hf2hLZqDAa8IRhxDQ=)Dar*iT_ubpFda-2IC$!CP#Z0Vz z=AT4d{0F~)gP=;`&KC6oY5daXYAy1$Fn0eng3!FNKK*`q}V97w{_*|$S zE)HoAxf`T{Zh$1rAT+&+K`ehhX}by&mhqC$6$J+fP}4+jD9|tXK?O1I{Od>X)IpN@ z)Z+341u|c-55<2NF=6HDCAS8#FKOeFlK~+HQq6G?T>%Dfq>Q04EPxRGt@XLY2s{lW zCFK?H{IV|qraX{`5P>}?=pl7L+62^Ms0aWf-M^SRq=Y@(vo}u>{JpKm2#v<6nO6a~ z5>MW#bApG5hX554PMsZ>+IiuUjA-s9%qc3Dmz~P5p2H8)4R|E9S0Dw2{{snl*$}|m z?7`#!SS5wIr{|v(0Sh@v4=8R!mh8Pc35pHK77QGxKqVf`i<1N_{NZ;jEG*Vv6#2HG zU6P1W4I+q`o}G;-RS;)oBdk;uCyG1oVlG5}+T2&pn)chbZ=1jJ@L8oW7ZG6;p&>v3 zSivgZ6F$EeFb2W1IO9#8ON^pnhQq|*#l>NL&UvT~3hS=Szktl~w6rwGaO|qOd9ijb zv#+FOJo^UatV?4Wm76?qK_xl;+U_!jbdSGmij}Q%WBOi;SNbK=c?s><5kEzFvtX2 z?2CX5)Pu275YKxK#A0!Aj7Npcf#*@EiZlWvp!lqHPAFYXEuGuIKd!o>-4!=2b%@ zqf9WsIeLVr%C2j)eo;6)8APmUjgW;)+5oodhZ;+J)S1sV|6dJgn!L}BJPM#7MG5-&b~%ZUoB zf`|O5Ip6eZi>m42y->#|v4=@rk1n_uh>SCBW}EhTJ-NNRB~slA6Zbyl*&x>iQn{Al zVTN&F7%J2mn&jajL7dt1*Wgu+YZ1@cVQ;%fCn58Tz>E?z5ySz16mNPk4m*ck%TZ{T zn$llA$sm)=g@4&nvvUL%j_kQ8XsCda0nDnsn-3bXK#FV%Szi&lOq@NXZ2BlPX+&PqDBqgx30XH*ReIpSV#@1=cyKnjKkr(~} zQ37z7l=nt86T$KTs4i?D_WTc067Mf%aDkd>qpOTdL?02)tsXecQiJpJ*~$W3TwII{ zE~klhwzc7shGau^v6))HR-^uy;r+l!Ul= z-HR8-hK4qs35tW{AAcB1<+G!N0fjXOxv!eh$(+kjf;?~E!@N$*s?dR?qf1|&R{d#T zf0L%yZlDW3I4%_}xM6jo(Q8GH=##2r0z2!=Ng*+v>q82PAAP284B9jQyh*5Fhd!Bd zUIEuWRhyQdpC6u#Z1%|llICE2bPeDXHHDZTt3Ie1;$l}5@Twxe8_V@mjgjsap4-wy z6ydPA3*EH6MPd{S) z>3+JkEWu&0^(G5K=|mb!O-)ULdZ=AU|9cQ^$pUF(O3L*O=>ig3;A%U9j~lG>gi*>_ zZ<5)7$ElKbrTtLE?ABPiE!Q1Z8=Kq|$5rVl1M%RK@B>^Fb++e8^Ao z(xve*UP70aP}=x2d}uew^^f8)I&>5-+E##o6G&E9Ko z2M3Kql*Qa`sBkWlXt}+Ljx&tT%*>pOH1B$D@ybkD#BNATuy5qU-7lD7;~5-RWc;8| z=b+%~>KZ5MqYWmk=g-$dGZXadEr>obf&0S=*`UkIJX^P|FK->+vsEgQqcNa$x2kh z#l!s+LN2i$l;9YPre?MjpOTyh#Tg^yQ}q$x@}Q`X9s$bk+V$%x92&IZKrLjK%Zss3 zVh6vhg!{*1`U4^G_{H5nWy?woz1-@p+g^vyRE|K$I&3Mq_03ng(7lnY_=2uwC_NEYOMs*iy9SJ&s{Vdn8;!UdZ1mkjEfoJTW%L+^7?N!-nws zb;Qx^F+k%vWal5>4*4&IH&2jQP}n*AT7`>p5ES$xgV*({(R@c&7V$Vj%t3v95{Mt0 zQ*x9?FIpqqoSamvqp^-YRE|}v`r#tn&(QGjin`I!->C4imibMY(UblAbk*v2|M{+p zh`Mvete7wsGcqWB=F5NTIMhp@K3$ognqqG}8iu&k%a)eR{`un<}OaIC*^mdlr(fdMLRkU*H4nep-RR@!v3I`yCll?}wTlrD4Om9XAH{E>S4J{FfkZUP0H zFhmTCi;J^U5LUsLGv1KjR8UGr-Qz`{nz$bedxZrj7wg22k5KqOx|a&vj#HgEeS`{F ztnzPE{N*FQ^&<5U4`*~&`1l0-%KUtNQ7Jk!O%5XZ29n`dsm~bRRU+@^;S(m?j8dm# z`fZPiFbUA-X9fFvKAf!RXQ)(&QkqqYN}iRd&QmIVaQx`vQk86M&}YoaFCVW9wf~0| zk6GMV%>+j!D{`ba>kda5VBzH+&K_{^D=>mZlvi&*Kqy-L~A=DD}EG<^H7U7`3Y z?^|&x;FXRx(m<$MUL+4YN}{2sH%{XvAx);>pkUsUYhtk5QC!z`MXGxx3H2+$hYdZ&np5)LB>%wZInnP~>kaZLR7&j$o(-8_@z{_o$_ z4?|*dIh9jNjal!yyS2RXDgA4YW*|9|zqhIeQ)oS$)z)_Kme$(yG)MoGV{H|!46zPA z{8yYfA*b8%f|$U~XgxgHAqW$p=R2AhA*l~(IMt!ov)8;Z5cl0S(2e-I$GoCP=#1#go1u@ zYE3C4-T8^y$p>dQKY&#@5k7td{?}xSU^;<6OWj{<_zK4T;Jskufw_8tjez&oh#b1}{&wE3I|IV{KY8^MYy?4q>I(&B=-ziLTASZ{}vd zo_=n|XXAyKQ`*6Mh|9{Y6$^y}H^}B#hb%xyywd*?>UH~l>hdTWw>tBta?eHP&c`)Q z6=IX`sin2F5EPQ8&wtu{uZcMEr%CZXY2RaP*&u20F-7KcEJ3O3wn@V5zZ0JO``O1n zz$IptydBT#YI41^ve{aZMX~bB)ASeiy))ly-!T0Ak-{cPi!~^!{o9;fG{~|kiii&%8kX`iZn=rW<88!3@ z)6r~+(6{axOc1Db9zXv)KY#gTM0k{@W_OKKuyCMMAaWCoz(T?W_Y!S8PTXL*9H3$2 zeS%p!Bt+$EouGePj7^;PY^}?_fCXczF;#%I2El{3^YY=$5@S^37DK}bjRK9*9?2e+ zZv&OGV!z4_b(}7BUib7o3S{L}c3;)?CZ&p@iDevB_^Bkm*Z5WX?*&uwZ4 z&u3UZJftx`ut4HdPT=Pkw_%{{y_ZHVoC!*-AU-}+vLFi9cWF`AaWrs{5efb=?H z<8Ppnnlp$IeLH~ZoNMS_-CNIaq5XbI~pX_fQ5PMYsQj;r2v+Z5xEdisQ^Y6f^dGHnQ4x1oiZE@PD6%N zna2w+RC<5!k45JV%7EP!eE;;La}AM~4ss2r&Iq?c|LyyC6C&MbC59DW+9G99D*jZk z?QBZjePqgWGJo{oE6;qXQ7GOCCVta6HcN+&T9@TW85G&ps-nZ?6XhBoGj58sv&N=Z zt?h_hAAISBRcnlOyojid;>U~P;*Hu5pCfb+BR;S&EP_e`=0vXIaHFCVQ)~Qcuv&7@ zPMe7E1cfy0VQTUgXRyXwc>Lof8&gl1CpsV>Fe&S-G`omBp}Kc`Q%YS4>=NIr&x*R{ z9L)D6NZ&!ilgigNq1QV6ZWTwAa~WUnN|2@ORw!|sa6&(EYtkk?(Q)L%WWAkUcYKn% zF}^!Kz9LSuX3W~i{X1F5kxMU4j+Ph!IvW~qM?ZI+`Wxf4cKsi`Sj{X|M01JhYQb?Z z6q0)8-vvArisnUU#WNgzkxE9$-_R}2b$synDpeZq{pWo8cdZ;hpe&g1p8Ven#)6ub zH28n76lGdBc|0GG0)NA>|LL1^|6R_#j#9aQ{|X^aIc(^{iP(i_@i+WHEC26ryoKGF z-#hl>ZIR=^&JYW#a7SbR-&qTsuF#rS`FkKog=g!bj^5Eq{O@|L?V$8{^ydFMTtn1N z%}tP(+LexegQjvt9>?UZUH^VmAnuiDL;oE^@{?7hh#GYOm#y0kY`!ty{r!`x9-%XH_^Mfd&|az=9JL zG0v*Ezzm7FmMFPGM}%UtEPRZh;103XZc)FYl{fR+q#Dsq8cr^EuerJT`Sa%u4HsY3 z{ZG{ZoH+J)S(}qatXpg?0|RG#h;64nq#rKgxYSro{{K!H2j|qpn~y2GVdTU4?2lN5 zV;@bJ7+V7B6f-UJ1%3MLN`G#iDB+SbR7A9JM@q(fzqoE{od1Vrk1){fhLe*MJ2lG+ zHp3&@3pdB+<_OQ*ph579pijdw?QcMcPK5kn8Ta+kye9v@8uajer;)CRZr&q zgqN9mN0F$n_GquOzVqa;(Sdhk`S9_$u=1$4zGNrUk$p%Bnanss{wBwCMh?yG$ICCo z7GE3E2Per8pu54S(Zs|Airx7lj=;Ifx^%aIWEGdJ8-ecJ5d(dSS6{K>6~ zD<837-wB-c#i4p^rz_x6=9QU|p-_iVn3m8(W$Qc?s`pkWWlanQdgi1s(Hi63$rApT zuW3a{zoqv+`?=03tc4e?NjHCoC`#S=D4qH<`)m)yd}fxw%6EScL`tDr4iIXi!JP9@ zS3G_cNY%|C%fBo0--h?!yYc@IFFrgzta*Xh@cyC5Oe~Z17&z!2rcWt4-$SPv-|)zX z2)$7!Snt-eY$>&2Ws+4oNKI4VfV88PXn*quS*IS})=h34VN+nn>DXWSU@5 z7U3J>l=vo}Fl+?Uylx>vFn1sE#X5{ymXDS|ASi2G_yQ|Icim z;nXaRt^+K06{VOP32q9Bz4=Oyu(S8Tk$)4|Uoef!ifVMtNfvBO9cPEU3ltSogM;PE zOzRU+s;uYEoN)Z6qMNToa#rB@INQbJR{TU5W*O9*0JhTrJbaDy+UCZMhoU!h5t=HZ z%9(hsf=msyJ?)?=CD8pOu6_n&y*#wYS< z??rI+FzDr+E)Jj%G|q9S5LC^Px#K`WNkgfeBSy#~^lw zAPXV?ST_1fI{Vutc?#tC1n1M9&`JmFQ<5r>ld|_eIb9}3s~r}eq99)V_KLGEUV=S# zBr_M6%9R}uPY1X;f6GQIP9=`+BshS(E)N~!1YEqqN-S3{l$qo-uc08+NY7r8E_i4a zA9(Y4x+MU$LjjF^UE#T8j>wbdh-1%qew;L7oj!efbL02#)8>0ZuTf>df)Ci+rXnRh z+N{WtiG(C18*6KclH+l#ibNk$=6|Y!bO1Is_O0nIXx!+XRgu0dXl#As#@YJI?_lL) zpFD|*#e+5p)b#Vok4`QHElV>nHRI7xV2&ZZXnKBv9UrP4Ex=-mV^1?CinIn~76`Eb zitht7VW7YHdvTa2xoy51+GYT?qoSwh-3q`5i-cd?N;mEm6@lgGCE!jvUAy+V{?>Ie zGBU*RDTsJg?SHV}G)c(RszW<2D=Q0p%2(yfa$Z9Xp55*3%3fc|M+Jpqc@aCO%cCiV zK;Q?IdZ1VXUJk2(6wT!axme)iY2K*vm-)nu?zW5ml%` zz-4B25A1qfs8R!mHDG`D%m~P5|AA45#t%pl(-z#9lw9B2@#KnxcfppaA5z!QKt^}& zvH}4ip;5yfC-9C2w0^iNLU!!euS;OM0mn{PwsbQH+}68KrAhf+Xauw&=6ig8vpp>RpL9>*p4Bao34wN`s(%wYp*H~*56s0S=!k&vU@&(_B4;;T zCd~C`&47gU09+@`Nnk7*gWdrMu1QKtLgy5#0yi)a98mb7BbFenimQ;Kr+^py5m9)qz4Aja&EA0Y6b4*ZDw*I-suJbSjey}=Wr4B8IlObPiA z8e#guThN`sMS!MMHnj2N#+gy@-1;+9$vEyY2S3p>(IRufaNRktkpGU5DNqzU`}w4_ zbTcFe(4k^bJc&z03Evl}`}=swWCs$G1aCnRuLY`6JFpB}PEwnTh4A)X_p76Ytsyrz zH(_3So-n`J1sqL1mU3iY zD+J=O;lZ^o{QAWr4Q*V4*C)Vn6u{dZzyp&B1fKsbz(>ITJpxT^*h$_e@xVqWMLz;I zudc-^ccJeGBaDlWPrMZ<4{Xyf@F-$SW=EPD8k5c9fK&)su=pVJ#Q)ln-JLQ3SH6%yA+WpTi$;9 zgj9v@F-(RgMs8-gn_r3pcLO6Vt*o$EdUIs4i%GfYXX#Z^;PT|Dtts3;LhJ?|XeHQH zVcyeAxXa8i3;*U3HO*5%Gb_5*JZlG_fGn|<05mBn@Q=@V`fDIBBIs#l=Md!Tm^AUY z1LBxep=+4E2ljY)8kGE|UcgNd{BgZ2Ri{vm>TCiYSimNzyZARrsk_svw}cSJ6N=s& zT<1Ri#4lKDcL8qzLhmWN@opNhBZ&c;KM)(AL+wFF&!%qN&97mr6hC1CBqt|Nn7z6Q za|5iQr47nV!~92w;Iw{0)XY_jcoK0u?XSc7T3K7Gs;vzGS5nFXCXUorcJhh8k)aDB zkGb)W$J{HNN`+IS_Ae(RkKb2Lp7&~W)WU0{9Vf9a0UAH_^rzh1!SCq-GxTtqzr8P( z$(j6wEuxeh^Y^m|p~McG6g)ZSVqu{`UIax4ii`#I6Jczu|3&9l5`)f65<~Cw(SHaf zHh7;kTMtVQ3O4SYtu>IdkO28-Zl@lKjsz8J7Z*Uj$!h?2PR?n5>Y4mZ96bwr1%OSXFe(Ag-jqC>pZ5*-kK@PbN*yce=>d&w5_&Q*Kv<6B& zYIN&wa4HKx^8of-G2_3<=>#4yEI@0}7{ob1#FP(rE}U@MbVUN|DAh#?yPiEtm04Ov zBOV(nUGA9pm%u#um+)FM{Y^>9^{lgw@Dwoq@#9Bm7AV~>1ph06&|)BShaajEb10xht?B@IDvanloI=YR8%aSP z;4MA`OACxJ>h|{bo<4mFp#$2Q;DNK{phnm=x&k%%+r~=+w_9&M4 zKsQ1V4T4tLC~P~BlYo|YZZB4~zPh?P9UYyC$#*#5s6bZ%Lq;H?EH-}r#KZjXv7Rb| z0}sL-3_%Tc`U2)X!9d;{JvpyoDd#uyZq1iBgPb|1Hvx+fVf7SjkgAM_*GXB56V6Y$hI1aE+Fx-XE ztkua=An3(sQHPn@1oDb!RkW^nzEQz43i5SybOiX=WY6->i=i&U}> zz}p8z_J)CL)zZ?U5RslvM{5WEydegO5OD7Q6h4eXyE{^a@@+_F0|AVY06+x)CZX5% zs<4ZK0Nx2BFkN87oojvldK}5Y0>!S@ESs-8EXu<7Jwa&Ki|7Eyfj;X3(wij^O0iVLiW8 z_0PEhmj|pyQY+aKgnqoe=k2Rxy39PjBqEL@#7VB$)`sUg{#fFkU5+Y!UgQKB1cJb9 z!o(ayn;H*=3!#nyRzw(4Vo1(GkVjQ^+X~M}x74r#!U;(5ceb`vWkce)*o-P|AZqkq zokUM+#aV(yFUWyWIujEUM??d*OWJQ+6hd$~`(NIgiRmv;g7_Yem1Ka?fYR&P!!6k@ z4dx8!Se?eZm!56{e5L~JOadcJ>~(NSwGPoO-#ca7_lFtOzyo1a@_ZA|3qR z5VG#YNG;LR&xKaX>O43F{4n{J=$?-28g(wP`LB zeoRv2BIHqxfeGZ1+Mu64cL`JaX|G<6y_dc9sl9&CYLKHZ)*;Y;b z0HFx;p%c`Y7GUE8>4}(_7*Ig-{=M+9pU6Y>`eDf%#mI`IwBSXNlKYk@noh1O6uP{V z+p!S510GIcbvER9M2SbCnkK}4<5NMrDbWJ~+;1z6!F(9p3c9v6=DgdPqc`vRA=xjy zyqXts{3{x65$n$={xtCr1!>p=Q%s4D3Y$nqIZGNAkyD|Gbp&W-dnZ3wf(h!J$M>Na zU}Rk#1(hEZWA5_}05&%uk9+7UCw% zuU~w?`0(0Xwu0l?{IUJ#N71Xdi`4*r2m8AqoEET^20+_{h#f_md;4W_c6RpUrvbEf z9A>VrkXzAVu8RFmRPw9j3y@So1ji!ip(P&ZBLRds08RsF?kw)(5ONegW{0_dUmYGr zAqf$PVVf4JB|&()2$3BKWJC5S4xB~Nj1w^XR?HN|*6I1iiG$!&fytSxUxCoC?zBPg zTffmZS_MQQ&^{q>6@yp_5I&MV>jagp-Q6xwH#2TFU^spH(bkAWBs9qsRB7EU}AswF|X*l#hvw}=phZAloC`xt^B+gjmpkU(4tCXQ5=fPa2BzDT! z#2TkZZnf$J*ByJWoZCZ6_*`3{CI#m>lvOUC<*Er(lX)`=T-#mBH_SbHx%UmL>@=XR z0Ybvj<|p^4G(ooraS||=w*dJ&MXApU@iG;E7C2IawXC^&M575>MVC;GzUNjrx{|}nJJD%(Q z{odX?Wbc&`$qw0MD@j%;k`PiMdymYlBs-ymqL4BxBSl$Bh2Bb1ic}R&?2EMV!$k`cx}szu!xeAnr4}}b_~B) zv`mUh*y!@ELlRtjx}CuR92?rYAXN6)u0>8xF5YoR6Tg8%_57T-ppsXnx8#)W@fwHb zMWkTi?MmxAsL1Gl7q@D=NlX>H*&E7G<^URih0Tq%o9wlMXii`aVCfg7_*9M5A_b8w zQ&YhX*85a8dlww858KE5@8b|}xxd@KK?q%3`R!5AD_z(&Sy>$#^+3I{(9>_>)$r$s z5Jsllpl)O867+SU}+|#PX8zN$g~nopmv)-S(d!`lk9x$x+Iw^bGfI6Eczz zKPei4L@Ke4cfIM&;-P^+0^lhSj=?LpLxX@`7K^7c@6|-@nt_-qWa|SUSVJP(4)N{f zFwk3fh@0*fWU+D!n*m+|s5F)=OFI6FC^S!T^fY7P#QsJ3}0w&Q`rB3`uqXdbBo z`(C};p|vk`2O$$}IReBUMQ#fSgRQEDmKZq7;2Qdj6LIfrP+)dGsPF2|Qj^_~k*!Dx5bg1X^H=?|(y|laeQ(1QG zi~ozeIzf9hj_pC(Al$9V}uSMTSMEwmBovNv1gd7Poy zfR9gSH{y((u~1;QK(+SdSqDjK&%r##a!Mv!n@0D?2ChC`OEb{ z`s3i?#ycIZSWZz$df^iwg=vJZj=&}uC*YXeO^uMP&DMhkKi)szixpYDz2C zMkUzTsUBSW`ex@tE`y|p5C5UYJRZjj*>er_46B7zCV9kTf4a`EI}RFujdxXG1nr*T z7XTwQV9$H-IY5B;=H+}Pdf9b+;J$MpSKgzSr*pZ|EZ=fvfx0jm$h!Fc>K}4*#*o)K zNQ?#7ziF}-%6tW&Mwo@T-TNCOUA?0}Q7JF^&Hm;C|V3k)A$whSNKacYQyA|y{na)T30H68j zxOh+P6|T}bdx>eG)%;ZwHJumhiV2p7@P~(okM!nrDn|W!^6&6aQ6a!**{dRVR(yO3 zth+*filVeMFo|2Km7WI1JcmxnHQM=6SSz?I5x%u#ZR)&~?@!#6jB7po`OEc&d3nRh z6?g8L9ew(4irhM2rH@J)$oC3tEVrCm?-X>v9Sc(l-b6zRBrG4O`&UUq=LVpbEvZYk zb7wxH`M^Rwe)Vb7bPdH1mJ@s{5fm@S7uWI>)*s)?X9;hco zy54L1U^Si6GA05zoR6PBx1=-8EOqUQq4}}0qNk;oQp(J>IT}1^-_JY&MO>J5Sf|9duASpZn(X)FpO;FPH>*69w^Bz*XOmx4Q*Ez{fGe3x3 z>KejI>n#*)y(4!}PVr)|eS6EB_4RO4U(#MgJS_b~Ix`x|xQjTmCcE#kxwAD%vuJrF zv-)y=WjY__ukYz)+0ezoG?M=J3m9Qw2l@KG#GT{0{yUPu&0$Rzl zgg)VRZ^B?cvqXx&zEGDGo1dO}eA%5|F78;REFAdVea73W0lMTu+LzAtThSz&=A4;( z>D@GYPx@XrV~Ff@AxIrTR-wIO9RkG4_}h8RvT|MWWrBaypPgAUO3<&R*W7zOb+*5pz1=)6z_u7! z!^QqOPU?*_X6BE>d@THfi0+h;AX`PH;#;cL4~gBh%BH2i|M$*lazmvkKZ~hSvKqpn z3XYsrV5NgTW3_Cj^kXPi{u=fi2lPESNR*ks4KqE-%;86#Msn@S{KbENio(&^m zqheb(0_G-a1}>rL<@X&}1x2%TZuT&l{wIu%-J7_ni?L>sUEm-#E>?k_WLnnUS9=pj z#Do~C+(^f?^CkEOY%fkRH?S*(#$?!aGTwwk7z?3L-LvRLJJW%WM|ayUH39!2YO3=! zt1wQy{)rsHPprSHX(&w8aIwpR*}x0le(uGSYvF`E^|K#AcFpnZ2*7^ECd^^LPt2|8 zYpc-}#pAGX|8C@|7ztl=TLU>AFj{Q`G?(b!wM!ef3GQPYmc$AwFJ&(akvrp4fB*at zT?)2Uj!^z&do!9wEw)YcxICoJYJ+4=qOpaM!9tGJyJjt`^jgL`AC;QN@p5pyn@<^Z z6p-$U{|cf1wD-)Ys`sdgfYg(T6dCHd#2?9ot)PUcWvXtfi?*P$ZuZ8V8Xu zw`3yVTiTQ56j#7L(((DM;3e5fW3es^n)QYK4kA?fL~`S2DW4oEnl}to>zyB{$adi5 zb~ii-`kXx(mr!%OsW&OWQeW_=bV-=Z{)6nZUI*}Ul^dp>*r&5&`j4B96dmIj8>qCFNDu!)vbM`!1 z%NGY@svAb+j;NK7mXj-)^WUjNY!N)k`f}3Kmpnd@7)hF2vEFvf!=QHvTOfVLNCS)E zu^T@n=I7^EXqP2H>|HRt%=vhMCB5#Trj`P7yDUVMuR5xlno%kXnOR47bnL%n)p(d% zfo1!5$94_3zUk>*pww29>6s_1X0IF~x!REW-6xbghttC-%p=~b+%qac@&ct%N%;JH zTJ}je#9DePP^HkxWU+m*z{8$zrDtv}ZyF~K)ChZ-e5vBA2JGq8PVluPC5z2n&nM$r zfWl}b{AD9YfXHZ*MrXAC1qiY(;Nxmw$Vpfvvh%wcfH2VnxV+f z<5;DBo|okY7W#H!v^=`|H~}ND1M8;aOOmw740?H`yg8e!!Y2;kaic{laAV6KA^N4b zqP-6$(0aNUo*U%2dx7wp9)eeM*bw}`eEd&gv6fG;3HKzmJB40H4B&G&qcwB&cjyleY;9{Nm4)@!%%BDU+PwTxd(_@?;FKiEm1_RKxFSc# zw+2eZhQ%;Hw6*k$)}lMhDK%u5W2bq;_&NHjL;H+dut5x|xCTlgj8T3fk-sRVTBi`s zaV|+Zca!yD{w~e(xlv;i02#N#UxGiGg0l?>>JFdnrd(h9U6`b5Kzji<+k6)HC}=oQ zpyzs(iUW+qv#Bg7+`^8AgN~Q~;=~dy;0nzTiAWWSiL342PK?#V0H!n-a0~keMJ%Zu z$QD~sCBg7CW6->XQi|%fQqj@=`W+x1oL&x81%dSimJ*H}Wx&*zmq#d_Orj!8{KHb5 z>eEXs6?>ZgDw6G$qPT2t633#YyT3g0NV%xzXtNWSBjh0qFR!QihyX!WK^@UucNJH% zoO7G)y<{TMh=PHBwkLt}g(%h?OE~H!B{=t8@FNjD0|asBHO1aoPTz0oc6R)#GGyY~hamLz1f=FlW$6JKYg^?AhoU2;b0w1w1lP<3fcS=zt3t?2?(T#-9Gy z6BGwBSsoi{1M*;nY_rcHk?n;r-_yZ2Tz2pg=kW8o%zU0%B8HW|Q_Rc&MF7fU}iGedD)yd~$b)LSdvf!-_Rj#>|PHDj=&9k@%PZK?D z4yC}x3$(nSx5-rXL@3_IY~Ex}c#=O0Ict)O!JYYT7xRkH?R$L@u3 zIFVCU7oSGo2o!iefq^@2Ck{z9&}`pPm2`P1?kkMH$sBtaD$Xn3@}Q<6veXe2Xj#Sj6#X2$GIdZ{uAUBDQuo}XRrE0DDSeHJ5Azztyd^~WB3@N#GAy8Aa{K^q6surBTulAk(H;8SJ zfD(^QGD&`5BC;#QoOHM5g1w1Ff4z5mpmAAppptn>eXq3S+N|kiC!;Kk6P*l)*U@&_ z)+*P{h!B0$Vcs-*gcAlX1(rE|%n=fKa{M#z)x1_07ay(x1@xUi(huy|m zflTp(9x}EnXLZT9mR8lOo)_&i^uBoWM2Aa%dGAZ3CkuB)es=O$%<-D6aQ~a7 z9BOe!#XaOx$JWHzkG~?$o@a1rI6E1`zk1&Jt^ddMvIocHHP;M(Sew+e#PzE9&zs$r zqOx0p;w+Zqn37qxShB2&>sbH!vf$WEf6=ihQu3EKtmNBGT?3@kju%)z+J0E@1xIFO zGYySqKXX)W=dZ8ewa2zUJ_S*8^wd!i)z{zkn8G)Hj%cV>pha5Ih%4xXN`p|pzbhtM zHfw)aO(n9!+}BD;M67Qz=)8s4#tR>esfCo3ZM8M%m$<*61H4tV{2Z_s9Ljv>bj>wL%7}p=E6C`syQEiud&{DR;C{B=QR|FhI z3%iIT7`O9BzU)!9cbYo-A+XJ2;e1XZg#}S_6>53wCH1^nqq*Yq*ynQHYi7e{=v;DN z&)ox2%2JolPAzOD{`$J|J?xrVnttu{ z^_PTQ*LI)z%&>0y=9B#8Rvn5+^^_xnN6Kun3cs2ue>+_E^?U7GiLr0{@6UeE9g_61 z+Zy9 zk4b5(ozNz}g4QYi0T>VPXqgJAb_dfUdc}$okr0E;IvJi7_=^~JtpR=yETxk+Nb|& zYbnv1Yt&sfDwTp(OMH4*?~V|ADc4Fqr**V-hJ#tQT7Y{93Ej@9kC~~g23t!qHQ?EB z7`ty8T_4HdE1wAR(&_;4IVlQ-rJ1*6&v1VQz0Q6KWk*eM@Z&RT^SJ00p5id z*!jyViYOT(W9DVoO;j&}h^D)60&MrfRP)W1!-1JnSh+b;`|LPP^&7Np1}*H=&crl9 z(QW5Qy-}8jd1c}Gtl`eLoE!r`S#&P03Qk$RcIXI6l$a0P%`?9B_}}T*{MUFgoZg;% z`?c0tGCrQF<6`jJ4=ZI+^@8*o&9ZOYU4tX9U;QQb>Q={++`Cf8vcCdi@$-0X#Dj?A`<_qUU0izb;7poRzp+UWo9`Wi2DJV} zhEhf6eS65+A9IGY3G+}Gc)3G+{fLUvH7DuhZ3TZp&0rz2RYHHo-vcKwDZ;?KmhUNu0Y+!?}R@Gz6Fg#3kd z;NL(o1=Eqx#j)XlMNx_|5&5wF7k}NFQe$I(;6y^h)i_RON-N2qE8oql>>W3-)2~kF zlm3-Hc?C7}c}3%DpwLDUx*3wgf%o_%I&D_V^n=C6>h_M0(l9XOICb1mCbOMFdqwDv zBa?cF5xAaMh2^k+rS+IW7f5E~KYO_KE(x9QW7ALLs7SlY{HW~jbjPLlU(_#rns2;z z+V|SzZn5F|(2N?b?MG8#n^kO#7b{;JC46}G=C`F^-K)sktL2BZjyMn5+i9=VEu|#4^2kb9pP-7;It@ze?24dcG~$XAWXi^92P}VlWdUP`8j2dX~15 zdq(!%)g&A;yzg~f8Y_yHZaZ<+B?nURD<%6Jlrb!YQG@W3#7^EI9?5$}l=imWY14$Y z;Sqhp3vC~ZRyOMwIxWi4D)h_x5jMubHw2`V3$!`U2ZPsP8Zc-n(;1E!$&24PMqlr* zZ`ZGe;Tl`I`Usk7lyI2kcdmnDvyl3(7Ok7sYk$1wG_# zmgyfcA-PS;FD0Xr?YoV+?ZEv*rHW^!TS&u|-FuTDK(xK>6ar`fnMZE!7~-%wL2Z25``Y4!#m|g5T7JH3cR1>Pe*3{_d%b?*O~cGFD|y>*sw`CdA0=+l z(Eo_oCZlEL;voQ8yg&bV{L_RL-!bi#m%r9c5699VJ8&g*{re|oXGVde4}Z6C5NGuJ4|PF~V2tLx&%VPrPYqLP|=bEy6KS8ukxLx_0%+ zD2bf8BbC3#dvdDW2jGR(ub>zd3#VV5l;AI!5`A6^Af`ZX?%lB_+K-u;FPDUt@(GU! z?-He0?=;9uRD2F1QU0&Z^HFKA;F|VvJ;|3?h|vh+KiX)z^4c-9I>=@Wbjh0bf#mmT-;g}-@cb8lf!~%^xmTUIxT^%(uro5cX2uur2AWA-##c;>^Utj z{#qLOG482%>BFZ;qrf;CQqc&;Zl4Nqs_PnI%U|Aq(hd&ax^uE{b)KKzRQcfnqNGf$P}FTT^CiPw9?+v#7Cxk^`_eo zT{jhfAs;h;Lw&C?LVc5b7$wc}%(>1F@F8Es!hQE?N~$KGwepl4&+AP7DsDUj_fDY~ zn6I%ml{t2QjQ*xcu_-mV?eFRsU9h7^Bm5XG%16};rI^(f&)1m~UPSzKT{(2dVdc{c z`4=C$1aFOR`Sw+&`s-)M-w!qtEDZ+JBr#q66_@4UL>=4D7a*>A6kMaeL&RdOZj+X2;$HL& z(~hL>rzNv))d6Rp_k3CiUmh0P{<_2AVPxRl*MBTL3V&M_Ses4o@$h9z1+b+Ww|? zrCYu@Q{;IM^O9uRds)>6F>G z^ZHO>$J3O-Q+Eg3NSKQPG?&}`6itb?Wdz_!%1{IRH-hA3bM50MZa9vm4 zhvuzdPLzkx8*Xrn9OR-3J3Q`E8Qs$iWV>E@;IfgGs8wqzA5w_Simk*2)uMjA3RsPz z%B&ONYf&tt?PBFt9j|FYZ zkA+m}>Po2yM?|5UJEU&wAvOGLg@l!GT{carYgWl`+Wt{300GN6W>b^RULwZz(nj`QyFq?l^cM=~exHwanAs|Cr(^4iY2t zWLwWYmgAIt#>Ke-0Q~FM911&?@;lOF9%x@8pS3L3Y%L-`FKl%ng;pnds94L<#o7h# zs1R8az46YvX}p-Nn#qfK_7NH+OhyBS`pA_hE0qSy(sN>q&@StJ z8Q;+qurxTlnZ^eHE4_2O)D!`%aOV%klM$gxgn4t4eM`hErg7M}F6>A#)PXgRcYc+pv z?(>?>ST5^7RAu4$_e)+8i=xO;x}|wzdm00pASSXhE5yiFTpUVf$~^g`z2n>Y`%JA7 z|5$3Q~#1armZ zRasb2)!z$)7w$(x%KRB}w;Hgf6a}GZA+_m5xBA{0c zv=odnVib+MD4@1)pA5Bz;>qU>X~NUi{74@g4c*qMgA&RfvcMSv;lzTDu9sJ}=2<7LyK(~$n-ChX3*g#$0$+uG@F-Lk(bkxCu^RV`evTI zHJknC{r1+4=CK*QZkIS-WoroQ-#X|qHhY%yX+e`+_$~iWSqUl3Qm=$}pVRk9DEpy{ zAY)}yf?gq?`00&^(7P8xC;s})Mto9EZuT9S;@|C8(t%pJKD76Oh4*sEm!MWVeHOn{ zxue<_8mavrJPHq9|I+9tKAyboVjd?@TWB{>APW=v4sKk|OT__qo$mx@;ylxKV$DWI)%M!du zY(sEUcKfnHx+yuxW~(i0J5;Nm<+|C79QpRO2bonX`|fB*Zuw+daIW7KtQcM$y~-y= zd|?O4n8&0d1$RsoY`Xh#SCfTQGVQrxenn)E>T*RGx$+cbK4!TuSQ#jHIznVj)V#ug znCNP^w;eS?s4PI8R^B0PbD>vF$c(_}_x_OvUp1eQPn42$hfjyQKdw&eS=4+KY(2HP?+Sg+sXad;iI=Op z?~!)h2_w-XgEBL#Ij3Dcd>@=W=!i(wgHtEBMQ7`~7TP&@LLP?shdhmmjNFQQq9f!k zVeVzqV)OtZ!SlP0?7!k$xTsZC^}=RS!r}??Zl~2+JpX0#^a-ENGR@T3wbxVLsbc8$ z+9B1n>d4Tqy_>m(V$BCC`XpJ|v%EjGb>6nR%|maIjXU|*Ugl>n6^ zLL3GZBo!8|JfwL65bcR&EFRz0aK-a^QF2ossS9Bon?+yyKs0#yWg#^d0s3OS62a#6 zZ!9*yZ0zY;fi+kA;RS*d=EUf07q}ZiTm@XX@HET)7>;4oE_vTWM~}l7HKJtAa_Dv& zxT|u3sisrpds(R?pqk{PthLNLtDpgL%D2}k2mbl>!D*A-y!ArRT)}>rs}D_G{9W|T zJA^GEjar^=jXh0LXz+BOTL9JkPQC|iZN$wGo>H~WaSIYFCy!YXct|E|2#SDqhRWiJLKU8iz2Yj4m(?*e5+QI!-W)R~Z82#n6)lrSm>!O`)UEsVJ1VpNG% zL-5R*WtwBbr4)&~BHyvrQBk+Jc9At!Gqi>T2TKXwnwd)9JYA2-EetFqIx6Pia|6xJ z6v{DAA!qv*9M4GDa8jkvn56a?CmAc-0S4b#qom9GFL5d*%>6aZVxl*T@?<-74 zQ85e1wv#y>Z_tGabocY-^m3z*OJ5$z=FU{l-&lgsKI0z2Yeqo4|WR;ku4@HzDGBoY@=@Jw{lho^* zf+P0X5gJvk_uuVGbx51ooyu|8vSWUVa+=Svu|F>g3wn4fcXiTpmvz;vm>p}|PI;Oh z8$I;Yb)OH-POh;2wmP%D@vDYiS%rm@@6XJ$Z~VJ`@28z%%j#Vr{8H2$%DNI>SVfh+y}#6GIMv%b8&fb$PtptH3Rw0e zu&!raqDfZ1Lm}2|KKX3V(B`=M#lu76m0+5C@_)LVy=zo|Dw$34VN>|*ld^MmK{AbJ zJb%kP;OuA*|Mlg~$$=w*k6FUBAB6__EjN1f99feM4_i;7*xp+Be5d>C)Wf%t>ZZZOD5Prr9m=%#JWOT12>hOXu>cF1#*FFCmEtyN()Az2Ltl4{_G zx>QJ8_7a|}cli7LQMc_I-6?}o2@@p$hQONywLhoH8^H5tv4B=sv2dB?X6f>losf*r*0I6-FsdP$M4=NUxS#nBU44N3jl@+R; zAKa@_u9t-9gxM;#tS9;e=FZXZ1{ckP^wfVUy>HLk8M>@u3UXZOPtQIiJrJbD-poRtw^Djx^=k)X~XMC)a2DjHj^nn7Nez2rL{^I`d4oB z)rXNAJAZdP`tfITBl-7(laET?!KiITZzeM+)*tcjsCct^w$qQ)PD1i!F{=}&Jlw8u zjSMf(O^Ddc86>l=l!)56(~m9Jdv%wEe$JCX>l6F0gOd7BLUqI}6Ycl4zne_^=)P}J zByLY+M3lT2;W?i_(HPcTxTewM>ryqd9l4&BDb-zi!08WTy%j75`<@xcI()-CXQ!OQ zPpqN;Y|l&Lzk2(2Iqp8GI=g>F$sBT+A427TY+{8AO;3KTt-WnLPVLvfa(o4*Ss^R? zcN@?C>70T9sRNO^kz4D=>|C5A&v?WV8E?EW{$|M3@Zs(BG~tSk$r}vw@qTm{^Fn_E z!zsoAmo#XtL{CvlQhKsvC#pW8K!)*E`D2eT6&yz*vP6yUvH3(ws#NM`$*QW(mKqEW zpZ&mfdfLH+j88Un1;q4Nog+|CYlGr-1j=UjRFx>Wk$q!@lul2W_+PxL8!_S+#8xNB z;ApxI+rU~6|0}~h_A(AVu8JU9BS{7I0`20hJ)SqiVk104QU*2zcE+`1wpK9!S zp10gxo}K-HAuR6WBbt9FLXVQk%hw}IS5I!{m!y^4tIJXvYf`JAG*HE3kB|O4pd0RO z6?Ik#j(EsTboH>TYvEK*#p`lUxRir2rVsHkpuH7ot2lK>H@}HtAj1flQi<;lT&Zd) zkhOgAx&d+)%-s{^STjqfz2!a8nz7?_%kDH86ZOX`GOP9Ze4ys7v}RnDndOD6g_rxKQ*n@8$Z+U7U@{ylx|8Tn zMvkqU)wK1O?B53ZhkJ);$v*Q=^Pk57NP6ITITeT`q>+@G6Unqs)rrPSHb;yShoSsN z2n`|s*cYR|Y~Xw6hoOh*UNZ0KJFRal&6oyhA#KAvF_G&Br@pb`CB#tnRF`mhS0?M5 zEX7==_|FJtMv$~Oq#=eyv9-OC_@5h#8Qad`@B#TlOGk%m;Wg&m9f)_J?O)yiY9MOMF&J6-LeZZ^dnbj8^*|Cgt6ctnPUYmpg)<8&1x8#?B8NWbQg;Jj86cP9P%Y;019q@9- zB(O#+lmV%JAP^|-XJou6Qa_7{+-QX{a|@o*u1798$hyXRgnq~&f}e$=AI%9dhr8gr z-gTr#yI*jZX}Eu1P{qd{aK{Q{2f82dpl9L7F$If+tu*?>k^L88avLcns9ZOKzi4Fl z&oe|598EGgJU!o0YlzMzI7hG=3KCt!Envai9Fbay`Psv8`7vYo)CNvFlsL*~-r+aQ z5AUtcA^Oj0bEFS@18Q0CEXDuK6o(=KdFu8JuF*7nNIK1>D>zy`gtLdiaz9X0xd$Zf z4V|#P#4sSuJoxuF=k?Xb$&DBLw}m1L0_MW2kjDZ{yECL)RtDG=4>4;KkOEB@c4TrB zZ8@=Vcn)k=SlE8gsQvfSoS|K=@d)PP5$ugQ;Dnw4kqS3rW65(!envGnD=YQD1XVdy zD}Pv50CC#8h+eBq??>aPlPe#G=-0@);Aje{ zw`DZ@h9J)S@9*EE*bn5%a-X0LBw{soAZz|K6}C4c;f$+vl6ahR!g{W~5=YBB`rWGo zFq$kzv+@kM9r6kAc|?s0abziBA$@PI0E!x_Q#OcP@^}t7w*l+tPjV%4v0fn#ScNAM z&O__FI@?2C86S#BmUI&`C^`~0fjo41i5^NLB`%xbSH&?s9HxB20Al_kYIgA&bxnu%DmhZ}(1l4H6TvOp3bx(;n#Lp=}x%81M$iVl65lAOO#Y1=foU3**`_!_+VE z`aYOHN!j(_%oC3^fDtlmd&~Lv=p8h(OM@dLdo*iy@bILBsjV0Hy8Y+4B)Sgo5Cb|A z@IsP{4?nnYh9(vtGK>;C(=lWf!)qxfMnI_pmP~L=shz`11xb@AOV%AUpq6!nDS<&&QU_Z;AG*p1Ah*0d^{eJ=TWr{tT zcY3Y=Jj>0TOv)5zCmu}`&Hu=6V%Wd}<^L}Td;AXOg&3LPNhR|x_+9s>0O$J1B`7CtSMV95CR}(dop5Ry-pG0&@|H4)hNGPHJsZa%Hr-9)8%f zgAF3tCHR6qPlhkvWc}?9HEEIyxKg;e=VxZ3Y)t{J{%)?H-IWjndH~@?`<0YzS5Eum zO@{lR_Tjf>%x{nf^`GOX_S*R`;}$ROlhw{HFC(wUb;)GqDvy=b3n)2W;1S^r9?VR^ zmt^KqGFgwEa4WmTp`pWeK&od`0JnbeayTz^k zlomnDJwQNyQ8z``51tdLf7aK*RV-+K_ab>3lRYz8@j6qaZBNs@hK5Er%hT6!!9eyZ zJ^?LmF`xRf^i#@+j4*CxVtNf>A_GG7nG|TuWY3G~1+~v`%}i}={d+(d=|nCbDrBHt z+a7m&sudxaY%m%g$`(&$uN1-QZt;T+`7VR8;gcCqjbJx2HZT%=Y$PSGdq!nKI@8Yt#I5MoH*69ER+bf zm{81tZ!HipLDnz|ke%~s8K)lKPokFOde0{y)1+PWd&PQni5p(NZU0-2tQKdz&0NiC z%Q_&sKGcOOL*xb!o)f_7pMtE5>%P6W3Kl&$ygWd55^a-lv^z>4vXbpM4^kYHJzcZk zYiouymm->i3O)j3=!YHF_)6U3q7zMqJJD`$DUl@&oHw0)goQ3sG#b%((mC?S-u3tQ zKY8Mb-{^G=k4Qfw&fN7uYM+;Kk~NgFkZ~qUBzFtlM5z~+7$6spBfj#YGJKR|Cx;5J zn{I5+C<>_h@eRDk;fAAKqyz}^{O6Y*;Og-A+y4D-h9(8g*+qoMH$H$k>6+HXdytHH zje1{6`a^R4>qLDCm!+;?k_7V*IT(QqZ)9!w5=DONV~d=^3w-`TQuzC>GxMnl3Fzbf zYHevzQ&TJTgrN6V$;gsVa>7l5?~~q2!Hcq+T;e%CfB!G> zr&b_rg}Mn{0@u22y-PT{ZV^>4h8EOYl83?!64MigOx~_Ld@dB|5|#2XBDz2-Zr^qD z`dYiHj^6jXR{UZYZp;*Ewr?PS^uvL!XsQ_6(Kh36y*Y=F*lY-k74td)x6$~=k-Anl@}X_t11A{AcG%TpNq1v_I-0 z|7*SdsZC^k1)xF7_7FMIY+6&Q^-iP2>**ijm%6@HR!hsu$_}$4tcJ;*#KnM^WQ205 zw3qcq7vOcn0a-;|+ANl9y!LHDyV7a?qF5_7(GAqt-3Q>*v7?FmBk#~8HNfl<6NVu| zoJ%8aUua5*GF~)U@#pU}H^=`*={Jdyc7RO|UF8UK#bpE1msJ+@Z$*CZC(EIhhM&k- zEgT^q2c_V>w@+tP?6H0(WX2Hwk?yWzptuQ2oAXUOIV4D|k5sYQ)8f{QU(DQ;c2&aC z7M=?MFd)%w(eWUrXFRg%GI% zo|rKl5=w*(g!jJhf*{v{hU2}NOf+$Y{P(5Kbkr?ei>e*BDrfnRXf_8jbL#HUI*-xV#?%C(^LSnoK^ z;K72U3V&VilsXs;4GL}H{9^Kwu!FQYp)gA&lPl`L30fZ~`<@ndT)VViqgjwDQ_xP# zv#J}ynfFQGfm<@mM2GPNz^b%rop}rBWb0F)+kEiSi|ea%CCN%6olIBwLhf|&PL&~3(FM=8p^%dF^)z{?2y>PH#ZBAHYx7c+7mYJ2Pe~hQ?mFy?S zTewEYlLkwh=W6wDB5x-UGb2KPZBr;ju%xUOD+?5-ex%0Y?q+cKjk|NC2_6NS_2^DS zsh7U$bO|CPymY_drRy(B>p+*Io^IwdM#pp)Oc?qw19@08=zj{g?bRLAWsn+->ic8( zWBAFe4n;Ltv*D^qy7_QxS+1~^l4{T;HO?URg(El+={nZn+xc1$7LsF5$rOoViNnzK z`Re{iZD|VUlqL&Z9Q!-j9(2}`c7(n&icYFm`uJ!Zi?hjbi&b}GyXPCRTxid;My6&wU6$@|7osXk1(=FT8`;Gk#%UIxfh56!Xn~( zi1aeg{j&k|`7!KJIy`Y^4Xj(VT_>OEtDNY%9heTeN!a$YVKP5hBKQ9&*v=eD5evH15uwfg(3J!1H~dabfVC>M3_KHDIW z(0>5KW=)TG4;>#%(~d=o0bTPi;7qthgw%ghiOe_&m7vcPma*q`H>rf89Amc{*haG} zxF%~bZmPEDQUa8&K0L~yw}rVKtPG5NY7O`!lOwpcYz_ZVN|)gSR(m}87$U(^hO`z3 z6Lz=kv(XZ~uv5T{a!8kr+kUoX=J6$2b`l9~_L$8E zAx*^PCVh;GxCM%1VIb&a%!Y0$m$2^Yk;~^v9Bm@1wfpPI#$qxNTwFS2YP_=C!4j=T zNp!yzWyWm%o0yomk3^<}iX01qp^&q~Jj5z$bj$exXD#g~%c&}ogC|jTMRu^0T)P)+ z+@NW1fi$GNm~`hrL+(a>VvA>bOOCX~_s!H42FK33rrIAq44^lD-p!QGGVPwl9LNO~ z)~1WlbYB)NAE*G_i**o8gQ6J|;EqB6IddM)z=M_HAQiwh3EB2ah_O?ez)E?`pOEl( zPo)U}oa@QXr9SY$Ni`hy`y05>amWZbrs(kT+$J|+YGFmfscAuwx0MUVio_AAA;nd4 zBa#$JU+Y|h5puNzKL&5?}EqNX_1=THauH6lBnJg;e1nOIiQaXKC z6*&4x0}Z*nrO4Cy*Gj8uXCLpj76uB`4_u-lV^FECKFf`ihlM;5!xWv_pUdw{&b|_5 zw$#Yf)EMEncwrty{+jm3%-kFpv@CR zQ}rlAT73dYtGGDmbsIthj>WM$fkvGiXee__O7hasX@csa+Z=sQLwf{yk;XYX2gAvq z4Qa0PoilcK>p*?5PIt!}Ie^9hzvx^b$u(zN>$=4GFDJJ z46h6zbL&SuH^t34;Aoapcp(}^#d-zMmNLAG1R&RQFKg;k>E^Q*<8p&mjg7k5{V|>W zaqv|!!eoqR@ioB55c97vLRV2ysYc`aDYbwkk8#d~yN2Z{Q#_S=9GMWsOG~eeQE8#| z%3hfxA~MYrkISW9OS<%G0f!-|^!KtZd#U2i-lCSaz@xOMZD=kOi_XX`#ituq0$z?- zIyQU9-(wK9e|D&wavW0&VBXnobb{c8*Mvq$cXz`kEkx}hq4-@-ZV)@rg?atEL@Uw% z;FbiK+d!wBC4Ac@N3gsarog$m#0R*CMBKo<&Tt+VZLt$xaSPGs(Ah7_@|6fGU{y3Q ziv;I@LlD4S(do5Sc=rJ5FJ-rGiiK4ae{|98jHV{__*suH4?GSuE$y_CB-%!wfA=1u zcp7i2a~K=x7`PNjMyw6JqNEg5W;)H9ywZUTAq>^AM1hGLM>p>4cQ;A)G_r>C>z8 zgNbkU4@Ei$XUb>T1(_8qFzL;|$xrN6+{Ko?7BGyR1m=!S1t35Hx_&=Fd? z$j3y%*3RObbga%n*`9ooKZV_m38}^|n6QX3E-A2*T{a}pGM>jlo;1SW7@La(<+CR! z$!P{iM;hv3ed|g)OLx(%;Eu zudH{>*W||}&7OE(#GO!)nba1|pIpW2QX=G_!EkISIp#ki;by1LMbNFcPB#+N^b9t^ zl6G3>{BI&3!|~t=-1O|w;e9VVMWD<>v1%*Rd(O&Uno30biV zoRe8Uz%EMF+^z3ao^bEje|cl14E+5H?t~tS3UN#dW4h|L7oKANfxN!kk(*v5JUSNA z1#}>-aZa#^^~t+;+6oH(z;X?b5hk$9S3+!YB(jM@L;>VLyLQ)b9x(|$Q!NSvSFsi` zH2%8KH7=fG5}b%;!-{-w+ReF=Bz4<7*l!PxmP{P7PopMj48)pj2uv2iaz zHjs^;5pN3aqXSzi?X#G0l!y#q? zju4$TuXt3^Eg-&34jv*xhLKQOP-G|Rrw>qJSPL=oC=r>B)YL&Y4j^}s|J))-cTX)S z1dII-G)cDc8928YN0SMvd`n6a%v!8__5SyS_2WoOJDjEGc!kZ(zpFon`GHA5(|$YS z7QnzQ^mkyPz|!4iucStd16~Z>Y}D)SD&t1fCZ|%JXb{%mU6?+$tXvdQxJ3+y!OM#0 zoFacmbPGQ%O2lvU$?%woBtqC-jJ_HF2}xZLktOWH4N6R9Kh0>sgj;eNE*;DZ{|JZ- zM1G&qt!A>-B4ZtT_bvh;0GN03A_gRl^lG5zV%e~c_age9>T*mzg)DKX@QpNMMseZ| zhI`ngO7X7sEVakrRaN;pgayqkSeH!3rIz9Xog5_AgAg=8#NDadVd-_aXAMpTT!O<< zkJQ@4K%WV%i0-@&lW-x4GTO&P%x0@#)|qELZdXW6ITpv4*-=s=$kdMDJqTj{VO0T< zFa%!3;mqPqHeA?Ne+)OWu215GBr$6Pp-!7cBE+|{UJ4y4Dg#(cX0wA>CX1OBGUACI zaoB53bT?S{jpu1z{Keqe*4%s!McDNbrursRr5if?2-HiS{q+vsF?}riA$%szgurPh z=!`zci^|W>kDLZ%gOU5hugAyrF}_6gXTx6`w-o)kN||L0p&?WFULacMQh5y?t9SDz z7Kq?a*4sCdO_3`~puxmbJ{u6A8;03jj+~Mb`~RcqyW_F!-}h~|y(6P;Gf5H3tjr=Q zl#FC$C!vy2GH#o)cV(8e$Vef(go+|66|zD?LJGg*dOpAJ^Vjq0RowS=z2E0Jj^jMe z6-JwCJR1-2Wlr>L!IV$i1bh$pKa@>ykA720`8&*hycnHWSav^%^%Uy zi#9>WG2WR;yYbiDw*x(JLN~WtXl{A{))B;m=qWN4rz)@#qQQd+0t9?^cVcsP(PH-f z$B!SlH5S-&fhl$I*8s%kvT^)zW@E(Lb5wt!f)l0KJ<|yxj1_NPLRp_DoV!2w4p|X* zg_L;i+jIEh;^U;rm`#Sq5GNkF7C=Fpu#euM8H@&b09ysgM%`-yu~|y{`}e!;n34y8=!s5F<}v;5SHr&;ZhB#&i~0hVCvYCyDmJxOdYZQeV@CTV6jD;-{Z6OJ@{>RXAblW-$Y&oR~%`<}U(&A#o+;-<37)xdUlKa(GF?H|dfT7^Z%c!|5 zdgUkV^|XXEt>_pTF^swk#t;sDrBzPfzMxdC+ABP4Zt*261PY-8B?v0bv9{GF4AoA? zzu|FOx@`ZVxjIrMWKpw|Xlw5_B%(LNI8&|!PV+i8SkD7yBB$|5dO2a@x=n%2fp6MDYU-{L(*=JM0{rt8o-BgwW7KsiOpZ z3$tyQpb}2BAI9{Q0COJdlv(X~7|(xr`O*y$U7v^$EG)5jLHE&G-ueSo1j_#4CS>vj z+)Q*g(@@GrMn*alYzpqDGTxBIFVqeh`>q5*UTgQhV`m;ui$W5PA+eR>L>24tAXLqw z$%yweqoci;_AP7IW1D7A#Kw1c%v)}qs4w7*)xoCt5n4({NDZoGaQVRnC|BUqp?%3Q z^y3764?A1Qp$EeLXI`R!G;x!r9eDxV^2l{Hvr;=P(w5JR;Z`ei-xy`sR0#*JWj;^t z8u{LjNjT`kg74}_wJC&k4(srr{}vTBhji+#x!1ef+z)a8qR&v`|C{63ugT5DWATT` zqTLLgT=t1=_0RqF_*2la-amoZ8O<|Zx4g$|kSYj;u`FZz)#}M!tb$*f#51_^BZQu&9=f69pt^Nv&G|;%|aE8i0eM%uTMU(R&|X7 z-qR$VzWpZzPt1mOFcd8PXu?WqCWTD~ZzMdRa3eL}5`+>^-h^#P4XCL*K!3x6vCLq1 zBfxd)yDR|)cg#jKb52dr<=BmQf%|aHMz`|h$&;5m?Vp_mHwfuDa&F|VGa%I}+33ns52^yc-hqZ@DRa zT|4Eevjf4vAwAI?99NP3j^e1n0lzJxGnf~I{Q_tTG%eXG&~jiT;YLJWJp}&}A-gs0 zP*`-NYz;evahzz9{EEpFOdSThK0zZ2`q{*9+cvxc8{)8AjY0&F6{2znbtz(0WOo|O zEZQP4*w1{FWA{yIiN)CK!%CXJ?D&U2lww$tw~5w=Bt~r`te!%Z!obe>1;niOE)4ZB z$dC@;XV#%6A_qZplE8PEQGfc*--Xsi&eJ+O28V>di;qkG@DLlXCr~I>qqq8)(8~>B3d!)nnkEK!*PVB7@y-1D^ z=gnWm+75BH*^Cl?>`kJ^EWGuPbk_LTu~}(3RV1rEKYq~MchG#huF82j8J(7g!Zb>> zsq8~(IAv zv8!xyAjXdUhK^Er5xHMchhLP%G6|{#z|99? zJRU0flO`|Vx0b7ew*DcVi`(AU$Fn@U`>f-Rln-H0264=2v&<{-x;t5($w*vde#N<} z^_ZbXexBnB(@yr{D3mviq6`CKVe(Y0bs6#1%dcj!ut48~IQheRzV6$8U=_+vP-}$2 zP+c#YLzsI?-3sK=9%cgA4qA}#8wS7%n>imOC!OsXC`V8z6c{G{ix?alDuWnvg#5=0 zNZcv>ZPd%AhgbUn(IC4@f_}cTb_q1-O5Cw2CWZ6f-X`sZxRFq7m57i;6^4874R5s{ z>8?){+|EXbH3ICD(q_iTmq0BcHO5>Up~|3n8hNnmrr=ylI4Ae1kk9*286bljb#oIK>s<$Sd=shUfPt+0w@aQiy?ZW6xUfa6@?H)Wfq|C^*C5oFiJm(NG6aX1uVDd^@`univw zb=)EXfRcGZ9t)wh2AT_<%!P#slYx0}p-m8Q!1NXRq<**spwI!ey&fin-qrfNKZB|W`{+Yi0<1AMUIyU!p-)triuC$Y0*^y@TGrY;VE#Pm`s zG`PiVzaOD6M(slsgQj%O@A1EIw2_CX%Kx{ZQUgM3;wQw2k?^Vs$w7?b<|fM9ymW zUKw4ThY-AJlv#0%Hg;b?DUUPNX4}%U`Bi`pv1|ziE1V#``Gn=##oMQ+r&-TL&}zl! zQ4sr5d6HDZs@aV$Sf$2mZ^q;vwh&=qgs}M2h&G-ZvRE;M0HX)PWt3;dyC0#jHG)MZ zj5pEpdjQCoWiFtLV410wcOZ=P$HyPzXA)8x>Bb-ba68e2HlEq^_!sgOoLESY?aPJb zM0GcJIRl@f942O3#73^|TPwz>NZdRgFN|f!(ZrNypyXss7FonvXS57mi+S6!cAtr< zm{3d5tsweT|?wgYEG zpd@AyO~QKuD)3&rXmPM_z=|~^J$$5?0(j5tq0Pz4&6gYP-QNo}nK=7D=V!OxWL{QP zg~pYQk_JEh5zZDqIx~VhAtzo*mW>X{I9<^~>fCMRkoE#w#edO=Qz`p&;oRbK45!JS zf%nfvZ*%iL0Q(KEVTl*oP3E}W;HafNaM1n`rg&MD{RWJ>_n`~}FAZZuBw_!WOzChdtv`Wxod1#ZfRHuLAdcbv> z=J{oKR4F>PQF)8myx{ml{hP+$7!GE*OZiK|62YR+AlD>CAZj4;@$O;Z&R+s@zfU3_ z>nz{$YTYSis*5ZrI0Z3;sQk#w!(F0nG5~s-vf)rPa_!#W`)+mnyU-!7RDcoJnQREe zqea&Wy6ysO5OHSoa${pz7X7B)Z}$k#m$t4hWuGEF@%Q)d#X^;lD{-6mZ5pzg`hh%K z%=t(CwX|YwekbI9EDI+9D40YbHR~t=cQX&S;4tGNb1cy z?!4<4Z|hW79&H6%VGo8?F!n;e*e2mgeqdVp%Tp<$ofQf%{hs_Qfqf!8C(xEhtFMA@ z(7m=%Kp^TwL8%63zH=p&09%&n79hHO+m37aj6|JJe-?BZvAIj*t+Td1D=iHz+dAs$ zB->U{2Bc5@{}~Il|E$F#o)>8oi9@il9K`!# zS*$aU=D%rfbmg|#4z!3s^6_Q~&wVVQa}&aPB73HyS4` zIuSyj3wVUg1bI$WhQoP1hOu2)8q6}f^mdFnZouo3zHL!qq>b<>UqWOp>98} zV~d2%vrEyNzT>LvL+$YaJvYp}@1r_I>xE)-?^D@-ud{Y-OM3WRI~B)f@;0DzFMdb3+nwPmw5bf*t^%DPr7QmHL69!E-e2Vv^P70dX1+T3#bRmD$;c64kiw> zty~!udE6Tu96Y;1A)R<2Sbayw2Qtq?H%QcYdFA+Ih`=!$-}Lj(q$6-$@b)&ixpx&` z4gD)&N&=|4k)5#gLarv9Jus6ChMLf^Kenju-qMg!4b6ow^+gN^cqBq2Ukk5mWJUad z1CC|tILp*$ct zFgOdFK#Ehi2a}UPH4sL_cMN0b@4caWP81Y>UvlP;xut z13%Zj0}Y)ZEDC&H&%jFs*a;EFa7*wu+4FpWhAzCp9BVu1!xbA_+pp-1Voq*LyvsiC zjKm1GJJCEY_iGJ)CW@ZK+g5dwhcY zF~w|YG8o7O<8M4xJ-vjEl71t-74-vm0h55&iP*jay|SNXF0m98+3yE>C?+SS6&4E_ zr0Hiqqs&&ZA9+o+9R#b@hYw4oa2P)=5)d4W2)QqIYo7nH+SUk$E-SGtZVJ`b=RXH` ze}~XCB04+X(vb;H2}cMey7FP{`{A}VY3Fv}R4ZY3r#o4f@%Lbqly(|{x8++gD=>>1 z+WnXiush~(*b?i3(IJ`hv~wHLz>d)`>)fkdT0G%#TK}*(=np@W_>~MRt&72*@8td2 zw4lP_E0Pf&b@KdZlN#CL)SJd|&n zhLHp2C43KUQtp{EO6Vw*@Ett*z0jnZCYX>c9qjGrR+k>eheu}Y0MEkwr$aTMN%AM9 zh0KlE4S*5n8T)-eR>02sAqt)e_8ivRXw;kRAIx3;{IiJYhV_-~N;c}4DE-oB!Wc>P zw~W&-1Ch1iL3SNnHZtr%Eo><|i27~z?(bcdy2`}osOG}vWnxU@*Jv7p3GiOf^~7TC zeZT+G#RzNF!GG9ZMh|v5G&d(4zhfl60TPkFn4WQ~HFbA-ISU_Z$BE1vIYPK_g zsw1c|lwQ%fQw4RFHy;qFA4rBHXD&~#f@1E{Px|TwJnlRIUBpw&svcurx!(3OG(jMA zW{u^?NAvJUH7%)|1qEgN9T=oxV*C|?$Q^&0sktz|KL~G5ZuWosGumDAmCk7oYq<8I zet|qT>EjFg?t5?@KmW-qDr_&c>ke^9lo>tepgu_cr>3~G71xD@I=U~m)D)7B_V0N|nKE>NCZT1wxIF@C4;NzHW85^+@L z1ff+{##I$cb-8gDU;a_eL(@$!UN9Q10zknSoyiUDeghQXQL;aI^9eDd`(;Ln7pM)4 zcZ=NKoQZubG=J3s7K-OR+-9`*V@I8Kc$5*P#j$Cs-ir;6?}XTvT}JKV%q29gWp0?z zfg{j0uk7o17VHA@WMn~LdnkfGV)%mn+z>K0QVZlJNY*Q8Y`XM^^l~dc6zaN-QCiM) ztz&aUE>Z_N_Paz!CAf>sP$`OaDa?o)nt)0wAG1x@g1f&@S_ ze7iQaSv~_hWE8l*G&D4z&@r?u#tvStBQ|z=xqLWY!f8x&1}Npxi5A&UgDvAI#p}xk1Dg5va@GzRwG44R_Q&4go?>_X(4@hogYdA2p+Ydh+ua zuc$)AqRLaIv)ufiBh`$LUAt)>dkuWYb?C;nUIFTUCFn(w&0<^=sn2Xl>eCQ3!IA8K zL#P`7C!&nRykR%$|K<*2$sUrju8U-?S3|7k(5~$!S*oJm*#xwPON*MGleU@#J@`dD zss!d|&z@Ch0_ZWqZoH#Nk(fESY*vO9&=w-V#GO&=oBa?qZKUs?Kv>0Iwuhznx z3-wFvmXn|Xsa*v^Ju&+B?JYAM;Qlba)#i^nqq<&Prv)3P)oBt%J($`yWzeAwb zq|`>RAE05NHYYaCV*zyj|W0!v8orn@k#-1BrgA%U|(@Vq*}j#r7|jBy+z$Vm!H()~Q80)$Y6AvUA` zI@-e+iUJxzQ0vAcROhJ2IuK*MYo#;%jG4RmqwP-!>^C(oIp(_7&Uh0QIU+Gf0H3hz zqJnd02GaSkGImP<5b>%kgDC%6shV8^gGY~JZ{NCxoRIzoy0{p}hhPZ(C6ampO zJ;q1q2u>5rZg5tRkxYTof_Sw$apIeK3m2k_z(p4&i;-K42?924Oy_waC6C}&58X-= z$l$3o4pw*M&CSj2jF)efo@vUyb#=`V%7%$*JNm|{pFgiTJofnT7Ie`I1O)ExdanEk zu7V9#-L`2_8T+S|H?(n6J5t?C28o<6`E5})+?}>E*oL4M<+tY2VO{XG2-Qd`KD4o75idNK#Sb7DVoJAdE(?y{F=#-` zSPJ#t^!^VNX-l1NZ4k1s;*c2UQ#6qqYxr55qh>Ui)-FM zmI~?7N-WH!V=9dWy@cn(n6=rNa?g=-qdOf$gT}k1N{?2&2Rl^oJuDcpwSl+1X- zZj{Wanb7~~lelu>bu6U82x1hMco&6h2vtDTHFmQa(rA&KLeHQtj3JyF% z|9NfAh}ksw0aGTXrKB+wULB2q!1??TfVi@k?d{OV9xpv4WBxz`pyGlRrv_jJUM6rZ zgOign511rF_-~PF<(axdgf;xS;A<@v5@irY)h8d+yQxl3$l)ggmpa%bRtr85YT>Fh zks3F0`7*|EpP%~wk{XDz1b2&0!@T4elN7sbU{o>yB7y`xfiD?1vp;o$e?k^p${VDD zUr}sy=1O%|RPA3i(*b;zkIMiYH=Vx7`Vas9ltLJNY~mT>0AdxG2b=|k9txJoRh z5uH3UK3AVpcI~2KpuXp2@niV?GXx3jY{SY`7IyXsCu3AH7PNRa&<+T`joCWbCB*p$ z*;Z@KSONIZi^FB&=cPDlUE@&gMW|`hhR|};Ke@B`kLABrySfpdup?|NRC-HA7a;a- z`R*9KY`t%K+B^MC87H#xE*bls-+S;5?fp<%LaoWl>lk|(kT5$V&95RfOQ6}pXtXLY zi9xo4V#Rn6x-x<8ZXRtq*I-~~5q{NB@q)tXPV0?0K!j`FlWdN`;Gk=97a|!ZdN2|x zUO^Gargv>4Fw<4R%i$!G(Brkh+s+>?-CvmdHN-TuJ9O*{X15V1qyG%O-F=-@ME3&9 zQ>e_pVvUE| zlafW$28^-{WaHp%-?X{^!-u?=xEST~dQ6!if;WEA#_iasBja+w2_&sk*P_y^J*-#hl+UXW&?QT`d(CRL^Ng ztpPVZ18EGg@Z~xe+q=d_YUP7@>%E%fneGX%TxngBAYm{91+WRy7txUCsF+Y-oxmaW z0-2#Jb78WVWn;eo>rBN1ju@Z(1*iapl9Zr7;RmPQDxF^Spjj8wKk_-Tk;WHAm;9>ixb}YPn zkL`5#wR3$rQMOn%vI3j`2!x^R-Ryn}Q?yz|J9nA!iF=8hqNN?g^8vas^qf9!!;kUt zE&Jps=KZVHwXMAFT-6Z!gK*P%uDP$FnhMP|Ba3mrKzvQEaX z3F@w+SRTSJD$S?F;jZbSC*yx;KSN}+t8{ses%Q(jwzjs*1I2OdbNb|5RLPvQ!&=dT z1SM!^oXq0|n5hyUZ=$^`x(M4Q5J!x+&ae2L_mo$~Vp5jt!TV$02Vf+>sH%Ge6F%5T$PbcRv%d^MTuWwYxfq_;Yat|J)#mt!opC$l}U^WUV8T zV@__L!-?f>6E2ataf-# z4o3%3h<Bg|?$X95+}gD@6AoqQ=Y3jX=#a=PV>JMF>{8y3obJzzum^J2Usc#il?O z(W@~`QSYXsNfh2gHUASih}#BE0T7%4a@Hpu04rSf0)YfhXd5p}52zHQ=|5GE*S24~ zI+6C!m4Vly445{ytPi^UDqF3P{#X}q;ly(YpU9vbeUie2WBZZpCjCMs@_2%(ptDd_BrP)FpIuix1p-^16CW&MXi7#Q{b2GCpu;fNAep12h~n|@Ah2bx=Tnck+;|~VNbI2>=<c8cG+-cp31wem#bzrXwcF|q5*DpuTVPQ6BU6K`B>8Y3Un z=adh5?MrWszs@**?q0%ei$B(S9i!5wuk*Z~c!ak*?yPpil7=BVoG|?{ zNZo2)C6?O0`@32F8{5~(eM{Npr)ER1H*c8Ecsw;3q47*9Xa2~>j!JLQ2w!J zC5?#TQ$=M)t#xyUa5)Dv*>Fz(5BgoLceZQdrwa^XdbZyFwGfCZQwRR7{rz>IL0N8H zZZl2oz9G4`BLRDE7MVRt*;szNGehx0n#Plu6bAq4Gd{PEOeUyBM``MJib5X;-C>rk zNN)?y(b9UqI!kGB+S0Ya@9bJ!y2iSV8+MvZKc9K(``D)D)9I5nw7)-oj?Q(+mCg&6 zj*mKj@y~jDPR*5|h8;B>?N3*NHr;6M3>@q1%-o|mzIsD7F{S0~A{ptyvNC_zAt1#SZ(dI| zu$!yW6p=9gx@INmoK`jcqr;i?rI(s~T zd3rwP;Qn3rdeWr$tG&@VS0YZiBGXyEn@476opu@RFxmTIqnp-Q zk-N&@d56E}q|L4;8*SVgok;!Dr(AI~^_d|*b*{+oxYNb1lVW!ZC*%@@yBqhu+-V#8 z-umd*QmcZ+SB#y)6=O6#CN*VuOUu3`jt1VUQuq5ez4!L)lKmZP)6nHtxd*;5g_23y zllq2fQ6apZ!vJ9?01&aUvWkfvyz$6x;CD>TPm!C6NnS4F_vH3I%v#L;QuvcsRn_0~ z_d55+iP1~$1wUr>9`r4q__(__^)%il+TjNevvJ1&2f<=49|#p%7LUCz%kzG1wr z@Gi;po7f39+l17#;h>+Cq>}wLJMYT$xzA6|Z#okuW5pMD{p$UdwCsZ7{2MoT`yAS= zS+X}-@4U2}mcBIC`ikG>vDAy8U1#h*oq7Mj#^}(~-qpRdhMcBa%h}bKYv<hXpjo0LD$EWHxY}!~oIX!qGeOJ4=c6)8Da8$yLD?c_r8Y<~4 zV9ETx^@`_{PwxGpN94|qI<8(3A9Hr860WlA%3?Y5;sLAgmCj94Tn(FjeA4a*T>JQ^ zE#K)O=aKPGpKgDhi)-59b(cxond^69o3mm2;4t%l=S$Cii>HCxM+KFM&GxpkTrq2KChrswI|B*+hGF} z`@Y>*e+ONPK4C(stsQt{BZrfgUsw_%eJsoE@~5`oi}NwPHk=jcx-~N<5*YaU(?0h|ozIJ5BJ8p&7j62k$$5I;UFT1Jy8W)@ z#X&IyIzhAYM?wXs?B3p6kHbOOeEp-s!m6Utp5}ccBcmfKA=E|G8-E>m#!^(6egy4s6SkH{EZllp2J~#PX8O4g3a(ZB5n>uXVe_Rx$1u+zZc1tMv+rZ?PyS`Bc+h-b zJnAdM9amAjiBK}L_M0^Q49^Q4*G^j+*qYa@F7H}3&v||LNZsSpi{X4>G+$Ik_?DkW z<>XvSeY(A;Vxija*@*o8vv==3Fe|gV9@KI8wc7aCb6-L>UHQ>>$I<=EJ;QHbk`wk@ z8kKh}T#?CC*0p%klK(4ZySvqBHb;)xeUlm(LOt+A-(6FX+_=?)`gC{ciniWYyR6z_jK= zn+Ut_xurW(f&-sbrzTR;I2Pq*eV=kJwca$85jK{cXO5ALqk7nC$h)aE>3ZVWuaWjv zGo3ebo2hzxE=I3T-v4`ip~U7z)ZV4TZLAJ)WE!%iHW8RjZ!ai&@1$JhZt>mX`0}i= zS;~}4QT=7F-v&Pp{apaBuy*6+fzN7(Kj!8ZuFN;RzOp_UV3+gzx6wD-lV3!J|0vBE zQWerX9_0|0TB3epfo_#QuNJ^pB4a zzn4ywdwRw0yNjU(d;X30tzNW_-_FJSBVBzp8+(W&>hO9}0^jtw5Z{Oh{}}(TKSwY5 zX__8`lf3`I57h^M5agg&bvcXr>|N+u4Di|5Zzf32@C zDUop*rk&Rs%gV}6%N%xqroRTB-z$9@CH%9TT4 zMMo=`{?uCa=+UF_L#YB@Z62kDnMc<3hkz=r^L<7MsY+^7QV4{?!1eLNqs=$`s{#sQ zZ>Q_v_y~zsyMV2OkvdL~ep_6-b$!tFBGD-9bZE?T@brA$+FFG4+Q#^Z5}Qte!tt$6 znwNK8V#CS(ZQ(2ie7hu{O!6JG$~yhqJy-crcw^23=g6_&bx+-fn`vWnj;#I&SPkwg z__g+MCfvWKC1}ymFmCmD!?s~V8yoja$0+q%s+fQK{uy4HDfpzA9@+Qc=EwT8?_&Jl zJ-_htEsje3U1}{(dg;Xv+Ke zNdL%@bvW{lj*i-g=!T>P{{tdARJGNdJ?t%rJ}m!)M_^_Vh$a-b|VvW8mYT@WLLE3cD^hj$a@}Lln^L13(9`DeSg* zzdgsnvTu9>iFzb~d+{XHo2YVdT!S-D#pymzknss>oo%$EK6yT)tZZxt;sqgpJMH@- z3p!7b-yboh3<`E)^DmRG8yxqhE@XnHwl3TZ=YBHko#K~l0p3s=zqGK$^-<0|kfkdLQf$wv9exDq9 zU+!kGcqX9f2M6s)OzP@2ApafsQaB!+>B^;UZxV>|C{vX?0T3;Puo7o1UxB5Pg&w&aH}yLSlS2rwxG6I&L9^3GiaP)DTRa zpsY{zhRXl_UGuZhV0mffy2QxvZ1OrlhKYr2t{KWxsOznlF>DPqLhsaeN^(dDwGZZ0 zit_WtG+3oK_RwYX8gYC^*;{Vk%up>@3dHBsMZa`&rqBen1TjlX%Zb}0Mtb@^zzwPS z_)=l(p=pvECI>fDaP|7fF&1~vA>EKuk48WIrzJ1d+6O=izZVu@JQ-&~Oz?ruZWv2Y zwqOxaz@(m|>#0*=qU^Nca9@ayW;(97e?KuaV|p82$$wNYNA5Yw53@#X>ivAwJmvU` zTJ0DZ%aPLt1N92^yw_vkOh zebG5AudZ@&M)+_Yj>-2=kALQBg^7uY^@l$Pdr$=>K~eL!uP~l`y@UrJ97z2=DI+6_ z>QXEKb4Y8L=Bd8N9<~IZWo%@`rrIE)^&JM32z!X6&8l!ziv~anU?=_I!-ue>NKNG% zAVu+ z!~8rF=WuR@bRXPlzzmobyw(SMYCK#02(KTyE4zbXF zBfM@N+N>`AIN>RxHG6yEs&a>xAEV}SN_awsELRPKc2aUO?Kmy(+e@=l+`#qTy?auf zqIuup)G63x58lcx$w?(UGB?&)^mrQu%TjwSfLESJHxES-cEz?CX_vJu0U% z=7yKSvE)HhNjmQOh3C(oPw#RlR!nQEU5X<|J)#zGMs^;YyZHU>C_q}6HaINeN(2T3 zFwoI0|NW~I2}w@Fix*oYB}WlvFr5!J?0Iph65w_B{!-B%mfbI3y{d!rA23W&4hyO9 zhS|^%`U1`f@-i*h^01&~^l#6LAq|}V^!SL54(&#<6OMa9e6k({=mK&VCIh7B(s0nj zHQDh{Ow%@R4P9W9G@Vv2II&}?Ck}A7HonFTm}Nx@$(K7u%sqfCr0fkRNO)Ra(b@|N zAP{b)SpwJnk&clcA@LZ(D4YCn>9!Q(t))jg#sPaClF)o?C!u|FJY)eEu#K^R!zb7Y zb`cn*{zIR3?!pDAY7`8a68MDfBNV*Ilrqw$IdI^B#MRi?PZ&YLoHyX_Y6v#~=^s2P z#YO2EQr@I>xb&}>drxu5gWC_*)^7^yoefXFR=z9N*~NwbdO*Z(V>2_Si;)HE!}nNU zH1+iGx?J|H;a?H|7e_cGZIRm~y%EZ-<>h7glr?^`Te^A$T-qs`hYR@)y-=t*JKxIB z&kvruPN$W!$5;v@*`as4^7U9$I40UAUSo0yY7s?6#b!Ht^$Nxuw(~Y%1>?4prKA`R zj)9acJ=LPQH!m;Gm=`IdlJ^7NA$6XJizQ>r72qTMuNQGm)LvwO+}t_8RcX+Z@N* zmV}B1kG>Kj_nE!5SI%3pa!&lgE?{Nx9V$k;Grh>@Z zKA5`zfC0jfR!Hn7eonJVaEVs^bGTP~adoX?aF(j^s7FBBcG^eGe}0{_Bq89d9QZbU z&7=(AxqyqjASE&qOz#pv>V$39VtZB8)Q$t#fQHSwmSn6B3SSMB2;Ne2Qxhg$k`fYv zO=3@+<#tf(HI+_|&$c{<1)#qCjRaSNORA3uK7XL8B!`pmn0CMPEcx$5u2 z_b|3ZCJljY+qO}9dwVkt8zo;c+H~W*dz?A*>eZ`EdR5KE*_j^gm9{qhQ>RWD85#8? zpOoC5!ld;tf>(W$)=)WrkJsEKWbN+zUQhLu!LaOpy@J3FpP-#;)o5SdE=_cwf(U{{ z_C^(>?9oqUAM6=>m1&jg4q*q18f2gUykl3cmVl&J(~k3>E?&CyuW|jx_MJ*f6seFK z7|N+CEBk;+QlO?#@xQxgshHB_u7ZC9lY@yIv_I7}IE4gLK@b_YTmz~V1l;@A#F)EV zOAd0j93f2=lE7MTN2-NH2%Oe_mjl&!ma=TLSLs&v9-%loI{NwfVYy4ips-xnA5pI@ z^6Zcol|jLd{^Xu%QG5ORTI?Ki!G`o5H;K`jdk&S%^NszjXQ{NFK;_q%3x#kg(t$mh z+v^3t7L~6vjMd#vk}sNLWagl~W0awGr#q3um4 z`lhBPP{JR;3!z33WnQHUp>~lJ6QfZ*Wsyl3I6Cmg1M$ur92|tswXyFH+O)TWeXUaZ zVTW?BbS*#y>g7FX)u{im(gXmyj$Wew;%_FLP=3xJ~*8K@enUz<^qWyXuCo5e|--=W0WDU zPVcf@5o>2!2Kvj43{68>>uN6umpsI@ZEQ9@r8!dv!o444XvfO-v@Q;kHOfYmyu^5r zUn)&Iu>oiHt)0t;ViwmVWcTThmD|L{3qbN}7}1dR!P>w@a5v z#AFishJI9WWPRhE6B}F=v85Zf?Ugu~zldry9Iw`bx&a zR@A|>*{?EohAqv}QL)jwS%4E-{2oLVLb&DXr(dV|Bm z7y7-l`W+6PCn}BD3QX^!&3kFFPH9z zux{PByu1bdB4gqckOlsii`rQ~BumcE&rcg%3)Kvf9zW&b;o<0b9wca}t;iEh?7Y?7 z?&{{ocj=7uf&sWj#Mu6eh5{_`7>bG_LM1b^I{*r+HTBkwB*FvtE-^x0iRKTINUmul zPQ;83ls|C5^~PzUWGlHf?G`0%)PAHL`hPfC>AR<_uhR5?7+FU|M07Fbd_O=FALYyS z%ne~N?@~2Mt8FiE2W>g&mEK?Z6W_nLwzkd*@#tRWNw2G0h5F;Wku`V~-wiwJI_8A5 zjSfT^AutYn{#;p6fgr7#Y=P4&hNo_ekWFk7|A~Ws1H0BU_sk#WtXE}VV6b3*w}*b; z{0{dw7zQJ@@Fm`c!qi2KG<>lL1iOU;#ok2Qk3jjqgWin^XD?_SChu8&uKhqhgc-%GDXS zMfL=o2e`FwM(P3jiks>eul61_FdzhdK;d9Qj-GmcZY~pcPbi;C-Jxy#^D>rt(-(B< z*ff&BWK{y~5BP39szvZ(5I@lQju5k3+BdZh85n$ca?S-Y4`ReunT41segXY%M!lz- zn<@kvp*I8Q@JleeBw=NSAQ_n(9I8$Lpm`4!<) zt`y*FKHdiBru%ows-K?-wsi#DhoQr$4S_233=A_LD_In_UICMI0bY0@`JK8$YjLiC z*Qx-8P|lzjEb$ zp+Lb&L^nYM+ym}V`G>NTSS#W z41Be}b5D9cDO9L-LL;J3^R={K6YWQ=dk77sDd!JV$;{0B(O*Uzxg!Gu z#6Ejv_izZ?b#)r|seCDA3OZQqTCCtf@`jfgFDAL7qDVV-{TH$+obuz=rc2iURLrq( zP2)sZX*n)OTnIEKkEnO8pRf{}SOz*q>AA}<~JK1m9P!UwP>CME{f z`)D8rulW{qlg-NN4;|IAZrqL)Yl0OYFl~|NZlU1UfLcdS5-?BmN28vD4tF8n%o8Dp zWavv*dE*H)82Leu=W&%`>x$5y<>iLkk*>Oxq7M!k8Nuno-QJ#>?d4M*-ytxYt~M&G zhc5BEdrg0b{vWjf%Z$YM{i)}yg^hb3eSO^DKIj)Lpy>%!46(-(7b)h) zb6jKT1q7ehuR#Q?Ui9-*IjC!NP$P$2D0-~)K)CZr15_}ZU=o1eik@CPWWnA9p%;MDV}2RWG1%;IIe4|90-3j&X5&=GoUf-@OB%p7_db1Kl%`e{K@R zrbWyyE7yQPK)A$6?e})}_Rv>i!I_Q6rAxI4N2hne{&{5Uh+}ekdLL9Jm`;Y}6!Vn; zT<^|5_>7x0{N#lR2_NDp&6g|q=kN4C577_X#t|RFJTW<`y^r^jFey@fzU6F4WzN(=880kls^ zk<5z@5O8sBM^FFyVcUA{ojXk3rto4+VYw4_ieZ?J&0=_H0j3j5hYVyzoKckWx%eT?!L%IZWZ$8h~e>AZ`&JekgBNppq$8M(FrBj1EJ z=<3P56X!8>2$x-kuK_^b1O)|iDoL|#LrG24;h&hVZ7}?@y5i+qSy_oL+cG7@dHcsl zoskg-um?uduNh-Z5x1}Al(qNtRN!v*(+O@>P~f(?fKXFLIWj#wO!Km^q(lvK9l-Zs zJkBHeNc~*S_3Nh`90sEwU>`Gaah4vCy>f?k=(yz?sl2s8sU0%@8ieFh7}pv+7muE;Uij2Pvvc-Ch5V1S>WCfJzqoBc)}p^jam{{#;lIl{3| zY{4E`wEy!#d4*E-<&(L&v**a4(7p^lW+;|FPtQF7wJVeJn;Y=~+Vgp99*eRqlnSghquYWugl}vjulKmil$HToz^(3jId~^1hO-yQ}a$b;k59d4(mG z`9Shl`|S*~E5s<5v$J#m2BR3slK7(8 z)PKOc785H~(@4#|V|^-ZF{w>ywP}p5zROcs{lqCWJB{Mu+GZjc81oma`Z7=Eqq6~J zq3PgpwaUqCG(>v0tWr_1Pok(G^CU@~y(nZdZ)2H%ce@=i`lF-c?&hYo;@MxCS3FCL zJO?zhNyb-6jLM&|ylaenhv42#Hoh&Jm6B3{HNicMe@U0y;xvrw0F-Q#k;!LAJ2m;G z?k_-yyqW6W{IL8F!T)itXoSu^?|-zQFSD7t4QW~vXx)wT2M;nQOU^0`*<((^6K=?m zOd)C5zw{$FB0!uSsBX-koSgL9JaoV5&u#^U`Po^!zR$!dFGqEkD!ENRZ`|V8v15ZB zKqbpmlkX3GiAP{Br2$gd3m5`ov6j$zN zapMyZWd+LZ?F;N3*WSPZ9DvRm|jGemCXTq!T4cx-Kk`a@L&n-SYs1J&;2Cf z2&cAju&XGE@}Vly>pbfo)^N>_J?;D4oq$~ z=oadfU|$grx|Lr~4zMg!E47%ND)rs5q0Qv|?-+W$Z+$}|&Kjk?2>yC+&q{|Icn)oS z$|Oj)@3HjSu=|Cwnd!W-(}uhG?xIu4_q0C(wnnh-CB zE^i3PZSCsf+@XG4lsd_tE@a7acHDmHpSE39H7Yn-ODn6iew8*JqxLZiKk|nJQ60cu5TyFA{qy&z z#*oJJt{~So88EKX|Btcnj_2}!|F!qt6yElhkx}-{Xdo4l9V%p$B-xwnsHhMjkx`<^ z4v~-39&vkvrJ^@~lxE3wd1e{p&)=CgZgkjvcB$LxYlB~b6$U8vIMf`;tm?GCF@ypqt z&G1~&-bKIK>5p`+oqaIgD)g~zan+y6xCp8WsIy7DRsNVWS63B};KmTc(3TEyPWK!c zx||JZ_pyz69@cK&-W1>(?;MP^euUt%OLa?vyQL z7cx}OQhnVfBMnKbL2Z7a0YSQ%S#wf}$S93sCPO{w7z{)M4;^zkvR>RFPPqYZSCiZA zx>JJ>{{~L~{nw%IUHQ{Cw6?x>YHZjX>i%@;HvZ%jhbX0@0UJ$n-7m->f-7bp5TnaJ zzR2qr)#EJSg`0W*ZNG=-zrI-j;ZHdo83@@$$qVk@8@3*k{%lS|1lKB=8QdwXViDFI5V{;0lX9nhHXm@x50*~R z=0zgd-rV;@!e=kbIZhCR1SyYNW_g} z>WOo9}z=*Cr1W_YCeW(p;nI6Dh#9Y?Tc;znDJe3Z!I_tWXRsXz17DLGfqVC3U* z5S897kX4WJ-%Zs~Xi(8KFKhw`mh=nIA@@UW0RbpB*Na~(P%)j#BV&;je@iS!dRnp) zfxDDD$ja$Q)v}7laiykTrt#8UegKw7b0Xl*)JUJEx8j0ixcBP{Ua8{+3xvY6xI6lB zaQlboxp>WYLG0}9>~U{t*XRN-FmuhZ^YOd5(xYQP+h!IHF)N_b4MsbRjj7^K6l_B; z=HiU=a?mP+4MAO++iEOnP!8ZW30NV<@O8$4J{`f~!&%*%9fly36~JNQ_vfNGIR_=t z*`q0pJ3+w4y}i9RZ*FFqA7YXho@Sjb!OT3IQU`f(OBD1g2~Bx?fuq&%CZKgUBk2O- zM7R@nKjzIn$n%Qnv`?g&bkoqv=9WGxGZz1`#RNKlA3n#D3U?d0v{iQ6wVe+?sziaF ziLsMEEOgn4FAHf~`x|`vs@At;Bw1MGLOc&I4Tn?`O0+=9aVk;f_1j91*XFt*xdA#_ zaJoo4?sF4HxBv#A`8ExSjppvAK(_lC5#BbMa?6%+ z1n+qLq+u3-&x&>A7YGxx>m?=AGcz=|;nl=2fk} zA2^!5u;BBfge}V;xibI)B1TgaI`^B})8l|SNkt+7NJpWbrBS3?6))c{{hHW|DYBvC z;Mv3dW8ISm`->0K#ODFma3_nB)&GV*7E$S@yAm=qF(f@FDRf<@4T$LDr%w^J#qxqd zDHDSVe}cZ@jHbHs29!{~+L3stB=#%l7UzEB+CnjXUpi`M@(w(mR2&gUf{ty(JSZ8=9}ay}fC(B-?5mdFtbYKCL2Oe%d#a#)Jt ziJhVdT7HavE>mb~8bnn&lQDpl$0Sb-Iu1r;04*&o0X`TKVNULwg+ zf`R~fe22v6s^Doc{TxHtA`lIuTAq81Sk>r#ZU-}$))pF3lpuS3h^Zhizl-*3Gvb`Kv%`=$X>F(2N2FV{3 zS^mg)`vPg1R5i|_9LAa@F+xlE2B0qhbekeW>Qps|o?P=x!(}~+v$DE-d+7q5>$zBu zuezC8y=db`zN{_$IP6Z zF5k8?fmL;6kjhZ8CdXUQD=xP0NF?fsEB0g5`xoRte?LMD5V*Mm-6s&0nYVAn+J&(n zPAWYol0`x8cD#i#if;@N3GG$=vkdVd{*#iA;bqT`}82iT&KDjC%2mm}!%^WjF&GvI&2%0@tt+nzxllsN)H9 z5Ce2t?Y*`;|B zEkhk`!dRDy^@L8_?Z~@I7+qcBbswMxP^Pv{mrdF(C+~N68|dj5V2aq@ojX~o+v*PX zha9~!vyVAEzpbf#y>43;!&YGsOc{!TORc2X!(tkjyp>f|-8G{4Hf-oT$iChb7ELPL z3Q$P{^DoRoLzZwdVEKh0Q4!zpg9WHMT^y=VD4yoI&aVF;?`TZHEXUsyONE}8le$tSqge3yDz`w<qxCfCk0nA8QS^4FiKW+Dv zD%v(F=aB7ut$q7m;liZ#w;%L0jtmIug&xqrgsfaLxL)%?a%w7If8%+7#<9xsamm$d z*2l6@@jya2dd8QoCwlf@1ikA#M{t!r1$Z0a9}=96f#K=5O*B-F(`hI6NeG^!zJ52GLrR<496jXBRh?^ zMntF|x0jcZkr`4qi!>Zw3%GZmjL_;_c?m>LjGQL+=FOWBEY*A?qojWD3I_~8Nk$1p zhW|V{@F?eat$&4COyACyKsaJWMFq#tk#MU9jP_de1dW@nOy@4$d>NV$qR19I)Gp;G zL4E)6_3QErCRkW4L5mv3Q?&lpV^6vaXOH(XaaEO+P$dw-qW*L^{2OopLUjl4EBE|3 zGY1_>IcxG|YS^-b=?oG=76K)6!Ah;f`McOE>?bGVr__3ike))YF48R6h(N-4w)P;v z9tDBFAP}*~5a4ifa*l~qPuMJ0nxdi5-JVrMF}ByzlJWcoKEAfWk!je1yFcJSSoa zj86>q_D0gpoI&J4vp-oQR0x(22r%`(KN1VeBwy=zxg1_y?+D9k0ja*!@3`!c&s^-zc zIUn&_1UGKP8iWq^Vq_#4gomh_QcpnK7R9OR)?pzH16y}SRe}@6l1Sb zz7e><@1>9%c4An!glE%u^mrKg9RYulhP2xW%V5c&Rf>UO=v=4S0iN4Jmz zZi^{ug4VhE$nX5I-N7OMm5sEzKOOS+ixSWoY{}L~hSDnXVo`{6=*(>I`10amE?LL{ zJ}cDCRAI#iOm+>9C3MYNgK@O(8TIu+(AFp@C?Lt;Hgd0x0m$$R2y8`6{?VgH$+xm~ zC)FOoTSdCt23~eX<=|`raPwf?vZbkRSe(i_RQ&k$o^T3K8?f>IU2w)(pQNSeZ^cr1g*zyi^Kw-Y1hL0h*KK{v^1EAa9}@FRd@!WisV zkd;+jTFSj)gBB5Ivm7$&sPL!iA{tIUxHu8rGveXtX~+`%el+P7RmT-8`*QkJllrQ? zRRR}oTJ0T+!%Gn(w{hDv@#}3_C?s7R$jl5xACbuOYMZd|WgMc9&Z|n1NMwfzq7cem zoxo|jQ?;a{hGI%eY^MbI`76rH#|T(m=hW4*GGY{^y@aHs+olY844*bx-*yYe!92wU zeVIGk&^33BJbl_Q=R^PPJ`RPV2I!0joup%5g@GRdG*){8gG5|DZVJ(0RFkn*$M$&3 z%RXa4|1g)0>Pt+a<+_^@*jeUPbMzgrR(CxLkgUaYa-d&?i!bBNpj*8JV8KNf!uZza zV;&gz74@6QhF~ypVatp7JBV)n;04)LA!g@kn%=A-r9|3DXxP_j`cqR4V>;2Z`>!`_x3n~J~aJZ&_$j3f3_EEx{?+-aL$?c0#L6nuz zZWF$wJo*|11L%QCX`ui2fWu-}f@yPyz|H;7??wXSwvhp&8<(9wC-*H?kV z!2cJ#@>?*(Sbdm$qEU=_;~G?GC}`SRgb+jVEw#2*d6R~fkG=O7w|ef3J;sCvSFbLbGbZjYXW=R90m(YOMQUg+O9HZ>K!jEm0R z!GTDAxeI5!$AV`5I!8^uyhd?q=4eP)hL0b?O&F|NO~eF<1h}dg+0yDWB^XfD88_cy zNN;Wi{1`L&uCpcH`5q2T%}*fXzI^%OUon2#U~!l|j=}(zuZ$M4mu+n%W#N(p+D#KI zq7b;4m~;bob=@?vz4OdEpy=Dsk-7C#bbHEa%7t^?O&?=V%!Ys&VaU(lyus*;?`Xo= zv{7f(7$xW*0&A$RqD44%!rP%sRb%|pn_~0H0$nS{~=%^ zHI-?U?M~X-CpHmr?Ql;!sk01vejb0{xgpsCmwW|h0Dr;IL6-(X)rKXmrmhZLO(?!UL~UX!GRC8h4e6NN^}YR7@4(iAve5vunGPlT*>lWCg~gl!tr$_mb%y z9)5Fc>~yT>+>=V)WC&9**>@g$2WJ&z!L-AK9QwyVs*^6tLak+CY_d(u>Pn-{-T~d8 ztUWy?#Wyajn6C?84YCU$J4|Ik?_dxR2TR|#!U7W<0Ei2G`5Y#5Jt&2erj~Vz7h1RGq&`=a?tC!wJ=xZ9vu90##B+g&;$6)e+BzOqL`tc7XbLW7}16pPy7%_#SvA*!sX z*aIyL0-(XtV^KjI;f~YO)ppOGI7;UBHuYF9Cb43~wV~jPu|;D2K0iOjELVH9r6H?} z&of6}z6^uf4{#IIUnytKR5>=)#mAc-KKvdMbx?CD3MtMF-Jab}N4xL6NG2p=lU-uh zD=MIII~tqvs^{}>t7=EE;z�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 literal 154423 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

    n)ke;c z1@UfPoCpt6=RF{3{fs<L;bcZdfvpIwm+Oms&i9Q*GWN%GV)})G^!m6#{4F_LgkL zpi6An=f+{)$iU!+{-8*`myAMMjWMU#yr?F~~X{2KXpkqDMq&E>Y@EsK4&m6KZE!)bCpMRPpIVtCt*dTe}o zBkZ;W2IpUqh>DylCtRT~ z>j~vM7PyF=+&q;huH15;z6UsmA`dNhn{#9eu2Nd;f=akT_D>!VkZ@PKS<`%gbBtcL_ZF+HG$Mp57rv6V7bDBv|?2`%ODo*+^ZfP zoNICZsrl%{rNiZWkUQ`Z@P9od&p6b0zaAXz^33-+;g^)@AI!t&ew(xWMB-zt{x+v~ z$nqAL?Us%)Fxe_80pOOqZ^aJ&kG!Y_9(=HigWZGPn~UK7xA+=5#|8U;Oa~lMqSjWE zPALqN&o^xld+J0s<3RRf`o}}FS@g11#SbZY)75mbgn?X_H*7#kUUfAc4>TB*J@@JI z$l}VK@HuD%P-3H0QwJaRMy>wba%;KqVJb4t2230gL6baJE18Lq%-|orIc~7K{)rWj z2??)NXBs>en(if{6(76VK!?>gH)$xSO$0m6;BB&)=@}jBM)DQ~_ zumM#imD_8XR+n2a{Lf5GXwp43323;z+_}Ga{mBhmmO9JhLSH)jcA}pfG;*+|iL$pF z@R)5n+g9A)@jDRpUJyq*OQYR5-iq_YJWQqr<)2fPFEbMG2vF!a{PI&#G<_I;eGm+B zglsh#r)*#2G`N}-*O2~r3 zDw=Z%Vhdqb7VGNh4SAeoBbgtWv_H~ciW=&%;iQgMcyQ-8JwOpB{)6JHH1EoW5bB5j zO?Fj+UrtHfuwd97Irdk5|B1M2CgY#mp#OuNsW9~?U?sD3Ujgid&OA*gv5SCbqkkR{ zkT;Rxr1{z=p^xW&?v(5V5z}o)A4^@HPUsE-=4h6~SHalaw`l$LiG z3ZS<9pV0z>eeuzQwVW69e}$Ik=6SN5M_NR8Oc=&Q5RL67_D%z$c~&XonIN9h24Efj zbXVmAW$%e?Zlusr_xZ+JCT!mUaFD-ojPD1oas1)+c(|HPi{x5fW&kr*V4LL9oi%pR z8+C)cA(wUqQiQ>h{g5;+v~`?}Ea3on%k%4^eg{_3ia+_!+5FX7mvduUqRYg^PsiTg z{#^I9Istef7Wryi--HS$;%$s7hmh(Ep;_w{cVJTiW$uV0ovNhxQ4h00y_7cO`k*~= zr&n-|8kj8G+sl*#cIx|FAOCjCJQH(P<>d|2<+}5b^z}SrMsSoiR=@yXOYBgfaYqvA z^5X4Tt?iHEnxm*sv@6PPpf+pHp@*BTrqL1;_kz$uv!hMpseE|@Jg6Qk6SO1Jodyo0 zJpCKrh^~>9o-_U)pn3b9==O3F?!MN3r@6>?09>20p=NJXjQdKY@Xx$N9rn<9!X+(& z7zUe@%B-8;1T_xReZEdwX)7`WVaWiOG;RYp))&6CEWdTR1`*`E9%JUDxvKooe>8zn zmD}o^Enx?+DdbD@Wpx4F##IUWxHT^GqJvAp41i_2OYjY*S$C`=_ZF8>AwjCd%oHOe zN|j7Sxnvv=;8sfM?kpO%b9D~4Gt_#foOB_|nR?!B{mZidSnjAl2UQzU3RuL<0&>kw zGaCtbwZe!Row>OjPqaH?#2YAwZz)?zeLq`bikvC=RI7Snddp>@&T8QoClP#xF4JbO zEcick(FZdXy-61tj@Db5>L#HqH~*S?$-ABLI40?%Kj12wPn)G#m0e(c0e%gbhOLD^ zjuk$tqME@_1oirvU`kU2s^sM(K}}k3vUx@K>sA_lvas7Em~SjcAFzr+r>nD@fmRKM z#@GO^?v{FcCRRJjLl%k2FoB$rAQR^c8y_d#)ke%K#56 z{>B%V{$R4Dr47?eTI9yx%18ke57J|)^zx~m(CJ%bsA6-@-H)gHLGpL~98egqmB^l? zwnd}S>H`jo3APVB2#L|KrkB8&W&cqWOUo6(MtKW#l)#K_R(n1#1mg$+}l5{YW=Hc zLa_a1trFhLz9i^1D;p~T^9Czh8GRwyKw$d`gB5-ew@jZOSZ=-j^Q8bQ3I07YVOHgm z`gLk}wIwZRJ3ZLL0wPr}tLsE(Va176CiB!nxPdr8+u%-!_0Uas-~J}ar5n$+Byc|- zR}1!@&G&$Xb`1mn$v*miXv|btz?DF{!F@xPeY|a11J?Yyv-rvpXTE=;=oc=FP58?I zKf$+j?AUAVfPZiwY3OnIf=A#X<#IA4E3b}`F1P;)+P$omp^;WB4+7JUG*v4ptu7gi zU?~!zPA2kam8|19McAZj3b~&E9~dkU&5AeMh-tCtl#o)wJQXeK+1J)Fw3(rNOGdri z_q>V$jb#?hz|CywY)Rm7H!eYKQoWGf@^IN~zV%b^XC*>gM-qhDxG z8iR+p0dIaUZal3P1=_?D2O4v{Ng&{)E(Q@eJ#5*~#tjfzGKs4*ZV!UyNb*!&U{mP* znWbBku{JXrr3*1nUS=nla5hTC4tr37j?Y_3O!^P8C6~wafDm+DR28ifxaH2ahLMa$ zj{jx1askbc!!NbpKkLp!hLL}g^Ge*0P6G$j>Uni`+Q!6u0s2#<+p-BS4oCa&St>@TV@OD|{aAS?|!Q;F5_N)8;!R-^1F$X%l7HlgX%y3UKOY zBe5|BPhwqD7`U}2`Cg&FAP56rqgjE^?&x{%blmMeiB__dDmKC@%u^=%)9eV=K%o03 zJ6?+PLl{l(K+}u*f1vOe)mJy(Yk*5|LEYYq>;h;)QSvyJo#7u4$z47HsV8?7^iRrb z#|Y)2FZKT(lePZni?<1~0c9r&=l)visZ@F;#rpm|b)KJ+om7h{K3Xmc6vjzO>6abO zhsH`WN(z2LO8&~qTUiPux7nYXiVmG+jGU$Q@+AY_(zjWG z^a$ebyDZuhl}||J$jlPci`Nx82A)2t>niWWE?dAh%kFOn%tmEf3^Jk_NU;WU*SSDuZ*}SYz4wza}r9#V+t9dgcgP0>yk6NXC zG9+Lw;k@#)d_U>BI~kTH@-fLOX$u1yZHx{_wlM;_Z9bgxjAue~xEQ0+UPF^{S`bgP zX)ybOs`#{;%1U1LP0nOJbLy`ncF;TeBf0ACNM!YH5p30$eD1|)prOy${6@pO@U&^1 z>R$u-Cyi%KcM$Jm=s$k*FO?%2_(4Ip;s2sK5Yr6q9Yy?{sKrF_ZyjggHBgviul>(6 zjvn4QO8GY<_OE~VfT{sMgofPcj>z?Lx& zw0mt%=)3B>-q|S1VgO__a6D;vKIe#4gk8FNZ+WoH)4BZBZ+@`h3*gp0B^4yKzn{ePl5d2As=!kE3e8sWb6(M z&apUQwA2t%3%HyT$4MIjoHplmwYP!1bN`k6+-8R_req)gmZvO4HDB%TAbrV)myCN2DZyEuRJo(}!n4t1_K&&B{-o2+*VsUujkyLE~tcu^TfRapxLjTie1Wkc7 zO@{M?_B(jD$YAnQQx6CXSSzkcdTC4?5_-Mr5nopXfLy0zQGmxig+qB?-|K#VlgjSx zTAB;c@ue`#_>3#xh*HEp`%XpxYEPF^BPmQp7HVU+G@F`3KbKTPP#eDt5`dXI(a>S* zJC*BD1^x&K^f02GIE)$@d>PZeYJ|(lCIUA*W2E>jC8W{l#W&1vrWi>%}X| zC=B14%IK#vwll3{LIJXRuJP1&4RQDcY?RMoUzu4cH~$Q8u~TeIZNzRgsGHjWO^Qx; zV9Rmr`pvF&MtL34M+XTCUCv{%bb=Bw1v|3dhY)f8mF{TdqUKezneR~)B6oP2%zAH) zes6b@Z58NZvj^JTJRH^2KhChJi&OYZOW@?P-+V}3?xEy0^0{k~i_Hzpfp~1@1lPD5 zCi#gocpONxQ9UpCT1-YrRFC72_Y2e|m&(9+K7yWK!Aegow#&;yxdN`}uZp&h$7Cf_ z5utVLVX_5Q%;ByZ*0b(#?5#3%4I|_8)E6}H`|! z=bi@n77^bt@qL+OgU;Ql#&EGgr_98uMs45VzK*Q}#(PrDIL^|drj{a*-awr(RgkLa zhZ;R@R(GoTw%AZoh1ZsqA!7QhOky++=7Iv1#Q`5jF`3;P_J3Oa+F{XYN8Ur<4PlP5 zXUX^kY=Jj_bpU@*`RzC@F*SHvnaUv-t3tw&i8nDZw7VO6+PduUUElfSTca_{FmU3v(q_c}Da1nU*+r z^$_QK(iRI3*7Wu&%h5)N1~}m9GL_#c=37uQv9Ut*<0QQiU^BVAis;QI)}o;WT*M3a z+R5+_0IM<}OabjjsBKO7$8t_7be|WvYk~&eH_nD~{w}StOeMj-eprDDAO(V>>(Q*+ z)lp-YpnDI0Yl4O)bK3pi`0dPwQgd>K ziq~5{qi;r|;%(0sfQqxZk)yauZF%&y9{G&VHBtOMkN5T#m8u41Z~T2_FcnES*{$jD zqXNO<enS*%%{9;J7Nm+lpBqVF#F=xiQqpleYb#F|w>(%DkWg{lwQDue;9oM`q}yOqkzv#EDIqm!*I?7l}`D)Qm-RAu>6!@l`cg(M23{+C_w zG*e&V-pKZ64;7(O^{O7c5-&i*UO7%L3i#+->jBCqP69A8iLPjWXwuF;$Udeeu#YhL z_&uNyJA9iyA-2+k-t%PmeQ643>rBW45-q`azgv6j*1lA8?Tw|&ZW+i{C6-(MP?-U) zzwMGhzIeyla)ZW4bj|FDL*X+1lBbWJ>kb){5#AL9nok14C2ubVz0b&TYqFXAM7#p{ zm!lb@5-@q`d{2tDzaTxuy6~kY=C!FG`rARIKi_?8}<5se`alaJ4T>Vef(=PF}xbZVNY|msE$sP0lP^&;@KA(NnFJ6dvxE@&dl|`R$ zlE7O`z8-2WJzXEoX~^OIt+76_6zFhv93#vnh$E6<|uv3t$ut8{G*ACmv48eDg2K$QfrDsiWSS= z7YhRMPQGH2&<~m#_#A|(UGB#=fLrIHtw3D#Xn9NMX}O_b9K*`Nn^uC$&7Hm3bBk)220q(FH_>Ta|t{s)U zMi4?cz@f#)Jjq&oL7^W{>q%l6ay2Z^AeaGEbxNpX2r4e1YW){W*2y7z;IWDU2hGNE zIyjLlO5U^36?BT<-Y)dVZMh@#*Kk`*(9f^Z^K41rz0Y?>9;90R0exTG{+&x9TJx7^ zZ|i{SR=q+V&!3|2`X^8P>xN2hOSWoGmA%}bakg*@o(51m7@8XPnIMQj$_@rG457vXR? z5|@}Z`8+;24>A6OV)n@55q3M!>-c%sQ+bmDf6zxI%7^wUI39n{?>KcROYSkWOQoi6 zAf5k=*&y*DT8Ofno`WI09b9W83qQM*CVsp>5^(6CjR+Jt`npDaM7-pl6AxPH*rS1ao34>X30U@afd@zz zlTOvK@P8*yRa%vGm3uZmOT-3Pw1gg^o zTIqlNZlBR>`uJ6P)37wmt%aeRB`#g0w~yZOqCn@yG@5s8g6L;4?jSxJZU)xfbQJ&cQ<6zx7|aTxO{NA3?6IS! zSs8^f1S-0@+cKG~TjhE#?}A{dOV-#yzfwzVl697*uEV}+rk>9YQD+1Xvu;BpT78bSMmFQ6IDkKQ-rqle$0&iFYs?0?O1 zCyG8yX8kh4buUImaE|X!zrvIabmKM0coKjA@&=0QaJk)EX~?lgP{e5dZ(-Wz z$P;`T>kNSy%4lOp{Rp9!yyyLm^aFKa2_GbTO`~R5AGOrE!DP0bGkWX?>`SXXqAe+U z2fw$hK{s>=*5-58EBEt0y_jSjO1W+%w>YRiyfc?<*%un3GNda-cMe^Nk?_vney&BK zSi=!}J=^s%rDa_3N2d5nz1y3wE}x+^akZ63&+>FJ+kvoe_@9;=&8v3xul+A@W4C9! zX(q*JYP9VlL~km%{mZq#F{VCh>b6+++%noA?lSfhEeg;h1k2p}(4Zadwy?Oz)vtKo z)d>-p^)OWY^34%vRf1K}E8nn>1~&1*#U4h{X_jW*OJJ~>1h>~-h*PP;xNG?3SIg88 zZb^Oq*zXEs`vos1XIPxmpkmg#4F-KG?k{81%q#S=6x1NB>1*qry}RIF@hlete)I{kg)sD&5g^X`b% zyev*WU1Xf`V8VZ@B=ddUEZbSG?a>$8d7XJww*I4aoGd%?tUmY9xu0#z$01`k;m^@CUL0c}ckOA39Kcl1y z6kjJz7+W$G53nOVUThB_OSVnHvWL>k7y$asTU$6h9x=1Q0DAx^A!}em1e5`xKbB@? z&1Z^dBCxsd&Pr#qG9AC*AvEy-Pjr_cp@=*2^oKE!C5D*F?VfnAE8a(H_o34NEO2*5nhdeN^k0A798o zK4*X=Kob%I(8cy4TI@KKsP%l_gA5m`ig=MLXGqNXp#0(v*`nv**a!Zbs&Ou_%f7x3 zVfe6wcMsBA8`k4=8x1mT0ZWwEHF>PZ&Bf7A4X@1Gcm2Q89Qs&Grkmo`nYUR3SqO40 z+^GExbj`yFb?1XNmb<_IXT!n=fiehmP(+LLqFL|+<5R@!@}JB)4l{WS((IS7`~f1L ze&46FHlSN2@A6lHstmKokT`gag9WjIJ{hy)&FmSk*}yYk*RnfBQVUlu$?NSnXMA`W zHkV_KipD?O)ZR#Moz;!U)x`bB@{vKHfYyubapSDvCeHj=Q+1|92L>(97d|lB60HVq z+xaHIxXK(llBsQT{3sK2cgZ^}wsPH{qY0Cj`>Ea^Bp3uO0bCaLZDJvVMPLeA*@L`f z7E+JW!>}zKol<0bt*3^8izUW!x#oc_X0D!GPK}}v$DP7%JF7G2ex^ygD zU&)&#A_*ilbT{PJlyL7NVi zhp}-BWVc)IW>=)ccxj>LILips5PP8JKR5nOxIG?9$HzcP9Q)O67RY&DA@V4woq0*#Kjom4$Ye=?u@!RS9Q-;&p zsLf|!#hAe*eZ{bpA&(MXJmv7H)*%cbCe?hwree_BrmoCUaQum^FQ`7XX+=o|-j@x$ zCva=l9(NftnTy9N{f#u~$0Wt`+)ytJoZxO!dl!Du*o%?@&6eQXCB>0{Gk_HBEH!Y+ zsYC1sUOF7F{Q_1hcs2bi+a=bL5XX|WPToHVbO9y0=`7~hev{ViD z4;YdDV#ifJGWu0v{*qSEd3(I8?y{Rk_hI0#Et#oxCfC)^3RhQ|#D;Ebae5X8tk{8eG)jNPptBU{$j4UtOJ%iP4vv&MO=(nou=$r)eyx^xp)80M=@7jSdXnH8 z{QW9p$#M08f#u<}v5j|0>?;;BB+n)&7EeqTG9FiZ>Aq8vu*-jsEnJZ}!5kFjl+NBO zh}96W1sTUvR?9W1;`HUYmwjXa9`(|skrazJK-S!Pen&PjuX$twMp6CfILugt?g5U* zq)Jq>v~b%GA13+>V+N$#T$4&SrEsX=XvO^`RA%w0m(G^|f$U|uNE-=?3-D%Zwdv_I zTfxfUEs23j9gee2Gt6tMYJIWvkoI!)5mID5mu>J33Svc(xL8CNw3!t$q?00+Vn%_} z_DXoWG58$kTBBlii=WS~h`PoGhy+h!`e8{xbd9y9I&be6JAAoP@;_IH@V zQDvw?tugPWaaWFR{A;mF9aZz%Da3TqPeHSZVx6D!+01u_KC@q=$i|d3&&-G)N5C~A zM0yt*<+BXVEfjLc#c}cfj#CBpx$cosDYy4MFeszfpRF)ZPuCTDov$CNaP-q>y4vCu zt5c#POs$|_Gz|q)^+p_Lvbqp+Ts-|QzIXehfJG5MPvGV*AISWD=Ffj-WNJiz$XK|% zQ1qIMODLp+ee8iu;;57-y5Fq){$S9Sth$*I5A-n^zKBegWcb^oV`OZhDH9*EtUMyM z)sFj9sE;ga5j^vwKj+UAKhaFgET+Plt$?6+beZic)u!O)*Nx?t`ME$@TjG~NH8U=B z+V@yD>BEe*;6cJ~3OPTxb!3>jaD=pN)ToT{fUPa8fS+GScA40Z`ny!O3I zi9yHc4zRFf?DA_yRaR0Dg#9j;PMqrVw@guhnzavA^V=K?@h+83C}t-*WWg@cZ>OMC zsgLDmOV^5D#UxCj<)&`gR=iTOvIZ|r0)i5w#h~Ce>efv1+jYj^uM%VTT^ka)@qnpl zT=iUjZiSybOy%>Be&8!F*NJd#zRvgB&BeoRN?WB z@pY&;B!KpIsB=oiFTyon+9BB~wz9|Qq?oHzwM)a^XH_t!pMWX%n$BnQSJvIsvW9B- zy&(^MfO3ctXP73k=6Ud%ZJAZ0!uN}uSfw0x-T2?fQmhmtcxCqHXTVE%c2?P5&A(5b zJlYZ3O5^hO=3A+_lvmOijm+)x=f3)?!Dk+{e*Edt)P`S5-!wk*7#z1O330vBhq06> z;^f&UjTK||BfqTd(AvpU+T-~gYn%Ww1{O(m{BA9nj*s3)1Pa>Hw7^=utF^BpoS{#< zq0NZIt5J8AsDdARg4S)G@hCgVW4A(~^0nk~3om^O*@^A}4nto~)_welFy3w26y+z; z3;E zeJ8CfjZXN3m)Yep{F>rcxHvQ;+^OYueF_kn)|%g7V=;BiBkyN?vePj%103Yh2X4PQulUw-{A$p*Di=MEYqcHI5^_w_wo}K2BZfNOdS9#Z8pA&i9!V#(v$*REW zXtf{pKSmkCxo7MEvx*Vve+ z_iIb*ZHvd4HNS{9L@#LOeU~8CHOX1#@CKqmOHgDa6{=cgfPygrut;Ngd5H_W3j-Jq zcaNk+^tvKO_@nl??ydQAM`jLOp)#bV49R}gP=YDE&CPI#2|ixcAwmlZRIvyRvK@#~ zy4^y*ryNVgg0g!6W6$rFux{tWIF=_y0XoD{T3J&VbUCZA4cFg`owWQxR=U1u$~0Ov zu_9gdK)qcFHYrS7H}R5hYw(E-L_?Ik#sq@{hL+f>tIEs`6Qg+EsV}%+KSG?>Ns&Q> z7wW1iU@6nJz5!S+vsr6m7VGVZ+XY10t`|{G!cpInQ_NT_zLvqU4F(I5v)m_%(E4K|t4r5Fxno^1P76lvX=z2yk8vVpaoiU?;|16{upc&)m# z+8eVGc|>=ei`db1g;`G5keKQ=!IUYFL<6qN#`&e~DcEj|iyksOwbllVDx@K3D*|FS z%}^>I>J#833f8|LMc2ZGy2PUFU}_<1z7j#|A_`ON2F7t=1bm6twv0p(M)2vRN0}jR zfm4@l`HYzl+n%(Ka`%2hH069+?2MM_F!%r&7r< z6qISxha-`w%%3R{`%~l=?j3v0<#QSS8VzM@r01UeJmeH|$701Y32dvB$L}&pvow3I zAPg)d+6aGl2TpGyMFZcCURcknKD&^G)}z<}OY^mdbf9ow9UF92`6vKdgO-JX`C3y` z6GX@{Ud~hGji!O##(o6vP~moSLP$5v@^;$HrmVfHdv+Z-3A4!Z<9u|(G0RP5Uzg8l zrySkNXZVELM}-Jz;qp+fv^jOR>BQyeF}ldo4VoZ9DXQl1@(53WKpTcI!MvJ92NBK7 zi9^)lvQ2vPxCZSzH`Whx`19d6I-!J~JgCW)2_%n~cgQ;m-)P-cpCY+fpNyb}bQmdz zT#7nfr>Y)N&<^-TL|)YM65< zu7&gWGVC{vpO}`ELq?8k#mOj9#Eig>cuYurl*KUm0sb_fx4ENAd8G*lWwGTY`Y#X? z+`VqJ7&iTC$@Nsh1nfP|o=`nm1^e+&7wf&FW0M?zBlRSU^Q79bXH4Y}dQ7R61 z=`!ZcuTo_;IB_ggvK%KL8_*_vX!)d(BcGSgwvJ1)`_Ne+h|v7~bWWMgD4>xnw*XPMm~V~drG^Pwy8JENszUgvWOl#}|}3r)_& zr(VhDNqAYM@Z_@((OT}3(o7ar`&{z`ZlN=cBncbej{9JNIvHb7zg?cec>3`L<+!vU#pv2~oXNiX?J6lmY zKJxYHp(5kH@`J*B4V&JoSci5gsFG5~`Y{WcZ)J~+zHq7TQsha&nqCwVmb1>^kG3RS z7L%3efclttn_fA9O}+sQ-I|2f{7r%J`OC!oRFR2eiO7RNu?`*f!`eCzKAW8;e~Fjw zTs`M_oIAJiSm);R8?1wIj-~9&-zPibzAyB-O^!*pEu89fS?d?i)h|45c=UoZbSMlN zZqSew@%PV)(b)Pm@{#NJC7y!$)=OAGl=;^YeGx=A#w6e7&HW;CrVfGFz65Rz{$s-1 z6NqQtvwJqj^gLC{&^tMx~}a5TY4Q+a#IxhtV>j9(ga_Ebc8Y$smj;KbBW} zcJdvay!sYZ^Ic8W6xHGwx{y-?HJG`gt?>vDVBet8*mr)iEKrm?keYH`Kjj?#Chwq# z{YO#iNrHph0nPrH@y41&VYe5#x8^ZRw5#A+^P{dJIf|fnWiN~VS>$SlitV37T+lGv zvkd}}xsB&}mfXb+>&f0x-d~-pYp~EA)%GSo3DAk)t;au66G&&&$DLqI1f*2M874K# zb?Os@<0$!!aBz*;x1@!>Z2j7JjPf3g@Nuo{8PWBZz2U1G2C$&&D_!d8(s9oVvB1d^ z(%7KO&KjYz_R9wOSzdX74!PmFcQQ|=g*_Uy^MN$LqjP(ZQrc}vpZyFruW4~^-!S=e zz1Pt&FAv_#Fd@50*%kiTOe6fdde)q#+Kaw7(1j+r2maBL)ZQ#Ty9nJ z{!dnUn&^K@kU&%Y|HC2j`(D2LZ^+r~{{>5AKW=@7jI`_nHq2?ObJ*o>)iB@Vsi?1$ zHAQkQzt=TXuf*(6)?fEGiBO&1g<~940zF~6uJwPagOne2Z{;3jRrqKM!#gkx{{V4v zz-84QY`N8yQ9s|;it^#NA0v%~_Jog-irxVs1Q~6(ZTa7@&R0@=3!`S=@Hm2tJPkI) zC%2PzCXcPvpXkRuynT@w@*IHHlJvTPz0a{=TxGBWr%&^NjoFVCnp;h$*z5Xfg{H!T*!_cKWYWuK6FRHaH%F%)!$#E~ee&8OOc zg%~KhU6?Zqa;uwwK1@XyKRYt7E!ngkpwTBzF1Zy2=Z}} zmoYMMo{>=_yx(Y{dQS#POH>1DV;~6pEP=ioR z&Ec>98_NcSp@W$e%eRxnKCzP36z5~9!j8J7Y?HB;d>?kT&jDZY+8v3H&h~?U?)_gw z?tegMM+bQhTYy7e>V)ijq%@riDM*(qMkObM#LnzX=r52lVX!%vZ%$bUFNF)fPM$ls z0k_wc(}4`GOr4~yw2>7K8)Q!F}g|+uoPn~v@ysJB--l~&3vt$==rFMqg-jR(G%j*@iUv@a?c~E{(sgK4#uDp4s zCbVIse|ZeQH-ZxAUHx~7#3loScyx3JGGmTZYl4T&d!RM551dP3 z$v)*9s62v#DZ2Ae5^Rb+X@$-PU--I<0qeVz{^7O80e}s5T=#H`3SfZZu8UeQ)=DeZO1*oTbe*9kD8Sz-*4b^Jw>zo~dcE@+dgc2AYL0Z5f| zNU(T103vI_wUx_XRId%jo7|L$zcVRTs4RZ+ZWuh^vj>_V?#es(x$Dieg^EEg`=i>) z_INBdIG73fq=7?9?eu##AD>_OAQ@+qo!$`iBLZ_#KE~+r(a;orqWai8}J{XF?3+o9Kn7o^{+fF8M*mKzSeKCDQVq&qvXW?Ay!Q6GT>;8f+YEUN$8Cun#*5P(i zC;#~~S8{i<1TWo;1d_rm({Kd7&+oNJzfREMxK zM`_3zBJ|OJ!q!A&6v_d|pBIoQa)lL8C@^yw65fctO*apuEpJK$6cNM4PdgY^!U~k0 z=Gu*I?Ba`pt(TE?DBK;jkMNanM&W5F#h;~+q3bu2*s8I$S~Mt z&Es*l3vxp2Jmszw;Av}>2ded%DPhUKG4~qk&@V%1C`D3q(gr|gug8`57x}S1a1b0PD@rnD74&o)mcPH2Ni}a?q|N>kZSiC> z^d#8MHgAs6jh@4;_gZG0YTq2gGVlY&&I>d*uu{yS6N!BS#{Do)2gT)~6}?m``2IY9 zcjB0Q8WF>6cFF)b1n>`c09p?+(T(0}L~>H=WeJ75Le{cgQZ4!bKjM+X;D58-{%b&p zKb7HDBo4H~SgCfwkP$WQNh+t4rRY5G0OI9F9Z=p6XQ0!VOX4b*zA+{jhfCfWJMB*4 zpNh{b-t^nSRWV#k->`-T_%k)hv-m@|Ph?VfyMsO`G(Zv3o%y1H2Ww!Vo;7S_*B+<< zX-H0E6=9uFKJ*fRgq+vZT{f) zuLh0C zA1)dQ1>Wm&=BDvmPRM{uc@IN*J^=E{Ef&uXL@6%M4Ol`ehuzU3rD7ohM0ZFqrk)f9 zWs4*6uB!p4wBu7O2g#DU{L7O+a~IOJ8HSmfkNt;wVdEFO?} zO0rO`HE(8z-<(9>mx4iRkrq$*r|23Kr>)U$TiJJ9#~nH|dD4yQ1});q<=i?^3u`)v z`??6NT#lt6%{nar%s+6GQzbVC|I=E-znlTELHFxOD5V#)}-CX4yb>$xBzZT z3;ryTr>I8xBDQuwdBy}xN8NBAr})jN_waL3JC#rcaTdk{^U^mk7ADt)X^+&(oXz(| zr)tPWMS~%-97{IKWc+>0V@JWCyj%jdys5HE=|O~%3+4ta@PUoD26hl{fpb!TZ2$Ab zh16%gIVO5-Q2)h{oWySLWsvqPIUAQAix$>my?(JLTtZ4*h|JAlUTC&2M(Z3pn)h3B zh-mprTK6*4WTS7a#mM@nn6V`@o9JD<6#%cC=zW%t}V zJ`e4i?kk-LDtKdUJmj!oFNsSNtK5dKS_jm7S{x8;8(Tm&rbZV#Y}Fgo)c|MYvrC0b zLXGWihozBQOoDai&X0*w{w<-58r~?E>~4boU`B%r31i77+fdsBs_EMC#*o@7hn}H6 zXhO87i4YNd;=`)tkv)j0BeU6q)xVKQF@Jx*p-5-S;<2X+xzwA=pM(E8Jz%|e8Jx!L zI8nh6VIuMqtAjD^!Au>Wla;ZgBfNmSYq>|eAk{kki8|MinpkZYf#|q>uh4$1jzOFK zEG^tU>ZfGMzLeX~;SRel%%X%f+pQ_0orG5{Ld^~3jMSaN9alkiw2fsQH+HE3-^ukm z%TJVACcdsuZIkbR5jLdk{SvAVyZf#&l>ec@ouT+MLmL zjF*9l-m0ExBFVvdccEiY^T?J;yQ%uSlx~XY+AG#-xhb>m#ZArX~Y+d$KDu_=F6*wm;2 zWPw`mc6UmCySN25B(Voyif?sR|5I1l<%~TY_ZJr8V27`jV7H3jAr>AtJUW&Rr>JKh zr6)KFXQjtq{^Mn|rF>ZF(K{V$(oqtzt9Ko8{pe=w(S^o@kWEEx?aI`j=2wq>KC38P z|IcpP&4LZH)A(oYeWzF=i3=miG9K$@-xuZNFZs6!)=j5z$1zda9C=ENxfQ0?7t~S& z28WfHhCu*gylmfkQNc~;c?!ahEbvc!LnZsfDPSl^FRAZLSo96*8@cBvv55W z>mF*Sb;jO}h?x+~S>z+^psdI3;sxd+oa2?m^%=hHOr{gzP3wC2 z(Nra&W(~cja=O@`jn~f&e~&WfZWBMTz`(KY zKXrLwMX(&4bG94O8~CNCTx>LSg>uPF30$6lkwc+jV>ju|UI{l!`((S;mvil-A=mNq z+^vcoRnyP`5{9ASHj?&Y%uuq46!$;&)L1%8wb3S$gGqAO*YFnm+bN)&4|rp^2N89vuCX@HVMQ_gJi27CI2AE6i!dDVLRQG$b z{fLdI{?zhgLUQn7lWoRr9nU-Ch2%Y{WA2-o8sl~MK{wzQ1bw9Ia<}DJ3~6gr!BuLB z#PLkCA@%#U0;rbkfu`NkskFwe#%oGSYGVD81XY{mr=<9LGwu6SXPxdLz2lwRA9Et$ zt`icIp(dkxy4%5~n1S{TrH1++rV|}!YPi7KE)PRC;GfR?lGG__i8&~RX7gtNV_eC{ zX*BowN88Il7$ok~r2i83&)O`bhjsMNE)j{m%T%KBn@RoMKC>t4&^Fz{1_p#b%Em?s zFUe4$0Ajng;j9&LdvKfT(joL(I?*zZ6%fapo9=gk8qh{hG~L0~>COg%&IZ{8DTxBx zpw&;XNSn~OpYmJbaem)P165mzZc@a==uRQg$j0x1fmUpWWFchD=OE&$tg`R%oo*%n^1p>BXzQz_n_2s&g!RwRCzCKd6n1pZ zmJ4HB%yO`Wyl_48k`|ph0%YB-o##n*T?E6=FN+5|yx2vBuqOvbV-Apm89Kvj_|-p* zR?VZGi&$C&TC&CV8HT!d@J1p>frM26j~ZYeG&p|v{=jHU_S}n+vu>wYU=b54@=MTVfC`&32%LLxjO?juyV1k&1eGT@Z)(bK9wp&2Tfknb7(1BB(ACF zeM-NPO?U~6! zM~SuAeE|Oae&>n5>3tvf_HSXwFNiw({DVmCFZ7hiqwd2_GmwCAFe%9e92|=N0rbg- z$~f*#rt!nen~*uCKq!z$M%1~z(3ds=*z$xBPSkD=%HE2`U|5;VlW_lOC(dUl=op59 zRxp({TAB8?YC3AP+N3GsJ1}X$4HGpy`uN%)aEGn5z9WR{9<%D-KFs`8`oF#0kr3$_ z47(v@@7)9O9`47TADtw-gfc!yijtZV^yVx2@Cax(Ebo}A)5YSAM+)c0ojoJtNpzO6F|d z!xj;8uNVW`1Oh>hN|lkp1Fr3MdpSw`d4Pj8h z@~`qXO8yba%KK_TOiBgi^vHffMd z_Z+}fy$cRaMraEvrhFpj4LTm0&<;gx@-(QAO;+E~{5X!3Zuh+(pt7*Y#gDWVNRo#* z>SmWqSha^SEOF5>r6HHWMht$Y*il~sG{!9ws;lc9w~@z4H-TTl$yVX!boNfbLpjIrVN((6E;F@=43(4 z_5RDB>5c#c$MokqohjZ%;LjW5q_;B;v)vr&yPd~uh%Vd44?FAe>|Jke6eJJ#8b2%$ z%)SUmw4G{SDcCfadat^3o~-y=&f_w)m?N8?j1ww%(E*n_;4UD?-e^8~gVa7wdll(P zSI2J3pR~==A&{q8J?2zU-SLjZ418W4tw9DB3~2*isg40xTwoj5*U3E zEne5(HC2W4@@}MNh~xA4SYSi`$?VA#WdUFQ@$e#UXlxhSKvWqjr{XrtKdK{vgZWTArN{_9NA+zRmLpH=0#N&;n_22Zq z?>N}3ISU+luNlkuuqv}c@3E1}m+6~Yy z9lG`b1jXe>4tz;Di#r@GpXZYr`>!wgNLZ!cb8kl-E==@|KaRuV&Hm`+PmORfCNSZD zmR*bQ!4*jY1j-E+No@Aet0zHvZI^>=^dIN$7&%j^Mh-Vv#JO67rAfoi$9s{>=4wo> zzAim&Q^MUmn5^*H=A4d0Mxetv{@21t;;qkEQ>EXBM8t^4{zSHs8Kd8(cs3T3=G}Ro_0Y7SsC=WgF3D;Z-(N(2GlAx9xF~qOoNvBY9}`JasI!aV z4fRvv>uBOGSH46u)iaHIrTaTcq~e*$rnx1kV?9ux0CfUaw&3!nSbLDXDk>zjSOX`O zp#daz{gHCw;(4ACG}}Gbs1U9|r4;nD%xB%e?SM_tdV9rY`l7#Cy;-KL#ij%`pb4c} zM%tG!>3Sdkd?0XSe=Z^2PKk47(E2dkYc9W$E*_hqMIOIu;JzcmzPe5G(S%NiAm*EI5@rC0t@|}i8B;7Orpy5Ez0wbc!?t%W zTaR}L?5@*KTfONz%1`SS3f`}w{iWspQAccjIx{o>cQ4qqv#TiDk&L$DOXGHr=q%m7 z*QEIEhn+3hzqL)K8dE!zM}@$$98595^c*v~(ycgb;{IJy(iX#++CnBvu8DH;sbF@s zn^ZBgM0QxM>6SARKTC#18wI4H~#_ySEG~4m$wfsVL}nxV6_>?CsNa(oheC zYwpbM0+EZXw@1>aM1KCJLo7Loq7gl zkl|h?DQ|&drJ=R>W5uuEdnTLQNGZLJx;2H$<*LQzFGEUgE-z-UH8Ub4TJWH=^|~G! z(u`RD3zHnZ7wx!YzF~}5Q|P%mxu;5@B;B~@GcRti)TT>Vy%SiZ=29nd`?+x^XoAZb zECJvOY)7g{h9i`_jGNWpht1twf|!vOp>m0d#-et+23KM}ax@UL0$!(aH*hjuJH)D_ zJKXyKA~xSU2`y_^k+wxs#_fGvh5B~?U(|K4^g^SagD&Mi%3aoL$}cs%Wn7sH4XPvyHd&Je2tl|o@n0v&viGP4sq+8A-VNz!MgkR z+#^{cd%6M7uWS0TOCvj~_Ta&oyLD<5_xhufq=7qOB6NXB*&WNOZ#W^suJ1KKD98Vo zf;9*yP5TMmlhID)Bm(@K>J)(zxA(lJwN1+oxpAUBv3yGp28#K+ zMC8_GFbRE9(3F^;G662Y(wea0Wf0y$^996qG};28R(Bo!kS`_Lymd)yzY6XUJ4B@> zzW70C72kHQEg3t7fNIN3?Cw?!7U)Sz%7PuQpP%wt85&(ft&U56@daCt6ccjplLEea zV1g#%{OZJj;ut{bW{VRt?D|V;Yt?$kLlcX+*(rp$#+b^xAj36)ig{6~N8WqTBEu>Sp+9#bVT` zUn@q%VyPdKFHYa?$p&LAY*_p}6>(e1`dEliT3aErZh=-3m?RP{w<hLkM~Z4CNMt{KO* zt^`Bn4?3F((Y_8SmS{QGeU=YBN*Gk@;0o$^au()(>4BeAB)aYkwiyEA`3*3a^=NQO$j{qd=**Uc33 z-+Z~TM*#jQX6sBW^FP;P>i>fQNiu zG9o=u*9Zr-c2M^e^n#-_vRt1QYN<0*G2N31jlx1ZsF^g_X=P|yh!$QaN6;(|D+7;D z(OCFAW#Q&g0?L1a=YzX|{l(!gbg<2ihoZHqAnbSQ>t&+;P@S;P)Si7H|3fC|B*)=e z=!4w0L6&hm6$_ROTcq)!<@?3D0jxEJc3-qWi+fwWWig^*Sg6tKtl{V0l(aZ}0<9Krc_B+Khf*aaZ>W^lz@0Y_|7&{)UTHwshV! zIL43;l~hk)c{B9d!Jjj7SY7g8xd%bQ8MT9S^mu{0>=&h(tAwpV$XRE|LAEm>$n2Gx6D9KPl@PqvTbe@$ zxK?xEh`(~58aa(TEZSjG0dk*~rA_5I+D^%26JaVVql_X)DeF@hSRs6G1r0~`Mtp>k z9Ki-_AGb<`2gVMj(V*R*7B9fLONM$%LPO?EJC8vMH#{kC+((+c_$ zKmYBphR?5UTTA^^#HDcH6R6sBe-|$4TZwiK%A@r>znaD{ZeZSK6eD=+t}7;8yZzg* z2pBm%#t|?QGESkbNk{TKk2(tU>$OumEOqBNll5M8x?_7y-b8id%LE>x5C)Qt zprnglp|oPVnk``5)P%_@;B0>S1DEH~adNvQYw?MZ59vY? znALYJ$$qH%l)GoCHx@D<*Hq?~F>OeU-}1_n2)r!x5v8kXKkHcVNNZWT+hgyYaR>p@ zTr=8oaTRW5&&J@ym~w#;T^@Fy6)8T8$Rg4lTWHYLD7*3M?uDq2_A7MDt;K4<^ zl}_o?P-n-jPEH@nIJ>gUim6St*xDX-UBg1w77O*wMl*+!tp&m_6L{aW_W|$eO9654 zQio$fTDaXd9Lg+4$kUBBrhLJMy`w~Jw_b8*>UDNV;3=xqK>zgGpAa*Ro1LgwGvHGs z1(OUH;|;t3-BERbT~?jYh*cd2(&E&{y?`(JYIh73SHWSEdL*fn(w{I!`f{`IkC@hg zr1f7MRB`HxC!0{7$=~dpGJs_RE3@McRcNWc=ZqRZc5Jy_ncwp3Iv;jsm_B0|8vPO zQq6Y-UY20yx+{CFiQgh2gy*5jeP6`c?`vF$7$rlD~ zbPSRu?A556GFIta&e>JL4ydNsG$ZAzQeImuITz*M%caQgSYB`b)ew-+XK~bq#mY}K z+y@gif)5xLbogdX=`!wESS!wdFq|GE&_&53fe8Ug<*%V6S15(1af=% z0d7?_8>Z|Jj|}gX`5QYwkCU9TIgbo4O(@FzDH?wm7EJDKzaa|>6FPf^GFh3YwsBJF zU~iCDE5}9W@=w55ZCj>{$AS^|tCD@GwOa!^&6!g4nAq*gm@x00Wb1X08d=uR#g}wG zrTcvq^N;iz`~pJ0BgBljChH~@B_g3|pQCb(e$1d6VWf^w2kKzh3`i&S7}0Bw@$g`x zyH!B6AdK`DX{ipR_>WRU`cUQ1C{E#uL2Go6rQc^6LGC|}r+ZX(VH~`i);nacG^oYJc!UvCmMVIc0^nTJJPyWe=XQr%j(Rh^Pl?Xg z2kPc5%UV{WB{Kwv@fJ=t1i5Zbtsm5*~mN2 z;*i-NgHQfh_KPV^AQN;UA;Uv%XQUGBx}Eb5Utr$V#CBB?U^h=r{&tGG2$( zXFfKgLF(9SYWj5jWry}>8%(LSU1h(rj;~i0Qa%f=F-AC;*5KW(-jlr?$l!2`A=_A- zji)<;tWYir5$>qy-=Ijc)gkXUqkP2S0dFc$V~|<0i~{5wWQjG|>G$dV++OXb+0QSK z`N8_F{FIwzB@0bPT>qlFbffXq5nFkB@{cIXyptK2WE4#1G-y$sp5=B%v0@)0`U={Y zHI+HqNc=w&Q|Fv3OF|G<@FKeqZO^{vZWT=|kYCT=*$;`GDEp`m$z3LHxASPBuA1cD z=9BD1DUuz8wM&**Be}Q*uTUo6n)NKd9Y@!;L=7>OgCLlDm;H9+K*A5mN%94>_=nAH~8YdG5pGUTHmlB|{IbLeZjDZ2?u1=TW+v@8``D1=1DUWM16#&fY8s)e5Bp zOt)HyOxrfBSE+Lw&EgdG1Q~D7veGhVGj9?~YClDr2J_Pr<3Hp^j+PdI>qG)(JXbd& zXW)1@EWBap>ZmSYB|+vsMKEbB2#{R3?9V`Z51k%OC&f?x@5l`BA)SoKF^Ynlwy1R5 z?LhkH3Q@m83s_xUbx8og;qG%s6t!Zw*EMVm&OF|nm1}}vuJOTZwnR2P%U>@v%G@=J z)BNoE{2IZ~AFl>uNRCR@tR>?=2?YGW+p%(7tiV^WrfJXwx%G#G6pssA5K8!G4nPgt z1JfM$GXn@6K(Dh$2JbBeq)Tw#H3!+4ZPLN9`N$N1=xu@K+@M|xGD@!P-{U>OoW=bV z+hm^x9WKQh-fIAxjn25IEQGMycx{Je9ljjwfJ98qm!8FKQ}J=UE@&LDmXkv^mOv{Qm@ppP-z?C!6{6; zS`pW+*B1jb-XJ-6)1k}Nbm*@KT;nr3 zNq)XIrgHSmM1jsjL5nTm&NQ~(otAO*cGWnH5&B%uEHq_CIXo=xyf|8!125nGbK%yK zS=FROL1dZwTCSaaIPt}vGL^;z5I08Ya@6aQiNYVB8Q&o8ZoS;~;AuO92*>^g0h#Li zy2ucE;5(|#G6_&2Y$5u&5H7Qcn9yt6Vt+Xk6_?8;sPgrqyMqmft&l^L8G@BCE6Dsa@j-<{2WUcaM`Yo zHDJpr{-~UdyHCymRIj#cWA@Pxy+4<4D5f?gdRIm5m!G--%G1@~R5DD=Ftky1iR&7Q zurM&w{Aa?w&}b&KK9qbbqgT>iI%#Q@c{t~J)52OX6iwRNxet1D*m7Yts9>o(pN5RU z{-vXVa}MT;;bL9Qc`De;uq$rnba#2L(aLU;?a$C#g$9}DRoo)Ugr+Ful+W9xuKYb` z?nv>2ahf3`kF?SKIndbr8;PU3dZ8JwxGMPQ2`;U{RC10Z;$#i1M1FL#Lu9v`>{o@p z)Gr0M^50r|HK|lfNrdDV9NTbZ+6GfQ~L?}fkukU`5iLYaXw5^sIp>mjoj?_BYG&76h3W;DRI=qMx#e` zm{zo6iu2Rf6|bmx0?;RdU>G260Js;e7i`M!9F zp%ezjwf7w8T`Fo6r>#`BgXe04gQ=1ff6ai3VH)jU&^@%4K?#_b9EEwu*)dJqpC1t- z0KOZ9_PsXFw?ZD6KQJsU@4z+4FAl7I!Oge(AR2NAX@>l&_=TrT(56h+PS%YoBNQ1~ zP8UFzb1T5)f1ypp4d#+!VOX|3KsEJm0KeWOa!RcPd;ZjNcw(m!32dDoh%-U#s515N zK0iD>ZSBB~C2C{{o~U2;>xUjXQ$J~{Z1K)-jNuNYk^khiP3_#IU_1@BPXX`O$_ZH} z85Ux9WZXCg38(~$<3tyI(PzQb>LyXZ<=4Y1ef`GyRjc(|$`|dvL8v(=5iz_EXz`kT z7sD~p)-R+ejVijx1Ks6sbqYs}qm-l_o^L*dDGw;lvJ%jEIi?y!ny#8?$bM{|v^0@u`9U z-GRM%r`m|FLteP>EXUjj1qzUDA?|$1l(9B+u6yi1>dhx>ZBpjXtz-b^hpR1&e=55k z951s+$-fV_E@a^TLenKLVST@MwzCk^Ng37oNcMi`Ap|Ed#z2Ov=n+YGow@rNhQnmbqG`YA)OtC?{-HXf9M+@E=`lV_>omtNDZwa@vxt5 zN*Sr{)&3Xii#d8@J;P7N-J_Cb3@`SvdTsLdtjdo(syM9OZBTSRyFV(9Vaw_ytn zZiR$AO0sLqXL4*FJOcp=Kjwx>xV|n7>e1n_A!aev9Ba^nz=t_1U^3sX;45am<3t|E=TSC%fV)hS_uIn4ILpI&25bb8 ztCgiK|9zfGyNQu&b^es+uFaWnL;2sEoNJ_cgb`U+nB%7bf`V(M|JgFa>pBbN53W3> zRu!(kq6R)(dZm{7zE*?bBJp#f=DgW*LU4jc-D#*&+;1)tAZBo1(WkcOe=ZH>a~DZL z+!6d-d(3GQ<{!jH-0#7;h&&@=lGTU%kbUm0NL|$_d24E#UIU$AaIR_^uxb;Tl@3RT z;=Q5&5!iR>r?CIeS#iftUXh-yP0iku+&+O3@1$Qax=u`64$b1;_TeFAPPR-HEt*Wo zW(a=n)c+1oaPF3f0{`8K5)pqu z4f?I?uyAj$I0RS)OT_eGJ`L9S29U|O0HWy9ft-00>|nD1Imso?gMS`m3P|7?=-l!t z)V|abf=@vhlCD8#iCL;b<&3TC9id>ch}yLOOvww?6I9 zlYI_*NEaaaz5syBp4GQs4~c`tw*)(SPe&jcwzmPFI7AqQkr%)N%r~4`L0p6pS!@c> ziff|=t9}P>4~y^@9HM)8lE})6RS+e(2Z3cm`rpRed^TIA@jcJE0)IFUq7`-@i2R{# zH-yp@vOsEr*2%h%*3+N9`TsN#(2IoTmYCyE>2q7F^aCQ%y3blOL0H@O^#B(8UQ&uy zAo5=DGB_lsv4^@v*FMV3LwtJ(yuX1ZXymyZl1MC-^?r+`9ak6l7g`_FQXa~w1^Dsn zi0eLc140J3|AYO1yNxbtStSslzT6=UISbmwfxD>1xL7qCSM@Y`9Yp~hzL+l2!2p|1m?mvB~1OO{k3bK z6feyIZJ}TLi_%ez?yJ;-?~Z;~`dR2-(Z+IQpQ))i9+T6_+N!d%*UgyuJ~u7>^!{vb zH)|8j4H!R+*8Sc2HJ-$R2Nv`C&ESV;PeY^D7~enGs@3+1}# zHW|BXD68C)?iVw$1ZcF|p9_JC&2O(rp?jQ8h)WAUYRwo7GZ$l5ZGHi{n76p_62!Sk zpgVu0^Vr1R(fcvNYzGvv}ZivJ}H5I`vp;UF4d3ez>iY4)hQ8izfez#Bc540yx+8Q3W6Rx z>S|a36P3|RE0TLOe#k0qp&dYccUbZ{vxkK}BMVjh=1WUcXcBA(@~b7dC^y5quHrcM z04(>w+7~cvuaITzCJ0H8Kd4tq!p>32fE#n9`T}G!{CfCZ7+zUv^lx`%HahM=g!3xR z--!d20{0uYd0Fk$5jK7(oNpW_dH7BNJOy1!=pH})MFXg>hk9QU{v>FtG6^4u`woF~ zxUyIOWI1m5fBjus^jYzquovSz{bMx z1XJ*Z^5(s*BIY}hKNf+8?4O;?FRpQ~X}e{tL+YdD7McckWej&n2MB^djOWNRaO|rM zcZymJrwi|ah0vL`Dha-0hyPs;P=prr=;*B+lrszgIRrvk?65o0gMPfFa+uZ_o?Q42 zNY~CQfe&1a-xwUlk(o9{qoE2m;9|@*)a9-ufdda62o;-$K)1#~TlV(G@8&p5e~R_@ z{(X{qO(7~>I6?7;NOPKY2=v@rLKIJsXqlSrU`we=GL_BDFqmZXS$$bL{1gu^sSu$1 z?d?U6gBt4rXJ=CYf*Kox9UFfG7He8{0zy#EYcNj>qdFe@UxP)~rH46a*5`q`ZM)0g z<6(a|1m`|!;evZJJIw3A=`GJZ1{f<-j z<2#R@clL=UzfVRB11)U~8kTdL^`VHkPF0F@x_!w>Sfv~9SJ65ktJ+fOVk7&5Gj}fx zsP4|jNpzU*So%s?rj7~)@q@C!gfB)?-Q*_rQwPw^%#--yJqpUYe)`P_s#DrxN-w13 zB;BS6EK@^vNo@(ie?o+ZS)>Z^=S+~V@A~q@74UA7Nc*dpvo%5>5c53fzP7;Fe7VRn zhfgXl!U81`{p~NHofCvvpi=R~ljQRbVEpzmz|j!(ox^+dqIbBA@FKG6~3fKnujNCI0AZOu1;#K#3gg>JdBQGJtAYh zFVQs^oFQ?DXx!w)vhquw7FOuFasvV5{t(DwyRX&{vPG? z*qbkmqn8sn*;|kzH2a5 z&vyU7;z~r1nB*;^ln$>$`>ZmhBD@?-*g^~<9bN?p0jCdA1g*mjbIx)XwKRpBzb7zq zG#wJzhaJ9>1hXk$n&dhYdXSvmjmbO?&beK=Xq-~kn|#$3-R2y#?^WN*`Hk|$fxeJVxE^39^W0`s`NxJ zG(Pa@Qr`!a&WWGMN*boly@%h=eoUdSq}}hCLT626BJua$E~Z$Y13uZ70=gy97~Q3C zM_7q9jdTsh?1C}y>E?bj*Pv0wge<>CjV9X!+&%u*7{Gmhra}8>r*b&3ETJRtAW5TgGVrKn7!|&@Mq%ZGMp!{>yKQ^3>_6S>PcZCsWaLh5k*fOrb2|9C${R%+^p8?_O!BW45<- zAH{O`m3UsPCw>07?-$t!N{VxPd7hl5!o6q0uzTZCKsZ2Cq5AA@tVJ-#3a6~si+|<$ z>(K&5Qb{amMy7dh95Z=X(5yS01WhEyyih5*GBeCPM)`Bw zD#=6dF4edBEaht4*){U?1{B5VVs}GOH86CSmg6;)549d5aTUVNY7&U0c@&hU|9wER zuT5TO8~fb{(%X0dEW08=dfHQgl%ORRL;xRTGQ&>boebKdhL5bd7^6bPaShiAu(Y5qO37XNjKC&GJSv%xN9ira*}iwoJ*` zuQ`+XUVmO}08-O`p$%s#`!!%|dFj&;kEw(JIa7jX5ZsP`N~a5&l$Av0K@nDa*Jn#- z*oh&(+rfA&$)KV1p-yGU1Hs64&3;h%?<4|OvO(Nz&*odXMnei9}(s10alxrAXFY2I~Y$@ zib3gHQ1JkgCYk#nh2S{p<@b{Js8%}I=)M|VW-Jg1P@8iej3A7x1Yb3F1TrT-0dr2; zV{HLuQZPnIp!695)%`;Cfr7Zyp&D*Jm%u(7>iRwVkncpjk$d2cbn?3#&uUS9tqAN0 zZ0)$j4`|EU8=eQkeRN*F$Vswz!WqQx6F9Z zP@01jR#|+dfu=vRpE&>r_unf_AXmOB&*J=uHia`8`038q`<_rBTeRTf zpEEW0;3-1(#lYvN{iy7yJM(tJF$p-7pObXef#X!XES_XyA4-vk?Ghl_BS6|$rGifP z@gYZa0*VqF%m7H{+M;v>RNH}hVlWH^3za10nRAeO;L}-!x?rBkAnvj6ksJSeRrtU} zYQll$yA)U%T?vuY>hz2QHt)PjGts14ZjNu1fQuhWhh;sJpoC%sj~(_ z)B-TFxz0T?=g#pcg??VIbNL-A#DceBvdDBGor4IUuG`!v98zNU%D@80?&V}5Rc%ZH zoPk38yo^QIzl4VQo(@lZHL<=*fbo&eLX5~3^OD5BDYQ9!W5;At>d}u#0dp#>25_Ua z@P~zH7;W9h6aV|MqA0{v`0;<cSa;_?QzlKA4MVa@IArMz*{8v6iOfqGk@f-I+Do8m`p(#rXlo7 zP5ON)4m^bNS17hjE^0?y+k{#4;N5RcYNVCMDXQp149xcaEkZ9!q#t3@Jbfdtc&@-! zHlgk}6_Aa~9u>k9f**~d^}Mb)K5oMjU#pzqA?&qzYd2hHty2KEu%jRWBmkbh>DkhH z;67aW3U(c(e$xN=Ya75b$MCUNG$<*m4Ll9bPbkuPwEa3pA@lwZR+TDbf8*&1?N|Hp z;u^y-W_QD{IqBZEYFW>HuKkavx0=91pbTo^Nzj-{@dMR3lbvjxqPT~{MQ)p))2U*` z-^kRmlHr?N6CdcoVDd?#*?V1O3bDxH1Vud7RIvjT*2$8EH z0)t=fR6gmzqRT9dL$^11XHJFQ|5D^PWe!->d3P+4*gr8ODYOHd6_Qu>(xyLF%6BX; zMp-tr4FRt1uc;8+v*=Kf%Xhse%TZZm^9exlMZ&f@;D1^Om5oY)vC%5z=Von7>9Jxa zk~+#m0A>dbkOS|)G|-28Dq1m_%0l8ENKUO*0mr;z5cg58SbU_bD%TdqM9^*O=aIV@ zl&Xm|L|?T@dbac(fHPS4Wh}j9-9!opg3@C7xexd@TI^A)=SEK@SDYO7toz@B-#Dbyy-EbX zUi0d^g?w{)cUP>ZdwWm37oIa^B0=?*#sl5y*kfJs5#c`JRQD4~@{&$`jArr)t9YB@0O9kVVB|mWLAgc-xl(#3wx9eSpOpe3$ zrs;D>ZxlsVLe}Yxk19QR5*dSClG_t3!NAg2a&TmY06qRQHyiy8qnlPtZ) zpNR`Vod=_EHti;xC9n0TPz4RdfLE@mt3pHj$m0>mbxUA*qFxN?H9ZHHM;cb3JXeDFvSq!}@Z170tz)grIE#YDC!*gb!}2+XyEG zsUNSr7zfpE&KL8L4W-pX>B79$RZ~RGVdmPUEff5{4ufj3LiSbeeP0AQ2btP94`EL6 zY+{AGW~_~2E3Un}RxzFc5q2$oTPoBb#9r3cGQKMCV4Q#?Or!2aL0S6;X*W0Y2b42M zJK7QJqwRjT-9=)dxD*@XOg^ix)NhUZ6mwGjrnRp2_4PGBO3HO}=hBq-n3x=PSosLG zcKpCH*Fzz}L^=mp-(&x2MSr40#m(TJLxHyNK`y$iYg&~tJIOmLZf5ylhbif`oMJx+^#C+0q}#MSp~3 zO)3?%csFL9($O8l@N)sGp6r`+Y;1z;GP^AdYwMz*2O`DAlR@~=-N3)Mo3#qR;yLW= z1yA_Cc3;K9uf3A(-%Ort14xWJ+VYb_>%yOp%B~t=OvszFcE=NJt{3y=;EB3c%on0u z?FC-w=e#K*k()g*fVX~)x7CAbWUv(YdkyO4wc0UPGrYP9b+ctb-_Vt56dnr12#sWu_eDZ2& z?Go=1QF+n2Z@p)HgYf+a55d;hwiJ8=hAh5@p%IatVH`?(c#%Xdl|Ui;pGYszF!VP;r~W!oM8U^h=neN&mAC!x=eXoO@?{^in}7; zkJWHhR;Y*OxFCpqN1$Ww-w+&Ty|Sv_eP|ycld9@)QtO&VV;_E>QB{Hn-}+=EkS~#% znNZ`g>O}C3iA8p_u%mZ5x4o7=_GmGHG|BK&?d#ol1|SQE&EzCjl@eDiea3hkW`jE# zR>5_3v|r~jQ%1mo+-0rB>`9civd?j5(3x8zzCH(R0AD@!NYg9pjhb~^LjHgPA=ZbJ zrmz7H$JSXntnCWEm)c#anf;*mX zmgoc6T-PNJk)RT^;~J*YZ2SlrzLb932Q$#~eMQLqW4fPE1j&uU=s+1tZw%*lRmN6v zwYH%1k=N5TOR8TOLn=(NajHDSKf76QU3-XE z%>kxh=mnQv5h$MGQMxk*H`7*Xe$!a9O)ff2s{YlhNykTi;EFF&A#=gSz;gkd9+~7! z?$#&vnsCPzLyv_?H-MCd9ottotf=m1$wacic^RbVg@^aT#vH(ec!WY zl3sC|CPmK1ZqZC!S22nWMy1p>Dvg8j-$<=2g(|UPeTJHC2+6KyD>6oOKWJ3>#V29o z9F*OmsAjj#>W^6|)nSFxQAkqWUJkc6*A)(+X?Cp#67KiyeBX>v6hlGHHN8(NA+EVQZMjZcqQW) zG@hQfE?3nrin1V)MQuJkE7_fA7;xpcsmA1{MQOvV(qb7_n4;~Nv^}W(dNLOmia#Mt zkann?f8}w~7k&0~XT$R@FnV-F3Y5y}wH{saljj_S=VF*T1Ana1G7+n3DJN`ITcL6N ze&6_FPdTr~xejSC0{=PD*$MLExE18ReM&36Z+7|?<;m5=!$wI_Uf3+sN*MB%`fGpEJYhGX45)gjcaF2Zcrr$4QfW?T`9d zF@Q;9a#%zHw3?-iA5hwWE)U&@Fr=8{6eG+gljSP1yCVQ)A^+uP5CN%k>3*1|KyC{L zV0)krIi`XEO_9Wb!Q1~2zMJe^wqx!;D;s%>W~EU_Pk$);c$D5n*kGC<*DpmT73zG^Bg&x4viK@zw9_nZ6V=pBC{*>7Rh1xrCmy}#x@B1x1 zOza_45gSz($o4k4rE;I?qyouA5|l!MR~kji@AU0!6C~?wr|KPzZ=*p)0zW1i_$&gs zFv~4RGRw9|k_MRFTgQw4F81Z7pR$smTc24@`Iy*eO)gr;H<5BEPx&OhC=t6KyT8vT z$y{`EDpBbbdkI+hThRXDWV1SaL}`wg&F_3M;QYO|dW`yXjMyq7?TW!$nQq&+2a*vu zvY40H#$y~6ue**f>JTk;zwqDAIHM-WrS#OUAw`p6WhMh7TWK^bpRJ=3fmVDoQ!K8} zP0avQ*!*@cgw&|GpV-K|aRHpn30n?;5_Ky9Cl2PiHDXPIEAnYK)%os2QD|9s0F4$~ z2n5vilz4!&HhEaAmY0f-L-v!E5(JdB6)v`V)t{$z`R&a&mW?^Z%#0xIv%JASk#X<# zz@WC>Ds#L@#h96L#chMxbw;ZJ8smDy1)j?3TRcmx90Y4eYjRJpUDGxX->~>#%G1(nwX=i}8mPbbcQth`f$yERCU{sxU)vPRD8Mg;B}DWR^P&W)5RB?*HMb`Z-!0<5DbT(38tLN^DxxMRZ9jb$(DF$*t9$eZ<`D%VL%y5h`@27M@^P+VhAFiwD0;*3fGjZ%RXxs~Hz)nfa> za896tvE6JWK(4+vmEPdEzNDX3*T0Ad9sNP_^GYnr;aXut8#g;j>8%3 zg+fP7y2z^|mR_e>F+5VzUMVvj?_l-fiDY?20lmZ_CL+CuHXZ5d-r%_UK3nRW zt84kW#A8ayeh2FkY~Ory#S0-k*i2QAh3z3b&1jXC3Ksfxp*lDY34r&_ZD`{giHLOh zPr8>eHh31ejo{J$sdYB1`DczxNQ{X~e5^DE`!8GE^|#bzoh`R9QdI&pf({1N)2}?s z#+aEZUJ?%;m&PmXp?Kb0AU?Nl2v7VA*VIfmLwJET^{3XOqtZ}??OTwN&FD2elqo(( z9GtvXY=3`Xw0OViyp=>9{LbGxQ>oB8=eT}&ccPKjv;>U^BPjQArYdL`!HKi_ZxuiN z`_2k6DznFO2d^`Qbm!lG@)|n7Dq#0YU&G0tiN(f8 z3gl3>R0tK`lpfzr&vIEANo9w)Tzx06gRM0F8%sn4NHr{28Jd3OVlfTYhmY>kaq%kR zQsq64Dh&3GYUuVYFc5p+-6&KM{WCwKIiAgJSf7fw=}qC}8bv5igsk@#;pM7jp4uTM z3%#UsBg@xlk&r_n<3H1wF_+!zPutC=DQ@wbwG!q5&hkDVmA2hiE*ojCWzf6wRFwtVR2>DHoh78b7a zW~Vw?pD{S5~o7$8yX4Q(Rda zgY)wx-F{_|rLXfNA;FtEjwu4{`ym6;+BR53fU{+{pUKN}vlfdS_ zYPNRnJs+l$7KUHZs(AH&n4G38Q4JlCLP%aXJ8yFr;`6^_ibQ+bA^ z?(@ZE@?%aD?0F{2F#GSdIUE7UA@=su4_3Ixep_CV;O$Uje;5y&`DP!1Qr_6p`wND% zqH{CR+mC086yi7p+Bm5zr&r`h9H$ZwcVkb1+kC*06+}v?djR8xN0ae5@OzUEaxQrv zE4590P>~=%6ih(gL@m`EM%EuB`RL9#Za2B_ZYfEA^X=2-Jl(DnYi}A*6hE?K+YyXN zo}1l29%DvaCiD}2)-B%!Xm;ZxiDHoYC8}EL0GoS?w=Ti;LawpBQ4YQ&qIHbjYSVB0 zQkb>Xecc~+4NZGNkj;Qrdw%H#`Q&kMu|j;1!Y{;J%%`H%>wA zebD)&2KGMS+Qj)xyVs5<5r?}V0m z-r^vi$=|YSYtNO|zf(Bw z6slwyoj9_lL}>mfvImMQka#VdHyXzdNE$$IUHHk-Of1!rL`Xm(wg{o9@0D;%A zsr3xgAZ>=Oq)CF5QGQob54#O*9csr>fYZvdP|UHwk67-05;)IIe$n9C-L=lD3_M#5 z_z#S)(Uk_>wLaPDhgIt`)N3Keb{BLa=+SRFKdycLKmz+mW5JhZSBG>^lF}o^5;4!o z1?TK|J;40?+=(5{DQb%g=udo~bqCV!c2##^Vd>oYq-H!ujC!brodUHau@5LLGhu~G z5Ak~8A9X94SuMiL428bm0uQC@KX+qywsO39@N>HRc?MBfVf5pmwzICaV$%|%my3B7 zlR98OMIE2gpabY1PwZh}v~k5fTJ;B1Al1_iRuQrp9byikXDA1xqKq*<(t z8nEvV;ErFsCcyUL z?p;#ek_`9Rz6_wdF=`H*3btp_v9bU=Jl}2}_qVM4mcx|oW&Bo8cs`Kx+r)F#r#w|7 zz3R0udo}~A%!St9Bafe2<%0)C3&{{0e%NWA9aFkf;52jCErx(9O$pYm0R+kR|#IK>BRF+e}7|K%&x%%a`E>ySu)+MfZ&sf7cXnkZSQYQUZY4j8o5XKZ|RfB!T1UeDE z;DXy{ZIL^-s&yO)aj-Z>I^*oVxov%JDwWbFsQEM7>37yJkLiL=^W$_vbe-qFRVZ>y zOqK5UN8XeF-wWayJ+D#P9 z@qD@aQo?ZKIn9W&cTS)>f#py$+{FSfW5?WHip&6js@tNf4rmBjNp-^LYP5<&!M*(* z@iN6qJN_ZCRu}=twT|Y&;M@dfd@eJJvp@zG1B*tMYUM)=>?e!j`KB~s_mZ60>xG6N zZyTg{9d&0p9X(z$yLeV|bhkJ7+fVij^Iy+}ZaS(soYD$qAJD1vzjf|9wn%85xnODE zCCqZmXQE*)vg6SbVB@-Q^8Ky%(?N^z_}hE3bLZ&r$Zsyh^lgl~zN+lEX6qP7`K@+$ zP5T{wYMsX=dROnYaJ_Jy72(^H!sUSsLL<9e+ks;!r%cTv_t ziD-?n{#cPPvZB}g+j5%mG_S2^mOe&>a%Bb6JW_J5)Rlz3+*~W|VTF!xfYVWx7b@m} z7jE_pFIZ<~VEJn3&hWhh_90sBq!AFOr1knTkamd=2wc|wcwxbPG@f-R#Z=QNYqbE& z$9Z)X?wQPBtk?{mFc5i=9$~YPEH-=W7Xoq1#dXcoPg6+HZ%JgSG;n-}E|wNh74j)% zNr)d_Q_l_$+dE0D^aih23IW*=Kyi7WI~kMG%@T$vn~houMgmjrx`Otu*EfR~F_fDl zmNAxNr?3~Wu+Zfe6wkyiq4N;uu|+D?9fKa^_~Pn|%%dJetw*)+qP1yi%~?vP2SX{B zbJuFaPRo@-hNPS6`=bqtPxW>@HA=}-l(1je6ht}xrxFG$%W zmp+xcKPlBr3qusJTX)+N73LT?dseyPx9g-tF332OU)6>BZWJqeQci!&OBF2IF1t^7&q_BCx>J^c-fUJc`n$x8H_62$_$2+m>20mL4*VzHgD^;pPVTChtqrXvN z6oX<2VBf$JTvX848|PP%xy?)%P>wih5G7}4YQ5MZxjdxf)y5e}^VFp=-VP6Yw=9!1 zl{t0)-ZnnSZV9$haeIO$!!9)ew`i68B1~#+?ul`<_%hPCY_-*5e+GXMF~P;5q~BOt z9ilqSPKT+@&K{e$FkbFF#s5;&xXL|0rl(&=p@E$w6LiMsN+?(513vp><@c9P8+K`x z)3@j3A`mY)s@vuUBKH0N*vQUC@#P@EvQ;e^X zGH8Avn3-leHMc06Hy@IVco~xM*wPb;;N2KkCFhm_PG8A5I=3OpO)|cW2#H;dH@6R) zx6nW7t{+dI9$tKk6G{A=g#bu`gNA=sL$J_>Xm*CC*Mz#)ERH0mk=B+u9kA*p@WxQy zy1uex_FlU-i_&VB#waV8Pu^0?JV08j8k3m4(UYAbCr&=8lCsFjTi(6|3#hC2I-{AA=N@w876#vTOU#iYx z8m!8)+UQ`h_RNN3nBRS8Ch?4VUuN;yNied@<8!MmML>fcoxSdGp#S($nN_5%x(a+h z&j+z}fqeI5r7h${m^|ZvYSL(b>EO{$@ro;~}Dg5^d4fpB#m) z6?!;Gj9%&pTi80?8@E){{mh1vrM}}8v$RB?QkeI;qFDlN0l$s zbe{o&@Q&4#Of(-oMbs;@;2die6ng)~;SUo3~$_hhDm#$l_}{>;1Lo>nqhE!Rt>leZI0fd*fMo zT-Ei&v_vbEzbrv2CS*C{EX~$bx)`2E=Pi9CDIzJ?vMA@vvf2N@M_NY}>{I^2eOdGi z$0Ex{eI zdeYnvwa>FJLh!buqpgTVl=$^4)xw7rS~5zl;)1kAx`qdKwxHtPt|BR#-;?aOTl z7m>)>KXM6u>CUmJ;Y~cRNr!*p>G#J`?YrHH_Bv*jR*u4X-{La}>T8aZ0vnLzLMp$c znVFJbKO%AWcI?=S3NZ-J2=X-WU>`asBv^`alAWDR-ljHQEwzPTSAh)x*P2|j<@(4w zHZ9+=G4!e)bc-dB7DDpHm`C1qJwdzfQleVwiJy3Xpo>n*k;(MavcZDiDe$LNnhVy= zX8TcIop;$;TX`JkDia{r#h3Mn^RR<|dH(+VfiXpJQ_B=i6ar%1_RS6p;la?L5;83GoI$*_}qG5cQ$Zme-v z%zqGKR4OR{zqlm|z%{?9=Z^?KI|6e0l~`jS^?dRIu(!~Hh;W`ub$0XyDl<@J0SVnj zq^JP*MH$A_qe4PBEJ7(3UwSQ%o`p=OXI`Y;O%EpbGX)Ot2w<)=*t`ZNf{p}2=J?FX z@SY{tYLS+nVT%l#>^!9~7l<-LW}2KR>%yc%@DS0&LOfMtxkT2} z`7`fW6aDlqWL|Nv-F!QJ8uH=3d5%-!yR5LaMuAssH3G7Sgse}h%L@n+FMiO+4!*-H zAlTsbMV=ds@W$I{>KC_=fPizXRYq$q51HRjvax_hq25J~;+Npw0yTabF*fgV<9RGB+)|nr}Nhwp! z{XpMF3zj1Be&UIN0-ZE>t(j<#le7D2T!?0d#LbmNou;pnM!?Fy7Z##r-i+** zbY9Tb8+x}pweXIu0RrRc+Z@s~P%Ga4;HV#rH5jq*HE5M2H&p6)^D9J<<+~v{} ziF&ML;3^Mj$vWRC>S87%`;djawA@QLYjYVdl-MhbZlA}FX8XIfJw?v_13R3J2vyd6 zubFqAqjx`%lK05ry`7i?4{N%{8^-f9Fd@PO_2TEs56Lidk zd{_^&LYA|RL4W63(Q*_)A?E4y>o$Yw8n}|L+Yh0e5{S-jQf@((O*1eYGy=S4eyJY< z+}r8GWjAtJMG_tDJ4L{F1+kO?6r6NlyEL5#$#h#%lzDUo@sO7`LTXHQ<;8{ewe;;@ zPqm+nZ#fcS4+LJ0B=h7=w%_i9?Uvud*{m&BJy>_aB>QgxR=1Yb(MXbh*Pv&GG{_dx z*4D(ww)93lTGayX?ZoZm4a@umY&vTTG~{?@r1~^(+YS0n!lDM9^UeCaalvdZ+2Oke zu>V53Qb|VY?vkkYT~mCTOw?*W@D*Tf#Zw@tSDf|9boVQ~crXFyag-tYr_`CW$@8aj|n&})6CtjYe z*J7Gu5))`4*jhMr+m7ujN?Xrw0N*1`-=g*I2Nmn18tbyzRdst?eX z&VGr4fZ9G`3tLuE)Z(+)l+MBgPhuo*JhKo`a1u1i4=DuSp#s zz*ZqRPjh?Tn|J`GT343-?;+cp!)qfV*#e|h-kf9m!hTVPE!bsZug6V2SiWd11eQFf z0e*;4wLMm#sOS}B*gNA0RH-Rv_oSVx+@A#`oES)Xio;@ds9!bTV0x~Dt0rOIn3)2O z@CGZ?A9j)K&*e(Cowm#B>uT^uR-iR(0=o6?3vVydc-LF?GnY&ih(wLJ-tiTnYx{IX ztJJ6Z#qjM&X6sKM3BMcUm;GO*+p^cn!s|p!8}Vt?AHycU&O7SqtCa@^ctyGo1zvIO z`ixB(ICY|xD9{nD8Z5nF&ij)r->Hg%)`e2xy+Zx|MB{7}92={Gnd@>O7lwxKC@>^= z^&^A}y}q7oZ!%@_U9zfBX`L4L+b65v7xri@sW;q7H1=6Y9CeBDI$0Xt&oj|MST;97 zSVl)BI#aAr7|qRsIDno>(EL6hDxyBP@~NX#AN?b8lInSKxcJ6z)$m0F1mc==$k=m; zjgGXPVzbYp@NEv7bF05~qu7~21_-P)nchD-qOWh<#S`vQB6m&I2OP-x9qp{6aa`Z( zn-M*BYJBAF`(B2Szu#Jqj0czB_bY^0AK4H}A67 zD^-BoKCIg$r?6j5ko8aKn!2Jvv>6^0j3kM;WC$Ywn$7Bi+$CbaaX87chaafAXa-#% z?kC=WV!^a5p8%CoCq5Q~?$1XdHAg>F>Xmu%1(kR@U=PIq{?u~b#95`meq=)RyWul2 z8_SrK3Ffwpk@K%rA#`aR1m>|Ev$PK8@ec(@xDw6@PDnG^QQiW3OX{U%+&lX}QALI* z^yRkfE%#unmJulO$82c3u^+A8)XFf^7Cw8#;ySa4nS==gvc4k20rmWKa31mYWJh29 z-5me2_hL$%Sbgsr?eLo-rMzty|t9Vq|b(pktF{dv=yNLnzh7o@iw44V}B!D4T(@Kj2WhwrPn%xuK+2f>E&lehPL%lEv(R{QX2?m$l#T5 zII|>i4Ci%S-v@|T8nqWri^miC5m+PW(p>kRKEOtg$6nCVTL|+xKV>ue%`bH0S0R~2 zDO|r+y|4fw^pY4Cw-SiyjD3#+v?cBY?f^z!qaYTXJH`juk5!aGuv5>MN1B?@}~0qyW>9V{PTmB)Ti%w!%kl42ughfoKgCe~l@$@a0VexOO;K&xg^sy+g8RSf;X}u`el;VvKn@6OVdeJoiWugoM*fWjng>UUWnr7ezT!>u!D^P2|5;AlT$8Yw6RjeLqvq+{VxP?Eb8QtH@q@ zp`)_lWGb4<9o;?e~0|vE*y$<>Nl3tLwF2TjY8wfw&%A?N6=X-&x+-{#L%NSL;uE z&l+rF9l4drMcj&S#p0OPTzz)<%~R>de>-ab6-}Nsvg<;`te1}P*SEhOWRmZAzm~N9 zElufc&(^m26V1hEyrt>yG10J{$W89TUy>iz*UYOkxDY0YUWrHb7LS#3Seu9ZET`0s zoxJ~UWnDD?xJq{ls5r`!t#6~a419Xc{V}s;*>2h~@|i=oiZ5Yl9EHaY#)C(DFRqa` zXO}X#l7CI-8TQ-PY5jV$Y7ji_2OfVS`CX92ZP$_>Bey5W+si_{U-2$J5zmwYbIg0M zY-Ko53RyY`lXdVX@UvgaHWYTCcYbCmekpAq=I19i$zfd0{m!uB5N207*@B@P%RE>fx$?15}eAD^bGIxWKgIEJ!p`>Of%^k0tk0Z|?zFg8U z?P+VT{?JUaHsaNbrN+Gej(MZ0r_~Q)>zmjaI!`}cIwU!ku!=gfOwX?%95Mm24jZ%~ zUC*IE*O~j0sRj7{Rd7+6LYUG^zF$1Zg(nRPS+r2hlp||bZ5vcmT}3pXg$GpSJ{VX5{VHjLYM5)*7uCX2Nj?DPpxSa>!xeH@tPjT&G*<|mi5byR3ROOF=Oel z;cavkEq48#Aoj)?{+uaPC0-Xp`b4Vtdo(`d7^z=XgXq%iE>tyoQrmTS@og-L@;*+> z=2tl}h0zove~g^vrLIG@gq>-8pfs6eweR0N8Z-^-`G8@qSO;zEJYbrZ4T z?c&4fxgVVNxWv$8KLUyTLb0oU0u;sL|++zMJ4pz{D7XkBo5gX*4i%|dLC9wCd z+PiC?K)<43#qlBky>n4{+<2&vYUA@9;a;oFdC><+@=;nzDsvH&ygbNjW5d;({~eZh zL9U?$nvPR1a$BYF!nsS#$%A^TPVxbo-EsFj%X20^qM+mV%fkcn6nG0;qNMY_OB1ox zfxb= zp+}2NDft`?n^^nqih3OTaLzcdiDnvL`6$Vf6H2OH+;s+p<|U01QfE0#*hBO@;F($a zN$GnQNi&@!x?Ndo!l78hx;$}eNrha=Vk^QyU-m%WsO+I(VQpamv{=m~zi&UkC-juo-uOH|mBTy|>3QpnU|DMM&#Ny8M`bN{#u- zLO=8A;~}{cLwvr%2)Cmjb#8moVNzKj{)D@p+oN4zuJshwBy|bT@OH>KQe*{`1w7Ed% z)Yq!VIrv0xHdPPCr?U?2Z+np|Z|iS=D_wua7O5SfzGXSRocCHZErB1!PHnCc{PmDp zBAih8jV$TxY#j5DZZMYL|3qY6ZV+R)WiF%K zjUs$iiQL3=fp5|yH8`c(TF~9CToA}VzN7v}gCoL6 zDZhyy(W|LN{<`HBiIBXadFdP*su)4@YF^Fk${4vq`W*3Dsqz1z>n-D&eBb}!0V5m@ z0~94ix|EbI1q1|X$r(r^NQp8SL&^eCLK>vIMmOpNq+>{TI2!4?&wakX|HGRnzIcIb z*R}IH&*M1W^-<#e{32E%aCCK4Xyay*G4e*PN{sRTRcp5w$$>XOfA+`l%TD|~8}bDDHy0a*xl0m{lZ6bsLel6K#PBN=V*rLV)GWQ>ne;DrTxQ>ltmEJJo z>7++MlCLOTY^%vU?-0DGe3O@__OCf5utn^f??vl3eXATJb=X&q=3@;PqA|LsX^l#% zq)uG_#vCZ81Bu7`;V2sN)vnh3F(Zkf(+s~se>Aaho4$e;T20vXq*lkKdO==B)?4ZI zwH-#^l~SVfPvP3I@*h?lJ&L$NQT|e#i1h*o{-~Sp`H8cNJIeX#c-j4C5nm_qZYg|4 z$B0}1L|}c9&(-zi!0nzdzop(-i#f5nlnx`RUrxy=ajKsWh0Yw)e=i$jY*1ppJR=p} z6}MY95B1wlc%iTs)+3;Q6!?6>CE-!$c7oPkz85OpDsq{Lo<7ezhDO|cHqqjmWW*r= zN&N?jDc$L}=0ue!<{qfO;bdwirMOn6cj(9jWdiqSl;F-6ke8+Qff&uIAQHm+z=Mbk z4U_zo7Wyvv^Kc87idvLdgYbs`YB1NUMp^DSb@-stB zh1y!df$ipr!A$&t@~WEe_w#Ar_Ues?##~jmty2x@T++y(XRV9aj*_y$ahk9koC6 zmvX0|bHBg9$Sm5Yd7#=7#7gmpn98)C$aI&ikfnI|%esFB>E#_#oy;o!7K0^7u%G=B z!$D7>@jdFeBCB~NEW5HqzzuKIE-U$qOsxJW-gqF@Fo){_v^XLC2ci#^>j8^(D+hSulu%f6yni zq{;S`7c#8y40*5BrLa=sDvr&8N&OsbeaO$?N8+wEaTS!YtE_-c^v=^CIW#-#5Ix76{jna@_*67qB3gsny`}EuY zJ|6>=YGy+|R|}m|s1;G@Tgh7`S<7B;!F7QzV|ldC@cqWoi2r@7)$!jNr3YW1q6Jzw zxedvjSb4d@*KqMbw{X5(%N7ua)e+*HbAWS$bbLK?vMvZeyS+is=C=dUiL!aQsGM&- z2=S9Rngl~FrHdDSz&QXZSWS?Gr`q4}m@umJT_6VTLWn!o_B9uRncHv-Sjjq)y0Pvpt|9{$aP(aC3tuKt^G z@nA6g`gk>G^1l4~0zuoVTmpxuo$TSwVjJ4{lTzK=E`8kZYZJ@u-9)|@cE{Hm~S zu?Y^24MGY9K0>nUp7I?v{a$dZwdeEhDOiJ$=lkc?F2KG9eZ!glO>PJcK3_Gf*y!dF zbGcrVx2K5Mvxi(*Q|GlyG+>_TO-Shk1wbs8kfv8$yOe-%d!e1m{QyHm*7TkR{Ez@I zDeDmh0DqWnxPM+ysr#%N@IzcaTJ`_639v3N(Ae6FV~<#A2|k~+#;CS`>a>arl>KaS zUcg<{G8KgdCYEzkfRkD6fAk_SsHm?u1hh2uXR;v<^3QfIz)CnJcts=&SV^QJQJymm zKEU?$02of&Wv?sTc7y%>&DXaR%yHV{TDuq;imA;QyQA?z`bK-K~TazH;A@qv_b^c+}+?)&`)q-*lazvh9G z$P1X0IhNj8Bo^n^CahKN0a@V|m4|5T?Dp$Dkdu87sISfaK|pjX>Zy&uV1HVI2xSSQ zOw-HlIo*f1bcsT5K`--Dad)Lusu@qtmXkOo&>t%qDK%>f;!5(#?9sVGQ7C8Md^~eyLE0WkQ5KV|L{x|as6maa%f7m@_DV>_yv1ibx{eva`*+*`bwbMs)>YCAFd7HjHtVz1LC zV^lhoa-~R($|EU%%_Ou8h6)kl%zei`$>Z(_CyC#K6+X_^I{2aH2i8R#Uz)1a#r8b* zgoOcmsfJPC6GiajA%_++Lqc4XWPNmJS(&X40T^AYs`9-jI1So;yUq9TTgaiiO%h)a zdF+Gu99|+K2r<(&5)9)CN04VJ=cVEPm$L#3_RhB$m}pGRAtbX;ZuVQyP>^3n;0E0r z+cBIPtck=_U<3Ma-4^U)=8IHT@Xu!H;|rF`b^aaEH{2FGV*(Veq3VGx@&w=^7C_YV zlq=g?LmXyMXy2DjOiioGoW-n4EbYYPBhMjHtQ3X@eL0+ZQD{WS!z!1D+1bP)d+xRr zK5edQ`IHt8~RaBtsr+IMOzftwNcLJ9}}Ok34fdE!9RWZnE``&QZ?Uod~ zjLoImxoCv)j%{yT8hi*_L=78K&f z>qb2Mr3_YSQS4?yL1-!E1y?2Yrtjrc7M&}Q)+srRsA|`+J!CAi% zKNDMgjZN1Mmpyz9*VIkk`UM;-YIi`H@{4x*p&0ZN{YIz}|Dvd$WDNwi2{+GsOB)LI zqgJ}G`^*CTMuS9a!8B|F6cz8~*Z(~i_uE;}-I@VzDbMM&W-d{>^jaH?wZ3uYkD^s2 zj_rSR9V4{ji{j%)j1)d>a@3fpT~KdYi~D|iG+=cz=spif1s757F1s~_aW+#T72J3>m~Vm~ z@^$eD9M4=8d05#(&ibO?*(%Yr_|NYmi;4&0G1k~BF|cPEK0L|~d8g&^R>W2&JHN11 zh3IP=Kk38#m9WpG@EW1}Q9=0!l1zwSURC#@frsrJ#}Ft|pj1hUl^^PfOHoq}asK&7 zEYda8k0|7*Ct05ScBcIMN3ZiQf?4T)?$}?k%^#}cq*I9sYItcuih;IVy>3N;FdvLVv+}#NOU>5Q-sQ&JRgSiZ-DJ)V?yIfb?CapmQ{3Bgo|uD5nY=`f zV~h+MMue@e*y>2WpCMKy1NZ6u+kdU%kH1scGNRP#C#}WczKxDebaz^BTh(CpGIlG{ zZ$qPtpY!t%ekX#m&28)lpUx*3!`~$^uXTM)RMEJJ;Ve%#eWQ3!Lip9kDw|^bPiOjr zv9u&GjJo_|zqPNxOpN2{uWIYt^3~mUk>Zjc?&6pvv;-t6O3FDe*Ox-43|z(C01$zCac6E6AmjDryG zseFvNYN<; z{9>KkADgSu;aWv$dEYykY6}dEJ~Vm8Z4llIkCe$um}-f~`opqU;~IK5nDUuLBL z^df%@qK-+gCGp+7qmg-}V+dKF$O@AqDSV(U?>__R7rx~v{HR8P#2E%oPv60Tb}&m?=woA0sKT? z^)MQ5@J8}!C=pOtqz>J5;` z|1SMZD(P;y`9M9$AM{gtnIqeWf2{JQTUsQfBj{2H>Q+J#OhBQjW2OHQYG*P*@S1buCsz;( z_|}gT4D4|R1av0&M##5I-wB5C!Ei!B+#A=TY5Wg-==E=*mk;}5|AJ3*|L7X9)ZYN% zDn0~j*hu5M4-5i;uhj&h!Y24}R9_0L*%gr)%+9)w+rPu~Gj51rxt`|Udq}8+%*^6W zicLk0$t|l~zFq~Ud%R~`Vaimoa?QQKANp{&+Ib6zgUNITTWQD8+ab~peQ9J}1n2b& zJO8#ze23rne_!tv@8M#7O4tM^K)h4106l$ro<}9^I8-a&9>)KgVPijwnMn+rDPnbNVY z+y564V3o@?_-*-EX>VCA)D7Qq{s_pqS)D%c)*2U!dcWo0G$9`D$*M%jYwm>xl)fsrn z6$l(14lQWlEvu5D^XV-%Ff?-#WjDRU9GzQqi^oR}<*EOglmuQ{D6KSL-YM(Rg+7@i z3}##8Gfr<(?)D+z+aTCVrTW}j5M{T-@c zzTqg?pEsFVNQ82y<8*|ehQ8sB1LPU>dCC;zeOEvIVL|%Sp=Qc*c_{DG<(8)15h+W1 zonA;wHbBT~aK05+5J7~k1g2tSMjZquGWADC;Jh1fPLPF#arkcqaiDqGEM3a(h~F4^ zVX|1wTHlq)@sg*VT%>BW!GJ_y$_G(goYdgGt{w0;9k@k zEtzn$^!+n3c+124-=qDqW-e>_KYY-Ih7cnK~amQRz z^o7sKi7zj-24rCM5Fy@|&%<((V-x1W^d>Z!U?Bxv;g zL!U)+NJV~|`>2Mecmi6kY`Q1`i%ZMl-hAhR^g^GU$?c>`z&dnKm{7LEQ*pKC0Y&)tzT8M8t%Ydo}nE=Wmx1Kezv#9S1v7ebmbIaJ*q^?Mpy^t2HZKES_m=10av=-8qGudduU4}H zl#ZfPfQm^u`5h^F+nP3=nUzOK;5|}gdYNs2j%VQm4=nFMl8GxSNQ?wFvz+XkA_gCP z!$s3deyk@BFTX@bm!;9Ps3G;x9yqu*eZG@Y-}R5+0}-d`A$-k9$vC;3hWW@aLVca; z__Mg_`rBu0Q2v){A?ZgXpA6Al!a1?zZQZvE6JkZKt2{ZA*t&7GsFv>T)*FOo&D}TQ z;orfbj{ZAr_?lmwcXjI%E}qy^3Pw&;m}XrZ0C`IdF{f)G+)D~_h*k_8HMC~`4`u$d z9~rN21wn)sEa^DSI8m;`bO=>aVj^ajnX+mnt=jS)zK>z^+#c^mn3|39Zd}{gL?t>9 zG*%@dDxMK5)bg<*l>c;%W-fk+1O*fZ|&i zMtp>(GA_xU;lYFvr-_9xsRn&jdyy`91(LfM0G=?gWSp6!D(|YyskF3x^h*`&A49JG zH9Hq#gqEtHNQE*R_~XM)8j9Wl}>DO5BEjcpgqh*XEKeE`R^YV84Gf z;gB*mA|fmJ;ST6GCm)#~bu$xk)~36JF-#6Nk6wu6NHFg_O%~7ostjr%#CU={?h6%5J(})RTcGuoH*Y8|6K~GLh4M^&*p_Z)7v%a=>>EP5Th+1dBiAiGEFlz?o;p0^+^tInvtJmgBc}=zgL< z`NBBCqllmgIhQag-fZL#K#>RJ38{ywQ;EhhTC%<$%GB8Zi@YMJ!gf@(qy#^Ii^l&CtgUzeSly$!&jUoCGzR|L%0Jveh1ZBER=;Pe5)v`SKMODj-7PPg>=rptKt!I{CScU>0#!t>y}Du zsq;M;4!}*IMAZ9ZW1ambq?qYHh4Q=5tNaS7@9)l=vEa9j*U#eVCW;<`{xYRZi(-Z7 zc^oL;uX9f=ysKj6igJ-67PdZDh78h5(J(U`c1Jmb9xGCN5P_%QL8)mzmQ}i+&3&pPyF%?NVy8GG* zB;QGi=g>rpaM2k{E@g`ree}8@8%62qyd2D>CkS=VqRFZERPV-Ee%_mKEklum*tg+Y zR|HDO${$4i&Km83R76lh;YLE7*C=xLEr@1SP)xa>Csz4xi2UE5V|eN?nEe4%nPtR8 zQrT19?p>zqS9O1U6Sz}9lD{Oz9sTCNnbVDoG_6OHEU?vDVj@!^lnO+^au?+;h%r^k zN+f?;Ko8#Y%(2Pb{lMG#r(hj#mBr-YMKEF63_>^;X5AkJ*)$yM5?#w?8kq($O#<2f zjpMZrvGtRmdYR}-(;%dWR=>o|I9r@ZqiDgOh8W&9C#vsbC1R!kAIgeCKRLBiL#Oh| zaswg+`spvkv z&K^d~K@i~7B8tPc2J`+I@d$4JOX63&lffnA5SGe46Zk7Eg#w|^;4oSDfg>AdZK+l5 zy{=6x-JD=PE4SeYQMlBSUG}W|FCyNCef?-Ug$yy6mFBL&#m_-Z4rO*?+x%eDc(T~& z{2P-jvpj8A`*WbifvmrFlCjmefvM=e7V^i;3|GsY`55Vb7}*t zeD2|r9^PDp8S=0;${+F;Zo=rUi={}v@q(Vm#2?HE#7pSko5%t08r1*I>+#c zd>V0gV!|FH5Bzi|3B1&t3*dWqf|Y(uuwo@tfn6DdR_Xu@kfBD@u63)~1XFw3>`pvD zCp_k{kq7exhvSoWaHP8Ix0v-y~x>7HO7MeEZ|b0y?D=o z&cJ4@RM+|3Na1N*Doc(D-lo{K+7q4Ec_~m#gCuxX^S$9oI_pDJP;&%}t$*3Y$swU= z-67HjA@!u}(Z7Z4>}I{^ezJ(!tPwf{Y&#smua24pDrg@NSn(!N@pTmelt9iN z0|dqcOzqv34_j#`b{4xPL6f;okUJkn zqz*b>bX&|2Iu%cpPX6d#G`=~9^+d{WUZeVD(*6rgA)O4@lpH4O!y{n)d_ay`g z*8@)anWW!Nh@RJboB-?U<0C=~*Zdx(E1R|hdj8|xC0V7@Ep=R;5g+O0%s7TP2gIIb#)EL39oG`6_kbImL&N^zy81`1S!{dp;qJ^p&GN| zt9N)3yv<8Z0dG<2n%$(p>+qbO^*MEi6?gw7KYe*EMWO8JVt<}%9n;>K!F>!Xf=hz0z6s&x_%|HBzwDXzLElG@#sPq&#P&{979i(f*Uduk!qOHV3xw z`a5Dk&CA+J5%vUg_$7${W0-R+rGAtHO>|O$_CTPj$c$nt6k{GOnX^TDVx0foh|HY% zV1ePaQ-ose8{`i~49}&L^Ir#(^ygFI0rp$SN7Gk^MjmUylw-fRYJt^qEK#-@{z4&o zXv_GLli*YJt#m!1y$UXF1``ZXs4P6TcDI);V582cMGQ{r3OfK8LJ#~Lz@f{Ov!Tyu zp^_@&EPdp}5qn_c_U_i`JGIk{@F{*tY4RlJXk0u_#`Xe^L3!%!jNUWIEr~@zuzH;=RN(<}qX$~W zn^8Q|Y_ppmR(#2@Pp7X8qrk*E)M`i3Lro*|Mt&ZIBxDglujA9moaZD?r0}B7=f zT1CIR{c-5oZTXP5T@vrrl(Cu_&&dmFRbrUwP-(QJ>fKO-t3eQoZq*kZrk-jV`Ib!_ zn<31nSMgyACl8ZyN~vL*)`_aKgYHvDuyiPrrMe9U2vyZJ<*W>oTPCRh5oGh9Ok0< zed)0tF~JW{d7&&y^6Iaj#0-+!X)XE&!4||z;94kuMpG_-g-VI!mLa6rF9!lN_pEG? zr%mpA=5*tEV>MwsrjJtPJ(0{s@9u=J_{%p7{krI|(3wzWpkQ@C^ zip+P(nXLpLJ>&81NF$g?+ll1|DM>~Ugp@>3%vJ=GZ?$Q*OaI*GXrk@-zzB&18A z|0Oe`rbqBsGLwY3AM+8=ZvU|NU@&Mqa@t;a`v+IpwYfz8J{e*pkNNV4AL08FL?1(X zSiVsRn%mMU1flV5WsFuWgn>txCY$#c4jb=b6Qw`Wq4Ru@*4ptZ0Qf!f$QS>j;klX! zf&b+{TvSuZx;@daIe?3=KNxzN>kVHK_`a-ep9OBMEL|Ex#rs>HMsd$I%UU^H+4>j6 zy?Z~XD}lQL+?zx{^G0sSjP;!q?njNqao=RTH`>BD$}T_CBPkb=Da6*kq5Svzn?A9V zWa<0)8ypF=qc!Q%WcV&r0-f%e)m}SR~Sx4TU;&QD9(qrwyLN?+2;$VM)49n#;{2L6aT;d zZYXm`^E+U_P5GaGei|;sq?d3s-T>rAq@E*kAj9lz2Y46?#8->}qtMB#&l~70PMV}e5}Y0_#+-RTdtbgH}-a}mNe06`;tV)*{fy8)?2 zAZCUgfLMbgu4etf{fbn(lx)+tF0G{Qj9iua#w@cewzmeatr_z}ijZyZRYk zqY9#q!6Z1k<%*O!{HX)$5I6TWE8Xww4+F*aFB=#ZV^RBmCHgR{UN58O>ny5|d%T@4 zo{8W1F-N~MM1wdam{Jm;Z{Chs^bu$_fhxlZN=Rr6VDASz$o?ttu z=&!KT7qi(DHm}zg2SEPLdtg)f%(r+bqZMfkH8i3-4i4`QCT;w^ZYx3tQ|VqTi}89K4_{6yIMNc)VwJ5> zD_Su9h(alnNhYn`Oye2h`}0IaJN9{1PC%twbAj{lv)~zi+;G$0crmgb6RF6uoX8b7 zH=rZ7r;d+GCO!gZ{1V}ux7CsZ@o4_70RSb~z%`$HXQO(f+RlK>BR=PnA+VVs4@g2Q zjyD4Qph>yHoiW`1myDI{^_MLHE$0H)QHh@xbR@bcMQd6(D!6E?>cOu`NXck8X*czH z-yxyO3djo&|7Fpgg_ujE;&BmdwLY^D^H1QxT;`vU4BK6lx^H0=f`01hAgDSctiAjm z?vU8^dW?sff=>4>8C00xAOeMAGrJ8w8!K_l#s`V0kpZdsbIVC zF(8*Tv270;gGvSxDi+)Od>gZ~g!IQS;1g9(Ye45xvlwf6x)0<5b>jp)Lu#&HjE#th zL5B5`51nq>KFR!AYD2)q$#gvkT9O;>Jo3-mR_P}1Az`*k)6cc)mez3k>I8UIL*YyR zyhvXS=nvF#gaj|`T-IDDxHp~DBjXr!6;9=>i27M8dfz}k3|GTSEO<>*mQ%$(CWeNh zulk-OCqgyo1sU|Eh?YNglu^#KSnD80mHW^xa=#LbG{lE~!S|dG^{=7$10RS_T(-0q`uRhCbiwN<|YB9k_ zGuP;O)>Ncs#=`iGjrv42xQK`-VNWS3wibdMR8V}6Bz;s`(2!Xb6)QSaPUjmEqG^$& zK>%)pu^o{T1sxO$#y#i|%4a9*TJMbf%mb=uZR8E3HN!@V*cVK3_M7_OjOw*p+9Nx5VVbFRAmb_hl&o9le6_e%fmWIsv;*H z4Ghi-T6C4$#KfjGG~`5`rdK&Bh{2opP=&BRyh;Ntop$GJLBnS`RkF6tJ6$aPJ9hA` zU*PYEW!dtKbWmz%0Nq$wwzU5UWyrmQpit;bLgy&-DR32sLhy8@HDC^ZCV5hN&IbF@ z1d{XII11BzNc9AE(tnal39U5jM5)sV@b_^U3JEeG9Nx?OadV59cnbKV(Hac!xBMzn z?s(dm6Uk8i{{vo!>f|c@CNXYV zG^a2-B->W_J=hGCCHFQ8I4w*}pDp*t6j@+)g5FFuUL{KnJgA>OntdLydsX?pC-93r z;!}>of}lsX-ybx^=ju1- z7)^T^Wj)ZEDYo%!Nw$QUX&cmZn8}uq!r5ynlPN>QVLshN%L$cB)XR#`dzuTX=<4bM zyakJ16yOSdghnz+E(w|DgbCpawYqH=0VQjhj9S;!J7KpH^*v$eG6O&89-k@%d4MaWq4FKq!3DVWsZ>Q`SZh7%|N~~52&OcY8Eiy zyb0bP95ws_g?Mc^rogbo`u2{9RHRy!e!1JgY3ElnoxurWs+o@&Oma?Fd>!)6lcCF9 zelp}k8XdmXO|{VIXsB^p4L+sPN2iPej+#;7b!c(#7UbYJum8PNV$B!9CVg$`cu&{# z&{;HfF*e)+HaT{oFOCsSFf6pHcqncX&`sdh{Sjy}Kv0K9F!CJ-BY`>USscB#hTwHG z2={oo+EQG(n^hY9>|VzBLV``h%Q8arDaZ4VL}VMU3{7fpr-{f7|M;9{Av0V8o-hll z-DTvUFf3J@Snv__GKJ&tag1{qVl4F_MCh_d)-PU6S!LK*1tolv^7(J%ZWx)8d54<>?1Fxy2G#--qkRTe6!*vX1OY4 z2j<19(jAMp?$|Ewfm?)&9iaN(_0J-RA`q<&b+^k}iK9s=wR9_7j(s^!ytQ4h`%v~@ zy>e@ejvEvSH(D7@GJOc_u@MUxVXy-j*UJ)D3B3&mTMlgbDWFs-yDL!FmC7ide1uN@s7yTM1TB}h0X7B zwU0$3Un(Lr%Jkyy{S5|dgx=B3;vOnUt)t$y;V-tm_uQ;hC36+yI@q&bbrjGvkF^?N zQD1i+KNiAeO{%vVt2_U#ue~F5E)g%NhatawnD~+~R8;E#q|i+cWey~?Q7h~Jf0%iX znnne@=BHauG(dwvu03Yoy!%6WV(mu-T7W)}w^6QS*@wMGUpyw+>E=*V&w7gcxACUGRy9aahMf*XUg1CJ$Cm+wNh4 zH9kn9L4G|2nOyFKur6Y-Y{RuM4m3oeq`OV~ksiOpdT3KGwq_CcH1fOC^qMwD@Kuk* zne;K2ootJ<8TN{Up9`wGh8hkz{T~Tc^6nPj^l|^9POPwpkXd%>7bcn(!cf``RM0T- z6`eZ?p8*?noYoga94mhr8~7g^bXCrKW2w%|+A>Qt@u2C|B(ibq9pNRl2eKLRe;Ay+ zkcu&{eI`-uwYY-Fm;LYg!VGC-Waxh?t>Vdg1xmIvmKdh3=#|O(YQoepI1lqHxIyV; ztpd?gHwxm&c75BvdFIw+C6?YpszAXzH(h#tBA+v?R-+!3#&pF;lXkpT0=_3){n)+Y(uVKi9A9$jM zvWJs&Gg|aBR?%7eu1dc$0jtW+5L;D3?s$*a+eyBIFG1PM@gNgFcAl>LcjUZD_wUrK zXsTS!NJl8rceSB~{DX-1`qX&NhT`$@5Fm_v)u5I(+*G=HIAq`W0iC3wk+12pkZvV) zIoxf+1IrfBU=D})j=Rbb$X9is>if<1awe!XdV(KP-VH`_?7y|;_lAuA8+mU&eWtE@ z3d%l_!~6D0p!u%>*IX~`$JDle)t-dsY4S25b^9k)&rLP z>E0=@+2bhu^b?FNgz{XlEInb1vk8nK_Sx=PVh#RtfseMdPf^A=^U1LWfrYmLpoHyJ z@XG%+J(_ z&*FD`*RV*D^q=|Y2kO0_Hw#R8& z+HY?;U^jHi=GQ)XOc4GR>!&IOBzRN&YXBds8=%g#c>H2q<$Jjxv#RkE7%*t1u zxjxjT-Gl2Dl3B!JXy$ZnqWN%+@_^8x*?!*Ie&CQ3)f@1^IuO2ltN|!>uY0HTp;v1H zu5ok=$i@<86Z2J`jkBRwNAeyp7VCL}Dy<#}brj48{$X?zzAYICw;Ft?0_4b6V};?z zQL)9YcueFo*Kt9~saLK=DCt%?>NxUUHN4%@j|Il+)T$!fA=fmmt3?)WzM$==kx||@ zXA383n!DRyqYLz^DceB%mw#qHuM%jO2CuJfdL%v@Ep~m4t1D7W=1bNuFik$C6EYR{ zEilF0E9zQeGZZ*Ws2i%`sF4Z?Fz3BE-VboNg?(@r96XtJ2H;6ZGw5nHiq~ZYob@g3 zpwp^xH_9bhUqS=hCf0i+%UzQzN{z&KU!d>LM<3M7gsiNP}9@Y?~fecfOS z5;$|Mj%yHg>?i&&w<3w3H!X(FFV=WU?S*HE-`{%EwgsByrDbbiXBUuwZ)>XI)n)V& zhw|hem4SH0L*kpH`|f%~urn)?p41lg8u3(}iM^XX0q}v_2LN2^UG7r&xOslEd4PZD z9+XDpw;eEh?3t1sh0CD>(zYgfT?42Uxf8aOi<065E(1M1zVYO|Y9CO7@l&`*GE zhC&i0wmlAl6^N!*{9R%ZQ}3Q(L1m~7&lmA_sc6e7UXPX5Qj`;Zfs_+;o7skkHS1Pw%h=nW>nbhhjFzk3S%*n? zA)TgQ)zXS*8X1wYj7+KK(AjLhD%2|)IdJ@N-F0rzsoG9%`1$N${_&>WK<6=+QjxjD z=y1`W?wrMf1DizC^+k>jhlu;s+B&A}3EB#JTuIDDz>nm(cq3ES!ra#>DuCghu)Jt; zEXOD9cYn3WPbzENF1#!}Q2IKiR0oc$Z#U}~o%cOltEAi_W1kG(p!$h2_Fn`na_j2f9BGH!rSt02$}`Da2v`4&aFF0nL1K4txPiw z2ja>R7EytCqnd1#CeI!rd^Mz%0MwL#&K1O|ZR772l<}#GL=Ym`A~ykhGT@ieoOx?} zE`1Q=KtV~<-_117IQi)pyFh-cVARgZveCzQhqqrfeHdCcpB1I!9;7CEGWV(?NlgKV zKC+Ve7*>CNjWXyeS~64(Gwi_6BHs*ZjZyvG<5JqC2XxCvKO2gf6=p_d1Dx!D_EtJb zU|~;y2}>6iaQP**-*>9Zw-f=@ksGCy)>c-bxV!@*U{4Nm8#y$}JIwA>Sz=R^wAVY# zURJBQ)F7NgCSSm(M6xJ1H#1=?)RY^4V4Jh9+WlzxywSG$WQho81nD7->)%_XhnSE9 zj1;Zlbz`mPcUmV5n>imCOiO+qsT>ph;-kwn>bvC_Gkzn+hi2fwC}hve;(@Y4vLWeA zoz!&+$3K5>Dv4MlU-DwscWjGYaf7&Qx8*kjAsv(}>1wZ{iR+jKw7X0@Wk8U@n;PB_ciyU?H?OQdRn9d>Xl4`gP=`@6{u0Y6vJ5l_XqM4M;EhS;&m(|4n18wz-EN1R}A(46UZS`4RvyGzOMV*%J zv@F-I!ugFzcTHWT%@fDmHahg+MDBb$9f1hdeVB1l9(k-v@byR3348L0G^5bB@agpYnrtZc@#)uv&#*zL7uE8}fvgFkzya8aG46Ge2qDd)FOA|~MWq3m# zI*Ebh4c#b|xZf(AXM4UA*JPlXfg%^83ngKi5a5N-ua~rJybMd^gAWLEbtdo{jMAoZ zM9g+>J{Z&FYD3G zymnl{VZIyYK6hs1C|NtJ7$Y*upok-cIFY}7d9lN4UIZ&{mbw&?5>|9Qn$maX#bgM6 z*sk$z!4En!cd@Fi6nwF~fW=E%mL`E3%X=&XgQSOGy|-i4J5Am74PS0v7HqI2QpyAR zEDJ5#Y3i!_?>@_;hKI$se81wd)0H0Z)8;%bsI?bL3tI*(zApSl#q8wEjh>T#sem~E zp6i2&=;n7#PPjtf{&pPaxb?p+%zK+#~P2fztua;eXW6UT<>8+Zq?^&-LUf8xYTbURZru~pB z{>(sPo*?xMc{PTUh*Y>j!zMRW5(m=KWqn~41S65urKH-#9=|d%c}>b^eZoPDKFL>J z6cz5PBoQfiZvya_- z>d?xV5WJN#=TYcGlcZma=M^!k!Fs)Js#lyxu4Y6|{Ee}#J2pu@s(iNCJd(}yyw3Hw zjx1!xF#mUn7t({rl$*61by%jUZ=}9Dt0>JnNOQ6KY}sqxA`g5PEN->3E@0j` z19DH*%QH2D^q=W^6NgjvS-Wm|)ui*-Mrt+TSr4O}oNaq)MU)J;QBI0nbUmqrE2V_C zLeZ4aD{ZP_a|N|wl*^g^rp4ib+z{VSCVlU!Uo7qbJg9yjCcY58c{8mpfO{axxQ%Q-~V6LdT>HS+9XYHZ0%Wv(@;kQ6m>mr?QQTJ{h}Cr$Gczhjm(I=33UJ_?P- zFfkO-5|4~~4eFiA<__o+jXG%?g!4Ry#VD{w*H02yn$7R@B%(#Qj=nu?nJ9CML*_QJ%KQV?r zG;6}+s$AQ1Q~{&!>5-G#cO{z)3w9%ctn@xMn*2A57Q6%3q(+_y3LQ08Kb=a>JCkgv zcaGF7@LlC-Ii+)(tn<$0?DQNtBN;jUB9?i)`mgWj*{w0|oS(SS+G1@H+SsCpPa-{Z zoG+11s#X3!9VJtwJq{;g%b=?*`iH&so)M?wi88RAmA;2me%kz85-_AI$lQ1i_U7w7 zHmYq&jfS(vIE?bjQCfa|?^Bw#S8_H16CSq2oIRwlb~A<$Oi~X-K~Lr>!q0e%LVB+A zG+PltNm(?U^#AoB4@K)tp4&F~$Dg>Z7Q6KiumxAfST?xejmLiG+~^{!%j%NR$)cVt zulq2u!*n%g;FZ#F(b}?U;o7Qc(chT+&adi+o$C%4NEp+3s2{j@nY|peURWr{A^Kj6 zCHkLDD5aAl7*7YbQwMjE8?rW`-w*Q-j4eSpx>;Q5*aI0XSI z^*~@&)M>&mEx2&wbHO((5Z94DVOTmb(9Uw9aPKz@|K4?QWJ354SB42j6#^tMUoW+I z%8)NEY#rL_e-e`1&%CJT^Eg81wvW1*p3W%dU^Cx_FXS}$0eP-nbO{F;OkmyQm(J7f zgyGiFI`F%TcukezQ%_5b(;abU{YY)5PuZrFv`@m34c}`#=Ku16aCs2gyP^bA4}f}I zZ_gp2*B*&iI-avUXvL=1mNXx?b*I#~=p`O!TUJS)nU@Yb4@BBnGE&8fp7+qU|BaPS zGOK?23Ey|anyo^8c_VLoBcQ<(w^97WslmCLz1Y6_gY^NsqIIM(tE87cE)VI9EAX_$ z<>*-A>UHXk@6i^hrsEvEw<_x%4~aZHI8Ipc{y0|`_Q#p-hx1%mD;|y69T=~qEov{{ zcOBU5-2iD^xKiZ*$K0F8L;3c9|5=kIM95A`L?~OfAqtfUNp?xHlaOVsSz3@K`&QYL zCE3D^q3m0BS;oF3#y)1oa381Yb6wZtzP`W5@AvrKf857kWsI5gIFIu<-s|%D0SCMUH>d3!6S#~;DTgi1hO)vy9N`mVuIb4zLgy@wir#olm5D<_@l-$#T`5I zM!(2DPHoJ+_FRP( zA^Ej@Jv65iRAIvCi$0r{^oDDrzXJ%SE(^KQygD z&LSfF#!$MKJip1-xWe5^1yi@1pO!~z{0BWS!snWozq=7rxlUZTS6eT7gV>qyw0goV zuL7F}%6>(I0qBEg^u&0LL!s%G)DUgnt+;eT2^c#ck4AnV1Mdc)~1Zky^bv_ ziv60aVtMePf8Fi)%s>X@F?)4F?^d)Jqqv-*^)_bvEH{fl- zvX`68e(1u(>M-++snzQJE7-*YE)0zq0k8?>_ue6^#-n5vD<*5#QpCm(u)6-Vje`l7 znIiwLmEFeoS)?Fnx+L7Dgl-U{btjZYQ&p|#M&FXUQU12?H zpVgVPj-aQE;|L+V_s1ep`USiP_&%royBU;vAwpYh3x2rh6s2vPg>dEdS`YqSg>?m@ zucxf-@<(;b`R4MDYf*HsDjk-lEkx3bjGfNko%b@ymTO~XY|RI48``z<-K?p(2*m-` zWVE+$5c0JDuai+#eD9m*97s`IUIlo)r}MXDrRe26R;Fl*$WK+-JD-bFVimsWzt_g( z)NqP`Po@@miC?g)tcf!7lT3WsBr9geTS>{pBb+ znWONHsnF0lj-ru=@=;Vdsm6#$fk+nr%UBCf^cnRU<6A$nQSMXTkM{*=CWoc_87!1S z{Okgs6*KmA*l-L|l(XhtRS|EAm*_5%Ae?cYm*|vz%yqh0bXo61i2LyI*@G@L#=S4S zTK-ZoLpB1;NA1TJJ&i!_Q;Ft9&3-@e-`-~gm=Jw>x&wlYN9Mfs&oE~)MjPE-61=T% z9WaHXXRXSeNWqLEN4ap(GsRmWm+{9n?yq)4!Aaf(2~cR*Ndbakw`dYJf?hfCWP5xT zb&~(F99>q0a_&wc??PmL%|T_e4Rz_modwK8yURKn^S2HXFvLdsqzjaecyckIb-VC6n*@w&K6TfFW`gKlI)OS2C_ehocBE0hEFRyr z!(E5BL9ojWd`Dt~52)hj)iY?Ag#}ZU8qnW!)^1G29>;H-@?I1|6o)eAlX`UPD?wPU zk}N*z-eT?A5w4APWB6v!=?h=l9jiJopn9iYar%ci4{388_$wYDFJqo1ct?DCt25!e z$u*uMzdDx-^TpjB@^4o`TqYqQ31THDK|Hm2L0CBLzttXz*i*@%qJ6U1FWQ%j%F8fc zv5%TvCNvB$Ta|0m4tYks@7^ibfv|x{X`ieeYiKGo&?i)zBeA1BpF?becxKUM2S<=j zm+?O5X3LqP=f%*bI(bQI7eCxBKHfB#9rU=?SL+G$Seq6JJ7e@T@bRbqKrZ?H@A}mR zqG{&Os-vR)C?1{Hez%tL`87wy!0P+)4y@U+9CrMCY$aS}jJl6G^5uv+8%eMkhtq0v zMh%gF$ZlQ6PvKVn&^d?L6(oj?M4;&8Ckli5@-s&ytbV+7TFYY!s_t5;LQBw*l0C^Z zyj5E?$a4*m8NhYA0sct;I$v>GxTOCWh1Q7&Ix1(7Z_dXbwOZCyxeS>`5qL|6XuCU0 z^K^4MZ%9H<({nEkYM-3&RN6(Fr1U4qaxLB7PQ7B1UudVGC0Nge5igkLNIqVO9N9tj ze~A~n$M!0l@HlhDzf`u8b+xvmZoTItf+u7JtJvl^CgrnW@TT_KD28wvJCTLNx!Te8 z>}49G>BcFIF~9H*pUQbEl}S5!Xo;LXXqD7$nNgIvw$6PCiGispfndHA)py$i6KcpAZAfBu!o)O6_^to3FR>aUYz7F_+ z_$yLy)>@@?7IfA-HfEiSYMcpr=!heJNquU%z1TxAa^#YsmFZmVwUyJJyIwc5q+pr0 zq@CBy_Luz$^JllZE#N|HPmbf$OZGV)-b|VPvOQ8S_LBb*YJ2v}gpbNj4ktPPVol)Q z$PtIIs$liTxBA_n03>Q5j1_+jINZh^@=KQ>*8lP9+xx8E7oQ@JdE zXHyK^G6qH=vtOI%nj7|j-n_Eru9bO!gDVuAzdcMp68~)Lhh|5 zGCgVW98!4IAf!UF>Ng~c>!Q1r*2f*T_mxY|A%LUeo+mIL_pfM`4&|BTRjXuBX6^)< zy4hXqdBFe5=x9dm#z)8aOh zV_9*AvD9W*KjYQ7r1{+g;(EV(q*TV^T94i;s1^nbaxYnavV%w6Vx|bMj;I!SOg?&L zm5bgQ}w>@87G37KxK2586qMgkRmL^pIywc^C_?g?FBl}6( zW69D(+b1D2UN?JNR28QCriaa+>8eo-fM|EzR?5A!j@w)~>PBPb#cbTfBXR#(ih|dt z0~0784GK{7-2+gw!fJh`+!VJ~xnu1DPu?=GJMcz_kv7*IXtI7ey>o!zK)C;;H)0Iw zoA-z)xO2u#-j&C#(uhlf-=SA_ z;;LZbZ$tPhQ{FdpCrwUr$m&;?@Kv`QdX&P#K zvD^=!cYwXxb?;0~cKgY^+bWl9Ou*X4ntGI<$h-}5z1BJbZy6E#h-C8xrKGwJ_{Pd( z>_CtlCv!tY0JZ}00$5-gG(p>Wd+qbmtl;rv>;nb=HM?n+8QoPuy zm0!kxFxP3j?MweYa-+FkVbCh=R{mbaxEH<5UVy|ZGE%<5QKlpVU8GB0ca6%NtP4%g zVG_GVU%L~%e191@CS@x(pIqLUV-(!;el}vy6b~PNGVsF=*msaQp7ZYEiR^YynIv}J ze)8zhFCLf`Igei_ZhpLhsTtdVdmIy={du!Y;?Tr9SKp&%F1#6Ec=Kez-KwPg2FZCb z(>W#FmKzr3(>J!Euj2Z>A;ih6prq=-_bcX4vlwj8sTrwUVwY`cVhspBuR#*m=M;-q z{oKkjnq#(SR-}zdciQZi;{4LiP^o#K!|1c2c2CE4KI4D}(o?9>e&n;Xnr)Z!@uK-Zhi+X5%^Q+$d_xq#A>)Kw zJ^LY(Q=2Frm&1a$%o{wS3gjU6X0`wVMTnk)Eg4)Ae@p}^ZLj{uI9#TnDBZZIrWF|Y zU~kM`>M4D>JXq%ms+od}$Sad|%PHBQx-1sZQ57k_D(eY~+9=$vW*I_a6A%cF`1CE( zTFZ)pt>482a8`mg6!p-HrGeFR)Em~zM?Phr4tV{68b(5;=p<3&8AK}=guy^SH5kn!<1(~R0Mzn`TOj-ZA+`5@q{*><(ig&np#`lWpXwE(6d857ffHI z;Wt>+pVG@x09nc7GEQSv76szjJ2RP}A5o(vC&lR}0;m#!3L%hsSC(AV`6>BgT=BNz2k3MnC7}FQ*qx0DyX_&Ug(yI;8q+Qw0mi6*8c0qrCG)6ef$g-=PHsw!=w-t z)J%~UB|Zs;n#ceGuse!FF2ZZ2e8|MqG>t>tB0zqv{;(7yIGe6+Z=-z`gkjozpKk$y zSb!n%aEemgS?kN5HU$43y_r(>_%d;;Z(Q4NBerni&T*3z|GgQWeK}n!dBCR$K4Yuj zS`E?Y%4g)7>sUA!{(<eP8#ahD(U@S4lQ z0XGn?GHgf^Z>`Sll?5S3d_cGne6`!k2$1)M>saotO)0rA_Mp0bK+8*T`SneZsC~eH zV@~a@KWJ+~>Em4Yr|dVU!g!dmGVvHVB1g; znxpa}8W0RaW_TV-TzW;b$-IgUTX{)(+0&r0&oWh}eOP8Wq!a`4T|bi(=J z*K9W20By0F;-_;?a8YGq$lSj!Bj*}rUuxOZcO^;f$wb5M$P9OoRYKhCB&h(&{AFJi z1ZdPqGNSm^SY*vi7zMS#MA?Pw-2J-ZJn*e(dbww=X`+d4Bi0EJ;^>n~jbQS<*Ytt( zk>7(jzE!ZE5E7JY5)x1W&oMMMKKwY+2;_06@H;EZGtNu1}tM>-{ z-42-w-7uH8-E9{W=Kc|Sl@rDp^Q0YRndA#r<&=48C@%k;j}_Od^iBpH;q1G-kUA5! z4hax#+FogJ)v33^0XZW$?=)1w(e4Tw90~9T%N#+(5eX)pKnl~Fpw^}65{hPx{i-WB zCoAfhnLMdLf6O`017`kjnf~N*Et<)P*C&uvKqt=2X~L`gnl9uK_2!rqy^JYU%4N44 zdL13MT;8tnC)A6Qd`Cho#{k(Cp-G}j{T*BcSQcL5^J7@#0i35ld=tz+p3f_WwN>uJ z=ZD;Ba_$?A0)+wEmgzxqQm16KBcqg`tuzMlO`SdNN)nLg;u4t5_Z^T5m|nTZCD9dg zEOgm7lvh|qN@Eyo?Vdb|6@62-@ZgY58qaGJ@K%Tit5WVAM5Esv?zQ7FdS+&ZxS&Q!*Z``PCE#zshH z)%x~e2cJ;Tg-qO)r#$LB@Xv(rQGT-tXH?ATKz;NnM(k(mWO>6fM%A7W+z7+Xx0GbX z$8bP@*;eV`u9?>vL)9!fg{>Y{g!=fS7dv&CXHOhH1GsOLY}f1D?%DxjYv7#^xj+5K zOrMgHO4{>2Qs(DHrEPP04D%UUi6&F&(D0hnXIl_~sL?~bVB}q6IWy4 zS;j5r`u)WoiLnJT9MhP^Wg-{Dk<8GqwO*Th8$hZGH>YXGtj6feYkndGzH>vAtcafE z1WiGSSY-9<94ZCIAbZWtmycXXQfY<;@V7IAujiC)FC7V@C+8D6q81S5CkPy-aD4#k zoIHv$RNbnp$0piI90Fkl?!M6yIM=Udk;`j8a3DI;$96~~TFZe^oS<;TUk*Pn5DdV2 zqL2ho#v*4l;`k#o61i8it_g#Ir`z9akt9N~UE;pQXv0SCF-jG3J5vTK-WFv)fE>M& z6QG4U1F&{AM1jUnE|#hFM+s-Xo1pL-nGcVY3*<@EE9I?QQn@e$w1iEP7TSiNS$-X3 zK`}H?#FcjEA{X8L*HKb)nemiE@kXZ|8cQX#=xCztu83xzL#SRr?B0htk%SI@-1NUA zZ5<(YxM=Jcj4?8I7z!68p6&Hi$m2s62S275gK}j^9PFYeg667dV3pGGbFyJHm4geU z<;)vzDFe34l>-s4e~>fB*-jrx?_pqV;q}LRx3J8fqbxtt(%n_oGt(vLtJMI(;;t4W zEiX4TH9|9Gu{RjoAmQ%hq6d0N4@m&`sp3h!|TgSVeS|o|?GgVTfP_)rh`qsX5q>p*Pb!ZG=&`{i zK>7RK4E&T?27YFN$x8@~0XwKQDag6<*H&F_)}NujvIGn`D!)3Gru*a|e{;66P*^wk zEyDNhqiLKyGW>&_X$Ru`$NU|8qc$&_nh(q}$k*=CjtKX`Q}K@D@jpS?Kmtbn z!N@1;{paW7H{Rxx!G+hThMROc2<5}rr&dlwsZor$x+EBa7c4dnlbqL*vh=#hxmF6XiNXwv)}FmWRzW#f@kbITX9 zqsM7;sDb<|m5kTM15Z%M{KdYwPFgzh^+}S@{>*gCw*X4aj{F$&A47LL3;OeCunmxE znllU_9zyTEsiSOs&8Nya8bsCl;^cV~!p;iuv!r=B!<4;d!TNUIJT|=Ou48^E`!y{% z?H5XZ-CNmvokGp%4@O<5(VmvQm^OiBsjFrK?>LK{Z>ZCd`HU}gXPB=^m9x{%G)1^E zoxRy&6#VubNhltlilX~7Q~BaSG;ssRBozQ*&iYRXwJX2hsAdEq zy?>A7%O6nUE|bcz!e^-@lv195-ejvJe6Q;+-Jhit{jewoF2?q6Z=w;G^rj2d<>!cC z1jPKq5#1nlkB9c#Q>bTHhbZ%Bjp-*O{|tUBQDFLa%{`8|eND_Kz!G>EetCbFt%iG& z65LzdzzUx%ajF}QwC7ryFI3dWn@d3SOA@!2)S z;ge>GWOY*>$y+0q-+!g|#49$52Ca03k%R%*VJ`7v#R^C;LR`c9GgRk%0#F_zZ{F8y zxc4ph$=a>U4gHWrB=`};B2dW^~nBlh(oCetaMZ_v>@&?T4>Py z1S}OZ^Su7!%OgtLr@I9=ZtMQXu){xrI3?NG*>Jj&6`;|6>fxOocG@=vt1ZZl^QPrI zGYug$!KE8Q3lf73_WX0XLwVAR?geJvj%~$bQUPsmG9o{SD|&BHHGyt*4c);h=d-PH zo>}L~k~Ntd?8J2lmO%F}V(6bmksOr;K<=!An0fGJsX2TQok-yDL-xfA`&3ilF8QWa37dx=Uu+rlKHiEzKR9gitlC$M72z7^0F~J11_}u zy4>0OAHkzuV5Ar-fDVbMJ`P%*q=cI7$6~&JsyFi_rTu2oU2sgie`tvC_RrNxUTE8i z`+iJP2a%g1ONPQ^REF2w)5@&e{S3L z9H4OXd+2^TOD|pvAGouc-YLB~V~*U4@pQG&a0U?vLY zkCpdVz&Tv>{ygfk>w;~fU?q3^vt$bHW|PsJm9FnGlt0+@-*2Y(1ZvwbwJ@_fUp}Q| zWzo=tZrR2t4!aYED`ZWAQ5*~Q3gVxQC@Z*B2dx!M$fnwXgVD&UefbR2gUp8^1L+n- zm$krv=EBz4OI{3_yIT`J#Hv5Daic#=OF#+NZay{$z(3+|I%)uahh{4@ncQ4EX_|(h z9eHXd2e$P(qx-e(yx9IU4RRa~>TDh=Y=jfAfQn)r>Tc#~H*GXFu<64Iw9;8~FZA@{44@o7SLxgL!oUL97^k(4S{< z>qlz7-X*D{BKPPhk~Mo2ruvZk1KN6dfK09uPzh-B?iwo?bVzvX$YA93JV|3wI07mZZ=vw`#!5neosMjD=hqOx8l%{ zZ>E3vxu8E+%`d8gU}wRT{pz>UkoqVmj_d1|K-G9G~Fp-~&wl18^yZ z#NlOtP3P0g*`2%Xe)$5e)LEtK1#a{AmH=q#gfVvBPE)?N&7~mw*S@eFNmi)W0rh@l z^osqSEgF}?KJIVAh zU;)(+NpE_TmMZ7(Dm2!@qF%q0ilFiw4zE&T)0o;W%x^rNn~|PRQVJR%2oLGp^hRN> zlYy%k0G?&(PMk`x?n9{4!?HBL4nk3ssU@aafL%mvw&+hwByWvc6k?7p!-52FDY!4b z^#f5nXk?wSJ4yTgC(ilTa48ff+qy*U3Zhb9%DUv*vEL52r`0dqYzo8Mn%PrKXLoJU z>sCE7s>~$MUEHYCkE>Yl<}c!1M~yRRr_P>orMj{v@WM*zU`*R>%-wBae*D&-PbsC- ze3J_)1RoZ)(6^O_u>A?D1D369ql4?S97leM-Mh%gJmX$AIUb}W&mJAn#J__}F`qC| zenPBTImR$cbHb&N^Ab^>Em8|b@q6LewkAu~*Z1)~ny-J)Yfk}}cj+Kk{Qa3~c2~7_ zP_Jht-aL$2F4}~1_frS)bN=1u3-7pTNB=PsqJM(0>Ypd_l7YtgVBLRC=U&qO2Rwgw zrruBg{G9)c9t4j*9M=!&Wry$o|6;dFS}6jBbMZpve+-iUIG`R=vI(2Q|JpjqM-K~+ zpo_L8=|B3{PS#iauWvS^VG*HfnufYl4@d8-IU3qH2%GdBTFpK{jeFf?Nx*7kv4)7sq3V)6^jaL2O zKZ`AkLg!x-u>H?niH^A=S)cjOH2wQ0HT{}L;-R87Xhi?lyB*DvnUkWC7Yitohrbm6 zH^*xZOv2tK|LE2 z)6Z`ToI%^0FImNQL}~Mm)T1*?t(w1p(4)9vvPmo@8zeZ*V^IQohqn^`bK5^ZvJ{8X z0>ag2>BRMos>xW|ik}Sly`o{gK-<)oo7!whQ(Ve?tyrb6&%S4Ci@iVo@zB1|UB5Yn zBD+qSxwc{ulm^z7q^D+^?4IaZtqi4cZ6=G%B(=B6?*Hr{?CQNof^U|M9D(m8(w*6mL|vw=82LplZ{9nFTh-NAf8q$F09ZuKYKPrdehl0u2}GJg zB0fxlw?sth!Q9J2cf=2W`tO7I>3hS}S0-)nA|%f}sGTC+sV;mCh_Ecs0l%5PJ$p>$ z<#louJHBqC%g%A~=nxuUFV5+mA1c!=j*h!ld;_>Tdc-aEI|+}6XoYS3M3;tjiWGdd z78${oBXC|D;^iS&8Uep%!Jx=wX@42H-);&>!1sXA)&I4lQv;&E0^R9l?5HzL#-@uC zR`;Ow1gJkYhM9?i>i}Xa{XYjj1WPOuR!lRaH+Jx&F~QdMl--=ujT?79dL|VRi*(B;Gz;Fyt83YQe|HsS*!S+5xn3Ev zTkB&{(FHb8a#Prk=A6Sj>O>-^=5~FIZ;HM+yy4YnaK;H+7@c0^Nliq%ef4}*o8-4+ z{;PKj4X4oB228&AttBUb4*zzPO+WjuEo7Z6VHG+Gn&-v~?tB;nEZvzdx#hw_lF(th zV|I;Vf9^gRC2dQ;-7floXb$Uu{Df+^1&f=1_Bo@A_D&b=2St9r0=NqQ_DZrkuQ`&d zlqA&7MS}Z<6ya>QlI`h0B97~&G}ByAt>XyYT^mP7&Sot z8@B{#oFN4?G^;8Qg0W0f z0OISAo-c9}LKq2h4>Z&Qpp=5)2U&Ga*Jm{#Q5l>+Hs77W^C~;a_QS`D#~?qMLhtc< zAJB8EpzJ~Y-*fqf=g<7yLusqGQ-#+mUoBS7qhM z2S3Yl`oj1|s5c#?V87hjrnQ6hTvn?ZBnu3JG%0DOLqgf1sw3XL=+)n;NqUa*5bwsB;vtL{?7y z=o(5kn(-Y^eh|VOZAeFMCzJ|+xqgZppu_yAFL`L*jbT7%ojNV+3Kw-zkUjun0$a@* zJoFxW{YK(Yhj7iWPwl=DFOn|Ve1S5eJTeQ))3S-pu7AwBes()Sor;Ke(v4a&q(A2D6laMV|vLVy3u&$yC7NT8IcU2z=BYL9iKWv(J86CNriXi{a#3V z*z@+sw)zYJrV#L$=OGh^MM=c_s$lIJI-ekN3Xj!2rj?T8?D+$SK}^@-FNX|NK(q5j z(uNw*xt5c%h!{?0kVkhztuJJxu4%U!)=DyuqMj-43^ztCsAe!`icv1N#B6~yG2V~& z&jvxQ;^=2LD5#aKq{eq#2HOa~z-G4`Chymg4JsB;hPA^-$SC$?CHXS%HG+!=lx_1o zC<#3zTOX~?y+r>SM^69f0_tM2NDto(>;R{Y*b!vwfZLCOLZT-=jWFieOeuVmWiA#?_(f%y1R$W!tG!D@sVTN zRgQAa){tl<8zNKB9SsYn`7A;ulaRT`IrN3M0LTPF-*JMc#$&~(`_hHmJYF6TP5Og_ zYoH7*3F!Ikq|W~qr| zVC>=N+7k%tizQwfehodfxQt04+J~2r&FQ_=gcD`*rdWk0w(1+oEv7d+geS{2(2od8EUr9nUeW*UB&qj)o5 zNcg?YGuqk~J|~aLH>rKA@~7kW+jY9_7+1K`c~vBZ zu= z-w(3?zfyrr*uvSHiLa&V83@eB{#<7Cm9M~KzFmIfufrks-)-Li>bK9n!9@4|cW>q& zC;I<@%dgRDMA1kIAYaBX=n~D$%`ssih9wq(^2>!~W59YNZhTF{|(y{QOT zY)Xz5BM*I9A*Tu-r!9o``Ia|_;pM6cpVjL?Kffh3apCNO{)78_wHmJrm@EQ^Yw_b(J?2_8&rXFiLhk%o%!~e*eB=^ZmaAe zZT_Y4I)UYrk8^cAPj0^SscXO7Z5F&{e|zz%u4{8_H)N6jD7RnOLHqk3)JX#Qk_`G8 zTFri?$)_3s1;#74jBM{x#F{`@2)-5}Gf`j6K*4=8%zU9lk-C-X=6prQb)k8mi_fpm z8s}SGJ+sLoWWa|O8z{LDQ^vSF0DsfHxF;ru7W)B(q|h0q>c@3dqM|zJTx)$um&+^W7BGm!ihXqaA2CXWwBI zp{1RFZ7*l;8V96(9ri{y`bZ-shXVufRP<#?sX@+MQ+$s7N&h1f%4PD4tZ)o;x@wev z>S{)NEpWjKnW038kqGHAB(BprD8D@KyH1|2&-`JsE8iVhqVr>@knqnp)g0fW9s3Q! zmo-}O#wFX!KY#9tv%;OB=N$Ysbge5A-mVGN>3u87p??S*LWExPqj#IhYYEOVM}ieU z7zG~Y*zyg&qZ=UrS@>r*a=M1VU?8(JJPt@Tr9zzN&e_l%nwnhjt?x<_+=8ughZakS zE(ilfUz}!CbhRz(ly1*5tMj%#0aY-CRSVFGL!=c**6f4!t7gqlky0*BhGwSvS6G5D{I&CGIX$@4846<$EsI>=BoQ|%Fp{{=-uIQ!FC{Q z5qB(l6xe}dz=1Jd7MM3qhWY!QeG85^Kf~jIl5Pe{b)a$~izxs}_W%&dIG$Ai-ta>l zE9O}MHlG`S0X_ya*r(!x5y}*s=Lfz9&2xZq7i*xtwrLozg_zUSO1k(hH>U}=#@>_- za58koOvS9lHfOe1$4Arr_i?B=$4m=lsHrh?d2CSt^it%&0BqP{qIx5`_VXMt0NmBOlJly_!>vVo> zV9#o%XB9P?4V#k&`ECFss-)1fCr;7(ueCoGQlH)PL=w_`rk@K2<>$D4WmK;^bR+y| z9T2$rB-{8i*2S@P>2po=OnxN{l0INR3$E^EOa6Ju=!I?+RO{ynWCz^E2R^@RZoqa! znZo??-3d5&l!EeqqDooxVk4CK(ajLNW)FP=kpUk6F^l}q`cuf;K(8zjS#8-T5O1Tm zxbVZNS8WC0J^heV7}YVLb?yXU_VhW^*6n2sV8R|$u|PH}bP)S`V>nKetqkw@w$??RMGiMx9)K z@bYyO=jGmmMY`f{E|UFSy^{GTKA4LpxyHNbrzPk$(`Re@EeR`ZF-JE==?9_x-k0a( z)JkhqO>FAv(P!ACmA!jmH6(@I7eAOTvdPrs6M^Nzu*Q%2 z#Co~@shPaff2WdCEL`h*t|5=ZL+JV^kh-z;8aPsG=bKCaAxD;NMs1+ zX+@b^fGHD`689jDd00tSG5u&PJ9Ixtj;zMhTwC{|}8|j=6?3O8R1dDofauW|?kGpe_Cv*UA zu+n4z*%+V!aTb2BdhzA9B#1aU4dL`(flPbC=elr>YDoQz4iT$MQPhFem(2DHr?AHr z&?wEhfyDOiHWUx(xR)?zz4YRIk)e%Q1#Sc)P5F8KjIxG91=$seAgi0v{kZAgwd+Kc zwpW)jw)OlMiPE5=HxWG#WJuQgpbduzxJo~pXG$FQcGpq*aCpJmZ0Ac!v}-wvS|p+T7dq1=4%*9rj?1~=RA6#l(xN{I##@Ws}nGggyVtb96s*L%nrAI`JWbxXv4L5PofhM|U{NcwcA4H*`7o52pKk4jsWCUV@hB4-n=3eji8>|35v5#)8|@{P5S)YVOq23r)4Y@0z~?(dh>Z&HJqY=mj`l zh}mxvKQ@2_G;1@(1{LNK&qn!XeA9RRjN9#Kzqn71vM?X*GO-;;+^|GQ)abBHTl{)D zrI)y4#_7Rh$nKcbj5!K|*#lT1lcIWLFwUWI$K!%4*eR<_VT6hMgf-j`i8Hw4CGKu@ zN;@O;3#c!t%@BYv!CKxwGQ-svtwac!Ol>_qgsuLp@V#3WgIZhYpBNoc8mg$P6Lf@! zey@H1tE}0(1e58)P2~>@*?h(Q(y>{tA|0M{9o&iS5o^Ukp*ez3+YXn~#5s8wsHv=F zJkG#;x)yGi_$FB+JY4O8{TH1Au!j$1?~CuM9Z0crz>ks%OWOYI9h&cd@IC5Qf1?;GX`P8ryK^TC&vj>0*Z&a_ufO!(KOAiGea;+V z4^LPa7ht35o0a7s{kR>U^*kBJkRL*e`^rzyQbP;`;?GeFBys7mA8=%T0a!g6HvZ{Wl6g z(Bjh2xmy1sMZ){*Wum~gO1pIDM83Bs;dX)LbB{XYcstUxcc+ zu#j9dZkA@ks+Ki&s}p5&v16idRwaEzX{NfXTge!bsh{6$$MP29#o*tct#hd|2_#2- z-^=YmQ0yw8ex#@qQqLVeMvc|k)Li?rE1bXubN8nkrmXJbsrCC6*6sfm&}xvoNHO3e z}hmF0F$E4Nd;BZ55+5rOkjr6V=k&N z1t4d{kqQag|0-5TY(~B7oCkuJHV2Ivq?G=PG{n=#cL<=uj9hPNC!u7flcnX8TlwVm z{zM6@J^I%GfH;BlFwltkImn!GTPfC8`q;%1x{M)E9QqZL!BZBhbnG4GJ-}?>-j?%F zX3RM37Crz^>@S}w5E^tYNu3m?h&)$xIxWqW>oRv&2&VHfki{e(Z^7bS9DT5>jid1^xYJEMqWhBzG)_H?j3K7`=YFI;*|6gFXTZI0<5J$QGLAUfI1aDrQ=g{y zlr~tL0Nne%o*<^Z+w+OdQ9Kx*o0UA>itz%}hc`#3YC-<>a(#91k&82$T^Y^#x`}Ul zu1xZqTT<-&Sm)CGG!$iZ;(08_*>kJxs}B*_gzdG>hDe6lcAJE5b`+%m(eJ)7;;3O4 zqPu-l1M}y;Fyo02fC;6#5(bLJ$<1W1EnCF!$$0LX-hOqz{pXp1fOF;aq5V-!F_4>B z`G|*h3RC?^ZnNW3aCr!H)1~+10o3<)XL8&Ct#Jrt>3SC0ak# z-Os`zQL}RXz`UaA@rZHPn6-Dj|8~AWn|o4J^yQ7og)AgvPC@UhrZ~DQ4QUhm{n|%#atToH+)*N=7Wv|Q(ubU z5^Q&XO%98gtD2d>Kist^$Z zF}gkZN`^rdZ-f%t{X2RAfvoa-VZ6u894cN;hs-5DeXIHEk{GL*?1b-ZE63#_9tp;L zvk-DN!-o!LN;}zUSvF?vmo%^QuYODO(JOTepJprLve{+7+8woL$WkXgiMhXpF&UG3c|WbnDz5E?4{^q9)8rkd zIBWEwkGXjFgt_H+-;s$(Sgptxv$1vYVxtLX50O;o-BhON3fX+wF8{)JdT<7=l|C{-2%VD_8$!(NplTf!424{q zEq}>f(=)7Cj)?=kW-LkkSM;b}W?nsAUd!82$$Fmi%}bz{ojiP&bKu4NdH#Xo*GI_E zmQC|>s+|;rGdE;19x=-q3rkiBck;k){fdklpMrA1t<9vgQ|Rgt4R(vXwp-k`H&nye zKc5-{`IeyS)*iEkzRU<-N4>|8AUDSo{u9@fnmOHGVYJ@tEp9yk4POYl)0-dZXl2cQ z9Ql5VVJ39l#rTxH;Dh0?a-_Af?$%SoTO8aK^kPIwd|A2%o1(+!gIDH2h9Qaj6I4f0U?kOVkr{tv09K`^r$I+)FaN-ks`1WkUDywz zLMT;~`aStX*;z;2#m`2^;|oKB$E`oHpA^XXXhef66RCw)wVlTe`;HFoaE!;h=SN#M zJ2v{3OR5>Yctl6}a=IzoMU*@xA?hQmli6W_S(oltrSq<*6QA7|O0q?j*a=M<6qlbj zdv<)F;*T&RvXFNkN6J|izsnr=Jh|faVQW4`xP$P6E`K>af6AhqW>GV4!oM}j-34m9 z<4f$87MUqJQ&(x^Na4+GeG2y}l?a75Q1MHSUbGzT)n*ExUcnWCv4QZ^FG7Rl4`-n$ zzh$)@XIzcPVH!xZD}*k} zAaPprx34H%q3TxHe8m$)3TtkZYYe4xb4K7EmVCuEQ!tiTBq?fdk9(rsF~|c1{jEc- zTkdwRRbdqhpF--<&t*`v$pKsovgFdES?|8( z+1Wysj}d5wjHoyio|a&$V%Qn`O{zd@&Nmi>+7yxnr?L~w9z!K2TIqQ~@nY*|%z$sX32#~GkXNYW3xH}S62OCfR~uQ>MgITP`z#Aw($IfZveP7+Co=jwFx zcBgXe5$e9fgltwRofP|SX;jsE6{$R2W{vqJB$AGGwm7$@cPT)*3DSFtit=NldZ4qr z!1jm|wf^JNniQLqT^!FR1(1dCQn8qX5X9}E30*2fMoOYZzLs{%F-aXwBbed)Nvz7H z&_je@blkw$aSq0_<243pT`mY5S20j>o4oYg7i|rq=WBr>@z=DjOqcgB_v$Z<_wLZZ zccur7dhV#)XUzZn?IkNAxkBOXD@^LY3S-8gI&<#EF!}`T32YUIxVMc&q9ir^O?URJ4XXTy00yli)&`^-`<7_u-f>Hf&?xH$i(vw{T(6~v@gd%G3I*HFE8TeJ@l6-#O@$`ZQW*dxftP6ws66v zF9)#{FKRlSP;3^f6fcExagS8}V7y@}USTlao9K0eg~F=KeX&=R?Z$FXwU3<{wnO&I z$I58?p`16%iOH*j@57c8jV9{UwTIq1+RHpzOfS+S3>Mv8s3_7-s3`JG@W_wjexYFt z=<6ESf7ek)$9JXktC(BoTMp)G^g9Gtj=YdsjU8zp`zpAq@Mg80l_r4k8&be9bGusZVv3qrUVR*~ym(A}C9O7+pCDVjIiPf>}BI zon`z*;71)6z7$uw3OmkTiy9j`$|L>r`vl!+VGR#!^z5HnnP^e<-J_d*W#mT%HIwr$VnDJ%|=cti<#Wz&Be*oxZ2u^Q$3|Us<79 z9&nmRnr#PCc0IQs4-Cfy@l~+N^=2Gh&~yyrlKGi@J#9RG*>j`)s(}2T0?ZeE4y3gG z`iXnrNwKSUZ;XEsLr$6jCWJYIx$~rl)2699{tDLn?IddBD$UqebjBjyQKAKnYnJy% z4$-lFuH4e&0i)m(HTtB-tf(2ELhdGPGxbYs{8^uR)umOUKw|88u8R2FhyH4} z{mHRv%G30UO)Dk0ZDhQ|Cj1cLg*SdD%A%(wUmhWoV&V3+FCsV$Rw|XO6}KKNFJL@o zmsWjXyHUeuX}ZV#N{hdhG=H}_>ej0g<|DRCU)g;709LupZ533#PIZfx+dYUw_Q6we z8`D`C%m;0ggbCtxYPAmhBpt+F5~LPatK0rcj@{p+-_0aL#g9kIj?)oQk7Vo!W{6`U z;gb4GM;ZZRb?krds5&1=91w=`P>s$#O}&YPD{d3!Rv8@0o7=yj3ZudQ#noGeRn@iO z+H^`uhb&6ELAnJ&1px_30g>+RPH7}1BqbC9k?v5sk?t1h&INl+ecpZS@AC%-xD=Rc z&N0Rv*LB`PX~$Kv#(QPohH&c6dMZHw3Qg^2@g+hB;r^hLa+BbqkLaq;d3$EdvD>Z% z1-Ii((uXumRZaS(#Jls*?WwQJsJ_R`v))d~mOS{fQ`=KcyaSA>)ThT*b6sT;%dhJ< z@2)(;ZjLl3z4AC9BG)=Hu2aiRw@vx!pzUE}*?j&im#fQjlB-hy{wb9n2;Z_(axI&4 z%Y-e$yZI_y94Ro+Bf?%Qd{_dt2sW|)4=Vc{(;RaQ=-SXRGVj) zhp2n#y64VeI9r4zv~)$z{sH@n|22BYi>8jmEk#-nZo;tVg48yz{9BP*#0T91YlkpN zFLbc$R1E!=hf?bDxcs2U&~_h` zZNd(uQ#-h>B1K)NJU{o)+<&=+5ahEJh;jITO=^jZuVkAaT1IV;XiYZO?H0ad)o?1f zf2moK9BYaH^bzaY^(Tr6x%a255_WYGLDR`eUg^(RPedl}TTacmeDXHvubXi8UxrX? z=LLSNLD>9=*%LC&OGp^pVm`;hwsS5Cfx=d*&yD^OkfxFDDRyy)0ua_!8pg?xlz+es zUTF5uz%sK7p9RNJPTL`4-(}aieX^GRqg)m+MT&hq@iG!Wlm zKosln_xS33VVUG=*(B%ngJs`4SUT!+*?b=4dq2JZw%5Ydk=juIpN`&i19CT`g?|p+ zkO=#utK*?puN8^cxUjBBFJ5yCN@5*hw_LWPQ?#dk1R$If_0RN@J&);+L13QVHa5b?po-p00+hY!NmI%+1A0x?Rhaj<47O2qJ&Xe?3ER zT8sxBc`P>jz%TNjZZAY}6$07xGnchC`uQtL4JZc8l0pQClxRa?S*F!|Pob1G$zw944T>Hd2Qo8ArvlGX6 zmj6`({yo#ie~Q2i{yBy;(8%29Rxa+G3TCfso#s_j7B)q>^7%SMeI@4L+m|N^3>D;u z35&IeL1&J5`iE+ZEp3F8SzFhl7=ohN$8uNl+0!UWtnFZ|p)b+z@3avJodl%w>s>wR zCmZy4L&|ERIc6zAK_4+r&AIZftt>7{=ucSTIM*38_~XC# z{NAaeYbRgk$j^OOI&W4?4T6^8n|G7vBduzb?(dP5&|W_!Ze<3Dp7%jPfTw3~OLcq@Ro|?Y-SJ;1m z-hnUBzg=e3=Du2$ zYR}SmQ(aOx9FNU>{%Dq!97_|#WO-P3)MviDo^{<6pF2SAti2Q2!>E~W^=(TATksXpaFz)q&6NWM6{2>ufM!ux!d%bUb#PQtFuHeN}h8)MNn=KiSQ1 zG@5i%S!>Jm^!GLMv37};j6&enhzPo%Gr}(wC(DmN^3BRKjWoxphT8UL#Y5W!j%p?S z^Z%efK)X1sA6lz)b?z{0T~+5NE}Jg|jE0`4f7Y`el>D+_0P*Os~0R+dF42N+C6!&n>FwZct_`$o9g;#CQi6Vj#(+Kql>caW){`>+; zCs|pYda!pE*{DPSNKZF90&^TR^q_g84a~Jmz`PF$K8Bc7$NZNN9)BS)>{DQ0buU>` z#zDclTQ<%Rut^hLi+el=O3u935%oZt2zT9KipUP#Edxju-zEU4>EiNQPkJ?XwOzIk z$n;`*$N#f()D`uDSu88X-|WHb^|N*@^MX7yD#I;)cZShb)Ska-YrHQVVNv04L<5O| zBK}kwQxA+=kyzAoqnv(4R)zoCeHnF;KXB%Lofu#THNTUq^axo_{V#o>NT09d(rn)S z!rLmvy#z)bodqDL5f1X7Xe&P90ik~k zu%P+&izzvEotbV6TUKIgUwjUrY3(*&xiE&k13f@TrwT8*9QN4g-e$w{Z0s)Wo$frc7OAu_fd~xYrqon z088`jm6hZRDFBSaMPW1NH6klCK;J$NkRU5s{-1{_1EOxOrx={I1%QTt*jNo>6;Zo# zO!gU4h|l&m4Qpw67ETofc!>Gk7CbgDo9}}bLWkkI<0=vi`zUJhne$aC`_?PxY}ddZ z;^Axq^drXNfBP!1gv5NV#|wopRmx+E0WpLh%!&r$zMdh$sTjUC;hTYRbZuH`sKN?6 z-+@})SB$FB9ZX*#MCX5IbN=7@duj8z8V}8qeRz6>1(+}gfx=i4qGCO#$jfkZ>Kr4bA_3M{_N&4YN(#g&qo2-gz+P2pi7EgLXq!{o#jrXFu&h>9Os7 zC9o4+nLrIZXlH}pCe-d$&+>L@vp~{cNzNFah~p)(1nM$cu0g*3qrc0Rf74|3=hA5- zs3*ONZJ={fOVt|Jg;mO>+c=hc+O*Co@T?&nS2arc{vzXh~PRBRFy z<0MtU*#wh!X9iMvIv@*6AyDphHeLPsavPRc{N+pEJyK4+-(APFaZ))4d9f0XU{@XN zhv-oAN9%p?W+}tg@*9Y*1(O8rviWkOjyWK^`i*^7SDvx@#vt0E@S|}Q$%HVT=#UJ% zem%dFkM!~tBsp7kjRst);eL0X0;TkgFs`N(fN^MOxjil00}IR<+Ex8vkYY$2^fB6A z#{Y3T{0Z>(gFZlAwO1$!x8T-DwU0}b@z%4!z`974^t%;l>v7B#K$8wKjuGx`I_#uu zo7)kxn|Mf;LxBT5LrJg3eYkhP?kW*Y&esV{3^V8tj)*4!{Ohb_`)1e9&k4Y90(Jf1 zr$NGlO-H?KrC{IN1E<&7H3hK8FUIB!4;}&j*btC)`|e$=#=1dX3|;*T2$m)m9pn>C zuttN>rtcjixc5S+N~p-Am3N}gtuV_+9PE%EW=O4{XEWZ&;wQ($+*Y(dG8_=#a%MPm zlHa~ylmJ+Rejeg9uD-fXD#{SoYBTCdx~QA4XQ->oI*iNPZLW$=_oAG3@dpy%{D2L81Y5o_{giVda<4&l{#5r?(YqssY8alUR8N}U}B`u80xwqWcqs14S_ zhI8Z&YCd{lxDRglYo8Cfh9Yr=tU{iL)bE@}IZ`5k+LpCr+mxf(0qxh&hJFrSy~qwD z&X+bi2gl&?qldN6ZvmsN7HGr;wJ2iSC980Ys-&bp*g&olG`LZ@@|oNKR?IuAcs4RA zd1gz6e8#hgosQgllJ^V<1#o63Q34CbyrDk7KB*aq6>_AIT@m0f@W6Gu)qwSQ z73fxrhiT8L{%|Ag5S$i?Eaeq=SZzB&4K66mQqrO@tesyv+1ZUi7uY}_BSfe5zFAip zF@3v3Vn}$C%78DZ-B$nw*YVLe8U+=_=9^Zg?vAQWA?-^EBZrUA)$p==+3`5*Ue$Yuv6Mk;YqogcLfvx1Z^44la z&tgme~(5D3d8b1 znvmzuE4}3BGKI0c7}zRFSgG`cz!UA$N{g$++zEQP*b{Xkym<%%BK$q&rx+B$4kaYD zzbDHK3R*1zWtwD|3bG6Ip^!V$;><6$urs!GxKC!*4@gRz0$U>`bCAWkOUoYs$Sfrx>CIoUyv2Y8lZg zLgqLpj$CkANXU7TS zz75&vaiN)dY=eHaJp~knK@aK1AL{6`Mi}aR&8|kQ!oAlP0txf~&ScEEF>fY->m65O zTIl^exr3TZRfVQkhS~Pr^Sgf|f$t=!a##~{h?_AQwdLtUpm?)}ollgT*M_R%Utn+Z z0G)U39SO>#6=+ai^TD&%BveKj9@D4SZQpnXc@A%vs{}$e$W43#!_^5t-;Uj*i;}=>FPe}0f~Lt+GEDzga&m^3)*x z**ayXFtAE}{ooA+OIfdIFXPdb53_q7RHfDXZEV&;Cx60TSkD|5G#Pj?nv zr8PEU+klR$6_br&5tx{+wyAN}xCd?k%c=nxSEzMp)l-|}UhvJP!G#7w!qTg!3FVb1TT4&gJRY()Y1`p1@l@2&hcESB0MTZ(hGcax0ZW z4q1f6rFKKEXYii5eWqr%4?`~BU9_@H>X05K^$JF{ywkO*N&?Y_Z*osq%hNTJO9Jlf zxGXRp2b)NhGK5hC1$`=cmBFtsVY~NH^h)aGtg>Oai?vVnL%gFEaWdT3P{vGL2S#uF zQ46~Ig|~6_Cb1q44qe^5(dS%`6#Dt1fd043H^Zpfq%L^!-Co~IvTZ)Drwf;BBBq^p zn|`-U-z7&)QuHQVM^J`f{%y7jeY?H-_0vkBtw$O>fRrIg63BHpmo;+bgr~z#j1^Rrv~tbl?@< zP%eWu+XMucZSSkv`<{ME6LGN&x&djn2Go8sv@rQ*cSgG4SNh|TS-Ozk-9bIbLewFx z<&5F$>K{D(uFa4H^WD6F?uz*P-P3o}R_}>O&KCxffUc;~@HseyFriN2ovyI=#ev}q zBkOBWkmhAqR6{4z;l(Pw+q}Dh!Bl955B%=-@4iZc=IwWq3ps`l8`Or`OLo^aM7VUa zL3mHG-zX6nhLb!4avB(WF?;DN+BVeZ(^$JdiAp=(O|rlEbR?I9>iHZ+XeIDo2({IP z&r{!@jnvVnzTg)qez=asjnWeR{qqM2G99eX^P?~nIIq?sHh)*Rl_L$^8{iGy15Xg6 zvDnkL8=wcf*EtHn8R`kZ_=#$4F=DEbB=hLnzVLl^kOH-`H?S#QY!K(GBZ_OKnZ~xT ztA9S&N%xHtRPJ1Qgq_zCW&XXAAp-31)M8D{QH?@or2&t4Xzez_M((Y&++DW>6~FBc z+P0cZy76#~&+(8uInAz%{W|0!7mM6jkRco9c&8KQ1OD+@New;bD-B|45zmDB1>g*NNa37k< z2%Kan)qZkP)$3X^9mB_dwLo7cq<8+?D>Si;!AtrS4d6x!&x=AL!fc>k3VRz|4o7BOLZ0brDWL1-52 zmUOB=-5D5TP3WidNaSR5-Jd1;hwwt z1_U`gwjdip5?4YwYI?HXopNYz7}hF%0>3ZkzXT-n`rJvKgiMahS|BJN1$?N##^7qs zn2>GdTbgjyUNw2JAEvQ+RlNSh+^P~%0Kh6Rj;=gHu%kR)B<%pSxeaUrC_VD?E(ljI z>?~~~<{%5)zekNqrX*&`?U^FDXpELFb3(=jzmTTBCbQjE7QF+bL$$iFDmQ@b7^8FI zXP(3NaSROOJ0oDI#Ohp0qBmHeGywO+`XqdS<| z3_b8c+7SJc3kpi!DjAl6-BI1P|;5EmUC?+XbmOv z_$-HzUcnFP!&?y^aayN2VWVS1*&QI!3bu$pB4_TOeZbp^SpZ0Ttv>M6Nnh$Im`8j& zD(YF=?R3~~`YN8Xyn{G9Of(EK?tXY6MC)f%jsv)k2%Y?EwP$6iTWP>h3a+F?>a zhdzgFM1m@9=J!Zm&^LZ07HV)s}3k=@p7)w(3m za46Q!J7TR1AS=#d7xLt^N>R9vrWC4rOd_(pY^RYnl*Hv^nR>6i2FTG!dLHzHw)Z@j?Pb=`&Mb6ug zDtXHQj;vd#{e&!2ocezOGJgShSD_^OIK(Ls`6e}6N^#6z2xLIGoujpULwFy-x}Jgt zHcMo++`;#K$sZr(+94l(3Syn8YWP#~+yI?@*6$7umpJC2Cqod`3`9a9E(vXg>Xt7= zwip%*s_Yh$7!!?7r+*5%fqGUl7Hi@~W?Hg`kAh%de1Y${hCj3lzzdKo8V zwlN+1Smc(1&ooLIg&kLT4PVk1)Q~UM*HA67@tv2agu_62w6N`T57+{^t2qOSP#7`v zhN&}hP+8yWrGquOV32+bzrJ2I@dOou7lgzXqq2iniy=eh;o-E2yt z8;{e@^en*ubs%^D*?0X)LJ)P#ag#aOf^rQ`=jcUx+*^YZLLW<{N5hKzQ}{Sfh`!vv zggODxMnUtuk_0F7b*QMr9GFrc^sO@g($S{4sdZ7|N(QdAl(CkZ& zYZYJb*T&F52VKQyu)E=*Vb!Q7e3HTy5zqI}K#^pvHCC2R+huVdD@5#0K`Q?icm}A+ zYhgr|U!A@{ZcL+QleMScQAH=r`9jT?GiXq|TJ?SQE}X&^u}1qhIVC+*kOMY|*M=@t zL<3Av2!wFA6{C!^&k)}M)bAA+VkE*+@ZLto&;MmM$~O8inhjUYXJFvh_AW5!J}XQfo*0uwb#-b(Su zcxvRzwJ^I*?cPF@7k9E|slUa;qiENX50(Be{KcY{yo7Jg{qAb~l#g@{YB+RpC>M^! zUL;7lRcb!wFJkyx*a0=HPtQ}Xa)>vu<#zoKVtp*hrylrhe4o=IMBK}lAL)4`ux#QS zLB2oG7a2nS zbjnD>U$tCma3?(pI0mI?oPzf`aa8k+djwG<+vlLaA!3G@&U!sU!9dboD(8JC539Qz z%ev(^Q^GB^Iw2@V31y}2852I^SlWVt3w%kgL2g*y-VC3rV#Ir@>W)LI{&f*m<*`33 zdhO|Oz~!9kB4|;-kGQd&hx6%J8>7w&)UP+)dlDq@G44Zs2;WTRK&rXu9Bm}Y)am3I zf~6NN;w*v2*!$^*7}rbQQnz|+Y4lp(vC>rSNk=X3G5q9#oQV=-k8hO$l&G9RvihO9 zq0&>b(H7*%++izvy30fI*o90u=;shcJ?zS}?=TNlQ8Mo(;5d0%w0WI|(n z>S!qK^%EFoU$JViZOz3oqAhjZM}2ctnT@=?`Tk4!Ag`s479rYE{uZ*&gYu|WX@04; z?@hvJA|LY0m79&#SB82X61gF85ZRqNEUmb&_FpVz>o1*UTFU?d{hWcT?A-?q54^?qDrxLE+DY zU%XUJrHXtbn;$Q$_=M#M7Oxzv%p296qxgcS;6&~){vglMyqA_%y*G!dm#0uYAMYt{ z<_|N|yYu6jZ695)s=cvh5Jvgz!#yRax4%u)4{qyhzdrYDDLX%HzQ@L=kzsVIJ$r=c z(pgo-n?3)_c#_y{cW3u1chb%#I`py0Ni_bn3MOO`=5S<+zE%XJyL>!tl znFXBLz|&oBuynhc6Pd3Q{<4-*IRH=w<*krSstgC@K73~uS zZ7@F4Or^!@9sTqxls=d@rI~yVGg&Y`oq@V~+iC$r{@j5Vr6y%p#%B6Rdy3-G@cHpyFr5il#Set_Xgl)9H&Z$M4c6MM?NzUQ#b+a((`mX z0C;y1iYd}#9F4!!p_+G7FT<~q5p>@g=+thJ%UEug)8o5n)Eu#?6p3pa@1 z)+4<&u5}Hn(5_=rGYb`x{bAM#wz>3)#aQX44Kri|K?iW-RExqS45!})iQoyZ#g**w zoqx6%DZ!DuoxqE!G#_c_0R0M# z0jgU&072Nj^J)QQWG!(dg*KYtB4X$xbkUY<8lMb@i7>%a0KNhr)}n~+{re1j*-g#@ zo`nCtjOTmFjX^6*Z77lU@2{%?BBl1k*O-U9?@tl5}qWN{UcS|Qj@m{ zk_nX`l2e8%EGd(kB2e}#B01~3&s#L(|9!U**=Egn4CWmZ)SAq6kw zmzvuTfxfBi&!ST-G+J4Y&oXtY3K7NDM@-KfeBqvD>i&>5|Eu=*f=)IvMqpxIY%2$E zZo_lVx*z*aA&$VCw$zw-x>cA}51Lf95bcY0o%SXtj2dgO7h;w`{U^RsKPUjqdgr(T z8ZbwGX<{(JdFKSk#tlEkf^NkxqI^TJUc_FG6)JGA_<`0>{ln+U?ueO^vA}QLhduD! zbiff%kfh=&-hd#m3&P`pZP7tm;iq)C-&(x<99Uf>!HHqp{?L$g<#gb@bDIMcX`d-z z@A?@3K7bcjZWHm{AP%DXIs zd8gB}W9=w|@2uPE4FTP35A=3UHxu1Jt6r4K6Xb*b0)$ z6cv$d6f!~E48c1yPb6QQ@@L%mwFFb|dyPer{SG)=Setfk`rE&r8xJn*=G%_j5areQ!%TZbea zyCBZL6^nr&{qiR5eDue~GvPGz1xl1$!RhU^8L=aN1rJks5wQ_V9+W70bN6S83g-MU zpR4@_A*}9ib(k2jIDki*sY+d8bCYIdtT*X<16f3^`B|->#1Zr<|azJi?FV3XJ zB+A5@`D`soiRed<4f4q%Rr+(l7PH<6djnzgRR@C2fYIhXy5$>v4G$$~ee(9BBj525 zUuq^L$kPU6sQ$)6dwtPZ%lAkZy9Ryi76bwk6PWaBH03X)3}XtU-}zrk!tWDz6O=%8 z5m|9n)W;`cC5El_2yCI{+{&UQ3lXejGc|Vmkj@A=)3sCSG_E8A=V;wwKcljmF5;(6Y6&F6qIxOQw-F9*d3Pm723E5PqelOF|o z5XmQd^B@@mpS^#XQ~wr_`W{A8JYr=b9wl^ey+@TWQC_Jj;iAg4`N>aH;%il;^Kx}L zQ;et4T&;t|M{ft&SsC9yxj32ynF%qDOn{rxaj*1)P0#y>w;4h+-NKZc6O7gNv&Arl z$D){&BF;r+u|7mcmSY89J*(fC{3=rYHkqfCE@0DBt!J_g;D~GLFV=J)u~dMK>=zd6 zY#{CA`A3VSoRbGT0@hPYfT_4SwEFkRR!7sk2LK{UiiCzli{5lgb_k1@iV0HJ*1H{H zZQxGs6_U%!U*u_`37F)nFP*{3I3n!}42G2_NJgtH$9wmmhd3FKxDY7&TzIuI$^3Gl zb4Vsl{iwov;uRTk;Fw++|4FEr6!4Q%?aj$;VTVzUTA7Bsnd$9;0j{9rb$9ZDD?lQ) zn%ElUe(hb7oIqaihk~zBymDeaAERpz^u}hIA{M^a9=x@vc&MFzJYeU0OnE2T3{BU* z1g;$TN!c6vn?bX;N5Hz_22?8hL)46LC{)&9sKR$>U2AWaDoRe zk0F?amft}noRP)d@6KUR$sT-V{y``^YQiM08N>$Z!mld5pUkREpdBc%;j#3*7sY>q#Qui%5W-1I=rR5cnC~ADxGc0N(3-ySxJeC z%?mm<&cK$jV)P7gzpt$MiWU4c-}8n=RCyVUcxor4$dXsTiAn+kgvfzwn)?ARVG6a1zoAh)yF@Qk zv7{32qS#k`S=FYXX=cKr`@aC{7bmzFZs=&}WhuNcMlny;?s%%jX!s|>G4SDp)bLIS3ZtiKC#Ri z?uH$BJ1XdPnXF|nRCS9#+YJP2aF@Rpi9iU}4b~GwGXS+NX=~2|h8Q>dV8dYBjju~V zhyim_hNk*X?Le2YD<1KEAVZi>Vfp3~q$-VXknlDX)wly7y2=@nh{rn^*c|Zij1PrU zIz0VvG^rQHzV%|%uwZ$ZcR;2c@l-xI;zR%VQk)OJEH1bBuKoZ*-yvLy%wixgP<$EG zcheTl$D#!nnA!furBH19HbS~sryL6ngN?LYp?rOe7cnPgix^{oQOoHuS&yK6EXHco zuUIl3y5%WsHcYW_O6EsUaN#!xDw{1`Er>`WfszZ615dSUZ0Bzz`cX;s;=%z`atvN! zulag=;wxNYTrUkMcNS}kfn)A9K|9aFAKCS$Hb|eR5rwhf#ZWC|TU1l=XxB}+b6X+PnPuxF0p*lgdVStg4DQW|wF#c#2?W~CQGtOtVc3P~sU+}M@ zBur-%+_CWkL8d~j2clSMtW6)TxR`O`DQhqfb6L!Kx0NWcTnY{bLe)c>DmKn; zy9n%2BYi1tQxgOz7V1SBb+lm?YDe-Wnz>GCxp^pb9Rf6aSK>Z#pK;~s;SoQgUkU2u_5#apml_s2g383+-HOQ4T1!0M?uf-?IRp8m#x z8TJbdryj0g{L9dFy$?qn{CU<>pcp*|l(wTAeWy)=-WT?61CJ(uH-SW$d>CR4#|0nn zK~0XFpB+z`GS{HiL+p3B!F`!u66G>k;$GD?G+asJLBl)cyxDa7nfA9Y-<)Eo41ZDh zw?g9YX@dmKlJMujU_zku|5gpYFg=tb5g{Bkfs~K#fsk<5A_;DPo-XU=<|P99>V$i>zCHswE7RsKtx3M`z4Je`m3R z9l+hJhuQd^rVMf)TX2yWlr@02N!U9ZTUAkkC7lXox12^ClP#Q(>rL8?CP^ zmQrvKVrAXVC9*7=OsY1=g*D2A_kMc9LY7>5Gb4Wd=X!7AZvUypMEz5vy70EI+18^@mP)H9qF609|CD6F3DY8v3cwHuLm zLln1NdEMob(D^5~Wp%?m0WXKH-0>A_dE@4ovgB@x?UUadHP&kA5Q}gOUpa#XwO_{&#EpCY$hZex z({D&fa3}?wttLtwpa$V4Go|8Id@1$J(`ztb7v!=@k>g1A91!CCaTxAAyQD`qxTSg# zz*Br!cvtJDS>i^2yXoN8f45&|yE%X6@b%n$Jx1IaCV0WcRI5tQ>831p<$vut&RV0C z&~!6VzO@gZDAKlS*#*B;I^pth@xnIWh#n)GJ zRzngi1q(cL(U(@rZmwO6b3y1l%$OGknP5a%x~N-e7Gb}9)x6*n?2hANQb5mL@IF?8b=|DnQ`s*Dm?5=g-RLnn zLQ;~H%wz!wuy4GlK)s_2pkjyl4Me0GeUP*B5j#Ae(9 zCg>7RgYq3x@N2@O?a(CGkhQlkugVY3-mP@`yly1;KMa8Vz>kB%CW(oE_ng^6O8Gx0;S`@mfT6HmV-kay}VP*Uc9TcdX;d) zL95-UApWTPI=9?<`v5zvUdlxV$1`Y<_QIbcw}^^qKXjM_dAi+wMe!2?BxHE-eS~#X z`vD-TeW7P|LXP-Ee9JEw_iFSBUY=Gxm?e3Al)GCk@b>!pes1o8C^!bIB{@4cW6s6* zS-T71XA;j-!WKpE2(+*e_Fr7zm3wv^z@(`YC(fwL&*R2_?teUwgl7dmoh&`@%JgjC z*Pi*=Ft(sXTpY&hac5K)r&t$fv52V}J|zkbb$GX*WZiSxL_TQntb`g7YauXT#J7NI z?xr8hZF*O&$)zN{cc0by4RJCi)E~o@jby7f*D)Hqz)>6eWL;+$(+dY^$BIZ!!^6@Jz2GTDN(1rAzTYt z`vo^mWt6Tm*ylA)FI+ZpS_TX#Cz*rsi_J9<&w58BY-=DY{0;SZ6vc21>CL2R*tfxos4vl!)gbS{tmco`P%A=MjY8ivg&}aSZh~FfE`xkhzN~JE>kRzbqYo#!mQ*X*CT~38o4ua zD-|er^d>WZ$mip;q?I-DA1AmYy>Y#R2v^(-@){bKDV;nIPt!Q1DPNOfRE61E)tCtuYYuG1#H0B~(Kie4= z7wV%@6C1WA!qr1g#^LLF{l`|~oXoAu2d|+;vTp9$76cYT{U_qK>ga7liMSYrQMP;( z!IxJ13r$V(w)E-3)!qniLi~pnJ^OVA_+ipy(o_NDNifn$f zN}t62q{06-H~PejRhp{SR;>ce;;tk0KFC9m@sPQbPm;U4=#p#!1mz;*DNCEz~)9L##z`64&_HOReRf^6u?i7F?%r&atbc6RSSuWKGhPAt61 zv8nN0ct%SuSqdL)59U$EQ9 z^tA=|8_q1;KC~E2zJ&~lg+hAqb$mOMudi?Wm~};JL&t2r+u5iDz8Y+oIm}Eg+pYwb z&HoC~$$N#N%7afuP}$(Tbw60htqqklkr3hg2V*b5d-vQlEU-893{hG(WJL%p$86Xc zpc2$ou{_AJN+#(M0{0>)kN2eynLN-XVUr*zrj)Dtu#4^lCB~|AXQ6B*Vtoj7^tY1z z(Dn;G*tuQh7n$j&b_`=GEtVfF4_8uoO(ICSFTy3kB-cjXwx!j~>+UY`$*BA9V(nr& z&i&7Fit2#NGcb-9A0MC2+7oM%0UU2CCp

    Zqm-!E$4_P+|S0j8}Bak^N374M*9=P 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 From 9e4814a17047bcc9ec112007631d45846d543ba1 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 10:31:43 +0800 Subject: [PATCH 020/655] UserGuide.adoc: Fixed formatting issues --- README.adoc | 1 - docs/UserGuide.adoc | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index ab334bd8d0e5..32aac6630f85 100644 --- a/README.adoc +++ b/README.adoc @@ -15,7 +15,6 @@ image::images/Ui.png[width="600"] endif::[] * This is a desktop social welfare event and volunteer management application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). -* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language. * It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules. * The target audience is social welfare organisations that want to better manage their volunteers & events, and gain further statistical insights from the data. ** Manage contacts and events faster than a typical mouse/GUI driven app diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 8081d38c6c31..9d6fa28c69e6 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -21,7 +21,7 @@ By: `Team W16-2` Since: `Sept 2018` Licence: `MIT` SocialCare morphs the given AB4 application into a volunteer management system that allows Social Welfare Organisations to better manage their volunteers & events, and gain further statistical insights from the data. + -SocialCare is for organizations which *prefer to use a desktop app for managing their volunteers *. More importantly, SocialCare is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialCare can get your volunteer and event management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! +SocialCare is for organizations which *prefer to use a desktop app for managing their volunteers.* More importantly, SocialCare is *optimized for those who prefer to work with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialCare can get your volunteer and event management tasks done faster than traditional GUI apps. Interested? Jump to the <> to get started. Enjoy! == Quick Start @@ -129,6 +129,11 @@ Format: `exit` Switches context to volunteers or events + Format: `switch` +**** +* A context refers to the management screen that users will see. +* Switch would switch the data view and allow the user to switch between two distinct entities: volunteers and events. +**** + Examples: * `switch -e` + @@ -184,7 +189,7 @@ Format: `delete INDEX` Examples: -* `delete 1 + +* `delete 1` + Deletes the details of the volunteer specified at index 1 === Event Management From acf9d7d513449acd156f9837d9b1e1d05a51a0de Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 13:00:01 +0800 Subject: [PATCH 021/655] Add Event class and associated parameter classes --- .../java/seedu/address/model/event/Date.java | 102 ++++++++++ .../address/model/event/Description.java | 57 ++++++ .../java/seedu/address/model/event/Event.java | 184 ++++++++++++++++++ .../java/seedu/address/model/event/Id.java | 4 + .../seedu/address/model/event/Location.java | 56 ++++++ .../java/seedu/address/model/event/Name.java | 59 ++++++ .../java/seedu/address/model/event/Time.java | 82 ++++++++ .../address/model/event/UniqueEventList.java | 135 +++++++++++++ .../exceptions/DuplicateEventException.java | 11 ++ .../exceptions/EventNotFoundException.java | 6 + .../seedu/address/model/event/DateTest.java | 4 + .../seedu/address/model/event/NameTest.java | 4 + 12 files changed, 704 insertions(+) create mode 100644 src/main/java/seedu/address/model/event/Date.java create mode 100644 src/main/java/seedu/address/model/event/Description.java create mode 100644 src/main/java/seedu/address/model/event/Event.java create mode 100644 src/main/java/seedu/address/model/event/Id.java create mode 100644 src/main/java/seedu/address/model/event/Location.java create mode 100644 src/main/java/seedu/address/model/event/Name.java create mode 100644 src/main/java/seedu/address/model/event/Time.java create mode 100644 src/main/java/seedu/address/model/event/UniqueEventList.java create mode 100644 src/main/java/seedu/address/model/event/exceptions/DuplicateEventException.java create mode 100644 src/main/java/seedu/address/model/event/exceptions/EventNotFoundException.java create mode 100644 src/test/java/seedu/address/model/event/DateTest.java create mode 100644 src/test/java/seedu/address/model/event/NameTest.java diff --git a/src/main/java/seedu/address/model/event/Date.java b/src/main/java/seedu/address/model/event/Date.java new file mode 100644 index 000000000000..4eb4bc225ca5 --- /dev/null +++ b/src/main/java/seedu/address/model/event/Date.java @@ -0,0 +1,102 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +/** + * Represents an Event's date in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidDate(String)} + */ +public class Date { + public static final String MESSAGE_DATE_CONSTRAINTS = + "Event dates can take in DD-MM-YYYY input, and should not be blank"; + + /* + * First character of DD must be 0-3 + * First character of MM must be 0 or 1 + * Regex not enough to check for valid dates. Need to use a SimpleDateFormat parser as well. + */ + public static final String DATE_VALIDATION_REGEX = "[0-3]\\d-[01]\\d-\\d{4}"; + + public final String value; + + /** + * Constructs an {@code Date}. + * + * @param date A valid Date. + */ + public Date(String date) { + requireNonNull(date); + checkArgument(isValidDate(date), MESSAGE_DATE_CONSTRAINTS); + value = date; + } + + /** + * Returns true if a given string is a valid date. + */ + public static boolean isValidDate(String test) { + if (!test.matches(DATE_VALIDATION_REGEX)) { + return false; + } + + SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); + df.setLenient(false); + + try { + df.parse(test); + return true; + } catch (ParseException ex) { + return false; + } + } + + /** + * Returns true if current date falls on an earlier date or on the same date as the other date. + */ + public boolean isLessThanOrEqualTo(Date otherDate) { + if (otherDate == this) { + return true; + } + + String[] dateParts = this.toString().split("-"); + //parseInt ignores leading zeros like 01 or 09 when converting from String to int + int year = Integer.parseInt(dateParts[2]); + int month = Integer.parseInt(dateParts[1]); + int day = Integer.parseInt(dateParts[0]); + + String[] otherDateParts = otherDate.toString().split("-"); + int otherYear = Integer.parseInt(otherDateParts[2]); + int otherMonth = Integer.parseInt(otherDateParts[1]); + int otherDay = Integer.parseInt(otherDateParts[0]); + + if (year > otherYear) { + return false; + } else if (month > otherMonth) { + return false; + } else if (day > otherDay) { + return false; + } + + return true; + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Date // instanceof handles nulls + && value.equals(((Date) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/event/Description.java b/src/main/java/seedu/address/model/event/Description.java new file mode 100644 index 000000000000..2b35495d084f --- /dev/null +++ b/src/main/java/seedu/address/model/event/Description.java @@ -0,0 +1,57 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents an Event's description in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + */ +public class Description { + public static final String MESSAGE_DESCRIPTION_CONSTRAINTS = + "Descriptions should only contain alphanumeric characters and spaces, and it should not be blank"; + + /* + * The first character of the name must not be a whitespace, + * otherwise " " (a blank string) becomes a valid input. + */ + public static final String DESCRIPTION_VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; + + public final String description; + + /** + * Constructs a {@code Description}. + * + * @param description A valid description. + */ + public Description(String description) { + requireNonNull(description); + checkArgument(isValidDescription(description), MESSAGE_DESCRIPTION_CONSTRAINTS); + this.description = description; + } + + /** + * Returns true if a given string is a valid name. + */ + public static boolean isValidDescription(String test) { + return test.matches(DESCRIPTION_VALIDATION_REGEX); + } + + + @Override + public String toString() { + return description; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Description // instanceof handles nulls + && description.equals(((Description) other).description)); // state check + } + + @Override + public int hashCode() { + return description.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java new file mode 100644 index 000000000000..baff7f94c441 --- /dev/null +++ b/src/main/java/seedu/address/model/event/Event.java @@ -0,0 +1,184 @@ +package seedu.address.model.event; + +import static seedu.address.commons.util.AppUtil.checkArgument; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import seedu.address.model.tag.Tag; + +/** + * Represents an Event in the address book. + * Guarantees: details are present and not null, field values are validated, immutable. + */ +public class Event { + + public static final String MESSAGE_START_END_DATE_CONSTRAINTS = + "Start date should only be less than or equal to end date"; + + public static final String MESSAGE_START_END_TIME_CONSTRAINTS = + "Start time should only be less than or equal to end time"; + + // Identity fields + //private final Id id; + private final Name name; + private final Location location; + private final Date startDate; + private final Date endDate; + + // Data fields + private final Time startTime; + private final Time endTime; + private final Description description; + private final Set tags = new HashSet<>(); + + /** + * Every field must be present and not null. + */ + public Event(Id id, Name name, Location location, Date startDate, Date endDate, + Time startTime, Time endTime, Description description, Set tags) { + //requireAllNonNull(id, name, location, startDate, endDate, description, tags); + requireAllNonNull(name, location, startDate, endDate, description, tags); + + //this.id = id; + this.name = name; + this.location = location; + + this.startDate = startDate; + this.endDate = endDate; + checkArgument(isValidStartAndEndDate(startDate, endDate), MESSAGE_START_END_DATE_CONSTRAINTS); + + this.startTime = startTime; + this.endTime = endTime; + checkArgument(isValidStartAndEndTime(startTime, endTime), MESSAGE_START_END_TIME_CONSTRAINTS); + + this.description = description; + this.tags.addAll(tags); + } + + /** + * Returns true if a given start date is less than or equal to end date. + */ + public static boolean isValidStartAndEndDate(Date startDate, Date endDate) { + return startDate.isLessThanOrEqualTo(endDate); + } + + /** + * Returns true if a given start time is less than or equal to end time. + */ + public static boolean isValidStartAndEndTime(Time startTime, Time endTime) { + return startTime.isLessThanOrEqualTo(endTime); + } + + /*public Id getId() { + return id; + }*/ + + public Name getName() { + return name; + } + + public Location getLocation() { + return location; + } + + public Date getStartDate() { + return startDate; + } + + public Date getEndDate() { + return endDate; + } + + public Time getStartTime() { + return startTime; + } + + public Time getEndTime() { + return endTime; + } + + public Description getDescription() { + return description; + } + + /** + * Returns an immutable tag set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public Set getTags() { + return Collections.unmodifiableSet(tags); + } + + + /** + * Returns true if both Events of the same name have at least one other identity field that is the same. + * This defines a weaker notion of equality between two events. + */ + public boolean isSameEvent(Event otherEvent) { + if (otherEvent == this) { + return true; + } + + return otherEvent != null + && otherEvent.getName().equals(getName()) + && (otherEvent.getLocation().equals(getLocation()) || otherEvent.getStartDate().equals(getStartDate()) + || otherEvent.getEndDate().equals(getEndDate())); + } + + /** + * Returns true if both events have the same identity and data fields. + * This defines a stronger notion of equality between two events. + */ + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof Event)) { + return false; + } + + Event otherEvent = (Event) other; + return otherEvent.getName().equals(getName()) + && otherEvent.getLocation().equals(getLocation()) + && otherEvent.getStartDate().equals(getStartDate()) + && otherEvent.getEndDate().equals(getEndDate()) + && otherEvent.getStartTime().equals(getEndTime()) + && otherEvent.getEndTime().equals(getEndTime()) + && otherEvent.getDescription().equals(getDescription()) + && otherEvent.getTags().equals(getTags()); + } + + @Override + public int hashCode() { + // use this method for custom fields hashing instead of implementing your own + return Objects.hash(name, location, startDate, endDate, startTime, endTime, description, tags); + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append(getName()) + .append(" Location: ") + .append(getLocation()) + .append(" Start Date: ") + .append(getStartDate()) + .append(" End Date: ") + .append(getEndDate()) + .append(" Start Time.java: ") + .append(getStartTime()) + .append(" End Time.java: ") + .append(getEndTime()) + .append(" Description: ") + .append(getDescription()) + .append(" Tags: "); + getTags().forEach(builder::append); + return builder.toString(); + } + +} diff --git a/src/main/java/seedu/address/model/event/Id.java b/src/main/java/seedu/address/model/event/Id.java new file mode 100644 index 000000000000..13a8677d33f7 --- /dev/null +++ b/src/main/java/seedu/address/model/event/Id.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class Id { +} diff --git a/src/main/java/seedu/address/model/event/Location.java b/src/main/java/seedu/address/model/event/Location.java new file mode 100644 index 000000000000..fa1d2691981d --- /dev/null +++ b/src/main/java/seedu/address/model/event/Location.java @@ -0,0 +1,56 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents an Event's location in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidLocation(String)} + */ +public class Location { + public static final String MESSAGE_LOCATION_CONSTRAINTS = + "Locations can take any values, and it should not be blank"; + + /* + * The first character of the location must not be a whitespace, + * otherwise " " (a blank string) becomes a valid input. + */ + public static final String LOCATION_VALIDATION_REGEX = "[^\\s].*"; + + public final String value; + + /** + * Constructs an {@code Location}. + * + * @param location A valid location. + */ + public Location(String location) { + requireNonNull(location); + checkArgument(isValidLocation(location), MESSAGE_LOCATION_CONSTRAINTS); + value = location; + } + + /** + * Returns true if a given string is a valid location. + */ + public static boolean isValidLocation(String test) { + return test.matches(LOCATION_VALIDATION_REGEX); + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Location // instanceof handles nulls + && value.equals(((Location) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/event/Name.java b/src/main/java/seedu/address/model/event/Name.java new file mode 100644 index 000000000000..fdb6d04de6af --- /dev/null +++ b/src/main/java/seedu/address/model/event/Name.java @@ -0,0 +1,59 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents an Event's name in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + */ +public class Name { + + public static final String MESSAGE_NAME_CONSTRAINTS = + "Names should only contain alphanumeric characters and spaces, and it should not be blank"; + + /* + * The first character of the name must not be a whitespace, + * otherwise " " (a blank string) becomes a valid input. + */ + public static final String NAME_VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; + + public final String fullName; + + /** + * Constructs a {@code Name}. + * + * @param name A valid name. + */ + public Name(String name) { + requireNonNull(name); + checkArgument(isValidName(name), MESSAGE_NAME_CONSTRAINTS); + fullName = name; + } + + /** + * Returns true if a given string is a valid name. + */ + public static boolean isValidName(String test) { + return test.matches(NAME_VALIDATION_REGEX); + } + + + @Override + public String toString() { + return fullName; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Name // instanceof handles nulls + && fullName.equals(((Name) other).fullName)); // state check + } + + @Override + public int hashCode() { + return fullName.hashCode(); + } + +} diff --git a/src/main/java/seedu/address/model/event/Time.java b/src/main/java/seedu/address/model/event/Time.java new file mode 100644 index 000000000000..cd88088ef8a7 --- /dev/null +++ b/src/main/java/seedu/address/model/event/Time.java @@ -0,0 +1,82 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents an Event's time in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidTime(String)} + */ +public class Time { + public static final String MESSAGE_TIME_CONSTRAINTS = + "Event times can take in HH:mm input, and should not be blank"; + + /* + * HH accepts 0-9, 1-9, 00-09, 10-19, 20-23 + * mm accepts 00-59 + */ + public static final String TIME_VALIDATION_REGEX = "([01]?[0-9]|2[0-3]):[0-5][0-9]"; + + public final String value; + + /** + * Constructs an {@code Time}. + * + * @param time A valid Time. + */ + public Time(String time) { + requireNonNull(time); + checkArgument(isValidTime(time), MESSAGE_TIME_CONSTRAINTS); + value = time; + } + + /** + * Returns true if a given string is a valid time. + */ + public static boolean isValidTime(String test) { + return test.matches(TIME_VALIDATION_REGEX); + } + + /** + * Returns true if current time occurs at an earlier period or at the same period as the other time. + */ + public boolean isLessThanOrEqualTo(Time otherTime) { + if (otherTime == this) { + return true; + } + + String[] timeParts = this.toString().split(":"); + //parseInt ignores leading zeros like 01 or 09 when converting from String to int + int minute = Integer.parseInt(timeParts[1]); + int hour = Integer.parseInt(timeParts[0]); + + String[] otherTimeParts = otherTime.toString().split("-"); + int otherMinute = Integer.parseInt(otherTimeParts[1]); + int otherHour = Integer.parseInt(otherTimeParts[0]); + + if (hour > otherHour) { + return false; + } else if (minute > otherMinute) { + return false; + } + + return true; + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Time // instanceof handles nulls + && value.equals(((Time) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/event/UniqueEventList.java b/src/main/java/seedu/address/model/event/UniqueEventList.java new file mode 100644 index 000000000000..641c40c1a157 --- /dev/null +++ b/src/main/java/seedu/address/model/event/UniqueEventList.java @@ -0,0 +1,135 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Iterator; +import java.util.List; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import seedu.address.model.event.exceptions.DuplicateEventException; +import seedu.address.model.event.exceptions.EventNotFoundException; + +/** + * A list of events that enforces uniqueness between its elements and does not allow nulls. + * An event is considered unique by comparing using {@code Event#isSameEvent(Event)}. As such, adding and updating of + * events uses Event#isSameEvent(Event) for equality so as to ensure that the event being added or updated is + * unique in terms of identity in the UniqueEventList. However, the removal of a event uses Event#equals(Object) so + * as to ensure that the event with exactly the same fields will be removed. + * + * Supports a minimal set of list operations. + * + * @see Event#isSameEvent(Event) + */ +public class UniqueEventList implements Iterable { + + private final ObservableList internalList = FXCollections.observableArrayList(); + + /** + * Returns true if the list contains an equivalent event as the given argument. + */ + public boolean contains(Event toCheck) { + requireNonNull(toCheck); + return internalList.stream().anyMatch(toCheck::isSameEvent); + } + + /** + * Adds an event to the list. + * The event must not already exist in the list. + */ + public void add(Event toAdd) { + requireNonNull(toAdd); + if (contains(toAdd)) { + throw new DuplicateEventException(); + } + internalList.add(toAdd); + } + + /** + * Replaces the event {@code target} in the list with {@code editedEvent}. + * {@code target} must exist in the list. + * The event identity of {@code editedEvent} must not be the same as another existing event in the list. + */ + public void setEvent(Event target, Event editedEvent) { + requireAllNonNull(target, editedEvent); + + int index = internalList.indexOf(target); + if (index == -1) { + throw new EventNotFoundException(); + } + + if (!target.isSameEvent(editedEvent) && contains(editedEvent)) { + throw new DuplicateEventException(); + } + + internalList.set(index, editedEvent); + } + + /** + * Removes the equivalent event from the list. + * The event must exist in the list. + */ + public void remove(Event toRemove) { + requireNonNull(toRemove); + if (!internalList.remove(toRemove)) { + throw new EventNotFoundException(); + } + } + + public void setEvents(UniqueEventList replacement) { + requireNonNull(replacement); + internalList.setAll(replacement.internalList); + } + + /** + * Replaces the contents of this list with {@code events}. + * {@code events} must not contain duplicate events. + */ + public void setEvents(List events) { + requireAllNonNull(events); + if (!eventsAreUnique(events)) { + throw new DuplicateEventException(); + } + + internalList.setAll(events); + } + + /** + * Returns the backing list as an unmodifiable {@code ObservableList}. + */ + public ObservableList asUnmodifiableObservableList() { + return FXCollections.unmodifiableObservableList(internalList); + } + + @Override + public Iterator iterator() { + return internalList.iterator(); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof UniqueEventList // instanceof handles nulls + && internalList.equals(((UniqueEventList) other).internalList)); + } + + @Override + public int hashCode() { + return internalList.hashCode(); + } + + /** + * Returns true if {@code events} contains only unique events. + */ + private boolean eventsAreUnique(List events) { + for (int i = 0; i < events.size() - 1; i++) { + for (int j = i + 1; j < events.size(); j++) { + if (events.get(i).isSameEvent(events.get(j))) { + return false; + } + } + } + return true; + } +} diff --git a/src/main/java/seedu/address/model/event/exceptions/DuplicateEventException.java b/src/main/java/seedu/address/model/event/exceptions/DuplicateEventException.java new file mode 100644 index 000000000000..d213bedd5d25 --- /dev/null +++ b/src/main/java/seedu/address/model/event/exceptions/DuplicateEventException.java @@ -0,0 +1,11 @@ +package seedu.address.model.event.exceptions; + +/** + * Signals that the operation will result in duplicate Events (Events are considered duplicates if they have the same + * identity). + */ +public class DuplicateEventException extends RuntimeException { + public DuplicateEventException() { + super("Operation would result in duplicate event"); + } +} diff --git a/src/main/java/seedu/address/model/event/exceptions/EventNotFoundException.java b/src/main/java/seedu/address/model/event/exceptions/EventNotFoundException.java new file mode 100644 index 000000000000..5117db006eaa --- /dev/null +++ b/src/main/java/seedu/address/model/event/exceptions/EventNotFoundException.java @@ -0,0 +1,6 @@ +package seedu.address.model.event.exceptions; + +/** + * Signals that the operation is unable to find the specified event. + */ +public class EventNotFoundException extends RuntimeException {} diff --git a/src/test/java/seedu/address/model/event/DateTest.java b/src/test/java/seedu/address/model/event/DateTest.java new file mode 100644 index 000000000000..44b5de97ba9a --- /dev/null +++ b/src/test/java/seedu/address/model/event/DateTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class DateTest { +} diff --git a/src/test/java/seedu/address/model/event/NameTest.java b/src/test/java/seedu/address/model/event/NameTest.java new file mode 100644 index 000000000000..eaa1769ea870 --- /dev/null +++ b/src/test/java/seedu/address/model/event/NameTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class NameTest { +} From 11d65cba3bd3b72ae1a8fea3174d3a459d5afff2 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 13:05:44 +0800 Subject: [PATCH 022/655] Add tests for Event Name and Date classes --- .../seedu/address/model/event/DateTest.java | 56 +++++++++++++++++++ .../seedu/address/model/event/NameTest.java | 37 ++++++++++++ 2 files changed, 93 insertions(+) diff --git a/src/test/java/seedu/address/model/event/DateTest.java b/src/test/java/seedu/address/model/event/DateTest.java index 44b5de97ba9a..4f1e8915e6f0 100644 --- a/src/test/java/seedu/address/model/event/DateTest.java +++ b/src/test/java/seedu/address/model/event/DateTest.java @@ -1,4 +1,60 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + public class DateTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Date(null)); + } + + @Test + public void constructor_invalidDate_throwsIllegalArgumentException() { + String invalidDate = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Date(invalidDate)); + } + + @Test + public void isValidDate() { + // null Date + Assert.assertThrows(NullPointerException.class, () -> Date.isValidDate(null)); + + // blank Date + assertFalse(Date.isValidDate("")); // empty string + assertFalse(Date.isValidDate(" ")); // spaces only + + // missing parts + assertFalse(Date.isValidDate("-12-2018")); // missing day + assertFalse(Date.isValidDate("31--2018")); // missing month + assertFalse(Date.isValidDate("02-05-")); // missing year + + // invalid parts + assertFalse(Date.isValidDate("123-08-2008")); // invalid day with 3 characters + assertFalse(Date.isValidDate("02-123-2008")); // invalid month with 3 characters + assertFalse(Date.isValidDate("02-12-20081")); // invalid year with 5 characters + assertFalse(Date.isValidDate("42-08-2008")); // invalid day with first character 4 + assertFalse(Date.isValidDate("39-08-2020")); // invalid day with first character 3 + assertFalse(Date.isValidDate("05-13-2020")); // invalid month more than 12 + assertFalse(Date.isValidDate("02--05-2018")); // double dash between day and month + assertFalse(Date.isValidDate("02-05--2018")); // double dash between month and year + assertFalse(Date.isValidDate("02/05/2018")); // invalid delimiter + assertFalse(Date.isValidDate("29-02-2018")); // non-leap year 2018 + assertFalse(Date.isValidDate("31-04-2018")); // invalid day for April + assertFalse(Date.isValidDate("31-06-2018")); // invalid day for June + assertFalse(Date.isValidDate("31-09-2018")); // invalid day for September + assertFalse(Date.isValidDate("31-11-2018")); // invalid day for September + + // valid Date + assertTrue(Date.isValidDate("05-08-2018")); + assertTrue(Date.isValidDate("01-01-2018")); // first day of January + assertTrue(Date.isValidDate("15-06-2018")); // middle of June + assertTrue(Date.isValidDate("31-12-2018")); // last day of December + assertTrue(Date.isValidDate("29-02-2020")); // leap year 2020 + assertTrue(Date.isValidDate("29-02-2024")); // leap year 2024 + } } diff --git a/src/test/java/seedu/address/model/event/NameTest.java b/src/test/java/seedu/address/model/event/NameTest.java index eaa1769ea870..d6e000e498d3 100644 --- a/src/test/java/seedu/address/model/event/NameTest.java +++ b/src/test/java/seedu/address/model/event/NameTest.java @@ -1,4 +1,41 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + public class NameTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Name(null)); + } + + @Test + public void constructor_invalidName_throwsIllegalArgumentException() { + String invalidName = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Name(invalidName)); + } + + @Test + public void isValidName() { + // null name + Assert.assertThrows(NullPointerException.class, () -> Name.isValidName(null)); + + // invalid name + assertFalse(Name.isValidName("")); // empty string + assertFalse(Name.isValidName(" ")); // spaces only + assertFalse(Name.isValidName("^")); // only non-alphanumeric characters + assertFalse(Name.isValidName("charity*")); // contains non-alphanumeric characters + + // valid name + assertTrue(Name.isValidName("donation")); // alphabets only + assertTrue(Name.isValidName("12345")); // numbers only + assertTrue(Name.isValidName("flag 2nd")); // alphanumeric characters + assertTrue(Name.isValidName("Flag Day")); // with capital letters + assertTrue(Name.isValidName("Blood Donation Drive 2018")); // long names + } } From 15a9a931742dce3de328fce26871a58da022b055 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 13:50:20 +0800 Subject: [PATCH 023/655] Add Event operations to AddressBook --- .../java/seedu/address/model/AddressBook.java | 62 ++++++++++++++++++- .../address/model/ReadOnlyAddressBook.java | 7 +++ 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 7f85c8b9258b..05f094b3993e 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -5,6 +5,8 @@ import java.util.List; import javafx.collections.ObservableList; +import seedu.address.model.event.Event; +import seedu.address.model.event.UniqueEventList; import seedu.address.model.person.Person; import seedu.address.model.person.UniquePersonList; @@ -15,6 +17,7 @@ public class AddressBook implements ReadOnlyAddressBook { private final UniquePersonList persons; + private final UniqueEventList events; /* * The 'unusual' code block below is an non-static initialization block, sometimes used to avoid duplication @@ -25,6 +28,7 @@ public class AddressBook implements ReadOnlyAddressBook { */ { persons = new UniquePersonList(); + events = new UniqueEventList(); } public AddressBook() {} @@ -47,6 +51,14 @@ public void setPersons(List persons) { this.persons.setPersons(persons); } + /** + * Replaces the contents of the event list with {@code events}. + * {@code events} must not contain duplicate events. + */ + public void setEvents(List events) { + this.events.setEvents(events); + } + /** * Resets the existing data of this {@code AddressBook} with {@code newData}. */ @@ -54,6 +66,7 @@ public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); setPersons(newData.getPersonList()); + setEvents(newData.getEventList()); } //// person-level operations @@ -66,6 +79,14 @@ public boolean hasPerson(Person person) { return persons.contains(person); } + /** + * Returns true if an event with the same identity as {@code event} exists in the address book. + */ + public boolean hasEvent(Event event) { + requireNonNull(event); + return events.contains(event); + } + /** * Adds a person to the address book. * The person must not already exist in the address book. @@ -74,6 +95,14 @@ public void addPerson(Person p) { persons.add(p); } + /** + * Adds an event to the address book. + * The event must not already exist in the address book. + */ + public void addEvent(Event e) { + events.add(e); + } + /** * Replaces the given person {@code target} in the list with {@code editedPerson}. * {@code target} must exist in the address book. @@ -85,6 +114,17 @@ public void updatePerson(Person target, Person editedPerson) { persons.setPerson(target, editedPerson); } + /** + * Replaces the given event {@code target} in the list with {@code editedEvent}. + * {@code target} must exist in the address book. + * The event identity of {@code editedEvent} must not be the same as another existing event in the address book. + */ + public void updateEvent(Event target, Event editedEvent) { + requireNonNull(editedEvent); + + events.setEvent(target, editedEvent); + } + /** * Removes {@code key} from this {@code AddressBook}. * {@code key} must exist in the address book. @@ -93,11 +133,20 @@ public void removePerson(Person key) { persons.remove(key); } + /** + * Removes {@code key} from this {@code AddressBook}. + * {@code key} must exist in the address book. + */ + public void removeEvent(Event key) { + events.remove(key); + } + //// util methods @Override public String toString() { - return persons.asUnmodifiableObservableList().size() + " persons"; + return persons.asUnmodifiableObservableList().size() + " persons. " + + events.asUnmodifiableObservableList().size() + " events."; // TODO: refine later } @@ -106,15 +155,22 @@ public ObservableList getPersonList() { return persons.asUnmodifiableObservableList(); } + @Override + public ObservableList getEventList() { + return events.asUnmodifiableObservableList(); + } + @Override public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof AddressBook // instanceof handles nulls - && persons.equals(((AddressBook) other).persons)); + && persons.equals(((AddressBook) other).persons) + && events.equals(((AddressBook) other).events)); } @Override public int hashCode() { - return persons.hashCode(); + return persons.hashCode() + events.hashCode(); + // TODO: Improve way to hashCode AddressBook with multiple lists } } diff --git a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java index 6ddc2cd9a290..1b595f011762 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java +++ b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java @@ -1,6 +1,7 @@ package seedu.address.model; import javafx.collections.ObservableList; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -14,4 +15,10 @@ public interface ReadOnlyAddressBook { */ ObservableList getPersonList(); + /** + * Returns an unmodifiable view of the events list. + * This list will not contain any duplicate persons. + */ + ObservableList getEventList(); + } From b80708540501469de3f0e74a16201c11cbcb9bfc Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 13:51:43 +0800 Subject: [PATCH 024/655] Add Event operations to ModelManager.java and Model.java --- src/main/java/seedu/address/model/Model.java | 37 ++++++++++++++ .../seedu/address/model/ModelManager.java | 50 ++++++++++++++++++- 2 files changed, 85 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index ac4521f33199..78b371791271 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -3,6 +3,7 @@ import java.util.function.Predicate; import javafx.collections.ObservableList; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -12,6 +13,9 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; + /** {@code Predicate} that always evaluate to true */ + Predicate PREDICATE_SHOW_ALL_EVENTS = unused -> true; + /** Clears existing backing model and replaces with the provided new data. */ void resetData(ReadOnlyAddressBook newData); @@ -42,6 +46,30 @@ public interface Model { */ void updatePerson(Person target, Person editedPerson); + /** + * Returns true if an event with the same identity as {@code event} exists in the address book. + */ + boolean hasEvent(Event event); + + /** + * Deletes the given event. + * The event must exist in the address book. + */ + void deleteEvent(Event target); + + /** + * Adds the given event. + * {@code event} must not already exist in the address book. + */ + void addEvent(Event event); + + /** + * Replaces the given event {@code target} with {@code editedEvent}. + * {@code target} must exist in the address book. + * The event identity of {@code editedEvent} must not be the same as another existing event in the address book. + */ + void updateEvent(Event target, Event editedEvent); + /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); @@ -51,6 +79,15 @@ public interface Model { */ void updateFilteredPersonList(Predicate predicate); + /** Returns an unmodifiable view of the filtered event list */ + ObservableList getFilteredEventList(); + + /** + * Updates the filter of the filtered event list to filter by the given {@code predicate}. + * @throws NullPointerException if {@code predicate} is null. + */ + void updateFilteredEventList(Predicate predicate); + /** * Returns true if the model has previous address book states to restore. */ diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index a664602ef5b1..a49a73888f8f 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -12,6 +12,7 @@ import seedu.address.commons.core.ComponentManager; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.model.AddressBookChangedEvent; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -22,6 +23,7 @@ public class ModelManager extends ComponentManager implements Model { private final VersionedAddressBook versionedAddressBook; private final FilteredList filteredPersons; + private final FilteredList filteredEvents; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -34,6 +36,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, UserPrefs userPrefs) { versionedAddressBook = new VersionedAddressBook(addressBook); filteredPersons = new FilteredList<>(versionedAddressBook.getPersonList()); + filteredEvents = new FilteredList<>(versionedAddressBook.getEventList()); } public ModelManager() { @@ -83,7 +86,34 @@ public void updatePerson(Person target, Person editedPerson) { indicateAddressBookChanged(); } - //=========== Filtered Person List Accessors ============================================================= + @Override + public boolean hasEvent(Event event) { + requireNonNull(event); + return versionedAddressBook.hasEvent(event); + } + + @Override + public void deleteEvent(Event target) { + versionedAddressBook.removeEvent(target); + indicateAddressBookChanged(); + } + + @Override + public void addEvent(Event event) { + versionedAddressBook.addEvent(event); + updateFilteredEventList(PREDICATE_SHOW_ALL_EVENTS); + indicateAddressBookChanged(); + } + + @Override + public void updateEvent(Event target, Event editedEvent) { + requireAllNonNull(target, editedEvent); + + versionedAddressBook.updateEvent(target, editedEvent); + indicateAddressBookChanged(); + } + + //=========== Filtered Person and Event List Accessors ============================================================= /** * Returns an unmodifiable view of the list of {@code Person} backed by the internal list of @@ -100,6 +130,21 @@ public void updateFilteredPersonList(Predicate predicate) { filteredPersons.setPredicate(predicate); } + /** + * Returns an unmodifiable view of the list of {@code Event} backed by the internal list of + * {@code versionedAddressBook} + */ + @Override + public ObservableList getFilteredEventList() { + return FXCollections.unmodifiableObservableList(filteredEvents); + } + + @Override + public void updateFilteredEventList(Predicate predicate) { + requireNonNull(predicate); + filteredEvents.setPredicate(predicate); + } + //=========== Undo/Redo ================================================================================= @Override @@ -144,7 +189,8 @@ public boolean equals(Object obj) { // state check ModelManager other = (ModelManager) obj; return versionedAddressBook.equals(other.versionedAddressBook) - && filteredPersons.equals(other.filteredPersons); + && filteredPersons.equals(other.filteredPersons) + && filteredEvents.equals(other.filteredEvents); } } From 4ad9b13cff31e224e3f6008e66627ac98a776722 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 13:52:59 +0800 Subject: [PATCH 025/655] Add file path for eventlist.xml in UserPrefs.java --- src/main/java/seedu/address/model/UserPrefs.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/seedu/address/model/UserPrefs.java index 980b2b388852..75d7d5eb198d 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/seedu/address/model/UserPrefs.java @@ -13,6 +13,7 @@ public class UserPrefs { private GuiSettings guiSettings; private Path addressBookFilePath = Paths.get("data" , "addressbook.xml"); + private Path eventListFilePath = Paths.get("data", "eventlist.xml"); public UserPrefs() { setGuiSettings(500, 500, 0, 0); @@ -34,10 +35,18 @@ public Path getAddressBookFilePath() { return addressBookFilePath; } + public Path getEventListFilePath() { + return eventListFilePath; + } + public void setAddressBookFilePath(Path addressBookFilePath) { this.addressBookFilePath = addressBookFilePath; } + public void setEventListFilePath(Path eventListFilePath) { + this.eventListFilePath = eventListFilePath; + } + @Override public boolean equals(Object other) { if (other == this) { @@ -50,12 +59,13 @@ public boolean equals(Object other) { UserPrefs o = (UserPrefs) other; return Objects.equals(guiSettings, o.guiSettings) - && Objects.equals(addressBookFilePath, o.addressBookFilePath); + && Objects.equals(addressBookFilePath, o.addressBookFilePath) + && Objects.equals(eventListFilePath, o.eventListFilePath); } @Override public int hashCode() { - return Objects.hash(guiSettings, addressBookFilePath); + return Objects.hash(guiSettings, addressBookFilePath, eventListFilePath); } @Override @@ -63,6 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Gui Settings : " + guiSettings.toString()); sb.append("\nLocal data file location : " + addressBookFilePath); + sb.append("\nLocal event list data file location " + eventListFilePath); return sb.toString(); } From fa81184724a0ab14231bf4011560c72943aadf4c Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 14:46:59 +0800 Subject: [PATCH 026/655] Update Event class and associated Id class --- src/main/java/seedu/address/model/event/Event.java | 3 ++- src/main/java/seedu/address/model/event/Id.java | 4 ++++ src/main/java/seedu/address/storage/XmlAdaptedEvent.java | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/address/storage/XmlAdaptedEvent.java diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index baff7f94c441..6f258539056f 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -38,7 +38,8 @@ public class Event { /** * Every field must be present and not null. */ - public Event(Id id, Name name, Location location, Date startDate, Date endDate, + //Id to be added to constructor + public Event(Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { //requireAllNonNull(id, name, location, startDate, endDate, description, tags); requireAllNonNull(name, location, startDate, endDate, description, tags); diff --git a/src/main/java/seedu/address/model/event/Id.java b/src/main/java/seedu/address/model/event/Id.java index 13a8677d33f7..78d33ae28371 100644 --- a/src/main/java/seedu/address/model/event/Id.java +++ b/src/main/java/seedu/address/model/event/Id.java @@ -1,4 +1,8 @@ package seedu.address.model.event; +/** + * Represents an Event's id in the application. + * Guarantees: immutable; is valid as declared in {@link #isValidId(String)} + */ public class Id { } diff --git a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java new file mode 100644 index 000000000000..bcf1509e8f2f --- /dev/null +++ b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java @@ -0,0 +1,4 @@ +package seedu.address.storage; + +public class XmlAdaptedEvent { +} From f0953e428150e5140c4d69ac3d488d1461fa5fb8 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 14:48:20 +0800 Subject: [PATCH 027/655] Add getEventListFilePath() method to Storage.java and AddressBookStorage.java --- .../java/seedu/address/storage/AddressBookStorage.java | 8 +++++++- src/main/java/seedu/address/storage/Storage.java | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/storage/AddressBookStorage.java b/src/main/java/seedu/address/storage/AddressBookStorage.java index 4599182b3f92..6f2a19d940f0 100644 --- a/src/main/java/seedu/address/storage/AddressBookStorage.java +++ b/src/main/java/seedu/address/storage/AddressBookStorage.java @@ -17,6 +17,11 @@ public interface AddressBookStorage { */ Path getAddressBookFilePath(); + /** + * Returns the file path of the event list file. + */ + Path getEventListFilePath(); + /** * Returns AddressBook data as a {@link ReadOnlyAddressBook}. * Returns {@code Optional.empty()} if storage file is not found. @@ -28,7 +33,8 @@ public interface AddressBookStorage { /** * @see #getAddressBookFilePath() */ - Optional readAddressBook(Path filePath) throws DataConversionException, IOException; + Optional readAddressBook(Path addressBookFilePath, Path eventListFilePath) + throws DataConversionException, IOException; /** * Saves the given {@link ReadOnlyAddressBook} to the storage. diff --git a/src/main/java/seedu/address/storage/Storage.java b/src/main/java/seedu/address/storage/Storage.java index 28791127999b..839d2a296d81 100644 --- a/src/main/java/seedu/address/storage/Storage.java +++ b/src/main/java/seedu/address/storage/Storage.java @@ -24,6 +24,9 @@ public interface Storage extends AddressBookStorage, UserPrefsStorage { @Override Path getAddressBookFilePath(); + @Override + Path getEventListFilePath(); + @Override Optional readAddressBook() throws DataConversionException, IOException; From a714c6a63ac1e5f079be1e117e3fe08393ef8520 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 14:48:53 +0800 Subject: [PATCH 028/655] Add XmlAdaptedEvent.java --- .../address/storage/XmlAdaptedEvent.java | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) diff --git a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java index bcf1509e8f2f..c93bfdaa41e9 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java @@ -1,4 +1,182 @@ package seedu.address.storage; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.xml.bind.annotation.XmlElement; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Event; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; +import seedu.address.model.tag.Tag; + +/** + * JAXB-friendly version of the Event. + */ public class XmlAdaptedEvent { + public static final String MISSING_FIELD_MESSAGE_FORMAT = "Event's %s field is missing!"; + + @XmlElement(required = true) + private String name; + @XmlElement(required = true) + private String location; + @XmlElement(required = true) + private String startDate; + @XmlElement(required = true) + private String endDate; + @XmlElement(required = true) + private String startTime; + @XmlElement(required = true) + private String endTime; + @XmlElement(required = true) + private String description; + + @XmlElement + private List tagged = new ArrayList<>(); + + /** + * Constructs an XmlAdaptedPerson. + * This is the no-arg constructor that is required by JAXB. + */ + public XmlAdaptedEvent() {} + + /** + * Constructs an {@code XmlAdaptedPerson} with the given event details. + */ + public XmlAdaptedEvent(String name, String location, String startDate, String endDate, + String startTime, String endTime, String description, List tagged) { + this.name = name; + this.location = location; + this.startDate = startDate; + this.endDate = endDate; + this.startTime = startTime; + this.endTime = endTime; + this.description = description; + if (tagged != null) { + this.tagged = new ArrayList<>(tagged); + } + } + + /** + * Converts a given Event into this class for JAXB use. + * + * @param source future changes to this will not affect the created XmlAdaptedEvent + */ + public XmlAdaptedEvent(Event source) { + name = source.getName().fullName; + location = source.getLocation().value; + startDate = source.getStartDate().value; + endDate = source.getEndDate().value; + startTime = source.getStartTime().value; + endTime = source.getEndTime().value; + description = source.getDescription().description; + + tagged = source.getTags().stream() + .map(XmlAdaptedTag::new) + .collect(Collectors.toList()); + } + + /** + * Converts this jaxb-friendly adapted event object into the model's Event object. + * + * @throws IllegalValueException if there were any data constraints violated in the adapted event + */ + public Event toModelType() throws IllegalValueException { + final List eventTags = new ArrayList<>(); + for (XmlAdaptedTag tag : tagged) { + eventTags.add(tag.toModelType()); + } + + if (name == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); + } + if (!Name.isValidName(name)) { + throw new IllegalValueException(Name.MESSAGE_NAME_CONSTRAINTS); + } + final Name modelName = new Name(name); + + if (location == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + Location.class.getSimpleName())); + } + if (!Location.isValidLocation(location)) { + throw new IllegalValueException(Location.MESSAGE_LOCATION_CONSTRAINTS); + } + final Location modelLocation = new Location(location); + + if (startDate == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName())); + } + if (!Date.isValidDate(startDate)) { + throw new IllegalValueException(Date.MESSAGE_DATE_CONSTRAINTS); + } + final Date modelStartDate = new Date(startDate); + + if (endDate == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName())); + } + if (!Date.isValidDate(endDate)) { + throw new IllegalValueException(Date.MESSAGE_DATE_CONSTRAINTS); + } + final Date modelEndDate = new Date(endDate); + + if (startTime == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName())); + } + if (!Time.isValidTime(startTime)) { + throw new IllegalValueException(Time.MESSAGE_TIME_CONSTRAINTS); + } + final Time modelStartTime = new Time(startTime); + + if (endTime == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName())); + } + if (!Time.isValidTime(endTime)) { + throw new IllegalValueException(Time.MESSAGE_TIME_CONSTRAINTS); + } + final Time modelEndTime = new Time(endTime); + + if (description == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + Description.class.getSimpleName())); + } + if (!Description.isValidDescription(description)) { + throw new IllegalValueException(Description.MESSAGE_DESCRIPTION_CONSTRAINTS); + } + final Description modelDescription = new Description(description); + + + final Set modelTags = new HashSet<>(eventTags); + return new Event(modelName, modelLocation, modelStartDate, modelEndDate, modelStartTime, modelEndTime, + modelDescription, modelTags); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof XmlAdaptedEvent)) { + return false; + } + + XmlAdaptedEvent otherPerson = (XmlAdaptedEvent) other; + return Objects.equals(name, otherPerson.name) + && Objects.equals(location, otherPerson.location) + && Objects.equals(startDate, otherPerson.startDate) + && Objects.equals(endDate, otherPerson.endDate) + && Objects.equals(startTime, otherPerson.startTime) + && Objects.equals(endTime, otherPerson.endTime) + && Objects.equals(description, otherPerson.description) + && tagged.equals(otherPerson.tagged); + } } From 1cd6e5394ac3261d49aee880ed53121f2093604f Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 15:13:30 +0800 Subject: [PATCH 029/655] UserGuide.adoc: Added remarks field for records --- docs/UserGuide.adoc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 9d6fa28c69e6..cb19f87c8e17 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -257,7 +257,7 @@ View the list of volunteers assigned to event at index 1 ==== Add volunteer to event: `add` Adds a volunteer to the event that is currently being managed. + -Format: `add [h\HOURS] VOLUNTEER_INDEX...` +Format: `add [h\HOURS] VOLUNTEER_INDEX... [r\REMARKS]` **** * This command is executed after the 'manage' command. @@ -270,28 +270,31 @@ Examples: Adds a volunteer at index 1 to the event with 0 hours * `add 1 2 3` + Adds a volunteer at index 1, 2 and 3 to the event with 0 hours +* `add 1 r\Vegetarian` + +Adds a volunteer at index 1 to the event with 0 hours with remarks of 'Vegetarian' * `add h\5 3` + Adds a volunteer at index 3 to the event with 5 hours -* `add h\5 1 2 3` + -Adds a volunteer at index 1, 2 and 3 to the event with 5 hours +* `add h\5 1 2 3 r\Help to deliver food` + +Adds a volunteer at index 1, 2 and 3 to the event with 5 hours with remarks of 'Help to deliver food' ==== Update volunteer hours: `edit` Update number of hours for volunteer in the event that is currently being managed. + -Format: `edit [-a] h\HOURS [VOLUNTEER_INDEX]...` +Format: `edit [-a] h\HOURS [VOLUNTEER_INDEX]... [r\REMARKS]` **** * This command is executed after the 'manage' command. * VOLUNTEER_INDEX comes from the table view of existing volunteers. * VOLUNTEER_INDEX is only optional when '-a' is entered. +* Entering just `r\` would result in remarks being deleted. **** Examples: * `edit -a h\5` + Updates amount of hours volunteered for all existing volunteers in the event to 5 hours -* `edit h\5 3` + -Updates amount of hours volunteered for volunteer at index 3 to 5 hours +* `edit h\5 3 r\Emcee` + +Updates amount of hours volunteered for volunteer at index 3 to 5 hours with remarks of 'Emcee' * `edit h\5 1 2 3` + Updates amount of hours volunteered for volunteer at index 1, 2 and 3 to 5 hours From e30bdd6d3c4b495f128bba27c23d8e2bebe6fb23 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:30:05 +0800 Subject: [PATCH 030/655] Updated Description.java to take in any values instead of just alphanumeric --- src/main/java/seedu/address/model/event/Description.java | 6 +++--- src/test/java/seedu/address/model/event/TimeTest.java | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 src/test/java/seedu/address/model/event/TimeTest.java diff --git a/src/main/java/seedu/address/model/event/Description.java b/src/main/java/seedu/address/model/event/Description.java index 2b35495d084f..d9929f79f81d 100644 --- a/src/main/java/seedu/address/model/event/Description.java +++ b/src/main/java/seedu/address/model/event/Description.java @@ -5,17 +5,17 @@ /** * Represents an Event's description in the application. - * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + * Guarantees: immutable; is valid as declared in {@link #isValidDescription(String)} */ public class Description { public static final String MESSAGE_DESCRIPTION_CONSTRAINTS = - "Descriptions should only contain alphanumeric characters and spaces, and it should not be blank"; + "Descriptions can take any values, and it should not be blank"; /* * The first character of the name must not be a whitespace, * otherwise " " (a blank string) becomes a valid input. */ - public static final String DESCRIPTION_VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; + public static final String DESCRIPTION_VALIDATION_REGEX = "[^\\s].*"; public final String description; diff --git a/src/test/java/seedu/address/model/event/TimeTest.java b/src/test/java/seedu/address/model/event/TimeTest.java new file mode 100644 index 000000000000..27a07ad8dcc0 --- /dev/null +++ b/src/test/java/seedu/address/model/event/TimeTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class TimeTest { +} From 31412a81e8d8cf9948e98f11b77ebcadb0bd24c6 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 17:30:44 +0800 Subject: [PATCH 031/655] model/record: Created classes for records --- .../seedu/address/model/record/EventId.java | 13 +++ .../java/seedu/address/model/record/Hour.java | 52 +++++++++++ .../seedu/address/model/record/Record.java | 86 +++++++++++++++++++ .../seedu/address/model/record/Remark.java | 53 ++++++++++++ .../address/model/record/VolunteerId.java | 13 +++ 5 files changed, 217 insertions(+) create mode 100644 src/main/java/seedu/address/model/record/EventId.java create mode 100644 src/main/java/seedu/address/model/record/Hour.java create mode 100644 src/main/java/seedu/address/model/record/Record.java create mode 100644 src/main/java/seedu/address/model/record/Remark.java create mode 100644 src/main/java/seedu/address/model/record/VolunteerId.java diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java new file mode 100644 index 000000000000..df213cda40ef --- /dev/null +++ b/src/main/java/seedu/address/model/record/EventId.java @@ -0,0 +1,13 @@ +package seedu.address.model.record; + +/** + * This is just a placeholder class for development purposes. + * Actual record EventId should come from the event package + */ +public class EventId { + public final String value; + + public EventId(String id){ + this.value = id; + } +} diff --git a/src/main/java/seedu/address/model/record/Hour.java b/src/main/java/seedu/address/model/record/Hour.java new file mode 100644 index 000000000000..27dbf877c425 --- /dev/null +++ b/src/main/java/seedu/address/model/record/Hour.java @@ -0,0 +1,52 @@ +package seedu.address.model.record; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents an Hour in a record + * Guarantees: immutable; hour is valid as declared in {@link #isValidHour(String)} + */ +public class Hour { + public static final String MESSAGE_TAG_CONSTRAINTS = "Hour can take in numerals only."; + public static final String REMARK_VALIDATION_REGEX = "\\p{Digit}+"; + + public final String value; + + /** + * Constructs a {@code Remark}. + * + * @param hour A valid hour. + */ + public Hour(String hour) { + requireNonNull(hour); + checkArgument(isValidHour(hour), MESSAGE_TAG_CONSTRAINTS); + this.value = hour; + } + + /** + * Returns true if a given string is a valid remark. + */ + public static boolean isValidHour(String test) { + return test.matches(REMARK_VALIDATION_REGEX); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Hour // instanceof handles nulls + && value.equals(((Hour) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } + + /** + * Format state as text for viewing. + */ + public String toString() { + return '[' + value + ']'; + } +} diff --git a/src/main/java/seedu/address/model/record/Record.java b/src/main/java/seedu/address/model/record/Record.java new file mode 100644 index 000000000000..dcbdd0175593 --- /dev/null +++ b/src/main/java/seedu/address/model/record/Record.java @@ -0,0 +1,86 @@ +package seedu.address.model.record; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Objects; + +/** + * Represents a volunteer's event record in application. + * Guarantees: details are present and not null, field values are validated, immutable. + */ +public class Record { + private final EventId eventId; + private final VolunteerId volunteerId; + private final Hour hour; + private final Remark remark; + + /** + * Only remarks can be null. + */ + public Record(EventId eventId, VolunteerId volunteerId, Hour hour, Remark remark) { + requireAllNonNull(eventId, volunteerId, hour); + this.eventId = eventId; + this.volunteerId = volunteerId; + this.hour = hour; + this.remark = remark; + } + + public EventId getEventId() { + return eventId; + } + + public VolunteerId getVolunteerId() { + return volunteerId; + } + + public Hour getHour() { + return hour; + } + + public Remark getRemark() { + return remark; + } + + /** + * Returns true if both records have the same identity and data fields. + * This defines a stronger notion of equality between two records. + */ + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof Record)) { + return false; + } + + Record otherRecord = (Record) other; + return otherRecord.getEventId().equals(getEventId()) + && otherRecord.getVolunteerId().equals(getVolunteerId()) + && otherRecord.getHour().equals(getHour()) + && otherRecord.getRemark().equals(getRemark()); + } + + @Override + public int hashCode() { + // use this method for custom fields hashing instead of implementing your own + return Objects.hash(eventId, volunteerId, hour, remark); + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Event Id: ") + .append(getEventId()) + .append(" Volunteer Id: ") + .append(getVolunteerId()) + .append(" Hour: ") + .append(getHour()) + .append(" Remark: ") + .append(getRemark()); + return builder.toString(); + } + + +} diff --git a/src/main/java/seedu/address/model/record/Remark.java b/src/main/java/seedu/address/model/record/Remark.java new file mode 100644 index 000000000000..29b987d360a1 --- /dev/null +++ b/src/main/java/seedu/address/model/record/Remark.java @@ -0,0 +1,53 @@ +package seedu.address.model.record; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Remark in a record + * Guarantees: immutable; remark is valid as declared in {@link #isValidRemark(String)} + */ +public class Remark { + + public static final String MESSAGE_TAG_CONSTRAINTS = "Remarks can take any values, and it should not be blank"; + public static final String REMARK_VALIDATION_REGEX = "[^\\s].*"; + + public final String value; + + /** + * Constructs a {@code Remark}. + * + * @param remark A valid remark. + */ + public Remark(String remark) { + requireNonNull(remark); + checkArgument(isValidRemark(remark), MESSAGE_TAG_CONSTRAINTS); + this.value = remark; + } + + /** + * Returns true if a given string is a valid remark. + */ + public static boolean isValidRemark(String test) { + return test.matches(REMARK_VALIDATION_REGEX); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Remark // instanceof handles nulls + && value.equals(((Remark) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } + + /** + * Format state as text for viewing. + */ + public String toString() { + return '[' + value + ']'; + } +} diff --git a/src/main/java/seedu/address/model/record/VolunteerId.java b/src/main/java/seedu/address/model/record/VolunteerId.java new file mode 100644 index 000000000000..d7192eea56af --- /dev/null +++ b/src/main/java/seedu/address/model/record/VolunteerId.java @@ -0,0 +1,13 @@ +package seedu.address.model.record; + +/** + * This is just a placeholder class for development purposes. + * Actual record VolunteerId should come from the volunteer package + */ +public class VolunteerId { + public final String value; + + public VolunteerId(String id) { + this.value = id; + } +} From 619e949b25db86fd963bdb41aff95b8c1e312d5d Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:31:27 +0800 Subject: [PATCH 032/655] Add sample events for SampleDataUtil.java and getSampleAddressBook() to generate sample events --- .../address/model/util/SampleDataUtil.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 1806da4facfa..dd0ee53e976b 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -6,6 +6,11 @@ import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Event; +import seedu.address.model.event.Location; +import seedu.address.model.event.Time; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -19,11 +24,11 @@ public class SampleDataUtil { public static Person[] getSamplePersons() { return new Person[] { - new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), - new Address("Blk 30 Geylang Street 29, #06-40"), + new Person(new Name("Alex Yeoh"), new Phone("87438807"), + new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), getTagSet("friends")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), - new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + new Person(new Name("Bernice Yu"), new Phone("99272758"), + new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), getTagSet("colleagues", "friends")), new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), @@ -40,11 +45,28 @@ public static Person[] getSamplePersons() { }; } + public static Event[] getSampleEvents() { + return new Event[] { + new Event(new seedu.address.model.event.Name("Blood Donation Drive 2018"), + new Location("750E Chai Chee Road"), new Date("02-10-2018"), new Date("05-10-2018"), + new Time("11:30"), new Time("17:30"), new Description("Donation drive for blood."), + getTagSet("Public", "Donation")), + new Event(new seedu.address.model.event.Name("Youth Humanitarian Challenge"), + new Location("29 Havelock Road"), new Date("28-09-2018"), new Date("28-09-2018"), + new Time("10:00"), new Time("14:00"), new Description("To engage youths in humanitarianism."), + getTagSet("Competition")), + }; + } + public static ReadOnlyAddressBook getSampleAddressBook() { AddressBook sampleAb = new AddressBook(); for (Person samplePerson : getSamplePersons()) { sampleAb.addPerson(samplePerson); } + + for (Event sampleEvent : getSampleEvents()) { + sampleAb.addEvent(sampleEvent); + } return sampleAb; } From 15579d8796648bbf341d380f3fe83fd15493c352 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:35:10 +0800 Subject: [PATCH 033/655] Rectify delimiter error from '-' to ':' in Time.java --- src/main/java/seedu/address/model/event/Time.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/event/Time.java b/src/main/java/seedu/address/model/event/Time.java index cd88088ef8a7..47630b0654ee 100644 --- a/src/main/java/seedu/address/model/event/Time.java +++ b/src/main/java/seedu/address/model/event/Time.java @@ -50,7 +50,7 @@ public boolean isLessThanOrEqualTo(Time otherTime) { int minute = Integer.parseInt(timeParts[1]); int hour = Integer.parseInt(timeParts[0]); - String[] otherTimeParts = otherTime.toString().split("-"); + String[] otherTimeParts = otherTime.toString().split(":"); int otherMinute = Integer.parseInt(otherTimeParts[1]); int otherHour = Integer.parseInt(otherTimeParts[0]); From e5b053aaad4cd3dd1719e759c78d024377de781c Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:36:54 +0800 Subject: [PATCH 034/655] Revert eventListFilePath in AddressBookStorage.java and Storage.java --- .../java/seedu/address/storage/AddressBookStorage.java | 8 +------- src/main/java/seedu/address/storage/Storage.java | 3 --- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/main/java/seedu/address/storage/AddressBookStorage.java b/src/main/java/seedu/address/storage/AddressBookStorage.java index 6f2a19d940f0..4599182b3f92 100644 --- a/src/main/java/seedu/address/storage/AddressBookStorage.java +++ b/src/main/java/seedu/address/storage/AddressBookStorage.java @@ -17,11 +17,6 @@ public interface AddressBookStorage { */ Path getAddressBookFilePath(); - /** - * Returns the file path of the event list file. - */ - Path getEventListFilePath(); - /** * Returns AddressBook data as a {@link ReadOnlyAddressBook}. * Returns {@code Optional.empty()} if storage file is not found. @@ -33,8 +28,7 @@ public interface AddressBookStorage { /** * @see #getAddressBookFilePath() */ - Optional readAddressBook(Path addressBookFilePath, Path eventListFilePath) - throws DataConversionException, IOException; + Optional readAddressBook(Path filePath) throws DataConversionException, IOException; /** * Saves the given {@link ReadOnlyAddressBook} to the storage. diff --git a/src/main/java/seedu/address/storage/Storage.java b/src/main/java/seedu/address/storage/Storage.java index 839d2a296d81..28791127999b 100644 --- a/src/main/java/seedu/address/storage/Storage.java +++ b/src/main/java/seedu/address/storage/Storage.java @@ -24,9 +24,6 @@ public interface Storage extends AddressBookStorage, UserPrefsStorage { @Override Path getAddressBookFilePath(); - @Override - Path getEventListFilePath(); - @Override Optional readAddressBook() throws DataConversionException, IOException; From b2ed54b9963d64411c77bc8086e0a1e1e2b4f491 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:39:26 +0800 Subject: [PATCH 035/655] Add list of Event objects to XmlSerializableAddressBook.java --- .../storage/XmlSerializableAddressBook.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java index b85fa4a8f07e..8975a9543ff4 100644 --- a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java @@ -10,6 +10,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -20,15 +21,21 @@ public class XmlSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; + public static final String MESSAGE_DUPLICATE_EVENT = "Events list contains duplicate person(s)."; + @XmlElement private List persons; + @XmlElement + private List events; + /** * Creates an empty XmlSerializableAddressBook. * This empty constructor is required for marshalling. */ public XmlSerializableAddressBook() { persons = new ArrayList<>(); + events = new ArrayList<>(); } /** @@ -37,6 +44,7 @@ public XmlSerializableAddressBook() { public XmlSerializableAddressBook(ReadOnlyAddressBook src) { this(); persons.addAll(src.getPersonList().stream().map(XmlAdaptedPerson::new).collect(Collectors.toList())); + events.addAll(src.getEventList().stream().map(XmlAdaptedEvent::new).collect(Collectors.toList())); } /** @@ -54,6 +62,15 @@ public AddressBook toModelType() throws IllegalValueException { } addressBook.addPerson(person); } + + for (XmlAdaptedEvent e : events) { + Event event = e.toModelType(); + if (addressBook.hasEvent(event)) { + throw new IllegalValueException(MESSAGE_DUPLICATE_EVENT); + } + addressBook.addEvent(event); + } + return addressBook; } @@ -66,6 +83,7 @@ public boolean equals(Object other) { if (!(other instanceof XmlSerializableAddressBook)) { return false; } - return persons.equals(((XmlSerializableAddressBook) other).persons); + return persons.equals(((XmlSerializableAddressBook) other).persons) + && events.equals(((XmlSerializableAddressBook) other).events); } } From 0a2dbe1c571921b0afb6af7883b965aadb5c1fef Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 17:44:32 +0800 Subject: [PATCH 036/655] model/record: Added exception classes and UniqueRecordList --- .../seedu/address/model/record/Record.java | 14 ++ .../model/record/UniqueRecordList.java | 135 ++++++++++++++++++ .../exceptions/DuplicateRecordException.java | 11 ++ .../exceptions/RecordNotFoundException.java | 6 + 4 files changed, 166 insertions(+) create mode 100644 src/main/java/seedu/address/model/record/UniqueRecordList.java create mode 100644 src/main/java/seedu/address/model/record/exceptions/DuplicateRecordException.java create mode 100644 src/main/java/seedu/address/model/record/exceptions/RecordNotFoundException.java diff --git a/src/main/java/seedu/address/model/record/Record.java b/src/main/java/seedu/address/model/record/Record.java index dcbdd0175593..871f7b642edc 100644 --- a/src/main/java/seedu/address/model/record/Record.java +++ b/src/main/java/seedu/address/model/record/Record.java @@ -41,6 +41,20 @@ public Remark getRemark() { return remark; } + /** + * Returns true if both records have the same eventId and volunteerId + * This defines a weaker notion of equality between two records. + */ + public boolean isSameRecord(Record otherRecord) { + if (otherRecord == this) { + return true; + } + + return otherRecord != null + && otherRecord.getEventId().equals(getEventId()) + && otherRecord.getVolunteerId().equals(getVolunteerId()); + } + /** * Returns true if both records have the same identity and data fields. * This defines a stronger notion of equality between two records. diff --git a/src/main/java/seedu/address/model/record/UniqueRecordList.java b/src/main/java/seedu/address/model/record/UniqueRecordList.java new file mode 100644 index 000000000000..89b078f0fc54 --- /dev/null +++ b/src/main/java/seedu/address/model/record/UniqueRecordList.java @@ -0,0 +1,135 @@ +package seedu.address.model.record; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Iterator; +import java.util.List; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import seedu.address.model.record.exceptions.DuplicateRecordException; +import seedu.address.model.record.exceptions.RecordNotFoundException; + +/** + * A list of records that enforces uniqueness between its elements and does not allow nulls. + * A record is considered unique by comparing using {@code Record#isSameRecord(Record)}. As such, adding and updating of + * records uses Record#isSameRecord(Record) for equality so as to ensure that the record being added or updated is + * unique in terms of identity in the UniqueRecordList. However, the removal of a record uses Record#equals(Object) so + * as to ensure that the record with exactly the same fields will be removed. + * + * Supports a minimal set of list operations. + * + * @see Record#isSameRecord(Record) + */ +public class UniqueRecordList implements Iterable { + + private final ObservableList internalList = FXCollections.observableArrayList(); + + /** + * Returns true if the list contains an equivalent person as the given argument. + */ + public boolean contains(Record toCheck) { + requireNonNull(toCheck); + return internalList.stream().anyMatch(toCheck::isSameRecord); + } + + /** + * Adds a record to the list. + * The record must not already exist in the list. + */ + public void add(Record toAdd) { + requireNonNull(toAdd); + if (contains(toAdd)) { + throw new DuplicateRecordException(); + } + internalList.add(toAdd); + } + + /** + * Replaces the record {@code target} in the list with {@code editedRecord}. + * {@code target} must exist in the list. + * The record identity of {@code editedRecord} must not be the same as another existing record in the list. + */ + public void setRecord(Record target, Record editedRecord) { + requireAllNonNull(target, editedRecord); + + int index = internalList.indexOf(target); + if (index == -1) { + throw new RecordNotFoundException(); + } + + if (!target.isSameRecord(editedRecord) && contains(editedRecord)) { + throw new DuplicateRecordException(); + } + + internalList.set(index, editedRecord); + } + + /** + * Removes the equivalent record from the list. + * The record must exist in the list. + */ + public void remove(Record toRemove) { + requireNonNull(toRemove); + if (!internalList.remove(toRemove)) { + throw new RecordNotFoundException(); + } + } + + public void setRecords(UniqueRecordList replacement) { + requireNonNull(replacement); + internalList.setAll(replacement.internalList); + } + + /** + * Replaces the contents of this list with {@code records}. + * {@code records} must not contain duplicate records. + */ + public void setRecords(List records) { + requireAllNonNull(records); + if (!recordsAreUnique(records)) { + throw new DuplicateRecordException(); + } + + internalList.setAll(records); + } + + /** + * Returns the backing list as an unmodifiable {@code ObservableList}. + */ + public ObservableList asUnmodifiableObservableList() { + return FXCollections.unmodifiableObservableList(internalList); + } + + @Override + public Iterator iterator() { + return internalList.iterator(); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof UniqueRecordList // instanceof handles nulls + && internalList.equals(((UniqueRecordList) other).internalList)); + } + + @Override + public int hashCode() { + return internalList.hashCode(); + } + + /** + * Returns true if {@code records} contains only unique persons. + */ + private boolean recordsAreUnique(List records) { + for (int i = 0; i < records.size() - 1; i++) { + for (int j = i + 1; j < records.size(); j++) { + if (records.get(i).isSameRecord(records.get(j))) { + return false; + } + } + } + return true; + } +} diff --git a/src/main/java/seedu/address/model/record/exceptions/DuplicateRecordException.java b/src/main/java/seedu/address/model/record/exceptions/DuplicateRecordException.java new file mode 100644 index 000000000000..16cb1efe6a3b --- /dev/null +++ b/src/main/java/seedu/address/model/record/exceptions/DuplicateRecordException.java @@ -0,0 +1,11 @@ +package seedu.address.model.record.exceptions; + +/** + * Signals that the operation will result in duplicate Records (Records are considered duplicates if they have the same + * identity). + */ +public class DuplicateRecordException extends RuntimeException { + public DuplicateRecordException() { + super("Operation would result in duplicate records"); + } +} diff --git a/src/main/java/seedu/address/model/record/exceptions/RecordNotFoundException.java b/src/main/java/seedu/address/model/record/exceptions/RecordNotFoundException.java new file mode 100644 index 000000000000..ce7a693168ff --- /dev/null +++ b/src/main/java/seedu/address/model/record/exceptions/RecordNotFoundException.java @@ -0,0 +1,6 @@ +package seedu.address.model.record.exceptions; + +/** + * Signals that the operation is unable to find the specified record. + */ +public class RecordNotFoundException extends RuntimeException {} From b9582d247a7cc56ee582fbd619bf50cc20501900 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 17:55:29 +0800 Subject: [PATCH 037/655] Revert UserPrefs.java to remove eventListFilePath --- src/main/java/seedu/address/model/UserPrefs.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/seedu/address/model/UserPrefs.java index 75d7d5eb198d..980b2b388852 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/seedu/address/model/UserPrefs.java @@ -13,7 +13,6 @@ public class UserPrefs { private GuiSettings guiSettings; private Path addressBookFilePath = Paths.get("data" , "addressbook.xml"); - private Path eventListFilePath = Paths.get("data", "eventlist.xml"); public UserPrefs() { setGuiSettings(500, 500, 0, 0); @@ -35,18 +34,10 @@ public Path getAddressBookFilePath() { return addressBookFilePath; } - public Path getEventListFilePath() { - return eventListFilePath; - } - public void setAddressBookFilePath(Path addressBookFilePath) { this.addressBookFilePath = addressBookFilePath; } - public void setEventListFilePath(Path eventListFilePath) { - this.eventListFilePath = eventListFilePath; - } - @Override public boolean equals(Object other) { if (other == this) { @@ -59,13 +50,12 @@ public boolean equals(Object other) { UserPrefs o = (UserPrefs) other; return Objects.equals(guiSettings, o.guiSettings) - && Objects.equals(addressBookFilePath, o.addressBookFilePath) - && Objects.equals(eventListFilePath, o.eventListFilePath); + && Objects.equals(addressBookFilePath, o.addressBookFilePath); } @Override public int hashCode() { - return Objects.hash(guiSettings, addressBookFilePath, eventListFilePath); + return Objects.hash(guiSettings, addressBookFilePath); } @Override @@ -73,7 +63,6 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Gui Settings : " + guiSettings.toString()); sb.append("\nLocal data file location : " + addressBookFilePath); - sb.append("\nLocal event list data file location " + eventListFilePath); return sb.toString(); } From 9cde57f11a2c0834daea6d50b04b85d28e6e6b39 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 17:59:05 +0800 Subject: [PATCH 038/655] model/record: Updated toString methods --- src/main/java/seedu/address/model/record/EventId.java | 7 +++++++ src/main/java/seedu/address/model/record/Hour.java | 2 +- src/main/java/seedu/address/model/record/Remark.java | 2 +- src/main/java/seedu/address/model/record/VolunteerId.java | 7 +++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java index df213cda40ef..d9dd5ce90adc 100644 --- a/src/main/java/seedu/address/model/record/EventId.java +++ b/src/main/java/seedu/address/model/record/EventId.java @@ -10,4 +10,11 @@ public class EventId { public EventId(String id){ this.value = id; } + + /** + * Format state as text for viewing. + */ + public String toString() { + return value; + } } diff --git a/src/main/java/seedu/address/model/record/Hour.java b/src/main/java/seedu/address/model/record/Hour.java index 27dbf877c425..c1bb1b4350e0 100644 --- a/src/main/java/seedu/address/model/record/Hour.java +++ b/src/main/java/seedu/address/model/record/Hour.java @@ -47,6 +47,6 @@ public int hashCode() { * Format state as text for viewing. */ public String toString() { - return '[' + value + ']'; + return value; } } diff --git a/src/main/java/seedu/address/model/record/Remark.java b/src/main/java/seedu/address/model/record/Remark.java index 29b987d360a1..f1010beb3064 100644 --- a/src/main/java/seedu/address/model/record/Remark.java +++ b/src/main/java/seedu/address/model/record/Remark.java @@ -48,6 +48,6 @@ public int hashCode() { * Format state as text for viewing. */ public String toString() { - return '[' + value + ']'; + return value; } } diff --git a/src/main/java/seedu/address/model/record/VolunteerId.java b/src/main/java/seedu/address/model/record/VolunteerId.java index d7192eea56af..6a1ba480c872 100644 --- a/src/main/java/seedu/address/model/record/VolunteerId.java +++ b/src/main/java/seedu/address/model/record/VolunteerId.java @@ -10,4 +10,11 @@ public class VolunteerId { public VolunteerId(String id) { this.value = id; } + + /** + * Format state as text for viewing. + */ + public String toString() { + return value; + } } From c9fb348082e9df7528bf696efec13d08d8a29753 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 18:13:49 +0800 Subject: [PATCH 039/655] Update AddressBookTest.java and AddCommandTest.java to reflect changes in Model --- .../logic/commands/AddCommandTest.java | 31 +++++++++++++++++++ .../seedu/address/model/AddressBookTest.java | 7 +++++ 2 files changed, 38 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index c7077829f434..bbba7ef155bf 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; import seedu.address.testutil.PersonBuilder; @@ -118,6 +119,26 @@ public void updatePerson(Person target, Person editedPerson) { throw new AssertionError("This method should not be called."); } + @Override + public boolean hasEvent(Event event) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deleteEvent(Event target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addEvent(Event event) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateEvent(Event target, Event editedEvent) { + throw new AssertionError("This method should not be called."); + } + @Override public ObservableList getFilteredPersonList() { throw new AssertionError("This method should not be called."); @@ -128,6 +149,16 @@ public void updateFilteredPersonList(Predicate predicate) { throw new AssertionError("This method should not be called."); } + @Override + public ObservableList getFilteredEventList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredEventList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + @Override public boolean canUndoAddressBook() { throw new AssertionError("This method should not be called."); diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/seedu/address/model/AddressBookTest.java index 0d33cff49ab1..d5f747e84f9b 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/seedu/address/model/AddressBookTest.java @@ -19,6 +19,7 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.testutil.PersonBuilder; @@ -96,6 +97,7 @@ public void getPersonList_modifyList_throwsUnsupportedOperationException() { */ private static class AddressBookStub implements ReadOnlyAddressBook { private final ObservableList persons = FXCollections.observableArrayList(); + private final ObservableList events = FXCollections.observableArrayList(); AddressBookStub(Collection persons) { this.persons.setAll(persons); @@ -105,6 +107,11 @@ private static class AddressBookStub implements ReadOnlyAddressBook { public ObservableList getPersonList() { return persons; } + + @Override + public ObservableList getEventList() { + return events; + } } } From 68f04c52929bedb3830e86d695d06e89a7bd7a7f Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 18:36:07 +0800 Subject: [PATCH 040/655] model/record: Fixed style --- src/main/java/seedu/address/model/record/EventId.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java index d9dd5ce90adc..5bba851071b8 100644 --- a/src/main/java/seedu/address/model/record/EventId.java +++ b/src/main/java/seedu/address/model/record/EventId.java @@ -7,7 +7,7 @@ public class EventId { public final String value; - public EventId(String id){ + public EventId(String id) { this.value = id; } From 321ba9fe169ab5b84d574db46ef778d4f311162c Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 18:46:43 +0800 Subject: [PATCH 041/655] Add Event tests NameTest.java and TimeTest.java --- .../seedu/address/model/event/NameTest.java | 1 + .../seedu/address/model/event/TimeTest.java | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/test/java/seedu/address/model/event/NameTest.java b/src/test/java/seedu/address/model/event/NameTest.java index d6e000e498d3..6c11483348e3 100644 --- a/src/test/java/seedu/address/model/event/NameTest.java +++ b/src/test/java/seedu/address/model/event/NameTest.java @@ -30,6 +30,7 @@ public void isValidName() { assertFalse(Name.isValidName(" ")); // spaces only assertFalse(Name.isValidName("^")); // only non-alphanumeric characters assertFalse(Name.isValidName("charity*")); // contains non-alphanumeric characters + assertFalse(Name.isValidName("charity.")); // contains non-alphanumeric characters // valid name assertTrue(Name.isValidName("donation")); // alphabets only diff --git a/src/test/java/seedu/address/model/event/TimeTest.java b/src/test/java/seedu/address/model/event/TimeTest.java index 27a07ad8dcc0..a0736151c6d0 100644 --- a/src/test/java/seedu/address/model/event/TimeTest.java +++ b/src/test/java/seedu/address/model/event/TimeTest.java @@ -1,4 +1,50 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + public class TimeTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Time(null)); + } + + @Test + public void constructor_invalidTime_throwsIllegalArgumentException() { + String invalidTime = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Time(invalidTime)); + } + + @Test + public void isValidTime() { + // null Time + Assert.assertThrows(NullPointerException.class, () -> Time.isValidTime(null)); + + // blank Time + assertFalse(Time.isValidTime("")); // empty string + assertFalse(Time.isValidTime(" ")); // spaces only + + // missing parts + assertFalse(Time.isValidTime(":59")); // missing hour + assertFalse(Time.isValidTime("1:")); // missing minute + assertFalse(Time.isValidTime("12:")); // missing minute + + // invalid parts + assertFalse(Time.isValidTime("25:00")); // invalid hour over 24 + assertFalse(Time.isValidTime("13:60")); // invalid minute over 59 + assertFalse(Time.isValidTime("1122")); // no delimiter + assertFalse(Time.isValidTime("11-22")); // wrong delimiter + assertFalse(Time.isValidTime("13:6")); // invalid one character for minute + + + // valid Time + assertTrue(Time.isValidTime("15:15")); // 3:15 PM + assertTrue(Time.isValidTime("9:00")); // valid one character for hour + assertTrue(Time.isValidTime("0:00")); // 12:00 AM + assertTrue(Time.isValidTime("23:59")); // 11:59 PM + } } From 7f75c405244e081e0af482915454c076830a909a Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 18:47:40 +0800 Subject: [PATCH 042/655] UserGuide.adoc: Updated manage section --- docs/UserGuide.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index cb19f87c8e17..067127b555b0 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -257,7 +257,7 @@ View the list of volunteers assigned to event at index 1 ==== Add volunteer to event: `add` Adds a volunteer to the event that is currently being managed. + -Format: `add [h\HOURS] VOLUNTEER_INDEX... [r\REMARKS]` +Format: `add VOLUNTEER_INDEX... [h/HOURS] [r/REMARKS]` **** * This command is executed after the 'manage' command. @@ -272,15 +272,15 @@ Adds a volunteer at index 1 to the event with 0 hours Adds a volunteer at index 1, 2 and 3 to the event with 0 hours * `add 1 r\Vegetarian` + Adds a volunteer at index 1 to the event with 0 hours with remarks of 'Vegetarian' -* `add h\5 3` + +* `add 3 h\5` + Adds a volunteer at index 3 to the event with 5 hours -* `add h\5 1 2 3 r\Help to deliver food` + +* `add 1 2 3 h\5 r\Help to deliver food` + Adds a volunteer at index 1, 2 and 3 to the event with 5 hours with remarks of 'Help to deliver food' ==== Update volunteer hours: `edit` Update number of hours for volunteer in the event that is currently being managed. + -Format: `edit [-a] h\HOURS [VOLUNTEER_INDEX]... [r\REMARKS]` +Format: `edit [-a] [VOLUNTEER_INDEX]... h\HOURS [r\REMARKS]` **** * This command is executed after the 'manage' command. @@ -293,9 +293,9 @@ Examples: * `edit -a h\5` + Updates amount of hours volunteered for all existing volunteers in the event to 5 hours -* `edit h\5 3 r\Emcee` + +* `edit 3 h\5 r\Emcee` + Updates amount of hours volunteered for volunteer at index 3 to 5 hours with remarks of 'Emcee' -* `edit h\5 1 2 3` + +* `edit 1 2 3 h\5` + Updates amount of hours volunteered for volunteer at index 1, 2 and 3 to 5 hours ==== Delete volunteer record from event: `delete` From d5bf30fae7a57b1584a4c9f0162e0229ce138817 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 19:31:41 +0800 Subject: [PATCH 043/655] storage: Added XmlAdaptedRecord --- .../java/seedu/address/model/record/Hour.java | 8 +- .../seedu/address/model/record/Remark.java | 4 +- .../address/storage/XmlAdaptedRecord.java | 115 ++++++++++++++++++ 3 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 src/main/java/seedu/address/storage/XmlAdaptedRecord.java diff --git a/src/main/java/seedu/address/model/record/Hour.java b/src/main/java/seedu/address/model/record/Hour.java index c1bb1b4350e0..ff23ecc343a1 100644 --- a/src/main/java/seedu/address/model/record/Hour.java +++ b/src/main/java/seedu/address/model/record/Hour.java @@ -8,8 +8,8 @@ * Guarantees: immutable; hour is valid as declared in {@link #isValidHour(String)} */ public class Hour { - public static final String MESSAGE_TAG_CONSTRAINTS = "Hour can take in numerals only."; - public static final String REMARK_VALIDATION_REGEX = "\\p{Digit}+"; + public static final String MESSAGE_HOUR_CONSTRAINTS = "Hour can take in numerals only."; + public static final String HOUR_VALIDATION_REGEX = "\\p{Digit}+"; public final String value; @@ -20,7 +20,7 @@ public class Hour { */ public Hour(String hour) { requireNonNull(hour); - checkArgument(isValidHour(hour), MESSAGE_TAG_CONSTRAINTS); + checkArgument(isValidHour(hour), MESSAGE_HOUR_CONSTRAINTS); this.value = hour; } @@ -28,7 +28,7 @@ public Hour(String hour) { * Returns true if a given string is a valid remark. */ public static boolean isValidHour(String test) { - return test.matches(REMARK_VALIDATION_REGEX); + return test.matches(HOUR_VALIDATION_REGEX); } @Override diff --git a/src/main/java/seedu/address/model/record/Remark.java b/src/main/java/seedu/address/model/record/Remark.java index f1010beb3064..515f8040ae87 100644 --- a/src/main/java/seedu/address/model/record/Remark.java +++ b/src/main/java/seedu/address/model/record/Remark.java @@ -9,7 +9,7 @@ */ public class Remark { - public static final String MESSAGE_TAG_CONSTRAINTS = "Remarks can take any values, and it should not be blank"; + public static final String MESSAGE_REMARK_CONSTRAINTS = "Remarks can take any values, and it should not be blank"; public static final String REMARK_VALIDATION_REGEX = "[^\\s].*"; public final String value; @@ -21,7 +21,7 @@ public class Remark { */ public Remark(String remark) { requireNonNull(remark); - checkArgument(isValidRemark(remark), MESSAGE_TAG_CONSTRAINTS); + checkArgument(isValidRemark(remark), MESSAGE_REMARK_CONSTRAINTS); this.value = remark; } diff --git a/src/main/java/seedu/address/storage/XmlAdaptedRecord.java b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java new file mode 100644 index 000000000000..3c186c9a69e1 --- /dev/null +++ b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java @@ -0,0 +1,115 @@ +package seedu.address.storage; + +import java.util.Objects; + +import javax.xml.bind.annotation.XmlElement; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.record.EventId; +import seedu.address.model.record.Hour; +import seedu.address.model.record.Record; +import seedu.address.model.record.Remark; +import seedu.address.model.record.VolunteerId; + +/** + * JAXB-friendly version of the Person. + */ +public class XmlAdaptedRecord { + + public static final String MISSING_FIELD_MESSAGE_FORMAT = "Record's %s field is missing!"; + + @XmlElement(required = true) + private String eventId; + @XmlElement(required = true) + private String volunteerId; + @XmlElement(required = true) + private String hour; + @XmlElement + private String remark; + + /** + * Constructs an XmlAdaptedRecord. + * This is the no-arg constructor that is required by JAXB. + */ + public XmlAdaptedRecord() { + } + + /** + * Constructs an {@code XmlAdaptedRecord} with the given record details. + */ + public XmlAdaptedRecord(String eventId, String volunteerId, String hour, String remark) { + this.eventId = eventId; + this.volunteerId = volunteerId; + this.hour = hour; + if (!remark.equals("")) { + this.remark = remark; + } + } + + /** + * Converts a given Record into this class for JAXB use. + * + * @param source future changes to this will not affect the created XmlAdaptedRecord + */ + public XmlAdaptedRecord(Record source) { + eventId = source.getEventId().value; + volunteerId = source.getVolunteerId().value; + hour = source.getHour().value; + remark = source.getRemark().value; + } + + /** + * Converts this jaxb-friendly adapted record object into the model's Record object. + * + * @throws IllegalValueException if there were any data constraints violated in the adapted record + */ + public Record toModelType() throws IllegalValueException { + if (eventId == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName())); + } + // TODO: To add the validation for eventId once class is replaced and replace EventId with valid class + final EventId modelEventId = new EventId(eventId); + + if (volunteerId == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, VolunteerId.class + .getSimpleName())); + } + // TODO: To add the validation for volunteerId once class is replaced and replace EventId with valid class + final VolunteerId modelVolunteerId = new VolunteerId(volunteerId); + + if (hour == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Hour.class.getSimpleName())); + } + if (!Hour.isValidHour(hour)) { + throw new IllegalValueException(Hour.MESSAGE_HOUR_CONSTRAINTS); + } + final Hour modelHour = new Hour(hour); + + if (remark == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Remark.class.getSimpleName())); + } + if (!Remark.isValidRemark(remark)) { + throw new IllegalValueException(Remark.MESSAGE_REMARK_CONSTRAINTS); + } + final Remark modelRemark = new Remark(remark); + + return new Record(modelEventId, modelVolunteerId, modelHour, modelRemark); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof XmlAdaptedRecord)) { + return false; + } + + XmlAdaptedRecord otherRecord = (XmlAdaptedRecord) other; + return Objects.equals(eventId, otherRecord.eventId) + && Objects.equals(volunteerId, otherRecord.volunteerId) + && Objects.equals(hour, otherRecord.hour) + && Objects.equals(remark, otherRecord.remark); + } +} From f4d15972d093656ac6d2d48c30a7f7eff0bc7db9 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 20:04:55 +0800 Subject: [PATCH 044/655] storage: Modified XmlSerializableAddressBook and relevant classes --- .../java/seedu/address/model/AddressBook.java | 69 +++++++++++++++++-- .../address/model/ReadOnlyAddressBook.java | 6 ++ .../storage/XmlSerializableAddressBook.java | 19 ++++- 3 files changed, 85 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 7f85c8b9258b..ea6b9a0980c9 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -7,15 +7,17 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; import seedu.address.model.person.UniquePersonList; +import seedu.address.model.record.Record; +import seedu.address.model.record.UniqueRecordList; /** * Wraps all data at the address-book level - * Duplicates are not allowed (by .isSamePerson comparison) + * Duplicates are not allowed (by .isSamePerson and .isSameRecord comparison) */ public class AddressBook implements ReadOnlyAddressBook { private final UniquePersonList persons; - + private final UniqueRecordList records; /* * The 'unusual' code block below is an non-static initialization block, sometimes used to avoid duplication * between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html @@ -25,9 +27,11 @@ public class AddressBook implements ReadOnlyAddressBook { */ { persons = new UniquePersonList(); + records = new UniqueRecordList(); } - public AddressBook() {} + public AddressBook() { + } /** * Creates an AddressBook using the Persons in the {@code toBeCopied} @@ -47,6 +51,14 @@ public void setPersons(List persons) { this.persons.setPersons(persons); } + /** + * Replaces the contents of the record list with {@code records}. + * {@code records} must not contain duplicate records. + */ + public void setRecords(List records) { + this.records.setRecords(records); + } + /** * Resets the existing data of this {@code AddressBook} with {@code newData}. */ @@ -54,6 +66,7 @@ public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); setPersons(newData.getPersonList()); + setRecords(newData.getRecordList()); } //// person-level operations @@ -93,12 +106,50 @@ public void removePerson(Person key) { persons.remove(key); } + //// record-level operations + + /** + * Returns true if a record with the same identity as {@code record} exists in the address book. + */ + public boolean hasRecord(Record record) { + requireNonNull(record); + return records.contains(record); + } + + /** + * Adds a record to the address book. + * The record must not already exist in the address book. + */ + public void addRecord(Record r) { + records.add(r); + } + + /** + * Replaces the given record {@code target} in the list with {@code editedRecord}. + * {@code target} must exist in the address book. + * The record identity of {@code editedRecord} must not be the same as another existing record in the address book. + */ + public void updateRecord(Record target, Record editedRecord) { + requireNonNull(editedRecord); + + records.setRecord(target, editedRecord); + } + + /** + * Removes {@code key} from this {@code AddressBook}. + * {@code key} must exist in the address book. + */ + public void removeRecord(Record key) { + records.remove(key); + } + //// util methods @Override public String toString() { - return persons.asUnmodifiableObservableList().size() + " persons"; // TODO: refine later + return persons.asUnmodifiableObservableList().size() + " persons" + + records.asUnmodifiableObservableList().size() + " records"; } @Override @@ -106,15 +157,21 @@ public ObservableList getPersonList() { return persons.asUnmodifiableObservableList(); } + @Override + public ObservableList getRecordList() { + return records.asUnmodifiableObservableList(); + } + @Override public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof AddressBook // instanceof handles nulls - && persons.equals(((AddressBook) other).persons)); + && persons.equals(((AddressBook) other).persons) + && records.equals((((AddressBook) other).records))); } @Override public int hashCode() { - return persons.hashCode(); + return persons.hashCode() + records.hashCode(); } } diff --git a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java index 6ddc2cd9a290..87148a3e125f 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java +++ b/src/main/java/seedu/address/model/ReadOnlyAddressBook.java @@ -2,6 +2,7 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * Unmodifiable view of an address book @@ -14,4 +15,9 @@ public interface ReadOnlyAddressBook { */ ObservableList getPersonList(); + /** + * Returns an unmodifiable view of the records list. + * This list will not contain any duplicate records. + */ + ObservableList getRecordList(); } diff --git a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java index b85fa4a8f07e..cf092ea953bc 100644 --- a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java @@ -11,6 +11,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * An Immutable AddressBook that is serializable to XML format @@ -19,9 +20,12 @@ public class XmlSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; + public static final String MESSAGE_DUPLICATE_RECORD = "Record list contains duplicate record(s)."; @XmlElement private List persons; + @XmlElement + private List records; /** * Creates an empty XmlSerializableAddressBook. @@ -29,6 +33,7 @@ public class XmlSerializableAddressBook { */ public XmlSerializableAddressBook() { persons = new ArrayList<>(); + records = new ArrayList<>(); } /** @@ -37,13 +42,14 @@ public XmlSerializableAddressBook() { public XmlSerializableAddressBook(ReadOnlyAddressBook src) { this(); persons.addAll(src.getPersonList().stream().map(XmlAdaptedPerson::new).collect(Collectors.toList())); + records.addAll(src.getRecordList().stream().map(XmlAdaptedRecord::new).collect(Collectors.toList())); } /** * Converts this addressbook into the model's {@code AddressBook} object. * - * @throws IllegalValueException if there were any data constraints violated or duplicates in the - * {@code XmlAdaptedPerson}. + * @throws IllegalValueException if there were any data constraints violated or duplicates + * in the {@code XmlAdaptedPerson}, {@code XmlAdaptedRecord}. */ public AddressBook toModelType() throws IllegalValueException { AddressBook addressBook = new AddressBook(); @@ -54,6 +60,12 @@ public AddressBook toModelType() throws IllegalValueException { } addressBook.addPerson(person); } + for (XmlAdaptedRecord r : records) { + Record record = r.toModelType(); + if (addressBook.hasRecord(record)) { + throw new IllegalValueException(MESSAGE_DUPLICATE_RECORD); + } + } return addressBook; } @@ -66,6 +78,7 @@ public boolean equals(Object other) { if (!(other instanceof XmlSerializableAddressBook)) { return false; } - return persons.equals(((XmlSerializableAddressBook) other).persons); + return persons.equals(((XmlSerializableAddressBook) other).persons) + && records.equals(((XmlSerializableAddressBook) other).records); } } From 82e5591bfc6f2ec99d7e7a46145531172834b723 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 21:56:31 +0800 Subject: [PATCH 045/655] Rectify mistakes in Event.java equals method, Date.java and Time.java isLessThanOrEqualTo method --- src/main/java/seedu/address/model/event/Date.java | 7 ++++--- src/main/java/seedu/address/model/event/Event.java | 2 +- src/main/java/seedu/address/model/event/Time.java | 4 ++-- .../java/seedu/address/model/event/DescriptionTest.java | 4 ++++ src/test/java/seedu/address/model/event/EventTest.java | 4 ++++ src/test/java/seedu/address/model/event/LocationTest.java | 4 ++++ src/test/java/seedu/address/testutil/EventBuilder.java | 4 ++++ src/test/java/seedu/address/testutil/TypicalEvents.java | 4 ++++ 8 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 src/test/java/seedu/address/model/event/DescriptionTest.java create mode 100644 src/test/java/seedu/address/model/event/EventTest.java create mode 100644 src/test/java/seedu/address/model/event/LocationTest.java create mode 100644 src/test/java/seedu/address/testutil/EventBuilder.java create mode 100644 src/test/java/seedu/address/testutil/TypicalEvents.java diff --git a/src/main/java/seedu/address/model/event/Date.java b/src/main/java/seedu/address/model/event/Date.java index 4eb4bc225ca5..8ecdbed784dc 100644 --- a/src/main/java/seedu/address/model/event/Date.java +++ b/src/main/java/seedu/address/model/event/Date.java @@ -72,11 +72,12 @@ public boolean isLessThanOrEqualTo(Date otherDate) { int otherMonth = Integer.parseInt(otherDateParts[1]); int otherDay = Integer.parseInt(otherDateParts[0]); - if (year > otherYear) { + if (year > otherYear) { //start year is more than end year return false; - } else if (month > otherMonth) { + } else if (year == otherYear && month > otherMonth) { //same year but start month is more than end month return false; - } else if (day > otherDay) { + } else if (year == otherYear && month == otherMonth && day > otherDay) { //same year, same month but start + // day is more than end day return false; } diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index 6f258539056f..1ebbd2063024 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -149,7 +149,7 @@ public boolean equals(Object other) { && otherEvent.getLocation().equals(getLocation()) && otherEvent.getStartDate().equals(getStartDate()) && otherEvent.getEndDate().equals(getEndDate()) - && otherEvent.getStartTime().equals(getEndTime()) + && otherEvent.getStartTime().equals(getStartTime()) && otherEvent.getEndTime().equals(getEndTime()) && otherEvent.getDescription().equals(getDescription()) && otherEvent.getTags().equals(getTags()); diff --git a/src/main/java/seedu/address/model/event/Time.java b/src/main/java/seedu/address/model/event/Time.java index 47630b0654ee..3b8e6a2e6aa8 100644 --- a/src/main/java/seedu/address/model/event/Time.java +++ b/src/main/java/seedu/address/model/event/Time.java @@ -54,9 +54,9 @@ public boolean isLessThanOrEqualTo(Time otherTime) { int otherMinute = Integer.parseInt(otherTimeParts[1]); int otherHour = Integer.parseInt(otherTimeParts[0]); - if (hour > otherHour) { + if (hour > otherHour) { //start hour is more than end hour return false; - } else if (minute > otherMinute) { + } else if (hour == otherHour && minute > otherMinute) { //same hour but start min is later than end min return false; } diff --git a/src/test/java/seedu/address/model/event/DescriptionTest.java b/src/test/java/seedu/address/model/event/DescriptionTest.java new file mode 100644 index 000000000000..b205e79bab87 --- /dev/null +++ b/src/test/java/seedu/address/model/event/DescriptionTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class DescriptionTest { +} diff --git a/src/test/java/seedu/address/model/event/EventTest.java b/src/test/java/seedu/address/model/event/EventTest.java new file mode 100644 index 000000000000..aea2a9c1d136 --- /dev/null +++ b/src/test/java/seedu/address/model/event/EventTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class EventTest { +} diff --git a/src/test/java/seedu/address/model/event/LocationTest.java b/src/test/java/seedu/address/model/event/LocationTest.java new file mode 100644 index 000000000000..f397adec792b --- /dev/null +++ b/src/test/java/seedu/address/model/event/LocationTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class LocationTest { +} diff --git a/src/test/java/seedu/address/testutil/EventBuilder.java b/src/test/java/seedu/address/testutil/EventBuilder.java new file mode 100644 index 000000000000..17ae06287567 --- /dev/null +++ b/src/test/java/seedu/address/testutil/EventBuilder.java @@ -0,0 +1,4 @@ +package seedu.address.testutil; + +public class EventBuilder { +} diff --git a/src/test/java/seedu/address/testutil/TypicalEvents.java b/src/test/java/seedu/address/testutil/TypicalEvents.java new file mode 100644 index 000000000000..6a665b5222e7 --- /dev/null +++ b/src/test/java/seedu/address/testutil/TypicalEvents.java @@ -0,0 +1,4 @@ +package seedu.address.testutil; + +public class TypicalEvents { +} From 8067064b39fb711809e75063459ab029664985f4 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 21:57:38 +0800 Subject: [PATCH 046/655] Add tests and test utilities for Event.java, Description.java and Location.java --- .../logic/commands/CommandTestUtil.java | 11 ++ .../address/model/event/DescriptionTest.java | 33 +++++ .../seedu/address/model/event/EventTest.java | 140 ++++++++++++++++++ .../address/model/event/LocationTest.java | 32 ++++ .../seedu/address/testutil/EventBuilder.java | 122 +++++++++++++++ .../seedu/address/testutil/TypicalEvents.java | 44 ++++++ 6 files changed, 382 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index bf861fcb36c3..aa7acceda620 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -37,6 +37,17 @@ public class CommandTestUtil { public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; + public static final String VALID_NAME_YOUTH = "Youth Humanitarian Challenge"; + public static final String VALID_LOCATION_YOUTH = "Block 123, Youth Street 4"; + public static final String VALID_START_DATE_YOUTH = "28-09-2018"; + public static final String VALID_END_DATE_YOUTH = "28-09-2018"; + public static final String VALID_START_TIME_YOUTH = "10:00"; + public static final String VALID_END_TIME_YOUTH = "14:00"; + public static final String VALID_DESCRIPTION_YOUTH = "To engage youths in humanitarianism."; + public static final String VALID_TAG_PUBLIC = "Public"; + public static final String VALID_TAG_DONATION = "Donation"; + public static final String VALID_TAG_COMPETITION = "Competition"; + public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; public static final String PHONE_DESC_AMY = " " + PREFIX_PHONE + VALID_PHONE_AMY; diff --git a/src/test/java/seedu/address/model/event/DescriptionTest.java b/src/test/java/seedu/address/model/event/DescriptionTest.java index b205e79bab87..667108eabbf4 100644 --- a/src/test/java/seedu/address/model/event/DescriptionTest.java +++ b/src/test/java/seedu/address/model/event/DescriptionTest.java @@ -1,4 +1,37 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + public class DescriptionTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Description(null)); + } + + @Test + public void constructor_invalidDescription_throwsIllegalArgumentException() { + String invalidDescription = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Description(invalidDescription)); + } + + @Test + public void isValidDescription() { + // null description + Assert.assertThrows(NullPointerException.class, () -> Description.isValidDescription(null)); + + // invalid descriptions + assertFalse(Description.isValidDescription("")); // empty string + assertFalse(Description.isValidDescription(" ")); // spaces only + + // valid descriptions + assertTrue(Description.isValidDescription("To engage youths in humanitarianism.")); + assertTrue(Description.isValidDescription("-")); // one character + assertTrue(Description.isValidDescription("Singapore’s blood needs are currently shouldered by 1.8% of " + + "Singapore’s residential population. #BloodDonationDrive2018")); // long description + } } diff --git a/src/test/java/seedu/address/model/event/EventTest.java b/src/test/java/seedu/address/model/event/EventTest.java index aea2a9c1d136..abe3f8b64bfd 100644 --- a/src/test/java/seedu/address/model/event/EventTest.java +++ b/src/test/java/seedu/address/model/event/EventTest.java @@ -1,4 +1,144 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_LOCATION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_START_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_START_TIME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_COMPETITION; +import static seedu.address.testutil.TypicalEvents.BLOOD; +import static seedu.address.testutil.TypicalEvents.YOUTH; + + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import seedu.address.testutil.Assert; +import seedu.address.testutil.EventBuilder; + public class EventTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + Event event = new EventBuilder().build(); + thrown.expect(UnsupportedOperationException.class); + event.getTags().remove(0); + } + + @Test + public void isValidStartAndEndDate() { + // BLOOD startDate - 02-10-2018 + // BLOOD endDate - 05-10-2018 + + // startDate before endDate -> returns true + assertTrue(BLOOD.isValidStartAndEndDate(BLOOD.getStartDate(), BLOOD.getEndDate())); + + // startDate same as endDate -> returns true + Event editedBlood = new EventBuilder(BLOOD).withStartDate(BLOOD.getEndDate().toString()).build(); + assertTrue(editedBlood.isValidStartAndEndDate(editedBlood.getStartDate(), editedBlood.getEndDate())); + + // startDate more than endDate -> returns IllegalArgumentException + Assert.assertThrows(IllegalArgumentException.class, () -> new EventBuilder(BLOOD) + .withStartDate("06-10-2018").build()); + } + + @Test + public void isValidStartAndEndTime() { + // BLOOD startTime - 11:30 + // BLOOD endTime - 17:30 + + // startTime before endTime -> returns true + assertTrue(BLOOD.isValidStartAndEndTime(BLOOD.getStartTime(), BLOOD.getEndTime())); + + // startTime same as endTime -> returns true + Event editedBlood = new EventBuilder(BLOOD).withStartTime(BLOOD.getEndTime().toString()).build(); + assertTrue(editedBlood.isValidStartAndEndTime(editedBlood.getStartTime(), editedBlood.getEndTime())); + + // startTime more than endTime -> returns IllegalArgumentException + Assert.assertThrows(IllegalArgumentException.class, () -> new EventBuilder(BLOOD) + .withStartTime("18:30").build()); + } + + @Test + public void isSameEvent() { + // same object -> returns true + assertTrue(BLOOD.isSameEvent(BLOOD)); + + // null -> returns false + assertFalse(BLOOD.isSameEvent(null)); + + // different location, start date and end date -> returns false + Event editedBlood = new EventBuilder(BLOOD).withLocation(VALID_LOCATION_YOUTH) + .withStartDate(VALID_START_DATE_YOUTH).withEndDate(VALID_END_DATE_YOUTH).build(); + assertFalse(BLOOD.isSameEvent(editedBlood)); + + // different name -> returns false + editedBlood = new EventBuilder(BLOOD).withName(VALID_NAME_YOUTH).build(); + assertFalse(BLOOD.isSameEvent(editedBlood)); + + // same name, same location, same start and end date, different attributes -> returns true + editedBlood = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH) + .withStartTime(VALID_START_TIME_YOUTH).withEndTime(VALID_END_TIME_YOUTH) + .withTags(VALID_TAG_COMPETITION).build(); + assertTrue(BLOOD.isSameEvent(editedBlood)); + + // same name, same email, different attributes -> returns true + editedBlood = new EventBuilder(BLOOD).withLocation(VALID_LOCATION_YOUTH) + .withDescription(VALID_DESCRIPTION_YOUTH).withTags(VALID_TAG_COMPETITION).build(); + assertTrue(BLOOD.isSameEvent(editedBlood)); + } + + @Test + public void equals() { + // same values -> returns true + Event bloodCopy = new EventBuilder(BLOOD).build(); + assertTrue(BLOOD.equals(bloodCopy)); + + // same object -> returns true + assertTrue(BLOOD.equals(BLOOD)); + + // null -> returns false + assertFalse(BLOOD.equals(null)); + + // different type -> returns false + assertFalse(BLOOD.equals(5)); + + // different event -> returns false + assertFalse(BLOOD.equals(YOUTH)); + + // different name -> returns false + Event editedBlood = new EventBuilder(BLOOD).withName(VALID_NAME_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different location -> returns false + editedBlood = new EventBuilder(BLOOD).withLocation(VALID_LOCATION_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different startDate -> returns false + editedBlood = new EventBuilder(BLOOD).withStartDate(VALID_START_DATE_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different startTime -> returns false + editedBlood = new EventBuilder(BLOOD).withStartTime(VALID_START_TIME_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different endTime -> returns false + editedBlood = new EventBuilder(BLOOD).withEndTime(VALID_END_TIME_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different endTime -> returns false + editedBlood = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH).build(); + assertFalse(BLOOD.equals(editedBlood)); + + // different tags -> returns false + editedBlood = new EventBuilder(BLOOD).withTags(VALID_TAG_COMPETITION).build(); + assertFalse(BLOOD.equals(editedBlood)); + } } diff --git a/src/test/java/seedu/address/model/event/LocationTest.java b/src/test/java/seedu/address/model/event/LocationTest.java index f397adec792b..7b391bbe7b74 100644 --- a/src/test/java/seedu/address/model/event/LocationTest.java +++ b/src/test/java/seedu/address/model/event/LocationTest.java @@ -1,4 +1,36 @@ package seedu.address.model.event; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + public class LocationTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Location(null)); + } + + @Test + public void constructor_invalidLocation_throwsIllegalArgumentException() { + String invalidLocation = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Location(invalidLocation)); + } + + @Test + public void isValidLocation() { + // null location + Assert.assertThrows(NullPointerException.class, () -> Location.isValidLocation(null)); + + // invalid locations + assertFalse(Location.isValidLocation("")); // empty string + assertFalse(Location.isValidLocation(" ")); // spaces only + + // valid locations + assertTrue(Location.isValidLocation("19 Tanglin Road, #01-355")); + assertTrue(Location.isValidLocation("-")); // one character + assertTrue(Location.isValidLocation("5 Business Park IT BUILDING, 609914, Singapore")); // long location + } } diff --git a/src/test/java/seedu/address/testutil/EventBuilder.java b/src/test/java/seedu/address/testutil/EventBuilder.java index 17ae06287567..7d0daf539ea6 100644 --- a/src/test/java/seedu/address/testutil/EventBuilder.java +++ b/src/test/java/seedu/address/testutil/EventBuilder.java @@ -1,4 +1,126 @@ package seedu.address.testutil; +import java.util.HashSet; +import java.util.Set; + +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Event; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; +import seedu.address.model.tag.Tag; +import seedu.address.model.util.SampleDataUtil; + + public class EventBuilder { + public static final String DEFAULT_NAME = "Blood Donation Drive 2018"; + public static final String DEFAULT_LOCATION = "750E, Chai Chee Road, #08-111"; + public static final String DEFAULT_START_DATE = "02-10-2018"; + public static final String DEFAULT_END_DATE = "05-10-2018"; + public static final String DEFAULT_START_TIME = "11:30"; + public static final String DEFAULT_END_TIME = "17:30"; + public static final String DEFAULT_DESCRIPTION = "Donation drive for blood."; + + private Name name; + private Location location; + private Date startDate; + private Date endDate; + private Time startTime; + private Time endTime; + private Description description; + private Set tags; + + public EventBuilder() { + name = new Name(DEFAULT_NAME); + location = new Location(DEFAULT_LOCATION); + startDate = new Date(DEFAULT_START_DATE); + endDate = new Date(DEFAULT_END_DATE); + startTime = new Time(DEFAULT_START_TIME); + endTime = new Time(DEFAULT_END_TIME); + description = new Description(DEFAULT_DESCRIPTION); + tags = new HashSet<>(); + } + + /** + * Initializes the PersonBuilder with the data of {@code personToCopy}. + */ + public EventBuilder(Event eventToCopy) { + name = eventToCopy.getName(); + location = eventToCopy.getLocation(); + startDate = eventToCopy.getStartDate(); + endDate = eventToCopy.getEndDate(); + startTime = eventToCopy.getStartTime(); + endTime = eventToCopy.getEndTime(); + description = eventToCopy.getDescription(); + tags = new HashSet<>(eventToCopy.getTags()); + } + + /** + * Sets the {@code Name} of the {@code Event} that we are building. + */ + public EventBuilder withName(String name) { + this.name = new Name(name); + return this; + } + + /** + * Parses the {@code tags} into a {@code Set} and set it to the {@code Event} that we are building. + */ + public EventBuilder withTags(String ... tags) { + this.tags = SampleDataUtil.getTagSet(tags); + return this; + } + + /** + * Sets the {@code Location} of the {@code Event} that we are building. + */ + public EventBuilder withLocation(String location) { + this.location = new Location(location); + return this; + } + + /** + * Sets the start {@code Date} of the {@code Event} that we are building. + */ + public EventBuilder withStartDate(String startDate) { + this.startDate = new Date(startDate); + return this; + } + /** + * Sets the end {@code Date} of the {@code Event} that we are building. + */ + public EventBuilder withEndDate(String endDate) { + this.endDate = new Date(endDate); + return this; + } + + /** + * Sets the start {@code Time} of the {@code Event} that we are building. + */ + public EventBuilder withStartTime(String startTime) { + this.startTime = new Time(startTime); + return this; + } + + /** + * Sets the end {@code Time} of the {@code Event} that we are building. + */ + public EventBuilder withEndTime(String endTime) { + this.endTime = new Time(endTime); + return this; + } + + /** + * Sets the {@code Description} of the {@code Event} that we are building. + */ + public EventBuilder withDescription(String description) { + this.description = new Description(description); + return this; + } + + public Event build() { + return new Event(name, location, startDate, endDate, startTime, endTime, description, tags); + } + } diff --git a/src/test/java/seedu/address/testutil/TypicalEvents.java b/src/test/java/seedu/address/testutil/TypicalEvents.java index 6a665b5222e7..cab6b0ee30d1 100644 --- a/src/test/java/seedu/address/testutil/TypicalEvents.java +++ b/src/test/java/seedu/address/testutil/TypicalEvents.java @@ -1,4 +1,48 @@ package seedu.address.testutil; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_LOCATION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_START_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_START_TIME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_PUBLIC; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import seedu.address.model.AddressBook; +import seedu.address.model.event.Event; + public class TypicalEvents { + + public static final Event BLOOD = new EventBuilder().withName("Blood Donation Drive 2018") + .withLocation("750E, Chai Chee Road, #08-111").withStartDate("02-10-2018").withEndDate("05-10-2018") + .withStartTime("11:30").withEndTime("17:30").withDescription("Donation drive for blood.") + .withTags("Public", "Donation").build(); + + // Manually added - Event's details found in {@code CommandTestUtil} + public static final Event YOUTH = new EventBuilder().withName(VALID_NAME_YOUTH) + .withLocation(VALID_LOCATION_YOUTH).withStartDate(VALID_START_DATE_YOUTH).withEndDate(VALID_END_DATE_YOUTH) + .withStartTime(VALID_START_TIME_YOUTH).withEndTime(VALID_END_TIME_YOUTH) + .withDescription(VALID_DESCRIPTION_YOUTH).withTags(VALID_TAG_PUBLIC).build(); + + private TypicalEvents() {} // prevents instantiation + + /** + * Returns an {@code AddressBook} with all the typical events. + */ + public static AddressBook getTypicalAddressBook() { + AddressBook ab = new AddressBook(); + for (Event event : getTypicalEvents()) { + ab.addEvent(event); + } + return ab; + } + + public static List getTypicalEvents() { + return new ArrayList<>(Arrays.asList(BLOOD, YOUTH)); + } } From c6680c7884fddead4b32f2ff3f48a0f9f5e42306 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 22:05:28 +0800 Subject: [PATCH 047/655] Tweak comments indentation in Date.java and Time.java --- src/main/java/seedu/address/model/event/Date.java | 10 ++++++---- src/main/java/seedu/address/model/event/Time.java | 6 ++++-- .../seedu/address/model/event/UniqueEventListTest.java | 4 ++++ 3 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 src/test/java/seedu/address/model/event/UniqueEventListTest.java diff --git a/src/main/java/seedu/address/model/event/Date.java b/src/main/java/seedu/address/model/event/Date.java index 8ecdbed784dc..48ff3045a21a 100644 --- a/src/main/java/seedu/address/model/event/Date.java +++ b/src/main/java/seedu/address/model/event/Date.java @@ -72,12 +72,14 @@ public boolean isLessThanOrEqualTo(Date otherDate) { int otherMonth = Integer.parseInt(otherDateParts[1]); int otherDay = Integer.parseInt(otherDateParts[0]); - if (year > otherYear) { //start year is more than end year + if (year > otherYear) { + //start year is more than end year return false; - } else if (year == otherYear && month > otherMonth) { //same year but start month is more than end month + } else if (year == otherYear && month > otherMonth) { + //same year but start month is more than end month return false; - } else if (year == otherYear && month == otherMonth && day > otherDay) { //same year, same month but start - // day is more than end day + } else if (year == otherYear && month == otherMonth && day > otherDay) { + //same year, same month but start day is more than end day return false; } diff --git a/src/main/java/seedu/address/model/event/Time.java b/src/main/java/seedu/address/model/event/Time.java index 3b8e6a2e6aa8..fa47ea810e02 100644 --- a/src/main/java/seedu/address/model/event/Time.java +++ b/src/main/java/seedu/address/model/event/Time.java @@ -54,9 +54,11 @@ public boolean isLessThanOrEqualTo(Time otherTime) { int otherMinute = Integer.parseInt(otherTimeParts[1]); int otherHour = Integer.parseInt(otherTimeParts[0]); - if (hour > otherHour) { //start hour is more than end hour + if (hour > otherHour) { + //start hour is more than end hour return false; - } else if (hour == otherHour && minute > otherMinute) { //same hour but start min is later than end min + } else if (hour == otherHour && minute > otherMinute) { + //same hour but start min is later than end min return false; } diff --git a/src/test/java/seedu/address/model/event/UniqueEventListTest.java b/src/test/java/seedu/address/model/event/UniqueEventListTest.java new file mode 100644 index 000000000000..b9ca36ac1130 --- /dev/null +++ b/src/test/java/seedu/address/model/event/UniqueEventListTest.java @@ -0,0 +1,4 @@ +package seedu.address.model.event; + +public class UniqueEventListTest { +} From 9234e546de4a7c9af1dd573311a00a89dc6110ef Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 24 Sep 2018 22:05:42 +0800 Subject: [PATCH 048/655] model: Modified ModelManager to implement Record --- .../java/seedu/address/model/AddressBook.java | 10 ++-- src/main/java/seedu/address/model/Model.java | 36 ++++++++++++ .../seedu/address/model/ModelManager.java | 56 ++++++++++++++++++- 3 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index ea6b9a0980c9..04ec48b70866 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -109,7 +109,7 @@ public void removePerson(Person key) { //// record-level operations /** - * Returns true if a record with the same identity as {@code record} exists in the address book. + * Returns true if a record with the same identity as {@code record} exists in the database. */ public boolean hasRecord(Record record) { requireNonNull(record); @@ -118,7 +118,7 @@ public boolean hasRecord(Record record) { /** * Adds a record to the address book. - * The record must not already exist in the address book. + * The record must not already exist in the database */ public void addRecord(Record r) { records.add(r); @@ -126,8 +126,8 @@ public void addRecord(Record r) { /** * Replaces the given record {@code target} in the list with {@code editedRecord}. - * {@code target} must exist in the address book. - * The record identity of {@code editedRecord} must not be the same as another existing record in the address book. + * {@code target} must exist in the database. + * The record identity of {@code editedRecord} must not be the same as another existing record in the database. */ public void updateRecord(Record target, Record editedRecord) { requireNonNull(editedRecord); @@ -137,7 +137,7 @@ public void updateRecord(Record target, Record editedRecord) { /** * Removes {@code key} from this {@code AddressBook}. - * {@code key} must exist in the address book. + * {@code key} must exist in the database. */ public void removeRecord(Record key) { records.remove(key); diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index ac4521f33199..725691c867ca 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -4,6 +4,7 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * The API of the Model component. @@ -11,6 +12,7 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; + Predicate PREDICATE_SHOW_ALL_RECORDS = unused -> true; /** Clears existing backing model and replaces with the provided new data. */ void resetData(ReadOnlyAddressBook newData); @@ -51,6 +53,40 @@ public interface Model { */ void updateFilteredPersonList(Predicate predicate); + /** + * Returns true if a record with the same identity as {@code record} exists in the database. + */ + boolean hasRecord(Record record); + + /** + * Deletes the given record. + * The record must exist in the database. + */ + void deleteRecord(Record target); + + /** + * Adds the given record. + * {@code record} must not already exist in the database. + */ + void addRecord(Record record); + + /** + * Replaces the given record {@code target} with {@code editedRecord}. + * {@code target} must exist in the database. + * The record identity of {@code editedRecord} must not be the same as another existing record in the database. + */ + void updateRecord(Record target, Record editedRecord); + + /** Returns an unmodifiable view of the filtered record list */ + ObservableList getFilteredRecordList(); + + /** + * Updates the filter of the filtered record list to filter by the given {@code predicate}. + * @throws NullPointerException if {@code predicate} is null. + */ + void updateFilteredRecordList(Predicate predicate); + + /** * Returns true if the model has previous address book states to restore. */ diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index a664602ef5b1..4c5b059b04c4 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -13,6 +13,7 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.model.AddressBookChangedEvent; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * Represents the in-memory model of the address book data. @@ -22,6 +23,7 @@ public class ModelManager extends ComponentManager implements Model { private final VersionedAddressBook versionedAddressBook; private final FilteredList filteredPersons; + private final FilteredList filteredRecords; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -34,6 +36,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, UserPrefs userPrefs) { versionedAddressBook = new VersionedAddressBook(addressBook); filteredPersons = new FilteredList<>(versionedAddressBook.getPersonList()); + filteredRecords = new FilteredList<>(versionedAddressBook.getRecordList()); } public ModelManager() { @@ -51,11 +54,14 @@ public ReadOnlyAddressBook getAddressBook() { return versionedAddressBook; } - /** Raises an event to indicate the model has changed */ + /** + * Raises an event to indicate the model has changed + */ private void indicateAddressBookChanged() { raise(new AddressBookChangedEvent(versionedAddressBook)); } + //=========== Person List Methods ============================================================= @Override public boolean hasPerson(Person person) { requireNonNull(person); @@ -100,6 +106,51 @@ public void updateFilteredPersonList(Predicate predicate) { filteredPersons.setPredicate(predicate); } + //=========== Record List Methods ============================================================= + @Override + public boolean hasRecord(Record record) { + requireNonNull(record); + return versionedAddressBook.hasRecord(record); + } + + @Override + public void deleteRecord(Record target) { + versionedAddressBook.removeRecord(target); + indicateAddressBookChanged(); + } + + @Override + public void addRecord(Record record) { + versionedAddressBook.addRecord(record); + updateFilteredRecordList(PREDICATE_SHOW_ALL_RECORDS); + indicateAddressBookChanged(); + } + + @Override + public void updateRecord(Record target, Record editedRecord) { + requireAllNonNull(target, editedRecord); + + versionedAddressBook.updateRecord(target, editedRecord); + indicateAddressBookChanged(); + } + + //=========== Filtered Record List Accessors ============================================================= + + /** + * Returns an unmodifiable view of the list of {@code Record} backed by the internal list of + * {@code versionedAddressBook} + */ + @Override + public ObservableList getFilteredRecordList() { + return FXCollections.unmodifiableObservableList(filteredRecords); + } + + @Override + public void updateFilteredRecordList(Predicate predicate) { + requireNonNull(predicate); + filteredRecords.setPredicate(predicate); + } + //=========== Undo/Redo ================================================================================= @Override @@ -144,7 +195,8 @@ public boolean equals(Object obj) { // state check ModelManager other = (ModelManager) obj; return versionedAddressBook.equals(other.versionedAddressBook) - && filteredPersons.equals(other.filteredPersons); + && filteredPersons.equals(other.filteredPersons) + && filteredRecords.equals(other.filteredRecords); } } From 77b58cb9a2948068079d9d6338b923b79ed1bfc3 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 24 Sep 2018 22:48:20 +0800 Subject: [PATCH 049/655] Rectify import order and missing java doc in EventTest.java, EventBuilder.java and TypicalEvents.java --- .../java/seedu/address/model/event/EventTest.java | 10 +++++----- .../java/seedu/address/testutil/EventBuilder.java | 4 +++- .../java/seedu/address/testutil/TypicalEvents.java | 11 +++++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/test/java/seedu/address/model/event/EventTest.java b/src/test/java/seedu/address/model/event/EventTest.java index abe3f8b64bfd..06664d493715 100644 --- a/src/test/java/seedu/address/model/event/EventTest.java +++ b/src/test/java/seedu/address/model/event/EventTest.java @@ -2,18 +2,18 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; + +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_LOCATION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_DATE_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_TIME_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_COMPETITION; import static seedu.address.testutil.TypicalEvents.BLOOD; import static seedu.address.testutil.TypicalEvents.YOUTH; - import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; diff --git a/src/test/java/seedu/address/testutil/EventBuilder.java b/src/test/java/seedu/address/testutil/EventBuilder.java index 7d0daf539ea6..42bf6c9c9efc 100644 --- a/src/test/java/seedu/address/testutil/EventBuilder.java +++ b/src/test/java/seedu/address/testutil/EventBuilder.java @@ -12,7 +12,9 @@ import seedu.address.model.tag.Tag; import seedu.address.model.util.SampleDataUtil; - +/** + * A utility class to help with building Event objects. + */ public class EventBuilder { public static final String DEFAULT_NAME = "Blood Donation Drive 2018"; public static final String DEFAULT_LOCATION = "750E, Chai Chee Road, #08-111"; diff --git a/src/test/java/seedu/address/testutil/TypicalEvents.java b/src/test/java/seedu/address/testutil/TypicalEvents.java index cab6b0ee30d1..5dc6fe64518c 100644 --- a/src/test/java/seedu/address/testutil/TypicalEvents.java +++ b/src/test/java/seedu/address/testutil/TypicalEvents.java @@ -1,12 +1,12 @@ package seedu.address.testutil; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_LOCATION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_DATE_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_END_DATE_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_TIME_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_END_TIME_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_PUBLIC; import java.util.ArrayList; @@ -16,6 +16,9 @@ import seedu.address.model.AddressBook; import seedu.address.model.event.Event; +/** + * A utility class containing a list of {@code Event} objects to be used in tests. + */ public class TypicalEvents { public static final Event BLOOD = new EventBuilder().withName("Blood Donation Drive 2018") From da0583836259aca719c2ff2490014c0cbde506c2 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 00:07:55 +0800 Subject: [PATCH 050/655] model: Modified model to take in records --- src/main/java/seedu/address/model/Model.java | 1 - .../seedu/address/model/ModelManager.java | 4 +-- .../logic/commands/AddCommandTest.java | 31 +++++++++++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 725691c867ca..fa825d601f05 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -86,7 +86,6 @@ public interface Model { */ void updateFilteredRecordList(Predicate predicate); - /** * Returns true if the model has previous address book states to restore. */ diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 4c5b059b04c4..02b9e04fbd4d 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -150,7 +150,6 @@ public void updateFilteredRecordList(Predicate predicate) { requireNonNull(predicate); filteredRecords.setPredicate(predicate); } - //=========== Undo/Redo ================================================================================= @Override @@ -195,8 +194,7 @@ public boolean equals(Object obj) { // state check ModelManager other = (ModelManager) obj; return versionedAddressBook.equals(other.versionedAddressBook) - && filteredPersons.equals(other.filteredPersons) - && filteredRecords.equals(other.filteredRecords); + && filteredPersons.equals(other.filteredPersons); } } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index c7077829f434..eeb335bc63d9 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -20,6 +20,7 @@ import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; import seedu.address.testutil.PersonBuilder; public class AddCommandTest { @@ -128,6 +129,36 @@ public void updateFilteredPersonList(Predicate predicate) { throw new AssertionError("This method should not be called."); } + @Override + public boolean hasRecord(Record record) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deleteRecord(Record target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addRecord(Record record) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateRecord(Record target, Record editedRecord) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ObservableList getFilteredRecordList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredRecordList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + @Override public boolean canUndoAddressBook() { throw new AssertionError("This method should not be called."); From 900339b7431434ac3e787e28771ea789c7691e93 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 00:10:35 +0800 Subject: [PATCH 051/655] Add tests for UniqueEventList.java --- .../model/event/UniqueEventListTest.java | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/src/test/java/seedu/address/model/event/UniqueEventListTest.java b/src/test/java/seedu/address/model/event/UniqueEventListTest.java index b9ca36ac1130..cb0b03146ce3 100644 --- a/src/test/java/seedu/address/model/event/UniqueEventListTest.java +++ b/src/test/java/seedu/address/model/event/UniqueEventListTest.java @@ -1,4 +1,185 @@ package seedu.address.model.event; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_COMPETITION; +import static seedu.address.testutil.TypicalEvents.BLOOD; +import static seedu.address.testutil.TypicalEvents.YOUTH; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import seedu.address.model.event.exceptions.DuplicateEventException; +import seedu.address.model.event.exceptions.EventNotFoundException; +import seedu.address.testutil.EventBuilder; + public class UniqueEventListTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + private final UniqueEventList uniqueEventList = new UniqueEventList(); + + @Test + public void contains_nullEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.contains(null); + } + + @Test + public void contains_eventNotInList_returnsFalse() { + assertFalse(uniqueEventList.contains(BLOOD)); + } + + @Test + public void contains_eventInList_returnsTrue() { + uniqueEventList.add(BLOOD); + assertTrue(uniqueEventList.contains(BLOOD)); + } + + @Test + public void contains_eventWithSameIdentityFieldsInList_returnsTrue() { + uniqueEventList.add(BLOOD); + Event editedBlood = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH) + .withTags(VALID_TAG_COMPETITION).build(); + assertTrue(uniqueEventList.contains(editedBlood)); + } + + @Test + public void add_nullEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.add(null); + } + + @Test + public void add_duplicateEvent_throwsDuplicateEventException() { + uniqueEventList.add(BLOOD); + thrown.expect(DuplicateEventException.class); + uniqueEventList.add(BLOOD); + } + + @Test + public void setEvent_nullTargetEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.setEvent(null, BLOOD); + } + + @Test + public void setEvent_nullEditedEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.setEvent(BLOOD, null); + } + + @Test + public void setEvent_targetEventNotInList_throwsEventNotFoundException() { + thrown.expect(EventNotFoundException.class); + uniqueEventList.setEvent(BLOOD, BLOOD); + } + + @Test + public void setEvent_editedEventIsSameEvent_success() { + uniqueEventList.add(BLOOD); + uniqueEventList.setEvent(BLOOD, BLOOD); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + expectedUniqueEventList.add(BLOOD); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvent_editedEventHasSameIdentity_success() { + uniqueEventList.add(BLOOD); + Event editedBlood = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH) + .withTags(VALID_TAG_COMPETITION).build(); + uniqueEventList.setEvent(BLOOD, editedBlood); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + expectedUniqueEventList.add(editedBlood); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvent_editedEventHasDifferentIdentity_success() { + uniqueEventList.add(BLOOD); + uniqueEventList.setEvent(BLOOD, YOUTH); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + expectedUniqueEventList.add(YOUTH); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvent_editedEventHasNonUniqueIdentity_throwsDuplicateEventException() { + uniqueEventList.add(BLOOD); + uniqueEventList.add(YOUTH); + thrown.expect(DuplicateEventException.class); + uniqueEventList.setEvent(BLOOD, YOUTH); + } + + @Test + public void remove_nullEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.remove(null); + } + + @Test + public void remove_eventDoesNotExist_throwsEventNotFoundException() { + thrown.expect(EventNotFoundException.class); + uniqueEventList.remove(BLOOD); + } + + @Test + public void remove_existingEvent_removesEvent() { + uniqueEventList.add(BLOOD); + uniqueEventList.remove(BLOOD); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvents_nullUniqueEventList_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.setEvents((UniqueEventList) null); + } + + @Test + public void setEvents_uniqueEventList_replacesOwnListWithProvidedUniqueEventList() { + uniqueEventList.add(BLOOD); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + expectedUniqueEventList.add(YOUTH); + uniqueEventList.setEvents(expectedUniqueEventList); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvents_nullList_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueEventList.setEvents((List) null); + } + + @Test + public void setEvents_list_replacesOwnListWithProvidedList() { + uniqueEventList.add(BLOOD); + List eventList = Collections.singletonList(YOUTH); + uniqueEventList.setEvents(eventList); + UniqueEventList expectedUniqueEventList = new UniqueEventList(); + expectedUniqueEventList.add(YOUTH); + assertEquals(expectedUniqueEventList, uniqueEventList); + } + + @Test + public void setEvents_listWithDuplicateEvents_throwsDuplicateEventException() { + List listWithDuplicateEvents = Arrays.asList(BLOOD, BLOOD); + thrown.expect(DuplicateEventException.class); + uniqueEventList.setEvents(listWithDuplicateEvents); + } + + @Test + public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + uniqueEventList.asUnmodifiableObservableList().remove(0); + } } From ee2c749880dc6c3be92fc90ff9929c9f7797d30b Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 00:18:47 +0800 Subject: [PATCH 052/655] test: Modified AddressBookTest --- src/test/java/seedu/address/model/AddressBookTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/seedu/address/model/AddressBookTest.java index 0d33cff49ab1..5f2815325194 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/seedu/address/model/AddressBookTest.java @@ -21,6 +21,7 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; import seedu.address.model.person.exceptions.DuplicatePersonException; +import seedu.address.model.record.Record; import seedu.address.testutil.PersonBuilder; public class AddressBookTest { @@ -96,6 +97,7 @@ public void getPersonList_modifyList_throwsUnsupportedOperationException() { */ private static class AddressBookStub implements ReadOnlyAddressBook { private final ObservableList persons = FXCollections.observableArrayList(); + private final ObservableList records = FXCollections.observableArrayList(); AddressBookStub(Collection persons) { this.persons.setAll(persons); @@ -105,6 +107,11 @@ private static class AddressBookStub implements ReadOnlyAddressBook { public ObservableList getPersonList() { return persons; } + + @Override + public ObservableList getRecordList() { + return records; + } } } From 816d46fa0e7b5158d5f8590567f46211e6f124ec Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 00:40:44 +0800 Subject: [PATCH 053/655] Add tests for XMLAdaptedEvent.java --- .../address/storage/XmlAdaptedEventTest.java | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 src/test/java/seedu/address/storage/XmlAdaptedEventTest.java diff --git a/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java b/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java new file mode 100644 index 000000000000..0d9bdeaf5104 --- /dev/null +++ b/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java @@ -0,0 +1,176 @@ +package seedu.address.storage; + +import static org.junit.Assert.assertEquals; +import static seedu.address.storage.XmlAdaptedEvent.MISSING_FIELD_MESSAGE_FORMAT; +import static seedu.address.testutil.TypicalEvents.YOUTH; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.Test; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; +import seedu.address.testutil.Assert; + +public class XmlAdaptedEventTest { + private static final String INVALID_NAME = " Bl@@d"; + private static final String INVALID_LOCATION = " "; + private static final String INVALID_START_DATE = "123"; + private static final String INVALID_END_DATE = "456"; + private static final String INVALID_START_TIME = "789"; + private static final String INVALID_END_TIME = "555"; + private static final String INVALID_DESCRIPTION = " "; + private static final String INVALID_TAG = "#friend"; + + private static final String VALID_NAME = YOUTH.getName().toString(); + private static final String VALID_LOCATION = YOUTH.getLocation().toString(); + private static final String VALID_START_DATE = YOUTH.getStartDate().toString(); + private static final String VALID_END_DATE = YOUTH.getEndDate().toString(); + private static final String VALID_START_TIME = YOUTH.getStartTime().toString(); + private static final String VALID_END_TIME = YOUTH.getEndTime().toString(); + private static final String VALID_DESCRIPTION = YOUTH.getDescription().toString(); + private static final List VALID_TAGS = YOUTH.getTags().stream() + .map(XmlAdaptedTag::new) + .collect(Collectors.toList()); + + @Test + public void toModelType_validEventDetails_returnsEvent() throws Exception { + XmlAdaptedEvent event = new XmlAdaptedEvent(YOUTH); + assertEquals(YOUTH, event.toModelType()); + } + + @Test + public void toModelType_invalidName_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(INVALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Name.MESSAGE_NAME_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullName_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(null, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidLocation_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, INVALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Location.MESSAGE_LOCATION_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullLocation_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, null, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Location.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidStartDate_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, INVALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Date.MESSAGE_DATE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullStartDate_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, null, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidEndDate_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, INVALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Date.MESSAGE_DATE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullEndDate_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, null, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidStartTime_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + INVALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Time.MESSAGE_TIME_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullStartTime_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + null, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidEndTime_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, INVALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Time.MESSAGE_TIME_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullEndTime_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, null, VALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidDescription_throwsIllegalValueException() { + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, INVALID_DESCRIPTION, VALID_TAGS); + String expectedMessage = Description.MESSAGE_DESCRIPTION_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_nullDescription_throwsIllegalValueException() { + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, null, VALID_TAGS); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Description.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); + } + + @Test + public void toModelType_invalidTags_throwsIllegalValueException() { + List invalidTags = new ArrayList<>(VALID_TAGS); + invalidTags.add(new XmlAdaptedTag(INVALID_TAG)); + XmlAdaptedEvent event = + new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, invalidTags); + Assert.assertThrows(IllegalValueException.class, event::toModelType); + } +} From 04cfda93be0f965d60bd254addf8a073bf3a010a Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 00:58:15 +0800 Subject: [PATCH 054/655] Update tests for ModelManager.java to include Events --- .../seedu/address/model/ModelManagerTest.java | 29 ++++++++++++++++++- .../address/testutil/AddressBookBuilder.java | 10 +++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 7eab39d5de43..bf6b7e80b0fa 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -3,6 +3,8 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static seedu.address.testutil.TypicalEvents.BLOOD; +import static seedu.address.testutil.TypicalEvents.YOUTH; import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.BENSON; @@ -39,15 +41,40 @@ public void hasPerson_personInAddressBook_returnsTrue() { assertTrue(modelManager.hasPerson(ALICE)); } + @Test + public void hasEvent_nullEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + modelManager.hasEvent(null); + } + + @Test + public void hasEvent_personNotInAddressBook_returnsFalse() { + assertFalse(modelManager.hasEvent(BLOOD)); + } + + @Test + public void hasEvent_personInAddressBook_returnsTrue() { + modelManager.addEvent(BLOOD); + assertTrue(modelManager.hasEvent(BLOOD)); + } + @Test public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { thrown.expect(UnsupportedOperationException.class); modelManager.getFilteredPersonList().remove(0); } + @Test + public void getFilteredEventList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + modelManager.getFilteredEventList().remove(0); + } + @Test public void equals() { - AddressBook addressBook = new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON).build(); + AddressBook addressBook = new AddressBookBuilder() + .withPerson(ALICE).withPerson(BENSON) + .withEvent(BLOOD).withEvent(YOUTH).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); diff --git a/src/test/java/seedu/address/testutil/AddressBookBuilder.java b/src/test/java/seedu/address/testutil/AddressBookBuilder.java index d53799fd1102..5835edb86aef 100644 --- a/src/test/java/seedu/address/testutil/AddressBookBuilder.java +++ b/src/test/java/seedu/address/testutil/AddressBookBuilder.java @@ -1,6 +1,7 @@ package seedu.address.testutil; import seedu.address.model.AddressBook; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -28,6 +29,15 @@ public AddressBookBuilder withPerson(Person person) { return this; } + /** + * Adds a new {@code Event} to the {@code AddressBook} that we are building. + */ + public AddressBookBuilder withEvent(Event event) { + addressBook.addEvent(event); + return this; + } + + public AddressBook build() { return addressBook; } From 0d4608dd807c2f42599ed220a8942b79c79e8e14 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 00:59:00 +0800 Subject: [PATCH 055/655] Modify YOUTH TypicalEvent tags --- src/test/java/seedu/address/testutil/TypicalEvents.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/address/testutil/TypicalEvents.java b/src/test/java/seedu/address/testutil/TypicalEvents.java index 5dc6fe64518c..0a4cfce94dc1 100644 --- a/src/test/java/seedu/address/testutil/TypicalEvents.java +++ b/src/test/java/seedu/address/testutil/TypicalEvents.java @@ -7,7 +7,7 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_DATE_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_START_TIME_YOUTH; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_PUBLIC; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_COMPETITION; import java.util.ArrayList; import java.util.Arrays; @@ -30,7 +30,7 @@ public class TypicalEvents { public static final Event YOUTH = new EventBuilder().withName(VALID_NAME_YOUTH) .withLocation(VALID_LOCATION_YOUTH).withStartDate(VALID_START_DATE_YOUTH).withEndDate(VALID_END_DATE_YOUTH) .withStartTime(VALID_START_TIME_YOUTH).withEndTime(VALID_END_TIME_YOUTH) - .withDescription(VALID_DESCRIPTION_YOUTH).withTags(VALID_TAG_PUBLIC).build(); + .withDescription(VALID_DESCRIPTION_YOUTH).withTags(VALID_TAG_COMPETITION).build(); private TypicalEvents() {} // prevents instantiation From c6a282ca281d1a524228a648bd72cbe75638a404 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 01:13:24 +0800 Subject: [PATCH 056/655] Remove Id.java and Id paramater in Event.java --- src/main/java/seedu/address/model/event/Event.java | 6 +----- src/main/java/seedu/address/model/event/Id.java | 8 -------- 2 files changed, 1 insertion(+), 13 deletions(-) delete mode 100644 src/main/java/seedu/address/model/event/Id.java diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index 1ebbd2063024..ce43c2280c74 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -38,7 +38,7 @@ public class Event { /** * Every field must be present and not null. */ - //Id to be added to constructor + //EventId to be added to constructor public Event(Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { //requireAllNonNull(id, name, location, startDate, endDate, description, tags); @@ -74,10 +74,6 @@ public static boolean isValidStartAndEndTime(Time startTime, Time endTime) { return startTime.isLessThanOrEqualTo(endTime); } - /*public Id getId() { - return id; - }*/ - public Name getName() { return name; } diff --git a/src/main/java/seedu/address/model/event/Id.java b/src/main/java/seedu/address/model/event/Id.java deleted file mode 100644 index 78d33ae28371..000000000000 --- a/src/main/java/seedu/address/model/event/Id.java +++ /dev/null @@ -1,8 +0,0 @@ -package seedu.address.model.event; - -/** - * Represents an Event's id in the application. - * Guarantees: immutable; is valid as declared in {@link #isValidId(String)} - */ -public class Id { -} From 6a18e2aa3bae2e928aad5ad9b9e334b5b7fb4830 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 01:26:44 +0800 Subject: [PATCH 057/655] test/record: Basic test cases --- .../logic/commands/CommandTestUtil.java | 9 + .../address/model/record/EventIdTest.java | 22 +++ .../seedu/address/model/record/HourTest.java | 37 ++++ .../address/model/record/RecordTest.java | 85 ++++++++ .../address/model/record/RemarkTest.java | 37 ++++ .../model/record/UniqueRecordListTest.java | 185 ++++++++++++++++++ .../address/model/record/VolunteerIdTest.java | 22 +++ .../seedu/address/testutil/RecordBuilder.java | 76 +++++++ .../address/testutil/TypicalRecords.java | 47 +++++ 9 files changed, 520 insertions(+) create mode 100644 src/test/java/seedu/address/model/record/EventIdTest.java create mode 100644 src/test/java/seedu/address/model/record/HourTest.java create mode 100644 src/test/java/seedu/address/model/record/RecordTest.java create mode 100644 src/test/java/seedu/address/model/record/RemarkTest.java create mode 100644 src/test/java/seedu/address/model/record/UniqueRecordListTest.java create mode 100644 src/test/java/seedu/address/model/record/VolunteerIdTest.java create mode 100644 src/test/java/seedu/address/testutil/RecordBuilder.java create mode 100644 src/test/java/seedu/address/testutil/TypicalRecords.java diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index bf861fcb36c3..9aed71b0a8eb 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -26,6 +26,15 @@ */ public class CommandTestUtil { + public static final String VALID_EVENTID_E1 = "1"; + public static final String VALID_EVENTID_E2 = "2"; + public static final String VALID_VOLUNTEERID_V1 = "1"; + public static final String VALID_VOLUNTEERID_V2 = "2"; + public static final String VALID_HOUR_H1 = "1"; + public static final String VALID_HOUR_H2 = "2"; + public static final String VALID_REMARK_R1 = "Emcee"; + public static final String VALID_REMARK_R2 = "Delivery man"; + public static final String VALID_NAME_AMY = "Amy Bee"; public static final String VALID_NAME_BOB = "Bob Choo"; public static final String VALID_PHONE_AMY = "11111111"; diff --git a/src/test/java/seedu/address/model/record/EventIdTest.java b/src/test/java/seedu/address/model/record/EventIdTest.java new file mode 100644 index 000000000000..6a0ba6df8f09 --- /dev/null +++ b/src/test/java/seedu/address/model/record/EventIdTest.java @@ -0,0 +1,22 @@ +package seedu.address.model.record; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + +/** + * Note that EventId will be from Event. All tests should be done there. + */ +public class EventIdTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new EventId(null)); + } + + @Test + public void constructor_invalidEventId_throwsIllegalArgumentException() { + String invalidEventId = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new EventId(invalidEventId)); + } +} diff --git a/src/test/java/seedu/address/model/record/HourTest.java b/src/test/java/seedu/address/model/record/HourTest.java new file mode 100644 index 000000000000..1576a4812398 --- /dev/null +++ b/src/test/java/seedu/address/model/record/HourTest.java @@ -0,0 +1,37 @@ +package seedu.address.model.record; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + +public class HourTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Hour(null)); + } + + @Test + public void constructor_invalidHour_throwsIllegalArgumentException() { + String invalidHour = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Hour(invalidHour)); + } + + @Test + public void isValidHour() { + // null hour + Assert.assertThrows(NullPointerException.class, () -> Hour.isValidHour(null)); + + // invalid hour + assertFalse(Hour.isValidHour("")); // empty string + assertFalse(Hour.isValidHour(" ")); // spaces only + assertFalse(Hour.isValidHour("^")); // only non-alphanumeric characters + assertFalse(Hour.isValidHour("0*")); // contains non-alphanumeric characters + + // valid hour + assertTrue(Hour.isValidHour("1")); // numbers only + } +} diff --git a/src/test/java/seedu/address/model/record/RecordTest.java b/src/test/java/seedu/address/model/record/RecordTest.java new file mode 100644 index 000000000000..91899feeb4ed --- /dev/null +++ b/src/test/java/seedu/address/model/record/RecordTest.java @@ -0,0 +1,85 @@ +package seedu.address.model.record; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_EVENTID_E1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_EVENTID_E2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_HOUR_H2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_REMARK_R2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_VOLUNTEERID_V1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_VOLUNTEERID_V2; +import static seedu.address.testutil.TypicalRecords.R1; +import static seedu.address.testutil.TypicalRecords.R2; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import seedu.address.testutil.RecordBuilder; + +public class RecordTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + } + + @Test + public void isSameRecord() { + // same object -> returns true + assertTrue(R1.isSameRecord(R1)); + + // null -> returns false + assertFalse(R1.isSameRecord(null)); + + // different eventId and volunteerId -> returns false + Record editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E2).withVolunteerId(VALID_VOLUNTEERID_V2).build(); + assertFalse(R1.isSameRecord(editedRecord)); + + // same eventId, same volunteerId -> returns true + editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E1).withVolunteerId(VALID_VOLUNTEERID_V1).build(); + assertTrue(R1.isSameRecord(editedRecord)); + + // same eventId, same volunteerId, different attributes -> returns true + editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E1).withVolunteerId(VALID_VOLUNTEERID_V1) + .withHour(VALID_HOUR_H2).withRemark(VALID_REMARK_R2).build(); + assertTrue(R1.isSameRecord(editedRecord)); + } + + @Test + public void equals() { + // same values -> returns true + Record r1Copy = new RecordBuilder(R1).build(); + assertTrue(R1.equals(r1Copy)); + + // same object -> returns true + assertTrue(R1.equals(R1)); + + // null -> returns false + assertFalse(R1.equals(null)); + + // different type -> returns false + assertFalse(R1.equals(5)); + + // different Record -> returns false + assertFalse(R1.equals(R2)); + + // different eventId -> returns false + Record editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E2).build(); + assertFalse(R1.equals(editedRecord)); + + // different volunteerId -> returns false + editedRecord = new RecordBuilder(R1).withVolunteerId(VALID_VOLUNTEERID_V2).build(); + assertFalse(R1.equals(editedRecord)); + + // different hour -> returns false + editedRecord = new RecordBuilder(R1).withHour(VALID_HOUR_H2).build(); + assertFalse(R1.equals(editedRecord)); + + // different remark -> returns false + editedRecord = new RecordBuilder(R1).withRemark(VALID_REMARK_R2).build(); + assertFalse(R1.equals(editedRecord)); + } +} diff --git a/src/test/java/seedu/address/model/record/RemarkTest.java b/src/test/java/seedu/address/model/record/RemarkTest.java new file mode 100644 index 000000000000..94d6979d856e --- /dev/null +++ b/src/test/java/seedu/address/model/record/RemarkTest.java @@ -0,0 +1,37 @@ +package seedu.address.model.record; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + +public class RemarkTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Remark(null)); + } + + @Test + public void constructor_invalidRemark_throwsIllegalArgumentException() { + String invalidRemark = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Remark(invalidRemark)); + } + + @Test + public void isValidRemark() { + // null Remark + Assert.assertThrows(NullPointerException.class, () -> Remark.isValidRemark(null)); + + // invalid Remark + assertFalse(Remark.isValidRemark("")); // empty string + assertFalse(Remark.isValidRemark(" ")); // spaces only + + // valid Remark + assertTrue(Remark.isValidRemark("Emcee")); + assertTrue(Remark.isValidRemark("-")); // one character + assertTrue(Remark.isValidRemark("To be the emcee for event")); // long remark + } +} diff --git a/src/test/java/seedu/address/model/record/UniqueRecordListTest.java b/src/test/java/seedu/address/model/record/UniqueRecordListTest.java new file mode 100644 index 000000000000..0f79725f8ed8 --- /dev/null +++ b/src/test/java/seedu/address/model/record/UniqueRecordListTest.java @@ -0,0 +1,185 @@ +package seedu.address.model.record; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_HOUR_H2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_REMARK_R2; +import static seedu.address.testutil.TypicalRecords.R1; +import static seedu.address.testutil.TypicalRecords.R2; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import seedu.address.model.record.exceptions.DuplicateRecordException; +import seedu.address.model.record.exceptions.RecordNotFoundException; +import seedu.address.testutil.RecordBuilder; + +public class UniqueRecordListTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + private final UniqueRecordList uniqueRecordList = new UniqueRecordList(); + + @Test + public void contains_nullRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.contains(null); + } + + @Test + public void contains_recordNotInList_returnsFalse() { + assertFalse(uniqueRecordList.contains(R1)); + } + + @Test + public void contains_recordInList_returnsTrue() { + uniqueRecordList.add(R1); + assertTrue(uniqueRecordList.contains(R1)); + } + + @Test + public void contains_recordWithSameIdentityFieldsInList_returnsTrue() { + uniqueRecordList.add(R1); + Record editedRecord = new RecordBuilder(R1).withHour(VALID_HOUR_H2).withRemark(VALID_REMARK_R2) + .build(); + assertTrue(uniqueRecordList.contains(editedRecord)); + } + + @Test + public void add_nullRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.add(null); + } + + @Test + public void add_duplicateRecord_throwsDuplicateRecordException() { + uniqueRecordList.add(R1); + thrown.expect(DuplicateRecordException.class); + uniqueRecordList.add(R1); + } + + @Test + public void setRecord_nullTargetRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.setRecord(null, R1); + } + + @Test + public void setRecord_nullEditedRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.setRecord(R1, null); + } + + @Test + public void setRecord_targetRecordNotInList_throwsRecordNotFoundException() { + thrown.expect(RecordNotFoundException.class); + uniqueRecordList.setRecord(R1, R1); + } + + @Test + public void setRecord_editedRecordIsSameRecord_success() { + uniqueRecordList.add(R1); + uniqueRecordList.setRecord(R1, R1); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + expectedUniqueRecordList.add(R1); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecord_editedRecordHasSameIdentity_success() { + uniqueRecordList.add(R1); + Record editedRecord = new RecordBuilder(R1).withHour(VALID_HOUR_H2).withRemark(VALID_REMARK_R2) + .build(); + uniqueRecordList.setRecord(R1, editedRecord); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + expectedUniqueRecordList.add(editedRecord); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecord_editedRecordHasDifferentIdentity_success() { + uniqueRecordList.add(R1); + uniqueRecordList.setRecord(R1, R2); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + expectedUniqueRecordList.add(R2); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecord_editedRecordHasNonUniqueIdentity_throwsDuplicateRecordException() { + uniqueRecordList.add(R1); + uniqueRecordList.add(R2); + thrown.expect(DuplicateRecordException.class); + uniqueRecordList.setRecord(R1, R2); + } + + @Test + public void remove_nullRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.remove(null); + } + + @Test + public void remove_recordDoesNotExist_throwsRecordNotFoundException() { + thrown.expect(RecordNotFoundException.class); + uniqueRecordList.remove(R1); + } + + @Test + public void remove_existingRecord_removesRecord() { + uniqueRecordList.add(R1); + uniqueRecordList.remove(R1); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecords_nullUniqueRecordList_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.setRecords((UniqueRecordList) null); + } + + @Test + public void setRecords_uniqueRecordList_replacesOwnListWithProvidedUniqueRecordList() { + uniqueRecordList.add(R1); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + expectedUniqueRecordList.add(R2); + uniqueRecordList.setRecords(expectedUniqueRecordList); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecords_nullList_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + uniqueRecordList.setRecords((List) null); + } + + @Test + public void setRecords_list_replacesOwnListWithProvidedList() { + uniqueRecordList.add(R1); + List recordList = Collections.singletonList(R2); + uniqueRecordList.setRecords(recordList); + UniqueRecordList expectedUniqueRecordList = new UniqueRecordList(); + expectedUniqueRecordList.add(R2); + assertEquals(expectedUniqueRecordList, uniqueRecordList); + } + + @Test + public void setRecords_listWithDuplicateRecords_throwsDuplicateRecordException() { + List listWithDuplicateRecords = Arrays.asList(R1, R1); + thrown.expect(DuplicateRecordException.class); + uniqueRecordList.setRecords(listWithDuplicateRecords); + } + + @Test + public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + uniqueRecordList.asUnmodifiableObservableList().remove(0); + } +} diff --git a/src/test/java/seedu/address/model/record/VolunteerIdTest.java b/src/test/java/seedu/address/model/record/VolunteerIdTest.java new file mode 100644 index 000000000000..5fa99cc29194 --- /dev/null +++ b/src/test/java/seedu/address/model/record/VolunteerIdTest.java @@ -0,0 +1,22 @@ +package seedu.address.model.record; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + +/** + * Note that VolunteerId will be from Volunteers. All tests should be done there. + */ +public class VolunteerIdTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new VolunteerId(null)); + } + + @Test + public void constructor_invalidVolunteerId_throwsIllegalArgumentException() { + String invalidVolunteerId = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new VolunteerId(invalidVolunteerId)); + } +} diff --git a/src/test/java/seedu/address/testutil/RecordBuilder.java b/src/test/java/seedu/address/testutil/RecordBuilder.java new file mode 100644 index 000000000000..6b9cffae2982 --- /dev/null +++ b/src/test/java/seedu/address/testutil/RecordBuilder.java @@ -0,0 +1,76 @@ +package seedu.address.testutil; + +import seedu.address.model.record.EventId; +import seedu.address.model.record.Hour; +import seedu.address.model.record.Record; +import seedu.address.model.record.Remark; +import seedu.address.model.record.VolunteerId; + +/** + * A utility class to help with building Person objects. + */ +public class RecordBuilder { + public static final String DEFAULT_EVENTID = "1"; + public static final String DEFAULT_VOLUNTEERID = "1"; + public static final String DEFAULT_HOUR = "0"; + public static final String DEFAULT_REMARK = "Emcee for event"; + + private EventId eventId; + private VolunteerId volunteerId; + private Hour hour; + private Remark remark; + + public RecordBuilder() { + eventId = new EventId(DEFAULT_EVENTID); + volunteerId = new VolunteerId(DEFAULT_VOLUNTEERID); + hour = new Hour(DEFAULT_HOUR); + remark = new Remark(DEFAULT_REMARK); + } + + /** + * Initializes the RecordBuilder with the data of {@code recordoCopy}. + */ + public RecordBuilder(Record recordToCopy) { + eventId = recordToCopy.getEventId(); + volunteerId = recordToCopy.getVolunteerId(); + hour = recordToCopy.getHour(); + remark = recordToCopy.getRemark(); + } + + /** + * Sets the {@code EventId} of the {@code Record} that we are building. + */ + public RecordBuilder withEventId(String eventId) { + this.eventId = new EventId(eventId); + return this; + } + + /** + * Sets the {@code VolunteerId} of the {@code Record} that we are building. + */ + public RecordBuilder withVolunteerId(String volunteerId) { + this.volunteerId = new VolunteerId(volunteerId); + return this; + } + + /** + * Sets the {@code Hour} of the {@code Record} that we are building. + */ + public RecordBuilder withHour(String hour) { + this.hour = new Hour(hour); + return this; + } + + /** + * Sets the {@code Remark} of the {@code Record} that we are building. + */ + public RecordBuilder withRemark(String remark) { + this.remark = new Remark(remark); + return this; + } + + public Record build() { + return new Record(eventId, volunteerId, hour, remark); + } + +} diff --git a/src/test/java/seedu/address/testutil/TypicalRecords.java b/src/test/java/seedu/address/testutil/TypicalRecords.java new file mode 100644 index 000000000000..90d5a0984381 --- /dev/null +++ b/src/test/java/seedu/address/testutil/TypicalRecords.java @@ -0,0 +1,47 @@ +package seedu.address.testutil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import seedu.address.model.AddressBook; +import seedu.address.model.record.Record; + +/** + * A utility class containing a list of {@code Records} objects to be used in tests. + */ +public class TypicalRecords { + + public static final Record R1 = new RecordBuilder().withEventId("1") + .withVolunteerId("1") + .withHour("1") + .withRemark("Emcee").build(); + + public static final Record R2 = new RecordBuilder().withEventId("2") + .withVolunteerId("2") + .withHour("2") + .withRemark("Delivery man").build(); + + public static final Record R3 = new RecordBuilder().withEventId("2") + .withVolunteerId("1") + .withHour("2") + .withRemark("Food delivery").build(); + + private TypicalRecords() { + } // prevents instantiation + + /** + * Returns an {@code AddressBook} with all the typical persons. + */ + public static AddressBook getTypicalAddressBook() { + AddressBook ab = new AddressBook(); + for (Record record : getTypicalRecords()) { + ab.addRecord(record); + } + return ab; + } + + public static List getTypicalRecords() { + return new ArrayList<>(Arrays.asList(R1, R2, R3)); + } +} From 49ab18558fec6c488f97d7641daa4624a6d27848 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 01:31:34 +0800 Subject: [PATCH 058/655] Add Event tests for XmlSerializableAddressBookTest.java and associatiated test files --- .../java/seedu/address/model/event/Event.java | 18 ++++------- .../duplicateEventAddressBook.xml | 27 +++++++++++++++++ .../invalidEventAddressBook.xml | 16 ++++++++++ .../typicalEventsAddressBook.xml | 25 ++++++++++++++++ .../XmlSerializableAddressBookTest.java | 30 +++++++++++++++++++ 5 files changed, 104 insertions(+), 12 deletions(-) create mode 100644 src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml create mode 100644 src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml create mode 100644 src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index ce43c2280c74..7da26e9a4cbd 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -161,18 +161,12 @@ public int hashCode() { public String toString() { final StringBuilder builder = new StringBuilder(); builder.append(getName()) - .append(" Location: ") - .append(getLocation()) - .append(" Start Date: ") - .append(getStartDate()) - .append(" End Date: ") - .append(getEndDate()) - .append(" Start Time.java: ") - .append(getStartTime()) - .append(" End Time.java: ") - .append(getEndTime()) - .append(" Description: ") - .append(getDescription()) + .append(" Location: ").append(getLocation()) + .append(" Start Date: ").append(getStartDate()) + .append(" End Date: ").append(getEndDate()) + .append(" Start Time.java: ").append(getStartTime()) + .append(" End Time.java: ").append(getEndTime()) + .append(" Description: ").append(getDescription()) .append(" Tags: "); getTags().forEach(builder::append); return builder.toString(); diff --git a/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml new file mode 100644 index 000000000000..1c7795ae6d20 --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml @@ -0,0 +1,27 @@ + + + + Blood Donation Drive 2018 + 750E Chai Chee Road + 02-10-2018 + 05-10-2018 + 11:30 + 17:30 + Donation drive for blood. + Donation + Public + + + + + Blood Donation Drive 2018 + 750E Chai Chee Road + 02-10-2018 + 05-10-2018 + 11:30 + 17:30 + Donation drive for blood. + Donation + Public + + \ No newline at end of file diff --git a/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml new file mode 100644 index 000000000000..f8e81bd51ef0 --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml @@ -0,0 +1,16 @@ + + + + + Blood Donation Drive 2018 + 750E Chai Chee Road + 1234 + 05-10-2018 + 11:30 + 17:30 + Donation drive for blood. + Donation + Public + + + \ No newline at end of file diff --git a/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml new file mode 100644 index 000000000000..a532cbfdb6eb --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml @@ -0,0 +1,25 @@ + + + + + Blood Donation Drive 2018 + 750E Chai Chee Road + 02-10-2018 + 05-10-2018 + 11:30 + 17:30 + Donation drive for blood. + Donation + Public + + + Youth Humanitarian Challenge + 29 Havelock Road + 28-09-2018 + 28-09-2018 + 10:00 + 14:00 + To engage youths in humanitarianism. + Competition + + diff --git a/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java b/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java index 55a4f10957b3..b9203599c301 100644 --- a/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java +++ b/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java @@ -12,6 +12,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.commons.util.XmlUtil; import seedu.address.model.AddressBook; +import seedu.address.testutil.TypicalEvents; import seedu.address.testutil.TypicalPersons; public class XmlSerializableAddressBookTest { @@ -21,6 +22,10 @@ public class XmlSerializableAddressBookTest { private static final Path INVALID_PERSON_FILE = TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.xml"); private static final Path DUPLICATE_PERSON_FILE = TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.xml"); + private static final Path TYPICAL_EVENTS_FILE = TEST_DATA_FOLDER.resolve("typicalEventsAddressBook.xml"); + private static final Path INVALID_EVENT_FILE = TEST_DATA_FOLDER.resolve("invalidEventAddressBook.xml"); + private static final Path DUPLICATE_EVENT_FILE = TEST_DATA_FOLDER.resolve("duplicateEventAddressBook.xml"); + @Rule public ExpectedException thrown = ExpectedException.none(); @@ -50,4 +55,29 @@ public void toModelType_duplicatePersons_throwsIllegalValueException() throws Ex dataFromFile.toModelType(); } + @Test + public void toModelType_typicalEventsFile_success() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(TYPICAL_EVENTS_FILE, + XmlSerializableAddressBook.class); + AddressBook addressBookFromFile = dataFromFile.toModelType(); + AddressBook typicalEventsAddressBook = TypicalEvents.getTypicalAddressBook(); + assertEquals(addressBookFromFile, typicalEventsAddressBook); + } + + @Test + public void toModelType_invalidEventFile_throwsIllegalValueException() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(INVALID_EVENT_FILE, + XmlSerializableAddressBook.class); + thrown.expect(IllegalValueException.class); + dataFromFile.toModelType(); + } + + @Test + public void toModelType_duplicateEvents_throwsIllegalValueException() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(DUPLICATE_EVENT_FILE, + XmlSerializableAddressBook.class); + thrown.expect(IllegalValueException.class); + thrown.expectMessage(XmlSerializableAddressBook.MESSAGE_DUPLICATE_EVENT); + dataFromFile.toModelType(); + } } From 056aa7c15a6114c3347296b34a0861cb3309c459 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 01:35:03 +0800 Subject: [PATCH 059/655] test/record: Fixed CodeStyle violations --- src/test/java/seedu/address/model/record/RecordTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/address/model/record/RecordTest.java b/src/test/java/seedu/address/model/record/RecordTest.java index 91899feeb4ed..4e81148c72d5 100644 --- a/src/test/java/seedu/address/model/record/RecordTest.java +++ b/src/test/java/seedu/address/model/record/RecordTest.java @@ -35,11 +35,13 @@ public void isSameRecord() { assertFalse(R1.isSameRecord(null)); // different eventId and volunteerId -> returns false - Record editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E2).withVolunteerId(VALID_VOLUNTEERID_V2).build(); + Record editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E2) + .withVolunteerId(VALID_VOLUNTEERID_V2).build(); assertFalse(R1.isSameRecord(editedRecord)); // same eventId, same volunteerId -> returns true - editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E1).withVolunteerId(VALID_VOLUNTEERID_V1).build(); + editedRecord = new RecordBuilder(R1).withEventId(VALID_EVENTID_E1) + .withVolunteerId(VALID_VOLUNTEERID_V1).build(); assertTrue(R1.isSameRecord(editedRecord)); // same eventId, same volunteerId, different attributes -> returns true From 2b09b83490d45b54ac1312ede2369c7511c5fad0 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 01:54:58 +0800 Subject: [PATCH 060/655] Modify AddressBook hashCode() method --- src/main/java/seedu/address/model/AddressBook.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 05f094b3993e..7d345ceb50f8 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -3,6 +3,7 @@ import static java.util.Objects.requireNonNull; import java.util.List; +import java.util.Objects; import javafx.collections.ObservableList; import seedu.address.model.event.Event; @@ -170,7 +171,7 @@ public boolean equals(Object other) { @Override public int hashCode() { - return persons.hashCode() + events.hashCode(); + return Objects.hash(persons, events); // TODO: Improve way to hashCode AddressBook with multiple lists } } From ac0116cd99f7be1925651d43020ae6da78cbfe56 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 01:56:10 +0800 Subject: [PATCH 061/655] Modify XML test files for XmlSeralizableAddressBook.java --- .../duplicateEventAddressBook.xml | 2 +- .../XmlSerializableAddressBookTest/invalidEventAddressBook.xml | 3 +-- .../typicalEventsAddressBook.xml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml index 1c7795ae6d20..72691feef6d7 100644 --- a/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml @@ -24,4 +24,4 @@ Donation Public - \ No newline at end of file + diff --git a/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml index f8e81bd51ef0..9b2727f41915 100644 --- a/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/invalidEventAddressBook.xml @@ -12,5 +12,4 @@ Donation Public - - \ No newline at end of file + diff --git a/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml index a532cbfdb6eb..bd539b0d863e 100644 --- a/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml @@ -3,7 +3,7 @@ Blood Donation Drive 2018 - 750E Chai Chee Road + 750E, Chai Chee Road, #08-111 02-10-2018 05-10-2018 11:30 From fea1bd8278c946526a6b835599d2d0e48d335f4d Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 01:57:35 +0800 Subject: [PATCH 062/655] Modify YOUTH event location --- src/test/java/seedu/address/logic/commands/CommandTestUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index aa7acceda620..8a66d3b8157a 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -38,7 +38,7 @@ public class CommandTestUtil { public static final String VALID_TAG_FRIEND = "friend"; public static final String VALID_NAME_YOUTH = "Youth Humanitarian Challenge"; - public static final String VALID_LOCATION_YOUTH = "Block 123, Youth Street 4"; + public static final String VALID_LOCATION_YOUTH = "29 Havelock Road"; public static final String VALID_START_DATE_YOUTH = "28-09-2018"; public static final String VALID_END_DATE_YOUTH = "28-09-2018"; public static final String VALID_START_TIME_YOUTH = "10:00"; From f37c89ea5d19bfd93fdc96207683f562dbb7c3aa Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 02:23:41 +0800 Subject: [PATCH 063/655] test: fixed test cases --- .../java/seedu/address/model/record/EventId.java | 12 ++++++++++++ .../seedu/address/model/record/VolunteerId.java | 12 ++++++++++++ .../seedu/address/model/record/EventIdTest.java | 14 -------------- .../seedu/address/model/record/RecordTest.java | 5 ----- .../address/model/record/VolunteerIdTest.java | 16 +++------------- .../seedu/address/testutil/RecordBuilder.java | 4 ++++ 6 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java index 5bba851071b8..aab4b4e03a10 100644 --- a/src/main/java/seedu/address/model/record/EventId.java +++ b/src/main/java/seedu/address/model/record/EventId.java @@ -11,6 +11,18 @@ public EventId(String id) { this.value = id; } + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof EventId // instanceof handles nulls + && value.equals(((EventId) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } + /** * Format state as text for viewing. */ diff --git a/src/main/java/seedu/address/model/record/VolunteerId.java b/src/main/java/seedu/address/model/record/VolunteerId.java index 6a1ba480c872..72e5b2e2963d 100644 --- a/src/main/java/seedu/address/model/record/VolunteerId.java +++ b/src/main/java/seedu/address/model/record/VolunteerId.java @@ -11,6 +11,18 @@ public VolunteerId(String id) { this.value = id; } + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof VolunteerId // instanceof handles nulls + && value.equals(((VolunteerId) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } + /** * Format state as text for viewing. */ diff --git a/src/test/java/seedu/address/model/record/EventIdTest.java b/src/test/java/seedu/address/model/record/EventIdTest.java index 6a0ba6df8f09..3dae75a7f2ac 100644 --- a/src/test/java/seedu/address/model/record/EventIdTest.java +++ b/src/test/java/seedu/address/model/record/EventIdTest.java @@ -1,22 +1,8 @@ package seedu.address.model.record; -import org.junit.Test; - -import seedu.address.testutil.Assert; - /** * Note that EventId will be from Event. All tests should be done there. */ public class EventIdTest { - @Test - public void constructor_null_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> new EventId(null)); - } - - @Test - public void constructor_invalidEventId_throwsIllegalArgumentException() { - String invalidEventId = ""; - Assert.assertThrows(IllegalArgumentException.class, () -> new EventId(invalidEventId)); - } } diff --git a/src/test/java/seedu/address/model/record/RecordTest.java b/src/test/java/seedu/address/model/record/RecordTest.java index 4e81148c72d5..c6c22aa7ba6c 100644 --- a/src/test/java/seedu/address/model/record/RecordTest.java +++ b/src/test/java/seedu/address/model/record/RecordTest.java @@ -21,11 +21,6 @@ public class RecordTest { @Rule public ExpectedException thrown = ExpectedException.none(); - @Test - public void asObservableList_modifyList_throwsUnsupportedOperationException() { - thrown.expect(UnsupportedOperationException.class); - } - @Test public void isSameRecord() { // same object -> returns true diff --git a/src/test/java/seedu/address/model/record/VolunteerIdTest.java b/src/test/java/seedu/address/model/record/VolunteerIdTest.java index 5fa99cc29194..4b4413271071 100644 --- a/src/test/java/seedu/address/model/record/VolunteerIdTest.java +++ b/src/test/java/seedu/address/model/record/VolunteerIdTest.java @@ -1,22 +1,12 @@ package seedu.address.model.record; -import org.junit.Test; - -import seedu.address.testutil.Assert; - /** * Note that VolunteerId will be from Volunteers. All tests should be done there. */ public class VolunteerIdTest { - @Test - public void constructor_null_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> new VolunteerId(null)); - } - @Test - public void constructor_invalidVolunteerId_throwsIllegalArgumentException() { - String invalidVolunteerId = ""; - Assert.assertThrows(IllegalArgumentException.class, () -> new VolunteerId(invalidVolunteerId)); - } + + + } diff --git a/src/test/java/seedu/address/testutil/RecordBuilder.java b/src/test/java/seedu/address/testutil/RecordBuilder.java index 6b9cffae2982..296803a29e54 100644 --- a/src/test/java/seedu/address/testutil/RecordBuilder.java +++ b/src/test/java/seedu/address/testutil/RecordBuilder.java @@ -69,6 +69,10 @@ public RecordBuilder withRemark(String remark) { return this; } + /** + * Rubbish + * @return record + */ public Record build() { return new Record(eventId, volunteerId, hour, remark); } From bab1fb24b9b01ee29591b8a08de40093215b6d5d Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 12:29:27 +0800 Subject: [PATCH 064/655] test: AddressBookTest.java with records --- .../seedu/address/model/AddressBookTest.java | 63 ++++++++++++++++++- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/seedu/address/model/AddressBookTest.java index 5f2815325194..8d63adfc03d3 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/seedu/address/model/AddressBookTest.java @@ -4,9 +4,12 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static seedu.address.logic.commands.CommandTestUtil.VALID_HOUR_H2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_REMARK_R2; import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalRecords.R1; import java.util.Arrays; import java.util.Collection; @@ -22,7 +25,9 @@ import seedu.address.model.person.Person; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.model.record.Record; +import seedu.address.model.record.exceptions.DuplicateRecordException; import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.RecordBuilder; public class AddressBookTest { @@ -34,6 +39,7 @@ public class AddressBookTest { @Test public void constructor() { assertEquals(Collections.emptyList(), addressBook.getPersonList()); + assertEquals(Collections.emptyList(), addressBook.getRecordList()); } @Test @@ -49,13 +55,14 @@ public void resetData_withValidReadOnlyAddressBook_replacesData() { assertEquals(newData, addressBook); } + //// Person Tests @Test public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { // Two persons with the same identity fields Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) .build(); List newPersons = Arrays.asList(ALICE, editedAlice); - AddressBookStub newData = new AddressBookStub(newPersons); + AddressBookStub newData = new AddressBookStub(newPersons, null); thrown.expect(DuplicatePersonException.class); addressBook.resetData(newData); @@ -92,6 +99,51 @@ public void getPersonList_modifyList_throwsUnsupportedOperationException() { addressBook.getPersonList().remove(0); } + + //// Record Tests + @Test + public void resetData_withDuplicateRecords_throwsDuplicateRecordException() { + // Two records with the same identity fields + Record editedRecord = new RecordBuilder(R1).withHour(VALID_HOUR_H2).withRemark(VALID_REMARK_R2) + .build(); + List newRecords = Arrays.asList(R1, editedRecord); + AddressBookStub newData = new AddressBookStub(null, newRecords); + + thrown.expect(DuplicateRecordException.class); + addressBook.resetData(newData); + } + + @Test + public void hasRecord_nullRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + addressBook.hasRecord(null); + } + + @Test + public void hasRecord_recordNotInAddressBook_returnsFalse() { + assertFalse(addressBook.hasRecord(R1)); + } + + @Test + public void hasRecord_recordInAddressBook_returnsTrue() { + addressBook.addRecord(R1); + assertTrue(addressBook.hasRecord(R1)); + } + + @Test + public void hasRecord_recordWithSameIdentityFieldsInAddressBook_returnsTrue() { + addressBook.addRecord(R1); + Record editedRecord = new RecordBuilder(R1).withHour(VALID_HOUR_H2).withRemark(VALID_REMARK_R2) + .build(); + assertTrue(addressBook.hasRecord(editedRecord)); + } + + @Test + public void getRecordList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + addressBook.getRecordList().remove(0); + } + /** * A stub ReadOnlyAddressBook whose persons list can violate interface constraints. */ @@ -99,8 +151,13 @@ private static class AddressBookStub implements ReadOnlyAddressBook { private final ObservableList persons = FXCollections.observableArrayList(); private final ObservableList records = FXCollections.observableArrayList(); - AddressBookStub(Collection persons) { - this.persons.setAll(persons); + AddressBookStub(Collection persons, Collection records) { + if (persons != null) { + this.persons.setAll(persons); + } + if (records != null) { + this.records.setAll(records); + } } @Override From 206ddc387e75f9d45c7f09fb6142291b379b5be3 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 13:07:22 +0800 Subject: [PATCH 065/655] test: Updated ModelManagerTest to check for records --- .../seedu/address/model/ModelManagerTest.java | 30 ++++++++++++++++++- .../address/testutil/AddressBookBuilder.java | 9 ++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 7eab39d5de43..7d1c8b4eb901 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -5,6 +5,8 @@ import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.BENSON; +import static seedu.address.testutil.TypicalRecords.R1; +import static seedu.address.testutil.TypicalRecords.R2; import java.nio.file.Paths; import java.util.Arrays; @@ -22,6 +24,7 @@ public class ModelManagerTest { private ModelManager modelManager = new ModelManager(); + //// Test person @Test public void hasPerson_nullPerson_throwsNullPointerException() { thrown.expect(NullPointerException.class); @@ -45,9 +48,34 @@ public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException modelManager.getFilteredPersonList().remove(0); } + //// Test Record + @Test + public void hasRecord_nullRecord_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + modelManager.hasRecord(null); + } + + @Test + public void hasRecord_recordNotInAddressBook_returnsFalse() { + assertFalse(modelManager.hasRecord(R1)); + } + + @Test + public void hasRecord_recordInAddressBook_returnsTrue() { + modelManager.addRecord(R1); + assertTrue(modelManager.hasRecord(R1)); + } + + @Test + public void getFilteredRecordList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + modelManager.getFilteredRecordList().remove(0); + } + @Test public void equals() { - AddressBook addressBook = new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON).build(); + AddressBook addressBook = new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON) + .withRecord(R1).withRecord(R2).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); diff --git a/src/test/java/seedu/address/testutil/AddressBookBuilder.java b/src/test/java/seedu/address/testutil/AddressBookBuilder.java index d53799fd1102..f718337ceb6a 100644 --- a/src/test/java/seedu/address/testutil/AddressBookBuilder.java +++ b/src/test/java/seedu/address/testutil/AddressBookBuilder.java @@ -2,6 +2,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * A utility class to help with building Addressbook objects. @@ -28,6 +29,14 @@ public AddressBookBuilder withPerson(Person person) { return this; } + /** + * Adds a new {@code Record} to the {@code AddressBook} that we are building. + */ + public AddressBookBuilder withRecord(Record record) { + addressBook.addRecord(record); + return this; + } + public AddressBook build() { return addressBook; } From bb2156727ec8ada11192e6f9fa50f420548729db Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 14:48:14 +0800 Subject: [PATCH 066/655] test: Added XmlAdaptedRecordTest.java --- .../seedu/address/model/record/EventId.java | 20 ++++ .../java/seedu/address/model/record/Hour.java | 2 +- .../seedu/address/model/record/Record.java | 4 +- .../address/model/record/VolunteerId.java | 20 ++++ .../address/storage/XmlAdaptedRecord.java | 14 +-- .../address/model/record/EventIdTest.java | 31 +++++++ .../address/model/record/VolunteerIdTest.java | 29 +++++- .../address/storage/XmlAdaptedRecordTest.java | 93 +++++++++++++++++++ 8 files changed, 203 insertions(+), 10 deletions(-) create mode 100644 src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java index aab4b4e03a10..7bc637d2a75f 100644 --- a/src/main/java/seedu/address/model/record/EventId.java +++ b/src/main/java/seedu/address/model/record/EventId.java @@ -1,16 +1,36 @@ package seedu.address.model.record; +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + /** * This is just a placeholder class for development purposes. * Actual record EventId should come from the event package */ public class EventId { + public static final String MESSAGE_EVENTID_CONSTRAINTS = "EventId can take in numerals only."; + public static final String EVENTID_VALIDATION_REGEX = "\\p{Digit}+"; + public final String value; + /** + * Constructs a {@code Remark}. + * + * @param id A valid eventId. + */ public EventId(String id) { + requireNonNull(id); + checkArgument(isValidEventId(id), MESSAGE_EVENTID_CONSTRAINTS); this.value = id; } + /** + * Returns true if a given string is a valid eventId. + */ + public static boolean isValidEventId(String test) { + return test.matches(EVENTID_VALIDATION_REGEX); + } + @Override public boolean equals(Object other) { return other == this // short circuit if same object diff --git a/src/main/java/seedu/address/model/record/Hour.java b/src/main/java/seedu/address/model/record/Hour.java index ff23ecc343a1..4ab8f5afed05 100644 --- a/src/main/java/seedu/address/model/record/Hour.java +++ b/src/main/java/seedu/address/model/record/Hour.java @@ -25,7 +25,7 @@ public Hour(String hour) { } /** - * Returns true if a given string is a valid remark. + * Returns true if a given string is a valid hour. */ public static boolean isValidHour(String test) { return test.matches(HOUR_VALIDATION_REGEX); diff --git a/src/main/java/seedu/address/model/record/Record.java b/src/main/java/seedu/address/model/record/Record.java index 871f7b642edc..d8aa70a70341 100644 --- a/src/main/java/seedu/address/model/record/Record.java +++ b/src/main/java/seedu/address/model/record/Record.java @@ -15,10 +15,10 @@ public class Record { private final Remark remark; /** - * Only remarks can be null. + * Every field must be present and not null. */ public Record(EventId eventId, VolunteerId volunteerId, Hour hour, Remark remark) { - requireAllNonNull(eventId, volunteerId, hour); + requireAllNonNull(eventId, volunteerId, hour, remark); this.eventId = eventId; this.volunteerId = volunteerId; this.hour = hour; diff --git a/src/main/java/seedu/address/model/record/VolunteerId.java b/src/main/java/seedu/address/model/record/VolunteerId.java index 72e5b2e2963d..11952000460a 100644 --- a/src/main/java/seedu/address/model/record/VolunteerId.java +++ b/src/main/java/seedu/address/model/record/VolunteerId.java @@ -1,16 +1,36 @@ package seedu.address.model.record; +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + /** * This is just a placeholder class for development purposes. * Actual record VolunteerId should come from the volunteer package */ public class VolunteerId { + public static final String MESSAGE_VOLUNTEERID_CONSTRAINTS = "VolunteerId can take in numerals only."; + public static final String VOLUNTEERID_VALIDATION_REGEX = "\\p{Digit}+"; + public final String value; + /** + * Constructs a {@code VolunteerId}. + * + * @param id A valid hour. + */ public VolunteerId(String id) { + requireNonNull(id); + checkArgument(isValidVolunteerId(id), MESSAGE_VOLUNTEERID_CONSTRAINTS); this.value = id; } + /** + * Returns true if a given string is a valid volunteerId. + */ + public static boolean isValidVolunteerId(String test) { + return test.matches(VOLUNTEERID_VALIDATION_REGEX); + } + @Override public boolean equals(Object other) { return other == this // short circuit if same object diff --git a/src/main/java/seedu/address/storage/XmlAdaptedRecord.java b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java index 3c186c9a69e1..bf1cc1bd2aba 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedRecord.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java @@ -24,7 +24,7 @@ public class XmlAdaptedRecord { private String volunteerId; @XmlElement(required = true) private String hour; - @XmlElement + @XmlElement(required = true) private String remark; /** @@ -41,9 +41,7 @@ public XmlAdaptedRecord(String eventId, String volunteerId, String hour, String this.eventId = eventId; this.volunteerId = volunteerId; this.hour = hour; - if (!remark.equals("")) { - this.remark = remark; - } + this.remark = remark; } /** @@ -67,14 +65,18 @@ public Record toModelType() throws IllegalValueException { if (eventId == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName())); } - // TODO: To add the validation for eventId once class is replaced and replace EventId with valid class + if (!EventId.isValidEventId(eventId)) { + throw new IllegalValueException(EventId.MESSAGE_EVENTID_CONSTRAINTS); + } final EventId modelEventId = new EventId(eventId); if (volunteerId == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, VolunteerId.class .getSimpleName())); } - // TODO: To add the validation for volunteerId once class is replaced and replace EventId with valid class + if (!VolunteerId.isValidVolunteerId(volunteerId)) { + throw new IllegalValueException(VolunteerId.MESSAGE_VOLUNTEERID_CONSTRAINTS); + } final VolunteerId modelVolunteerId = new VolunteerId(volunteerId); if (hour == null) { diff --git a/src/test/java/seedu/address/model/record/EventIdTest.java b/src/test/java/seedu/address/model/record/EventIdTest.java index 3dae75a7f2ac..e3614a5ee26c 100644 --- a/src/test/java/seedu/address/model/record/EventIdTest.java +++ b/src/test/java/seedu/address/model/record/EventIdTest.java @@ -1,8 +1,39 @@ package seedu.address.model.record; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + /** * Note that EventId will be from Event. All tests should be done there. */ public class EventIdTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new EventId(null)); + } + + @Test + public void constructor_invalidEventId_throwsIllegalArgumentException() { + String invalidEventId = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new EventId(invalidEventId)); + } + + @Test + public void isValidEventId() { + // null eventId + Assert.assertThrows(NullPointerException.class, () -> EventId.isValidEventId(null)); + + // invalid eventId + assertFalse(EventId.isValidEventId("")); // empty string + assertFalse(EventId.isValidEventId(" ")); // spaces only + assertFalse(EventId.isValidEventId("^")); // only non-alphanumeric characters + assertFalse(EventId.isValidEventId("0*")); // contains non-alphanumeric characters + // valid eventId + assertTrue(EventId.isValidEventId("1")); // numbers only + } } diff --git a/src/test/java/seedu/address/model/record/VolunteerIdTest.java b/src/test/java/seedu/address/model/record/VolunteerIdTest.java index 4b4413271071..40b5b747df75 100644 --- a/src/test/java/seedu/address/model/record/VolunteerIdTest.java +++ b/src/test/java/seedu/address/model/record/VolunteerIdTest.java @@ -1,12 +1,39 @@ package seedu.address.model.record; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + /** * Note that VolunteerId will be from Volunteers. All tests should be done there. */ public class VolunteerIdTest { + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new VolunteerId(null)); + } + @Test + public void constructor_invalidEventId_throwsIllegalArgumentException() { + String invalidVolunterId = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new VolunteerId(invalidVolunterId)); + } + @Test + public void isValidVolunteerId() { + // null eventId + Assert.assertThrows(NullPointerException.class, () -> VolunteerId.isValidVolunteerId(null)); + // invalid eventId + assertFalse(VolunteerId.isValidVolunteerId("")); // empty string + assertFalse(VolunteerId.isValidVolunteerId(" ")); // spaces only + assertFalse(VolunteerId.isValidVolunteerId("^")); // only non-alphanumeric characters + assertFalse(VolunteerId.isValidVolunteerId("0*")); // contains non-alphanumeric characters - + // valid eventId + assertTrue(VolunteerId.isValidVolunteerId("1")); // numbers only + } } diff --git a/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java new file mode 100644 index 000000000000..fdca569beb60 --- /dev/null +++ b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java @@ -0,0 +1,93 @@ +package seedu.address.storage; + +import static org.junit.Assert.assertEquals; +import static seedu.address.storage.XmlAdaptedRecord.MISSING_FIELD_MESSAGE_FORMAT; +import static seedu.address.testutil.TypicalRecords.R1; +import static seedu.address.testutil.TypicalRecords.R2; + +import org.junit.Test; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.record.EventId; +import seedu.address.model.record.Hour; +import seedu.address.model.record.Remark; +import seedu.address.model.record.VolunteerId; +import seedu.address.testutil.Assert; + +public class XmlAdaptedRecordTest { + private static final String INVALID_EVENTID = "1@"; + private static final String INVALID_VOLUNTEERID = "1@"; + private static final String INVALID_HOUR = "1abc"; + private static final String INVALID_REMARK = " "; + + private static final String VALID_EVENTID = R2.getEventId().toString(); + private static final String VALID_VOLUNTEERID = R2.getVolunteerId().toString(); + private static final String VALID_HOUR = R2.getHour().toString(); + private static final String VALID_REMARK = R2.getRemark().toString(); + + @Test + public void toModelType_validRecordDetails_returnsRecord() throws Exception { + XmlAdaptedRecord record = new XmlAdaptedRecord(R1); + assertEquals(R1, record.toModelType()); + } + + @Test + public void toModelType_invalidEventId_throwsIllegalValueException() { + XmlAdaptedRecord record = + new XmlAdaptedRecord(INVALID_EVENTID, VALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); + String expectedMessage = EventId.MESSAGE_EVENTID_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_nullEventId_throwsIllegalValueException() { + XmlAdaptedRecord record = new XmlAdaptedRecord(null, VALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_invalidVolunteerId_throwsIllegalValueException() { + XmlAdaptedRecord record = + new XmlAdaptedRecord(VALID_EVENTID, INVALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); + String expectedMessage = VolunteerId.MESSAGE_VOLUNTEERID_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_nullVolunteerId_throwsIllegalValueException() { + XmlAdaptedRecord record = new XmlAdaptedRecord(VALID_EVENTID, null, VALID_HOUR, VALID_REMARK); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, VolunteerId.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_invalidHour_throwsIllegalValueException() { + XmlAdaptedRecord record = + new XmlAdaptedRecord(VALID_EVENTID, VALID_VOLUNTEERID, INVALID_HOUR, VALID_REMARK); + String expectedMessage = Hour.MESSAGE_HOUR_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_nullHour_throwsIllegalValueException() { + XmlAdaptedRecord record = new XmlAdaptedRecord(VALID_EVENTID, VALID_VOLUNTEERID, null, VALID_REMARK); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Hour.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_invalidRemark_throwsIllegalValueException() { + XmlAdaptedRecord record = + new XmlAdaptedRecord(VALID_EVENTID, VALID_VOLUNTEERID, VALID_HOUR, INVALID_REMARK); + String expectedMessage = Remark.MESSAGE_REMARK_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } + + @Test + public void toModelType_nullRemark_throwsIllegalValueException() { + XmlAdaptedRecord record = new XmlAdaptedRecord(VALID_EVENTID, VALID_VOLUNTEERID, VALID_HOUR, null); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Remark.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); + } +} From e1f9b50b4b91264cb52777feb4042ea1720b5b95 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 15:44:11 +0800 Subject: [PATCH 067/655] test: Added testing for records XmlSerializableAddressBook --- .../java/seedu/address/model/AddressBook.java | 2 +- .../storage/XmlSerializableAddressBook.java | 1 + .../duplicateRecordAddressBook.xml | 16 ++++++++++ .../invalidRecordAddressBook.xml | 10 ++++++ .../typicalRecordsAddressBook.xml | 22 +++++++++++++ .../XmlSerializableAddressBookTest.java | 32 +++++++++++++++++++ .../address/testutil/TypicalRecords.java | 2 +- 7 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 src/test/data/XmlSerializableAddressBookTest/duplicateRecordAddressBook.xml create mode 100644 src/test/data/XmlSerializableAddressBookTest/invalidRecordAddressBook.xml create mode 100644 src/test/data/XmlSerializableAddressBookTest/typicalRecordsAddressBook.xml diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 04ec48b70866..9423829a1989 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -148,7 +148,7 @@ public void removeRecord(Record key) { @Override public String toString() { // TODO: refine later - return persons.asUnmodifiableObservableList().size() + " persons" + return persons.asUnmodifiableObservableList().size() + " persons " + records.asUnmodifiableObservableList().size() + " records"; } diff --git a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java index cf092ea953bc..ab7774d378e5 100644 --- a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java @@ -65,6 +65,7 @@ public AddressBook toModelType() throws IllegalValueException { if (addressBook.hasRecord(record)) { throw new IllegalValueException(MESSAGE_DUPLICATE_RECORD); } + addressBook.addRecord(record); } return addressBook; } diff --git a/src/test/data/XmlSerializableAddressBookTest/duplicateRecordAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/duplicateRecordAddressBook.xml new file mode 100644 index 000000000000..246a4a1a9619 --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/duplicateRecordAddressBook.xml @@ -0,0 +1,16 @@ + + + + 1 + 1 + 1 + Emcee + + + + 1 + 1 + 2 + Delivery man + + diff --git a/src/test/data/XmlSerializableAddressBookTest/invalidRecordAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/invalidRecordAddressBook.xml new file mode 100644 index 000000000000..9777f552c5b0 --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/invalidRecordAddressBook.xml @@ -0,0 +1,10 @@ + + + + + 1 + 1 + abc + Emcee + + diff --git a/src/test/data/XmlSerializableAddressBookTest/typicalRecordsAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/typicalRecordsAddressBook.xml new file mode 100644 index 000000000000..fb0c7ea7b22c --- /dev/null +++ b/src/test/data/XmlSerializableAddressBookTest/typicalRecordsAddressBook.xml @@ -0,0 +1,22 @@ + + + + + 1 + 1 + 1 + Emcee + + + 2 + 2 + 2 + Delivery man + + + 2 + 1 + 2 + Food delivery + + diff --git a/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java b/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java index 55a4f10957b3..68e6179b8906 100644 --- a/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java +++ b/src/test/java/seedu/address/storage/XmlSerializableAddressBookTest.java @@ -13,6 +13,7 @@ import seedu.address.commons.util.XmlUtil; import seedu.address.model.AddressBook; import seedu.address.testutil.TypicalPersons; +import seedu.address.testutil.TypicalRecords; public class XmlSerializableAddressBookTest { @@ -21,9 +22,14 @@ public class XmlSerializableAddressBookTest { private static final Path INVALID_PERSON_FILE = TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.xml"); private static final Path DUPLICATE_PERSON_FILE = TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.xml"); + private static final Path TYPICAL_RECORDS_FILE = TEST_DATA_FOLDER.resolve("typicalRecordsAddressBook.xml"); + private static final Path INVALID_RECORD_FILE = TEST_DATA_FOLDER.resolve("invalidRecordAddressBook.xml"); + private static final Path DUPLICATE_RECORD_FILE = TEST_DATA_FOLDER.resolve("duplicateRecordAddressBook.xml"); + @Rule public ExpectedException thrown = ExpectedException.none(); + //// Person @Test public void toModelType_typicalPersonsFile_success() throws Exception { XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(TYPICAL_PERSONS_FILE, @@ -50,4 +56,30 @@ public void toModelType_duplicatePersons_throwsIllegalValueException() throws Ex dataFromFile.toModelType(); } + //// Records + @Test + public void toModelType_typicalRecordsFile_success() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(TYPICAL_RECORDS_FILE, + XmlSerializableAddressBook.class); + AddressBook addressBookFromFile = dataFromFile.toModelType(); + AddressBook typicalRecordsAddressBook = TypicalRecords.getTypicalAddressBook(); + assertEquals(addressBookFromFile, typicalRecordsAddressBook); + } + + @Test + public void toModelType_invalidRecordFile_throwsIllegalValueException() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(INVALID_RECORD_FILE, + XmlSerializableAddressBook.class); + thrown.expect(IllegalValueException.class); + dataFromFile.toModelType(); + } + + @Test + public void toModelType_duplicateRecords_throwsIllegalValueException() throws Exception { + XmlSerializableAddressBook dataFromFile = XmlUtil.getDataFromFile(DUPLICATE_RECORD_FILE, + XmlSerializableAddressBook.class); + thrown.expect(IllegalValueException.class); + thrown.expectMessage(XmlSerializableAddressBook.MESSAGE_DUPLICATE_RECORD); + dataFromFile.toModelType(); + } } diff --git a/src/test/java/seedu/address/testutil/TypicalRecords.java b/src/test/java/seedu/address/testutil/TypicalRecords.java index 90d5a0984381..637100ff4fa8 100644 --- a/src/test/java/seedu/address/testutil/TypicalRecords.java +++ b/src/test/java/seedu/address/testutil/TypicalRecords.java @@ -31,7 +31,7 @@ private TypicalRecords() { } // prevents instantiation /** - * Returns an {@code AddressBook} with all the typical persons. + * Returns an {@code AddressBook} with all the typical records. */ public static AddressBook getTypicalAddressBook() { AddressBook ab = new AddressBook(); From ca8e4391763f26e023575a897bc0b33ff1f67d1a Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 16:02:29 +0800 Subject: [PATCH 068/655] docs: removed codacy badge --- README.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/README.adoc b/README.adoc index 32aac6630f85..8f9e10375c02 100644 --- a/README.adoc +++ b/README.adoc @@ -4,7 +4,6 @@ ifdef::env-github,env-browser[:relfileprefix: docs/] https://travis-ci.org/CS2103-AY1819S1-W16-2/main[image:https://travis-ci.org/CS2103-AY1819S1-W16-2/main.svg?branch=master[Build Status]] https://ci.appveyor.com/project/Kratious/main[image:https://ci.appveyor.com/api/projects/status/suon744fyw9kqi3x?svg=true[Build status]] https://coveralls.io/github/CS2103-AY1819S1-W16-2/main?branch=master[image:https://coveralls.io/repos/github/CS2103-AY1819S1-W16-2/main/badge.svg?branch=master[Coverage Status]] -https://www.codacy.com/app/Kratious/main?utm_source=github.com&utm_medium=referral&utm_content=CS2103-AY1819S1-W16-2/main&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/474fa34d8e394186aa0f558eb50060c8[Codacy Badge]] ifdef::env-github[] image::docs/images/Ui.png[width="600"] From 18f77297f7fce9f79430dd1c68bcd625eaa8d07b Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 16:14:23 +0800 Subject: [PATCH 069/655] docs: removed codacy badge --- README.adoc | 1 + README.html | 522 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 523 insertions(+) create mode 100644 README.html diff --git a/README.adoc b/README.adoc index 8f9e10375c02..88d70690f179 100644 --- a/README.adoc +++ b/README.adoc @@ -5,6 +5,7 @@ https://travis-ci.org/CS2103-AY1819S1-W16-2/main[image:https://travis-ci.org/CS2 https://ci.appveyor.com/project/Kratious/main[image:https://ci.appveyor.com/api/projects/status/suon744fyw9kqi3x?svg=true[Build status]] https://coveralls.io/github/CS2103-AY1819S1-W16-2/main?branch=master[image:https://coveralls.io/repos/github/CS2103-AY1819S1-W16-2/main/badge.svg?branch=master[Coverage Status]] + ifdef::env-github[] image::docs/images/Ui.png[width="600"] endif::[] diff --git a/README.html b/README.html new file mode 100644 index 000000000000..48732f92f73a --- /dev/null +++ b/README.html @@ -0,0 +1,522 @@ + + + + + + + +SocialCare + + + + +

    +
    +
    +
    +
    +

    Build Status +Build status +Coverage Status

    +
    +
    +
    +Ui +
    +
    +
    +
      +
    • +

      This is a desktop social welfare event and volunteer management application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).

      +
    • +
    • +

      It is written in OOP fashion. It provides a reasonably well-written code example that is significantly bigger (around 6 KLoC)than what students usually write in beginner-level SE modules.

      +
    • +
    • +

      The target audience is social welfare organisations that want to better manage their volunteers & events, and gain further statistical insights from the data.

      +
      +
        +
      • +

        Manage contacts and events faster than a typical mouse/GUI driven app

        +
      • +
      • +

        Use tags to categorize events and volunteers

        +
      • +
      • +

        Support more fields for volunteers, such as number of volunteer hours

        +
      • +
      • +

        View volunteer and event statistics and derive insights from them

        +
      • +
      +
      +
    • +
    +
    +
    +
    +
    +

    Site Map

    +
    +
    + +
    +
    +
    +
    +

    Acknowledgements

    +
    +
    + +
    +
    +
    +
    +

    Licence : MIT

    +
    + +
    +
    +
    + + + \ No newline at end of file From b5a5aecdec61149ebcd3d16d1a8df660d59e09c0 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 16:14:46 +0800 Subject: [PATCH 070/655] docs: deleted html --- README.html | 522 ---------------------------------------------------- 1 file changed, 522 deletions(-) delete mode 100644 README.html diff --git a/README.html b/README.html deleted file mode 100644 index 48732f92f73a..000000000000 --- a/README.html +++ /dev/null @@ -1,522 +0,0 @@ - - - - - - - -SocialCare - - - - - -
    -
    -
    -
    -

    Build Status -Build status -Coverage Status

    -
    -
    -
    -Ui -
    -
    -
    -
      -
    • -

      This is a desktop social welfare event and volunteer management application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).

      -
    • -
    • -

      It is written in OOP fashion. It provides a reasonably well-written code example that is significantly bigger (around 6 KLoC)than what students usually write in beginner-level SE modules.

      -
    • -
    • -

      The target audience is social welfare organisations that want to better manage their volunteers & events, and gain further statistical insights from the data.

      -
      -
        -
      • -

        Manage contacts and events faster than a typical mouse/GUI driven app

        -
      • -
      • -

        Use tags to categorize events and volunteers

        -
      • -
      • -

        Support more fields for volunteers, such as number of volunteer hours

        -
      • -
      • -

        View volunteer and event statistics and derive insights from them

        -
      • -
      -
      -
    • -
    -
    -
    -
    -
    -

    Site Map

    -
    -
    - -
    -
    -
    -
    -

    Acknowledgements

    -
    -
    - -
    -
    -
    -
    -

    Licence : MIT

    -
    - -
    -
    -
    - - - \ No newline at end of file From 16f92507f86f08bf3fe0923989d6623c93cca1b4 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 16:21:47 +0800 Subject: [PATCH 071/655] docs: removed newline from README.adoc --- README.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/README.adoc b/README.adoc index 88d70690f179..8f9e10375c02 100644 --- a/README.adoc +++ b/README.adoc @@ -5,7 +5,6 @@ https://travis-ci.org/CS2103-AY1819S1-W16-2/main[image:https://travis-ci.org/CS2 https://ci.appveyor.com/project/Kratious/main[image:https://ci.appveyor.com/api/projects/status/suon744fyw9kqi3x?svg=true[Build status]] https://coveralls.io/github/CS2103-AY1819S1-W16-2/main?branch=master[image:https://coveralls.io/repos/github/CS2103-AY1819S1-W16-2/main/badge.svg?branch=master[Coverage Status]] - ifdef::env-github[] image::docs/images/Ui.png[width="600"] endif::[] From 5d4a8df846b656e0d91a2cf6a5087ff7cb8be4f8 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 16:24:41 +0800 Subject: [PATCH 072/655] XmlSerializableAddressBook.java: Modified comments --- .../java/seedu/address/storage/XmlSerializableAddressBook.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java index ab7774d378e5..be28ac81750e 100644 --- a/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/XmlSerializableAddressBook.java @@ -49,7 +49,7 @@ public XmlSerializableAddressBook(ReadOnlyAddressBook src) { * Converts this addressbook into the model's {@code AddressBook} object. * * @throws IllegalValueException if there were any data constraints violated or duplicates - * in the {@code XmlAdaptedPerson}, {@code XmlAdaptedRecord}. + * in the {@code XmlAdaptedPerson} or {@code XmlAdaptedRecord}. */ public AddressBook toModelType() throws IllegalValueException { AddressBook addressBook = new AddressBook(); From d9b5ce2bc0586e42cf6bc3fbd1059e3f55bc8a14 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 16:27:45 +0800 Subject: [PATCH 073/655] Change appTitle in Config.java to SocialCare --- src/main/java/seedu/address/commons/core/Config.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/commons/core/Config.java b/src/main/java/seedu/address/commons/core/Config.java index e978d621e086..533faffe55a6 100644 --- a/src/main/java/seedu/address/commons/core/Config.java +++ b/src/main/java/seedu/address/commons/core/Config.java @@ -13,7 +13,7 @@ public class Config { public static final Path DEFAULT_CONFIG_FILE = Paths.get("config.json"); // Config values customizable through config file - private String appTitle = "Address App"; + private String appTitle = "SocialCare"; private Level logLevel = Level.INFO; private Path userPrefsFilePath = Paths.get("preferences.json"); From 4104d14955a6366bb325e0c2cfe4efc2667834a6 Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 16:43:02 +0800 Subject: [PATCH 074/655] Update ConfigTest appTitle --- src/test/java/seedu/address/commons/core/ConfigTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/commons/core/ConfigTest.java b/src/test/java/seedu/address/commons/core/ConfigTest.java index cc4bf567cb44..15a32f075fb0 100644 --- a/src/test/java/seedu/address/commons/core/ConfigTest.java +++ b/src/test/java/seedu/address/commons/core/ConfigTest.java @@ -14,7 +14,7 @@ public class ConfigTest { @Test public void toString_defaultObject_stringReturned() { - String defaultConfigAsString = "App title : Address App\n" + String defaultConfigAsString = "App title : SocialCare\n" + "Current log level : INFO\n" + "Preference file Location : preferences.json"; From 48065f2046bd3fa75578a593679a721c6eb636c9 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Tue, 25 Sep 2018 17:36:52 +0800 Subject: [PATCH 075/655] AddressBook: Fixed CheckStyle --- src/main/java/seedu/address/model/AddressBook.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 134a94a52a6f..3b2b92e79820 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -29,7 +29,8 @@ public class AddressBook implements ReadOnlyAddressBook { * * Note that non-static init blocks are not recommended to use. There are other ways to avoid duplication * among constructors. - */ { + */ + { persons = new UniquePersonList(); events = new UniqueEventList(); records = new UniqueRecordList(); From b56fa19eee7cd9acde0bc66319effaed3c3853ee Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 25 Sep 2018 17:55:00 +0800 Subject: [PATCH 076/655] Update Event tests for AddressBookTest.java --- .../seedu/address/model/AddressBookTest.java | 45 +++++++++++++++++++ .../seedu/address/model/ModelManagerTest.java | 4 +- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/seedu/address/model/AddressBookTest.java index 17d353755897..ce7903d2d5e6 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/seedu/address/model/AddressBookTest.java @@ -4,9 +4,11 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DESCRIPTION_YOUTH; import static seedu.address.logic.commands.CommandTestUtil.VALID_HOUR_H2; import static seedu.address.logic.commands.CommandTestUtil.VALID_REMARK_R2; import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static seedu.address.testutil.TypicalEvents.BLOOD; import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalRecords.R1; @@ -23,10 +25,12 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import seedu.address.model.event.Event; +import seedu.address.model.event.exceptions.DuplicateEventException; import seedu.address.model.person.Person; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.model.record.Record; import seedu.address.model.record.exceptions.DuplicateRecordException; +import seedu.address.testutil.EventBuilder; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.RecordBuilder; @@ -100,6 +104,47 @@ public void getPersonList_modifyList_throwsUnsupportedOperationException() { addressBook.getPersonList().remove(0); } + //// Event Tests + @Test + public void resetData_withDuplicateEvents_throwsDuplicateEventsException() { + // Two events with the same identity fields + Event editedEvent = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH).build(); + List newEvents = Arrays.asList(BLOOD, editedEvent); + AddressBookStub newData = new AddressBookStub(null, newEvents, null); + + thrown.expect(DuplicateEventException.class); + addressBook.resetData(newData); + } + + @Test + public void hasEvent_nullEvent_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + addressBook.hasEvent(null); + } + + @Test + public void hasEvent_eventNotInAddressBook_returnsFalse() { + assertFalse(addressBook.hasEvent(BLOOD)); + } + + @Test + public void hasEvent_eventInAddressBook_returnsTrue() { + addressBook.addEvent(BLOOD); + assertTrue(addressBook.hasEvent(BLOOD)); + } + + @Test + public void hasEvent_eventWithSameIdentityFieldsInAddressBook_returnsTrue() { + addressBook.addEvent(BLOOD); + Event editedEvent = new EventBuilder(BLOOD).withDescription(VALID_DESCRIPTION_YOUTH).build(); + assertTrue(addressBook.hasEvent(editedEvent)); + } + + @Test + public void getEventList_modifyList_throwsUnsupportedOperationException() { + thrown.expect(UnsupportedOperationException.class); + addressBook.getEventList().remove(0); + } //// Record Tests @Test diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index dcad5a750d6c..424742a004d4 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -58,12 +58,12 @@ public void hasEvent_nullEvent_throwsNullPointerException() { } @Test - public void hasEvent_personNotInAddressBook_returnsFalse() { + public void hasEvent_eventNotInAddressBook_returnsFalse() { assertFalse(modelManager.hasEvent(BLOOD)); } @Test - public void hasEvent_personInAddressBook_returnsTrue() { + public void hasEvent_eventInAddressBook_returnsTrue() { modelManager.addEvent(BLOOD); assertTrue(modelManager.hasEvent(BLOOD)); } From 8e57d684c1143b3d8d7d304a24c61f53dacb5795 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 02:37:05 +0800 Subject: [PATCH 077/655] Command: Added switch command --- .../seedu/address/logic/LogicManager.java | 2 +- .../address/logic/commands/SwitchCommand.java | 46 ++++++++ .../logic/parser/AddressBookParser.java | 109 +++++++++++++----- .../seedu/address/logic/parser/CliSyntax.java | 7 +- .../address/logic/parser/ParserUtil.java | 16 +++ .../logic/parser/SwitchCommandParser.java | 44 +++++++ .../java/seedu/address/model/Context.java | 106 +++++++++++++++++ src/main/java/seedu/address/model/Model.java | 68 ++++++++--- .../seedu/address/model/ModelManager.java | 23 ++++ 9 files changed, 378 insertions(+), 43 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/SwitchCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/SwitchCommandParser.java create mode 100644 src/main/java/seedu/address/model/Context.java diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index 9aff86fc33dc..0c181f4c642e 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -33,7 +33,7 @@ public LogicManager(Model model) { public CommandResult execute(String commandText) throws CommandException, ParseException { logger.info("----------------[USER COMMAND][" + commandText + "]"); try { - Command command = addressBookParser.parseCommand(commandText); + Command command = addressBookParser.parseCommand(commandText, model.getContextId()); return command.execute(model, history); } finally { history.add(commandText); diff --git a/src/main/java/seedu/address/logic/commands/SwitchCommand.java b/src/main/java/seedu/address/logic/commands/SwitchCommand.java new file mode 100644 index 000000000000..5eda0ba812d6 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/SwitchCommand.java @@ -0,0 +1,46 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.logic.CommandHistory; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Context; +import seedu.address.model.Model; +import seedu.address.model.person.Person; + +/** + * Adds a person to the address book. + */ +public class SwitchCommand extends Command { + + public static final String COMMAND_WORD = "switch"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Switches the context of the system " + + "Parameters: " + + PREFIX_SWITCH + "CONTEXT_ID\n" + + "Example: " + COMMAND_WORD + " " + + PREFIX_SWITCH + Context.VOLUNTEER_CONTEXT_ID; + + public static final String MESSAGE_SUCCESS = "Context switched to %1$s"; + + private final String contextId; + + public SwitchCommand(String contextToSwitch) { + requireNonNull(contextToSwitch); + contextId = contextToSwitch; + } + + @Override + public CommandResult execute(Model model, CommandHistory history) { + requireNonNull(model); + + model.setCurrentContext(contextId); + return new CommandResult(String.format(MESSAGE_SUCCESS, model.getContextName())); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index b7d57f5db86a..5306b10b193a 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -18,8 +18,10 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.RedoCommand; import seedu.address.logic.commands.SelectCommand; +import seedu.address.logic.commands.SwitchCommand; import seedu.address.logic.commands.UndoCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Context; /** * Parses user input. @@ -35,10 +37,11 @@ public class AddressBookParser { * Parses user input into command for execution. * * @param userInput full user input string + * @param contextId the current context * @return the command based on the user input * @throws ParseException if the user input does not conform the expected format */ - public Command parseCommand(String userInput) throws ParseException { + public Command parseCommand(String userInput, String contextId) throws ParseException { final Matcher matcher = BASIC_COMMAND_FORMAT.matcher(userInput.trim()); if (!matcher.matches()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE)); @@ -46,47 +49,97 @@ public Command parseCommand(String userInput) throws ParseException { final String commandWord = matcher.group("commandWord"); final String arguments = matcher.group("arguments"); + + // Shared Commands switch (commandWord) { + case SwitchCommand.COMMAND_WORD: + return new SwitchCommandParser().parse(arguments); + // Shared methods are below + case HistoryCommand.COMMAND_WORD: + return new HistoryCommand(); + + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case UndoCommand.COMMAND_WORD: + return new UndoCommand(); - case SelectCommand.COMMAND_WORD: - return new SelectCommandParser().parse(arguments); + case RedoCommand.COMMAND_WORD: + return new RedoCommand(); + + default: + break; + } - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + // Executes commands for events + if (contextId.equals(Context.EVENT_CONTEXT_ID)) { + // Replace all these commands + switch (commandWord) { + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case SelectCommand.COMMAND_WORD: + return new SelectCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case HistoryCommand.COMMAND_WORD: - return new HistoryCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); + + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); + + case ListCommand.COMMAND_WORD: + return new ListCommand(); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } + } - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + // Executes commands for volunteers + if (contextId.equals(Context.VOLUNTEER_CONTEXT_ID)) { + // Replace all these commands + switch (commandWord) { + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case UndoCommand.COMMAND_WORD: - return new UndoCommand(); + case SelectCommand.COMMAND_WORD: + return new SelectCommandParser().parse(arguments); - case RedoCommand.COMMAND_WORD: - return new RedoCommand(); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); + + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); + + case ListCommand.COMMAND_WORD: + return new ListCommand(); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } } - } + // Execute commands for records + if (contextId.equals(Context.RECORD_CONTEXT_ID)) { + switch (commandWord) { + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } + } + + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } } diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 75b1a9bf1190..f3880dfe0183 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -4,12 +4,17 @@ * Contains Command Line Interface (CLI) syntax definitions common to multiple commands */ public class CliSyntax { + /* Switch Prefix definitions */ + public static final Prefix PREFIX_SWITCH= new Prefix("-"); - /* Prefix definitions */ + /* Person Prefix definitions */ public static final Prefix PREFIX_NAME = new Prefix("n/"); public static final Prefix PREFIX_PHONE = new Prefix("p/"); public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); + /* Record Prefix definitions */ + public static final Prefix PREFIX_RECORD_HOUR = new Prefix("h/"); + public static final Prefix PREFIX_RECORD_REMARK = new Prefix("r/"); } diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 76daf40807e2..f1c251fd31b8 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -9,6 +9,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.util.StringUtil; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Context; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -25,6 +26,7 @@ public class ParserUtil { /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. + * * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). */ public static Index parseIndex(String oneBasedIndex) throws ParseException { @@ -35,6 +37,20 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { return Index.fromOneBased(Integer.parseInt(trimmedIndex)); } + /** + * Parses a {@code String commandName} into a {@code String}. + * + * @throws ParseException if the given {@code commandName} is invalid. + */ + public static String parseCommandName(String commandName) throws ParseException { + requireNonNull(commandName); + + if (!Context.isValidContext(commandName)) { + throw new ParseException(Context.MESSAGE_CONTEXT_CONSTRAINTS); + } + return commandName; + } + /** * Parses a {@code String name} into a {@code Name}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java b/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java new file mode 100644 index 000000000000..6fb25ff4b99c --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java @@ -0,0 +1,44 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; + +import java.util.stream.Stream; + +import seedu.address.logic.commands.SwitchCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new SwitchCommand object + */ +public class SwitchCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the SwitchCommand + * and returns an SwitchCommand object for execution. + * + * @throws ParseException if the user input does not conform the expected format + */ + public SwitchCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_SWITCH); + + if (!arePrefixesPresent(argMultimap, PREFIX_SWITCH) + || !argMultimap.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, SwitchCommand.MESSAGE_USAGE)); + } + + String contextName = ParserUtil.parseCommandName(argMultimap.getValue(PREFIX_SWITCH).get()); + + return new SwitchCommand(contextName); + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } + +} diff --git a/src/main/java/seedu/address/model/Context.java b/src/main/java/seedu/address/model/Context.java new file mode 100644 index 000000000000..52bc7391dc30 --- /dev/null +++ b/src/main/java/seedu/address/model/Context.java @@ -0,0 +1,106 @@ +package seedu.address.model; + +import static java.util.Objects.hash; +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; +import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; + +/** + * Represents a Context in the address book. + * Guarantees: immutable; is valid as declared in {@link #isValidContext(String)} + */ +public class Context { + public static final String EVENT_CONTEXT_ID = "e"; + public static final String VOLUNTEER_CONTEXT_ID = "v"; + public static final String RECORD_CONTEXT_ID = "r"; + + public static final String EVENT_CONTEXT_NAME = "events"; + public static final String VOLUNTEER_CONTEXT_NAME = "volunteers"; + public static final String RECORD_CONTEXT_NAME = "volunteer records"; + + public static final String MESSAGE_CONTEXT_CONSTRAINTS = + "Context can only be " + PREFIX_SWITCH + EVENT_CONTEXT_ID + " or " + PREFIX_SWITCH + VOLUNTEER_CONTEXT_ID; + + private String contextId; + private String contextName; + + /** + * Constructs an {@code Context}. + * + * @param contextId A valid context string. + */ + public Context(String contextId, String contextName) { + requireNonNull(contextId); + checkArgument(isValidContext(contextId), MESSAGE_CONTEXT_CONSTRAINTS); + this.contextId = contextId; + this.contextName = contextName; + + } + + /** + * Sets a context + */ + public void setContextValue(String contextId) { + requireNonNull(contextId); + checkArgument(isValidContext(contextId), MESSAGE_CONTEXT_CONSTRAINTS); + this.contextId = contextId; + if (contextId.equals(EVENT_CONTEXT_ID)) { + contextName = EVENT_CONTEXT_NAME; + } + if (contextId.equals(VOLUNTEER_CONTEXT_ID)) { + contextName = VOLUNTEER_CONTEXT_NAME; + } + } + + /** + * Returns the context id + */ + public String getContextId() { + return contextId; + } + + /** + * Returns the context name + */ + public String getContextName() { + return contextName; + } + + /** + * External command to switch to manage context + */ + public void switchToRecordContext() { + this.contextId = RECORD_CONTEXT_ID; + this.contextName = RECORD_CONTEXT_NAME; + } + + /** + * Returns true if a given contextId is a valid contextId. + */ + public static boolean isValidContext(String test) { + if (test.equals(EVENT_CONTEXT_ID) || test.equals(VOLUNTEER_CONTEXT_ID)) { + return true; + } + return false; + } + + @Override + public String toString() { + return "Context Id: " + contextId + " " + + "Context Name: " + contextName; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Context // instanceof handles nulls + && contextId.equals(((Context) other).contextId) + && contextName.equals(((Context) other).contextName)); // state check + } + + @Override + public int hashCode() { + return hash(contextId, contextName); + } + +} diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index a4de37543b8b..315e606a02eb 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -11,19 +11,46 @@ * The API of the Model component. */ public interface Model { - /** {@code Predicate} that always evaluate to true */ + /** + * {@code Predicate} that always evaluate to true + */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; Predicate PREDICATE_SHOW_ALL_RECORDS = unused -> true; - /** {@code Predicate} that always evaluate to true */ + /** + * {@code Predicate} that always evaluate to true + */ Predicate PREDICATE_SHOW_ALL_EVENTS = unused -> true; - /** Clears existing backing model and replaces with the provided new data. */ + /** + * Clears existing backing model and replaces with the provided new data. + */ void resetData(ReadOnlyAddressBook newData); - /** Returns the AddressBook */ + /** + * Returns the AddressBook + */ ReadOnlyAddressBook getAddressBook(); + //=========== Context Switching Methods ============================================================= + + /** + * Sets the context + */ + void setCurrentContext(String contextId); + + /*** + * Returns the context Id + */ + String getContextId(); + + /** + * Returns context name + */ + String getContextName(); + + //=========== Person Methods ============================================================= + /** * Returns true if a person with the same identity as {@code person} exists in the address book. */ @@ -48,6 +75,20 @@ public interface Model { */ void updatePerson(Person target, Person editedPerson); + /** + * Returns an unmodifiable view of the filtered person list + */ + ObservableList getFilteredPersonList(); + + /** + * Updates the filter of the filtered person list to filter by the given {@code predicate}. + * + * @throws NullPointerException if {@code predicate} is null. + */ + void updateFilteredPersonList(Predicate predicate); + + //=========== Event Methods ============================================================= + /** * Returns true if an event with the same identity as {@code event} exists in the address book. */ @@ -72,24 +113,20 @@ public interface Model { */ void updateEvent(Event target, Event editedEvent); - /** Returns an unmodifiable view of the filtered person list */ - ObservableList getFilteredPersonList(); - /** - * Updates the filter of the filtered person list to filter by the given {@code predicate}. - * @throws NullPointerException if {@code predicate} is null. + * Returns an unmodifiable view of the filtered event list */ - void updateFilteredPersonList(Predicate predicate); - - /** Returns an unmodifiable view of the filtered event list */ ObservableList getFilteredEventList(); /** * Updates the filter of the filtered event list to filter by the given {@code predicate}. + * * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredEventList(Predicate predicate); + //=========== Record Methods ============================================================= + /** * Returns true if a record with the same identity as {@code record} exists in the database. */ @@ -114,15 +151,20 @@ public interface Model { */ void updateRecord(Record target, Record editedRecord); - /** Returns an unmodifiable view of the filtered record list */ + /** + * Returns an unmodifiable view of the filtered record list + */ ObservableList getFilteredRecordList(); /** * Updates the filter of the filtered record list to filter by the given {@code predicate}. + * * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredRecordList(Predicate predicate); + //=========== Undo/Redo Methods ============================================================= + /** * Returns true if the model has previous address book states to restore. */ diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 1ad90236fc08..2c574877599a 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -23,6 +23,9 @@ public class ModelManager extends ComponentManager implements Model { private static final Logger logger = LogsCenter.getLogger(ModelManager.class); private final VersionedAddressBook versionedAddressBook; + + private final Context context; + private final FilteredList filteredPersons; private final FilteredList filteredEvents; private final FilteredList filteredRecords; @@ -37,6 +40,9 @@ public ModelManager(ReadOnlyAddressBook addressBook, UserPrefs userPrefs) { logger.fine("Initializing with address book: " + addressBook + " and user prefs " + userPrefs); versionedAddressBook = new VersionedAddressBook(addressBook); + + context = new Context(Context.EVENT_CONTEXT_ID, Context.EVENT_CONTEXT_NAME); + filteredPersons = new FilteredList<>(versionedAddressBook.getPersonList()); filteredEvents = new FilteredList<>(versionedAddressBook.getEventList()); filteredRecords = new FilteredList<>(versionedAddressBook.getRecordList()); @@ -64,6 +70,23 @@ private void indicateAddressBookChanged() { raise(new AddressBookChangedEvent(versionedAddressBook)); } + //=========== Context Switching Methods ============================================================= + @Override + public void setCurrentContext(String contextId) { + requireAllNonNull(contextId); + context.setContextValue(contextId); + } + + @Override + public String getContextId() { + return context.getContextId(); + } + + @Override + public String getContextName() { + return context.getContextName(); + } + //=========== Person List Methods ============================================================= @Override public boolean hasPerson(Person person) { From 18e11f772cf9d74c2986ac5f02d14b04ea6fb475 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 02:46:37 +0800 Subject: [PATCH 078/655] AddressBookParser.java: Fixed CheckStyle --- .../address/logic/commands/SwitchCommand.java | 7 -- .../logic/parser/AddressBookParser.java | 98 +++++++++---------- 2 files changed, 49 insertions(+), 56 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SwitchCommand.java b/src/main/java/seedu/address/logic/commands/SwitchCommand.java index 5eda0ba812d6..02ba62667d4d 100644 --- a/src/main/java/seedu/address/logic/commands/SwitchCommand.java +++ b/src/main/java/seedu/address/logic/commands/SwitchCommand.java @@ -1,18 +1,11 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.logic.CommandHistory; -import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Context; import seedu.address.model.Model; -import seedu.address.model.person.Person; /** * Adds a person to the address book. diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 5306b10b193a..868cba4d2f8f 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -43,6 +43,7 @@ public class AddressBookParser { */ public Command parseCommand(String userInput, String contextId) throws ParseException { final Matcher matcher = BASIC_COMMAND_FORMAT.matcher(userInput.trim()); + if (!matcher.matches()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE)); } @@ -52,54 +53,53 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce // Shared Commands switch (commandWord) { - case SwitchCommand.COMMAND_WORD: - return new SwitchCommandParser().parse(arguments); - // Shared methods are below - case HistoryCommand.COMMAND_WORD: - return new HistoryCommand(); + case SwitchCommand.COMMAND_WORD: + return new SwitchCommandParser().parse(arguments); + case HistoryCommand.COMMAND_WORD: + return new HistoryCommand(); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case UndoCommand.COMMAND_WORD: - return new UndoCommand(); + case UndoCommand.COMMAND_WORD: + return new UndoCommand(); - case RedoCommand.COMMAND_WORD: - return new RedoCommand(); + case RedoCommand.COMMAND_WORD: + return new RedoCommand(); - default: - break; + default: + break; } // Executes commands for events if (contextId.equals(Context.EVENT_CONTEXT_ID)) { // Replace all these commands switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case SelectCommand.COMMAND_WORD: - return new SelectCommandParser().parse(arguments); + case SelectCommand.COMMAND_WORD: + return new SelectCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + case ListCommand.COMMAND_WORD: + return new ListCommand(); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } @@ -107,36 +107,36 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce if (contextId.equals(Context.VOLUNTEER_CONTEXT_ID)) { // Replace all these commands switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case SelectCommand.COMMAND_WORD: - return new SelectCommandParser().parse(arguments); + case SelectCommand.COMMAND_WORD: + return new SelectCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + case ListCommand.COMMAND_WORD: + return new ListCommand(); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } // Execute commands for records if (contextId.equals(Context.RECORD_CONTEXT_ID)) { switch (commandWord) { - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } From 21f2c8dc545445af9800b83b5e4418a7e40eeb56 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 02:57:58 +0800 Subject: [PATCH 079/655] test: Updated tests --- .../logic/commands/AddCommandTest.java | 16 +++++ .../logic/parser/AddressBookParserTest.java | 67 +++++++++++++------ 2 files changed, 61 insertions(+), 22 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index 3537215ed6f4..d2a1d6df0a82 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -102,6 +102,22 @@ public ReadOnlyAddressBook getAddressBook() { throw new AssertionError("This method should not be called."); } + //=========== Context Methods ============================================================= + @Override + public void setCurrentContext(String contextId) { + throw new AssertionError("This method should not be called."); + } + + @Override + public String getContextId() { + throw new AssertionError("This method should not be called."); + } + + @Override + public String getContextName() { + throw new AssertionError("This method should not be called."); + } + //=========== Person Methods ============================================================= @Override public void addPerson(Person person) { diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index a8c8cbf21f4e..a0e638acd569 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -28,6 +28,7 @@ import seedu.address.logic.commands.SelectCommand; import seedu.address.logic.commands.UndoCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Context; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.model.person.Person; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -43,20 +44,26 @@ public class AddressBookParserTest { @Test public void parseCommand_add() throws Exception { Person person = new PersonBuilder().build(); - AddCommand command = (AddCommand) parser.parseCommand(PersonUtil.getAddCommand(person)); + AddCommand command = (AddCommand) parser.parseCommand( + PersonUtil.getAddCommand(person), + Context.VOLUNTEER_CONTEXT_ID); assertEquals(new AddCommand(person), command); } @Test public void parseCommand_clear() throws Exception { - assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD) instanceof ClearCommand); - assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD + " 3") instanceof ClearCommand); + assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof ClearCommand); + assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD + " 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof ClearCommand); } @Test public void parseCommand_delete() throws Exception { DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); + DeleteCommand.COMMAND_WORD + " " + + INDEX_FIRST_PERSON.getOneBased(), + Context.VOLUNTEER_CONTEXT_ID); assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } @@ -65,37 +72,46 @@ public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " - + INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + + INDEX_FIRST_PERSON.getOneBased() + " " + + PersonUtil.getEditPersonDescriptorDetails(descriptor), + Context.VOLUNTEER_CONTEXT_ID); assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); } @Test public void parseCommand_exit() throws Exception { - assertTrue(parser.parseCommand(ExitCommand.COMMAND_WORD) instanceof ExitCommand); - assertTrue(parser.parseCommand(ExitCommand.COMMAND_WORD + " 3") instanceof ExitCommand); + assertTrue(parser.parseCommand(ExitCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof ExitCommand); + assertTrue(parser.parseCommand(ExitCommand.COMMAND_WORD + " 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof ExitCommand); } @Test public void parseCommand_find() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); FindCommand command = (FindCommand) parser.parseCommand( - FindCommand.COMMAND_WORD + " " + keywords.stream().collect(Collectors.joining(" "))); + FindCommand.COMMAND_WORD + " " + keywords.stream().collect(Collectors.joining(" ")), + Context.VOLUNTEER_CONTEXT_ID); assertEquals(new FindCommand(new NameContainsKeywordsPredicate(keywords)), command); } @Test public void parseCommand_help() throws Exception { - assertTrue(parser.parseCommand(HelpCommand.COMMAND_WORD) instanceof HelpCommand); - assertTrue(parser.parseCommand(HelpCommand.COMMAND_WORD + " 3") instanceof HelpCommand); + assertTrue(parser.parseCommand(HelpCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof HelpCommand); + assertTrue(parser.parseCommand(HelpCommand.COMMAND_WORD + " 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof HelpCommand); } @Test public void parseCommand_history() throws Exception { - assertTrue(parser.parseCommand(HistoryCommand.COMMAND_WORD) instanceof HistoryCommand); - assertTrue(parser.parseCommand(HistoryCommand.COMMAND_WORD + " 3") instanceof HistoryCommand); + assertTrue(parser.parseCommand(HistoryCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof HistoryCommand); + assertTrue(parser.parseCommand(HistoryCommand.COMMAND_WORD + " 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof HistoryCommand); try { - parser.parseCommand("histories"); + parser.parseCommand("histories", Context.VOLUNTEER_CONTEXT_ID); throw new AssertionError("The expected ParseException was not thrown."); } catch (ParseException pe) { assertEquals(MESSAGE_UNKNOWN_COMMAND, pe.getMessage()); @@ -104,40 +120,47 @@ public void parseCommand_history() throws Exception { @Test public void parseCommand_list() throws Exception { - assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD) instanceof ListCommand); - assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD + " 3") instanceof ListCommand); + assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof ListCommand); + assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD + " 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof ListCommand); } @Test public void parseCommand_select() throws Exception { SelectCommand command = (SelectCommand) parser.parseCommand( - SelectCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); + SelectCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased(), + Context.VOLUNTEER_CONTEXT_ID); assertEquals(new SelectCommand(INDEX_FIRST_PERSON), command); } @Test public void parseCommand_redoCommandWord_returnsRedoCommand() throws Exception { - assertTrue(parser.parseCommand(RedoCommand.COMMAND_WORD) instanceof RedoCommand); - assertTrue(parser.parseCommand("redo 1") instanceof RedoCommand); + assertTrue(parser.parseCommand(RedoCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof RedoCommand); + assertTrue(parser.parseCommand("redo 1", + Context.VOLUNTEER_CONTEXT_ID) instanceof RedoCommand); } @Test public void parseCommand_undoCommandWord_returnsUndoCommand() throws Exception { - assertTrue(parser.parseCommand(UndoCommand.COMMAND_WORD) instanceof UndoCommand); - assertTrue(parser.parseCommand("undo 3") instanceof UndoCommand); + assertTrue(parser.parseCommand(UndoCommand.COMMAND_WORD, + Context.VOLUNTEER_CONTEXT_ID) instanceof UndoCommand); + assertTrue(parser.parseCommand("undo 3", + Context.VOLUNTEER_CONTEXT_ID) instanceof UndoCommand); } @Test public void parseCommand_unrecognisedInput_throwsParseException() throws Exception { thrown.expect(ParseException.class); thrown.expectMessage(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE)); - parser.parseCommand(""); + parser.parseCommand("", Context.VOLUNTEER_CONTEXT_ID); } @Test public void parseCommand_unknownCommand_throwsParseException() throws Exception { thrown.expect(ParseException.class); thrown.expectMessage(MESSAGE_UNKNOWN_COMMAND); - parser.parseCommand("unknownCommand"); + parser.parseCommand("unknownCommand", Context.VOLUNTEER_CONTEXT_ID); } } From 08739df21473b733a004637e21e2647e10a1c8ee Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 03:02:39 +0800 Subject: [PATCH 080/655] CliSyntax.java: Fixed CheckStyle --- src/main/java/seedu/address/logic/parser/CliSyntax.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index f3880dfe0183..9ba8d4a29e57 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -5,7 +5,7 @@ */ public class CliSyntax { /* Switch Prefix definitions */ - public static final Prefix PREFIX_SWITCH= new Prefix("-"); + public static final Prefix PREFIX_SWITCH = new Prefix("-"); /* Person Prefix definitions */ public static final Prefix PREFIX_NAME = new Prefix("n/"); From 4e3e71b3b076d89da519cbe172c3c744e4188b17 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 04:07:24 +0800 Subject: [PATCH 081/655] test: Added more test for switch --- .../address/logic/parser/ParserUtil.java | 8 ++--- .../logic/parser/SwitchCommandParser.java | 2 +- .../java/seedu/address/model/Context.java | 8 ++--- .../logic/parser/AddressBookParserTest.java | 10 ++++++ .../address/logic/parser/ParserUtilTest.java | 17 +++++++++ .../java/seedu/address/model/ContextTest.java | 36 +++++++++++++++++++ .../seedu/address/model/ModelManagerTest.java | 19 ++++++++++ .../seedu/address/testutil/RecordBuilder.java | 1 - 8 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 src/test/java/seedu/address/model/ContextTest.java diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index f1c251fd31b8..054c23d8ce8a 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -42,13 +42,13 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { * * @throws ParseException if the given {@code commandName} is invalid. */ - public static String parseCommandName(String commandName) throws ParseException { - requireNonNull(commandName); + public static String parseCommandId(String commandId) throws ParseException { + requireNonNull(commandId); - if (!Context.isValidContext(commandName)) { + if (!Context.isValidContextId(commandId)) { throw new ParseException(Context.MESSAGE_CONTEXT_CONSTRAINTS); } - return commandName; + return commandId; } /** diff --git a/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java b/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java index 6fb25ff4b99c..94b275afd4e3 100644 --- a/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SwitchCommandParser.java @@ -28,7 +28,7 @@ public SwitchCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, SwitchCommand.MESSAGE_USAGE)); } - String contextName = ParserUtil.parseCommandName(argMultimap.getValue(PREFIX_SWITCH).get()); + String contextName = ParserUtil.parseCommandId(argMultimap.getValue(PREFIX_SWITCH).get()); return new SwitchCommand(contextName); } diff --git a/src/main/java/seedu/address/model/Context.java b/src/main/java/seedu/address/model/Context.java index 52bc7391dc30..e89d71982297 100644 --- a/src/main/java/seedu/address/model/Context.java +++ b/src/main/java/seedu/address/model/Context.java @@ -7,7 +7,7 @@ /** * Represents a Context in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidContext(String)} + * Guarantees: immutable; is valid as declared in {@link #isValidContextId(String)} */ public class Context { public static final String EVENT_CONTEXT_ID = "e"; @@ -31,7 +31,7 @@ public class Context { */ public Context(String contextId, String contextName) { requireNonNull(contextId); - checkArgument(isValidContext(contextId), MESSAGE_CONTEXT_CONSTRAINTS); + checkArgument(isValidContextId(contextId), MESSAGE_CONTEXT_CONSTRAINTS); this.contextId = contextId; this.contextName = contextName; @@ -42,7 +42,7 @@ public Context(String contextId, String contextName) { */ public void setContextValue(String contextId) { requireNonNull(contextId); - checkArgument(isValidContext(contextId), MESSAGE_CONTEXT_CONSTRAINTS); + checkArgument(isValidContextId(contextId), MESSAGE_CONTEXT_CONSTRAINTS); this.contextId = contextId; if (contextId.equals(EVENT_CONTEXT_ID)) { contextName = EVENT_CONTEXT_NAME; @@ -77,7 +77,7 @@ public void switchToRecordContext() { /** * Returns true if a given contextId is a valid contextId. */ - public static boolean isValidContext(String test) { + public static boolean isValidContextId(String test) { if (test.equals(EVENT_CONTEXT_ID) || test.equals(VOLUNTEER_CONTEXT_ID)) { return true; } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index a0e638acd569..b645f7b88039 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertTrue; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; +import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import java.util.Arrays; @@ -26,6 +27,7 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.RedoCommand; import seedu.address.logic.commands.SelectCommand; +import seedu.address.logic.commands.SwitchCommand; import seedu.address.logic.commands.UndoCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Context; @@ -41,6 +43,14 @@ public class AddressBookParserTest { private final AddressBookParser parser = new AddressBookParser(); + @Test + public void parseCommand_switch() throws Exception { + // TODO: Fix the parse for switch + String cmd = SwitchCommand.COMMAND_WORD + " " + PREFIX_SWITCH + Context.EVENT_CONTEXT_ID; + assertTrue(parser.parseCommand(cmd, + Context.VOLUNTEER_CONTEXT_ID) instanceof SwitchCommand); + } + @Test public void parseCommand_add() throws Exception { Person person = new PersonBuilder().build(); diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 78fd9c877708..a41ced6b2a32 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -24,12 +24,14 @@ import seedu.address.testutil.Assert; public class ParserUtilTest { + private static final String INVALID_CONTEXTID = "3"; private static final String INVALID_NAME = "R@chel"; private static final String INVALID_PHONE = "+651234"; private static final String INVALID_ADDRESS = " "; private static final String INVALID_EMAIL = "example.com"; private static final String INVALID_TAG = "#friend"; + private static final String VALID_CONTEXTID = "e"; private static final String VALID_NAME = "Rachel Walker"; private static final String VALID_PHONE = "123456"; private static final String VALID_ADDRESS = "123 Main Street #0505"; @@ -42,6 +44,21 @@ public class ParserUtilTest { @Rule public final ExpectedException thrown = ExpectedException.none(); + @Test + public void parseCommandId_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> ParserUtil.parseCommandId(null)); + } + + @Test + public void parseCommandId_invalidContext_throwsNullPointerException() { + Assert.assertThrows(ParseException.class, () -> ParserUtil.parseCommandId(INVALID_CONTEXTID)); + } + + @Test + public void parseCommandId_validContext_throwsNullPointerException() throws Exception { + assertEquals(VALID_CONTEXTID, ParserUtil.parseCommandId(VALID_CONTEXTID)); + } + @Test public void parseIndex_invalidInput_throwsParseException() throws Exception { thrown.expect(ParseException.class); diff --git a/src/test/java/seedu/address/model/ContextTest.java b/src/test/java/seedu/address/model/ContextTest.java new file mode 100644 index 000000000000..9268683a1cd8 --- /dev/null +++ b/src/test/java/seedu/address/model/ContextTest.java @@ -0,0 +1,36 @@ +package seedu.address.model; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import seedu.address.testutil.Assert; + +public class ContextTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Context(null, null)); + } + + @Test + public void constructor_invalidContextId_throwsIllegalArgumentException() { + String invalidContextId = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Context(invalidContextId, invalidContextId)); + } + + @Test + public void isValidContext() { + // null contextId + Assert.assertThrows(NullPointerException.class, () -> Context.isValidContextId(null)); + + // invalid contextId + assertFalse(Context.isValidContextId("")); // empty string + assertFalse(Context.isValidContextId(" ")); // spaces only + + // valid contextId + assertTrue(Context.isValidContextId(Context.EVENT_CONTEXT_ID)); + assertTrue(Context.isValidContextId(Context.VOLUNTEER_CONTEXT_ID)); // one character + } +} diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 424742a004d4..9fe199714469 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -1,5 +1,6 @@ package seedu.address.model; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -26,6 +27,24 @@ public class ModelManagerTest { private ModelManager modelManager = new ModelManager(); + //// Test switch + @Test + public void setCurrentContext_nullContextId_throwsNullPointerException() { + thrown.expect(NullPointerException.class); + modelManager.setCurrentContext(null); + } + + @Test + public void setCurrentContext_validContextId_assertTrue() { + modelManager.setCurrentContext(Context.EVENT_CONTEXT_ID); + assertEquals(modelManager.getContextId(), Context.EVENT_CONTEXT_ID); + assertEquals(modelManager.getContextName(), Context.EVENT_CONTEXT_NAME); + + modelManager.setCurrentContext(Context.VOLUNTEER_CONTEXT_ID); + assertEquals(modelManager.getContextId(), Context.VOLUNTEER_CONTEXT_ID); + assertEquals(modelManager.getContextName(), Context.VOLUNTEER_CONTEXT_NAME); + } + //// Test person @Test public void hasPerson_nullPerson_throwsNullPointerException() { diff --git a/src/test/java/seedu/address/testutil/RecordBuilder.java b/src/test/java/seedu/address/testutil/RecordBuilder.java index 296803a29e54..3acca284ab22 100644 --- a/src/test/java/seedu/address/testutil/RecordBuilder.java +++ b/src/test/java/seedu/address/testutil/RecordBuilder.java @@ -70,7 +70,6 @@ public RecordBuilder withRemark(String remark) { } /** - * Rubbish * @return record */ public Record build() { From bbe45d5e654e47d502b3557d515268890b0621ed Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 04:48:17 +0800 Subject: [PATCH 082/655] tests: Added test for switch --- .../logic/commands/CommandTestUtil.java | 9 ++++-- .../logic/commands/SwitchCommandTest.java | 31 +++++++++++++++++++ .../logic/parser/SwitchCommandParserTest.java | 28 +++++++++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 src/test/java/seedu/address/logic/commands/SwitchCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index f649733a17b7..a60cb4c8d8a8 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -6,6 +6,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import java.util.ArrayList; @@ -25,6 +26,7 @@ * Contains helper methods for testing commands. */ public class CommandTestUtil { + public static final String VALID_COMMANDID_EVENT = "e"; public static final String VALID_EVENTID_E1 = "1"; public static final String VALID_EVENTID_E2 = "2"; @@ -57,6 +59,9 @@ public class CommandTestUtil { public static final String VALID_TAG_DONATION = "Donation"; public static final String VALID_TAG_COMPETITION = "Competition"; + public static final String CONTEXT_VALID_DESC = " " + PREFIX_SWITCH + VALID_COMMANDID_EVENT; + public static final String CONTEXT_INVALID_DESC = " " + PREFIX_SWITCH + "i"; // Not recognised + public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; public static final String PHONE_DESC_AMY = " " + PREFIX_PHONE + VALID_PHONE_AMY; @@ -96,7 +101,7 @@ public class CommandTestUtil { * - the {@code actualCommandHistory} remains unchanged. */ public static void assertCommandSuccess(Command command, Model actualModel, CommandHistory actualCommandHistory, - String expectedMessage, Model expectedModel) { + String expectedMessage, Model expectedModel) { CommandHistory expectedCommandHistory = new CommandHistory(actualCommandHistory); try { CommandResult result = command.execute(actualModel, actualCommandHistory); @@ -116,7 +121,7 @@ public static void assertCommandSuccess(Command command, Model actualModel, Comm * - {@code actualCommandHistory} remains unchanged. */ public static void assertCommandFailure(Command command, Model actualModel, CommandHistory actualCommandHistory, - String expectedMessage) { + String expectedMessage) { // we are unable to defensively copy the model for comparison later, so we can // only do so by copying its components. AddressBook expectedAddressBook = new AddressBook(actualModel.getAddressBook()); diff --git a/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java b/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java new file mode 100644 index 000000000000..4d8c66d28013 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java @@ -0,0 +1,31 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; +import static seedu.address.model.Context.EVENT_CONTEXT_ID; +import static seedu.address.model.Context.EVENT_CONTEXT_NAME; + +import org.junit.Test; + +import seedu.address.logic.CommandHistory; +import seedu.address.model.AddressBook; +import seedu.address.model.Context; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; + +public class SwitchCommandTest { + private Model model = new ModelManager(); + private CommandHistory commandHistory = new CommandHistory(); + + @Test + public void execute_switch_success() { + SwitchCommand switchCommand = new SwitchCommand(Context.EVENT_CONTEXT_ID); + + String expectedMessage = String.format(SwitchCommand.MESSAGE_SUCCESS, EVENT_CONTEXT_NAME); + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + expectedModel.setCurrentContext(EVENT_CONTEXT_ID); + + assertCommandSuccess(switchCommand, model, commandHistory, expectedMessage, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java b/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java new file mode 100644 index 000000000000..5efecb5395e3 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java @@ -0,0 +1,28 @@ +package seedu.address.logic.parser; + +import static org.junit.Assert.assertEquals; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.CONTEXT_INVALID_DESC; +import static seedu.address.logic.commands.CommandTestUtil.CONTEXT_VALID_DESC; +import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; + +import org.junit.Test; + +import seedu.address.logic.commands.SwitchCommand; +import seedu.address.model.Context; + +public class SwitchCommandParserTest { + private SwitchCommandParser parser = new SwitchCommandParser(); + + @Test + public void parse_invalidValue_failure() { + // invalid contextId + assertParseFailure(parser, CONTEXT_INVALID_DESC, Context.MESSAGE_CONTEXT_CONSTRAINTS); + + // non-empty preamble + assertParseFailure(parser, PREAMBLE_NON_EMPTY + CONTEXT_VALID_DESC, + String.format(MESSAGE_INVALID_COMMAND_FORMAT, SwitchCommand.MESSAGE_USAGE)); + } +} From 22f849b18c249f97b47930b2995dfccaa2ecc995 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Wed, 26 Sep 2018 04:49:12 +0800 Subject: [PATCH 083/655] test: Fixed CheckStyle --- .../java/seedu/address/logic/commands/SwitchCommandTest.java | 1 - .../seedu/address/logic/parser/SwitchCommandParserTest.java | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java b/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java index 4d8c66d28013..a4a9b2886686 100644 --- a/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/SwitchCommandTest.java @@ -1,7 +1,6 @@ package seedu.address.logic.commands; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; import static seedu.address.model.Context.EVENT_CONTEXT_ID; import static seedu.address.model.Context.EVENT_CONTEXT_NAME; diff --git a/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java b/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java index 5efecb5395e3..f259b94c02c0 100644 --- a/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/SwitchCommandParserTest.java @@ -1,12 +1,10 @@ package seedu.address.logic.parser; -import static org.junit.Assert.assertEquals; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.CONTEXT_INVALID_DESC; import static seedu.address.logic.commands.CommandTestUtil.CONTEXT_VALID_DESC; import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import org.junit.Test; @@ -15,7 +13,7 @@ public class SwitchCommandParserTest { private SwitchCommandParser parser = new SwitchCommandParser(); - + @Test public void parse_invalidValue_failure() { // invalid contextId From 5f4cec6969b063b1d0004431d11a38ac4f8b339a Mon Sep 17 00:00:00 2001 From: Kratious Date: Wed, 26 Sep 2018 19:58:53 +0800 Subject: [PATCH 084/655] Add files and classes for Event.java UI view --- .../ui/EventPanelSelectionChangedEvent.java | 26 ++++++ src/main/java/seedu/address/ui/EventCard.java | 79 ++++++++++++++++++ .../java/seedu/address/ui/EventListPanel.java | 83 +++++++++++++++++++ .../java/seedu/address/ui/MainWindow.java | 11 +++ src/main/resources/view/EventListCard.fxml | 42 ++++++++++ src/main/resources/view/EventListPanel.fxml | 8 ++ 6 files changed, 249 insertions(+) create mode 100644 src/main/java/seedu/address/commons/events/ui/EventPanelSelectionChangedEvent.java create mode 100644 src/main/java/seedu/address/ui/EventCard.java create mode 100644 src/main/java/seedu/address/ui/EventListPanel.java create mode 100644 src/main/resources/view/EventListCard.fxml create mode 100644 src/main/resources/view/EventListPanel.fxml diff --git a/src/main/java/seedu/address/commons/events/ui/EventPanelSelectionChangedEvent.java b/src/main/java/seedu/address/commons/events/ui/EventPanelSelectionChangedEvent.java new file mode 100644 index 000000000000..06c12d802e32 --- /dev/null +++ b/src/main/java/seedu/address/commons/events/ui/EventPanelSelectionChangedEvent.java @@ -0,0 +1,26 @@ +package seedu.address.commons.events.ui; + +import seedu.address.commons.events.BaseEvent; +import seedu.address.model.event.Event; + +/** + * Represents a selection change in the Event List Panel + */ +public class EventPanelSelectionChangedEvent extends BaseEvent { + + + private final Event newSelection; + + public EventPanelSelectionChangedEvent(Event newSelection) { + this.newSelection = newSelection; + } + + @Override + public String toString() { + return getClass().getSimpleName(); + } + + public Event getNewSelection() { + return newSelection; + } +} diff --git a/src/main/java/seedu/address/ui/EventCard.java b/src/main/java/seedu/address/ui/EventCard.java new file mode 100644 index 000000000000..64ea8a358834 --- /dev/null +++ b/src/main/java/seedu/address/ui/EventCard.java @@ -0,0 +1,79 @@ +package seedu.address.ui; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import seedu.address.model.event.Event; + +/** + * An UI component that displays information of an {@code Event}. + */ +public class EventCard extends UiPart { + + private static final String FXML = "EventListCard.fxml"; + + /** + * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. + * As a consequence, UI elements' variable names cannot be set to such keywords + * or an exception will be thrown by JavaFX during runtime. + * + * @see The issue on AddressBook level 4 + */ + + public final Event event; + + @javafx.fxml.FXML + private HBox cardPane; + @FXML + private Label name; + @FXML + private Label id; + @FXML + private Label eventLocation; + @FXML + private Label startDate; + @FXML + private Label endDate; + @FXML + private Label startTime; + @FXML + private Label endTime; + @FXML + private FlowPane tags; + + public EventCard(Event event, int displayedIndex) { + super(FXML); + this.event = event; + id.setText(displayedIndex + ". "); + name.setText(event.getName().fullName); + eventLocation.setText(event.getLocation().value); + startDate.setText(event.getStartDate().value); + if (!event.getStartDate().equals(event.getEndDate())) { + endDate.setText("- " + event.getEndDate().value); + } + startTime.setText(event.getStartTime().value); + endTime.setText("- " + event.getEndTime().value); + + event.getTags().forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EventCard)) { + return false; + } + + // state check + EventCard card = (EventCard) other; + return id.getText().equals(card.id.getText()) + && event.equals(card.event); + } +} diff --git a/src/main/java/seedu/address/ui/EventListPanel.java b/src/main/java/seedu/address/ui/EventListPanel.java new file mode 100644 index 000000000000..eb0bc652443c --- /dev/null +++ b/src/main/java/seedu/address/ui/EventListPanel.java @@ -0,0 +1,83 @@ +package seedu.address.ui; + +import java.util.logging.Logger; + +import com.google.common.eventbus.Subscribe; + +import javafx.application.Platform; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.layout.Region; +import seedu.address.commons.core.LogsCenter; +import seedu.address.commons.events.ui.EventPanelSelectionChangedEvent; +import seedu.address.commons.events.ui.JumpToListRequestEvent; +import seedu.address.model.event.Event; + +/** + * Panel containing the list of events. + */ +public class EventListPanel extends UiPart { + private static final String FXML = "EventListPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(PersonListPanel.class); + + @FXML + private ListView eventListView; + + public EventListPanel(ObservableList eventList) { + super(FXML); + setConnections(eventList); + registerAsAnEventHandler(this); + } + + private void setConnections(ObservableList eventList) { + eventListView.setItems(eventList); + eventListView.setCellFactory(listView -> new EventListViewCell()); + setEventHandlerForSelectionChangeEvent(); + } + + private void setEventHandlerForSelectionChangeEvent() { + eventListView.getSelectionModel().selectedItemProperty() + .addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + logger.fine("Selection in event list panel changed to : '" + newValue + "'"); + raise(new EventPanelSelectionChangedEvent(newValue)); + } + }); + } + + /** + * Scrolls to the {@code EventCard} at the {@code index} and selects it. + */ + private void scrollTo(int index) { + Platform.runLater(() -> { + eventListView.scrollTo(index); + eventListView.getSelectionModel().clearAndSelect(index); + }); + } + + @Subscribe + private void handleJumpToListRequestEvent(JumpToListRequestEvent event) { + logger.info(LogsCenter.getEventHandlingLogMessage(event)); + scrollTo(event.targetIndex); + } + + /** + * Custom {@code ListCell} that displays the graphics of a {@code Event} using a {@code EventCard}. + */ + class EventListViewCell extends ListCell { + @Override + protected void updateItem(Event event, boolean empty) { + super.updateItem(event, empty); + + if (empty || event == null) { + setGraphic(null); + setText(null); + } else { + setGraphic(new EventCard(event, getIndex() + 1).getRoot()); + } + } + } + +} diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 0e361a4d7baf..195862f1c62b 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -36,6 +36,7 @@ public class MainWindow extends UiPart { // Independent Ui parts residing in this Ui container private BrowserPanel browserPanel; private PersonListPanel personListPanel; + private EventListPanel eventListPanel; private Config config; private UserPrefs prefs; private HelpWindow helpWindow; @@ -52,6 +53,9 @@ public class MainWindow extends UiPart { @FXML private StackPane personListPanelPlaceholder; + @FXML + private StackPane eventListPanelPlaceholder; + @FXML private StackPane resultDisplayPlaceholder; @@ -125,6 +129,9 @@ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + eventListPanel = new EventListPanel(logic.getFilteredEventList()); + //eventListPanelPlaceholder.getChildren().add(eventListPanel.getRoot()); + ResultDisplay resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); @@ -191,6 +198,10 @@ public PersonListPanel getPersonListPanel() { return personListPanel; } + public EventListPanel getEventListPanel() { + return eventListPanel; + } + void releaseResources() { browserPanel.freeResources(); } diff --git a/src/main/resources/view/EventListCard.fxml b/src/main/resources/view/EventListCard.fxml new file mode 100644 index 000000000000..04af0fb9fc14 --- /dev/null +++ b/src/main/resources/view/EventListCard.fxml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/view/EventListPanel.fxml b/src/main/resources/view/EventListPanel.fxml new file mode 100644 index 000000000000..bc1df705ab19 --- /dev/null +++ b/src/main/resources/view/EventListPanel.fxml @@ -0,0 +1,8 @@ + + + + + + + + From 3bf743e9299284091e0fccf568017bc879015d60 Mon Sep 17 00:00:00 2001 From: Kratious Date: Wed, 26 Sep 2018 19:59:54 +0800 Subject: [PATCH 085/655] Add getFilteredEventList() method for Logic.java and LogicManager.java --- src/main/java/seedu/address/logic/Logic.java | 4 ++++ src/main/java/seedu/address/logic/LogicManager.java | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 8b34b862039a..66f512c191f9 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -4,6 +4,7 @@ import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -22,6 +23,9 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of persons */ ObservableList getFilteredPersonList(); + /** Returns an unmodifiable view of the filtered list of events */ + ObservableList getFilteredEventList(); + /** Returns the list of input entered by the user, encapsulated in a {@code ListElementPointer} object */ ListElementPointer getHistorySnapshot(); } diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index 9aff86fc33dc..ac45200865f0 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -11,6 +11,7 @@ import seedu.address.logic.parser.AddressBookParser; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; +import seedu.address.model.event.Event; import seedu.address.model.person.Person; /** @@ -45,6 +46,11 @@ public ObservableList getFilteredPersonList() { return model.getFilteredPersonList(); } + @Override + public ObservableList getFilteredEventList() { + return model.getFilteredEventList(); + } + @Override public ListElementPointer getHistorySnapshot() { return new ListElementPointer(history.getHistory()); From 9c9142dcacdd34d24ba393544718f22e3423c735 Mon Sep 17 00:00:00 2001 From: Kratious Date: Wed, 26 Sep 2018 21:57:08 +0800 Subject: [PATCH 086/655] Add handler for UI when switching context between Event and Volunteer --- .../commons/events/ui/ContextChangeEvent.java | 25 +++++++++++++ .../address/logic/commands/SwitchCommand.java | 4 ++ .../java/seedu/address/ui/MainWindow.java | 37 +++++++++++++++---- src/main/resources/view/MainWindow.fxml | 4 +- 4 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java diff --git a/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java new file mode 100644 index 000000000000..47448998aab8 --- /dev/null +++ b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java @@ -0,0 +1,25 @@ +package seedu.address.commons.events.ui; + +import seedu.address.commons.events.BaseEvent; + +/** + * Represents a selection change in the Event List Panel + */ +public class ContextChangeEvent extends BaseEvent { + + + private final String contextId; + + public ContextChangeEvent(String contextId) { + this.contextId = contextId; + } + + @Override + public String toString() { + return getClass().getSimpleName(); + } + + public String getNewContext() { + return contextId; + } +} diff --git a/src/main/java/seedu/address/logic/commands/SwitchCommand.java b/src/main/java/seedu/address/logic/commands/SwitchCommand.java index 02ba62667d4d..f3da7bd1eeab 100644 --- a/src/main/java/seedu/address/logic/commands/SwitchCommand.java +++ b/src/main/java/seedu/address/logic/commands/SwitchCommand.java @@ -3,6 +3,8 @@ import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_SWITCH; +import seedu.address.commons.core.EventsCenter; +import seedu.address.commons.events.ui.ContextChangeEvent; import seedu.address.logic.CommandHistory; import seedu.address.model.Context; import seedu.address.model.Model; @@ -34,6 +36,8 @@ public CommandResult execute(Model model, CommandHistory history) { requireNonNull(model); model.setCurrentContext(contextId); + + EventsCenter.getInstance().post(new ContextChangeEvent(contextId)); return new CommandResult(String.format(MESSAGE_SUCCESS, model.getContextName())); } } diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 195862f1c62b..b6fac5a9ee4a 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,5 +1,8 @@ package seedu.address.ui; +import static seedu.address.model.Context.EVENT_CONTEXT_ID; +import static seedu.address.model.Context.VOLUNTEER_CONTEXT_ID; + import java.util.logging.Logger; import com.google.common.eventbus.Subscribe; @@ -15,6 +18,7 @@ import seedu.address.commons.core.Config; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; +import seedu.address.commons.events.ui.ContextChangeEvent; import seedu.address.commons.events.ui.ExitAppRequestEvent; import seedu.address.commons.events.ui.ShowHelpRequestEvent; import seedu.address.logic.Logic; @@ -51,10 +55,7 @@ public class MainWindow extends UiPart { private MenuItem helpMenuItem; @FXML - private StackPane personListPanelPlaceholder; - - @FXML - private StackPane eventListPanelPlaceholder; + private StackPane listPanelPlaceholder; @FXML private StackPane resultDisplayPlaceholder; @@ -127,10 +128,9 @@ void fillInnerParts() { browserPlaceholder.getChildren().add(browserPanel.getRoot()); personListPanel = new PersonListPanel(logic.getFilteredPersonList()); - personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); - eventListPanel = new EventListPanel(logic.getFilteredEventList()); - //eventListPanelPlaceholder.getChildren().add(eventListPanel.getRoot()); + + listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); ResultDisplay resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); @@ -186,6 +186,22 @@ void show() { primaryStage.show(); } + /** + * Replaces the ListPanel with the appropriate context. + */ + @FXML + private void handleContextChange(String contextId) { + if (contextId.equals(EVENT_CONTEXT_ID)) { + listPanelPlaceholder.getChildren().clear(); + listPanelPlaceholder.getChildren().add(eventListPanel.getRoot()); + } else if (contextId.equals(VOLUNTEER_CONTEXT_ID)) { + listPanelPlaceholder.getChildren().clear(); + listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + } + + //handle invalid input + } + /** * Closes the application. */ @@ -206,6 +222,13 @@ void releaseResources() { browserPanel.freeResources(); } + + @Subscribe + private void handleContextChangeEvent(ContextChangeEvent event) { + logger.info(event.getNewContext()); + handleContextChange(event.getNewContext()); + } + @Subscribe private void handleShowHelpEvent(ShowHelpRequestEvent event) { logger.info(LogsCenter.getEventHandlingLogMessage(event)); diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index daf386d8f5b8..1f418918b8b5 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -47,11 +47,11 @@ - + - + From 6122e9e7d53d77b325894df21ddf238890e02d0a Mon Sep 17 00:00:00 2001 From: Sharan Date: Sun, 30 Sep 2018 19:57:03 +0800 Subject: [PATCH 087/655] DeveloperGuide.adoc: Replace 'user' with 'manager' in user stories --- docs/DeveloperGuide.adoc | 49 +++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index cf7f71b473c1..9e8d3a3370bd 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -836,51 +836,51 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un [width="59%",cols="22%,<23%,<25%,<30%",options="header",] |======================================================================= |Priority |As a ... |I want to ... |So that I can... -|`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App +|`* * *` |new manager |see usage instructions |refer to instructions when I forget how to use the App -|`* * *` |user |register a new volunteer |begin tracking their volunteer work & hours +|`* * *` |manager |register a new volunteer |begin tracking their volunteer work & hours -|`* * *` |user |view a volunteer's details |track their volunteer work & hours +|`* * *` |manager |view a volunteer's details |track their volunteer work & hours -|`* * *` |user |update volunteer details |keep their details updated for administrative & other purposes +|`* * *` |manager |update volunteer details |keep their details updated for administrative & other purposes -|`* *` |user |archive volunteer details |stash away unnecessary volunteer records, yet have the option of restoring them if needed +|`* *` |manager |archive volunteer details |stash away unnecessary volunteer records, yet have the option of restoring them if needed -|`* *` |user |restore volunteer record |restore volunteer details that were archived +|`* *` |manager |restore volunteer record |restore volunteer details that were archived -|`* * *` |user |delete volunteer record |permanently remove volunteer record from database +|`* * *` |manager |delete volunteer record |permanently remove volunteer record from database -|`* *` |user |import volunteer record details |add multiple volunteer data into the database +|`* *` |manager |import volunteer record details |add multiple volunteer data into the database -|`*` |user |export volunteer record details |have a backup of the volunteer records +|`*` |manager |export volunteer record details |have a backup of the volunteer records -|`* * *` |user |create new event |have a record of the event details +|`* * *` |manager |create new event |have a record of the event details -|`* * *` |user |update event details |ensure that event details are kept up to date +|`* * *` |manager |update event details |ensure that event details are kept up to date -|`* * *` |user |view event details |verify the details of the event +|`* * *` |manager |view event details |verify the details of the event -|`* * *` |user |delete event details |remove the event from the list if event details were entered wrongly or cancelled +|`* * *` |manager |delete event details |remove the event from the list if event details were entered wrongly or cancelled -|`* *` |user |archive event details |stash away event records yet have the option of restoring them +|`* *` |manager |archive event details |stash away event records yet have the option of restoring them -|`* *` |user |restore event details |restore event details that were archived +|`* *` |manager |restore event details |restore event details that were archived -|`* *` |user |import event data |add multiple events at once +|`* *` |manager |import event data |add multiple events at once -|`*` |user |export event data |have a backup of event details +|`*` |manager |export event data |have a backup of event details -|`* * *` |user |add volunteer hours to volunteer profiles |keep track of the number of hours spent by the volunteer volunteering +|`* * *` |manager |add volunteer hours to volunteer profiles |keep track of the number of hours spent by the volunteer volunteering -|`* * *` |user |edit volunteer hours in volunteer profiles |maintain accuracy of information pertaining to volunteer work +|`* * *` |manager |edit volunteer hours in volunteer profiles |maintain accuracy of information pertaining to volunteer work -|`*` |user |export certification document from volunteers’ data |provide volunteers with official acknowledgement of service rendered to organization +|`*` |manager |export certification document from volunteers’ data |provide volunteers with official acknowledgement of service rendered to organization -|`* *` |user |view spread of volunteers across events |determine which are the more popular events +|`* *` |manager |view spread of volunteers across events |determine which are the more popular events -|`* *` |user |view demographics of volunteers |know what my volunteer profiles are like +|`* *` |manager |view demographics of volunteers |know what my volunteer profiles are like -|`* *` |user |auto-complete commands |execute commands more efficiently +|`* *` |manager |auto-complete commands |execute commands more efficiently |======================================================================= _{To be updated and expanded}_ @@ -936,6 +936,9 @@ Windows, Linux, Unix, OS-X [[private-contact-detail]] Private contact detail:: A contact detail that is not meant to be shared with others +[[manager]] Manager:: +The intended user of our application, the manager of a social welfare organisation who's in charge of members and events + [appendix] == Product Survey From 15adc8317515a1f244abb43269c44fd7a6341b3e Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 1 Oct 2018 20:04:11 +0800 Subject: [PATCH 088/655] images: changed images to .png --- docs/AboutUs.adoc | 6 +++--- docs/images/UI_Mockup.png | Bin 0 -> 236195 bytes docs/images/Ui.png | Bin 236195 -> 81847 bytes .../images/{afiqlattif.jpg => afiqlattif.png} | Bin docs/images/{imarbles.jpg => imarbles.png} | Bin docs/images/{kratious.jpg => kratious.png} | Bin docs/images/{sharan8.jpeg => sharan8.png} | Bin 7 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/images/UI_Mockup.png rename docs/images/{afiqlattif.jpg => afiqlattif.png} (100%) rename docs/images/{imarbles.jpg => imarbles.png} (100%) rename docs/images/{kratious.jpg => kratious.png} (100%) rename docs/images/{sharan8.jpeg => sharan8.png} (100%) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 9399d078ba93..3a96f533d9e0 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -12,7 +12,7 @@ We are a team based in the http://www.comp.nus.edu.sg[School of Computing, Natio == Project Team === Afiq Lattif -image::afiqlattif.jpg[width="150", align="left"] +image::afiqlattif.png[width="150", align="left"] {empty}[https://github.com/afiqlattif[github]] [<>] Role: Developer + @@ -30,7 +30,7 @@ Responsibilities: - ''' === Amabel Yeo -image::imarbles.jpg[width="150", align="left"] +image::imarbles.png[width="150", align="left"] {empty}[https://github.com/iMarbles[github]] [<>] Role: Developer + @@ -39,7 +39,7 @@ Responsibilities: - ''' === Thangavel Sharan -image::sharan8.jpeg[width="150", align="left"] +image::sharan8.png[width="150", align="left"] {empty}[https://github.com/sharan8[github]] [<>] Role: Developer + diff --git a/docs/images/UI_Mockup.png b/docs/images/UI_Mockup.png new file mode 100644 index 0000000000000000000000000000000000000000..cb63d09f3f93acd4f41d80e59063ba6a1503f7a7 GIT binary patch literal 236195 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�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 literal 0 HcmV?d00001 diff --git a/docs/images/Ui.png b/docs/images/Ui.png index cb63d09f3f93acd4f41d80e59063ba6a1503f7a7..02aca225e1f99c7cf7ece6e1c31cbe42bee249d3 100644 GIT binary patch literal 81847 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 From 70f26651dbb7352801a2679f8fbcad292c2c84db Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 1 Oct 2018 20:23:44 +0800 Subject: [PATCH 090/655] images: Fixed UI.png --- docs/images/imarbles.png | Bin 132990 -> 133778 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/imarbles.png b/docs/images/imarbles.png index b27dcee833062cf53cc6ea491aa36e752d77ef81..54fd5fa28dc3b26a8be1faa3026cdd196c3e2699 100644 GIT binary patch delta 116249 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ν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 delta 115469 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


    #+1&NVrVr&^v?%*Vu5#C|sit?HIQZeN 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 From b5dd7202ee6802283a23b4a02718abcd6dfc8caf Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 1 Oct 2018 20:26:01 +0800 Subject: [PATCH 091/655] images: removed Ui.png --- docs/images/Ui.png | Bin 81210 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/Ui.png diff --git a/docs/images/Ui.png b/docs/images/Ui.png deleted file mode 100644 index 53df9cc906c7d4c6692dc31a80d0b2e5c412cdd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81210 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 Date: Mon, 1 Oct 2018 20:26:39 +0800 Subject: [PATCH 092/655] images: Re-added Ui.png --- docs/images/Ui.png | Bin 0 -> 81210 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/Ui.png diff --git a/docs/images/Ui.png b/docs/images/Ui.png new file mode 100644 index 0000000000000000000000000000000000000000..53df9cc906c7d4c6692dc31a80d0b2e5c412cdd4 GIT binary patch literal 81210 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 Date: Tue, 2 Oct 2018 01:23:05 +0800 Subject: [PATCH 093/655] UI: Show total volunteer count in status bar --- .../java/seedu/address/ui/MainWindow.java | 3 ++- .../seedu/address/ui/StatusBarFooter.java | 12 ++++++++- src/main/resources/view/StatusBarFooter.fxml | 3 ++- .../guihandles/StatusBarFooterHandle.java | 26 +++++++++++++++++++ .../seedu/address/ui/StatusBarFooterTest.java | 24 ++++++++++++----- .../systemtests/AddCommandSystemTest.java | 2 +- .../systemtests/AddressBookSystemTest.java | 24 ++++++++++++++++- .../systemtests/ClearCommandSystemTest.java | 2 +- .../systemtests/DeleteCommandSystemTest.java | 2 +- 9 files changed, 84 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 0e361a4d7baf..75d5b3cbabb5 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -128,7 +128,8 @@ void fillInnerParts() { ResultDisplay resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); - StatusBarFooter statusBarFooter = new StatusBarFooter(prefs.getAddressBookFilePath()); + StatusBarFooter statusBarFooter = new StatusBarFooter(prefs.getAddressBookFilePath(), + logic.getFilteredPersonList().size()); statusbarPlaceholder.getChildren().add(statusBarFooter.getRoot()); CommandBox commandBox = new CommandBox(logic); diff --git a/src/main/java/seedu/address/ui/StatusBarFooter.java b/src/main/java/seedu/address/ui/StatusBarFooter.java index f6ba29502422..a5df12b3c653 100644 --- a/src/main/java/seedu/address/ui/StatusBarFooter.java +++ b/src/main/java/seedu/address/ui/StatusBarFooter.java @@ -24,6 +24,8 @@ public class StatusBarFooter extends UiPart { public static final String SYNC_STATUS_INITIAL = "Not updated yet in this session"; public static final String SYNC_STATUS_UPDATED = "Last Updated: %s"; + public static final String TOTAL_VOLUNTEERS_STATUS = "%d volunteer(s) total"; + /** * Used to generate time stamps. * @@ -42,12 +44,15 @@ public class StatusBarFooter extends UiPart { private StatusBar syncStatus; @FXML private StatusBar saveLocationStatus; + @FXML + private StatusBar totalVolunteersStatus; - public StatusBarFooter(Path saveLocation) { + public StatusBarFooter(Path saveLocation, int totalVolunteers) { super(FXML); setSyncStatus(SYNC_STATUS_INITIAL); setSaveLocation(Paths.get(".").resolve(saveLocation).toString()); + setTotalVolunteers(totalVolunteers); registerAsAnEventHandler(this); } @@ -79,5 +84,10 @@ public void handleAddressBookChangedEvent(AddressBookChangedEvent abce) { String lastUpdated = new Date(now).toString(); logger.info(LogsCenter.getEventHandlingLogMessage(abce, "Setting last updated status to " + lastUpdated)); setSyncStatus(String.format(SYNC_STATUS_UPDATED, lastUpdated)); + setTotalVolunteers(abce.data.getPersonList().size()); + } + + public void setTotalVolunteers(int totalVolunteers) { + Platform.runLater(() -> totalVolunteersStatus.setText(String.format(TOTAL_VOLUNTEERS_STATUS, totalVolunteers))); } } diff --git a/src/main/resources/view/StatusBarFooter.fxml b/src/main/resources/view/StatusBarFooter.fxml index 041e1ff9004f..10ee1bd4819f 100644 --- a/src/main/resources/view/StatusBarFooter.fxml +++ b/src/main/resources/view/StatusBarFooter.fxml @@ -10,5 +10,6 @@ - + + diff --git a/src/test/java/guitests/guihandles/StatusBarFooterHandle.java b/src/test/java/guitests/guihandles/StatusBarFooterHandle.java index 33c5d1d788b8..46bc74869892 100644 --- a/src/test/java/guitests/guihandles/StatusBarFooterHandle.java +++ b/src/test/java/guitests/guihandles/StatusBarFooterHandle.java @@ -12,18 +12,22 @@ public class StatusBarFooterHandle extends NodeHandle { private static final String SYNC_STATUS_ID = "#syncStatus"; private static final String SAVE_LOCATION_STATUS_ID = "#saveLocationStatus"; + private static final String TOTAL_VOLUNTEERS_STATUS_ID = "#totalVolunteersStatus"; private final StatusBar syncStatusNode; private final StatusBar saveLocationNode; + private final StatusBar totalVolunteersStatusNode; private String lastRememberedSyncStatus; private String lastRememberedSaveLocation; + private String lastRememberedTotalVolunteersStatus; public StatusBarFooterHandle(Node statusBarFooterNode) { super(statusBarFooterNode); syncStatusNode = getChildNode(SYNC_STATUS_ID); saveLocationNode = getChildNode(SAVE_LOCATION_STATUS_ID); + totalVolunteersStatusNode = getChildNode(TOTAL_VOLUNTEERS_STATUS_ID); } /** @@ -40,6 +44,13 @@ public String getSaveLocation() { return saveLocationNode.getText(); } + /** + * Returns the text of the 'total volunteers' portion of the status bar. + */ + public String getTotalVolunteersStatus() { + return totalVolunteersStatusNode.getText(); + } + /** * Remembers the content of the sync status portion of the status bar. */ @@ -69,4 +80,19 @@ public void rememberSaveLocation() { public boolean isSaveLocationChanged() { return !lastRememberedSaveLocation.equals(getSaveLocation()); } + + /** + * Remembers the content of the 'total volunteers' portion of the status bar. + */ + public void rememberTotalVolunteersStatus() { + lastRememberedTotalVolunteersStatus = getTotalVolunteersStatus(); + } + + /** + * Returns true if the current content of the 'total volunteers' is different from the value remembered by the most + * recent {@code rememberTotalVolunteersStatus()} call. + */ + public boolean isTotalVolunteersStatusChanged() { + return !lastRememberedTotalVolunteersStatus.equals(getTotalVolunteersStatus()); + } } diff --git a/src/test/java/seedu/address/ui/StatusBarFooterTest.java b/src/test/java/seedu/address/ui/StatusBarFooterTest.java index c7d21684a472..e8600bc17480 100644 --- a/src/test/java/seedu/address/ui/StatusBarFooterTest.java +++ b/src/test/java/seedu/address/ui/StatusBarFooterTest.java @@ -2,8 +2,10 @@ import static org.junit.Assert.assertEquals; import static seedu.address.testutil.EventsUtil.postNow; +import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.ui.StatusBarFooter.SYNC_STATUS_INITIAL; import static seedu.address.ui.StatusBarFooter.SYNC_STATUS_UPDATED; +import static seedu.address.ui.StatusBarFooter.TOTAL_VOLUNTEERS_STATUS; import java.nio.file.Path; import java.nio.file.Paths; @@ -19,14 +21,17 @@ import guitests.guihandles.StatusBarFooterHandle; import seedu.address.commons.events.model.AddressBookChangedEvent; -import seedu.address.model.AddressBook; +import seedu.address.testutil.AddressBookBuilder; public class StatusBarFooterTest extends GuiUnitTest { private static final Path STUB_SAVE_LOCATION = Paths.get("Stub"); private static final Path RELATIVE_PATH = Paths.get("."); - private static final AddressBookChangedEvent EVENT_STUB = new AddressBookChangedEvent(new AddressBook()); + private static final AddressBookChangedEvent EVENT_STUB = new AddressBookChangedEvent( + new AddressBookBuilder().withPerson(ALICE).build()); + + private static final int INITIAL_TOTAL_VOLUNTEERS = 0; private static final Clock originalClock = StatusBarFooter.getClock(); private static final Clock injectedClock = Clock.fixed(Instant.now(), ZoneId.systemDefault()); @@ -47,7 +52,7 @@ public static void tearDownAfterClass() { @Before public void setUp() { - StatusBarFooter statusBarFooter = new StatusBarFooter(STUB_SAVE_LOCATION); + StatusBarFooter statusBarFooter = new StatusBarFooter(STUB_SAVE_LOCATION, INITIAL_TOTAL_VOLUNTEERS); uiPartRule.setUiPart(statusBarFooter); statusBarFooterHandle = new StatusBarFooterHandle(statusBarFooter.getRoot()); @@ -56,21 +61,26 @@ public void setUp() { @Test public void display() { // initial state - assertStatusBarContent(RELATIVE_PATH.resolve(STUB_SAVE_LOCATION).toString(), SYNC_STATUS_INITIAL); + assertStatusBarContent(RELATIVE_PATH.resolve(STUB_SAVE_LOCATION).toString(), SYNC_STATUS_INITIAL, + String.format(TOTAL_VOLUNTEERS_STATUS, INITIAL_TOTAL_VOLUNTEERS)); // after address book is updated postNow(EVENT_STUB); assertStatusBarContent(RELATIVE_PATH.resolve(STUB_SAVE_LOCATION).toString(), - String.format(SYNC_STATUS_UPDATED, new Date(injectedClock.millis()).toString())); + String.format(SYNC_STATUS_UPDATED, new Date(injectedClock.millis()).toString()), + String.format(TOTAL_VOLUNTEERS_STATUS, EVENT_STUB.data.getPersonList().size())); } /** * Asserts that the save location matches that of {@code expectedSaveLocation}, and the - * sync status matches that of {@code expectedSyncStatus}. + * sync status matches that of {@code expectedSyncStatus}, and the total volunteers matches that of + * {@code expectedTotalVolunteersStatus}. */ - private void assertStatusBarContent(String expectedSaveLocation, String expectedSyncStatus) { + private void assertStatusBarContent(String expectedSaveLocation, String expectedSyncStatus, + String expectedTotalVolunteersStatus) { assertEquals(expectedSaveLocation, statusBarFooterHandle.getSaveLocation()); assertEquals(expectedSyncStatus, statusBarFooterHandle.getSyncStatus()); + assertEquals(expectedTotalVolunteersStatus, statusBarFooterHandle.getTotalVolunteersStatus()); guiRobot.pauseForHuman(); } diff --git a/src/test/java/systemtests/AddCommandSystemTest.java b/src/test/java/systemtests/AddCommandSystemTest.java index c656bca6f0fd..b12735270fd6 100644 --- a/src/test/java/systemtests/AddCommandSystemTest.java +++ b/src/test/java/systemtests/AddCommandSystemTest.java @@ -222,7 +222,7 @@ private void assertCommandSuccess(String command, Model expectedModel, String ex assertApplicationDisplaysExpected("", expectedResultMessage, expectedModel); assertSelectedCardUnchanged(); assertCommandBoxShowsDefaultStyle(); - assertStatusBarUnchangedExceptSyncStatus(); + assertStatusBarChangedExceptSaveLocation(); } /** diff --git a/src/test/java/systemtests/AddressBookSystemTest.java b/src/test/java/systemtests/AddressBookSystemTest.java index bf1743e3d16e..577306e1b8f7 100644 --- a/src/test/java/systemtests/AddressBookSystemTest.java +++ b/src/test/java/systemtests/AddressBookSystemTest.java @@ -7,6 +7,7 @@ import static seedu.address.ui.BrowserPanel.DEFAULT_PAGE; import static seedu.address.ui.StatusBarFooter.SYNC_STATUS_INITIAL; import static seedu.address.ui.StatusBarFooter.SYNC_STATUS_UPDATED; +import static seedu.address.ui.StatusBarFooter.TOTAL_VOLUNTEERS_STATUS; import static seedu.address.ui.UiPart.FXML_FILE_FOLDER; import static seedu.address.ui.testutil.GuiTestAssert.assertListMatching; @@ -192,6 +193,7 @@ private void rememberStates() { getBrowserPanel().rememberUrl(); statusBarFooterHandle.rememberSaveLocation(); statusBarFooterHandle.rememberSyncStatus(); + statusBarFooterHandle.rememberTotalVolunteersStatus(); getPersonListPanel().rememberSelectedPersonCard(); } @@ -256,11 +258,13 @@ protected void assertStatusBarUnchanged() { StatusBarFooterHandle handle = getStatusBarFooter(); assertFalse(handle.isSaveLocationChanged()); assertFalse(handle.isSyncStatusChanged()); + assertFalse(handle.isTotalVolunteersStatusChanged()); } /** * Asserts that only the sync status in the status bar was changed to the timing of - * {@code ClockRule#getInjectedClock()}, while the save location remains the same. + * {@code ClockRule#getInjectedClock()}, while the save location and the total person + * list remains the same. */ protected void assertStatusBarUnchangedExceptSyncStatus() { StatusBarFooterHandle handle = getStatusBarFooter(); @@ -268,6 +272,22 @@ protected void assertStatusBarUnchangedExceptSyncStatus() { String expectedSyncStatus = String.format(SYNC_STATUS_UPDATED, timestamp); assertEquals(expectedSyncStatus, handle.getSyncStatus()); assertFalse(handle.isSaveLocationChanged()); + assertFalse(handle.isTotalVolunteersStatusChanged()); + } + + /** + * Asserts that the sync status in the status bar was changed to the timing of + * {@code ClockRule#getInjectedClock()}, and total volunteers was changed to match the total + * number of volunteers in the address book, while the save location remains the same. + */ + protected void assertStatusBarChangedExceptSaveLocation() { + StatusBarFooterHandle handle = getStatusBarFooter(); + String timestamp = new Date(clockRule.getInjectedClock().millis()).toString(); + String expectedSyncStatus = String.format(SYNC_STATUS_UPDATED, timestamp); + assertEquals(expectedSyncStatus, handle.getSyncStatus()); + final int totalVolunteers = testApp.getModel().getAddressBook().getPersonList().size(); + assertEquals(String.format(TOTAL_VOLUNTEERS_STATUS, totalVolunteers), handle.getTotalVolunteersStatus()); + assertFalse(handle.isSaveLocationChanged()); } /** @@ -281,6 +301,8 @@ private void assertApplicationStartingStateIsCorrect() { assertEquals(Paths.get(".").resolve(testApp.getStorageSaveLocation()).toString(), getStatusBarFooter().getSaveLocation()); assertEquals(SYNC_STATUS_INITIAL, getStatusBarFooter().getSyncStatus()); + assertEquals(String.format(TOTAL_VOLUNTEERS_STATUS, getModel().getAddressBook().getPersonList().size()), + getStatusBarFooter().getTotalVolunteersStatus()); } /** diff --git a/src/test/java/systemtests/ClearCommandSystemTest.java b/src/test/java/systemtests/ClearCommandSystemTest.java index fb01059d9fe4..86b4c7112513 100644 --- a/src/test/java/systemtests/ClearCommandSystemTest.java +++ b/src/test/java/systemtests/ClearCommandSystemTest.java @@ -77,7 +77,7 @@ private void assertCommandSuccess(String command, String expectedResultMessage, executeCommand(command); assertApplicationDisplaysExpected("", expectedResultMessage, expectedModel); assertCommandBoxShowsDefaultStyle(); - assertStatusBarUnchangedExceptSyncStatus(); + assertStatusBarChangedExceptSaveLocation(); } /** diff --git a/src/test/java/systemtests/DeleteCommandSystemTest.java b/src/test/java/systemtests/DeleteCommandSystemTest.java index 29fbb5fc3930..4b12beb6d32d 100644 --- a/src/test/java/systemtests/DeleteCommandSystemTest.java +++ b/src/test/java/systemtests/DeleteCommandSystemTest.java @@ -168,7 +168,7 @@ private void assertCommandSuccess(String command, Model expectedModel, String ex } assertCommandBoxShowsDefaultStyle(); - assertStatusBarUnchangedExceptSyncStatus(); + assertStatusBarChangedExceptSaveLocation(); } /** From 82357158bcfb8d75aca11099ceba162b2cb02a2b Mon Sep 17 00:00:00 2001 From: Afiq Lattif Date: Tue, 2 Oct 2018 21:29:16 +0800 Subject: [PATCH 094/655] DeveloperGuide.adoc: Update Appendix D, E & F --- docs/DeveloperGuide.adoc | 276 ++++++++++++++++++++++++++++++++++----- 1 file changed, 240 insertions(+), 36 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 9e8d3a3370bd..2bcf17f81963 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -890,54 +890,258 @@ _{To be updated and expanded}_ (For all use cases below, the *System* is the `AddressBook` and the *Actor* is the `user`, unless specified otherwise) -[discrete] -=== Use case: Delete person - -*MSS* - -1. User requests to list persons -2. AddressBook shows a list of persons -3. User requests to delete a specific person in the list -4. AddressBook deletes the person -+ -Use case ends. -*Extensions* - -[none] -* 2a. The list is empty. -+ -Use case ends. - -* 3a. The given index is invalid. -+ -[none] -** 3a1. AddressBook shows an error message. -+ -Use case resumes at step 2. +[width="59%",cols="22%",options="header",] +|======================================================================= +|Use Cases +a|*UC01:* Register new volunteer + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +* New user will be created only if data entered is valid and there is sufficient memory space to store the new user + + +*MSS:* + + . Admin chooses to add a new volunteer + . Application requests for details of the volunteer + . Admin enters and submits the requested details + . Application creates the volunteer and notifies Admin of success + + Use case ends. + + +*Extensions:* + + + * 3a. The entered data is invalid + ** 3a1. Application shows an error message that the entered data is invalid + + Use case resumes from step 3. +a|*UC02:* View volunteer details + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to list all volunteers + . Application displays a list of all volunteers + . Admin requests to view a volunteer profile at a specific index in the list + . Application displays the volunteer profile + + Use case ends. + + +*Extensions:* + + * 2a. The volunteer list is empty + ** 2a1. Application shows an error message that volunteer list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. +a|*UC03:* Update volunteer details + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to list all volunteers + . Application displays a list of all volunteers + . Admin enters the index and updated details of the volunteer to be changed + . Application updates the volunteer details and notifies of the successful update + + Use case ends. + + +*Extensions:* + + * 2a. The volunteer list is empty + ** 2a1. Application shows an error message that volunteer list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. + * 3b. The given details are invalid + ** 3b1. Application shows an error message that the details given are invalid + + Use case resumes at step 2. +a|*UC04:* Delete volunteer record + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + + + * Volunteer record will be deleted only if index specified is valid + + +*MSS:* + + . Admin requests to list all volunteers + . Application displays a list of all volunteers + . Admin requests to delete a volunteer at a specific index in the list + . Application deletes the volunteer + . Application displays a successful deletion message to Admin + + Use case ends. + + +*Extensions:* + + * 2a. The volunteer list is empty + ** 2a1. Application shows an error message that volunteer list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. +a|*UC05:* Create new event + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to create a new event + . Application requests for details of the event + . Admin enters details of the event to be created + . Application creates the event and shows successful creation message + + Use case ends. + + +*Extensions:* + + * 2a. The given details is invalid + ** 2a1. Application shows an error message that given details is invalid + + Use case resumes from step 1. +a|*UC06:* Update event details + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to list all events + . Application displays a list of all events + . Admin enters the index and updated details of the event to be changed + . Application updates the event details and notifies of the successful update + + Use case ends. + + +*Extensions:* + + * 2a. The event list is empty + ** 2a1. Application shows an error message that event list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. + * 3b. The given details are invalid + ** 3b1. Application shows an error message that the details given are invalid + + Use case resumes at step 2. +a|*UC07:* View event details + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to list all events + . Application displays a list of all events + . Admin requests to view event details at a specific index in the list + . Application displays the details of the event + + Use case ends. + + +*Extensions:* + + * 2a. The event list is empty + ** 2a1. Application shows an error message that event list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. +a|*UC08:* Delete event details + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Admin requests to list all events + . Application displays a list of all events + . Admin requests to delete event details at a specific index in the list + . Application requests for confirmation + . Admin confirms the deletion + . Application deletes the event details + . Application displays a successful deletion message to Admin + + Use case ends. + + +*Extensions:* + + * 2a. The events list is empty + ** 2a1. Application shows an error message that event list is empty + + Use case ends. + * 3a. The given index is invalid + ** 3a1. Application shows an error message that the index given is invalid + + Use case resumes from step 2. +a|*UC09:* Add volunteer hours to volunteer profile + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Application [underline]#displays the volunteer profile UC02# + . Admin requests to list all volunteer hours of the volunteer + . Application displays a list of all volunteer hours of the volunteer + . Admin chooses to add volunteer hours + . Application requests for details of the volunteer hours + . Admin enters the requested details + . Application requests for confirmation + . Admin confirms the addition + . Application adds the volunteer hours and notifies Admin of success + + Use case ends. + + +*Extensions:* + + * 2a. The volunteer hours list is empty + ** 2a1. Application shows an error message that volunteer hours list is empty + + Use case ends. + * 8a. Application detects an error in the entered data + ** 8a1. Application requests for the correct data + ** 8a2. Admin enters new data + ** Steps 8a1-8a2 are repeated until the data entered is valid + + Use case resumes from step 9. +a|*UC10:* Edit volunteer hours in volunteer profile + +*Actor:* Admin + +*Precondition(s):* Admin is logged in + +*Guarantee(s):* + +*MSS:* + + . Application [underline]#displays the volunteer profile UC02# + . Admin requests to list all volunteer hours of the volunteer + . Application displays a list of all volunteer hours of the volunteer + . Admin enters the index and the details of the volunteer hours to be changed + . Application updates the volunteer hours and notifies Admin of success + + Use case ends. + + +*Extensions:* + + * 2a. The volunteer hours list is empty + ** 2a1. Application shows an error message that volunteer hours list is empty + + Use case ends. + * 4a. The given index is invalid + ** Application shows an error message that the index given is invalid + + Use case resumes from step 5. + * 4b. The given details are invalid + ** 4b1. Application shows an error message that the details given is invalid + + Use case resumes from step 5. +|======================================================================= _{More to be added}_ [appendix] == Non Functional Requirements -. Should work on any <> as long as it has Java `9` or higher installed. -. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +* Reasonable response time (2-3s) +* Backward compatibility by being able to transfer data from older versions of the application when updating each version +* Should work on any <> as long as it has Java `9` or higher installed. +* Files containing volunteer data should be encrypted +* A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. _{More to be added}_ [appendix] == Glossary - -[[mainstream-os]] Mainstream OS:: -Windows, Linux, Unix, OS-X - -[[private-contact-detail]] Private contact detail:: -A contact detail that is not meant to be shared with others - -[[manager]] Manager:: -The intended user of our application, the manager of a social welfare organisation who's in charge of members and events +[width="59%",cols="50%,50%",options="header",] +|======================================================================= +| Term| Explanation +| *Volunteer Manager*| Staff working for the organization, who handles administrative issues pertaining to volunteer and event management +| *Volunteer*| A person who has signed up and has a profile with the organization +| *Admin*| Our application’s intended target user (Most likely the volunteer manager) +| *Application*| Refers to our system +| *UCXX*| Use case with XX being the use case ID +|[[mainstream-os]] *Mainstream OS*| Windows, Linux, Unix, OS-X +|======================================================================= [appendix] == Product Survey From eae694225967f550a2d225170c8b2502cc4a2892 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sun, 7 Oct 2018 21:21:54 +0800 Subject: [PATCH 095/655] AboutUs.adoc: Updated responsibilities --- docs/AboutUs.adoc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/docs/AboutUs.adoc b/docs/AboutUs.adoc index 3a96f533d9e0..63b3ddffc15e 100644 --- a/docs/AboutUs.adoc +++ b/docs/AboutUs.adoc @@ -4,11 +4,6 @@ :imagesDir: images :stylesDir: stylesheets -AddressBook - Level 4 was developed by the https://se-edu.github.io/docs/Team.html[se-edu] team. + -_{The dummy content given below serves as a placeholder to be used by future forks of the project.}_ + -{empty} + -We are a team based in the http://www.comp.nus.edu.sg[School of Computing, National University of Singapore]. - == Project Team === Afiq Lattif @@ -16,16 +11,16 @@ image::afiqlattif.png[width="150", align="left"] {empty}[https://github.com/afiqlattif[github]] [<>] Role: Developer + -Responsibilities: - +Responsibilities: Volunteer Management Feature ''' === Sem Jing Han -image::kratious.jpg[width="150", align="left"] +image::kratious.png[width="150", align="left"] {empty}[http://github.com/kratious[github]] [<>] Role: Developer + -Responsibilities: - +Responsibilities: Event Management Feature ''' @@ -34,7 +29,7 @@ image::imarbles.png[width="150", align="left"] {empty}[https://github.com/iMarbles[github]] [<>] Role: Developer + -Responsibilities: - +Responsibilities: Assignment of Volunteers Feature ''' @@ -43,7 +38,7 @@ image::sharan8.png[width="150", align="left"] {empty}[https://github.com/sharan8[github]] [<>] Role: Developer + -Responsibilities: - +Responsibilities: Statistics Feature ''' @@ -52,6 +47,6 @@ image::yl_coder.jpg[width="150", align="left"] {empty}[https://github.com/Scrubbius[github]] [<>] Role: Developer + -Responsibilities: - +Responsibilities: Data Management Feature ''' From 6e17ee9d46654a0fce43e77a871a2502363bacda Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sun, 7 Oct 2018 21:26:18 +0800 Subject: [PATCH 096/655] UserGuide.adoc: Fixed formatting and updated description --- docs/UserGuide.adoc | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 067127b555b0..325d6a891f4a 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -26,7 +26,7 @@ SocialCare is for organizations which *prefer to use a desktop app for managing == Quick Start . Ensure you have Java version `9` or later installed in your Computer. -. Download the latest `addressbook.jar` link:{repoURL}/releases[here]. +. Download the latest `socialcare.jar` link:{repoURL}/releases[here]. . Copy the file to the folder you want to use as the home folder for SocialCare. . Double-click the file to start the app. The GUI should appear in a few seconds. + @@ -257,7 +257,7 @@ View the list of volunteers assigned to event at index 1 ==== Add volunteer to event: `add` Adds a volunteer to the event that is currently being managed. + -Format: `add VOLUNTEER_INDEX... [h/HOURS] [r/REMARKS]` +Format: `add VOLUNTEER_INDEX [h/HOURS] [r/REMARKS]` **** * This command is executed after the 'manage' command. @@ -268,35 +268,29 @@ Examples: * `add 1` + Adds a volunteer at index 1 to the event with 0 hours -* `add 1 2 3` + -Adds a volunteer at index 1, 2 and 3 to the event with 0 hours -* `add 1 r\Vegetarian` + +* `add 1 r/Vegetarian` + Adds a volunteer at index 1 to the event with 0 hours with remarks of 'Vegetarian' -* `add 3 h\5` + +* `add 3 h/5` + Adds a volunteer at index 3 to the event with 5 hours -* `add 1 2 3 h\5 r\Help to deliver food` + -Adds a volunteer at index 1, 2 and 3 to the event with 5 hours with remarks of 'Help to deliver food' ==== Update volunteer hours: `edit` Update number of hours for volunteer in the event that is currently being managed. + -Format: `edit [-a] [VOLUNTEER_INDEX]... h\HOURS [r\REMARKS]` +Format: `edit [-a] [VOLUNTEER_INDEX] h/HOURS [r/REMARKS]` **** * This command is executed after the 'manage' command. * VOLUNTEER_INDEX comes from the table view of existing volunteers. * VOLUNTEER_INDEX is only optional when '-a' is entered. -* Entering just `r\` would result in remarks being deleted. +* Entering just `r/` would result in remarks being deleted. **** Examples: -* `edit -a h\5` + +* `edit -a h/5` + Updates amount of hours volunteered for all existing volunteers in the event to 5 hours -* `edit 3 h\5 r\Emcee` + +* `edit 3 h/5 r/Emcee` + Updates amount of hours volunteered for volunteer at index 3 to 5 hours with remarks of 'Emcee' -* `edit 1 2 3 h\5` + -Updates amount of hours volunteered for volunteer at index 1, 2 and 3 to 5 hours ==== Delete volunteer record from event: `delete` @@ -366,10 +360,10 @@ e.g. `delete 3` === Record Management * *Manage* `manage EVENT_INDEX` + e.g. `manage 1` -* *Add* `add [h\HOURS] VOLUNTEER_INDEX...` + -e.g. `add h\5 1 2 3` -* *Edit* `edit [-a] h\HOURS [VOLUNTEER_INDEX]...` + -e.g. `edit h\5 1 2 3` +* *Add* `add [h/HOURS] VOLUNTEER_INDEX...` + +e.g. `add h/5 1 2 3` +* *Edit* `edit [-a] h/HOURS [VOLUNTEER_INDEX]...` + +e.g. `edit h/5 1 2 3` * *Delete* `delete VOLUNTEER_INDEX` + e.g. `delete 1` From 47f55050d0fe21c3010b730f7c2cd1fa2f6999c6 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 8 Oct 2018 13:43:28 +0800 Subject: [PATCH 097/655] Apply upstream bug fix for PersonListPanelTest.java --- src/test/java/seedu/address/ui/PersonListPanelTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/ui/PersonListPanelTest.java b/src/test/java/seedu/address/ui/PersonListPanelTest.java index 24c015565eb3..37ff8eeeb202 100644 --- a/src/test/java/seedu/address/ui/PersonListPanelTest.java +++ b/src/test/java/seedu/address/ui/PersonListPanelTest.java @@ -103,7 +103,7 @@ private Path createXmlFileWithPersons(int personCount) throws Exception { } builder.append("\n"); - Path manyPersonsFile = Paths.get(TEST_DATA_FOLDER + "manyPersons.xml"); + Path manyPersonsFile = TEST_DATA_FOLDER.resolve("manyPersons.xml"); FileUtil.createFile(manyPersonsFile); FileUtil.writeToFile(manyPersonsFile, builder.toString()); manyPersonsFile.toFile().deleteOnExit(); From ddbf7a3d68e0b2e37fce12d7b151a00090bd4350 Mon Sep 17 00:00:00 2001 From: Sharan Date: Thu, 11 Oct 2018 14:48:16 +0800 Subject: [PATCH 098/655] UI: Update alignment & formatting of total volunteer count in status bar --- src/main/java/seedu/address/ui/StatusBarFooter.java | 4 ++-- src/main/resources/view/DarkTheme.css | 5 +++++ src/main/resources/view/StatusBarFooter.fxml | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/ui/StatusBarFooter.java b/src/main/java/seedu/address/ui/StatusBarFooter.java index a5df12b3c653..a66c774719cc 100644 --- a/src/main/java/seedu/address/ui/StatusBarFooter.java +++ b/src/main/java/seedu/address/ui/StatusBarFooter.java @@ -24,7 +24,7 @@ public class StatusBarFooter extends UiPart { public static final String SYNC_STATUS_INITIAL = "Not updated yet in this session"; public static final String SYNC_STATUS_UPDATED = "Last Updated: %s"; - public static final String TOTAL_VOLUNTEERS_STATUS = "%d volunteer(s) total"; + public static final String TOTAL_VOLUNTEERS_STATUS = "Total Volunteer(s): %d"; /** * Used to generate time stamps. @@ -87,7 +87,7 @@ public void handleAddressBookChangedEvent(AddressBookChangedEvent abce) { setTotalVolunteers(abce.data.getPersonList().size()); } - public void setTotalVolunteers(int totalVolunteers) { + private void setTotalVolunteers(int totalVolunteers) { Platform.runLater(() -> totalVolunteersStatus.setText(String.format(TOTAL_VOLUNTEERS_STATUS, totalVolunteers))); } } diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index c8941ea18263..4fdc9c0a6b95 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -177,6 +177,7 @@ -fx-background-color: derive(#1d1d1d, 30%); -fx-border-color: derive(#1d1d1d, 30%); -fx-border-width: 1px; + -fx-alignment: center; } .grid-pane .stack-pane { @@ -349,3 +350,7 @@ -fx-background-radius: 2; -fx-font-size: 11; } + +#totalVolunteersStatus .label { + -fx-alignment: center; +} \ No newline at end of file diff --git a/src/main/resources/view/StatusBarFooter.fxml b/src/main/resources/view/StatusBarFooter.fxml index 10ee1bd4819f..afd0268089c5 100644 --- a/src/main/resources/view/StatusBarFooter.fxml +++ b/src/main/resources/view/StatusBarFooter.fxml @@ -7,6 +7,7 @@ + From 2be29cf50fb1ece2f7225f515ad4f7728fb48aa8 Mon Sep 17 00:00:00 2001 From: Sharan Date: Thu, 11 Oct 2018 15:09:31 +0800 Subject: [PATCH 099/655] DarkTheme.css: Add newline at EOF --- src/main/resources/view/DarkTheme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 4fdc9c0a6b95..69a52c692854 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -353,4 +353,4 @@ #totalVolunteersStatus .label { -fx-alignment: center; -} \ No newline at end of file +} From d5ac958d6749a69a0173251fda4f8f046370cc66 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Thu, 11 Oct 2018 16:14:54 +0800 Subject: [PATCH 100/655] build.gradle: Updated attributes --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index f8e614f8b49b..5ae369475d97 100644 --- a/build.gradle +++ b/build.gradle @@ -207,8 +207,8 @@ asciidoctor { idprefix: '', // for compatibility with GitHub preview idseparator: '-', 'site-root': "${sourceDir}", // must be the same as sourceDir, do not modify - 'site-name': 'AddressBook-Level4', - 'site-githuburl': 'https://github.com/se-edu/addressbook-level4', + 'site-name': 'SocialCare', + 'site-githuburl': 'https://github.com/CS2103-AY1819S1-W16-2/main', 'site-seedu': true, // delete this line if your project is not a fork (not a SE-EDU project) ] From d137a6f4609584da4f948324cd8589678e44490a Mon Sep 17 00:00:00 2001 From: iMarbles Date: Thu, 11 Oct 2018 16:21:26 +0800 Subject: [PATCH 101/655] build.gradle: Updated site-seedu --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5ae369475d97..dc3fe99ed9cc 100644 --- a/build.gradle +++ b/build.gradle @@ -209,7 +209,7 @@ asciidoctor { 'site-root': "${sourceDir}", // must be the same as sourceDir, do not modify 'site-name': 'SocialCare', 'site-githuburl': 'https://github.com/CS2103-AY1819S1-W16-2/main', - 'site-seedu': true, // delete this line if your project is not a fork (not a SE-EDU project) + 'site-seedu': false, // delete this line if your project is not a fork (not a SE-EDU project) ] options['template_dirs'].each { From 3c6ca4346bf3073853112af19fc88fabb0801aa1 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Thu, 11 Oct 2018 16:27:24 +0800 Subject: [PATCH 102/655] build.gradle: removed se-edu --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index dc3fe99ed9cc..f09d5ff74c14 100644 --- a/build.gradle +++ b/build.gradle @@ -208,8 +208,7 @@ asciidoctor { idseparator: '-', 'site-root': "${sourceDir}", // must be the same as sourceDir, do not modify 'site-name': 'SocialCare', - 'site-githuburl': 'https://github.com/CS2103-AY1819S1-W16-2/main', - 'site-seedu': false, // delete this line if your project is not a fork (not a SE-EDU project) + 'site-githuburl': 'https://github.com/CS2103-AY1819S1-W16-2/main' ] options['template_dirs'].each { From b0d41c9296b04454bf83c2e0efa576b89007b83c Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 13:44:48 +0800 Subject: [PATCH 103/655] Update ListView UI in MainWindow.fxml --- src/main/resources/view/Custom.css | 80 +++++++++++++++++++++++++ src/main/resources/view/DarkTheme.css | 29 --------- src/main/resources/view/MainWindow.fxml | 25 ++++---- 3 files changed, 90 insertions(+), 44 deletions(-) create mode 100644 src/main/resources/view/Custom.css diff --git a/src/main/resources/view/Custom.css b/src/main/resources/view/Custom.css new file mode 100644 index 000000000000..13d7fbd2544d --- /dev/null +++ b/src/main/resources/view/Custom.css @@ -0,0 +1,80 @@ +.split-pane:horizontal .split-pane-divider { + -fx-padding: 0 1 0 1; + -fx-border-color: #0000001e; + -fx-background-color: transparent; +} + +.split-pane { + -fx-box-boder: transparent; + -fx-padding: 0; + -fx-background-inset: 0; + -fx-border-radius: 0; + -fx-border-width: 0; + -fx-background-color: derive(#b4b4b4, 50%); +} + +.list-view { + -fx-background-insets: 0; + -fx-padding: 0px; + -fx-background-color: rgb(230.0, 230.0, 230.0); +} + +.list-cell { + -fx-padding: 12px; + -fx-background-color: transparent, #ffffff; + -fx-background-insets: 0px, 4px; + -fx-border-radius: 1; + -fx-effect: dropshadow(gaussian, rgb(0.0, 0.0, 0.0, 0.15), 6.0, 0.7, 0.0, 1.5); +} + +.list-cell:empty { + -fx-padding: 2px; + -fx-background-color: transparent; + -fx-background-insets: 0; +} + +.list-cell:filled:hover { + -fx-background-color: transparent, rgb(200.0, 200.0, 200.0); +} + +.list-cell:filled:selected { + -fx-background-color: transparent, derive(#42A5F5, 50%); +} + +.list-cell:filled:selected #cardPane { + -fx-border-color: #3080e8; + -fx-border-width: 0 0 0 0; +} + +.list-cell .label { + -fx-text-fill: #242424; + -fx-font-family: "Tahoma"; +} + +.scroll-bar:vertical>.track-background, .scroll-bar:horizontal>.track-background +{ + -fx-background-color: rgb(230.0, 230.0, 230.0); + -fx-background-insets: 0; +} + +.scroll-bar:vertical>.thumb, .scroll-bar:horizontal>.thumb { + -fx-background-color: rgb(180.0, 180.0, 180.0); + -fx-background-insets: 0; + -fx-background-radius: 0; +} + +.scroll-bar>.increment-button, .scroll-bar>.decrement-button, +.scroll-bar:hover>.increment-button, .scroll-bar:hover>.decrement-button +{ + -fx-background-color: transparent; +} + +.scroll-bar>.increment-button>.increment-arrow, .scroll-bar>.decrement-button>.decrement-arrow +{ + -fx-background-color: rgb(150.0, 150.0, 150.0); +} + +.scroll-bar>.track-background { + -fx-background-color: transparent; +} + diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index c8941ea18263..b6c7873fd34f 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -99,18 +99,6 @@ -fx-padding: 0 0 0 0; } -.list-cell:filled:even { - -fx-background-color: #3c3e3f; -} - -.list-cell:filled:odd { - -fx-background-color: #515658; -} - -.list-cell:filled:selected { - -fx-background-color: #424d5f; -} - .list-cell:filled:selected #cardPane { -fx-border-color: #3e7b91; -fx-border-width: 1; @@ -289,23 +277,6 @@ -fx-background-insets: 3; } -.scroll-bar .increment-button, .scroll-bar .decrement-button { - -fx-background-color: transparent; - -fx-padding: 0 0 0 0; -} - -.scroll-bar .increment-arrow, .scroll-bar .decrement-arrow { - -fx-shape: " "; -} - -.scroll-bar:vertical .increment-arrow, .scroll-bar:vertical .decrement-arrow { - -fx-padding: 1 8 1 8; -} - -.scroll-bar:horizontal .increment-arrow, .scroll-bar:horizontal .decrement-arrow { - -fx-padding: 8 1 8 1; -} - #cardPane { -fx-background-color: transparent; -fx-border-width: 0; diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index daf386d8f5b8..c11d665400cb 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -21,6 +21,7 @@ + @@ -33,6 +34,15 @@ + + + + + + + + + @@ -46,21 +56,6 @@ - - - - - - - - - - - - - - - From 6b9a0d057880f15b4764677c649acf61967d552f Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 14:25:28 +0800 Subject: [PATCH 104/655] DeveloperGuide.adoc: Updated team --- docs/DeveloperGuide.adoc | 4 +- docs/DeveloperGuide.html | 3446 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 3448 insertions(+), 2 deletions(-) create mode 100644 docs/DeveloperGuide.html diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 2bcf17f81963..3c688ddebe24 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -13,9 +13,9 @@ ifdef::env-github[] :warning-caption: :warning: :experimental: endif::[] -:repoURL: https://github.com/se-edu/addressbook-level4/tree/master +:repoURL: https://github.com/CS2103-AY1819S1-W16-2/main -By: `Team SE-EDU`      Since: `Jun 2016`      Licence: `MIT` +By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` == Setting up diff --git a/docs/DeveloperGuide.html b/docs/DeveloperGuide.html new file mode 100644 index 000000000000..5c1669eb0696 --- /dev/null +++ b/docs/DeveloperGuide.html @@ -0,0 +1,3446 @@ + + + + + + + +AddressBook Level 4 - Developer Guide + + + + + + + + + \ No newline at end of file From 5eb8be8001a1cb968e0fbb5757e46e527df0a477 Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 14:26:28 +0800 Subject: [PATCH 105/655] Update UI handler for events in BrowserPanel.java when an event is selected --- src/main/java/seedu/address/ui/BrowserPanel.java | 11 +++++++++++ src/main/java/seedu/address/ui/MainWindow.java | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/ui/BrowserPanel.java b/src/main/java/seedu/address/ui/BrowserPanel.java index b43de90a2b9f..1b7771407f3f 100644 --- a/src/main/java/seedu/address/ui/BrowserPanel.java +++ b/src/main/java/seedu/address/ui/BrowserPanel.java @@ -12,6 +12,7 @@ import javafx.scene.web.WebView; import seedu.address.MainApp; import seedu.address.commons.core.LogsCenter; +import seedu.address.commons.events.ui.EventPanelSelectionChangedEvent; import seedu.address.commons.events.ui.PersonPanelSelectionChangedEvent; import seedu.address.model.person.Person; @@ -41,6 +42,10 @@ public BrowserPanel() { registerAsAnEventHandler(this); } + private void loadEventPage(seedu.address.model.event.Event event) { + loadPage(SEARCH_PAGE_URL + event.getName().fullName); + } + private void loadPersonPage(Person person) { loadPage(SEARCH_PAGE_URL + person.getName().fullName); } @@ -64,6 +69,12 @@ public void freeResources() { browser = null; } + @Subscribe + private void handleEventPanelSelectionChangedEvent(EventPanelSelectionChangedEvent event) { + logger.info(LogsCenter.getEventHandlingLogMessage(event)); + loadEventPage(event.getNewSelection()); + } + @Subscribe private void handlePersonPanelSelectionChangedEvent(PersonPanelSelectionChangedEvent event) { logger.info(LogsCenter.getEventHandlingLogMessage(event)); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index b6fac5a9ee4a..26782f869ae3 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,6 +1,7 @@ package seedu.address.ui; import static seedu.address.model.Context.EVENT_CONTEXT_ID; +import static seedu.address.model.Context.RECORD_CONTEXT_ID; import static seedu.address.model.Context.VOLUNTEER_CONTEXT_ID; import java.util.logging.Logger; @@ -197,9 +198,9 @@ private void handleContextChange(String contextId) { } else if (contextId.equals(VOLUNTEER_CONTEXT_ID)) { listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + } else if (contextId.equals(RECORD_CONTEXT_ID)) { + // to be implemented } - - //handle invalid input } /** From 32f9090832cdc9be64210cdcb8e2ebebf843f9b6 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 14:34:12 +0800 Subject: [PATCH 106/655] DeveloperGuide.adoc: Lead in for Design section --- docs/DeveloperGuide.adoc | 4 + docs/DeveloperGuide.html | 3446 -------------------------------------- 2 files changed, 4 insertions(+), 3446 deletions(-) delete mode 100644 docs/DeveloperGuide.html diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 3c688ddebe24..ffeea5c8bb85 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -17,6 +17,9 @@ endif::[] By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` +== Introduction +TBC + == Setting up === Prerequisites @@ -104,6 +107,7 @@ When you are ready to start coding, 2. Take a look at <>. == Design +This section will describe the design architecture and the various components of the system. [[Design-Architecture]] === Architecture diff --git a/docs/DeveloperGuide.html b/docs/DeveloperGuide.html deleted file mode 100644 index 5c1669eb0696..000000000000 --- a/docs/DeveloperGuide.html +++ /dev/null @@ -1,3446 +0,0 @@ - - - - - - - -AddressBook Level 4 - Developer Guide - - - - - -
    - -
    -

    1. Setting up

    -
    -
    -

    1.1. Prerequisites

    -
    -
      -
    1. -

      JDK 9 or later

      -
      - - - - - -
      -
      Warning
      -
      -JDK 10 on Windows will fail to run tests in headless mode due to a JavaFX bug. -Windows developers are highly recommended to use JDK 9. -
      -
      -
    2. -
    3. -

      IntelliJ IDE

      -
      - - - - - -
      -
      Note
      -
      -IntelliJ by default has Gradle and JavaFx plugins installed.
      -Do not disable them. If you have disabled them, go to File > Settings > Plugins to re-enable them. -
      -
      -
    4. -
    -
    -
    -
    -

    1.2. Setting up the project in your computer

    -
    -
      -
    1. -

      Fork this repo, and clone the fork to your computer

      -
    2. -
    3. -

      Open IntelliJ (if you are not in the welcome screen, click File > Close Project to close the existing project dialog first)

      -
    4. -
    5. -

      Set up the correct JDK version for Gradle

      -
      -
        -
      1. -

        Click Configure > Project Defaults > Project Structure

        -
      2. -
      3. -

        Click New…​ and find the directory of the JDK

        -
      4. -
      -
      -
    6. -
    7. -

      Click Import Project

      -
    8. -
    9. -

      Locate the build.gradle file and select it. Click OK

      -
    10. -
    11. -

      Click Open as Project

      -
    12. -
    13. -

      Click OK to accept the default settings

      -
    14. -
    15. -

      Open a console and run the command gradlew processResources (Mac/Linux: ./gradlew processResources). It should finish with the BUILD SUCCESSFUL message.
      -This will generate all resources required by the application and tests.

      -
    16. -
    17. -

      Open XmlAdaptedPerson.java and MainWindow.java and check for any code errors

      -
      -
        -
      1. -

        Due to an ongoing issue with some of the newer versions of IntelliJ, code errors may be detected even if the project can be built and run successfully

        -
      2. -
      3. -

        To resolve this, place your cursor over any of the code section highlighted in red. Press kbd:[ALT + ENTER], and select Add '--add-modules=…​' to module compiler options for each error

        -
      4. -
      -
      -
    18. -
    19. -

      Repeat this for the test folder as well (e.g. check XmlUtilTest.java and HelpWindowTest.java for code errors, and if so, resolve it the same way)

      -
    20. -
    -
    -
    -
    -

    1.3. Verifying the setup

    -
    -
      -
    1. -

      Run the seedu.address.MainApp and try a few commands

      -
    2. -
    3. -

      Run the tests to ensure they all pass.

      -
    4. -
    -
    -
    -
    -

    1.4. Configurations to do before writing code

    -
    -

    1.4.1. Configuring the coding style

    -
    -

    This project follows oss-generic coding standards. IntelliJ’s default style is mostly compliant with ours but it uses a different import order from ours. To rectify,

    -
    -
    -
      -
    1. -

      Go to File > Settings…​ (Windows/Linux), or IntelliJ IDEA > Preferences…​ (macOS)

      -
    2. -
    3. -

      Select Editor > Code Style > Java

      -
    4. -
    5. -

      Click on the Imports tab to set the order

      -
      -
        -
      • -

        For Class count to use import with '*' and Names count to use static import with '*': Set to 999 to prevent IntelliJ from contracting the import statements

        -
      • -
      • -

        For Import Layout: The order is import static all other imports, import java.*, import javax.*, import org.*, import com.*, import all other imports. Add a <blank line> between each import

        -
      • -
      -
      -
    6. -
    -
    -
    -

    Optionally, you can follow the UsingCheckstyle.adoc document to configure Intellij to check style-compliance as you write code.

    -
    -
    -
    -

    1.4.2. Updating documentation to match your fork

    -
    -

    After forking the repo, the documentation will still have the SE-EDU branding and refer to the se-edu/addressbook-level4 repo.

    -
    -
    -

    If you plan to develop this fork as a separate product (i.e. instead of contributing to se-edu/addressbook-level4), you should do the following:

    -
    -
    -
      -
    1. -

      Configure the site-wide documentation settings in build.gradle, such as the site-name, to suit your own project.

      -
    2. -
    3. -

      Replace the URL in the attribute repoURL in DeveloperGuide.adoc and UserGuide.adoc with the URL of your fork.

      -
    4. -
    -
    -
    -
    -

    1.4.3. Setting up CI

    -
    -

    Set up Travis to perform Continuous Integration (CI) for your fork. See UsingTravis.adoc to learn how to set it up.

    -
    -
    -

    After setting up Travis, you can optionally set up coverage reporting for your team fork (see UsingCoveralls.adoc).

    -
    -
    - - - - - -
    -
    Note
    -
    -Coverage reporting could be useful for a team repository that hosts the final version but it is not that useful for your personal fork. -
    -
    -
    -

    Optionally, you can set up AppVeyor as a second CI (see UsingAppVeyor.adoc).

    -
    -
    - - - - - -
    -
    Note
    -
    -Having both Travis and AppVeyor ensures your App works on both Unix-based platforms and Windows-based platforms (Travis is Unix-based and AppVeyor is Windows-based) -
    -
    -
    -
    -

    1.4.4. Getting started with coding

    -
    -

    When you are ready to start coding,

    -
    -
    -
      -
    1. -

      Get some sense of the overall design by reading Architecture.

      -
    2. -
    3. -

      Take a look at Suggested Programming Tasks to Get Started.

      -
    4. -
    -
    -
    -
    -
    -
    -
    -

    2. Design

    -
    -
    -

    2.1. Architecture

    -
    -
    -Architecture -
    -
    Figure 1. Architecture Diagram
    -
    -
    -

    The Architecture Diagram given above explains the high-level design of the App. Given below is a quick overview of each component.

    -
    -
    - - - - - -
    -
    Tip
    -
    -The .pptx files used to create diagrams in this document can be found in the diagrams folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose Save as picture. -
    -
    -
    -

    Main has only one class called MainApp. It is responsible for,

    -
    -
    -
      -
    • -

      At app launch: Initializes the components in the correct sequence, and connects them up with each other.

      -
    • -
    • -

      At shut down: Shuts down the components and invokes cleanup method where necessary.

      -
    • -
    -
    -
    -

    Commons represents a collection of classes used by multiple other components. Two of those classes play important roles at the architecture level.

    -
    -
    -
      -
    • -

      EventsCenter : This class (written using Google’s Event Bus library) is used by components to communicate with other components using events (i.e. a form of Event Driven design)

      -
    • -
    • -

      LogsCenter : Used by many classes to write log messages to the App’s log file.

      -
    • -
    -
    -
    -

    The rest of the App consists of four components.

    -
    -
    -
      -
    • -

      UI: The UI of the App.

      -
    • -
    • -

      Logic: The command executor.

      -
    • -
    • -

      Model: Holds the data of the App in-memory.

      -
    • -
    • -

      Storage: Reads data from, and writes data to, the hard disk.

      -
    • -
    -
    -
    -

    Each of the four components

    -
    -
    -
      -
    • -

      Defines its API in an interface with the same name as the Component.

      -
    • -
    • -

      Exposes its functionality using a {Component Name}Manager class.

      -
    • -
    -
    -
    -

    For example, the Logic component (see the class diagram given below) defines it’s API in the Logic.java interface and exposes its functionality using the LogicManager.java class.

    -
    -
    -
    -LogicClassDiagram -
    -
    Figure 2. Class Diagram of the Logic Component
    -
    -

    Events-Driven nature of the design

    -
    -

    The Sequence Diagram below shows how the components interact for the scenario where the user issues the command delete 1.

    -
    -
    -
    -SDforDeletePerson -
    -
    Figure 3. Component interactions for delete 1 command (part 1)
    -
    -
    - - - - - -
    -
    Note
    -
    -Note how the Model simply raises a AddressBookChangedEvent when the Address Book data are changed, instead of asking the Storage to save the updates to the hard disk. -
    -
    -
    -

    The diagram below shows how the EventsCenter reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time.

    -
    -
    -
    -SDforDeletePersonEventHandling -
    -
    Figure 4. Component interactions for delete 1 command (part 2)
    -
    -
    - - - - - -
    -
    Note
    -
    -Note how the event is propagated through the EventsCenter to the Storage and UI without Model having to be coupled to either of them. This is an example of how this Event Driven approach helps us reduce direct coupling between components. -
    -
    -
    -

    The sections below give more details of each component.

    -
    -
    -
    -

    2.2. UI component

    -
    -
    -UiClassDiagram -
    -
    Figure 5. Structure of the UI Component
    -
    -
    -

    API : Ui.java

    -
    -
    -

    The UI consists of a MainWindow that is made up of parts e.g.CommandBox, ResultDisplay, PersonListPanel, StatusBarFooter, BrowserPanel etc. All these, including the MainWindow, inherit from the abstract UiPart class.

    -
    -
    -

    The UI component uses JavaFx UI framework. The layout of these UI parts are defined in matching .fxml files that are in the src/main/resources/view folder. For example, the layout of the MainWindow is specified in MainWindow.fxml

    -
    -
    -

    The UI component,

    -
    -
    -
      -
    • -

      Executes user commands using the Logic component.

      -
    • -
    • -

      Binds itself to some data in the Model so that the UI can auto-update when data in the Model change.

      -
    • -
    • -

      Responds to events raised from various parts of the App and updates the UI accordingly.

      -
    • -
    -
    -
    -
    -

    2.3. Logic component

    -
    -
    -LogicClassDiagram -
    -
    Figure 6. Structure of the Logic Component
    -
    -
    -

    API : -Logic.java

    -
    -
    -
      -
    1. -

      Logic uses the AddressBookParser class to parse the user command.

      -
    2. -
    3. -

      This results in a Command object which is executed by the LogicManager.

      -
    4. -
    5. -

      The command execution can affect the Model (e.g. adding a person) and/or raise events.

      -
    6. -
    7. -

      The result of the command execution is encapsulated as a CommandResult object which is passed back to the Ui.

      -
    8. -
    -
    -
    -

    Given below is the Sequence Diagram for interactions within the Logic component for the execute("delete 1") API call.

    -
    -
    -
    -DeletePersonSdForLogic -
    -
    Figure 7. Interactions Inside the Logic Component for the delete 1 Command
    -
    -
    -
    -

    2.4. Model component

    -
    -
    -ModelClassDiagram -
    -
    Figure 8. Structure of the Model Component
    -
    -
    -

    API : Model.java

    -
    -
    -

    The Model,

    -
    -
    -
      -
    • -

      stores a UserPref object that represents the user’s preferences.

      -
    • -
    • -

      stores the Address Book data.

      -
    • -
    • -

      exposes an unmodifiable ObservableList<Person> that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change.

      -
    • -
    • -

      does not depend on any of the other three components.

      -
    • -
    -
    -
    - - - - - -
    -
    Note
    -
    -As a more OOP model, we can store a Tag list in Address Book, which Person can reference. This would allow Address Book to only require one Tag object per unique Tag, instead of each Person needing their own Tag object. An example of how such a model may look like is given below.
    -
    -ModelClassBetterOopDiagram -
    -
    -
    -
    -

    2.5. Storage component

    -
    -
    -StorageClassDiagram -
    -
    Figure 9. Structure of the Storage Component
    -
    -
    -

    API : Storage.java

    -
    -
    -

    The Storage component,

    -
    -
    -
      -
    • -

      can save UserPref objects in json format and read it back.

      -
    • -
    • -

      can save the Address Book data in xml format and read it back.

      -
    • -
    -
    -
    -
    -

    2.6. Common classes

    -
    -

    Classes used by multiple components are in the seedu.addressbook.commons package.

    -
    -
    -
    -
    -
    -

    3. Implementation

    -
    -
    -

    This section describes some noteworthy details on how certain features are implemented.

    -
    -
    -

    3.1. Undo/Redo feature

    -
    -

    3.1.1. Current Implementation

    -
    -

    The undo/redo mechanism is facilitated by VersionedAddressBook. -It extends AddressBook with an undo/redo history, stored internally as an addressBookStateList and currentStatePointer. -Additionally, it implements the following operations:

    -
    -
    -
      -
    • -

      VersionedAddressBook#commit() — Saves the current address book state in its history.

      -
    • -
    • -

      VersionedAddressBook#undo() — Restores the previous address book state from its history.

      -
    • -
    • -

      VersionedAddressBook#redo() — Restores a previously undone address book state from its history.

      -
    • -
    -
    -
    -

    These operations are exposed in the Model interface as Model#commitAddressBook(), Model#undoAddressBook() and Model#redoAddressBook() respectively.

    -
    -
    -

    Given below is an example usage scenario and how the undo/redo mechanism behaves at each step.

    -
    -
    -

    Step 1. The user launches the application for the first time. The VersionedAddressBook will be initialized with the initial address book state, and the currentStatePointer pointing to that single address book state.

    -
    -
    -
    -UndoRedoStartingStateListDiagram -
    -
    -
    -

    Step 2. The user executes delete 5 command to delete the 5th person in the address book. The delete command calls Model#commitAddressBook(), causing the modified state of the address book after the delete 5 command executes to be saved in the addressBookStateList, and the currentStatePointer is shifted to the newly inserted address book state.

    -
    -
    -
    -UndoRedoNewCommand1StateListDiagram -
    -
    -
    -

    Step 3. The user executes add n/David …​ to add a new person. The add command also calls Model#commitAddressBook(), causing another modified address book state to be saved into the addressBookStateList.

    -
    -
    -
    -UndoRedoNewCommand2StateListDiagram -
    -
    -
    - - - - - -
    -
    Note
    -
    -If a command fails its execution, it will not call Model#commitAddressBook(), so the address book state will not be saved into the addressBookStateList. -
    -
    -
    -

    Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the undo command. The undo command will call Model#undoAddressBook(), which will shift the currentStatePointer once to the left, pointing it to the previous address book state, and restores the address book to that state.

    -
    -
    -
    -UndoRedoExecuteUndoStateListDiagram -
    -
    -
    - - - - - -
    -
    Note
    -
    -If the currentStatePointer is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The undo command uses Model#canUndoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo. -
    -
    -
    -

    The following sequence diagram shows how the undo operation works:

    -
    -
    -
    -UndoRedoSequenceDiagram -
    -
    -
    -

    The redo command does the opposite — it calls Model#redoAddressBook(), which shifts the currentStatePointer once to the right, pointing to the previously undone state, and restores the address book to that state.

    -
    -
    - - - - - -
    -
    Note
    -
    -If the currentStatePointer is at index addressBookStateList.size() - 1, pointing to the latest address book state, then there are no undone address book states to restore. The redo command uses Model#canRedoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. -
    -
    -
    -

    Step 5. The user then decides to execute the command list. Commands that do not modify the address book, such as list, will usually not call Model#commitAddressBook(), Model#undoAddressBook() or Model#redoAddressBook(). Thus, the addressBookStateList remains unchanged.

    -
    -
    -
    -UndoRedoNewCommand3StateListDiagram -
    -
    -
    -

    Step 6. The user executes clear, which calls Model#commitAddressBook(). Since the currentStatePointer is not pointing at the end of the addressBookStateList, all address book states after the currentStatePointer will be purged. We designed it this way because it no longer makes sense to redo the add n/David …​ command. This is the behavior that most modern desktop applications follow.

    -
    -
    -
    -UndoRedoNewCommand4StateListDiagram -
    -
    -
    -

    The following activity diagram summarizes what happens when a user executes a new command:

    -
    -
    -
    -UndoRedoActivityDiagram -
    -
    -
    -
    -

    3.1.2. Design Considerations

    -
    -
    Aspect: How undo & redo executes
    -
    -
      -
    • -

      Alternative 1 (current choice): Saves the entire address book.

      -
      -
        -
      • -

        Pros: Easy to implement.

        -
      • -
      • -

        Cons: May have performance issues in terms of memory usage.

        -
      • -
      -
      -
    • -
    • -

      Alternative 2: Individual command knows how to undo/redo by itself.

      -
      -
        -
      • -

        Pros: Will use less memory (e.g. for delete, just save the person being deleted).

        -
      • -
      • -

        Cons: We must ensure that the implementation of each individual command are correct.

        -
      • -
      -
      -
    • -
    -
    -
    -
    -
    Aspect: Data structure to support the undo/redo commands
    -
    -
      -
    • -

      Alternative 1 (current choice): Use a list to store the history of address book states.

      -
      -
        -
      • -

        Pros: Easy for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.

        -
      • -
      • -

        Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both HistoryManager and VersionedAddressBook.

        -
      • -
      -
      -
    • -
    • -

      Alternative 2: Use HistoryManager for undo/redo

      -
      -
        -
      • -

        Pros: We do not need to maintain a separate list, and just reuse what is already in the codebase.

        -
      • -
      • -

        Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as HistoryManager now needs to do two different things.

        -
      • -
      -
      -
    • -
    -
    -
    -
    -
    -
    -

    3.2. [Proposed] Data Encryption

    -
    -

    {Explain here how the data encryption feature will be implemented}

    -
    -
    -
    -

    3.3. Logging

    -
    -

    We are using java.util.logging package for logging. The LogsCenter class is used to manage the logging levels and logging destinations.

    -
    -
    -
      -
    • -

      The logging level can be controlled using the logLevel setting in the configuration file (See Configuration)

      -
    • -
    • -

      The Logger for a class can be obtained using LogsCenter.getLogger(Class) which will log messages according to the specified logging level

      -
    • -
    • -

      Currently log messages are output through: Console and to a .log file.

      -
    • -
    -
    -
    -

    Logging Levels

    -
    -
    -
      -
    • -

      SEVERE : Critical problem detected which may possibly cause the termination of the application

      -
    • -
    • -

      WARNING : Can continue, but with caution

      -
    • -
    • -

      INFO : Information showing the noteworthy actions by the App

      -
    • -
    • -

      FINE : Details that is not usually noteworthy but may be useful in debugging e.g. print the actual list instead of just its size

      -
    • -
    -
    -
    -
    -

    3.4. Configuration

    -
    -

    Certain properties of the application can be controlled (e.g App name, logging level) through the configuration file (default: config.json).

    -
    -
    -
    -
    -
    -

    4. Documentation

    -
    -
    -

    We use asciidoc for writing documentation.

    -
    -
    - - - - - -
    -
    Note
    -
    -We chose asciidoc over Markdown because asciidoc, although a bit more complex than Markdown, provides more flexibility in formatting. -
    -
    -
    -

    4.1. Editing Documentation

    -
    -

    See UsingGradle.adoc to learn how to render .adoc files locally to preview the end result of your edits. -Alternatively, you can download the AsciiDoc plugin for IntelliJ, which allows you to preview the changes you have made to your .adoc files in real-time.

    -
    -
    -
    -

    4.2. Publishing Documentation

    -
    -

    See UsingTravis.adoc to learn how to deploy GitHub Pages using Travis.

    -
    -
    -
    -

    4.3. Converting Documentation to PDF format

    -
    -

    We use Google Chrome for converting documentation to PDF format, as Chrome’s PDF engine preserves hyperlinks used in webpages.

    -
    -
    -

    Here are the steps to convert the project documentation files to PDF format.

    -
    -
    -
      -
    1. -

      Follow the instructions in UsingGradle.adoc to convert the AsciiDoc files in the docs/ directory to HTML format.

      -
    2. -
    3. -

      Go to your generated HTML files in the build/docs folder, right click on them and select Open withGoogle Chrome.

      -
    4. -
    5. -

      Within Chrome, click on the Print option in Chrome’s menu.

      -
    6. -
    7. -

      Set the destination to Save as PDF, then click Save to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.

      -
    8. -
    -
    -
    -
    -chrome save as pdf -
    -
    Figure 10. Saving documentation as PDF files in Chrome
    -
    -
    -
    -

    4.4. Site-wide Documentation Settings

    -
    -

    The build.gradle file specifies some project-specific asciidoc attributes which affects how all documentation files within this project are rendered.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Attributes left unset in the build.gradle file will use their default value, if any. -
    -
    - - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    Table 1. List of site-wide attributes
    Attribute nameDescriptionDefault value

    site-name

    -

    The name of the website. -If set, the name will be displayed near the top of the page.

    -

    not set

    site-githuburl

    -

    URL to the site’s repository on GitHub. -Setting this will add a "View on GitHub" link in the navigation bar.

    -

    not set

    site-seedu

    -

    Define this attribute if the project is an official SE-EDU project. -This will render the SE-EDU navigation bar at the top of the page, and add some SE-EDU-specific navigation items.

    -

    not set

    -
    -
    -

    4.5. Per-file Documentation Settings

    -
    -

    Each .adoc file may also specify some file-specific asciidoc attributes which affects how the file is rendered.

    -
    -
    -

    Asciidoctor’s built-in attributes may be specified and used as well.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Attributes left unset in .adoc files will use their default value, if any. -
    -
    - - ----- - - - - - - - - - - - - - - - - - - - -
    Table 2. List of per-file attributes, excluding Asciidoctor’s built-in attributes
    Attribute nameDescriptionDefault value

    site-section

    -

    Site section that the document belongs to. -This will cause the associated item in the navigation bar to be highlighted. -One of: UserGuide, DeveloperGuide, LearningOutcomes*, AboutUs, ContactUs

    -
    -
    -

    * Official SE-EDU projects only

    -

    not set

    no-site-header

    -

    Set this attribute to remove the site navigation bar.

    -

    not set

    -
    -
    -

    4.6. Site Template

    -
    -

    The files in docs/stylesheets are the CSS stylesheets of the site. -You can modify them to change some properties of the site’s design.

    -
    -
    -

    The files in docs/templates controls the rendering of .adoc files into HTML5. -These template files are written in a mixture of Ruby and Slim.

    -
    -
    - - - - - -
    -
    Warning
    -
    -
    -

    Modifying the template files in docs/templates requires some knowledge and experience with Ruby and Asciidoctor’s API. -You should only modify them if you need greater control over the site’s layout than what stylesheets can provide. -The SE-EDU team does not provide support for modified template files.

    -
    -
    -
    -
    -
    -
    -
    -

    5. Testing

    -
    -
    -

    5.1. Running Tests

    -
    -

    There are three ways to run tests.

    -
    -
    - - - - - -
    -
    Tip
    -
    -The most reliable way to run tests is the 3rd one. The first two methods might fail some GUI tests due to platform/resolution-specific idiosyncrasies. -
    -
    -
    -

    Method 1: Using IntelliJ JUnit test runner

    -
    -
    -
      -
    • -

      To run all tests, right-click on the src/test/java folder and choose Run 'All Tests'

      -
    • -
    • -

      To run a subset of tests, you can right-click on a test package, test class, or a test and choose Run 'ABC'

      -
    • -
    -
    -
    -

    Method 2: Using Gradle

    -
    -
    -
      -
    • -

      Open a console and run the command gradlew clean allTests (Mac/Linux: ./gradlew clean allTests)

      -
    • -
    -
    -
    - - - - - -
    -
    Note
    -
    -See UsingGradle.adoc for more info on how to run tests using Gradle. -
    -
    -
    -

    Method 3: Using Gradle (headless)

    -
    -
    -

    Thanks to the TestFX library we use, our GUI tests can be run in the headless mode. In the headless mode, GUI tests do not show up on the screen. That means the developer can do other things on the Computer while the tests are running.

    -
    -
    -

    To run tests in headless mode, open a console and run the command gradlew clean headless allTests (Mac/Linux: ./gradlew clean headless allTests)

    -
    -
    -
    -

    5.2. Types of tests

    -
    -

    We have two types of tests:

    -
    -
    -
      -
    1. -

      GUI Tests - These are tests involving the GUI. They include,

      -
      -
        -
      1. -

        System Tests that test the entire App by simulating user actions on the GUI. These are in the systemtests package.

        -
      2. -
      3. -

        Unit tests that test the individual components. These are in seedu.address.ui package.

        -
      4. -
      -
      -
    2. -
    3. -

      Non-GUI Tests - These are tests not involving the GUI. They include,

      -
      -
        -
      1. -

        Unit tests targeting the lowest level methods/classes.
        -e.g. seedu.address.commons.StringUtilTest

        -
      2. -
      3. -

        Integration tests that are checking the integration of multiple code units (those code units are assumed to be working).
        -e.g. seedu.address.storage.StorageManagerTest

        -
      4. -
      5. -

        Hybrids of unit and integration tests. These test are checking multiple code units as well as how the are connected together.
        -e.g. seedu.address.logic.LogicManagerTest

        -
      6. -
      -
      -
    4. -
    -
    -
    -
    -

    5.3. Troubleshooting Testing

    -
    -

    Problem: HelpWindowTest fails with a NullPointerException.

    -
    -
    -
      -
    • -

      Reason: One of its dependencies, HelpWindow.html in src/main/resources/docs is missing.

      -
    • -
    • -

      Solution: Execute Gradle task processResources.

      -
    • -
    -
    -
    -
    -
    -
    -

    6. Dev Ops

    -
    -
    -

    6.1. Build Automation

    -
    -

    See UsingGradle.adoc to learn how to use Gradle for build automation.

    -
    -
    -
    -

    6.2. Continuous Integration

    -
    -

    We use Travis CI and AppVeyor to perform Continuous Integration on our projects. See UsingTravis.adoc and UsingAppVeyor.adoc for more details.

    -
    -
    -
    -

    6.3. Coverage Reporting

    -
    -

    We use Coveralls to track the code coverage of our projects. See UsingCoveralls.adoc for more details.

    -
    -
    -
    -

    6.4. Documentation Previews

    -
    -

    When a pull request has changes to asciidoc files, you can use Netlify to see a preview of how the HTML version of those asciidoc files will look like when the pull request is merged. See UsingNetlify.adoc for more details.

    -
    -
    -
    -

    6.5. Making a Release

    -
    -

    Here are the steps to create a new release.

    -
    -
    -
      -
    1. -

      Update the version number in MainApp.java.

      -
    2. -
    3. -

      Generate a JAR file using Gradle.

      -
    4. -
    5. -

      Tag the repo with the version number. e.g. v0.1

      -
    6. -
    7. -

      Create a new release using GitHub and upload the JAR file you created.

      -
    8. -
    -
    -
    -
    -

    6.6. Managing Dependencies

    -
    -

    A project often depends on third-party libraries. For example, Address Book depends on the Jackson library for XML parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives.
    -a. Include those libraries in the repo (this bloats the repo size)
    -b. Require developers to download those libraries manually (this creates extra work for developers)

    -
    -
    -
    -
    -
    -

    Appendix A: Suggested Programming Tasks to Get Started

    -
    -
    -

    Suggested path for new programmers:

    -
    -
    -
      -
    1. -

      First, add small local-impact (i.e. the impact of the change does not go beyond the component) enhancements to one component at a time. Some suggestions are given in Improving each component.

      -
    2. -
    3. -

      Next, add a feature that touches multiple components to learn how to implement an end-to-end feature across all components. Creating a new command: remark explains how to go about adding such a feature.

      -
    4. -
    -
    -
    -

    A.1. Improving each component

    -
    -

    Each individual exercise in this section is component-based (i.e. you would not need to modify the other components to get it to work).

    -
    -

    Logic component

    -
    -

    Scenario: You are in charge of logic. During dog-fooding, your team realize that it is troublesome for the user to type the whole command in order to execute a command. Your team devise some strategies to help cut down the amount of typing necessary, and one of the suggestions was to implement aliases for the command words. Your job is to implement such aliases.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Logic component before attempting to modify the Logic component. -
    -
    -
    -
      -
    1. -

      Add a shorthand equivalent alias for each of the individual commands. For example, besides typing clear, the user can also type c to remove all persons in the list.

      -
      -
      -
      -
        -
      • -

        Hints

        -
        - -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          Modify the switch statement in AddressBookParser#parseCommand(String) such that both the proper command word and alias can be used to execute the same intended command.

          -
        • -
        • -

          Add new tests for each of the aliases that you have added.

          -
        • -
        • -

          Update the user guide to document the new aliases.

          -
        • -
        • -

          See this PR for the full solution.

          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    -
    -

    Model component

    -
    -

    Scenario: You are in charge of model. One day, the logic-in-charge approaches you for help. He wants to implement a command such that the user is able to remove a particular tag from everyone in the address book, but the model API does not support such a functionality at the moment. Your job is to implement an API method, so that your teammate can use your API to implement his command.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Model component before attempting to modify the Model component. -
    -
    -
    -
      -
    1. -

      Add a removeTag(Tag) method. The specified tag will be removed from everyone in the address book.

      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          The Model and the AddressBook API need to be updated.

          -
        • -
        • -

          Think about how you can use SLAP to design the method. Where should we place the main logic of deleting tags?

          -
        • -
        • -

          Find out which of the existing API methods in AddressBook and Person classes can be used to implement the tag removal logic. AddressBook allows you to update a person, and Person allows you to update the tags.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          Implement a removeTag(Tag) method in AddressBook. Loop through each person, and remove the tag from each person.

          -
        • -
        • -

          Add a new API method deleteTag(Tag) in ModelManager. Your ModelManager should call AddressBook#removeTag(Tag).

          -
        • -
        • -

          Add new tests for each of the new public methods that you have added.

          -
        • -
        • -

          See this PR for the full solution.

          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    -
    -

    Ui component

    -
    -

    Scenario: You are in charge of ui. During a beta testing session, your team is observing how the users use your address book application. You realize that one of the users occasionally tries to delete non-existent tags from a contact, because the tags all look the same visually, and the user got confused. Another user made a typing mistake in his command, but did not realize he had done so because the error message wasn’t prominent enough. A third user keeps scrolling down the list, because he keeps forgetting the index of the last person in the list. Your job is to implement improvements to the UI to solve all these problems.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at UI component before attempting to modify the UI component. -
    -
    -
    -
      -
    1. -

      Use different colors for different tags inside person cards. For example, friends tags can be all in brown, and colleagues tags can be all in yellow.

      -
      -

      Before

      -
      -
      -
      -getting started ui tag before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui tag after -
      -
      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          The tag labels are created inside the PersonCard constructor (new Label(tag.tagName)). JavaFX’s Label class allows you to modify the style of each Label, such as changing its color.

          -
        • -
        • -

          Use the .css attribute -fx-background-color to add a color.

          -
        • -
        • -

          You may wish to modify DarkTheme.css to include some pre-defined colors using css, especially if you have experience with web-based css.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          You can modify the existing test methods for PersonCard 's to include testing the tag’s color as well.

          -
        • -
        • -

          See this PR for the full solution.

          -
          -
            -
          • -

            The PR uses the hash code of the tag names to generate a color. This is deliberately designed to ensure consistent colors each time the application runs. You may wish to expand on this design to include additional features, such as allowing users to set their own tag colors, and directly saving the colors to storage, so that tags retain their colors even if the hash code algorithm changes.

            -
          • -
          -
          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    3. -

      Modify NewResultAvailableEvent such that ResultDisplay can show a different style on error (currently it shows the same regardless of errors).

      -
      -

      Before

      -
      -
      -
      -getting started ui result before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui result after -
      -
      -
      -
      -
      - -
      -
      -
      -
    4. -
    5. -

      Modify the StatusBarFooter to show the total number of people in the address book.

      -
      -

      Before

      -
      -
      -
      -getting started ui status before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui status after -
      -
      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          StatusBarFooter.fxml will need a new StatusBar. Be sure to set the GridPane.columnIndex properly for each StatusBar to avoid misalignment!

          -
        • -
        • -

          StatusBarFooter needs to initialize the status bar on application start, and to update it accordingly whenever the address book is updated.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        - -
        -
      • -
      -
      -
      -
      -
    6. -
    -
    -

    Storage component

    -
    -

    Scenario: You are in charge of storage. For your next project milestone, your team plans to implement a new feature of saving the address book to the cloud. However, the current implementation of the application constantly saves the address book after the execution of each command, which is not ideal if the user is working on limited internet connection. Your team decided that the application should instead save the changes to a temporary local backup file first, and only upload to the cloud after the user closes the application. Your job is to implement a backup API for the address book storage.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Storage component before attempting to modify the Storage component. -
    -
    -
    -
      -
    1. -

      Add a new method backupAddressBook(ReadOnlyAddressBook), so that the address book can be saved in a fixed temporary location.

      -
      -
      -
      - -
      -
      -
      -
    2. -
    -
    -
    -
    -

    A.2. Creating a new command: remark

    -
    -

    By creating this command, you will get a chance to learn how to implement a feature end-to-end, touching all major components of the app.

    -
    -
    -

    Scenario: You are a software maintainer for addressbook, as the former developer team has moved on to new projects. The current users of your application have a list of new feature requests that they hope the software will eventually have. The most popular request is to allow adding additional comments/notes about a particular contact, by providing a flexible remark field for each contact, rather than relying on tags alone. After designing the specification for the remark command, you are convinced that this feature is worth implementing. Your job is to implement the remark command.

    -
    -
    -

    A.2.1. Description

    -
    -

    Edits the remark for a person specified in the INDEX.
    -Format: remark INDEX r/[REMARK]

    -
    -
    -

    Examples:

    -
    -
    -
      -
    • -

      remark 1 r/Likes to drink coffee.
      -Edits the remark for the first person to Likes to drink coffee.

      -
    • -
    • -

      remark 1 r/
      -Removes the remark for the first person.

      -
    • -
    -
    -
    -
    -

    A.2.2. Step-by-step Instructions

    -
    -
    [Step 1] Logic: Teach the app to accept 'remark' which does nothing
    -
    -

    Let’s start by teaching the application how to parse a remark command. We will add the logic of remark later.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a RemarkCommand that extends Command. Upon execution, it should just throw an Exception.

      -
    2. -
    3. -

      Modify AddressBookParser to accept a RemarkCommand.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add RemarkCommandTest that tests that execute() throws an Exception.

      -
    2. -
    3. -

      Add new test method to AddressBookParserTest, which tests that typing "remark" returns an instance of RemarkCommand.

      -
    4. -
    -
    -
    -
    -
    [Step 2] Logic: Teach the app to accept 'remark' arguments
    -
    -

    Let’s teach the application to parse arguments that our remark command will accept. E.g. 1 r/Likes to drink coffee.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Modify RemarkCommand to take in an Index and String and print those two parameters as the error message.

      -
    2. -
    3. -

      Add RemarkCommandParser that knows how to parse two arguments, one index and one with prefix 'r/'.

      -
    4. -
    5. -

      Modify AddressBookParser to use the newly implemented RemarkCommandParser.

      -
    6. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify RemarkCommandTest to test the RemarkCommand#equals() method.

      -
    2. -
    3. -

      Add RemarkCommandParserTest that tests different boundary values -for RemarkCommandParser.

      -
    4. -
    5. -

      Modify AddressBookParserTest to test that the correct command is generated according to the user input.

      -
    6. -
    -
    -
    -
    -
    [Step 3] Ui: Add a placeholder for remark in PersonCard
    -
    -

    Let’s add a placeholder on all our PersonCard s to display a remark for each person later.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a Label with any random text inside PersonListCard.fxml.

      -
    2. -
    3. -

      Add FXML annotation in PersonCard to tie the variable to the actual label.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify PersonCardHandle so that future tests can read the contents of the remark label.

      -
    2. -
    -
    -
    -
    -
    [Step 4] Model: Add Remark class
    -
    -

    We have to properly encapsulate the remark in our Person class. Instead of just using a String, let’s follow the conventional class structure that the codebase already uses by adding a Remark class.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add Remark to model component (you can copy from Address, remove the regex and change the names accordingly).

      -
    2. -
    3. -

      Modify RemarkCommand to now take in a Remark instead of a String.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add test for Remark, to test the Remark#equals() method.

      -
    2. -
    -
    -
    -
    -
    [Step 5] Model: Modify Person to support a Remark field
    -
    -

    Now we have the Remark class, we need to actually use it inside Person.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add getRemark() in Person.

      -
    2. -
    3. -

      You may assume that the user will not be able to use the add and edit commands to modify the remarks field (i.e. the person will be created without a remark).

      -
    4. -
    5. -

      Modify SampleDataUtil to add remarks for the sample data (delete your addressBook.xml so that the application will load the sample data when you launch it.)

      -
    6. -
    -
    -
    -
    -
    [Step 6] Storage: Add Remark field to XmlAdaptedPerson class
    -
    -

    We now have Remark s for Person s, but they will be gone when we exit the application. Let’s modify XmlAdaptedPerson to include a Remark field so that it will be saved.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a new Xml field for Remark.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Fix invalidAndValidPersonAddressBook.xml, typicalPersonsAddressBook.xml, validAddressBook.xml etc., such that the XML tests will not fail due to a missing <remark> element.

      -
    2. -
    -
    -
    -
    -
    [Step 6b] Test: Add withRemark() for PersonBuilder
    -
    -

    Since Person can now have a Remark, we should add a helper method to PersonBuilder, so that users are able to create remarks when building a Person.

    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add a new method withRemark() for PersonBuilder. This method will create a new Remark for the person that it is currently building.

      -
    2. -
    3. -

      Try and use the method on any sample Person in TypicalPersons.

      -
    4. -
    -
    -
    -
    -
    [Step 7] Ui: Connect Remark field to PersonCard
    -
    -

    Our remark label in PersonCard is still a placeholder. Let’s bring it to life by binding it with the actual remark field.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Modify PersonCard's constructor to bind the Remark field to the Person 's remark.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify GuiTestAssert#assertCardDisplaysPerson(…​) so that it will compare the now-functioning remark label.

      -
    2. -
    -
    -
    -
    -
    [Step 8] Logic: Implement RemarkCommand#execute() logic
    -
    -

    We now have everything set up…​ but we still can’t modify the remarks. Let’s finish it up by adding in actual logic for our remark command.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Replace the logic in RemarkCommand#execute() (that currently just throws an Exception), with the actual logic to modify the remarks of a person.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Update RemarkCommandTest to test that the execute() logic works.

      -
    2. -
    -
    -
    -
    -
    -

    A.2.3. Full Solution

    -
    -

    See this PR for the step-by-step solution.

    -
    -
    -
    -
    -
    -
    -

    Appendix B: Product Scope

    -
    -
    -

    Target user profile:

    -
    -
    -
      -
    • -

      has a need to manage a significant number of volunteers and social welfare events

      -
    • -
    • -

      prefer desktop apps over other types

      -
    • -
    • -

      can type fast

      -
    • -
    • -

      prefers typing over mouse input

      -
    • -
    • -

      is reasonably comfortable using CLI apps

      -
    • -
    -
    -
    -

    Value proposition: manage volunteers and events faster than a typical mouse/GUI driven app, and derive insights from them

    -
    -
    -
    -
    -

    Appendix C: User Stories

    -
    -
    -

    Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

    -
    - ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PriorityAs a …​I want to …​So that I can…​

    * * *

    new manager

    see usage instructions

    refer to instructions when I forget how to use the App

    * * *

    manager

    register a new volunteer

    begin tracking their volunteer work & hours

    * * *

    manager

    view a volunteer’s details

    track their volunteer work & hours

    * * *

    manager

    update volunteer details

    keep their details updated for administrative & other purposes

    * *

    manager

    archive volunteer details

    stash away unnecessary volunteer records, yet have the option of restoring them if needed

    * *

    manager

    restore volunteer record

    restore volunteer details that were archived

    * * *

    manager

    delete volunteer record

    permanently remove volunteer record from database

    * *

    manager

    import volunteer record details

    add multiple volunteer data into the database

    *

    manager

    export volunteer record details

    have a backup of the volunteer records

    * * *

    manager

    create new event

    have a record of the event details

    * * *

    manager

    update event details

    ensure that event details are kept up to date

    * * *

    manager

    view event details

    verify the details of the event

    * * *

    manager

    delete event details

    remove the event from the list if event details were entered wrongly or cancelled

    * *

    manager

    archive event details

    stash away event records yet have the option of restoring them

    * *

    manager

    restore event details

    restore event details that were archived

    * *

    manager

    import event data

    add multiple events at once

    *

    manager

    export event data

    have a backup of event details

    * * *

    manager

    add volunteer hours to volunteer profiles

    keep track of the number of hours spent by the volunteer volunteering

    * * *

    manager

    edit volunteer hours in volunteer profiles

    maintain accuracy of information pertaining to volunteer work

    *

    manager

    export certification document from volunteers’ data

    provide volunteers with official acknowledgement of service rendered to organization

    * *

    manager

    view spread of volunteers across events

    determine which are the more popular events

    * *

    manager

    view demographics of volunteers

    know what my volunteer profiles are like

    * *

    manager

    auto-complete commands

    execute commands more efficiently

    -
    -

    {To be updated and expanded}

    -
    -
    -
    -
    -

    Appendix D: Use Cases

    -
    -
    -

    (For all use cases below, the System is the AddressBook and the Actor is the user, unless specified otherwise)

    -
    - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Use Cases
    -

    UC01: Register new volunteer
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):

    -
    -
    -
      -
    • -

      New user will be created only if data entered is valid and there is sufficient memory space to store the new user

      -
    • -
    -
    -
    -

    MSS:

    -
    -
    -
      -
    1. -

      Admin chooses to add a new volunteer

      -
    2. -
    3. -

      Application requests for details of the volunteer

      -
    4. -
    5. -

      Admin enters and submits the requested details

      -
    6. -
    7. -

      Application creates the volunteer and notifies Admin of success
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      3a. The entered data is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the entered data is invalid
        -Use case resumes from step 3.

        -
      • -
      -
      -
    • -
    -
    -

    UC02: View volunteer details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin requests to view a volunteer profile at a specific index in the list

      -
    6. -
    7. -

      Application displays the volunteer profile
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC03: Update volunteer details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin enters the index and updated details of the volunteer to be changed

      -
    6. -
    7. -

      Application updates the volunteer details and notifies of the successful update
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    • -

      3b. The given details are invalid

      -
      -
        -
      • -

        3b1. Application shows an error message that the details given are invalid
        -Use case resumes at step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC04: Delete volunteer record
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):

    -
    -
    -
      -
    • -

      Volunteer record will be deleted only if index specified is valid

      -
    • -
    -
    -
    -

    MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin requests to delete a volunteer at a specific index in the list

      -
    6. -
    7. -

      Application deletes the volunteer

      -
    8. -
    9. -

      Application displays a successful deletion message to Admin
      -Use case ends.

      -
    10. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC05: Create new event
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to create a new event

      -
    2. -
    3. -

      Application requests for details of the event

      -
    4. -
    5. -

      Admin enters details of the event to be created

      -
    6. -
    7. -

      Application creates the event and shows successful creation message
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The given details is invalid

      -
      -
        -
      • -

        2a1. Application shows an error message that given details is invalid
        -Use case resumes from step 1.

        -
      • -
      -
      -
    • -
    -
    -

    UC06: Update event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin enters the index and updated details of the event to be changed

      -
    6. -
    7. -

      Application updates the event details and notifies of the successful update
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The event list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    • -

      3b. The given details are invalid

      -
      -
        -
      • -

        3b1. Application shows an error message that the details given are invalid
        -Use case resumes at step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC07: View event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin requests to view event details at a specific index in the list

      -
    6. -
    7. -

      Application displays the details of the event
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The event list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC08: Delete event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin requests to delete event details at a specific index in the list

      -
    6. -
    7. -

      Application requests for confirmation

      -
    8. -
    9. -

      Admin confirms the deletion

      -
    10. -
    11. -

      Application deletes the event details

      -
    12. -
    13. -

      Application displays a successful deletion message to Admin
      -Use case ends.

      -
    14. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The events list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC09: Add volunteer hours to volunteer profile
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Application displays the volunteer profile UC02

      -
    2. -
    3. -

      Admin requests to list all volunteer hours of the volunteer

      -
    4. -
    5. -

      Application displays a list of all volunteer hours of the volunteer

      -
    6. -
    7. -

      Admin chooses to add volunteer hours

      -
    8. -
    9. -

      Application requests for details of the volunteer hours

      -
    10. -
    11. -

      Admin enters the requested details

      -
    12. -
    13. -

      Application requests for confirmation

      -
    14. -
    15. -

      Admin confirms the addition

      -
    16. -
    17. -

      Application adds the volunteer hours and notifies Admin of success
      -Use case ends.

      -
    18. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer hours list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer hours list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      8a. Application detects an error in the entered data

      -
      -
        -
      • -

        8a1. Application requests for the correct data

        -
      • -
      • -

        8a2. Admin enters new data

        -
      • -
      • -

        Steps 8a1-8a2 are repeated until the data entered is valid
        -Use case resumes from step 9.

        -
      • -
      -
      -
    • -
    -
    -

    UC10: Edit volunteer hours in volunteer profile
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Application displays the volunteer profile UC02

      -
    2. -
    3. -

      Admin requests to list all volunteer hours of the volunteer

      -
    4. -
    5. -

      Application displays a list of all volunteer hours of the volunteer

      -
    6. -
    7. -

      Admin enters the index and the details of the volunteer hours to be changed

      -
    8. -
    9. -

      Application updates the volunteer hours and notifies Admin of success
      -Use case ends.

      -
    10. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer hours list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer hours list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      4a. The given index is invalid

      -
      -
        -
      • -

        Application shows an error message that the index given is invalid
        -Use case resumes from step 5.

        -
      • -
      -
      -
    • -
    • -

      4b. The given details are invalid

      -
      -
        -
      • -

        4b1. Application shows an error message that the details given is invalid
        -Use case resumes from step 5.

        -
      • -
      -
      -
    • -
    -
    -
    -

    {More to be added}

    -
    -
    -
    -
    -

    Appendix E: Non Functional Requirements

    -
    -
    -
      -
    • -

      Reasonable response time (2-3s)

      -
    • -
    • -

      Backward compatibility by being able to transfer data from older versions of the application when updating each version

      -
    • -
    • -

      Should work on any mainstream OS as long as it has Java 9 or higher installed.

      -
    • -
    • -

      Files containing volunteer data should be encrypted

      -
    • -
    • -

      A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

      -
    • -
    -
    -
    -

    {More to be added}

    -
    -
    -
    -
    -

    Appendix F: Glossary

    -
    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TermExplanation

    Volunteer Manager

    Staff working for the organization, who handles administrative issues pertaining to volunteer and event management

    Volunteer

    A person who has signed up and has a profile with the organization

    Admin

    Our application’s intended target user (Most likely the volunteer manager)

    Application

    Refers to our system

    UCXX

    Use case with XX being the use case ID

    Mainstream OS

    Windows, Linux, Unix, OS-X

    -
    -
    -
    -

    Appendix G: Product Survey

    -
    -
    -

    Product Name

    -
    -
    -

    Author: …​

    -
    -
    -

    Pros:

    -
    -
    -
      -
    • -

      …​

      -
    • -
    • -

      …​

      -
    • -
    -
    -
    -

    Cons:

    -
    -
    -
      -
    • -

      …​

      -
    • -
    • -

      …​

      -
    • -
    -
    -
    -
    -
    -

    Appendix H: Instructions for Manual Testing

    -
    -
    -

    Given below are instructions to test the app manually.

    -
    -
    - - - - - -
    -
    Note
    -
    -These instructions only provide a starting point for testers to work on; testers are expected to do more exploratory testing. -
    -
    -
    -

    H.1. Launch and Shutdown

    -
    -
      -
    1. -

      Initial launch

      -
      -
        -
      1. -

        Download the jar file and copy into an empty folder

        -
      2. -
      3. -

        Double-click the jar file
        -Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.

        -
      4. -
      -
      -
    2. -
    3. -

      Saving window preferences

      -
      -
        -
      1. -

        Resize the window to an optimum size. Move the window to a different location. Close the window.

        -
      2. -
      3. -

        Re-launch the app by double-clicking the jar file.
        -Expected: The most recent window size and location is retained.

        -
      4. -
      -
      -
    4. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -

    H.2. Deleting a person

    -
    -
      -
    1. -

      Deleting a person while all persons are listed

      -
      -
        -
      1. -

        Prerequisites: List all persons using the list command. Multiple persons in the list.

        -
      2. -
      3. -

        Test case: delete 1
        -Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.

        -
      4. -
      5. -

        Test case: delete 0
        -Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.

        -
      6. -
      7. -

        Other incorrect delete commands to try: delete, delete x (where x is larger than the list size) {give more}
        -Expected: Similar to previous.

        -
      8. -
      -
      -
    2. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -

    H.3. Saving data

    -
    -
      -
    1. -

      Dealing with missing/corrupted data files

      -
      -
        -
      1. -

        {explain how to simulate a missing/corrupted file and the expected behavior}

        -
      2. -
      -
      -
    2. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -
    -
    - - - \ No newline at end of file From 0ecaf44c98beee4e42899ae4fe8b3d94a42b0660 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 15:18:27 +0800 Subject: [PATCH 107/655] Manage event command added --- .../seedu/address/commons/core/Messages.java | 7 +++ .../address/logic/commands/ManageCommand.java | 58 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 8 ++- .../logic/parser/ManageCommandParser.java | 29 ++++++++++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/address/logic/commands/ManageCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/ManageCommandParser.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e4695..dd6f2bcc37b4 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -5,9 +5,16 @@ */ public class Messages { + // General messages public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; + + // Volunteers messages public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; + // Event messages + public static final String MESSAGE_INVALID_EVENT_DISPLAYED_INDEX = "The event index provided is invalid"; + + // Record messages } diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java new file mode 100644 index 000000000000..55fedcadd9ea --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -0,0 +1,58 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import seedu.address.commons.core.EventsCenter; +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.commons.events.ui.JumpToListRequestEvent; +import seedu.address.logic.CommandHistory; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.event.Event; +import seedu.address.model.person.Person; + +/** + * Selects a person identified using it's displayed index from the address book. + */ +public class ManageCommand extends Command { + + public static final String COMMAND_WORD = "manage"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Manages the event identified by the index number used in the displayed event list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_MANAGE_EVENT_SUCCESS = "Selected Event to Manage: %1$s"; + + private final Index targetIndex; + + public ManageCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model, CommandHistory history) throws CommandException { + requireNonNull(model); + + List filteredEventList = model.getFilteredEventList(); + + if (targetIndex.getZeroBased() >= filteredEventList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_EVENT_DISPLAYED_INDEX); + } + + EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); + return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); + + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof ManageCommand // instanceof handles nulls + && targetIndex.equals(((ManageCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 868cba4d2f8f..2a7f4d515af3 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -16,6 +16,7 @@ import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.HistoryCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.ManageCommand; import seedu.address.logic.commands.RedoCommand; import seedu.address.logic.commands.SelectCommand; import seedu.address.logic.commands.SwitchCommand; @@ -98,7 +99,11 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce case ListCommand.COMMAND_WORD: return new ListCommand(); - default: + + case ManageCommand.COMMAND_WORD: + return new ManageCommandParser().parse(arguments); + + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } @@ -127,6 +132,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce case ListCommand.COMMAND_WORD: return new ListCommand(); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/ManageCommandParser.java b/src/main/java/seedu/address/logic/parser/ManageCommandParser.java new file mode 100644 index 000000000000..ec133bfc103b --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/ManageCommandParser.java @@ -0,0 +1,29 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.ManageCommand; +import seedu.address.logic.commands.SelectCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new SelectCommand object + */ +public class ManageCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the SelectCommand + * and returns an ManageCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public ManageCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new ManageCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, SelectCommand.MESSAGE_USAGE), pe); + } + } +} From fdb58dfcf9e5bde0cadf5db6aa7918b27fbeb769 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 15:25:00 +0800 Subject: [PATCH 108/655] ModelManager.java: Changed starting context to volunteers --- src/main/java/seedu/address/model/ModelManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 2c574877599a..fd2b6cd81b7e 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -41,7 +41,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, UserPrefs userPrefs) { versionedAddressBook = new VersionedAddressBook(addressBook); - context = new Context(Context.EVENT_CONTEXT_ID, Context.EVENT_CONTEXT_NAME); + context = new Context(Context.VOLUNTEER_CONTEXT_ID, Context.VOLUNTEER_CONTEXT_NAME); filteredPersons = new FilteredList<>(versionedAddressBook.getPersonList()); filteredEvents = new FilteredList<>(versionedAddressBook.getEventList()); From 77533f288535245d78448de11a47d5d9756f03b7 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 15:33:23 +0800 Subject: [PATCH 109/655] AddressBookParser.java: Fixed CheckStyle --- src/main/java/seedu/address/logic/parser/AddressBookParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 2a7f4d515af3..4710cbe80cca 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -103,7 +103,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce case ManageCommand.COMMAND_WORD: return new ManageCommandParser().parse(arguments); - default: + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } From bd890fc6fc3ac91cb9e468acf3100c50c6581d7a Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 15:47:48 +0800 Subject: [PATCH 110/655] ManageCommand.java: Updated manage command --- .../java/seedu/address/logic/commands/ManageCommand.java | 9 ++++++--- src/main/java/seedu/address/model/Model.java | 5 +++++ src/main/java/seedu/address/model/ModelManager.java | 5 +++++ src/main/java/seedu/address/ui/MainWindow.java | 4 +++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 55fedcadd9ea..989433c38311 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -7,12 +7,11 @@ import seedu.address.commons.core.EventsCenter; import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.commons.events.ui.JumpToListRequestEvent; +import seedu.address.commons.events.ui.ContextChangeEvent; import seedu.address.logic.CommandHistory; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.event.Event; -import seedu.address.model.person.Person; /** * Selects a person identified using it's displayed index from the address book. @@ -44,7 +43,11 @@ public CommandResult execute(Model model, CommandHistory history) throws Command throw new CommandException(Messages.MESSAGE_INVALID_EVENT_DISPLAYED_INDEX); } - EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); + model.switchToRecordContext(); + + // TO_UPDATE + // EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); + EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); } diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 315e606a02eb..180c2360a959 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -39,6 +39,11 @@ public interface Model { */ void setCurrentContext(String contextId); + /*** + * Switches to record context + */ + void switchToRecordContext(); + /*** * Returns the context Id */ diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index fd2b6cd81b7e..babcdccd6f82 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -77,6 +77,11 @@ public void setCurrentContext(String contextId) { context.setContextValue(contextId); } + @Override + public void switchToRecordContext() { + context.switchToRecordContext(); + } + @Override public String getContextId() { return context.getContextId(); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 26782f869ae3..309c15f63603 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -199,7 +199,9 @@ private void handleContextChange(String contextId) { listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); } else if (contextId.equals(RECORD_CONTEXT_ID)) { - // to be implemented + // TO_UPDATE: Shows all available volunteers for event + listPanelPlaceholder.getChildren().clear(); + listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); } } From bcf3238995f35e56d556f7d759583f4976ed1b20 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 15:54:01 +0800 Subject: [PATCH 111/655] AddCommandTest.java: Implemented missing method --- .../java/seedu/address/logic/commands/AddCommandTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index d2a1d6df0a82..58090545ce8c 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -108,6 +108,11 @@ public void setCurrentContext(String contextId) { throw new AssertionError("This method should not be called."); } + @Override + public void switchToRecordContext() { + throw new AssertionError("This method should not be called."); + } + @Override public String getContextId() { throw new AssertionError("This method should not be called."); From 6e4d91ec78aa4b17baf5fd2ba45fb0fb234d1478 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 16:09:29 +0800 Subject: [PATCH 112/655] AddressBookParser.java: Placeholder commands for filtering volunteers --- .../java/seedu/address/logic/parser/AddressBookParser.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 4710cbe80cca..d3c98598258c 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -140,7 +140,14 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce // Execute commands for records if (contextId.equals(Context.RECORD_CONTEXT_ID)) { + // TO_REPLACE: Change find and list to the one specific for volunteers switch (commandWord) { + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); + + case ListCommand.COMMAND_WORD: + return new ListCommand(); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } From fa32a21a8301dc3d806ed4b46cae23d7c3e93f02 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 16:15:27 +0800 Subject: [PATCH 113/655] AddressBookParser.java: Updated comment --- src/main/java/seedu/address/logic/parser/AddressBookParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index d3c98598258c..70455474f6f4 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -140,7 +140,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce // Execute commands for records if (contextId.equals(Context.RECORD_CONTEXT_ID)) { - // TO_REPLACE: Change find and list to the one specific for volunteers + // TO_UPDATE: Change find and list to the one specific for volunteers switch (commandWord) { case FindCommand.COMMAND_WORD: return new FindCommandParser().parse(arguments); From 6ed045506b6066576e9502c32efe53b61c091f7c Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 18:16:19 +0800 Subject: [PATCH 114/655] Add auto-increment id support for Event.java --- .../java/seedu/address/model/event/Event.java | 68 +++++++++++++++++-- .../seedu/address/model/event/EventId.java | 35 ++++++++++ .../address/storage/XmlAdaptedEvent.java | 18 ++++- 3 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 src/main/java/seedu/address/model/event/EventId.java diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index 7da26e9a4cbd..ac63c1b592d8 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -22,8 +22,13 @@ public class Event { public static final String MESSAGE_START_END_TIME_CONSTRAINTS = "Start time should only be less than or equal to end time"; + // Used to keep track of current max Id in the system + private static int maxId = 0; + + // Used for record class + private EventId eventId; + // Identity fields - //private final Id id; private final Name name; private final Location location; private final Date startDate; @@ -36,15 +41,42 @@ public class Event { private final Set tags = new HashSet<>(); /** - * Every field must be present and not null. + * Used when creating new Event. Every field must be present and not null. */ - //EventId to be added to constructor public Event(Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { - //requireAllNonNull(id, name, location, startDate, endDate, description, tags); requireAllNonNull(name, location, startDate, endDate, description, tags); - //this.id = id; + incrementMaxId(); + this.eventId = new EventId(maxId); + + this.name = name; + this.location = location; + + this.startDate = startDate; + this.endDate = endDate; + checkArgument(isValidStartAndEndDate(startDate, endDate), MESSAGE_START_END_DATE_CONSTRAINTS); + + this.startTime = startTime; + this.endTime = endTime; + checkArgument(isValidStartAndEndTime(startTime, endTime), MESSAGE_START_END_TIME_CONSTRAINTS); + + this.description = description; + this.tags.addAll(tags); + } + + /** + * Used when loading data from XML. Every field must be present and not null. + */ + public Event(EventId eventId, Name name, Location location, Date startDate, Date endDate, + Time startTime, Time endTime, Description description, Set tags) { + requireAllNonNull(eventId, name, location, startDate, endDate, description, tags); + + if (isNewEventIdGreaterThanMaxId(eventId.id)) { + replaceMaxIdWithIncrementedEventId(eventId.id); + } + this.eventId = eventId; + this.name = name; this.location = location; @@ -60,6 +92,30 @@ public Event(Name name, Location location, Date startDate, Date endDate, this.tags.addAll(tags); } + /** + * Increments the current maxId by 1. + */ + private void incrementMaxId() { + maxId += 1; + } + + /** + * Checks if new event id is greater than current max id. + * @param newEventId event id from loaded xml event. + */ + private boolean isNewEventIdGreaterThanMaxId(int newEventId) { + return newEventId > maxId; + } + + /** + * Replaces max id with new event id. + * @param newEventId event id from loaded xml event. + */ + private void replaceMaxIdWithIncrementedEventId(int newEventId) { + maxId = newEventId + 1; + } + + /** * Returns true if a given start date is less than or equal to end date. */ @@ -74,6 +130,8 @@ public static boolean isValidStartAndEndTime(Time startTime, Time endTime) { return startTime.isLessThanOrEqualTo(endTime); } + public EventId getEventId() { return eventId; } + public Name getName() { return name; } diff --git a/src/main/java/seedu/address/model/event/EventId.java b/src/main/java/seedu/address/model/event/EventId.java new file mode 100644 index 000000000000..9af76e5458dc --- /dev/null +++ b/src/main/java/seedu/address/model/event/EventId.java @@ -0,0 +1,35 @@ +package seedu.address.model.event; + +import static java.util.Objects.requireNonNull; + +/** + * Represents an Event's Id in the application. Event Id is used in identifying record entries. + * Guarantees: immutable; is valid as declared in {@link #isValidId(int)} + */ +public class EventId { + public static final String MESSAGE_NAME_CONSTRAINTS = + "Id should be more than zero, and it should not be blank"; + + public final int id; + /** + * Constructs an {@code id}. + * + * @param id A valid id. + */ + public EventId(int id) { + requireNonNull(id); + this.id = id; + } + + /** + * Returns true if a given string is a valid name. + */ + public static boolean isValidId(int test) { + return test > 0; + } + + @Override + public String toString() { + return Integer.toString(id); + } +} diff --git a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java index c93bfdaa41e9..62bae4e6ba6e 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java @@ -13,6 +13,7 @@ import seedu.address.model.event.Date; import seedu.address.model.event.Description; import seedu.address.model.event.Event; +import seedu.address.model.event.EventId; import seedu.address.model.event.Location; import seedu.address.model.event.Name; import seedu.address.model.event.Time; @@ -24,6 +25,8 @@ public class XmlAdaptedEvent { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Event's %s field is missing!"; + @XmlElement(required = true) + private int eventId; @XmlElement(required = true) private String name; @XmlElement(required = true) @@ -51,8 +54,9 @@ public XmlAdaptedEvent() {} /** * Constructs an {@code XmlAdaptedPerson} with the given event details. */ - public XmlAdaptedEvent(String name, String location, String startDate, String endDate, + public XmlAdaptedEvent(int eventId, String name, String location, String startDate, String endDate, String startTime, String endTime, String description, List tagged) { + this.eventId = eventId; this.name = name; this.location = location; this.startDate = startDate; @@ -71,6 +75,7 @@ public XmlAdaptedEvent(String name, String location, String startDate, String en * @param source future changes to this will not affect the created XmlAdaptedEvent */ public XmlAdaptedEvent(Event source) { + eventId = source.getEventId().id; name = source.getName().fullName; location = source.getLocation().value; startDate = source.getStartDate().value; @@ -95,6 +100,15 @@ public Event toModelType() throws IllegalValueException { eventTags.add(tag.toModelType()); } + if (eventId == 0) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName())); + } + if (!EventId.isValidId(eventId)) { + throw new IllegalValueException(EventId.MESSAGE_NAME_CONSTRAINTS); + } + EventId modelEventId = new EventId(eventId); + + if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); } @@ -155,7 +169,7 @@ public Event toModelType() throws IllegalValueException { final Set modelTags = new HashSet<>(eventTags); - return new Event(modelName, modelLocation, modelStartDate, modelEndDate, modelStartTime, modelEndTime, + return new Event(modelEventId, modelName, modelLocation, modelStartDate, modelEndDate, modelStartTime, modelEndTime, modelDescription, modelTags); } From 5e771517fcbfbb51d07f3e1e88006930edd37f21 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 18:41:23 +0800 Subject: [PATCH 115/655] DeveloperGuide.adoc: Updated the Design section --- docs/DeveloperGuide.adoc | 155 +- docs/DeveloperGuide.html | 3487 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 3578 insertions(+), 64 deletions(-) create mode 100644 docs/DeveloperGuide.html diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index ffeea5c8bb85..fe6b131d8fb1 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -1,4 +1,4 @@ -= AddressBook Level 4 - Developer Guide += SocialCare - Developer Guide :site-section: DeveloperGuide :toc: :toc-title: @@ -13,7 +13,7 @@ ifdef::env-github[] :warning-caption: :warning: :experimental: endif::[] -:repoURL: https://github.com/CS2103-AY1819S1-W16-2/main +:repoURL: https://github.com/CS2103-AY1819S1-W16-2/main/blob/master/ By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` @@ -112,43 +112,19 @@ This section will describe the design architecture and the various components of [[Design-Architecture]] === Architecture -.Architecture Diagram -image::Architecture.png[width="600"] - -The *_Architecture Diagram_* given above explains the high-level design of the App. Given below is a quick overview of each component. +This section describes the design architecture used by the system. [TIP] The `.pptx` files used to create diagrams in this document can be found in the link:{repoURL}/docs/diagrams/[diagrams] folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose `Save as picture`. -`Main` has only one class called link:{repoURL}/src/main/java/seedu/address/MainApp.java[`MainApp`]. It is responsible for, - -* At app launch: Initializes the components in the correct sequence, and connects them up with each other. -* At shut down: Shuts down the components and invokes cleanup method where necessary. - -<> represents a collection of classes used by multiple other components. Two of those classes play important roles at the architecture level. - -* `EventsCenter` : This class (written using https://github.com/google/guava/wiki/EventBusExplained[Google's Event Bus library]) is used by components to communicate with other components using events (i.e. a form of _Event Driven_ design) -* `LogsCenter` : Used by many classes to write log messages to the App's log file. - -The rest of the App consists of four components. - -* <>: The UI of the App. -* <>: The command executor. -* <>: Holds the data of the App in-memory. -* <>: Reads data from, and writes data to, the hard disk. +.Architecture diagram +image::Architecture.png[width="600"] -Each of the four components +The *_Architecture Diagram_* given above explains the high-level design of the App. + -* Defines its _API_ in an `interface` with the same name as the Component. -* Exposes its functionality using a `{Component Name}Manager` class. +=== Events-Driven nature of the design -For example, the `Logic` component (see the class diagram given below) defines it's API in the `Logic.java` interface and exposes its functionality using the `LogicManager.java` class. - -.Class Diagram of the Logic Component -image::LogicClassDiagram.png[width="800"] - -[discrete] -==== Events-Driven nature of the design +SocialCare uses an event-driven architecture style. + The _Sequence Diagram_ below shows how the components interact for the scenario where the user issues the command `delete 1`. @@ -158,91 +134,142 @@ image::SDforDeletePerson.png[width="800"] [NOTE] Note how the `Model` simply raises a `AddressBookChangedEvent` when the Address Book data are changed, instead of asking the `Storage` to save the updates to the hard disk. -The diagram below shows how the `EventsCenter` reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time. +The figure below shows how the `EventsCenter` reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time. .Component interactions for `delete 1` command (part 2) image::SDforDeletePersonEventHandling.png[width="800"] [NOTE] -Note how the event is propagated through the `EventsCenter` to the `Storage` and `UI` without `Model` having to be coupled to either of them. This is an example of how this Event Driven approach helps us reduce direct coupling between components. +Note how the event is propagated through the `EventsCenter` to the `Storage` and `UI` without `Model` having to be coupled to either of them. This is an example of how an event-driven approach helps us to reduce direct coupling between components. + +=== Components + +There are *6* main components: `Main`, `Commons`, `UI`, `Logic`, `Model`, and `Storage`. + +Given below is a brief overview of each component. + +<> is the starting point of the system, which encapsulates the other components. + +<> represents a collection of classes used by multiple components. + +<> contains the user interface classes used by the application. + +<> used to execute user commands. It is also known as the command executor. + +<> holds the data of the application in-memory. + +<> which allows reading and writing of data to the hard disk. + +For the `UI`, `Logic`, `Model` and `Storage` components they: -The sections below give more details of each component. +* Define their _API_ in an `interface` with the same name as the Component. +* Expose their functionality using a `{Component Name}Manager` class. + +For example, the `Logic` component (see the class diagram given below) defines its API in the `Logic.java` interface and exposes its functionality using the `LogicManager.java` class. + +.Class diagram of the Logic component +image::LogicClassDiagram.png[width="800"] + +[[Design-Main]] +==== Main component + +`Main` has only one class called link:{repoURL}/src/main/java/seedu/address/MainApp.java[`MainApp`]. It is responsible for: + +* At app launch: Initializing the components in the correct sequence, and connecting them up with each other. +* At shut down: Shutting down the components and invoking cleanup methods where necessary. + +[[Design-Commons]] +==== Commons component + +`Commons` has classes used by multiple components. The classes are in the `seedu.addressbook.commons` package. + +Two of those classes play important roles at the architecture level. + +* `EventsCenter` : This class (written using https://github.com/google/guava/wiki/EventBusExplained[Google's Event Bus library]) is used by the different components to communicate with other components using events. (i.e. a form of _Event Driven_ design) +* `LogsCenter` : Used by the classes to write log messages to the App's log file. [[Design-Ui]] -=== UI component +==== UI component -.Structure of the UI Component +The `UI` component contains classes which are responsible for displaying the user interface of the system. The figure below shows the structure of the `UI` component. + +.Structure of the UI component image::UiClassDiagram.png[width="800"] *API* : link:{repoURL}/src/main/java/seedu/address/ui/Ui.java[`Ui.java`] -The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter`, `BrowserPanel` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class. +The `UI` component consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter`, `BrowserPanel` etc. All these, including the `MainWindow`, inherits from the abstract `UiPart` class. -The `UI` component uses JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the link:{repoURL}/src/main/java/seedu/address/ui/MainWindow.java[`MainWindow`] is specified in link:{repoURL}/src/main/resources/view/MainWindow.fxml[`MainWindow.fxml`] +The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the link:{repoURL}/src/main/java/seedu/address/ui/MainWindow.java[`MainWindow`] is specified in link:{repoURL}/src/main/resources/view/MainWindow.fxml[`MainWindow.fxml`] -The `UI` component, +The `UI` component does the following: * Executes user commands using the `Logic` component. -* Binds itself to some data in the `Model` so that the UI can auto-update when data in the `Model` change. +* Binds itself to some data in the `Model` so that the UI can automatically update when data in the `Model` changes. * Responds to events raised from various parts of the App and updates the UI accordingly. [[Design-Logic]] -=== Logic component +==== Logic component + +The `Logic` component contains classes which are needed to execute user commands. The figure below shows the structure of the `Logic` component [[fig-LogicClassDiagram]] -.Structure of the Logic Component +.Structure of the Logic component image::LogicClassDiagram.png[width="800"] *API* : link:{repoURL}/src/main/java/seedu/address/logic/Logic.java[`Logic.java`] -. `Logic` uses the `AddressBookParser` class to parse the user command. -. This results in a `Command` object which is executed by the `LogicManager`. -. The command execution can affect the `Model` (e.g. adding a person) and/or raise events. -. The result of the command execution is encapsulated as a `CommandResult` object which is passed back to the `Ui`. +The flow for the `Logic` component is as follows: + +. `Logic` uses the `AddressBookParser` class to parse the user command. +. The `Command` object (which is automatically created in the previous step) is executed by the `LogicManager`. +. The executed 'Command' affects the `Model` (e.g. adding a person) and/or raise events. +. The result of the command execution from the previous step is encapsulated as a `CommandResult` object. +. The `CommandResult` object is passed back to the `UI` component. Given below is the Sequence Diagram for interactions within the `Logic` component for the `execute("delete 1")` API call. -.Interactions Inside the Logic Component for the `delete 1` Command +.Interactions inside the Logic component for the `delete 1` command image::DeletePersonSdForLogic.png[width="800"] + [[Design-Model]] -=== Model component +==== Model component + +The `Model` component contains classes which are responsible for managing the data of the application. The figure below shows the structure of the `Model` component. .Structure of the Model Component image::ModelClassDiagram.png[width="800"] *API* : link:{repoURL}/src/main/java/seedu/address/model/Model.java[`Model.java`] -The `Model`, +The `Model` component does the following: -* stores a `UserPref` object that represents the user's preferences. -* stores the Address Book data. -* exposes an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. -* does not depend on any of the other three components. +* Stores a `UserPref` object that represents the user's preferences. +* Stores the Address Book data. +* Exposes an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list changes. + +Note that the `Model` component does not depend on any of the other components. [NOTE] -As a more OOP model, we can store a `Tag` list in `Address Book`, which `Person` can reference. This would allow `Address Book` to only require one `Tag` object per unique `Tag`, instead of each `Person` needing their own `Tag` object. An example of how such a model may look like is given below. + +As a more OOP model, we can store a `Tag` list in `SocialCare`, which `Volunteer` can reference. This would allow `SocialCare` to only require one `Tag` object per unique `Tag`, instead of each `Volunteer` needing their own `Tag` object. An example of how such a model may look like is given below. + + image:ModelClassBetterOopDiagram.png[width="800"] [[Design-Storage]] -=== Storage component +==== Storage component + +The `Storage` component contains classes which enables the reading/writing of data to the hard disk. The figure below shows the structure of the `Storage` component. .Structure of the Storage Component image::StorageClassDiagram.png[width="800"] *API* : link:{repoURL}/src/main/java/seedu/address/storage/Storage.java[`Storage.java`] -The `Storage` component, - -* can save `UserPref` objects in json format and read it back. -* can save the Address Book data in xml format and read it back. - -[[Design-Commons]] -=== Common classes +The `Storage` component does the following: -Classes used by multiple components are in the `seedu.addressbook.commons` package. +* saves `UserPref` objects in json format and read it back. +* saves the system data in xml format and read it back. == Implementation diff --git a/docs/DeveloperGuide.html b/docs/DeveloperGuide.html new file mode 100644 index 000000000000..c164a86acf56 --- /dev/null +++ b/docs/DeveloperGuide.html @@ -0,0 +1,3487 @@ + + + + + + + +SocialCare - Developer Guide + + + + + +
    + +
    +

    1. Introduction

    +
    +
    +

    TBC

    +
    +
    +
    +
    +

    2. Setting up

    +
    +
    +

    2.1. Prerequisites

    +
    +
      +
    1. +

      JDK 9 or later

      +
      + + + + + +
      +
      Warning
      +
      +JDK 10 on Windows will fail to run tests in headless mode due to a JavaFX bug. +Windows developers are highly recommended to use JDK 9. +
      +
      +
    2. +
    3. +

      IntelliJ IDE

      +
      + + + + + +
      +
      Note
      +
      +IntelliJ by default has Gradle and JavaFx plugins installed.
      +Do not disable them. If you have disabled them, go to File > Settings > Plugins to re-enable them. +
      +
      +
    4. +
    +
    +
    +
    +

    2.2. Setting up the project in your computer

    +
    +
      +
    1. +

      Fork this repo, and clone the fork to your computer

      +
    2. +
    3. +

      Open IntelliJ (if you are not in the welcome screen, click File > Close Project to close the existing project dialog first)

      +
    4. +
    5. +

      Set up the correct JDK version for Gradle

      +
      +
        +
      1. +

        Click Configure > Project Defaults > Project Structure

        +
      2. +
      3. +

        Click New…​ and find the directory of the JDK

        +
      4. +
      +
      +
    6. +
    7. +

      Click Import Project

      +
    8. +
    9. +

      Locate the build.gradle file and select it. Click OK

      +
    10. +
    11. +

      Click Open as Project

      +
    12. +
    13. +

      Click OK to accept the default settings

      +
    14. +
    15. +

      Open a console and run the command gradlew processResources (Mac/Linux: ./gradlew processResources). It should finish with the BUILD SUCCESSFUL message.
      +This will generate all resources required by the application and tests.

      +
    16. +
    17. +

      Open XmlAdaptedPerson.java and MainWindow.java and check for any code errors

      +
      +
        +
      1. +

        Due to an ongoing issue with some of the newer versions of IntelliJ, code errors may be detected even if the project can be built and run successfully

        +
      2. +
      3. +

        To resolve this, place your cursor over any of the code section highlighted in red. Press kbd:[ALT + ENTER], and select Add '--add-modules=…​' to module compiler options for each error

        +
      4. +
      +
      +
    18. +
    19. +

      Repeat this for the test folder as well (e.g. check XmlUtilTest.java and HelpWindowTest.java for code errors, and if so, resolve it the same way)

      +
    20. +
    +
    +
    +
    +

    2.3. Verifying the setup

    +
    +
      +
    1. +

      Run the seedu.address.MainApp and try a few commands

      +
    2. +
    3. +

      Run the tests to ensure they all pass.

      +
    4. +
    +
    +
    +
    +

    2.4. Configurations to do before writing code

    +
    +

    2.4.1. Configuring the coding style

    +
    +

    This project follows oss-generic coding standards. IntelliJ’s default style is mostly compliant with ours but it uses a different import order from ours. To rectify,

    +
    +
    +
      +
    1. +

      Go to File > Settings…​ (Windows/Linux), or IntelliJ IDEA > Preferences…​ (macOS)

      +
    2. +
    3. +

      Select Editor > Code Style > Java

      +
    4. +
    5. +

      Click on the Imports tab to set the order

      +
      +
        +
      • +

        For Class count to use import with '*' and Names count to use static import with '*': Set to 999 to prevent IntelliJ from contracting the import statements

        +
      • +
      • +

        For Import Layout: The order is import static all other imports, import java.*, import javax.*, import org.*, import com.*, import all other imports. Add a <blank line> between each import

        +
      • +
      +
      +
    6. +
    +
    +
    +

    Optionally, you can follow the UsingCheckstyle.adoc document to configure Intellij to check style-compliance as you write code.

    +
    +
    +
    +

    2.4.2. Updating documentation to match your fork

    +
    +

    After forking the repo, the documentation will still have the SE-EDU branding and refer to the se-edu/addressbook-level4 repo.

    +
    +
    +

    If you plan to develop this fork as a separate product (i.e. instead of contributing to se-edu/addressbook-level4), you should do the following:

    +
    +
    +
      +
    1. +

      Configure the site-wide documentation settings in build.gradle, such as the site-name, to suit your own project.

      +
    2. +
    3. +

      Replace the URL in the attribute repoURL in DeveloperGuide.adoc and UserGuide.adoc with the URL of your fork.

      +
    4. +
    +
    +
    +
    +

    2.4.3. Setting up CI

    +
    +

    Set up Travis to perform Continuous Integration (CI) for your fork. See UsingTravis.adoc to learn how to set it up.

    +
    +
    +

    After setting up Travis, you can optionally set up coverage reporting for your team fork (see UsingCoveralls.adoc).

    +
    +
    + + + + + +
    +
    Note
    +
    +Coverage reporting could be useful for a team repository that hosts the final version but it is not that useful for your personal fork. +
    +
    +
    +

    Optionally, you can set up AppVeyor as a second CI (see UsingAppVeyor.adoc).

    +
    +
    + + + + + +
    +
    Note
    +
    +Having both Travis and AppVeyor ensures your App works on both Unix-based platforms and Windows-based platforms (Travis is Unix-based and AppVeyor is Windows-based) +
    +
    +
    +
    +

    2.4.4. Getting started with coding

    +
    +

    When you are ready to start coding,

    +
    +
    +
      +
    1. +

      Get some sense of the overall design by reading Architecture.

      +
    2. +
    3. +

      Take a look at Suggested Programming Tasks to Get Started.

      +
    4. +
    +
    +
    +
    +
    +
    +
    +

    3. Design

    +
    +
    +

    This section will describe the design architecture and the various components of the system.

    +
    +
    +

    3.1. Architecture

    +
    +

    This section describes the design architecture used by the system.

    +
    +
    + + + + + +
    +
    Tip
    +
    +The .pptx files used to create diagrams in this document can be found in the diagrams folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose Save as picture. +
    +
    +
    +
    +Architecture +
    +
    Figure 1. Architecture diagram
    +
    +
    +

    The Architecture Diagram given above explains the high-level design of the App.

    +
    +
    +
    +

    3.2. Events-Driven nature of the design

    +
    +

    SocialCare uses an event-driven architecture style.

    +
    +
    +

    The Sequence Diagram below shows how the components interact for the scenario where the user issues the command delete 1.

    +
    +
    +
    +SDforDeletePerson +
    +
    Figure 2. Component interactions for delete 1 command (part 1)
    +
    +
    + + + + + +
    +
    Note
    +
    +Note how the Model simply raises a AddressBookChangedEvent when the Address Book data are changed, instead of asking the Storage to save the updates to the hard disk. +
    +
    +
    +

    The figure below shows how the EventsCenter reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time.

    +
    +
    +
    +SDforDeletePersonEventHandling +
    +
    Figure 3. Component interactions for delete 1 command (part 2)
    +
    +
    + + + + + +
    +
    Note
    +
    +Note how the event is propagated through the EventsCenter to the Storage and UI without Model having to be coupled to either of them. This is an example of how an event-driven approach helps us to reduce direct coupling between components. +
    +
    +
    +
    +

    3.3. Components

    +
    +

    There are 6 main components: Main, Commons, UI, Logic, Model, and Storage.
    +Given below is a brief overview of each component.

    +
    +
    +

    Main is the starting point of the system, which encapsulates the other components.

    +
    +
    +

    Commons represents a collection of classes used by multiple components.

    +
    +
    +

    UI contains the user interface classes used by the application.

    +
    +
    +

    Logic used to execute user commands. It is also known as the command executor.

    +
    +
    +

    Model holds the data of the application in-memory.

    +
    +
    +

    Storage which allows reading and writing of data to the hard disk.

    +
    +
    +

    For the UI, Logic, Model and Storage components they:

    +
    +
    +
      +
    • +

      Define their API in an interface with the same name as the Component.

      +
    • +
    • +

      Expose their functionality using a {Component Name}Manager class.

      +
    • +
    +
    +
    +

    For example, the Logic component (see the class diagram given below) defines its API in the Logic.java interface and exposes its functionality using the LogicManager.java class.

    +
    +
    +
    +LogicClassDiagram +
    +
    Figure 4. Class diagram of the Logic component
    +
    +
    +

    3.3.1. Main component

    +
    +

    Main has only one class called MainApp. It is responsible for:

    +
    +
    +
      +
    • +

      At app launch: Initializing the components in the correct sequence, and connecting them up with each other.

      +
    • +
    • +

      At shut down: Shutting down the components and invoking cleanup methods where necessary.

      +
    • +
    +
    +
    +
    +

    3.3.2. Commons component

    +
    +

    Commons has classes used by multiple components. The classes are in the seedu.addressbook.commons package.

    +
    +
    +

    Two of those classes play important roles at the architecture level.

    +
    +
    +
      +
    • +

      EventsCenter : This class (written using Google’s Event Bus library) is used by the different components to communicate with other components using events. (i.e. a form of Event Driven design)

      +
    • +
    • +

      LogsCenter : Used by the classes to write log messages to the App’s log file.

      +
    • +
    +
    +
    +
    +

    3.3.3. UI component

    +
    +

    The UI component contains classes which are responsible for displaying the user interface of the system. The figure below shows the structure of the UI component.

    +
    +
    +
    +UiClassDiagram +
    +
    Figure 5. Structure of the UI component
    +
    +
    +

    API : Ui.java

    +
    +
    +

    The UI component consists of a MainWindow that is made up of parts e.g.CommandBox, ResultDisplay, PersonListPanel, StatusBarFooter, BrowserPanel etc. All these, including the MainWindow, inherits from the abstract UiPart class.

    +
    +
    +

    The UI component uses the JavaFx UI framework. The layout of these UI parts are defined in matching .fxml files that are in the src/main/resources/view folder. For example, the layout of the MainWindow is specified in MainWindow.fxml

    +
    +
    +

    The UI component does the following:

    +
    +
    +
      +
    • +

      Executes user commands using the Logic component.

      +
    • +
    • +

      Binds itself to some data in the Model so that the UI can automatically update when data in the Model changes.

      +
    • +
    • +

      Responds to events raised from various parts of the App and updates the UI accordingly.

      +
    • +
    +
    +
    +
    +

    3.3.4. Logic component

    +
    +

    The Logic component contains classes which are needed to execute user commands. The figure below shows the structure of the Logic component

    +
    +
    +
    +LogicClassDiagram +
    +
    Figure 6. Structure of the Logic component
    +
    +
    +

    API : +Logic.java

    +
    +
    +

    The flow for the Logic component is as follows:

    +
    +
    +
      +
    1. +

      Logic uses the AddressBookParser class to parse the user command.

      +
    2. +
    3. +

      The Command object (which is automatically created in the previous step) is executed by the LogicManager.

      +
    4. +
    5. +

      The executed 'Command' affects the Model (e.g. adding a person) and/or raise events.

      +
    6. +
    7. +

      The result of the command execution from the previous step is encapsulated as a CommandResult object.

      +
    8. +
    9. +

      The CommandResult object is passed back to the UI component.

      +
    10. +
    +
    +
    +

    Given below is the Sequence Diagram for interactions within the Logic component for the execute("delete 1") API call.

    +
    +
    +
    +DeletePersonSdForLogic +
    +
    Figure 7. Interactions inside the Logic component for the delete 1 command
    +
    +
    +
    +

    3.3.5. Model component

    +
    +

    The Model component contains classes which are responsible for managing the data of the application. The figure below shows the structure of the Model component.

    +
    +
    +
    +ModelClassDiagram +
    +
    Figure 8. Structure of the Model Component
    +
    +
    +

    API : Model.java

    +
    +
    +

    The Model component does the following:

    +
    +
    +
      +
    • +

      Stores a UserPref object that represents the user’s preferences.

      +
    • +
    • +

      Stores the Address Book data.

      +
    • +
    • +

      Exposes an unmodifiable ObservableList<Object> that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list changes.

      +
    • +
    +
    +
    +

    Note that the Model component does not depend on any of the other components.

    +
    +
    + + + + + +
    +
    Note
    +
    +As a more OOP model, we can store a Tag list in SocialCare, which Volunteer can reference. This would allow SocialCare to only require one Tag object per unique Tag, instead of each Volunteer needing their own Tag object. An example of how such a model may look like is given below.
    +
    +ModelClassBetterOopDiagram +
    +
    +
    +
    +

    3.3.6. Storage component

    +
    +

    The Storage component contains classes which enables the reading/writing of data to the hard disk. The figure below shows the structure of the Storage component.

    +
    +
    +
    +StorageClassDiagram +
    +
    Figure 9. Structure of the Storage Component
    +
    +
    +

    API : Storage.java

    +
    +
    +

    The Storage component does the following:

    +
    +
    +
      +
    • +

      saves UserPref objects in json format and read it back.

      +
    • +
    • +

      saves the system data in xml format and read it back.

      +
    • +
    +
    +
    +
    +
    +
    +
    +

    4. Implementation

    +
    +
    +

    This section describes some noteworthy details on how certain features are implemented.

    +
    +
    +

    4.1. Undo/Redo feature

    +
    +

    4.1.1. Current Implementation

    +
    +

    The undo/redo mechanism is facilitated by VersionedAddressBook. +It extends AddressBook with an undo/redo history, stored internally as an addressBookStateList and currentStatePointer. +Additionally, it implements the following operations:

    +
    +
    +
      +
    • +

      VersionedAddressBook#commit() — Saves the current address book state in its history.

      +
    • +
    • +

      VersionedAddressBook#undo() — Restores the previous address book state from its history.

      +
    • +
    • +

      VersionedAddressBook#redo() — Restores a previously undone address book state from its history.

      +
    • +
    +
    +
    +

    These operations are exposed in the Model interface as Model#commitAddressBook(), Model#undoAddressBook() and Model#redoAddressBook() respectively.

    +
    +
    +

    Given below is an example usage scenario and how the undo/redo mechanism behaves at each step.

    +
    +
    +

    Step 1. The user launches the application for the first time. The VersionedAddressBook will be initialized with the initial address book state, and the currentStatePointer pointing to that single address book state.

    +
    +
    +
    +UndoRedoStartingStateListDiagram +
    +
    +
    +

    Step 2. The user executes delete 5 command to delete the 5th person in the address book. The delete command calls Model#commitAddressBook(), causing the modified state of the address book after the delete 5 command executes to be saved in the addressBookStateList, and the currentStatePointer is shifted to the newly inserted address book state.

    +
    +
    +
    +UndoRedoNewCommand1StateListDiagram +
    +
    +
    +

    Step 3. The user executes add n/David …​ to add a new person. The add command also calls Model#commitAddressBook(), causing another modified address book state to be saved into the addressBookStateList.

    +
    +
    +
    +UndoRedoNewCommand2StateListDiagram +
    +
    +
    + + + + + +
    +
    Note
    +
    +If a command fails its execution, it will not call Model#commitAddressBook(), so the address book state will not be saved into the addressBookStateList. +
    +
    +
    +

    Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the undo command. The undo command will call Model#undoAddressBook(), which will shift the currentStatePointer once to the left, pointing it to the previous address book state, and restores the address book to that state.

    +
    +
    +
    +UndoRedoExecuteUndoStateListDiagram +
    +
    +
    + + + + + +
    +
    Note
    +
    +If the currentStatePointer is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The undo command uses Model#canUndoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo. +
    +
    +
    +

    The following sequence diagram shows how the undo operation works:

    +
    +
    +
    +UndoRedoSequenceDiagram +
    +
    +
    +

    The redo command does the opposite — it calls Model#redoAddressBook(), which shifts the currentStatePointer once to the right, pointing to the previously undone state, and restores the address book to that state.

    +
    +
    + + + + + +
    +
    Note
    +
    +If the currentStatePointer is at index addressBookStateList.size() - 1, pointing to the latest address book state, then there are no undone address book states to restore. The redo command uses Model#canRedoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. +
    +
    +
    +

    Step 5. The user then decides to execute the command list. Commands that do not modify the address book, such as list, will usually not call Model#commitAddressBook(), Model#undoAddressBook() or Model#redoAddressBook(). Thus, the addressBookStateList remains unchanged.

    +
    +
    +
    +UndoRedoNewCommand3StateListDiagram +
    +
    +
    +

    Step 6. The user executes clear, which calls Model#commitAddressBook(). Since the currentStatePointer is not pointing at the end of the addressBookStateList, all address book states after the currentStatePointer will be purged. We designed it this way because it no longer makes sense to redo the add n/David …​ command. This is the behavior that most modern desktop applications follow.

    +
    +
    +
    +UndoRedoNewCommand4StateListDiagram +
    +
    +
    +

    The following activity diagram summarizes what happens when a user executes a new command:

    +
    +
    +
    +UndoRedoActivityDiagram +
    +
    +
    +
    +

    4.1.2. Design Considerations

    +
    +
    Aspect: How undo & redo executes
    +
    +
      +
    • +

      Alternative 1 (current choice): Saves the entire address book.

      +
      +
        +
      • +

        Pros: Easy to implement.

        +
      • +
      • +

        Cons: May have performance issues in terms of memory usage.

        +
      • +
      +
      +
    • +
    • +

      Alternative 2: Individual command knows how to undo/redo by itself.

      +
      +
        +
      • +

        Pros: Will use less memory (e.g. for delete, just save the person being deleted).

        +
      • +
      • +

        Cons: We must ensure that the implementation of each individual command are correct.

        +
      • +
      +
      +
    • +
    +
    +
    +
    +
    Aspect: Data structure to support the undo/redo commands
    +
    +
      +
    • +

      Alternative 1 (current choice): Use a list to store the history of address book states.

      +
      +
        +
      • +

        Pros: Easy for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.

        +
      • +
      • +

        Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both HistoryManager and VersionedAddressBook.

        +
      • +
      +
      +
    • +
    • +

      Alternative 2: Use HistoryManager for undo/redo

      +
      +
        +
      • +

        Pros: We do not need to maintain a separate list, and just reuse what is already in the codebase.

        +
      • +
      • +

        Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as HistoryManager now needs to do two different things.

        +
      • +
      +
      +
    • +
    +
    +
    +
    +
    +
    +

    4.2. [Proposed] Data Encryption

    +
    +

    {Explain here how the data encryption feature will be implemented}

    +
    +
    +
    +

    4.3. Logging

    +
    +

    We are using java.util.logging package for logging. The LogsCenter class is used to manage the logging levels and logging destinations.

    +
    +
    +
      +
    • +

      The logging level can be controlled using the logLevel setting in the configuration file (See Configuration)

      +
    • +
    • +

      The Logger for a class can be obtained using LogsCenter.getLogger(Class) which will log messages according to the specified logging level

      +
    • +
    • +

      Currently log messages are output through: Console and to a .log file.

      +
    • +
    +
    +
    +

    Logging Levels

    +
    +
    +
      +
    • +

      SEVERE : Critical problem detected which may possibly cause the termination of the application

      +
    • +
    • +

      WARNING : Can continue, but with caution

      +
    • +
    • +

      INFO : Information showing the noteworthy actions by the App

      +
    • +
    • +

      FINE : Details that is not usually noteworthy but may be useful in debugging e.g. print the actual list instead of just its size

      +
    • +
    +
    +
    +
    +

    4.4. Configuration

    +
    +

    Certain properties of the application can be controlled (e.g App name, logging level) through the configuration file (default: config.json).

    +
    +
    +
    +
    +
    +

    5. Documentation

    +
    +
    +

    We use asciidoc for writing documentation.

    +
    +
    + + + + + +
    +
    Note
    +
    +We chose asciidoc over Markdown because asciidoc, although a bit more complex than Markdown, provides more flexibility in formatting. +
    +
    +
    +

    5.1. Editing Documentation

    +
    +

    See UsingGradle.adoc to learn how to render .adoc files locally to preview the end result of your edits. +Alternatively, you can download the AsciiDoc plugin for IntelliJ, which allows you to preview the changes you have made to your .adoc files in real-time.

    +
    +
    +
    +

    5.2. Publishing Documentation

    +
    +

    See UsingTravis.adoc to learn how to deploy GitHub Pages using Travis.

    +
    +
    +
    +

    5.3. Converting Documentation to PDF format

    +
    +

    We use Google Chrome for converting documentation to PDF format, as Chrome’s PDF engine preserves hyperlinks used in webpages.

    +
    +
    +

    Here are the steps to convert the project documentation files to PDF format.

    +
    +
    +
      +
    1. +

      Follow the instructions in UsingGradle.adoc to convert the AsciiDoc files in the docs/ directory to HTML format.

      +
    2. +
    3. +

      Go to your generated HTML files in the build/docs folder, right click on them and select Open withGoogle Chrome.

      +
    4. +
    5. +

      Within Chrome, click on the Print option in Chrome’s menu.

      +
    6. +
    7. +

      Set the destination to Save as PDF, then click Save to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.

      +
    8. +
    +
    +
    +
    +chrome save as pdf +
    +
    Figure 10. Saving documentation as PDF files in Chrome
    +
    +
    +
    +

    5.4. Site-wide Documentation Settings

    +
    +

    The build.gradle file specifies some project-specific asciidoc attributes which affects how all documentation files within this project are rendered.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Attributes left unset in the build.gradle file will use their default value, if any. +
    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 1. List of site-wide attributes
    Attribute nameDescriptionDefault value

    site-name

    +

    The name of the website. +If set, the name will be displayed near the top of the page.

    +

    not set

    site-githuburl

    +

    URL to the site’s repository on GitHub. +Setting this will add a "View on GitHub" link in the navigation bar.

    +

    not set

    site-seedu

    +

    Define this attribute if the project is an official SE-EDU project. +This will render the SE-EDU navigation bar at the top of the page, and add some SE-EDU-specific navigation items.

    +

    not set

    +
    +
    +

    5.5. Per-file Documentation Settings

    +
    +

    Each .adoc file may also specify some file-specific asciidoc attributes which affects how the file is rendered.

    +
    +
    +

    Asciidoctor’s built-in attributes may be specified and used as well.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Attributes left unset in .adoc files will use their default value, if any. +
    +
    + + +++++ + + + + + + + + + + + + + + + + + + + +
    Table 2. List of per-file attributes, excluding Asciidoctor’s built-in attributes
    Attribute nameDescriptionDefault value

    site-section

    +

    Site section that the document belongs to. +This will cause the associated item in the navigation bar to be highlighted. +One of: UserGuide, DeveloperGuide, LearningOutcomes*, AboutUs, ContactUs

    +
    +
    +

    * Official SE-EDU projects only

    +

    not set

    no-site-header

    +

    Set this attribute to remove the site navigation bar.

    +

    not set

    +
    +
    +

    5.6. Site Template

    +
    +

    The files in docs/stylesheets are the CSS stylesheets of the site. +You can modify them to change some properties of the site’s design.

    +
    +
    +

    The files in docs/templates controls the rendering of .adoc files into HTML5. +These template files are written in a mixture of Ruby and Slim.

    +
    +
    + + + + + +
    +
    Warning
    +
    +
    +

    Modifying the template files in docs/templates requires some knowledge and experience with Ruby and Asciidoctor’s API. +You should only modify them if you need greater control over the site’s layout than what stylesheets can provide. +The SE-EDU team does not provide support for modified template files.

    +
    +
    +
    +
    +
    +
    +
    +

    6. Testing

    +
    +
    +

    6.1. Running Tests

    +
    +

    There are three ways to run tests.

    +
    +
    + + + + + +
    +
    Tip
    +
    +The most reliable way to run tests is the 3rd one. The first two methods might fail some GUI tests due to platform/resolution-specific idiosyncrasies. +
    +
    +
    +

    Method 1: Using IntelliJ JUnit test runner

    +
    +
    +
      +
    • +

      To run all tests, right-click on the src/test/java folder and choose Run 'All Tests'

      +
    • +
    • +

      To run a subset of tests, you can right-click on a test package, test class, or a test and choose Run 'ABC'

      +
    • +
    +
    +
    +

    Method 2: Using Gradle

    +
    +
    +
      +
    • +

      Open a console and run the command gradlew clean allTests (Mac/Linux: ./gradlew clean allTests)

      +
    • +
    +
    +
    + + + + + +
    +
    Note
    +
    +See UsingGradle.adoc for more info on how to run tests using Gradle. +
    +
    +
    +

    Method 3: Using Gradle (headless)

    +
    +
    +

    Thanks to the TestFX library we use, our GUI tests can be run in the headless mode. In the headless mode, GUI tests do not show up on the screen. That means the developer can do other things on the Computer while the tests are running.

    +
    +
    +

    To run tests in headless mode, open a console and run the command gradlew clean headless allTests (Mac/Linux: ./gradlew clean headless allTests)

    +
    +
    +
    +

    6.2. Types of tests

    +
    +

    We have two types of tests:

    +
    +
    +
      +
    1. +

      GUI Tests - These are tests involving the GUI. They include,

      +
      +
        +
      1. +

        System Tests that test the entire App by simulating user actions on the GUI. These are in the systemtests package.

        +
      2. +
      3. +

        Unit tests that test the individual components. These are in seedu.address.ui package.

        +
      4. +
      +
      +
    2. +
    3. +

      Non-GUI Tests - These are tests not involving the GUI. They include,

      +
      +
        +
      1. +

        Unit tests targeting the lowest level methods/classes.
        +e.g. seedu.address.commons.StringUtilTest

        +
      2. +
      3. +

        Integration tests that are checking the integration of multiple code units (those code units are assumed to be working).
        +e.g. seedu.address.storage.StorageManagerTest

        +
      4. +
      5. +

        Hybrids of unit and integration tests. These test are checking multiple code units as well as how the are connected together.
        +e.g. seedu.address.logic.LogicManagerTest

        +
      6. +
      +
      +
    4. +
    +
    +
    +
    +

    6.3. Troubleshooting Testing

    +
    +

    Problem: HelpWindowTest fails with a NullPointerException.

    +
    +
    +
      +
    • +

      Reason: One of its dependencies, HelpWindow.html in src/main/resources/docs is missing.

      +
    • +
    • +

      Solution: Execute Gradle task processResources.

      +
    • +
    +
    +
    +
    +
    +
    +

    7. Dev Ops

    +
    +
    +

    7.1. Build Automation

    +
    +

    See UsingGradle.adoc to learn how to use Gradle for build automation.

    +
    +
    +
    +

    7.2. Continuous Integration

    +
    +

    We use Travis CI and AppVeyor to perform Continuous Integration on our projects. See UsingTravis.adoc and UsingAppVeyor.adoc for more details.

    +
    +
    +
    +

    7.3. Coverage Reporting

    +
    +

    We use Coveralls to track the code coverage of our projects. See UsingCoveralls.adoc for more details.

    +
    +
    +
    +

    7.4. Documentation Previews

    +
    +

    When a pull request has changes to asciidoc files, you can use Netlify to see a preview of how the HTML version of those asciidoc files will look like when the pull request is merged. See UsingNetlify.adoc for more details.

    +
    +
    +
    +

    7.5. Making a Release

    +
    +

    Here are the steps to create a new release.

    +
    +
    +
      +
    1. +

      Update the version number in MainApp.java.

      +
    2. +
    3. +

      Generate a JAR file using Gradle.

      +
    4. +
    5. +

      Tag the repo with the version number. e.g. v0.1

      +
    6. +
    7. +

      Create a new release using GitHub and upload the JAR file you created.

      +
    8. +
    +
    +
    +
    +

    7.6. Managing Dependencies

    +
    +

    A project often depends on third-party libraries. For example, Address Book depends on the Jackson library for XML parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives.
    +a. Include those libraries in the repo (this bloats the repo size)
    +b. Require developers to download those libraries manually (this creates extra work for developers)

    +
    +
    +
    +
    +
    +

    Appendix A: Suggested Programming Tasks to Get Started

    +
    +
    +

    Suggested path for new programmers:

    +
    +
    +
      +
    1. +

      First, add small local-impact (i.e. the impact of the change does not go beyond the component) enhancements to one component at a time. Some suggestions are given in Improving each component.

      +
    2. +
    3. +

      Next, add a feature that touches multiple components to learn how to implement an end-to-end feature across all components. Creating a new command: remark explains how to go about adding such a feature.

      +
    4. +
    +
    +
    +

    A.1. Improving each component

    +
    +

    Each individual exercise in this section is component-based (i.e. you would not need to modify the other components to get it to work).

    +
    +

    Logic component

    +
    +

    Scenario: You are in charge of logic. During dog-fooding, your team realize that it is troublesome for the user to type the whole command in order to execute a command. Your team devise some strategies to help cut down the amount of typing necessary, and one of the suggestions was to implement aliases for the command words. Your job is to implement such aliases.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Logic component before attempting to modify the Logic component. +
    +
    +
    +
      +
    1. +

      Add a shorthand equivalent alias for each of the individual commands. For example, besides typing clear, the user can also type c to remove all persons in the list.

      +
      +
      +
      +
        +
      • +

        Hints

        +
        + +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          Modify the switch statement in AddressBookParser#parseCommand(String) such that both the proper command word and alias can be used to execute the same intended command.

          +
        • +
        • +

          Add new tests for each of the aliases that you have added.

          +
        • +
        • +

          Update the user guide to document the new aliases.

          +
        • +
        • +

          See this PR for the full solution.

          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    +
    +

    Model component

    +
    +

    Scenario: You are in charge of model. One day, the logic-in-charge approaches you for help. He wants to implement a command such that the user is able to remove a particular tag from everyone in the address book, but the model API does not support such a functionality at the moment. Your job is to implement an API method, so that your teammate can use your API to implement his command.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Model component before attempting to modify the Model component. +
    +
    +
    +
      +
    1. +

      Add a removeTag(Tag) method. The specified tag will be removed from everyone in the address book.

      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          The Model and the AddressBook API need to be updated.

          +
        • +
        • +

          Think about how you can use SLAP to design the method. Where should we place the main logic of deleting tags?

          +
        • +
        • +

          Find out which of the existing API methods in AddressBook and Person classes can be used to implement the tag removal logic. AddressBook allows you to update a person, and Person allows you to update the tags.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          Implement a removeTag(Tag) method in AddressBook. Loop through each person, and remove the tag from each person.

          +
        • +
        • +

          Add a new API method deleteTag(Tag) in ModelManager. Your ModelManager should call AddressBook#removeTag(Tag).

          +
        • +
        • +

          Add new tests for each of the new public methods that you have added.

          +
        • +
        • +

          See this PR for the full solution.

          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    +
    +

    Ui component

    +
    +

    Scenario: You are in charge of ui. During a beta testing session, your team is observing how the users use your address book application. You realize that one of the users occasionally tries to delete non-existent tags from a contact, because the tags all look the same visually, and the user got confused. Another user made a typing mistake in his command, but did not realize he had done so because the error message wasn’t prominent enough. A third user keeps scrolling down the list, because he keeps forgetting the index of the last person in the list. Your job is to implement improvements to the UI to solve all these problems.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at UI component before attempting to modify the UI component. +
    +
    +
    +
      +
    1. +

      Use different colors for different tags inside person cards. For example, friends tags can be all in brown, and colleagues tags can be all in yellow.

      +
      +

      Before

      +
      +
      +
      +getting started ui tag before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui tag after +
      +
      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          The tag labels are created inside the PersonCard constructor (new Label(tag.tagName)). JavaFX’s Label class allows you to modify the style of each Label, such as changing its color.

          +
        • +
        • +

          Use the .css attribute -fx-background-color to add a color.

          +
        • +
        • +

          You may wish to modify DarkTheme.css to include some pre-defined colors using css, especially if you have experience with web-based css.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          You can modify the existing test methods for PersonCard 's to include testing the tag’s color as well.

          +
        • +
        • +

          See this PR for the full solution.

          +
          +
            +
          • +

            The PR uses the hash code of the tag names to generate a color. This is deliberately designed to ensure consistent colors each time the application runs. You may wish to expand on this design to include additional features, such as allowing users to set their own tag colors, and directly saving the colors to storage, so that tags retain their colors even if the hash code algorithm changes.

            +
          • +
          +
          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    3. +

      Modify NewResultAvailableEvent such that ResultDisplay can show a different style on error (currently it shows the same regardless of errors).

      +
      +

      Before

      +
      +
      +
      +getting started ui result before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui result after +
      +
      +
      +
      +
      + +
      +
      +
      +
    4. +
    5. +

      Modify the StatusBarFooter to show the total number of people in the address book.

      +
      +

      Before

      +
      +
      +
      +getting started ui status before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui status after +
      +
      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          StatusBarFooter.fxml will need a new StatusBar. Be sure to set the GridPane.columnIndex properly for each StatusBar to avoid misalignment!

          +
        • +
        • +

          StatusBarFooter needs to initialize the status bar on application start, and to update it accordingly whenever the address book is updated.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        + +
        +
      • +
      +
      +
      +
      +
    6. +
    +
    +

    Storage component

    +
    +

    Scenario: You are in charge of storage. For your next project milestone, your team plans to implement a new feature of saving the address book to the cloud. However, the current implementation of the application constantly saves the address book after the execution of each command, which is not ideal if the user is working on limited internet connection. Your team decided that the application should instead save the changes to a temporary local backup file first, and only upload to the cloud after the user closes the application. Your job is to implement a backup API for the address book storage.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Storage component before attempting to modify the Storage component. +
    +
    +
    +
      +
    1. +

      Add a new method backupAddressBook(ReadOnlyAddressBook), so that the address book can be saved in a fixed temporary location.

      +
      +
      +
      + +
      +
      +
      +
    2. +
    +
    +
    +
    +

    A.2. Creating a new command: remark

    +
    +

    By creating this command, you will get a chance to learn how to implement a feature end-to-end, touching all major components of the app.

    +
    +
    +

    Scenario: You are a software maintainer for addressbook, as the former developer team has moved on to new projects. The current users of your application have a list of new feature requests that they hope the software will eventually have. The most popular request is to allow adding additional comments/notes about a particular contact, by providing a flexible remark field for each contact, rather than relying on tags alone. After designing the specification for the remark command, you are convinced that this feature is worth implementing. Your job is to implement the remark command.

    +
    +
    +

    A.2.1. Description

    +
    +

    Edits the remark for a person specified in the INDEX.
    +Format: remark INDEX r/[REMARK]

    +
    +
    +

    Examples:

    +
    +
    +
      +
    • +

      remark 1 r/Likes to drink coffee.
      +Edits the remark for the first person to Likes to drink coffee.

      +
    • +
    • +

      remark 1 r/
      +Removes the remark for the first person.

      +
    • +
    +
    +
    +
    +

    A.2.2. Step-by-step Instructions

    +
    +
    [Step 1] Logic: Teach the app to accept 'remark' which does nothing
    +
    +

    Let’s start by teaching the application how to parse a remark command. We will add the logic of remark later.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a RemarkCommand that extends Command. Upon execution, it should just throw an Exception.

      +
    2. +
    3. +

      Modify AddressBookParser to accept a RemarkCommand.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add RemarkCommandTest that tests that execute() throws an Exception.

      +
    2. +
    3. +

      Add new test method to AddressBookParserTest, which tests that typing "remark" returns an instance of RemarkCommand.

      +
    4. +
    +
    +
    +
    +
    [Step 2] Logic: Teach the app to accept 'remark' arguments
    +
    +

    Let’s teach the application to parse arguments that our remark command will accept. E.g. 1 r/Likes to drink coffee.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Modify RemarkCommand to take in an Index and String and print those two parameters as the error message.

      +
    2. +
    3. +

      Add RemarkCommandParser that knows how to parse two arguments, one index and one with prefix 'r/'.

      +
    4. +
    5. +

      Modify AddressBookParser to use the newly implemented RemarkCommandParser.

      +
    6. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify RemarkCommandTest to test the RemarkCommand#equals() method.

      +
    2. +
    3. +

      Add RemarkCommandParserTest that tests different boundary values +for RemarkCommandParser.

      +
    4. +
    5. +

      Modify AddressBookParserTest to test that the correct command is generated according to the user input.

      +
    6. +
    +
    +
    +
    +
    [Step 3] Ui: Add a placeholder for remark in PersonCard
    +
    +

    Let’s add a placeholder on all our PersonCard s to display a remark for each person later.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a Label with any random text inside PersonListCard.fxml.

      +
    2. +
    3. +

      Add FXML annotation in PersonCard to tie the variable to the actual label.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify PersonCardHandle so that future tests can read the contents of the remark label.

      +
    2. +
    +
    +
    +
    +
    [Step 4] Model: Add Remark class
    +
    +

    We have to properly encapsulate the remark in our Person class. Instead of just using a String, let’s follow the conventional class structure that the codebase already uses by adding a Remark class.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add Remark to model component (you can copy from Address, remove the regex and change the names accordingly).

      +
    2. +
    3. +

      Modify RemarkCommand to now take in a Remark instead of a String.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add test for Remark, to test the Remark#equals() method.

      +
    2. +
    +
    +
    +
    +
    [Step 5] Model: Modify Person to support a Remark field
    +
    +

    Now we have the Remark class, we need to actually use it inside Person.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add getRemark() in Person.

      +
    2. +
    3. +

      You may assume that the user will not be able to use the add and edit commands to modify the remarks field (i.e. the person will be created without a remark).

      +
    4. +
    5. +

      Modify SampleDataUtil to add remarks for the sample data (delete your addressBook.xml so that the application will load the sample data when you launch it.)

      +
    6. +
    +
    +
    +
    +
    [Step 6] Storage: Add Remark field to XmlAdaptedPerson class
    +
    +

    We now have Remark s for Person s, but they will be gone when we exit the application. Let’s modify XmlAdaptedPerson to include a Remark field so that it will be saved.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a new Xml field for Remark.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Fix invalidAndValidPersonAddressBook.xml, typicalPersonsAddressBook.xml, validAddressBook.xml etc., such that the XML tests will not fail due to a missing <remark> element.

      +
    2. +
    +
    +
    +
    +
    [Step 6b] Test: Add withRemark() for PersonBuilder
    +
    +

    Since Person can now have a Remark, we should add a helper method to PersonBuilder, so that users are able to create remarks when building a Person.

    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add a new method withRemark() for PersonBuilder. This method will create a new Remark for the person that it is currently building.

      +
    2. +
    3. +

      Try and use the method on any sample Person in TypicalPersons.

      +
    4. +
    +
    +
    +
    +
    [Step 7] Ui: Connect Remark field to PersonCard
    +
    +

    Our remark label in PersonCard is still a placeholder. Let’s bring it to life by binding it with the actual remark field.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Modify PersonCard's constructor to bind the Remark field to the Person 's remark.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify GuiTestAssert#assertCardDisplaysPerson(…​) so that it will compare the now-functioning remark label.

      +
    2. +
    +
    +
    +
    +
    [Step 8] Logic: Implement RemarkCommand#execute() logic
    +
    +

    We now have everything set up…​ but we still can’t modify the remarks. Let’s finish it up by adding in actual logic for our remark command.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Replace the logic in RemarkCommand#execute() (that currently just throws an Exception), with the actual logic to modify the remarks of a person.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Update RemarkCommandTest to test that the execute() logic works.

      +
    2. +
    +
    +
    +
    +
    +

    A.2.3. Full Solution

    +
    +

    See this PR for the step-by-step solution.

    +
    +
    +
    +
    +
    +
    +

    Appendix B: Product Scope

    +
    +
    +

    Target user profile:

    +
    +
    +
      +
    • +

      has a need to manage a significant number of volunteers and social welfare events

      +
    • +
    • +

      prefer desktop apps over other types

      +
    • +
    • +

      can type fast

      +
    • +
    • +

      prefers typing over mouse input

      +
    • +
    • +

      is reasonably comfortable using CLI apps

      +
    • +
    +
    +
    +

    Value proposition: manage volunteers and events faster than a typical mouse/GUI driven app, and derive insights from them

    +
    +
    +
    +
    +

    Appendix C: User Stories

    +
    +
    +

    Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

    +
    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PriorityAs a …​I want to …​So that I can…​

    * * *

    new manager

    see usage instructions

    refer to instructions when I forget how to use the App

    * * *

    manager

    register a new volunteer

    begin tracking their volunteer work & hours

    * * *

    manager

    view a volunteer’s details

    track their volunteer work & hours

    * * *

    manager

    update volunteer details

    keep their details updated for administrative & other purposes

    * *

    manager

    archive volunteer details

    stash away unnecessary volunteer records, yet have the option of restoring them if needed

    * *

    manager

    restore volunteer record

    restore volunteer details that were archived

    * * *

    manager

    delete volunteer record

    permanently remove volunteer record from database

    * *

    manager

    import volunteer record details

    add multiple volunteer data into the database

    *

    manager

    export volunteer record details

    have a backup of the volunteer records

    * * *

    manager

    create new event

    have a record of the event details

    * * *

    manager

    update event details

    ensure that event details are kept up to date

    * * *

    manager

    view event details

    verify the details of the event

    * * *

    manager

    delete event details

    remove the event from the list if event details were entered wrongly or cancelled

    * *

    manager

    archive event details

    stash away event records yet have the option of restoring them

    * *

    manager

    restore event details

    restore event details that were archived

    * *

    manager

    import event data

    add multiple events at once

    *

    manager

    export event data

    have a backup of event details

    * * *

    manager

    add volunteer hours to volunteer profiles

    keep track of the number of hours spent by the volunteer volunteering

    * * *

    manager

    edit volunteer hours in volunteer profiles

    maintain accuracy of information pertaining to volunteer work

    *

    manager

    export certification document from volunteers’ data

    provide volunteers with official acknowledgement of service rendered to organization

    * *

    manager

    view spread of volunteers across events

    determine which are the more popular events

    * *

    manager

    view demographics of volunteers

    know what my volunteer profiles are like

    * *

    manager

    auto-complete commands

    execute commands more efficiently

    +
    +

    {To be updated and expanded}

    +
    +
    +
    +
    +

    Appendix D: Use Cases

    +
    +
    +

    (For all use cases below, the System is the AddressBook and the Actor is the user, unless specified otherwise)

    +
    + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Use Cases
    +

    UC01: Register new volunteer
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):

    +
    +
    +
      +
    • +

      New user will be created only if data entered is valid and there is sufficient memory space to store the new user

      +
    • +
    +
    +
    +

    MSS:

    +
    +
    +
      +
    1. +

      Admin chooses to add a new volunteer

      +
    2. +
    3. +

      Application requests for details of the volunteer

      +
    4. +
    5. +

      Admin enters and submits the requested details

      +
    6. +
    7. +

      Application creates the volunteer and notifies Admin of success
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      3a. The entered data is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the entered data is invalid
        +Use case resumes from step 3.

        +
      • +
      +
      +
    • +
    +
    +

    UC02: View volunteer details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin requests to view a volunteer profile at a specific index in the list

      +
    6. +
    7. +

      Application displays the volunteer profile
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC03: Update volunteer details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin enters the index and updated details of the volunteer to be changed

      +
    6. +
    7. +

      Application updates the volunteer details and notifies of the successful update
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    • +

      3b. The given details are invalid

      +
      +
        +
      • +

        3b1. Application shows an error message that the details given are invalid
        +Use case resumes at step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC04: Delete volunteer record
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):

    +
    +
    +
      +
    • +

      Volunteer record will be deleted only if index specified is valid

      +
    • +
    +
    +
    +

    MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin requests to delete a volunteer at a specific index in the list

      +
    6. +
    7. +

      Application deletes the volunteer

      +
    8. +
    9. +

      Application displays a successful deletion message to Admin
      +Use case ends.

      +
    10. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC05: Create new event
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to create a new event

      +
    2. +
    3. +

      Application requests for details of the event

      +
    4. +
    5. +

      Admin enters details of the event to be created

      +
    6. +
    7. +

      Application creates the event and shows successful creation message
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The given details is invalid

      +
      +
        +
      • +

        2a1. Application shows an error message that given details is invalid
        +Use case resumes from step 1.

        +
      • +
      +
      +
    • +
    +
    +

    UC06: Update event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin enters the index and updated details of the event to be changed

      +
    6. +
    7. +

      Application updates the event details and notifies of the successful update
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The event list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    • +

      3b. The given details are invalid

      +
      +
        +
      • +

        3b1. Application shows an error message that the details given are invalid
        +Use case resumes at step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC07: View event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin requests to view event details at a specific index in the list

      +
    6. +
    7. +

      Application displays the details of the event
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The event list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC08: Delete event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin requests to delete event details at a specific index in the list

      +
    6. +
    7. +

      Application requests for confirmation

      +
    8. +
    9. +

      Admin confirms the deletion

      +
    10. +
    11. +

      Application deletes the event details

      +
    12. +
    13. +

      Application displays a successful deletion message to Admin
      +Use case ends.

      +
    14. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The events list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC09: Add volunteer hours to volunteer profile
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Application displays the volunteer profile UC02

      +
    2. +
    3. +

      Admin requests to list all volunteer hours of the volunteer

      +
    4. +
    5. +

      Application displays a list of all volunteer hours of the volunteer

      +
    6. +
    7. +

      Admin chooses to add volunteer hours

      +
    8. +
    9. +

      Application requests for details of the volunteer hours

      +
    10. +
    11. +

      Admin enters the requested details

      +
    12. +
    13. +

      Application requests for confirmation

      +
    14. +
    15. +

      Admin confirms the addition

      +
    16. +
    17. +

      Application adds the volunteer hours and notifies Admin of success
      +Use case ends.

      +
    18. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer hours list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer hours list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      8a. Application detects an error in the entered data

      +
      +
        +
      • +

        8a1. Application requests for the correct data

        +
      • +
      • +

        8a2. Admin enters new data

        +
      • +
      • +

        Steps 8a1-8a2 are repeated until the data entered is valid
        +Use case resumes from step 9.

        +
      • +
      +
      +
    • +
    +
    +

    UC10: Edit volunteer hours in volunteer profile
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Application displays the volunteer profile UC02

      +
    2. +
    3. +

      Admin requests to list all volunteer hours of the volunteer

      +
    4. +
    5. +

      Application displays a list of all volunteer hours of the volunteer

      +
    6. +
    7. +

      Admin enters the index and the details of the volunteer hours to be changed

      +
    8. +
    9. +

      Application updates the volunteer hours and notifies Admin of success
      +Use case ends.

      +
    10. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer hours list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer hours list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      4a. The given index is invalid

      +
      +
        +
      • +

        Application shows an error message that the index given is invalid
        +Use case resumes from step 5.

        +
      • +
      +
      +
    • +
    • +

      4b. The given details are invalid

      +
      +
        +
      • +

        4b1. Application shows an error message that the details given is invalid
        +Use case resumes from step 5.

        +
      • +
      +
      +
    • +
    +
    +
    +

    {More to be added}

    +
    +
    +
    +
    +

    Appendix E: Non Functional Requirements

    +
    +
    +
      +
    • +

      Reasonable response time (2-3s)

      +
    • +
    • +

      Backward compatibility by being able to transfer data from older versions of the application when updating each version

      +
    • +
    • +

      Should work on any mainstream OS as long as it has Java 9 or higher installed.

      +
    • +
    • +

      Files containing volunteer data should be encrypted

      +
    • +
    • +

      A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

      +
    • +
    +
    +
    +

    {More to be added}

    +
    +
    +
    +
    +

    Appendix F: Glossary

    +
    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TermExplanation

    Volunteer Manager

    Staff working for the organization, who handles administrative issues pertaining to volunteer and event management

    Volunteer

    A person who has signed up and has a profile with the organization

    Admin

    Our application’s intended target user (Most likely the volunteer manager)

    Application

    Refers to our system

    UCXX

    Use case with XX being the use case ID

    Mainstream OS

    Windows, Linux, Unix, OS-X

    +
    +
    +
    +

    Appendix G: Product Survey

    +
    +
    +

    Product Name

    +
    +
    +

    Author: …​

    +
    +
    +

    Pros:

    +
    +
    +
      +
    • +

      …​

      +
    • +
    • +

      …​

      +
    • +
    +
    +
    +

    Cons:

    +
    +
    +
      +
    • +

      …​

      +
    • +
    • +

      …​

      +
    • +
    +
    +
    +
    +
    +

    Appendix H: Instructions for Manual Testing

    +
    +
    +

    Given below are instructions to test the app manually.

    +
    +
    + + + + + +
    +
    Note
    +
    +These instructions only provide a starting point for testers to work on; testers are expected to do more exploratory testing. +
    +
    +
    +

    H.1. Launch and Shutdown

    +
    +
      +
    1. +

      Initial launch

      +
      +
        +
      1. +

        Download the jar file and copy into an empty folder

        +
      2. +
      3. +

        Double-click the jar file
        +Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.

        +
      4. +
      +
      +
    2. +
    3. +

      Saving window preferences

      +
      +
        +
      1. +

        Resize the window to an optimum size. Move the window to a different location. Close the window.

        +
      2. +
      3. +

        Re-launch the app by double-clicking the jar file.
        +Expected: The most recent window size and location is retained.

        +
      4. +
      +
      +
    4. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +

    H.2. Deleting a person

    +
    +
      +
    1. +

      Deleting a person while all persons are listed

      +
      +
        +
      1. +

        Prerequisites: List all persons using the list command. Multiple persons in the list.

        +
      2. +
      3. +

        Test case: delete 1
        +Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.

        +
      4. +
      5. +

        Test case: delete 0
        +Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.

        +
      6. +
      7. +

        Other incorrect delete commands to try: delete, delete x (where x is larger than the list size) {give more}
        +Expected: Similar to previous.

        +
      8. +
      +
      +
    2. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +

    H.3. Saving data

    +
    +
      +
    1. +

      Dealing with missing/corrupted data files

      +
      +
        +
      1. +

        {explain how to simulate a missing/corrupted file and the expected behavior}

        +
      2. +
      +
      +
    2. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +
    +
    + + + \ No newline at end of file From c77e3d12025d054a1520e68102cc479a448d1716 Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 20:37:51 +0800 Subject: [PATCH 116/655] Fix formatting issues --- .../java/seedu/address/model/event/Event.java | 4 +- .../address/storage/XmlAdaptedEvent.java | 4 +- .../address/storage/XmlAdaptedEventTest.java | 37 ++++++++++--------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index ac63c1b592d8..55e5a8a2e373 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -130,7 +130,9 @@ public static boolean isValidStartAndEndTime(Time startTime, Time endTime) { return startTime.isLessThanOrEqualTo(endTime); } - public EventId getEventId() { return eventId; } + public EventId getEventId() { + return eventId; + } public Name getName() { return name; diff --git a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java index 62bae4e6ba6e..f70fc1b0abe5 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedEvent.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedEvent.java @@ -169,8 +169,8 @@ public Event toModelType() throws IllegalValueException { final Set modelTags = new HashSet<>(eventTags); - return new Event(modelEventId, modelName, modelLocation, modelStartDate, modelEndDate, modelStartTime, modelEndTime, - modelDescription, modelTags); + return new Event(modelEventId, modelName, modelLocation, modelStartDate, modelEndDate, modelStartTime, + modelEndTime, modelDescription, modelTags); } @Override diff --git a/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java b/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java index 0d9bdeaf5104..7093f96aa350 100644 --- a/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java +++ b/src/test/java/seedu/address/storage/XmlAdaptedEventTest.java @@ -28,6 +28,7 @@ public class XmlAdaptedEventTest { private static final String INVALID_DESCRIPTION = " "; private static final String INVALID_TAG = "#friend"; + private static final int VALID_ID = 1; private static final String VALID_NAME = YOUTH.getName().toString(); private static final String VALID_LOCATION = YOUTH.getLocation().toString(); private static final String VALID_START_DATE = YOUTH.getStartDate().toString(); @@ -48,7 +49,7 @@ public void toModelType_validEventDetails_returnsEvent() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(INVALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, INVALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Name.MESSAGE_NAME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -56,7 +57,7 @@ public void toModelType_invalidName_throwsIllegalValueException() { @Test public void toModelType_nullName_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(null, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, null, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -65,7 +66,7 @@ public void toModelType_nullName_throwsIllegalValueException() { @Test public void toModelType_invalidLocation_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, INVALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, INVALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Location.MESSAGE_LOCATION_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -73,7 +74,7 @@ public void toModelType_invalidLocation_throwsIllegalValueException() { @Test public void toModelType_nullLocation_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, null, VALID_START_DATE, VALID_END_DATE, + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, null, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Location.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -82,7 +83,7 @@ public void toModelType_nullLocation_throwsIllegalValueException() { @Test public void toModelType_invalidStartDate_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, INVALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, INVALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Date.MESSAGE_DATE_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -90,7 +91,7 @@ public void toModelType_invalidStartDate_throwsIllegalValueException() { @Test public void toModelType_nullStartDate_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, null, VALID_END_DATE, + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, null, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -99,7 +100,7 @@ public void toModelType_nullStartDate_throwsIllegalValueException() { @Test public void toModelType_invalidEndDate_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, INVALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, INVALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Date.MESSAGE_DATE_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -107,7 +108,7 @@ public void toModelType_invalidEndDate_throwsIllegalValueException() { @Test public void toModelType_nullEndDate_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, null, + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, null, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -116,7 +117,7 @@ public void toModelType_nullEndDate_throwsIllegalValueException() { @Test public void toModelType_invalidStartTime_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, INVALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Time.MESSAGE_TIME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -124,8 +125,8 @@ public void toModelType_invalidStartTime_throwsIllegalValueException() { @Test public void toModelType_nullStartTime_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, - null, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, + VALID_END_DATE, null, VALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); } @@ -133,7 +134,7 @@ public void toModelType_nullStartTime_throwsIllegalValueException() { @Test public void toModelType_invalidEndTime_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, INVALID_END_TIME, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Time.MESSAGE_TIME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -141,8 +142,8 @@ public void toModelType_invalidEndTime_throwsIllegalValueException() { @Test public void toModelType_nullEndTime_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, - VALID_START_TIME, null, VALID_DESCRIPTION, VALID_TAGS); + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, + VALID_END_DATE, VALID_START_TIME, null, VALID_DESCRIPTION, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); } @@ -150,7 +151,7 @@ public void toModelType_nullEndTime_throwsIllegalValueException() { @Test public void toModelType_invalidDescription_throwsIllegalValueException() { XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, INVALID_DESCRIPTION, VALID_TAGS); String expectedMessage = Description.MESSAGE_DESCRIPTION_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); @@ -158,8 +159,8 @@ public void toModelType_invalidDescription_throwsIllegalValueException() { @Test public void toModelType_nullDescription_throwsIllegalValueException() { - XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, - VALID_START_TIME, VALID_END_TIME, null, VALID_TAGS); + XmlAdaptedEvent event = new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, + VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, null, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Description.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, event::toModelType); } @@ -169,7 +170,7 @@ public void toModelType_invalidTags_throwsIllegalValueException() { List invalidTags = new ArrayList<>(VALID_TAGS); invalidTags.add(new XmlAdaptedTag(INVALID_TAG)); XmlAdaptedEvent event = - new XmlAdaptedEvent(VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, + new XmlAdaptedEvent(VALID_ID, VALID_NAME, VALID_LOCATION, VALID_START_DATE, VALID_END_DATE, VALID_START_TIME, VALID_END_TIME, VALID_DESCRIPTION, invalidTags); Assert.assertThrows(IllegalValueException.class, event::toModelType); } From 7e7ce96b44be45f827ecf9dc8ed72855ff31e6a5 Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 20:54:05 +0800 Subject: [PATCH 117/655] Fix tests for XmlSerializableAddressBookTest.java --- .../duplicateEventAddressBook.xml | 2 ++ .../XmlSerializableAddressBookTest/typicalEventsAddressBook.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml index 72691feef6d7..527f42c3c3b1 100644 --- a/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/duplicateEventAddressBook.xml @@ -1,6 +1,7 @@ + 1 Blood Donation Drive 2018 750E Chai Chee Road 02-10-2018 @@ -14,6 +15,7 @@ + 2 Blood Donation Drive 2018 750E Chai Chee Road 02-10-2018 diff --git a/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml index bd539b0d863e..75c2060a586d 100644 --- a/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/typicalEventsAddressBook.xml @@ -2,6 +2,7 @@ + 1 Blood Donation Drive 2018 750E, Chai Chee Road, #08-111 02-10-2018 @@ -13,6 +14,7 @@ Public + 2 Youth Humanitarian Challenge 29 Havelock Road 28-09-2018 From 14062385eee7d66ad351b136f9ce50fba8abc75b Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 21:04:33 +0800 Subject: [PATCH 118/655] Fixed Travis error --- docs/DeveloperGuide.html | 3487 -------------------------------------- 1 file changed, 3487 deletions(-) delete mode 100644 docs/DeveloperGuide.html diff --git a/docs/DeveloperGuide.html b/docs/DeveloperGuide.html deleted file mode 100644 index c164a86acf56..000000000000 --- a/docs/DeveloperGuide.html +++ /dev/null @@ -1,3487 +0,0 @@ - - - - - - - -SocialCare - Developer Guide - - - - - -
    - -
    -

    1. Introduction

    -
    -
    -

    TBC

    -
    -
    -
    -
    -

    2. Setting up

    -
    -
    -

    2.1. Prerequisites

    -
    -
      -
    1. -

      JDK 9 or later

      -
      - - - - - -
      -
      Warning
      -
      -JDK 10 on Windows will fail to run tests in headless mode due to a JavaFX bug. -Windows developers are highly recommended to use JDK 9. -
      -
      -
    2. -
    3. -

      IntelliJ IDE

      -
      - - - - - -
      -
      Note
      -
      -IntelliJ by default has Gradle and JavaFx plugins installed.
      -Do not disable them. If you have disabled them, go to File > Settings > Plugins to re-enable them. -
      -
      -
    4. -
    -
    -
    -
    -

    2.2. Setting up the project in your computer

    -
    -
      -
    1. -

      Fork this repo, and clone the fork to your computer

      -
    2. -
    3. -

      Open IntelliJ (if you are not in the welcome screen, click File > Close Project to close the existing project dialog first)

      -
    4. -
    5. -

      Set up the correct JDK version for Gradle

      -
      -
        -
      1. -

        Click Configure > Project Defaults > Project Structure

        -
      2. -
      3. -

        Click New…​ and find the directory of the JDK

        -
      4. -
      -
      -
    6. -
    7. -

      Click Import Project

      -
    8. -
    9. -

      Locate the build.gradle file and select it. Click OK

      -
    10. -
    11. -

      Click Open as Project

      -
    12. -
    13. -

      Click OK to accept the default settings

      -
    14. -
    15. -

      Open a console and run the command gradlew processResources (Mac/Linux: ./gradlew processResources). It should finish with the BUILD SUCCESSFUL message.
      -This will generate all resources required by the application and tests.

      -
    16. -
    17. -

      Open XmlAdaptedPerson.java and MainWindow.java and check for any code errors

      -
      -
        -
      1. -

        Due to an ongoing issue with some of the newer versions of IntelliJ, code errors may be detected even if the project can be built and run successfully

        -
      2. -
      3. -

        To resolve this, place your cursor over any of the code section highlighted in red. Press kbd:[ALT + ENTER], and select Add '--add-modules=…​' to module compiler options for each error

        -
      4. -
      -
      -
    18. -
    19. -

      Repeat this for the test folder as well (e.g. check XmlUtilTest.java and HelpWindowTest.java for code errors, and if so, resolve it the same way)

      -
    20. -
    -
    -
    -
    -

    2.3. Verifying the setup

    -
    -
      -
    1. -

      Run the seedu.address.MainApp and try a few commands

      -
    2. -
    3. -

      Run the tests to ensure they all pass.

      -
    4. -
    -
    -
    -
    -

    2.4. Configurations to do before writing code

    -
    -

    2.4.1. Configuring the coding style

    -
    -

    This project follows oss-generic coding standards. IntelliJ’s default style is mostly compliant with ours but it uses a different import order from ours. To rectify,

    -
    -
    -
      -
    1. -

      Go to File > Settings…​ (Windows/Linux), or IntelliJ IDEA > Preferences…​ (macOS)

      -
    2. -
    3. -

      Select Editor > Code Style > Java

      -
    4. -
    5. -

      Click on the Imports tab to set the order

      -
      -
        -
      • -

        For Class count to use import with '*' and Names count to use static import with '*': Set to 999 to prevent IntelliJ from contracting the import statements

        -
      • -
      • -

        For Import Layout: The order is import static all other imports, import java.*, import javax.*, import org.*, import com.*, import all other imports. Add a <blank line> between each import

        -
      • -
      -
      -
    6. -
    -
    -
    -

    Optionally, you can follow the UsingCheckstyle.adoc document to configure Intellij to check style-compliance as you write code.

    -
    -
    -
    -

    2.4.2. Updating documentation to match your fork

    -
    -

    After forking the repo, the documentation will still have the SE-EDU branding and refer to the se-edu/addressbook-level4 repo.

    -
    -
    -

    If you plan to develop this fork as a separate product (i.e. instead of contributing to se-edu/addressbook-level4), you should do the following:

    -
    -
    -
      -
    1. -

      Configure the site-wide documentation settings in build.gradle, such as the site-name, to suit your own project.

      -
    2. -
    3. -

      Replace the URL in the attribute repoURL in DeveloperGuide.adoc and UserGuide.adoc with the URL of your fork.

      -
    4. -
    -
    -
    -
    -

    2.4.3. Setting up CI

    -
    -

    Set up Travis to perform Continuous Integration (CI) for your fork. See UsingTravis.adoc to learn how to set it up.

    -
    -
    -

    After setting up Travis, you can optionally set up coverage reporting for your team fork (see UsingCoveralls.adoc).

    -
    -
    - - - - - -
    -
    Note
    -
    -Coverage reporting could be useful for a team repository that hosts the final version but it is not that useful for your personal fork. -
    -
    -
    -

    Optionally, you can set up AppVeyor as a second CI (see UsingAppVeyor.adoc).

    -
    -
    - - - - - -
    -
    Note
    -
    -Having both Travis and AppVeyor ensures your App works on both Unix-based platforms and Windows-based platforms (Travis is Unix-based and AppVeyor is Windows-based) -
    -
    -
    -
    -

    2.4.4. Getting started with coding

    -
    -

    When you are ready to start coding,

    -
    -
    -
      -
    1. -

      Get some sense of the overall design by reading Architecture.

      -
    2. -
    3. -

      Take a look at Suggested Programming Tasks to Get Started.

      -
    4. -
    -
    -
    -
    -
    -
    -
    -

    3. Design

    -
    -
    -

    This section will describe the design architecture and the various components of the system.

    -
    -
    -

    3.1. Architecture

    -
    -

    This section describes the design architecture used by the system.

    -
    -
    - - - - - -
    -
    Tip
    -
    -The .pptx files used to create diagrams in this document can be found in the diagrams folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose Save as picture. -
    -
    -
    -
    -Architecture -
    -
    Figure 1. Architecture diagram
    -
    -
    -

    The Architecture Diagram given above explains the high-level design of the App.

    -
    -
    -
    -

    3.2. Events-Driven nature of the design

    -
    -

    SocialCare uses an event-driven architecture style.

    -
    -
    -

    The Sequence Diagram below shows how the components interact for the scenario where the user issues the command delete 1.

    -
    -
    -
    -SDforDeletePerson -
    -
    Figure 2. Component interactions for delete 1 command (part 1)
    -
    -
    - - - - - -
    -
    Note
    -
    -Note how the Model simply raises a AddressBookChangedEvent when the Address Book data are changed, instead of asking the Storage to save the updates to the hard disk. -
    -
    -
    -

    The figure below shows how the EventsCenter reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time.

    -
    -
    -
    -SDforDeletePersonEventHandling -
    -
    Figure 3. Component interactions for delete 1 command (part 2)
    -
    -
    - - - - - -
    -
    Note
    -
    -Note how the event is propagated through the EventsCenter to the Storage and UI without Model having to be coupled to either of them. This is an example of how an event-driven approach helps us to reduce direct coupling between components. -
    -
    -
    -
    -

    3.3. Components

    -
    -

    There are 6 main components: Main, Commons, UI, Logic, Model, and Storage.
    -Given below is a brief overview of each component.

    -
    -
    -

    Main is the starting point of the system, which encapsulates the other components.

    -
    -
    -

    Commons represents a collection of classes used by multiple components.

    -
    -
    -

    UI contains the user interface classes used by the application.

    -
    -
    -

    Logic used to execute user commands. It is also known as the command executor.

    -
    -
    -

    Model holds the data of the application in-memory.

    -
    -
    -

    Storage which allows reading and writing of data to the hard disk.

    -
    -
    -

    For the UI, Logic, Model and Storage components they:

    -
    -
    -
      -
    • -

      Define their API in an interface with the same name as the Component.

      -
    • -
    • -

      Expose their functionality using a {Component Name}Manager class.

      -
    • -
    -
    -
    -

    For example, the Logic component (see the class diagram given below) defines its API in the Logic.java interface and exposes its functionality using the LogicManager.java class.

    -
    -
    -
    -LogicClassDiagram -
    -
    Figure 4. Class diagram of the Logic component
    -
    -
    -

    3.3.1. Main component

    -
    -

    Main has only one class called MainApp. It is responsible for:

    -
    -
    -
      -
    • -

      At app launch: Initializing the components in the correct sequence, and connecting them up with each other.

      -
    • -
    • -

      At shut down: Shutting down the components and invoking cleanup methods where necessary.

      -
    • -
    -
    -
    -
    -

    3.3.2. Commons component

    -
    -

    Commons has classes used by multiple components. The classes are in the seedu.addressbook.commons package.

    -
    -
    -

    Two of those classes play important roles at the architecture level.

    -
    -
    -
      -
    • -

      EventsCenter : This class (written using Google’s Event Bus library) is used by the different components to communicate with other components using events. (i.e. a form of Event Driven design)

      -
    • -
    • -

      LogsCenter : Used by the classes to write log messages to the App’s log file.

      -
    • -
    -
    -
    -
    -

    3.3.3. UI component

    -
    -

    The UI component contains classes which are responsible for displaying the user interface of the system. The figure below shows the structure of the UI component.

    -
    -
    -
    -UiClassDiagram -
    -
    Figure 5. Structure of the UI component
    -
    -
    -

    API : Ui.java

    -
    -
    -

    The UI component consists of a MainWindow that is made up of parts e.g.CommandBox, ResultDisplay, PersonListPanel, StatusBarFooter, BrowserPanel etc. All these, including the MainWindow, inherits from the abstract UiPart class.

    -
    -
    -

    The UI component uses the JavaFx UI framework. The layout of these UI parts are defined in matching .fxml files that are in the src/main/resources/view folder. For example, the layout of the MainWindow is specified in MainWindow.fxml

    -
    -
    -

    The UI component does the following:

    -
    -
    -
      -
    • -

      Executes user commands using the Logic component.

      -
    • -
    • -

      Binds itself to some data in the Model so that the UI can automatically update when data in the Model changes.

      -
    • -
    • -

      Responds to events raised from various parts of the App and updates the UI accordingly.

      -
    • -
    -
    -
    -
    -

    3.3.4. Logic component

    -
    -

    The Logic component contains classes which are needed to execute user commands. The figure below shows the structure of the Logic component

    -
    -
    -
    -LogicClassDiagram -
    -
    Figure 6. Structure of the Logic component
    -
    -
    -

    API : -Logic.java

    -
    -
    -

    The flow for the Logic component is as follows:

    -
    -
    -
      -
    1. -

      Logic uses the AddressBookParser class to parse the user command.

      -
    2. -
    3. -

      The Command object (which is automatically created in the previous step) is executed by the LogicManager.

      -
    4. -
    5. -

      The executed 'Command' affects the Model (e.g. adding a person) and/or raise events.

      -
    6. -
    7. -

      The result of the command execution from the previous step is encapsulated as a CommandResult object.

      -
    8. -
    9. -

      The CommandResult object is passed back to the UI component.

      -
    10. -
    -
    -
    -

    Given below is the Sequence Diagram for interactions within the Logic component for the execute("delete 1") API call.

    -
    -
    -
    -DeletePersonSdForLogic -
    -
    Figure 7. Interactions inside the Logic component for the delete 1 command
    -
    -
    -
    -

    3.3.5. Model component

    -
    -

    The Model component contains classes which are responsible for managing the data of the application. The figure below shows the structure of the Model component.

    -
    -
    -
    -ModelClassDiagram -
    -
    Figure 8. Structure of the Model Component
    -
    -
    -

    API : Model.java

    -
    -
    -

    The Model component does the following:

    -
    -
    -
      -
    • -

      Stores a UserPref object that represents the user’s preferences.

      -
    • -
    • -

      Stores the Address Book data.

      -
    • -
    • -

      Exposes an unmodifiable ObservableList<Object> that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list changes.

      -
    • -
    -
    -
    -

    Note that the Model component does not depend on any of the other components.

    -
    -
    - - - - - -
    -
    Note
    -
    -As a more OOP model, we can store a Tag list in SocialCare, which Volunteer can reference. This would allow SocialCare to only require one Tag object per unique Tag, instead of each Volunteer needing their own Tag object. An example of how such a model may look like is given below.
    -
    -ModelClassBetterOopDiagram -
    -
    -
    -
    -

    3.3.6. Storage component

    -
    -

    The Storage component contains classes which enables the reading/writing of data to the hard disk. The figure below shows the structure of the Storage component.

    -
    -
    -
    -StorageClassDiagram -
    -
    Figure 9. Structure of the Storage Component
    -
    -
    -

    API : Storage.java

    -
    -
    -

    The Storage component does the following:

    -
    -
    -
      -
    • -

      saves UserPref objects in json format and read it back.

      -
    • -
    • -

      saves the system data in xml format and read it back.

      -
    • -
    -
    -
    -
    -
    -
    -
    -

    4. Implementation

    -
    -
    -

    This section describes some noteworthy details on how certain features are implemented.

    -
    -
    -

    4.1. Undo/Redo feature

    -
    -

    4.1.1. Current Implementation

    -
    -

    The undo/redo mechanism is facilitated by VersionedAddressBook. -It extends AddressBook with an undo/redo history, stored internally as an addressBookStateList and currentStatePointer. -Additionally, it implements the following operations:

    -
    -
    -
      -
    • -

      VersionedAddressBook#commit() — Saves the current address book state in its history.

      -
    • -
    • -

      VersionedAddressBook#undo() — Restores the previous address book state from its history.

      -
    • -
    • -

      VersionedAddressBook#redo() — Restores a previously undone address book state from its history.

      -
    • -
    -
    -
    -

    These operations are exposed in the Model interface as Model#commitAddressBook(), Model#undoAddressBook() and Model#redoAddressBook() respectively.

    -
    -
    -

    Given below is an example usage scenario and how the undo/redo mechanism behaves at each step.

    -
    -
    -

    Step 1. The user launches the application for the first time. The VersionedAddressBook will be initialized with the initial address book state, and the currentStatePointer pointing to that single address book state.

    -
    -
    -
    -UndoRedoStartingStateListDiagram -
    -
    -
    -

    Step 2. The user executes delete 5 command to delete the 5th person in the address book. The delete command calls Model#commitAddressBook(), causing the modified state of the address book after the delete 5 command executes to be saved in the addressBookStateList, and the currentStatePointer is shifted to the newly inserted address book state.

    -
    -
    -
    -UndoRedoNewCommand1StateListDiagram -
    -
    -
    -

    Step 3. The user executes add n/David …​ to add a new person. The add command also calls Model#commitAddressBook(), causing another modified address book state to be saved into the addressBookStateList.

    -
    -
    -
    -UndoRedoNewCommand2StateListDiagram -
    -
    -
    - - - - - -
    -
    Note
    -
    -If a command fails its execution, it will not call Model#commitAddressBook(), so the address book state will not be saved into the addressBookStateList. -
    -
    -
    -

    Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the undo command. The undo command will call Model#undoAddressBook(), which will shift the currentStatePointer once to the left, pointing it to the previous address book state, and restores the address book to that state.

    -
    -
    -
    -UndoRedoExecuteUndoStateListDiagram -
    -
    -
    - - - - - -
    -
    Note
    -
    -If the currentStatePointer is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The undo command uses Model#canUndoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo. -
    -
    -
    -

    The following sequence diagram shows how the undo operation works:

    -
    -
    -
    -UndoRedoSequenceDiagram -
    -
    -
    -

    The redo command does the opposite — it calls Model#redoAddressBook(), which shifts the currentStatePointer once to the right, pointing to the previously undone state, and restores the address book to that state.

    -
    -
    - - - - - -
    -
    Note
    -
    -If the currentStatePointer is at index addressBookStateList.size() - 1, pointing to the latest address book state, then there are no undone address book states to restore. The redo command uses Model#canRedoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. -
    -
    -
    -

    Step 5. The user then decides to execute the command list. Commands that do not modify the address book, such as list, will usually not call Model#commitAddressBook(), Model#undoAddressBook() or Model#redoAddressBook(). Thus, the addressBookStateList remains unchanged.

    -
    -
    -
    -UndoRedoNewCommand3StateListDiagram -
    -
    -
    -

    Step 6. The user executes clear, which calls Model#commitAddressBook(). Since the currentStatePointer is not pointing at the end of the addressBookStateList, all address book states after the currentStatePointer will be purged. We designed it this way because it no longer makes sense to redo the add n/David …​ command. This is the behavior that most modern desktop applications follow.

    -
    -
    -
    -UndoRedoNewCommand4StateListDiagram -
    -
    -
    -

    The following activity diagram summarizes what happens when a user executes a new command:

    -
    -
    -
    -UndoRedoActivityDiagram -
    -
    -
    -
    -

    4.1.2. Design Considerations

    -
    -
    Aspect: How undo & redo executes
    -
    -
      -
    • -

      Alternative 1 (current choice): Saves the entire address book.

      -
      -
        -
      • -

        Pros: Easy to implement.

        -
      • -
      • -

        Cons: May have performance issues in terms of memory usage.

        -
      • -
      -
      -
    • -
    • -

      Alternative 2: Individual command knows how to undo/redo by itself.

      -
      -
        -
      • -

        Pros: Will use less memory (e.g. for delete, just save the person being deleted).

        -
      • -
      • -

        Cons: We must ensure that the implementation of each individual command are correct.

        -
      • -
      -
      -
    • -
    -
    -
    -
    -
    Aspect: Data structure to support the undo/redo commands
    -
    -
      -
    • -

      Alternative 1 (current choice): Use a list to store the history of address book states.

      -
      -
        -
      • -

        Pros: Easy for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.

        -
      • -
      • -

        Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both HistoryManager and VersionedAddressBook.

        -
      • -
      -
      -
    • -
    • -

      Alternative 2: Use HistoryManager for undo/redo

      -
      -
        -
      • -

        Pros: We do not need to maintain a separate list, and just reuse what is already in the codebase.

        -
      • -
      • -

        Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as HistoryManager now needs to do two different things.

        -
      • -
      -
      -
    • -
    -
    -
    -
    -
    -
    -

    4.2. [Proposed] Data Encryption

    -
    -

    {Explain here how the data encryption feature will be implemented}

    -
    -
    -
    -

    4.3. Logging

    -
    -

    We are using java.util.logging package for logging. The LogsCenter class is used to manage the logging levels and logging destinations.

    -
    -
    -
      -
    • -

      The logging level can be controlled using the logLevel setting in the configuration file (See Configuration)

      -
    • -
    • -

      The Logger for a class can be obtained using LogsCenter.getLogger(Class) which will log messages according to the specified logging level

      -
    • -
    • -

      Currently log messages are output through: Console and to a .log file.

      -
    • -
    -
    -
    -

    Logging Levels

    -
    -
    -
      -
    • -

      SEVERE : Critical problem detected which may possibly cause the termination of the application

      -
    • -
    • -

      WARNING : Can continue, but with caution

      -
    • -
    • -

      INFO : Information showing the noteworthy actions by the App

      -
    • -
    • -

      FINE : Details that is not usually noteworthy but may be useful in debugging e.g. print the actual list instead of just its size

      -
    • -
    -
    -
    -
    -

    4.4. Configuration

    -
    -

    Certain properties of the application can be controlled (e.g App name, logging level) through the configuration file (default: config.json).

    -
    -
    -
    -
    -
    -

    5. Documentation

    -
    -
    -

    We use asciidoc for writing documentation.

    -
    -
    - - - - - -
    -
    Note
    -
    -We chose asciidoc over Markdown because asciidoc, although a bit more complex than Markdown, provides more flexibility in formatting. -
    -
    -
    -

    5.1. Editing Documentation

    -
    -

    See UsingGradle.adoc to learn how to render .adoc files locally to preview the end result of your edits. -Alternatively, you can download the AsciiDoc plugin for IntelliJ, which allows you to preview the changes you have made to your .adoc files in real-time.

    -
    -
    -
    -

    5.2. Publishing Documentation

    -
    -

    See UsingTravis.adoc to learn how to deploy GitHub Pages using Travis.

    -
    -
    -
    -

    5.3. Converting Documentation to PDF format

    -
    -

    We use Google Chrome for converting documentation to PDF format, as Chrome’s PDF engine preserves hyperlinks used in webpages.

    -
    -
    -

    Here are the steps to convert the project documentation files to PDF format.

    -
    -
    -
      -
    1. -

      Follow the instructions in UsingGradle.adoc to convert the AsciiDoc files in the docs/ directory to HTML format.

      -
    2. -
    3. -

      Go to your generated HTML files in the build/docs folder, right click on them and select Open withGoogle Chrome.

      -
    4. -
    5. -

      Within Chrome, click on the Print option in Chrome’s menu.

      -
    6. -
    7. -

      Set the destination to Save as PDF, then click Save to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.

      -
    8. -
    -
    -
    -
    -chrome save as pdf -
    -
    Figure 10. Saving documentation as PDF files in Chrome
    -
    -
    -
    -

    5.4. Site-wide Documentation Settings

    -
    -

    The build.gradle file specifies some project-specific asciidoc attributes which affects how all documentation files within this project are rendered.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Attributes left unset in the build.gradle file will use their default value, if any. -
    -
    - - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    Table 1. List of site-wide attributes
    Attribute nameDescriptionDefault value

    site-name

    -

    The name of the website. -If set, the name will be displayed near the top of the page.

    -

    not set

    site-githuburl

    -

    URL to the site’s repository on GitHub. -Setting this will add a "View on GitHub" link in the navigation bar.

    -

    not set

    site-seedu

    -

    Define this attribute if the project is an official SE-EDU project. -This will render the SE-EDU navigation bar at the top of the page, and add some SE-EDU-specific navigation items.

    -

    not set

    -
    -
    -

    5.5. Per-file Documentation Settings

    -
    -

    Each .adoc file may also specify some file-specific asciidoc attributes which affects how the file is rendered.

    -
    -
    -

    Asciidoctor’s built-in attributes may be specified and used as well.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Attributes left unset in .adoc files will use their default value, if any. -
    -
    - - ----- - - - - - - - - - - - - - - - - - - - -
    Table 2. List of per-file attributes, excluding Asciidoctor’s built-in attributes
    Attribute nameDescriptionDefault value

    site-section

    -

    Site section that the document belongs to. -This will cause the associated item in the navigation bar to be highlighted. -One of: UserGuide, DeveloperGuide, LearningOutcomes*, AboutUs, ContactUs

    -
    -
    -

    * Official SE-EDU projects only

    -

    not set

    no-site-header

    -

    Set this attribute to remove the site navigation bar.

    -

    not set

    -
    -
    -

    5.6. Site Template

    -
    -

    The files in docs/stylesheets are the CSS stylesheets of the site. -You can modify them to change some properties of the site’s design.

    -
    -
    -

    The files in docs/templates controls the rendering of .adoc files into HTML5. -These template files are written in a mixture of Ruby and Slim.

    -
    -
    - - - - - -
    -
    Warning
    -
    -
    -

    Modifying the template files in docs/templates requires some knowledge and experience with Ruby and Asciidoctor’s API. -You should only modify them if you need greater control over the site’s layout than what stylesheets can provide. -The SE-EDU team does not provide support for modified template files.

    -
    -
    -
    -
    -
    -
    -
    -

    6. Testing

    -
    -
    -

    6.1. Running Tests

    -
    -

    There are three ways to run tests.

    -
    -
    - - - - - -
    -
    Tip
    -
    -The most reliable way to run tests is the 3rd one. The first two methods might fail some GUI tests due to platform/resolution-specific idiosyncrasies. -
    -
    -
    -

    Method 1: Using IntelliJ JUnit test runner

    -
    -
    -
      -
    • -

      To run all tests, right-click on the src/test/java folder and choose Run 'All Tests'

      -
    • -
    • -

      To run a subset of tests, you can right-click on a test package, test class, or a test and choose Run 'ABC'

      -
    • -
    -
    -
    -

    Method 2: Using Gradle

    -
    -
    -
      -
    • -

      Open a console and run the command gradlew clean allTests (Mac/Linux: ./gradlew clean allTests)

      -
    • -
    -
    -
    - - - - - -
    -
    Note
    -
    -See UsingGradle.adoc for more info on how to run tests using Gradle. -
    -
    -
    -

    Method 3: Using Gradle (headless)

    -
    -
    -

    Thanks to the TestFX library we use, our GUI tests can be run in the headless mode. In the headless mode, GUI tests do not show up on the screen. That means the developer can do other things on the Computer while the tests are running.

    -
    -
    -

    To run tests in headless mode, open a console and run the command gradlew clean headless allTests (Mac/Linux: ./gradlew clean headless allTests)

    -
    -
    -
    -

    6.2. Types of tests

    -
    -

    We have two types of tests:

    -
    -
    -
      -
    1. -

      GUI Tests - These are tests involving the GUI. They include,

      -
      -
        -
      1. -

        System Tests that test the entire App by simulating user actions on the GUI. These are in the systemtests package.

        -
      2. -
      3. -

        Unit tests that test the individual components. These are in seedu.address.ui package.

        -
      4. -
      -
      -
    2. -
    3. -

      Non-GUI Tests - These are tests not involving the GUI. They include,

      -
      -
        -
      1. -

        Unit tests targeting the lowest level methods/classes.
        -e.g. seedu.address.commons.StringUtilTest

        -
      2. -
      3. -

        Integration tests that are checking the integration of multiple code units (those code units are assumed to be working).
        -e.g. seedu.address.storage.StorageManagerTest

        -
      4. -
      5. -

        Hybrids of unit and integration tests. These test are checking multiple code units as well as how the are connected together.
        -e.g. seedu.address.logic.LogicManagerTest

        -
      6. -
      -
      -
    4. -
    -
    -
    -
    -

    6.3. Troubleshooting Testing

    -
    -

    Problem: HelpWindowTest fails with a NullPointerException.

    -
    -
    -
      -
    • -

      Reason: One of its dependencies, HelpWindow.html in src/main/resources/docs is missing.

      -
    • -
    • -

      Solution: Execute Gradle task processResources.

      -
    • -
    -
    -
    -
    -
    -
    -

    7. Dev Ops

    -
    -
    -

    7.1. Build Automation

    -
    -

    See UsingGradle.adoc to learn how to use Gradle for build automation.

    -
    -
    -
    -

    7.2. Continuous Integration

    -
    -

    We use Travis CI and AppVeyor to perform Continuous Integration on our projects. See UsingTravis.adoc and UsingAppVeyor.adoc for more details.

    -
    -
    -
    -

    7.3. Coverage Reporting

    -
    -

    We use Coveralls to track the code coverage of our projects. See UsingCoveralls.adoc for more details.

    -
    -
    -
    -

    7.4. Documentation Previews

    -
    -

    When a pull request has changes to asciidoc files, you can use Netlify to see a preview of how the HTML version of those asciidoc files will look like when the pull request is merged. See UsingNetlify.adoc for more details.

    -
    -
    -
    -

    7.5. Making a Release

    -
    -

    Here are the steps to create a new release.

    -
    -
    -
      -
    1. -

      Update the version number in MainApp.java.

      -
    2. -
    3. -

      Generate a JAR file using Gradle.

      -
    4. -
    5. -

      Tag the repo with the version number. e.g. v0.1

      -
    6. -
    7. -

      Create a new release using GitHub and upload the JAR file you created.

      -
    8. -
    -
    -
    -
    -

    7.6. Managing Dependencies

    -
    -

    A project often depends on third-party libraries. For example, Address Book depends on the Jackson library for XML parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives.
    -a. Include those libraries in the repo (this bloats the repo size)
    -b. Require developers to download those libraries manually (this creates extra work for developers)

    -
    -
    -
    -
    -
    -

    Appendix A: Suggested Programming Tasks to Get Started

    -
    -
    -

    Suggested path for new programmers:

    -
    -
    -
      -
    1. -

      First, add small local-impact (i.e. the impact of the change does not go beyond the component) enhancements to one component at a time. Some suggestions are given in Improving each component.

      -
    2. -
    3. -

      Next, add a feature that touches multiple components to learn how to implement an end-to-end feature across all components. Creating a new command: remark explains how to go about adding such a feature.

      -
    4. -
    -
    -
    -

    A.1. Improving each component

    -
    -

    Each individual exercise in this section is component-based (i.e. you would not need to modify the other components to get it to work).

    -
    -

    Logic component

    -
    -

    Scenario: You are in charge of logic. During dog-fooding, your team realize that it is troublesome for the user to type the whole command in order to execute a command. Your team devise some strategies to help cut down the amount of typing necessary, and one of the suggestions was to implement aliases for the command words. Your job is to implement such aliases.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Logic component before attempting to modify the Logic component. -
    -
    -
    -
      -
    1. -

      Add a shorthand equivalent alias for each of the individual commands. For example, besides typing clear, the user can also type c to remove all persons in the list.

      -
      -
      -
      -
        -
      • -

        Hints

        -
        - -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          Modify the switch statement in AddressBookParser#parseCommand(String) such that both the proper command word and alias can be used to execute the same intended command.

          -
        • -
        • -

          Add new tests for each of the aliases that you have added.

          -
        • -
        • -

          Update the user guide to document the new aliases.

          -
        • -
        • -

          See this PR for the full solution.

          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    -
    -

    Model component

    -
    -

    Scenario: You are in charge of model. One day, the logic-in-charge approaches you for help. He wants to implement a command such that the user is able to remove a particular tag from everyone in the address book, but the model API does not support such a functionality at the moment. Your job is to implement an API method, so that your teammate can use your API to implement his command.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Model component before attempting to modify the Model component. -
    -
    -
    -
      -
    1. -

      Add a removeTag(Tag) method. The specified tag will be removed from everyone in the address book.

      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          The Model and the AddressBook API need to be updated.

          -
        • -
        • -

          Think about how you can use SLAP to design the method. Where should we place the main logic of deleting tags?

          -
        • -
        • -

          Find out which of the existing API methods in AddressBook and Person classes can be used to implement the tag removal logic. AddressBook allows you to update a person, and Person allows you to update the tags.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          Implement a removeTag(Tag) method in AddressBook. Loop through each person, and remove the tag from each person.

          -
        • -
        • -

          Add a new API method deleteTag(Tag) in ModelManager. Your ModelManager should call AddressBook#removeTag(Tag).

          -
        • -
        • -

          Add new tests for each of the new public methods that you have added.

          -
        • -
        • -

          See this PR for the full solution.

          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    -
    -

    Ui component

    -
    -

    Scenario: You are in charge of ui. During a beta testing session, your team is observing how the users use your address book application. You realize that one of the users occasionally tries to delete non-existent tags from a contact, because the tags all look the same visually, and the user got confused. Another user made a typing mistake in his command, but did not realize he had done so because the error message wasn’t prominent enough. A third user keeps scrolling down the list, because he keeps forgetting the index of the last person in the list. Your job is to implement improvements to the UI to solve all these problems.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at UI component before attempting to modify the UI component. -
    -
    -
    -
      -
    1. -

      Use different colors for different tags inside person cards. For example, friends tags can be all in brown, and colleagues tags can be all in yellow.

      -
      -

      Before

      -
      -
      -
      -getting started ui tag before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui tag after -
      -
      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          The tag labels are created inside the PersonCard constructor (new Label(tag.tagName)). JavaFX’s Label class allows you to modify the style of each Label, such as changing its color.

          -
        • -
        • -

          Use the .css attribute -fx-background-color to add a color.

          -
        • -
        • -

          You may wish to modify DarkTheme.css to include some pre-defined colors using css, especially if you have experience with web-based css.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        -
          -
        • -

          You can modify the existing test methods for PersonCard 's to include testing the tag’s color as well.

          -
        • -
        • -

          See this PR for the full solution.

          -
          -
            -
          • -

            The PR uses the hash code of the tag names to generate a color. This is deliberately designed to ensure consistent colors each time the application runs. You may wish to expand on this design to include additional features, such as allowing users to set their own tag colors, and directly saving the colors to storage, so that tags retain their colors even if the hash code algorithm changes.

            -
          • -
          -
          -
        • -
        -
        -
      • -
      -
      -
      -
      -
    2. -
    3. -

      Modify NewResultAvailableEvent such that ResultDisplay can show a different style on error (currently it shows the same regardless of errors).

      -
      -

      Before

      -
      -
      -
      -getting started ui result before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui result after -
      -
      -
      -
      -
      - -
      -
      -
      -
    4. -
    5. -

      Modify the StatusBarFooter to show the total number of people in the address book.

      -
      -

      Before

      -
      -
      -
      -getting started ui status before -
      -
      -
      -

      After

      -
      -
      -
      -getting started ui status after -
      -
      -
      -
      -
      -
        -
      • -

        Hints

        -
        -
          -
        • -

          StatusBarFooter.fxml will need a new StatusBar. Be sure to set the GridPane.columnIndex properly for each StatusBar to avoid misalignment!

          -
        • -
        • -

          StatusBarFooter needs to initialize the status bar on application start, and to update it accordingly whenever the address book is updated.

          -
        • -
        -
        -
      • -
      • -

        Solution

        -
        - -
        -
      • -
      -
      -
      -
      -
    6. -
    -
    -

    Storage component

    -
    -

    Scenario: You are in charge of storage. For your next project milestone, your team plans to implement a new feature of saving the address book to the cloud. However, the current implementation of the application constantly saves the address book after the execution of each command, which is not ideal if the user is working on limited internet connection. Your team decided that the application should instead save the changes to a temporary local backup file first, and only upload to the cloud after the user closes the application. Your job is to implement a backup API for the address book storage.

    -
    -
    - - - - - -
    -
    Tip
    -
    -Do take a look at Storage component before attempting to modify the Storage component. -
    -
    -
    -
      -
    1. -

      Add a new method backupAddressBook(ReadOnlyAddressBook), so that the address book can be saved in a fixed temporary location.

      -
      -
      -
      - -
      -
      -
      -
    2. -
    -
    -
    -
    -

    A.2. Creating a new command: remark

    -
    -

    By creating this command, you will get a chance to learn how to implement a feature end-to-end, touching all major components of the app.

    -
    -
    -

    Scenario: You are a software maintainer for addressbook, as the former developer team has moved on to new projects. The current users of your application have a list of new feature requests that they hope the software will eventually have. The most popular request is to allow adding additional comments/notes about a particular contact, by providing a flexible remark field for each contact, rather than relying on tags alone. After designing the specification for the remark command, you are convinced that this feature is worth implementing. Your job is to implement the remark command.

    -
    -
    -

    A.2.1. Description

    -
    -

    Edits the remark for a person specified in the INDEX.
    -Format: remark INDEX r/[REMARK]

    -
    -
    -

    Examples:

    -
    -
    -
      -
    • -

      remark 1 r/Likes to drink coffee.
      -Edits the remark for the first person to Likes to drink coffee.

      -
    • -
    • -

      remark 1 r/
      -Removes the remark for the first person.

      -
    • -
    -
    -
    -
    -

    A.2.2. Step-by-step Instructions

    -
    -
    [Step 1] Logic: Teach the app to accept 'remark' which does nothing
    -
    -

    Let’s start by teaching the application how to parse a remark command. We will add the logic of remark later.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a RemarkCommand that extends Command. Upon execution, it should just throw an Exception.

      -
    2. -
    3. -

      Modify AddressBookParser to accept a RemarkCommand.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add RemarkCommandTest that tests that execute() throws an Exception.

      -
    2. -
    3. -

      Add new test method to AddressBookParserTest, which tests that typing "remark" returns an instance of RemarkCommand.

      -
    4. -
    -
    -
    -
    -
    [Step 2] Logic: Teach the app to accept 'remark' arguments
    -
    -

    Let’s teach the application to parse arguments that our remark command will accept. E.g. 1 r/Likes to drink coffee.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Modify RemarkCommand to take in an Index and String and print those two parameters as the error message.

      -
    2. -
    3. -

      Add RemarkCommandParser that knows how to parse two arguments, one index and one with prefix 'r/'.

      -
    4. -
    5. -

      Modify AddressBookParser to use the newly implemented RemarkCommandParser.

      -
    6. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify RemarkCommandTest to test the RemarkCommand#equals() method.

      -
    2. -
    3. -

      Add RemarkCommandParserTest that tests different boundary values -for RemarkCommandParser.

      -
    4. -
    5. -

      Modify AddressBookParserTest to test that the correct command is generated according to the user input.

      -
    6. -
    -
    -
    -
    -
    [Step 3] Ui: Add a placeholder for remark in PersonCard
    -
    -

    Let’s add a placeholder on all our PersonCard s to display a remark for each person later.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a Label with any random text inside PersonListCard.fxml.

      -
    2. -
    3. -

      Add FXML annotation in PersonCard to tie the variable to the actual label.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify PersonCardHandle so that future tests can read the contents of the remark label.

      -
    2. -
    -
    -
    -
    -
    [Step 4] Model: Add Remark class
    -
    -

    We have to properly encapsulate the remark in our Person class. Instead of just using a String, let’s follow the conventional class structure that the codebase already uses by adding a Remark class.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add Remark to model component (you can copy from Address, remove the regex and change the names accordingly).

      -
    2. -
    3. -

      Modify RemarkCommand to now take in a Remark instead of a String.

      -
    4. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add test for Remark, to test the Remark#equals() method.

      -
    2. -
    -
    -
    -
    -
    [Step 5] Model: Modify Person to support a Remark field
    -
    -

    Now we have the Remark class, we need to actually use it inside Person.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add getRemark() in Person.

      -
    2. -
    3. -

      You may assume that the user will not be able to use the add and edit commands to modify the remarks field (i.e. the person will be created without a remark).

      -
    4. -
    5. -

      Modify SampleDataUtil to add remarks for the sample data (delete your addressBook.xml so that the application will load the sample data when you launch it.)

      -
    6. -
    -
    -
    -
    -
    [Step 6] Storage: Add Remark field to XmlAdaptedPerson class
    -
    -

    We now have Remark s for Person s, but they will be gone when we exit the application. Let’s modify XmlAdaptedPerson to include a Remark field so that it will be saved.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Add a new Xml field for Remark.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Fix invalidAndValidPersonAddressBook.xml, typicalPersonsAddressBook.xml, validAddressBook.xml etc., such that the XML tests will not fail due to a missing <remark> element.

      -
    2. -
    -
    -
    -
    -
    [Step 6b] Test: Add withRemark() for PersonBuilder
    -
    -

    Since Person can now have a Remark, we should add a helper method to PersonBuilder, so that users are able to create remarks when building a Person.

    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Add a new method withRemark() for PersonBuilder. This method will create a new Remark for the person that it is currently building.

      -
    2. -
    3. -

      Try and use the method on any sample Person in TypicalPersons.

      -
    4. -
    -
    -
    -
    -
    [Step 7] Ui: Connect Remark field to PersonCard
    -
    -

    Our remark label in PersonCard is still a placeholder. Let’s bring it to life by binding it with the actual remark field.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Modify PersonCard's constructor to bind the Remark field to the Person 's remark.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Modify GuiTestAssert#assertCardDisplaysPerson(…​) so that it will compare the now-functioning remark label.

      -
    2. -
    -
    -
    -
    -
    [Step 8] Logic: Implement RemarkCommand#execute() logic
    -
    -

    We now have everything set up…​ but we still can’t modify the remarks. Let’s finish it up by adding in actual logic for our remark command.

    -
    -
    -

    Main:

    -
    -
    -
      -
    1. -

      Replace the logic in RemarkCommand#execute() (that currently just throws an Exception), with the actual logic to modify the remarks of a person.

      -
    2. -
    -
    -
    -

    Tests:

    -
    -
    -
      -
    1. -

      Update RemarkCommandTest to test that the execute() logic works.

      -
    2. -
    -
    -
    -
    -
    -

    A.2.3. Full Solution

    -
    -

    See this PR for the step-by-step solution.

    -
    -
    -
    -
    -
    -
    -

    Appendix B: Product Scope

    -
    -
    -

    Target user profile:

    -
    -
    -
      -
    • -

      has a need to manage a significant number of volunteers and social welfare events

      -
    • -
    • -

      prefer desktop apps over other types

      -
    • -
    • -

      can type fast

      -
    • -
    • -

      prefers typing over mouse input

      -
    • -
    • -

      is reasonably comfortable using CLI apps

      -
    • -
    -
    -
    -

    Value proposition: manage volunteers and events faster than a typical mouse/GUI driven app, and derive insights from them

    -
    -
    -
    -
    -

    Appendix C: User Stories

    -
    -
    -

    Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

    -
    - ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PriorityAs a …​I want to …​So that I can…​

    * * *

    new manager

    see usage instructions

    refer to instructions when I forget how to use the App

    * * *

    manager

    register a new volunteer

    begin tracking their volunteer work & hours

    * * *

    manager

    view a volunteer’s details

    track their volunteer work & hours

    * * *

    manager

    update volunteer details

    keep their details updated for administrative & other purposes

    * *

    manager

    archive volunteer details

    stash away unnecessary volunteer records, yet have the option of restoring them if needed

    * *

    manager

    restore volunteer record

    restore volunteer details that were archived

    * * *

    manager

    delete volunteer record

    permanently remove volunteer record from database

    * *

    manager

    import volunteer record details

    add multiple volunteer data into the database

    *

    manager

    export volunteer record details

    have a backup of the volunteer records

    * * *

    manager

    create new event

    have a record of the event details

    * * *

    manager

    update event details

    ensure that event details are kept up to date

    * * *

    manager

    view event details

    verify the details of the event

    * * *

    manager

    delete event details

    remove the event from the list if event details were entered wrongly or cancelled

    * *

    manager

    archive event details

    stash away event records yet have the option of restoring them

    * *

    manager

    restore event details

    restore event details that were archived

    * *

    manager

    import event data

    add multiple events at once

    *

    manager

    export event data

    have a backup of event details

    * * *

    manager

    add volunteer hours to volunteer profiles

    keep track of the number of hours spent by the volunteer volunteering

    * * *

    manager

    edit volunteer hours in volunteer profiles

    maintain accuracy of information pertaining to volunteer work

    *

    manager

    export certification document from volunteers’ data

    provide volunteers with official acknowledgement of service rendered to organization

    * *

    manager

    view spread of volunteers across events

    determine which are the more popular events

    * *

    manager

    view demographics of volunteers

    know what my volunteer profiles are like

    * *

    manager

    auto-complete commands

    execute commands more efficiently

    -
    -

    {To be updated and expanded}

    -
    -
    -
    -
    -

    Appendix D: Use Cases

    -
    -
    -

    (For all use cases below, the System is the AddressBook and the Actor is the user, unless specified otherwise)

    -
    - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Use Cases
    -

    UC01: Register new volunteer
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):

    -
    -
    -
      -
    • -

      New user will be created only if data entered is valid and there is sufficient memory space to store the new user

      -
    • -
    -
    -
    -

    MSS:

    -
    -
    -
      -
    1. -

      Admin chooses to add a new volunteer

      -
    2. -
    3. -

      Application requests for details of the volunteer

      -
    4. -
    5. -

      Admin enters and submits the requested details

      -
    6. -
    7. -

      Application creates the volunteer and notifies Admin of success
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      3a. The entered data is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the entered data is invalid
        -Use case resumes from step 3.

        -
      • -
      -
      -
    • -
    -
    -

    UC02: View volunteer details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin requests to view a volunteer profile at a specific index in the list

      -
    6. -
    7. -

      Application displays the volunteer profile
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC03: Update volunteer details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin enters the index and updated details of the volunteer to be changed

      -
    6. -
    7. -

      Application updates the volunteer details and notifies of the successful update
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    • -

      3b. The given details are invalid

      -
      -
        -
      • -

        3b1. Application shows an error message that the details given are invalid
        -Use case resumes at step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC04: Delete volunteer record
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):

    -
    -
    -
      -
    • -

      Volunteer record will be deleted only if index specified is valid

      -
    • -
    -
    -
    -

    MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all volunteers

      -
    2. -
    3. -

      Application displays a list of all volunteers

      -
    4. -
    5. -

      Admin requests to delete a volunteer at a specific index in the list

      -
    6. -
    7. -

      Application deletes the volunteer

      -
    8. -
    9. -

      Application displays a successful deletion message to Admin
      -Use case ends.

      -
    10. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC05: Create new event
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to create a new event

      -
    2. -
    3. -

      Application requests for details of the event

      -
    4. -
    5. -

      Admin enters details of the event to be created

      -
    6. -
    7. -

      Application creates the event and shows successful creation message
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The given details is invalid

      -
      -
        -
      • -

        2a1. Application shows an error message that given details is invalid
        -Use case resumes from step 1.

        -
      • -
      -
      -
    • -
    -
    -

    UC06: Update event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin enters the index and updated details of the event to be changed

      -
    6. -
    7. -

      Application updates the event details and notifies of the successful update
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The event list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    • -

      3b. The given details are invalid

      -
      -
        -
      • -

        3b1. Application shows an error message that the details given are invalid
        -Use case resumes at step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC07: View event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin requests to view event details at a specific index in the list

      -
    6. -
    7. -

      Application displays the details of the event
      -Use case ends.

      -
    8. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The event list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC08: Delete event details
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Admin requests to list all events

      -
    2. -
    3. -

      Application displays a list of all events

      -
    4. -
    5. -

      Admin requests to delete event details at a specific index in the list

      -
    6. -
    7. -

      Application requests for confirmation

      -
    8. -
    9. -

      Admin confirms the deletion

      -
    10. -
    11. -

      Application deletes the event details

      -
    12. -
    13. -

      Application displays a successful deletion message to Admin
      -Use case ends.

      -
    14. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The events list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that event list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      3a. The given index is invalid

      -
      -
        -
      • -

        3a1. Application shows an error message that the index given is invalid
        -Use case resumes from step 2.

        -
      • -
      -
      -
    • -
    -
    -

    UC09: Add volunteer hours to volunteer profile
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Application displays the volunteer profile UC02

      -
    2. -
    3. -

      Admin requests to list all volunteer hours of the volunteer

      -
    4. -
    5. -

      Application displays a list of all volunteer hours of the volunteer

      -
    6. -
    7. -

      Admin chooses to add volunteer hours

      -
    8. -
    9. -

      Application requests for details of the volunteer hours

      -
    10. -
    11. -

      Admin enters the requested details

      -
    12. -
    13. -

      Application requests for confirmation

      -
    14. -
    15. -

      Admin confirms the addition

      -
    16. -
    17. -

      Application adds the volunteer hours and notifies Admin of success
      -Use case ends.

      -
    18. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer hours list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer hours list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      8a. Application detects an error in the entered data

      -
      -
        -
      • -

        8a1. Application requests for the correct data

        -
      • -
      • -

        8a2. Admin enters new data

        -
      • -
      • -

        Steps 8a1-8a2 are repeated until the data entered is valid
        -Use case resumes from step 9.

        -
      • -
      -
      -
    • -
    -
    -

    UC10: Edit volunteer hours in volunteer profile
    -Actor: Admin
    -Precondition(s): Admin is logged in
    -Guarantee(s):
    -MSS:

    -
    -
    -
      -
    1. -

      Application displays the volunteer profile UC02

      -
    2. -
    3. -

      Admin requests to list all volunteer hours of the volunteer

      -
    4. -
    5. -

      Application displays a list of all volunteer hours of the volunteer

      -
    6. -
    7. -

      Admin enters the index and the details of the volunteer hours to be changed

      -
    8. -
    9. -

      Application updates the volunteer hours and notifies Admin of success
      -Use case ends.

      -
    10. -
    -
    -
    -

    Extensions:

    -
    -
    -
      -
    • -

      2a. The volunteer hours list is empty

      -
      -
        -
      • -

        2a1. Application shows an error message that volunteer hours list is empty
        -Use case ends.

        -
      • -
      -
      -
    • -
    • -

      4a. The given index is invalid

      -
      -
        -
      • -

        Application shows an error message that the index given is invalid
        -Use case resumes from step 5.

        -
      • -
      -
      -
    • -
    • -

      4b. The given details are invalid

      -
      -
        -
      • -

        4b1. Application shows an error message that the details given is invalid
        -Use case resumes from step 5.

        -
      • -
      -
      -
    • -
    -
    -
    -

    {More to be added}

    -
    -
    -
    -
    -

    Appendix E: Non Functional Requirements

    -
    -
    -
      -
    • -

      Reasonable response time (2-3s)

      -
    • -
    • -

      Backward compatibility by being able to transfer data from older versions of the application when updating each version

      -
    • -
    • -

      Should work on any mainstream OS as long as it has Java 9 or higher installed.

      -
    • -
    • -

      Files containing volunteer data should be encrypted

      -
    • -
    • -

      A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

      -
    • -
    -
    -
    -

    {More to be added}

    -
    -
    -
    -
    -

    Appendix F: Glossary

    -
    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TermExplanation

    Volunteer Manager

    Staff working for the organization, who handles administrative issues pertaining to volunteer and event management

    Volunteer

    A person who has signed up and has a profile with the organization

    Admin

    Our application’s intended target user (Most likely the volunteer manager)

    Application

    Refers to our system

    UCXX

    Use case with XX being the use case ID

    Mainstream OS

    Windows, Linux, Unix, OS-X

    -
    -
    -
    -

    Appendix G: Product Survey

    -
    -
    -

    Product Name

    -
    -
    -

    Author: …​

    -
    -
    -

    Pros:

    -
    -
    -
      -
    • -

      …​

      -
    • -
    • -

      …​

      -
    • -
    -
    -
    -

    Cons:

    -
    -
    -
      -
    • -

      …​

      -
    • -
    • -

      …​

      -
    • -
    -
    -
    -
    -
    -

    Appendix H: Instructions for Manual Testing

    -
    -
    -

    Given below are instructions to test the app manually.

    -
    -
    - - - - - -
    -
    Note
    -
    -These instructions only provide a starting point for testers to work on; testers are expected to do more exploratory testing. -
    -
    -
    -

    H.1. Launch and Shutdown

    -
    -
      -
    1. -

      Initial launch

      -
      -
        -
      1. -

        Download the jar file and copy into an empty folder

        -
      2. -
      3. -

        Double-click the jar file
        -Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.

        -
      4. -
      -
      -
    2. -
    3. -

      Saving window preferences

      -
      -
        -
      1. -

        Resize the window to an optimum size. Move the window to a different location. Close the window.

        -
      2. -
      3. -

        Re-launch the app by double-clicking the jar file.
        -Expected: The most recent window size and location is retained.

        -
      4. -
      -
      -
    4. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -

    H.2. Deleting a person

    -
    -
      -
    1. -

      Deleting a person while all persons are listed

      -
      -
        -
      1. -

        Prerequisites: List all persons using the list command. Multiple persons in the list.

        -
      2. -
      3. -

        Test case: delete 1
        -Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.

        -
      4. -
      5. -

        Test case: delete 0
        -Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.

        -
      6. -
      7. -

        Other incorrect delete commands to try: delete, delete x (where x is larger than the list size) {give more}
        -Expected: Similar to previous.

        -
      8. -
      -
      -
    2. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -

    H.3. Saving data

    -
    -
      -
    1. -

      Dealing with missing/corrupted data files

      -
      -
        -
      1. -

        {explain how to simulate a missing/corrupted file and the expected behavior}

        -
      2. -
      -
      -
    2. -
    -
    -
    -

    { more test cases …​ }

    -
    -
    -
    -
    -
    - - - \ No newline at end of file From 2216caed6e67463b8eaadc2a486f124b34611bbc Mon Sep 17 00:00:00 2001 From: Kratious Date: Sat, 13 Oct 2018 21:52:42 +0800 Subject: [PATCH 119/655] Add select command for Events --- .../seedu/address/commons/core/Messages.java | 2 + .../logic/commands/SelectEventCommand.java | 57 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 38 ++++++++----- .../parser/SelectEventCommandParser.java | 26 +++++++++ 4 files changed, 108 insertions(+), 15 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/SelectEventCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e4695..d0edece7a0de 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -10,4 +10,6 @@ public class Messages { public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; + // Event messages + public static final String MESSAGE_INVALID_EVENT_DISPLAYED_INDEX = "The event index provided is invalid"; } diff --git a/src/main/java/seedu/address/logic/commands/SelectEventCommand.java b/src/main/java/seedu/address/logic/commands/SelectEventCommand.java new file mode 100644 index 000000000000..bd103edb7008 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/SelectEventCommand.java @@ -0,0 +1,57 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import seedu.address.commons.core.EventsCenter; +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.commons.events.ui.JumpToListRequestEvent; +import seedu.address.logic.CommandHistory; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.event.Event; + +/** + * Selects an event identified using it's displayed index from the address book. + */ +public class SelectEventCommand extends Command { + + public static final String COMMAND_WORD = "select"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Selects the event identified by the index number used in the displayed event list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_SELECT_EVENT_SUCCESS = "Selected Event: %1$s"; + + private final Index targetIndex; + + public SelectEventCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model, CommandHistory history) throws CommandException { + requireNonNull(model); + + List filteredEventList = model.getFilteredEventList(); + + if (targetIndex.getZeroBased() >= filteredEventList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_EVENT_DISPLAYED_INDEX); + } + + EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); + return new CommandResult(String.format(MESSAGE_SELECT_EVENT_SUCCESS, targetIndex.getOneBased())); + + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof SelectEventCommand // instanceof handles nulls + && targetIndex.equals(((SelectEventCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 868cba4d2f8f..13d998152fca 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -76,6 +76,11 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce // Executes commands for events if (contextId.equals(Context.EVENT_CONTEXT_ID)) { + return parseEventCommand(commandWord, arguments); + } + + // Executes commands for volunteers + if (contextId.equals(Context.VOLUNTEER_CONTEXT_ID)) { // Replace all these commands switch (commandWord) { case AddCommand.COMMAND_WORD: @@ -103,10 +108,23 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce } } - // Executes commands for volunteers - if (contextId.equals(Context.VOLUNTEER_CONTEXT_ID)) { - // Replace all these commands + // Execute commands for records + if (contextId.equals(Context.RECORD_CONTEXT_ID)) { switch (commandWord) { + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } + } + + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + } + + /** + * Parses user input specifically for event command for execution. + **/ + private Command parseEventCommand(String commandWord, String arguments) throws ParseException { + // Replace all these commands + switch (commandWord) { case AddCommand.COMMAND_WORD: return new AddCommandParser().parse(arguments); @@ -114,7 +132,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce return new EditCommandParser().parse(arguments); case SelectCommand.COMMAND_WORD: - return new SelectCommandParser().parse(arguments); + return new SelectEventCommandParser().parse(arguments); case DeleteCommand.COMMAND_WORD: return new DeleteCommandParser().parse(arguments); @@ -129,17 +147,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce return new ListCommand(); default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); - } - } - - // Execute commands for records - if (contextId.equals(Context.RECORD_CONTEXT_ID)) { - switch (commandWord) { - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); - } } - - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } + } diff --git a/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java b/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java new file mode 100644 index 000000000000..8002417194e9 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java @@ -0,0 +1,26 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.SelectEventCommand; +import seedu.address.logic.parser.exceptions.ParseException; + + +public class SelectEventCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the SelectCommand + * and returns an SelectCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public SelectEventCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new SelectEventCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, SelectEventCommand.MESSAGE_USAGE), pe); + } + } +} From 81fdd42ade882a342504a28aecb6219e8ed1b8e7 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 22:28:15 +0800 Subject: [PATCH 120/655] Person: Added personId to work as placeholder volunteer --- .../address/logic/commands/EditCommand.java | 10 +++- .../seedu/address/model/person/Person.java | 55 ++++++++++++++++++- .../seedu/address/model/person/PersonId.java | 35 ++++++++++++ .../address/storage/XmlAdaptedPerson.java | 31 ++++++++++- .../duplicatePersonAddressBook.xml | 2 + .../typicalPersonsAddressBook.xml | 7 +++ .../data/XmlUtilTest/validAddressBook.xml | 9 +++ src/test/data/XmlUtilTest/validPerson.xml | 1 + .../address/storage/XmlAdaptedPersonTest.java | 27 ++++++--- .../testutil/EditPersonDescriptorBuilder.java | 2 + .../seedu/address/testutil/PersonBuilder.java | 16 +++++- .../address/testutil/TypicalPersons.java | 24 +++++--- 12 files changed, 196 insertions(+), 23 deletions(-) create mode 100644 src/main/java/seedu/address/model/person/PersonId.java diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index dc782d8e230f..c931367c465c 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -24,6 +24,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; +import seedu.address.model.person.PersonId; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; @@ -95,13 +96,14 @@ public CommandResult execute(Model model, CommandHistory history) throws Command private static Person createEditedPerson(Person personToEdit, EditPersonDescriptor editPersonDescriptor) { assert personToEdit != null; + PersonId personId = personToEdit.getPersonId(); Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); + return new Person(personId, updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); } @Override @@ -127,6 +129,7 @@ public boolean equals(Object other) { * corresponding field value of the person. */ public static class EditPersonDescriptor { + private PersonId personId; private Name name; private Phone phone; private Email email; @@ -140,6 +143,7 @@ public EditPersonDescriptor() {} * A defensive copy of {@code tags} is used internally. */ public EditPersonDescriptor(EditPersonDescriptor toCopy) { + setPersonId(toCopy.personId); setName(toCopy.name); setPhone(toCopy.phone); setEmail(toCopy.email); @@ -154,6 +158,10 @@ public boolean isAnyFieldEdited() { return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); } + public void setPersonId(PersonId personId) { + this.personId = personId; + } + public void setName(Name name) { this.name = name; } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 557a7a60cd51..04ebcd18b626 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -14,8 +14,11 @@ * Guarantees: details are present and not null, field values are validated, immutable. */ public class Person { + // Used to keep track of current max Id in the system + private static int maxId = 0; // Identity fields + private final PersonId personId; private final Name name; private final Phone phone; private final Email email; @@ -25,10 +28,31 @@ public class Person { private final Set tags = new HashSet<>(); /** - * Every field must be present and not null. + * Used when creating new Person. Every field must be present and not null. */ public Person(Name name, Phone phone, Email email, Address address, Set tags) { requireAllNonNull(name, phone, email, address, tags); + + incrementMaxId(); + this.personId = new PersonId(maxId); + + this.name = name; + this.phone = phone; + this.email = email; + this.address = address; + this.tags.addAll(tags); + } + + /** + * Used when loading data from XML. Every field must be present and not null. + */ + public Person(PersonId personId, Name name, Phone phone, Email email, Address address, Set tags) { + requireAllNonNull(personId, name, phone, email, address, tags); + + if (isNewPersonIdGreaterThanMaxId(personId.id)) { + replaceMaxIdWithIncrementedPersonId(personId.id); + } + this.personId = personId; this.name = name; this.phone = phone; this.email = email; @@ -36,6 +60,35 @@ public Person(Name name, Phone phone, Email email, Address address, Set tag this.tags.addAll(tags); } + /** + * Increments the current maxId by 1. + */ + private void incrementMaxId() { + maxId += 1; + } + + /** + * Checks if new event id is greater than current max id. + * + * @param newPersonId event id from loaded xml event. + */ + private boolean isNewPersonIdGreaterThanMaxId(int newPersonId) { + return newPersonId > maxId; + } + + /** + * Replaces max id with new event id. + * + * @param newPersonId event id from loaded xml event. + */ + private void replaceMaxIdWithIncrementedPersonId(int newPersonId) { + maxId = newPersonId + 1; + } + + public PersonId getPersonId() { + return personId; + } + public Name getName() { return name; } diff --git a/src/main/java/seedu/address/model/person/PersonId.java b/src/main/java/seedu/address/model/person/PersonId.java new file mode 100644 index 000000000000..ca250166bf4a --- /dev/null +++ b/src/main/java/seedu/address/model/person/PersonId.java @@ -0,0 +1,35 @@ +package seedu.address.model.person; + +import static java.util.Objects.requireNonNull; + +/** + * Represents an Event's Id in the application. Event Id is used in identifying record entries. + * Guarantees: immutable; is valid as declared in {@link #isValidId(int)} + */ +public class PersonId { + public static final String MESSAGE_NAME_CONSTRAINTS = + "Id should be more than zero, and it should not be blank"; + + public final int id; + /** + * Constructs an {@code id}. + * + * @param id A valid id. + */ + public PersonId(int id) { + requireNonNull(id); + this.id = id; + } + + /** + * Returns true if a given string is a valid name. + */ + public static boolean isValidId(int test) { + return test > 0; + } + + @Override + public String toString() { + return Integer.toString(id); + } +} diff --git a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java index c03785e5700f..8581adc402c7 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java @@ -14,6 +14,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; +import seedu.address.model.person.PersonId; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; @@ -24,6 +25,8 @@ public class XmlAdaptedPerson { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; + @XmlElement(required = true) + private int personId; @XmlElement(required = true) private String name; @XmlElement(required = true) @@ -45,7 +48,23 @@ public XmlAdaptedPerson() {} /** * Constructs an {@code XmlAdaptedPerson} with the given person details. */ - public XmlAdaptedPerson(String name, String phone, String email, String address, List tagged) { + public XmlAdaptedPerson(String name, String phone, String email, + String address, List tagged) { + this.name = name; + this.phone = phone; + this.email = email; + this.address = address; + if (tagged != null) { + this.tagged = new ArrayList<>(tagged); + } + + } + + /** + * Constructs an {@code XmlAdaptedPerson} with the given person details. + */ + public XmlAdaptedPerson(int personId, String name, String phone, String email, String address, List tagged) { + this.personId = personId; this.name = name; this.phone = phone; this.email = email; @@ -61,6 +80,7 @@ public XmlAdaptedPerson(String name, String phone, String email, String address, * @param source future changes to this will not affect the created XmlAdaptedPerson */ public XmlAdaptedPerson(Person source) { + personId = source.getPersonId().id; name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; @@ -80,6 +100,13 @@ public Person toModelType() throws IllegalValueException { for (XmlAdaptedTag tag : tagged) { personTags.add(tag.toModelType()); } + if (personId == 0) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, PersonId.class.getSimpleName())); + } + if (!PersonId.isValidId(personId)) { + throw new IllegalValueException(PersonId.MESSAGE_NAME_CONSTRAINTS); + } + PersonId modelPersonId = new PersonId(personId); if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); @@ -114,7 +141,7 @@ public Person toModelType() throws IllegalValueException { final Address modelAddress = new Address(address); final Set modelTags = new HashSet<>(personTags); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); + return new Person(modelPersonId, modelName, modelPhone, modelEmail, modelAddress, modelTags); } @Override diff --git a/src/test/data/XmlSerializableAddressBookTest/duplicatePersonAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/duplicatePersonAddressBook.xml index ac02230263d3..ff4694c8405a 100644 --- a/src/test/data/XmlSerializableAddressBookTest/duplicatePersonAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/duplicatePersonAddressBook.xml @@ -2,6 +2,7 @@ + 1 Alice Pauline 94351253 alice@example.com @@ -11,6 +12,7 @@ + 1 Alice Pauline 94351253 pauline@example.com diff --git a/src/test/data/XmlSerializableAddressBookTest/typicalPersonsAddressBook.xml b/src/test/data/XmlSerializableAddressBookTest/typicalPersonsAddressBook.xml index d812b05e32bb..42baae195249 100644 --- a/src/test/data/XmlSerializableAddressBookTest/typicalPersonsAddressBook.xml +++ b/src/test/data/XmlSerializableAddressBookTest/typicalPersonsAddressBook.xml @@ -2,6 +2,7 @@ + 1 Alice Pauline 94351253 alice@example.com @@ -9,6 +10,7 @@ friends + 2 Benson Meier 98765432 johnd@example.com @@ -17,12 +19,14 @@ friends + 3 Carl Kurz 95352563 heinz@example.com
    wall street
    + 4 Daniel Meier 87652533 cornelia@example.com @@ -30,18 +34,21 @@ friends + 5 Elle Meyer 9482224 werner@example.com
    michegan ave
    + 6 Fiona Kunz 9482427 lydia@example.com
    little tokyo
    + 7 George Best 9482442 anna@example.com diff --git a/src/test/data/XmlUtilTest/validAddressBook.xml b/src/test/data/XmlUtilTest/validAddressBook.xml index 6265778674d3..81af49460888 100644 --- a/src/test/data/XmlUtilTest/validAddressBook.xml +++ b/src/test/data/XmlUtilTest/validAddressBook.xml @@ -1,54 +1,63 @@ + 1 Hans Muster 9482424 hans@example.com
    4th street
    + 2 Ruth Mueller 87249245 ruth@example.com
    81th street
    + 3 Heinz Kurz 95352563 heinz@example.com
    wall street
    + 4 Cornelia Meier 87652533 cornelia@example.com
    10th street
    + 5 Werner Meyer 9482224 werner@example.com
    michegan ave
    + 6 Lydia Kunz 9482427 lydia@example.com
    little tokyo
    + 7 Anna Best 9482442 anna@example.com
    4th street
    + 8 Stefan Meier 8482424 stefan@example.com
    little india
    + 9 Martin Mueller 8482131 hans@example.com diff --git a/src/test/data/XmlUtilTest/validPerson.xml b/src/test/data/XmlUtilTest/validPerson.xml index c029008d54f4..3285316cd7d2 100644 --- a/src/test/data/XmlUtilTest/validPerson.xml +++ b/src/test/data/XmlUtilTest/validPerson.xml @@ -1,5 +1,6 @@ + 1 Hans Muster 9482424 hans@example diff --git a/src/test/java/seedu/address/storage/XmlAdaptedPersonTest.java b/src/test/java/seedu/address/storage/XmlAdaptedPersonTest.java index c3c91a5c27a7..a2e669fdb386 100644 --- a/src/test/java/seedu/address/storage/XmlAdaptedPersonTest.java +++ b/src/test/java/seedu/address/storage/XmlAdaptedPersonTest.java @@ -24,6 +24,7 @@ public class XmlAdaptedPersonTest { private static final String INVALID_EMAIL = "example.com"; private static final String INVALID_TAG = "#friend"; + private static final int VALID_PERSONID = BENSON.getPersonId().id; private static final String VALID_NAME = BENSON.getName().toString(); private static final String VALID_PHONE = BENSON.getPhone().toString(); private static final String VALID_EMAIL = BENSON.getEmail().toString(); @@ -41,14 +42,15 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { XmlAdaptedPerson person = - new XmlAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new XmlAdaptedPerson(VALID_PERSONID, INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Name.MESSAGE_NAME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { - XmlAdaptedPerson person = new XmlAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_PERSONID, + null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -56,14 +58,16 @@ public void toModelType_nullName_throwsIllegalValueException() { @Test public void toModelType_invalidPhone_throwsIllegalValueException() { XmlAdaptedPerson person = - new XmlAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Phone.MESSAGE_PHONE_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { - XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -71,14 +75,16 @@ public void toModelType_nullPhone_throwsIllegalValueException() { @Test public void toModelType_invalidEmail_throwsIllegalValueException() { XmlAdaptedPerson person = - new XmlAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Email.MESSAGE_EMAIL_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullEmail_throwsIllegalValueException() { - XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); + XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -86,14 +92,16 @@ public void toModelType_nullEmail_throwsIllegalValueException() { @Test public void toModelType_invalidAddress_throwsIllegalValueException() { XmlAdaptedPerson person = - new XmlAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_TAGS); + new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_TAGS); String expectedMessage = Address.MESSAGE_ADDRESS_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullAddress_throwsIllegalValueException() { - XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); + XmlAdaptedPerson person = new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -103,7 +111,8 @@ public void toModelType_invalidTags_throwsIllegalValueException() { List invalidTags = new ArrayList<>(VALID_TAGS); invalidTags.add(new XmlAdaptedTag(INVALID_TAG)); XmlAdaptedPerson person = - new XmlAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags); + new XmlAdaptedPerson(VALID_PERSONID, + VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags); Assert.assertThrows(IllegalValueException.class, person::toModelType); } diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java index 4584bd5044e1..76e2054be797 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java @@ -32,6 +32,8 @@ public EditPersonDescriptorBuilder(EditPersonDescriptor descriptor) { */ public EditPersonDescriptorBuilder(Person person) { descriptor = new EditPersonDescriptor(); + + descriptor.setPersonId(person.getPersonId()); descriptor.setName(person.getName()); descriptor.setPhone(person.getPhone()); descriptor.setEmail(person.getEmail()); diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/seedu/address/testutil/PersonBuilder.java index 5eff412178bd..7d0b38334976 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/seedu/address/testutil/PersonBuilder.java @@ -7,6 +7,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; +import seedu.address.model.person.PersonId; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; import seedu.address.model.util.SampleDataUtil; @@ -15,12 +16,13 @@ * A utility class to help with building Person objects. */ public class PersonBuilder { - + public static final int DEFAULT_PERSONID = 1; public static final String DEFAULT_NAME = "Alice Pauline"; public static final String DEFAULT_PHONE = "85355255"; public static final String DEFAULT_EMAIL = "alice@gmail.com"; public static final String DEFAULT_ADDRESS = "123, Jurong West Ave 6, #08-111"; + private PersonId personId; private Name name; private Phone phone; private Email email; @@ -28,6 +30,7 @@ public class PersonBuilder { private Set tags; public PersonBuilder() { + personId = new PersonId(DEFAULT_PERSONID); name = new Name(DEFAULT_NAME); phone = new Phone(DEFAULT_PHONE); email = new Email(DEFAULT_EMAIL); @@ -39,6 +42,7 @@ public PersonBuilder() { * Initializes the PersonBuilder with the data of {@code personToCopy}. */ public PersonBuilder(Person personToCopy) { + personId = personToCopy.getPersonId(); name = personToCopy.getName(); phone = personToCopy.getPhone(); email = personToCopy.getEmail(); @@ -46,6 +50,14 @@ public PersonBuilder(Person personToCopy) { tags = new HashSet<>(personToCopy.getTags()); } + /** + * Sets the {@code PersonId} of the {@code Person} that we are building. + */ + public PersonBuilder withPersonId(int personId) { + this.personId = new PersonId(personId); + return this; + } + /** * Sets the {@code Name} of the {@code Person} that we are building. */ @@ -57,7 +69,7 @@ public PersonBuilder withName(String name) { /** * Parses the {@code tags} into a {@code Set} and set it to the {@code Person} that we are building. */ - public PersonBuilder withTags(String ... tags) { + public PersonBuilder withTags(String... tags) { this.tags = SampleDataUtil.getTagSet(tags); return this; } diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalPersons.java index fec76fb71293..4a4d87eb0f89 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalPersons.java @@ -23,23 +23,30 @@ */ public class TypicalPersons { - public static final Person ALICE = new PersonBuilder().withName("Alice Pauline") + public static final Person ALICE = new PersonBuilder().withPersonId(1) + .withName("Alice Pauline") .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") .withPhone("94351253") .withTags("friends").build(); - public static final Person BENSON = new PersonBuilder().withName("Benson Meier") + public static final Person BENSON = new PersonBuilder().withPersonId(2) + .withName("Benson Meier") .withAddress("311, Clementi Ave 2, #02-25") .withEmail("johnd@example.com").withPhone("98765432") .withTags("owesMoney", "friends").build(); - public static final Person CARL = new PersonBuilder().withName("Carl Kurz").withPhone("95352563") + public static final Person CARL = new PersonBuilder().withPersonId(3) + .withName("Carl Kurz").withPhone("95352563") .withEmail("heinz@example.com").withAddress("wall street").build(); - public static final Person DANIEL = new PersonBuilder().withName("Daniel Meier").withPhone("87652533") + public static final Person DANIEL = new PersonBuilder().withPersonId(4) + .withName("Daniel Meier").withPhone("87652533") .withEmail("cornelia@example.com").withAddress("10th street").withTags("friends").build(); - public static final Person ELLE = new PersonBuilder().withName("Elle Meyer").withPhone("9482224") + public static final Person ELLE = new PersonBuilder().withPersonId(5) + .withName("Elle Meyer").withPhone("9482224") .withEmail("werner@example.com").withAddress("michegan ave").build(); - public static final Person FIONA = new PersonBuilder().withName("Fiona Kunz").withPhone("9482427") + public static final Person FIONA = new PersonBuilder().withPersonId(6) + .withName("Fiona Kunz").withPhone("9482427") .withEmail("lydia@example.com").withAddress("little tokyo").build(); - public static final Person GEORGE = new PersonBuilder().withName("George Best").withPhone("9482442") + public static final Person GEORGE = new PersonBuilder().withPersonId(7) + .withName("George Best").withPhone("9482442") .withEmail("anna@example.com").withAddress("4th street").build(); // Manually added @@ -57,7 +64,8 @@ public class TypicalPersons { public static final String KEYWORD_MATCHING_MEIER = "Meier"; // A keyword that matches MEIER - private TypicalPersons() {} // prevents instantiation + private TypicalPersons() { + } // prevents instantiation /** * Returns an {@code AddressBook} with all the typical persons. From 9169b467cfc31d7228faded4efa64473ef00e26d Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 22:37:26 +0800 Subject: [PATCH 121/655] XmlAdaptedPerson.java: Fixed CheckStyle --- .../java/seedu/address/storage/XmlAdaptedPerson.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java index 8581adc402c7..6890766e32fc 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java @@ -43,7 +43,8 @@ public class XmlAdaptedPerson { * Constructs an XmlAdaptedPerson. * This is the no-arg constructor that is required by JAXB. */ - public XmlAdaptedPerson() {} + public XmlAdaptedPerson() { + } /** * Constructs an {@code XmlAdaptedPerson} with the given person details. @@ -63,7 +64,8 @@ public XmlAdaptedPerson(String name, String phone, String email, /** * Constructs an {@code XmlAdaptedPerson} with the given person details. */ - public XmlAdaptedPerson(int personId, String name, String phone, String email, String address, List tagged) { + public XmlAdaptedPerson(int personId, String name, String phone, + String email, String address, List tagged) { this.personId = personId; this.name = name; this.phone = phone; @@ -101,7 +103,8 @@ public Person toModelType() throws IllegalValueException { personTags.add(tag.toModelType()); } if (personId == 0) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, PersonId.class.getSimpleName())); + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + PersonId.class.getSimpleName())); } if (!PersonId.isValidId(personId)) { throw new IllegalValueException(PersonId.MESSAGE_NAME_CONSTRAINTS); From 0d3c4a811fab62abd3030f3d21adb2f3b7ab752d Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 23:04:06 +0800 Subject: [PATCH 122/655] TypicalPersons.java: Attempt to fix UI tests --- .../seedu/address/testutil/TypicalPersons.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalPersons.java index 4a4d87eb0f89..7424fdfc38fa 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalPersons.java @@ -50,15 +50,23 @@ public class TypicalPersons { .withEmail("anna@example.com").withAddress("4th street").build(); // Manually added - public static final Person HOON = new PersonBuilder().withName("Hoon Meier").withPhone("8482424") + public static final Person HOON = new PersonBuilder() + .withPersonId(8) + .withName("Hoon Meier").withPhone("8482424") .withEmail("stefan@example.com").withAddress("little india").build(); - public static final Person IDA = new PersonBuilder().withName("Ida Mueller").withPhone("8482131") + public static final Person IDA = new PersonBuilder() + .withPersonId(9) + .withName("Ida Mueller").withPhone("8482131") .withEmail("hans@example.com").withAddress("chicago ave").build(); // Manually added - Person's details found in {@code CommandTestUtil} - public static final Person AMY = new PersonBuilder().withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) + public static final Person AMY = new PersonBuilder() + .withPersonId(10) + .withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) .withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY).withTags(VALID_TAG_FRIEND).build(); - public static final Person BOB = new PersonBuilder().withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + public static final Person BOB = new PersonBuilder() + .withPersonId(11) + .withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) .build(); From 3bc770e7719e69f43f8327aea52e13ffc762c5e9 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Sat, 13 Oct 2018 23:33:34 +0800 Subject: [PATCH 123/655] PersonListPanelTest.java: Attempt to fix UI tests --- src/test/java/seedu/address/ui/PersonListPanelTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/seedu/address/ui/PersonListPanelTest.java b/src/test/java/seedu/address/ui/PersonListPanelTest.java index 37ff8eeeb202..7a0f799294c8 100644 --- a/src/test/java/seedu/address/ui/PersonListPanelTest.java +++ b/src/test/java/seedu/address/ui/PersonListPanelTest.java @@ -95,6 +95,7 @@ private Path createXmlFileWithPersons(int personCount) throws Exception { builder.append("\n"); for (int i = 0; i < personCount; i++) { builder.append("\n"); + builder.append("").append(i + 1).append("\n"); builder.append("").append(i).append("a\n"); builder.append("000\n"); builder.append("a@aa\n"); From 75968b750eff25169ce926c02f89813bb2431eac Mon Sep 17 00:00:00 2001 From: Kratious Date: Sun, 14 Oct 2018 00:25:58 +0800 Subject: [PATCH 124/655] Add add command for Events --- .../logic/commands/AddEventCommand.java | 77 +++++++++++++ .../logic/parser/AddEventCommandParser.java | 71 ++++++++++++ .../logic/parser/AddressBookParser.java | 34 +++--- .../seedu/address/logic/parser/CliSyntax.java | 9 ++ .../address/logic/parser/ParserEventUtil.java | 108 ++++++++++++++++++ .../java/seedu/address/model/event/Event.java | 6 +- 6 files changed, 285 insertions(+), 20 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/AddEventCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/AddEventCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/ParserEventUtil.java diff --git a/src/main/java/seedu/address/logic/commands/AddEventCommand.java b/src/main/java/seedu/address/logic/commands/AddEventCommand.java new file mode 100644 index 000000000000..611e232ecfa9 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddEventCommand.java @@ -0,0 +1,77 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_DESCRIPTION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_LOCATION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.logic.CommandHistory; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.event.Event; + +/** + * Adds an event to the address book. + */ +public class AddEventCommand extends Command { + + public static final String COMMAND_WORD = "add"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an event to the address book. " + + "Parameters: " + + PREFIX_EVENT_NAME + "NAME " + + PREFIX_EVENT_LOCATION + "LOCATION " + + PREFIX_EVENT_START_DATE + "START DATE " + + PREFIX_EVENT_END_DATE + "END DATE " + + PREFIX_EVENT_START_TIME + "START TIME " + + PREFIX_EVENT_END_TIME + "END TIME " + + PREFIX_EVENT_DESCRIPTION + "DESCRIPTION " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " " + + PREFIX_EVENT_NAME + "Youth Humanitarian Challenge " + + PREFIX_EVENT_LOCATION + "29 Havelock Road " + + PREFIX_EVENT_START_DATE + "28-09-2018 " + + PREFIX_EVENT_END_DATE + "28-09-2018 " + + PREFIX_EVENT_START_TIME + "10:00 " + + PREFIX_EVENT_END_TIME + "14:00 " + + PREFIX_EVENT_DESCRIPTION + "To engage youths in humanitarianism. " + + PREFIX_TAG + "Competition "; + + public static final String MESSAGE_SUCCESS = "New event added: %1$s"; + public static final String MESSAGE_DUPLICATE_EVENT = "This event already exists in the address book"; + + private final Event toAdd; + + /** + * Creates an AddEventCommand to add the specified {@code Event} + */ + public AddEventCommand(Event event) { + requireNonNull(event); + toAdd = event; + } + + @Override + public CommandResult execute(Model model, CommandHistory history) throws CommandException { + requireNonNull(model); + + if (model.hasEvent(toAdd)) { + throw new CommandException(MESSAGE_DUPLICATE_EVENT); + } + + model.addEvent(toAdd); + model.commitAddressBook(); + return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddEventCommand // instanceof handles nulls + && toAdd.equals(((AddEventCommand) other).toAdd)); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddEventCommandParser.java b/src/main/java/seedu/address/logic/parser/AddEventCommandParser.java new file mode 100644 index 000000000000..e5befd8e1db6 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddEventCommandParser.java @@ -0,0 +1,71 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_DESCRIPTION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_LOCATION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.Set; +import java.util.stream.Stream; + +import seedu.address.logic.commands.AddEventCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Event; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; +import seedu.address.model.tag.Tag; + + +/** + * Parses input arguments and creates a new AddEventCommand object + */ +public class AddEventCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddCommand + * and returns an AddCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddEventCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_EVENT_NAME, PREFIX_EVENT_LOCATION, PREFIX_EVENT_START_DATE, + PREFIX_EVENT_END_DATE, PREFIX_EVENT_START_TIME, PREFIX_EVENT_END_TIME, PREFIX_EVENT_DESCRIPTION, + PREFIX_TAG); + + if (!arePrefixesPresent(argMultimap, PREFIX_EVENT_NAME, PREFIX_EVENT_LOCATION, PREFIX_EVENT_START_DATE, + PREFIX_EVENT_END_DATE, PREFIX_EVENT_START_TIME, PREFIX_EVENT_END_TIME, PREFIX_EVENT_DESCRIPTION) + || !argMultimap.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventCommand.MESSAGE_USAGE)); + } + + Name name = ParserEventUtil.parseName(argMultimap.getValue(PREFIX_EVENT_NAME).get()); + Location location = ParserEventUtil.parseLocation(argMultimap.getValue(PREFIX_EVENT_LOCATION).get()); + Date startDate = ParserEventUtil.parseDate(argMultimap.getValue(PREFIX_EVENT_START_DATE).get()); + Date endDate = ParserEventUtil.parseDate(argMultimap.getValue(PREFIX_EVENT_END_DATE).get()); + Time startTime = ParserEventUtil.parseTime(argMultimap.getValue(PREFIX_EVENT_START_TIME).get()); + Time endTime = ParserEventUtil.parseTime(argMultimap.getValue(PREFIX_EVENT_END_TIME).get()); + Description description = ParserEventUtil.parseDescription(argMultimap.getValue(PREFIX_EVENT_DESCRIPTION) + .get()); + Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + + Event person = new Event(name, location, startDate, endDate, startTime, endTime, description, tagList); + + return new AddEventCommand(person); + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index f9675620df9c..d7f6a793a379 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -77,7 +77,7 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce // Executes commands for events if (contextId.equals(Context.EVENT_CONTEXT_ID)) { - return parseEventCommand(commandWord, arguments); + return parseEventCommand(commandWord, arguments); } // Executes commands for volunteers @@ -130,29 +130,29 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce private Command parseEventCommand(String commandWord, String arguments) throws ParseException { // Replace all these commands switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddCommand.COMMAND_WORD: + return new AddEventCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case SelectCommand.COMMAND_WORD: - return new SelectEventCommandParser().parse(arguments); + case SelectCommand.COMMAND_WORD: + return new SelectEventCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 9ba8d4a29e57..dd60487099e0 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -14,6 +14,15 @@ public class CliSyntax { public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); + /* Event Prefix definitions */ + public static final Prefix PREFIX_EVENT_NAME = new Prefix("n/"); + public static final Prefix PREFIX_EVENT_LOCATION = new Prefix("l/"); + public static final Prefix PREFIX_EVENT_START_DATE = new Prefix("sd/"); + public static final Prefix PREFIX_EVENT_END_DATE = new Prefix("ed/"); + public static final Prefix PREFIX_EVENT_START_TIME = new Prefix("st/"); + public static final Prefix PREFIX_EVENT_END_TIME = new Prefix("et/"); + public static final Prefix PREFIX_EVENT_DESCRIPTION = new Prefix("d/"); + /* Record Prefix definitions */ public static final Prefix PREFIX_RECORD_HOUR = new Prefix("h/"); public static final Prefix PREFIX_RECORD_REMARK = new Prefix("r/"); diff --git a/src/main/java/seedu/address/logic/parser/ParserEventUtil.java b/src/main/java/seedu/address/logic/parser/ParserEventUtil.java new file mode 100644 index 000000000000..53e92e458fdf --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/ParserEventUtil.java @@ -0,0 +1,108 @@ +package seedu.address.logic.parser; + +import static java.util.Objects.requireNonNull; + +import seedu.address.commons.core.index.Index; +import seedu.address.commons.util.StringUtil; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; + +/** + * Contains utility methods used for parsing strings in the various *Parser classes for Event entity. + */ +public class ParserEventUtil { + public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; + + /** + * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be + * trimmed. + * + * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). + */ + public static Index parseIndex(String oneBasedIndex) throws ParseException { + String trimmedIndex = oneBasedIndex.trim(); + if (!StringUtil.isNonZeroUnsignedInteger(trimmedIndex)) { + throw new ParseException(MESSAGE_INVALID_INDEX); + } + return Index.fromOneBased(Integer.parseInt(trimmedIndex)); + } + + /** + * Parses a {@code String name} into a {@code Name}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code name} is invalid. + */ + public static Name parseName(String name) throws ParseException { + requireNonNull(name); + String trimmedName = name.trim(); + if (!Name.isValidName(trimmedName)) { + throw new ParseException(Name.MESSAGE_NAME_CONSTRAINTS); + } + return new Name(trimmedName); + } + + /** + * Parses a {@code String location} into a {@code Location}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code location} is invalid. + */ + public static Location parseLocation(String location) throws ParseException { + requireNonNull(location); + String trimmedLocation = location.trim(); + if (!Location.isValidLocation(trimmedLocation)) { + throw new ParseException(Location.MESSAGE_LOCATION_CONSTRAINTS); + } + return new Location(trimmedLocation); + } + + /** + * Parses a {@code String date} into a {@code Date}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code date} is invalid. + */ + public static Date parseDate(String date) throws ParseException { + requireNonNull(date); + String trimmedDate = date.trim(); + if (!Location.isValidLocation(trimmedDate)) { + throw new ParseException(Date.MESSAGE_DATE_CONSTRAINTS); + } + return new Date(trimmedDate); + } + + /** + * Parses a {@code String time} into a {@code Time}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code time} is invalid. + */ + public static Time parseTime(String time) throws ParseException { + requireNonNull(time); + String trimmedTime = time.trim(); + if (!Location.isValidLocation(trimmedTime)) { + throw new ParseException(Time.MESSAGE_TIME_CONSTRAINTS); + } + return new Time(trimmedTime); + } + + /** + * Parses a {@code String description} into a {@code Description}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code description} is invalid. + */ + public static Description parseDescription(String description) throws ParseException { + requireNonNull(description); + String trimmedDescription = description.trim(); + if (!Location.isValidLocation(trimmedDescription)) { + throw new ParseException(Description.MESSAGE_DESCRIPTION_CONSTRAINTS); + } + return new Description(trimmedDescription); + } +} diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index 55e5a8a2e373..fd4bd1ca8bad 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -66,7 +66,7 @@ public Event(Name name, Location location, Date startDate, Date endDate, } /** - * Used when loading data from XML. Every field must be present and not null. + * Used when loading data from XML or editing. Every field must be present and not null. */ public Event(EventId eventId, Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { @@ -224,8 +224,8 @@ public String toString() { .append(" Location: ").append(getLocation()) .append(" Start Date: ").append(getStartDate()) .append(" End Date: ").append(getEndDate()) - .append(" Start Time.java: ").append(getStartTime()) - .append(" End Time.java: ").append(getEndTime()) + .append(" Start Time: ").append(getStartTime()) + .append(" End Time: ").append(getEndTime()) .append(" Description: ").append(getDescription()) .append(" Tags: "); getTags().forEach(builder::append); From 43f13e96f2ff2de26651e3febb0bc19e86119df1 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 07:09:36 +0800 Subject: [PATCH 125/655] MainWindow.java: Test display panel --- src/main/java/seedu/address/ui/MainWindow.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 309c15f63603..4f465439363a 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -202,6 +202,8 @@ private void handleContextChange(String contextId) { // TO_UPDATE: Shows all available volunteers for event listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + browserPlaceholder.getChildren().clear(); + browserPlaceholder.getChildren().add(eventListPanel.getRoot()); } } From 6ea87415224c20f48c258f1d142b9823634e3c63 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 15 Oct 2018 07:57:15 +0800 Subject: [PATCH 126/655] Modify auto-increment id behaviour in Event.java and Person.java --- src/main/java/seedu/address/model/event/Event.java | 8 ++++---- src/main/java/seedu/address/model/person/Person.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index fd4bd1ca8bad..77c98e112831 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -71,9 +71,9 @@ public Event(Name name, Location location, Date startDate, Date endDate, public Event(EventId eventId, Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { requireAllNonNull(eventId, name, location, startDate, endDate, description, tags); - + System.out.println("Event Max Id " + maxId); if (isNewEventIdGreaterThanMaxId(eventId.id)) { - replaceMaxIdWithIncrementedEventId(eventId.id); + replaceMaxIdWithEventId(eventId.id); } this.eventId = eventId; @@ -111,8 +111,8 @@ private boolean isNewEventIdGreaterThanMaxId(int newEventId) { * Replaces max id with new event id. * @param newEventId event id from loaded xml event. */ - private void replaceMaxIdWithIncrementedEventId(int newEventId) { - maxId = newEventId + 1; + private void replaceMaxIdWithEventId(int newEventId) { + maxId = newEventId; } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 04ebcd18b626..ae224e9f7fa7 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -48,9 +48,9 @@ public Person(Name name, Phone phone, Email email, Address address, Set tag */ public Person(PersonId personId, Name name, Phone phone, Email email, Address address, Set tags) { requireAllNonNull(personId, name, phone, email, address, tags); - + System.out.println("Person Max Id" + maxId); if (isNewPersonIdGreaterThanMaxId(personId.id)) { - replaceMaxIdWithIncrementedPersonId(personId.id); + replaceMaxIdWithPersonId(personId.id); } this.personId = personId; this.name = name; @@ -81,8 +81,8 @@ private boolean isNewPersonIdGreaterThanMaxId(int newPersonId) { * * @param newPersonId event id from loaded xml event. */ - private void replaceMaxIdWithIncrementedPersonId(int newPersonId) { - maxId = newPersonId + 1; + private void replaceMaxIdWithPersonId(int newPersonId) { + maxId = newPersonId; } public PersonId getPersonId() { From 3220233cb6adcf5971b9d2ede8b2469160f13a56 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 15 Oct 2018 08:07:13 +0800 Subject: [PATCH 127/655] Fix formatting issues --- .../seedu/address/logic/parser/SelectEventCommandParser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java b/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java index 8002417194e9..a28b6683e6bb 100644 --- a/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SelectEventCommandParser.java @@ -7,6 +7,9 @@ import seedu.address.logic.parser.exceptions.ParseException; +/** + * Parses input arguments and creates a new SelectEventCommand object + */ public class SelectEventCommandParser implements Parser { /** From c700e77fd3c4f3fd94fef6e04c62ad072c6b6645 Mon Sep 17 00:00:00 2001 From: Kratious Date: Mon, 15 Oct 2018 08:27:46 +0800 Subject: [PATCH 128/655] Modify auto-increment id behaviour --- .../java/seedu/address/model/event/Event.java | 24 ++++++++++--------- .../seedu/address/model/person/Person.java | 23 +++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/address/model/event/Event.java b/src/main/java/seedu/address/model/event/Event.java index 55e5a8a2e373..746a4483dae2 100644 --- a/src/main/java/seedu/address/model/event/Event.java +++ b/src/main/java/seedu/address/model/event/Event.java @@ -41,7 +41,8 @@ public class Event { private final Set tags = new HashSet<>(); /** - * Used when creating new Event. Every field must be present and not null. + * Used when creating new Event. + * Every field must be present and not null. */ public Event(Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { @@ -66,14 +67,15 @@ public Event(Name name, Location location, Date startDate, Date endDate, } /** - * Used when loading data from XML. Every field must be present and not null. + * Used when loading data from XML and editing Event. + * Every field must be present and not null. */ public Event(EventId eventId, Name name, Location location, Date startDate, Date endDate, Time startTime, Time endTime, Description description, Set tags) { requireAllNonNull(eventId, name, location, startDate, endDate, description, tags); - if (isNewEventIdGreaterThanMaxId(eventId.id)) { - replaceMaxIdWithIncrementedEventId(eventId.id); + if (isEventIdGreaterThanMaxId(eventId.id)) { + replaceMaxIdWithEventId(eventId.id); } this.eventId = eventId; @@ -100,19 +102,19 @@ private void incrementMaxId() { } /** - * Checks if new event id is greater than current max id. - * @param newEventId event id from loaded xml event. + * Checks if event id is greater than current max id. + * @param eventId event id from an existing event. */ - private boolean isNewEventIdGreaterThanMaxId(int newEventId) { - return newEventId > maxId; + private boolean isEventIdGreaterThanMaxId(int eventId) { + return eventId > maxId; } /** * Replaces max id with new event id. - * @param newEventId event id from loaded xml event. + * @param eventId event id from an existing event. */ - private void replaceMaxIdWithIncrementedEventId(int newEventId) { - maxId = newEventId + 1; + private void replaceMaxIdWithEventId(int eventId) { + maxId = eventId; } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 04ebcd18b626..1a1f7445a4ca 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -44,13 +44,14 @@ public Person(Name name, Phone phone, Email email, Address address, Set tag } /** - * Used when loading data from XML. Every field must be present and not null. + * Used when loading data from XML and editing Person. + * Every field must be present and not null. */ public Person(PersonId personId, Name name, Phone phone, Email email, Address address, Set tags) { requireAllNonNull(personId, name, phone, email, address, tags); - if (isNewPersonIdGreaterThanMaxId(personId.id)) { - replaceMaxIdWithIncrementedPersonId(personId.id); + if (isPersonIdGreaterThanMaxId(personId.id)) { + replaceMaxIdWithPersonId(personId.id); } this.personId = personId; this.name = name; @@ -68,21 +69,21 @@ private void incrementMaxId() { } /** - * Checks if new event id is greater than current max id. + * Checks if person id is greater than current max id. * - * @param newPersonId event id from loaded xml event. + * @param personId event id from an existing person. */ - private boolean isNewPersonIdGreaterThanMaxId(int newPersonId) { - return newPersonId > maxId; + private boolean isPersonIdGreaterThanMaxId(int personId) { + return personId > maxId; } /** - * Replaces max id with new event id. + * Replaces max id with person id. * - * @param newPersonId event id from loaded xml event. + * @param personId event id from an existing person. */ - private void replaceMaxIdWithIncrementedPersonId(int newPersonId) { - maxId = newPersonId + 1; + private void replaceMaxIdWithPersonId(int personId) { + maxId = personId; } public PersonId getPersonId() { From f912589c41ccff6b11a71a9bf8ff796bd72b441b Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 08:46:19 +0800 Subject: [PATCH 129/655] RecordEventPanel: Added panels for records --- .../java/seedu/address/ui/MainWindow.java | 4 ++- .../seedu/address/ui/RecordEventPanel.java | 30 +++++++++++++++++++ src/main/resources/view/RecordEventPanel.fxml | 30 +++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/address/ui/RecordEventPanel.java create mode 100644 src/main/resources/view/RecordEventPanel.fxml diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 4f465439363a..7b6d819dcee4 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -42,6 +42,7 @@ public class MainWindow extends UiPart { private BrowserPanel browserPanel; private PersonListPanel personListPanel; private EventListPanel eventListPanel; + private RecordEventPanel recordEventPanel; private Config config; private UserPrefs prefs; private HelpWindow helpWindow; @@ -130,6 +131,7 @@ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); eventListPanel = new EventListPanel(logic.getFilteredEventList()); + recordEventPanel = new RecordEventPanel(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); @@ -203,7 +205,7 @@ private void handleContextChange(String contextId) { listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); browserPlaceholder.getChildren().clear(); - browserPlaceholder.getChildren().add(eventListPanel.getRoot()); + browserPlaceholder.getChildren().add(recordEventPanel.getRoot()); } } diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java new file mode 100644 index 000000000000..c8bade4a6cde --- /dev/null +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -0,0 +1,30 @@ +package seedu.address.ui; + +import java.util.logging.Logger; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.control.TableView; +import javafx.scene.layout.Region; +import seedu.address.commons.core.LogsCenter; + +/** + * Panel containing the list of persons. + */ +public class RecordEventPanel extends UiPart { + private static final String FXML = "RecordEventPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(RecordEventPanel.class); + + @FXML + private Label eventNameLabel; + @FXML + private Label numOfVolunteersLabel; + @FXML + private TableView volunteerRecordTableView; + + public RecordEventPanel() { + super(FXML); + eventNameLabel.setText("EVENT NAME"); + numOfVolunteersLabel.setText("0"); + } +} diff --git a/src/main/resources/view/RecordEventPanel.fxml b/src/main/resources/view/RecordEventPanel.fxml new file mode 100644 index 000000000000..fabead60acb0 --- /dev/null +++ b/src/main/resources/view/RecordEventPanel.fxml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 69ba97ecb2b4b7112add81dffb358696b59a56e1 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 09:02:37 +0800 Subject: [PATCH 130/655] RecordEventPanel.fxml: Added additional column for index --- src/main/resources/view/RecordEventPanel.fxml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/view/RecordEventPanel.fxml b/src/main/resources/view/RecordEventPanel.fxml index fabead60acb0..1550ca00e3e6 100644 --- a/src/main/resources/view/RecordEventPanel.fxml +++ b/src/main/resources/view/RecordEventPanel.fxml @@ -18,7 +18,8 @@ - + + From 43c03038a606c699e700204f46efac477701841e Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 09:15:19 +0800 Subject: [PATCH 131/655] Manage context: Pass event by object --- .../commons/events/ui/ContextChangeEvent.java | 12 ++++++++++++ .../seedu/address/logic/commands/ManageCommand.java | 5 +++-- src/main/java/seedu/address/ui/MainWindow.java | 7 ++++--- src/main/java/seedu/address/ui/RecordEventPanel.java | 5 +++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java index 47448998aab8..e0ac53513f58 100644 --- a/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java +++ b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java @@ -1,6 +1,7 @@ package seedu.address.commons.events.ui; import seedu.address.commons.events.BaseEvent; +import seedu.address.model.event.Event; /** * Represents a selection change in the Event List Panel @@ -9,9 +10,16 @@ public class ContextChangeEvent extends BaseEvent { private final String contextId; + private final Event currentEvent; public ContextChangeEvent(String contextId) { this.contextId = contextId; + currentEvent = null; + } + + public ContextChangeEvent(String contextId, Event e) { + this.contextId = contextId; + this.currentEvent = e; } @Override @@ -22,4 +30,8 @@ public String toString() { public String getNewContext() { return contextId; } + + public Event getCurrentEvent() { + return currentEvent; + } } diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 989433c38311..4e65312fed61 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -47,8 +47,9 @@ public CommandResult execute(Model model, CommandHistory history) throws Command // TO_UPDATE // EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); - EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); - return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); + EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId(), + filteredEventList.get(targetIndex.getZeroBased()))); + return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getZeroBased())); } diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 7b6d819dcee4..baf4480e4081 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -131,7 +131,6 @@ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); eventListPanel = new EventListPanel(logic.getFilteredEventList()); - recordEventPanel = new RecordEventPanel(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); @@ -193,7 +192,8 @@ void show() { * Replaces the ListPanel with the appropriate context. */ @FXML - private void handleContextChange(String contextId) { + private void handleContextChange(ContextChangeEvent contextChangeEvent) { + String contextId = contextChangeEvent.getNewContext(); if (contextId.equals(EVENT_CONTEXT_ID)) { listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(eventListPanel.getRoot()); @@ -205,6 +205,7 @@ private void handleContextChange(String contextId) { listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); browserPlaceholder.getChildren().clear(); + recordEventPanel = new RecordEventPanel(contextChangeEvent.getCurrentEvent()); browserPlaceholder.getChildren().add(recordEventPanel.getRoot()); } } @@ -233,7 +234,7 @@ void releaseResources() { @Subscribe private void handleContextChangeEvent(ContextChangeEvent event) { logger.info(event.getNewContext()); - handleContextChange(event.getNewContext()); + handleContextChange(event); } @Subscribe diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index c8bade4a6cde..e0ddedcd6b52 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -7,6 +7,7 @@ import javafx.scene.control.TableView; import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; +import seedu.address.model.event.Event; /** * Panel containing the list of persons. @@ -22,9 +23,9 @@ public class RecordEventPanel extends UiPart { @FXML private TableView volunteerRecordTableView; - public RecordEventPanel() { + public RecordEventPanel(Event currentEvent) { super(FXML); - eventNameLabel.setText("EVENT NAME"); + eventNameLabel.setText(currentEvent.getName().fullName); numOfVolunteersLabel.setText("0"); } } From 4c0a18eaf0f154da6e18eaaf827a8f0f1da4871e Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 09:16:54 +0800 Subject: [PATCH 132/655] MainWindow.java: Abstracted out clear methods --- src/main/java/seedu/address/ui/MainWindow.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index baf4480e4081..e6269dc96d7f 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -94,6 +94,7 @@ private void setAccelerators() { /** * Sets the accelerator of a MenuItem. + * * @param keyCombination the KeyCombination value of the accelerator */ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { @@ -194,17 +195,18 @@ void show() { @FXML private void handleContextChange(ContextChangeEvent contextChangeEvent) { String contextId = contextChangeEvent.getNewContext(); + listPanelPlaceholder.getChildren().clear(); + browserPlaceholder.getChildren().clear(); + if (contextId.equals(EVENT_CONTEXT_ID)) { - listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(eventListPanel.getRoot()); + browserPlaceholder.getChildren().add(browserPanel.getRoot()); } else if (contextId.equals(VOLUNTEER_CONTEXT_ID)) { - listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + browserPlaceholder.getChildren().add(browserPanel.getRoot()); } else if (contextId.equals(RECORD_CONTEXT_ID)) { // TO_UPDATE: Shows all available volunteers for event - listPanelPlaceholder.getChildren().clear(); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); - browserPlaceholder.getChildren().clear(); recordEventPanel = new RecordEventPanel(contextChangeEvent.getCurrentEvent()); browserPlaceholder.getChildren().add(recordEventPanel.getRoot()); } From 5b3728e848542e5d5879f0572a28562e93106e95 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 09:21:14 +0800 Subject: [PATCH 133/655] ManageCommand.java: Use one base --- src/main/java/seedu/address/logic/commands/ManageCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 4e65312fed61..5f8c66d0043f 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -49,7 +49,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command // EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId(), filteredEventList.get(targetIndex.getZeroBased()))); - return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getZeroBased())); + return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); } From 295369498ded955024d5ff7e19debfeacb82b494 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 11:58:41 +0800 Subject: [PATCH 134/655] RecordChangeEvent:Updated context change --- .../commons/events/ui/RecordChangeEvent.java | 22 +++++++++++++++++++ .../address/logic/commands/ManageCommand.java | 8 +++++-- .../java/seedu/address/ui/MainWindow.java | 4 +++- .../seedu/address/ui/RecordEventPanel.java | 14 ++++++++++-- 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java diff --git a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java new file mode 100644 index 000000000000..fb995d652d00 --- /dev/null +++ b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java @@ -0,0 +1,22 @@ +package seedu.address.commons.events.ui; + +import seedu.address.commons.core.index.Index; +import seedu.address.commons.events.BaseEvent; + +/** + * Indicates a request to jump to the list of persons + */ +public class RecordChangeEvent extends BaseEvent { + + public final int targetIndex; + + public RecordChangeEvent(Index targetIndex) { + this.targetIndex = targetIndex.getZeroBased(); + } + + @Override + public String toString() { + return getClass().getSimpleName(); + } + +} diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 5f8c66d0043f..3c880b4631a1 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -8,6 +8,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.commons.events.ui.ContextChangeEvent; +import seedu.address.commons.events.ui.RecordChangeEvent; import seedu.address.logic.CommandHistory; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; @@ -46,9 +47,12 @@ public CommandResult execute(Model model, CommandHistory history) throws Command model.switchToRecordContext(); // TO_UPDATE + // EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); - EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId(), - filteredEventList.get(targetIndex.getZeroBased()))); + // EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId(), + // filteredEventList.get(targetIndex.getZeroBased()))); + EventsCenter.getInstance().post(new RecordChangeEvent(targetIndex)); + EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); } diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index e6269dc96d7f..42aa8671955d 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -133,6 +133,8 @@ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); eventListPanel = new EventListPanel(logic.getFilteredEventList()); + recordEventPanel = new RecordEventPanel(); + listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); ResultDisplay resultDisplay = new ResultDisplay(); @@ -207,7 +209,7 @@ private void handleContextChange(ContextChangeEvent contextChangeEvent) { } else if (contextId.equals(RECORD_CONTEXT_ID)) { // TO_UPDATE: Shows all available volunteers for event listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); - recordEventPanel = new RecordEventPanel(contextChangeEvent.getCurrentEvent()); + //recordEventPanel = new RecordEventPanel(contextChangeEvent.getCurrentEvent()); browserPlaceholder.getChildren().add(recordEventPanel.getRoot()); } } diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index e0ddedcd6b52..6004cb9bf523 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -2,11 +2,14 @@ import java.util.logging.Logger; +import com.google.common.eventbus.Subscribe; + import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TableView; import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; +import seedu.address.commons.events.ui.RecordChangeEvent; import seedu.address.model.event.Event; /** @@ -23,9 +26,16 @@ public class RecordEventPanel extends UiPart { @FXML private TableView volunteerRecordTableView; - public RecordEventPanel(Event currentEvent) { + public RecordEventPanel() { super(FXML); - eventNameLabel.setText(currentEvent.getName().fullName); + registerAsAnEventHandler(this); + } + + @Subscribe + private void handleRecordChangeEvent(RecordChangeEvent event) { + logger.info(LogsCenter.getEventHandlingLogMessage(event)); + eventNameLabel.setText("EVENT!"); numOfVolunteersLabel.setText("0"); } + } From 42f919dcc885d0f0eaee470e9d4d91344c038a57 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 12:00:48 +0800 Subject: [PATCH 135/655] MainWindow.java: Updated command change --- .../commons/events/ui/ContextChangeEvent.java | 14 -------------- .../address/logic/commands/ManageCommand.java | 4 ---- src/main/java/seedu/address/ui/MainWindow.java | 1 - 3 files changed, 19 deletions(-) diff --git a/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java index e0ac53513f58..438ef64b87ef 100644 --- a/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java +++ b/src/main/java/seedu/address/commons/events/ui/ContextChangeEvent.java @@ -1,25 +1,15 @@ package seedu.address.commons.events.ui; import seedu.address.commons.events.BaseEvent; -import seedu.address.model.event.Event; /** * Represents a selection change in the Event List Panel */ public class ContextChangeEvent extends BaseEvent { - - private final String contextId; - private final Event currentEvent; public ContextChangeEvent(String contextId) { this.contextId = contextId; - currentEvent = null; - } - - public ContextChangeEvent(String contextId, Event e) { - this.contextId = contextId; - this.currentEvent = e; } @Override @@ -30,8 +20,4 @@ public String toString() { public String getNewContext() { return contextId; } - - public Event getCurrentEvent() { - return currentEvent; - } } diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 3c880b4631a1..bb2536b0dc71 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -47,10 +47,6 @@ public CommandResult execute(Model model, CommandHistory history) throws Command model.switchToRecordContext(); // TO_UPDATE - - // EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex)); - // EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId(), - // filteredEventList.get(targetIndex.getZeroBased()))); EventsCenter.getInstance().post(new RecordChangeEvent(targetIndex)); EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 42aa8671955d..b52b8cde2050 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -209,7 +209,6 @@ private void handleContextChange(ContextChangeEvent contextChangeEvent) { } else if (contextId.equals(RECORD_CONTEXT_ID)) { // TO_UPDATE: Shows all available volunteers for event listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); - //recordEventPanel = new RecordEventPanel(contextChangeEvent.getCurrentEvent()); browserPlaceholder.getChildren().add(recordEventPanel.getRoot()); } } From 65658a55dd9370d0ec8905769b63a4433dcc1f10 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 12:07:06 +0800 Subject: [PATCH 136/655] RecordEventPanel.java: Fixed unused import --- src/main/java/seedu/address/ui/RecordEventPanel.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index 6004cb9bf523..b4df3dd9ecbd 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -10,7 +10,6 @@ import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.ui.RecordChangeEvent; -import seedu.address.model.event.Event; /** * Panel containing the list of persons. From b41283c61769143c24ee4434c551e4aee6f66e45 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 21:33:33 +0800 Subject: [PATCH 137/655] Manage command: Updated context method --- .../address/commons/events/ui/RecordChangeEvent.java | 12 ++++++++---- .../seedu/address/logic/commands/ManageCommand.java | 2 +- src/main/java/seedu/address/ui/RecordEventPanel.java | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java index fb995d652d00..905fcc142ae3 100644 --- a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java +++ b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java @@ -1,17 +1,21 @@ package seedu.address.commons.events.ui; -import seedu.address.commons.core.index.Index; import seedu.address.commons.events.BaseEvent; +import seedu.address.model.event.Event; /** * Indicates a request to jump to the list of persons */ public class RecordChangeEvent extends BaseEvent { - public final int targetIndex; + private final Event currentEvent; - public RecordChangeEvent(Index targetIndex) { - this.targetIndex = targetIndex.getZeroBased(); + public RecordChangeEvent(Event newSelection) { + this.currentEvent = newSelection; + } + + public Event getCurrentEvent(){ + return currentEvent; } @Override diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index bb2536b0dc71..970711004d5d 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -47,7 +47,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command model.switchToRecordContext(); // TO_UPDATE - EventsCenter.getInstance().post(new RecordChangeEvent(targetIndex)); + EventsCenter.getInstance().post(new RecordChangeEvent(filteredEventList.get(targetIndex.getZeroBased()))); EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index b4df3dd9ecbd..53e65ad8f0a6 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -33,7 +33,7 @@ public RecordEventPanel() { @Subscribe private void handleRecordChangeEvent(RecordChangeEvent event) { logger.info(LogsCenter.getEventHandlingLogMessage(event)); - eventNameLabel.setText("EVENT!"); + eventNameLabel.setText(event.getCurrentEvent().getName().fullName); numOfVolunteersLabel.setText("0"); } From 29e87343426a71e58f33c48a4e3fe587c5d2f7e1 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 21:38:02 +0800 Subject: [PATCH 138/655] Logic: getFilteredRecordList implemented --- src/main/java/seedu/address/logic/Logic.java | 4 ++++ src/main/java/seedu/address/logic/LogicManager.java | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 66f512c191f9..f8db4ce94bae 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -6,6 +6,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.event.Event; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * API of the Logic component @@ -26,6 +27,9 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of events */ ObservableList getFilteredEventList(); + /** Returns an unmodifiable view of the filtered list of events */ + ObservableList getFilteredRecordList(); + /** Returns the list of input entered by the user, encapsulated in a {@code ListElementPointer} object */ ListElementPointer getHistorySnapshot(); } diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index 42c5af216d7a..97d3f09a99a0 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -13,6 +13,7 @@ import seedu.address.model.Model; import seedu.address.model.event.Event; import seedu.address.model.person.Person; +import seedu.address.model.record.Record; /** * The main LogicManager of the app. @@ -51,6 +52,11 @@ public ObservableList getFilteredEventList() { return model.getFilteredEventList(); } + @Override + public ObservableList getFilteredRecordList() { + return model.getFilteredRecordList(); + } + @Override public ListElementPointer getHistorySnapshot() { return new ListElementPointer(history.getHistory()); From 82af9b89e95fc1336fd49ee2999c5c584df269db Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 21:39:11 +0800 Subject: [PATCH 139/655] Model.java: Rearranged predicate --- src/main/java/seedu/address/model/Model.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 180c2360a959..7d740d49c986 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -15,13 +15,16 @@ public interface Model { * {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; - Predicate PREDICATE_SHOW_ALL_RECORDS = unused -> true; - /** * {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_EVENTS = unused -> true; + /** + * {@code Predicate} that always evaluate to true + */ + Predicate PREDICATE_SHOW_ALL_RECORDS = unused -> true; + /** * Clears existing backing model and replaces with the provided new data. */ From 4dc82d874248468969e795c5c14632cc5d96f277 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 22:06:06 +0800 Subject: [PATCH 140/655] RecordEventPanel: Implemented Id --- src/main/java/seedu/address/ui/MainWindow.java | 2 +- src/main/java/seedu/address/ui/RecordEventPanel.java | 12 +++++++++++- src/main/resources/view/RecordEventPanel.fxml | 8 ++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 37d84c7ab5e5..35ea3ab32d9b 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -133,7 +133,7 @@ void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); eventListPanel = new EventListPanel(logic.getFilteredEventList()); - recordEventPanel = new RecordEventPanel(); + recordEventPanel = new RecordEventPanel(logic.getFilteredRecordList()); listPanelPlaceholder.getChildren().add(personListPanel.getRoot()); diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index 53e65ad8f0a6..6a5cde5ce257 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -4,12 +4,14 @@ import com.google.common.eventbus.Subscribe; +import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TableView; import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.ui.RecordChangeEvent; +import seedu.address.model.record.Record; /** * Panel containing the list of persons. @@ -25,16 +27,24 @@ public class RecordEventPanel extends UiPart { @FXML private TableView volunteerRecordTableView; - public RecordEventPanel() { + + public RecordEventPanel(ObservableList recordList) { super(FXML); + setConnections(recordList); registerAsAnEventHandler(this); } + private void setConnections(ObservableList recordList) { + + } + + @Subscribe private void handleRecordChangeEvent(RecordChangeEvent event) { logger.info(LogsCenter.getEventHandlingLogMessage(event)); eventNameLabel.setText(event.getCurrentEvent().getName().fullName); numOfVolunteersLabel.setText("0"); + } } diff --git a/src/main/resources/view/RecordEventPanel.fxml b/src/main/resources/view/RecordEventPanel.fxml index 1550ca00e3e6..704f2d6e36f6 100644 --- a/src/main/resources/view/RecordEventPanel.fxml +++ b/src/main/resources/view/RecordEventPanel.fxml @@ -18,10 +18,10 @@ - - - - + + + + From 8cfeb2be1dc2e2e5a93ee428cc37eedd09585f85 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 22:36:18 +0800 Subject: [PATCH 141/655] Record class and relevant test: Using implemented eventId and personId --- .../seedu/address/model/event/EventId.java | 15 ++++++ .../seedu/address/model/person/PersonId.java | 14 +++++ .../seedu/address/model/record/EventId.java | 52 ------------------- .../seedu/address/model/record/Record.java | 9 ++-- .../address/model/record/VolunteerId.java | 52 ------------------- .../address/storage/XmlAdaptedRecord.java | 31 +++++------ .../logic/commands/CommandTestUtil.java | 8 +-- .../address/model/record/EventIdTest.java | 39 -------------- .../address/model/record/VolunteerIdTest.java | 39 -------------- .../address/storage/XmlAdaptedRecordTest.java | 32 ++++-------- .../seedu/address/testutil/RecordBuilder.java | 18 +++---- .../address/testutil/TypicalRecords.java | 12 ++--- 12 files changed, 75 insertions(+), 246 deletions(-) delete mode 100644 src/main/java/seedu/address/model/record/EventId.java delete mode 100644 src/main/java/seedu/address/model/record/VolunteerId.java delete mode 100644 src/test/java/seedu/address/model/record/EventIdTest.java delete mode 100644 src/test/java/seedu/address/model/record/VolunteerIdTest.java diff --git a/src/main/java/seedu/address/model/event/EventId.java b/src/main/java/seedu/address/model/event/EventId.java index 9af76e5458dc..58b696b1ba0a 100644 --- a/src/main/java/seedu/address/model/event/EventId.java +++ b/src/main/java/seedu/address/model/event/EventId.java @@ -2,6 +2,8 @@ import static java.util.Objects.requireNonNull; +import java.util.Objects; + /** * Represents an Event's Id in the application. Event Id is used in identifying record entries. * Guarantees: immutable; is valid as declared in {@link #isValidId(int)} @@ -11,6 +13,7 @@ public class EventId { "Id should be more than zero, and it should not be blank"; public final int id; + /** * Constructs an {@code id}. * @@ -32,4 +35,16 @@ public static boolean isValidId(int test) { public String toString() { return Integer.toString(id); } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof EventId // instanceof handles nulls + && id == ((EventId) other).id); // state check + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } diff --git a/src/main/java/seedu/address/model/person/PersonId.java b/src/main/java/seedu/address/model/person/PersonId.java index ca250166bf4a..1e92f5f30bdd 100644 --- a/src/main/java/seedu/address/model/person/PersonId.java +++ b/src/main/java/seedu/address/model/person/PersonId.java @@ -2,6 +2,8 @@ import static java.util.Objects.requireNonNull; +import java.util.Objects; + /** * Represents an Event's Id in the application. Event Id is used in identifying record entries. * Guarantees: immutable; is valid as declared in {@link #isValidId(int)} @@ -32,4 +34,16 @@ public static boolean isValidId(int test) { public String toString() { return Integer.toString(id); } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof PersonId // instanceof handles nulls + && id == ((PersonId) other).id); // state check + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } diff --git a/src/main/java/seedu/address/model/record/EventId.java b/src/main/java/seedu/address/model/record/EventId.java deleted file mode 100644 index 7bc637d2a75f..000000000000 --- a/src/main/java/seedu/address/model/record/EventId.java +++ /dev/null @@ -1,52 +0,0 @@ -package seedu.address.model.record; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; - -/** - * This is just a placeholder class for development purposes. - * Actual record EventId should come from the event package - */ -public class EventId { - public static final String MESSAGE_EVENTID_CONSTRAINTS = "EventId can take in numerals only."; - public static final String EVENTID_VALIDATION_REGEX = "\\p{Digit}+"; - - public final String value; - - /** - * Constructs a {@code Remark}. - * - * @param id A valid eventId. - */ - public EventId(String id) { - requireNonNull(id); - checkArgument(isValidEventId(id), MESSAGE_EVENTID_CONSTRAINTS); - this.value = id; - } - - /** - * Returns true if a given string is a valid eventId. - */ - public static boolean isValidEventId(String test) { - return test.matches(EVENTID_VALIDATION_REGEX); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof EventId // instanceof handles nulls - && value.equals(((EventId) other).value)); // state check - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - /** - * Format state as text for viewing. - */ - public String toString() { - return value; - } -} diff --git a/src/main/java/seedu/address/model/record/Record.java b/src/main/java/seedu/address/model/record/Record.java index d8aa70a70341..4be30e805812 100644 --- a/src/main/java/seedu/address/model/record/Record.java +++ b/src/main/java/seedu/address/model/record/Record.java @@ -4,20 +4,23 @@ import java.util.Objects; +import seedu.address.model.event.EventId; +import seedu.address.model.person.PersonId; + /** * Represents a volunteer's event record in application. * Guarantees: details are present and not null, field values are validated, immutable. */ public class Record { private final EventId eventId; - private final VolunteerId volunteerId; + private final PersonId volunteerId; private final Hour hour; private final Remark remark; /** * Every field must be present and not null. */ - public Record(EventId eventId, VolunteerId volunteerId, Hour hour, Remark remark) { + public Record(EventId eventId, PersonId volunteerId, Hour hour, Remark remark) { requireAllNonNull(eventId, volunteerId, hour, remark); this.eventId = eventId; this.volunteerId = volunteerId; @@ -29,7 +32,7 @@ public EventId getEventId() { return eventId; } - public VolunteerId getVolunteerId() { + public PersonId getVolunteerId() { return volunteerId; } diff --git a/src/main/java/seedu/address/model/record/VolunteerId.java b/src/main/java/seedu/address/model/record/VolunteerId.java deleted file mode 100644 index 11952000460a..000000000000 --- a/src/main/java/seedu/address/model/record/VolunteerId.java +++ /dev/null @@ -1,52 +0,0 @@ -package seedu.address.model.record; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; - -/** - * This is just a placeholder class for development purposes. - * Actual record VolunteerId should come from the volunteer package - */ -public class VolunteerId { - public static final String MESSAGE_VOLUNTEERID_CONSTRAINTS = "VolunteerId can take in numerals only."; - public static final String VOLUNTEERID_VALIDATION_REGEX = "\\p{Digit}+"; - - public final String value; - - /** - * Constructs a {@code VolunteerId}. - * - * @param id A valid hour. - */ - public VolunteerId(String id) { - requireNonNull(id); - checkArgument(isValidVolunteerId(id), MESSAGE_VOLUNTEERID_CONSTRAINTS); - this.value = id; - } - - /** - * Returns true if a given string is a valid volunteerId. - */ - public static boolean isValidVolunteerId(String test) { - return test.matches(VOLUNTEERID_VALIDATION_REGEX); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof VolunteerId // instanceof handles nulls - && value.equals(((VolunteerId) other).value)); // state check - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - /** - * Format state as text for viewing. - */ - public String toString() { - return value; - } -} diff --git a/src/main/java/seedu/address/storage/XmlAdaptedRecord.java b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java index bf1cc1bd2aba..3bc0d130c31b 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedRecord.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedRecord.java @@ -5,11 +5,11 @@ import javax.xml.bind.annotation.XmlElement; import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.record.EventId; +import seedu.address.model.event.EventId; +import seedu.address.model.person.PersonId; import seedu.address.model.record.Hour; import seedu.address.model.record.Record; import seedu.address.model.record.Remark; -import seedu.address.model.record.VolunteerId; /** * JAXB-friendly version of the Person. @@ -19,9 +19,9 @@ public class XmlAdaptedRecord { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Record's %s field is missing!"; @XmlElement(required = true) - private String eventId; + private int eventId; @XmlElement(required = true) - private String volunteerId; + private int volunteerId; @XmlElement(required = true) private String hour; @XmlElement(required = true) @@ -37,7 +37,7 @@ public XmlAdaptedRecord() { /** * Constructs an {@code XmlAdaptedRecord} with the given record details. */ - public XmlAdaptedRecord(String eventId, String volunteerId, String hour, String remark) { + public XmlAdaptedRecord(int eventId, int volunteerId, String hour, String remark) { this.eventId = eventId; this.volunteerId = volunteerId; this.hour = hour; @@ -50,8 +50,8 @@ public XmlAdaptedRecord(String eventId, String volunteerId, String hour, String * @param source future changes to this will not affect the created XmlAdaptedRecord */ public XmlAdaptedRecord(Record source) { - eventId = source.getEventId().value; - volunteerId = source.getVolunteerId().value; + eventId = source.getEventId().id; + volunteerId = source.getVolunteerId().id; hour = source.getHour().value; remark = source.getRemark().value; } @@ -62,22 +62,15 @@ public XmlAdaptedRecord(Record source) { * @throws IllegalValueException if there were any data constraints violated in the adapted record */ public Record toModelType() throws IllegalValueException { - if (eventId == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName())); - } - if (!EventId.isValidEventId(eventId)) { - throw new IllegalValueException(EventId.MESSAGE_EVENTID_CONSTRAINTS); + if (!EventId.isValidId(eventId)) { + throw new IllegalValueException(EventId.MESSAGE_NAME_CONSTRAINTS); } final EventId modelEventId = new EventId(eventId); - if (volunteerId == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, VolunteerId.class - .getSimpleName())); - } - if (!VolunteerId.isValidVolunteerId(volunteerId)) { - throw new IllegalValueException(VolunteerId.MESSAGE_VOLUNTEERID_CONSTRAINTS); + if (!PersonId.isValidId(volunteerId)) { + throw new IllegalValueException(PersonId.MESSAGE_NAME_CONSTRAINTS); } - final VolunteerId modelVolunteerId = new VolunteerId(volunteerId); + final PersonId modelVolunteerId = new PersonId(volunteerId); if (hour == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Hour.class.getSimpleName())); diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index a60cb4c8d8a8..2766d9fb849f 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -28,10 +28,10 @@ public class CommandTestUtil { public static final String VALID_COMMANDID_EVENT = "e"; - public static final String VALID_EVENTID_E1 = "1"; - public static final String VALID_EVENTID_E2 = "2"; - public static final String VALID_VOLUNTEERID_V1 = "1"; - public static final String VALID_VOLUNTEERID_V2 = "2"; + public static final int VALID_EVENTID_E1 = 1; + public static final int VALID_EVENTID_E2 = 2; + public static final int VALID_VOLUNTEERID_V1 = 1; + public static final int VALID_VOLUNTEERID_V2 = 2; public static final String VALID_HOUR_H1 = "1"; public static final String VALID_HOUR_H2 = "2"; public static final String VALID_REMARK_R1 = "Emcee"; diff --git a/src/test/java/seedu/address/model/record/EventIdTest.java b/src/test/java/seedu/address/model/record/EventIdTest.java deleted file mode 100644 index e3614a5ee26c..000000000000 --- a/src/test/java/seedu/address/model/record/EventIdTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package seedu.address.model.record; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import seedu.address.testutil.Assert; - -/** - * Note that EventId will be from Event. All tests should be done there. - */ -public class EventIdTest { - @Test - public void constructor_null_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> new EventId(null)); - } - - @Test - public void constructor_invalidEventId_throwsIllegalArgumentException() { - String invalidEventId = ""; - Assert.assertThrows(IllegalArgumentException.class, () -> new EventId(invalidEventId)); - } - - @Test - public void isValidEventId() { - // null eventId - Assert.assertThrows(NullPointerException.class, () -> EventId.isValidEventId(null)); - - // invalid eventId - assertFalse(EventId.isValidEventId("")); // empty string - assertFalse(EventId.isValidEventId(" ")); // spaces only - assertFalse(EventId.isValidEventId("^")); // only non-alphanumeric characters - assertFalse(EventId.isValidEventId("0*")); // contains non-alphanumeric characters - - // valid eventId - assertTrue(EventId.isValidEventId("1")); // numbers only - } -} diff --git a/src/test/java/seedu/address/model/record/VolunteerIdTest.java b/src/test/java/seedu/address/model/record/VolunteerIdTest.java deleted file mode 100644 index 40b5b747df75..000000000000 --- a/src/test/java/seedu/address/model/record/VolunteerIdTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package seedu.address.model.record; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import seedu.address.testutil.Assert; - -/** - * Note that VolunteerId will be from Volunteers. All tests should be done there. - */ -public class VolunteerIdTest { - @Test - public void constructor_null_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> new VolunteerId(null)); - } - - @Test - public void constructor_invalidEventId_throwsIllegalArgumentException() { - String invalidVolunterId = ""; - Assert.assertThrows(IllegalArgumentException.class, () -> new VolunteerId(invalidVolunterId)); - } - - @Test - public void isValidVolunteerId() { - // null eventId - Assert.assertThrows(NullPointerException.class, () -> VolunteerId.isValidVolunteerId(null)); - - // invalid eventId - assertFalse(VolunteerId.isValidVolunteerId("")); // empty string - assertFalse(VolunteerId.isValidVolunteerId(" ")); // spaces only - assertFalse(VolunteerId.isValidVolunteerId("^")); // only non-alphanumeric characters - assertFalse(VolunteerId.isValidVolunteerId("0*")); // contains non-alphanumeric characters - - // valid eventId - assertTrue(VolunteerId.isValidVolunteerId("1")); // numbers only - } -} diff --git a/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java index fdca569beb60..0ccb1777f832 100644 --- a/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java +++ b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java @@ -8,20 +8,20 @@ import org.junit.Test; import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.record.EventId; +import seedu.address.model.event.EventId; +import seedu.address.model.person.PersonId; import seedu.address.model.record.Hour; import seedu.address.model.record.Remark; -import seedu.address.model.record.VolunteerId; import seedu.address.testutil.Assert; public class XmlAdaptedRecordTest { - private static final String INVALID_EVENTID = "1@"; - private static final String INVALID_VOLUNTEERID = "1@"; + private static final int INVALID_EVENTID = -1; + private static final int INVALID_VOLUNTEERID = -1; private static final String INVALID_HOUR = "1abc"; private static final String INVALID_REMARK = " "; - private static final String VALID_EVENTID = R2.getEventId().toString(); - private static final String VALID_VOLUNTEERID = R2.getVolunteerId().toString(); + private static final int VALID_EVENTID = R2.getEventId().id; + private static final int VALID_VOLUNTEERID = R2.getVolunteerId().id; private static final String VALID_HOUR = R2.getHour().toString(); private static final String VALID_REMARK = R2.getRemark().toString(); @@ -35,14 +35,7 @@ public void toModelType_validRecordDetails_returnsRecord() throws Exception { public void toModelType_invalidEventId_throwsIllegalValueException() { XmlAdaptedRecord record = new XmlAdaptedRecord(INVALID_EVENTID, VALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); - String expectedMessage = EventId.MESSAGE_EVENTID_CONSTRAINTS; - Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); - } - - @Test - public void toModelType_nullEventId_throwsIllegalValueException() { - XmlAdaptedRecord record = new XmlAdaptedRecord(null, VALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, EventId.class.getSimpleName()); + String expectedMessage = EventId.MESSAGE_NAME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); } @@ -50,17 +43,10 @@ public void toModelType_nullEventId_throwsIllegalValueException() { public void toModelType_invalidVolunteerId_throwsIllegalValueException() { XmlAdaptedRecord record = new XmlAdaptedRecord(VALID_EVENTID, INVALID_VOLUNTEERID, VALID_HOUR, VALID_REMARK); - String expectedMessage = VolunteerId.MESSAGE_VOLUNTEERID_CONSTRAINTS; + String expectedMessage = PersonId.MESSAGE_NAME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); } - - @Test - public void toModelType_nullVolunteerId_throwsIllegalValueException() { - XmlAdaptedRecord record = new XmlAdaptedRecord(VALID_EVENTID, null, VALID_HOUR, VALID_REMARK); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, VolunteerId.class.getSimpleName()); - Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); - } - + @Test public void toModelType_invalidHour_throwsIllegalValueException() { XmlAdaptedRecord record = diff --git a/src/test/java/seedu/address/testutil/RecordBuilder.java b/src/test/java/seedu/address/testutil/RecordBuilder.java index 3acca284ab22..41ddad7bda00 100644 --- a/src/test/java/seedu/address/testutil/RecordBuilder.java +++ b/src/test/java/seedu/address/testutil/RecordBuilder.java @@ -1,28 +1,28 @@ package seedu.address.testutil; -import seedu.address.model.record.EventId; +import seedu.address.model.event.EventId; +import seedu.address.model.person.PersonId; import seedu.address.model.record.Hour; import seedu.address.model.record.Record; import seedu.address.model.record.Remark; -import seedu.address.model.record.VolunteerId; /** * A utility class to help with building Person objects. */ public class RecordBuilder { - public static final String DEFAULT_EVENTID = "1"; - public static final String DEFAULT_VOLUNTEERID = "1"; + public static final int DEFAULT_EVENTID = 1; + public static final int DEFAULT_VOLUNTEERID = 1; public static final String DEFAULT_HOUR = "0"; public static final String DEFAULT_REMARK = "Emcee for event"; private EventId eventId; - private VolunteerId volunteerId; + private PersonId volunteerId; private Hour hour; private Remark remark; public RecordBuilder() { eventId = new EventId(DEFAULT_EVENTID); - volunteerId = new VolunteerId(DEFAULT_VOLUNTEERID); + volunteerId = new PersonId(DEFAULT_VOLUNTEERID); hour = new Hour(DEFAULT_HOUR); remark = new Remark(DEFAULT_REMARK); } @@ -40,7 +40,7 @@ public RecordBuilder(Record recordToCopy) { /** * Sets the {@code EventId} of the {@code Record} that we are building. */ - public RecordBuilder withEventId(String eventId) { + public RecordBuilder withEventId(int eventId) { this.eventId = new EventId(eventId); return this; } @@ -48,8 +48,8 @@ public RecordBuilder withEventId(String eventId) { /** * Sets the {@code VolunteerId} of the {@code Record} that we are building. */ - public RecordBuilder withVolunteerId(String volunteerId) { - this.volunteerId = new VolunteerId(volunteerId); + public RecordBuilder withVolunteerId(int volunteerId) { + this.volunteerId = new PersonId(volunteerId); return this; } diff --git a/src/test/java/seedu/address/testutil/TypicalRecords.java b/src/test/java/seedu/address/testutil/TypicalRecords.java index 637100ff4fa8..137a494d9bc9 100644 --- a/src/test/java/seedu/address/testutil/TypicalRecords.java +++ b/src/test/java/seedu/address/testutil/TypicalRecords.java @@ -12,18 +12,18 @@ */ public class TypicalRecords { - public static final Record R1 = new RecordBuilder().withEventId("1") - .withVolunteerId("1") + public static final Record R1 = new RecordBuilder().withEventId(1) + .withVolunteerId(1) .withHour("1") .withRemark("Emcee").build(); - public static final Record R2 = new RecordBuilder().withEventId("2") - .withVolunteerId("2") + public static final Record R2 = new RecordBuilder().withEventId(2) + .withVolunteerId(2) .withHour("2") .withRemark("Delivery man").build(); - public static final Record R3 = new RecordBuilder().withEventId("2") - .withVolunteerId("1") + public static final Record R3 = new RecordBuilder().withEventId(2) + .withVolunteerId(1) .withHour("2") .withRemark("Food delivery").build(); From 4563c3fc119b8b8799c2c18d55c958855df4e11c Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 22:50:15 +0800 Subject: [PATCH 142/655] XmlAdaptedRecordTest.java: Fix Checkstyle --- src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java index 0ccb1777f832..d57ae27f6ecb 100644 --- a/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java +++ b/src/test/java/seedu/address/storage/XmlAdaptedRecordTest.java @@ -46,7 +46,7 @@ public void toModelType_invalidVolunteerId_throwsIllegalValueException() { String expectedMessage = PersonId.MESSAGE_NAME_CONSTRAINTS; Assert.assertThrows(IllegalValueException.class, expectedMessage, record::toModelType); } - + @Test public void toModelType_invalidHour_throwsIllegalValueException() { XmlAdaptedRecord record = From da5dd273fe2ea3daddeb65833c202bc39b50e4a6 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 22:54:52 +0800 Subject: [PATCH 143/655] RecordEventPanel.java: Fix Checkstyle --- src/main/java/seedu/address/ui/RecordEventPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index 6a5cde5ce257..b6dd2b9327b8 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -35,7 +35,7 @@ public RecordEventPanel(ObservableList recordList) { } private void setConnections(ObservableList recordList) { - + } From c423ccd2b575ef2261bb77bda4ccc9c72204dc56 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 22:58:50 +0800 Subject: [PATCH 144/655] RecordChangeEvent.java: Fix Checkstyle --- .../java/seedu/address/commons/events/ui/RecordChangeEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java index 905fcc142ae3..d4d67985ea62 100644 --- a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java +++ b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java @@ -14,7 +14,7 @@ public RecordChangeEvent(Event newSelection) { this.currentEvent = newSelection; } - public Event getCurrentEvent(){ + public Event getCurrentEvent() { return currentEvent; } From 043b56a2f1eda2142f4cc27f9ba88f8707acbd91 Mon Sep 17 00:00:00 2001 From: Sharan Date: Mon, 15 Oct 2018 23:05:57 +0800 Subject: [PATCH 145/655] DeveloperGuide.adoc: Update Introduction section --- docs/DeveloperGuide.adoc | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index fe6b131d8fb1..1dc190576f3f 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -18,8 +18,31 @@ endif::[] By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` == Introduction -TBC +Welcome to SocialCare's Developer Guide! + +=== What is SocialCare? + +SocialCare is a CLI-based event and volunteer management system designed for social welfare organisations. It enables the following: + +* Faster volunteer and event management (than a typical mouse/GUI driven app) +* Tagging to categorize volunteers and events +* Additional fields for volunteers, such as number of volunteer hours +* Viewing of volunteer and event statistics + +=== Core Team + +SocialCare was developed and is maintained by https://github.com/CS2103-AY1819S1-W16-2[Team W16-2]. Due credit goes to the https://se-edu.github.io/docs/Team.html[se-edu] team, who's application https://github.com/nus-cs2103-AY1819S1/addressbook-level4[Address Book - Level 4] was morphed into SocialCare. + +Feel free to <> to us regarding any enquiries or clarifications. + +=== Contributing + +SocialCare is an open source project, and thus contributions are always welcome. Let's get you on board! + +To get started, head on to <>. + +[[Setting-Up]] == Setting up === Prerequisites From 1771569a5afef7c9e14805509fad196fc7ebc02d Mon Sep 17 00:00:00 2001 From: Sharan Date: Mon, 15 Oct 2018 23:08:05 +0800 Subject: [PATCH 146/655] Revert "DeveloperGuide.adoc: Update Introduction section" This reverts commit 043b56a2f1eda2142f4cc27f9ba88f8707acbd91. --- docs/DeveloperGuide.adoc | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index 1dc190576f3f..fe6b131d8fb1 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -18,31 +18,8 @@ endif::[] By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` == Introduction +TBC -Welcome to SocialCare's Developer Guide! - -=== What is SocialCare? - -SocialCare is a CLI-based event and volunteer management system designed for social welfare organisations. It enables the following: - -* Faster volunteer and event management (than a typical mouse/GUI driven app) -* Tagging to categorize volunteers and events -* Additional fields for volunteers, such as number of volunteer hours -* Viewing of volunteer and event statistics - -=== Core Team - -SocialCare was developed and is maintained by https://github.com/CS2103-AY1819S1-W16-2[Team W16-2]. Due credit goes to the https://se-edu.github.io/docs/Team.html[se-edu] team, who's application https://github.com/nus-cs2103-AY1819S1/addressbook-level4[Address Book - Level 4] was morphed into SocialCare. - -Feel free to <> to us regarding any enquiries or clarifications. - -=== Contributing - -SocialCare is an open source project, and thus contributions are always welcome. Let's get you on board! - -To get started, head on to <>. - -[[Setting-Up]] == Setting up === Prerequisites From f0d0a9c00dd24620312595778f2dd19ef5f6a6b9 Mon Sep 17 00:00:00 2001 From: Sharan Date: Mon, 15 Oct 2018 23:11:59 +0800 Subject: [PATCH 147/655] Revert "Revert "DeveloperGuide.adoc: Update Introduction section"" This reverts commit 1771569a5afef7c9e14805509fad196fc7ebc02d. --- docs/DeveloperGuide.adoc | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.adoc b/docs/DeveloperGuide.adoc index fe6b131d8fb1..1dc190576f3f 100644 --- a/docs/DeveloperGuide.adoc +++ b/docs/DeveloperGuide.adoc @@ -18,8 +18,31 @@ endif::[] By: `Team W16-2`      Since: `Sept 2018`      Licence: `MIT` == Introduction -TBC +Welcome to SocialCare's Developer Guide! + +=== What is SocialCare? + +SocialCare is a CLI-based event and volunteer management system designed for social welfare organisations. It enables the following: + +* Faster volunteer and event management (than a typical mouse/GUI driven app) +* Tagging to categorize volunteers and events +* Additional fields for volunteers, such as number of volunteer hours +* Viewing of volunteer and event statistics + +=== Core Team + +SocialCare was developed and is maintained by https://github.com/CS2103-AY1819S1-W16-2[Team W16-2]. Due credit goes to the https://se-edu.github.io/docs/Team.html[se-edu] team, who's application https://github.com/nus-cs2103-AY1819S1/addressbook-level4[Address Book - Level 4] was morphed into SocialCare. + +Feel free to <> to us regarding any enquiries or clarifications. + +=== Contributing + +SocialCare is an open source project, and thus contributions are always welcome. Let's get you on board! + +To get started, head on to <>. + +[[Setting-Up]] == Setting up === Prerequisites From bd05004ea106bbf7ab48df947c09d83b79c109b3 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 23:28:20 +0800 Subject: [PATCH 148/655] ManageCommand.java: Temp predicate --- .../address/commons/events/ui/RecordChangeEvent.java | 11 ++++++++++- .../seedu/address/logic/commands/ManageCommand.java | 8 +++++++- src/main/java/seedu/address/ui/RecordEventPanel.java | 5 +++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java index d4d67985ea62..bc888183f874 100644 --- a/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java +++ b/src/main/java/seedu/address/commons/events/ui/RecordChangeEvent.java @@ -1,7 +1,10 @@ package seedu.address.commons.events.ui; +import java.util.List; + import seedu.address.commons.events.BaseEvent; import seedu.address.model.event.Event; +import seedu.address.model.person.Person; /** * Indicates a request to jump to the list of persons @@ -9,15 +12,21 @@ public class RecordChangeEvent extends BaseEvent { private final Event currentEvent; + private final List volunteerList; - public RecordChangeEvent(Event newSelection) { + public RecordChangeEvent(Event newSelection, List volunteerList) { this.currentEvent = newSelection; + this.volunteerList = volunteerList; } public Event getCurrentEvent() { return currentEvent; } + public List getVolunteerList() { + return volunteerList; + } + @Override public String toString() { return getClass().getSimpleName(); diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 970711004d5d..029d321576ad 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -1,6 +1,8 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_RECORDS; import java.util.List; @@ -39,15 +41,19 @@ public CommandResult execute(Model model, CommandHistory history) throws Command requireNonNull(model); List filteredEventList = model.getFilteredEventList(); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); if (targetIndex.getZeroBased() >= filteredEventList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_EVENT_DISPLAYED_INDEX); } model.switchToRecordContext(); + model.updateFilteredRecordList(PREDICATE_SHOW_ALL_RECORDS); // TO_UPDATE - EventsCenter.getInstance().post(new RecordChangeEvent(filteredEventList.get(targetIndex.getZeroBased()))); + EventsCenter.getInstance().post(new RecordChangeEvent( + filteredEventList.get(targetIndex.getZeroBased()), + model.getFilteredPersonList())); EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId())); return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased())); diff --git a/src/main/java/seedu/address/ui/RecordEventPanel.java b/src/main/java/seedu/address/ui/RecordEventPanel.java index b6dd2b9327b8..29c403c5151b 100644 --- a/src/main/java/seedu/address/ui/RecordEventPanel.java +++ b/src/main/java/seedu/address/ui/RecordEventPanel.java @@ -1,5 +1,6 @@ package seedu.address.ui; +import java.util.List; import java.util.logging.Logger; import com.google.common.eventbus.Subscribe; @@ -11,6 +12,7 @@ import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; import seedu.address.commons.events.ui.RecordChangeEvent; +import seedu.address.model.person.Person; import seedu.address.model.record.Record; /** @@ -27,6 +29,7 @@ public class RecordEventPanel extends UiPart { @FXML private TableView volunteerRecordTableView; + private List volunteerList; public RecordEventPanel(ObservableList recordList) { super(FXML); @@ -44,7 +47,5 @@ private void handleRecordChangeEvent(RecordChangeEvent event) { logger.info(LogsCenter.getEventHandlingLogMessage(event)); eventNameLabel.setText(event.getCurrentEvent().getName().fullName); numOfVolunteersLabel.setText("0"); - } - } From 177eb59661a0464f1b6b8758f29b90ebb4b55a71 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 23:46:37 +0800 Subject: [PATCH 149/655] SampleDataUtil.java: Added sample records --- .../address/logic/commands/ManageCommand.java | 8 ++- .../record/EventContainsEventIdPredicate.java | 29 ++++++++ .../address/model/util/SampleDataUtil.java | 72 +++++++++++-------- 3 files changed, 79 insertions(+), 30 deletions(-) create mode 100644 src/main/java/seedu/address/model/record/EventContainsEventIdPredicate.java diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 029d321576ad..5d810b13e837 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -2,7 +2,6 @@ import static java.util.Objects.requireNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_RECORDS; import java.util.List; @@ -15,6 +14,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.event.Event; +import seedu.address.model.record.EventContainsEventIdPredicate; /** * Selects a person identified using it's displayed index from the address book. @@ -48,8 +48,12 @@ public CommandResult execute(Model model, CommandHistory history) throws Command } model.switchToRecordContext(); - model.updateFilteredRecordList(PREDICATE_SHOW_ALL_RECORDS); + model.updateFilteredRecordList(new EventContainsEventIdPredicate( + filteredEventList.get(targetIndex.getZeroBased()).getEventId())); + for (int i = 0; i < model.getFilteredRecordList().size(); i++) { + System.out.println(model.getFilteredRecordList().get(i).getRemark()); + } // TO_UPDATE EventsCenter.getInstance().post(new RecordChangeEvent( filteredEventList.get(targetIndex.getZeroBased()), diff --git a/src/main/java/seedu/address/model/record/EventContainsEventIdPredicate.java b/src/main/java/seedu/address/model/record/EventContainsEventIdPredicate.java new file mode 100644 index 000000000000..9f1b35b354b3 --- /dev/null +++ b/src/main/java/seedu/address/model/record/EventContainsEventIdPredicate.java @@ -0,0 +1,29 @@ +package seedu.address.model.record; + +import java.util.function.Predicate; + +import seedu.address.model.event.EventId; + +/** + * Tests that a {@code Record}'s {@code EventId} matches the given EventId. + */ +public class EventContainsEventIdPredicate implements Predicate { + private final EventId eventId; + + public EventContainsEventIdPredicate(EventId eventId) { + this.eventId = eventId; + } + + @Override + public boolean test(Record record) { + return record.getEventId().id == eventId.id; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof EventContainsEventIdPredicate // instanceof handles nulls + && eventId == ((EventContainsEventIdPredicate) other).eventId); // state check + } + +} diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index dd0ee53e976b..ca07d029272a 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -9,13 +9,18 @@ import seedu.address.model.event.Date; import seedu.address.model.event.Description; import seedu.address.model.event.Event; +import seedu.address.model.event.EventId; import seedu.address.model.event.Location; import seedu.address.model.event.Time; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; +import seedu.address.model.person.PersonId; import seedu.address.model.person.Phone; +import seedu.address.model.record.Hour; +import seedu.address.model.record.Record; +import seedu.address.model.record.Remark; import seedu.address.model.tag.Tag; /** @@ -23,38 +28,45 @@ */ public class SampleDataUtil { public static Person[] getSamplePersons() { - return new Person[] { - new Person(new Name("Alex Yeoh"), new Phone("87438807"), - new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), - new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues")) + return new Person[]{ + new Person(new Name("Alex Yeoh"), new Phone("87438807"), + new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), + getTagSet("friends")), + new Person(new Name("Bernice Yu"), new Phone("99272758"), + new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + getTagSet("colleagues", "friends")), + new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + getTagSet("neighbours")), + new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), + new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + getTagSet("family")), + new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), + new Address("Blk 47 Tampines Street 20, #17-35"), + getTagSet("classmates")), + new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), + new Address("Blk 45 Aljunied Street 85, #11-31"), + getTagSet("colleagues")) }; } public static Event[] getSampleEvents() { - return new Event[] { - new Event(new seedu.address.model.event.Name("Blood Donation Drive 2018"), - new Location("750E Chai Chee Road"), new Date("02-10-2018"), new Date("05-10-2018"), - new Time("11:30"), new Time("17:30"), new Description("Donation drive for blood."), - getTagSet("Public", "Donation")), - new Event(new seedu.address.model.event.Name("Youth Humanitarian Challenge"), - new Location("29 Havelock Road"), new Date("28-09-2018"), new Date("28-09-2018"), - new Time("10:00"), new Time("14:00"), new Description("To engage youths in humanitarianism."), - getTagSet("Competition")), + return new Event[]{ + new Event(new seedu.address.model.event.Name("Blood Donation Drive 2018"), + new Location("750E Chai Chee Road"), new Date("02-10-2018"), new Date("05-10-2018"), + new Time("11:30"), new Time("17:30"), new Description("Donation drive for blood."), + getTagSet("Public", "Donation")), + new Event(new seedu.address.model.event.Name("Youth Humanitarian Challenge"), + new Location("29 Havelock Road"), new Date("28-09-2018"), new Date("28-09-2018"), + new Time("10:00"), new Time("14:00"), new Description("To engage youths in humanitarianism."), + getTagSet("Competition")), + }; + } + + public static Record[] getSampleRecord() { + return new Record[]{ + new Record(new EventId(1), new PersonId(1), new Hour("1"), new Remark("Emcee")), + new Record(new EventId(2), new PersonId(1), new Hour("1"), new Remark("Delivery Man")) }; } @@ -67,6 +79,10 @@ public static ReadOnlyAddressBook getSampleAddressBook() { for (Event sampleEvent : getSampleEvents()) { sampleAb.addEvent(sampleEvent); } + + for (Record sampleRecord : getSampleRecord()) { + sampleAb.addRecord(sampleRecord); + } return sampleAb; } From 5449e9039500bc8ea522a80236a2ee6c13ff93e0 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 23:52:00 +0800 Subject: [PATCH 150/655] SampleDataUtil.java: Fix CheckStyle --- .../address/model/util/SampleDataUtil.java | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index ca07d029272a..2bfbba593095 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -29,44 +29,50 @@ public class SampleDataUtil { public static Person[] getSamplePersons() { return new Person[]{ - new Person(new Name("Alex Yeoh"), new Phone("87438807"), - new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), - new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues")) + new Person(new Name("Alex Yeoh"), new Phone("87438807"), + new Email("alexyeoh@example.com"), + new Address("Blk 30 Geylang Street 29, #06-40"), + getTagSet("friends")), + new Person(new Name("Bernice Yu"), new Phone("99272758"), + new Email("berniceyu@example.com"), + new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + getTagSet("colleagues", "friends")), + new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), + new Email("charlotte@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + getTagSet("neighbours")), + new Person(new Name("David Li"), new Phone("91031282"), + new Email("lidavid@example.com"), + new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + getTagSet("family")), + new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), + new Email("irfan@example.com"), + new Address("Blk 47 Tampines Street 20, #17-35"), + getTagSet("classmates")), + new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), + new Email("royb@example.com"), + new Address("Blk 45 Aljunied Street 85, #11-31"), + getTagSet("colleagues")) }; } public static Event[] getSampleEvents() { return new Event[]{ - new Event(new seedu.address.model.event.Name("Blood Donation Drive 2018"), - new Location("750E Chai Chee Road"), new Date("02-10-2018"), new Date("05-10-2018"), - new Time("11:30"), new Time("17:30"), new Description("Donation drive for blood."), - getTagSet("Public", "Donation")), - new Event(new seedu.address.model.event.Name("Youth Humanitarian Challenge"), - new Location("29 Havelock Road"), new Date("28-09-2018"), new Date("28-09-2018"), - new Time("10:00"), new Time("14:00"), new Description("To engage youths in humanitarianism."), - getTagSet("Competition")), + new Event(new seedu.address.model.event.Name("Blood Donation Drive 2018"), + new Location("750E Chai Chee Road"), new Date("02-10-2018"), new Date("05-10-2018"), + new Time("11:30"), new Time("17:30"), new Description("Donation drive for blood."), + getTagSet("Public", "Donation")), + new Event(new seedu.address.model.event.Name("Youth Humanitarian Challenge"), + new Location("29 Havelock Road"), new Date("28-09-2018"), new Date("28-09-2018"), + new Time("10:00"), new Time("14:00"), new Description("To engage youths in humanitarianism."), + getTagSet("Competition")), }; } public static Record[] getSampleRecord() { return new Record[]{ - new Record(new EventId(1), new PersonId(1), new Hour("1"), new Remark("Emcee")), - new Record(new EventId(2), new PersonId(1), new Hour("1"), new Remark("Delivery Man")) + new Record(new EventId(1), new PersonId(1), new Hour("1"), new Remark("Emcee")), + new Record(new EventId(2), new PersonId(1), new Hour("1"), new Remark("Delivery Man")) }; } From 17215340683dce6fc894bb173a98987e1f779ee3 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 15 Oct 2018 23:52:53 +0800 Subject: [PATCH 151/655] ManageCommand.java: Filter Predicate --- .../java/seedu/address/logic/commands/ManageCommand.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/ManageCommand.java b/src/main/java/seedu/address/logic/commands/ManageCommand.java index 5d810b13e837..cfefeb76b6f2 100644 --- a/src/main/java/seedu/address/logic/commands/ManageCommand.java +++ b/src/main/java/seedu/address/logic/commands/ManageCommand.java @@ -50,10 +50,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command model.switchToRecordContext(); model.updateFilteredRecordList(new EventContainsEventIdPredicate( filteredEventList.get(targetIndex.getZeroBased()).getEventId())); - - for (int i = 0; i < model.getFilteredRecordList().size(); i++) { - System.out.println(model.getFilteredRecordList().get(i).getRemark()); - } + // TO_UPDATE EventsCenter.getInstance().post(new RecordChangeEvent( filteredEventList.get(targetIndex.getZeroBased()), From 8d8e45a9401831ca182adeae69fee042f32ff00c Mon Sep 17 00:00:00 2001 From: Kratious Date: Tue, 16 Oct 2018 01:37:23 +0800 Subject: [PATCH 152/655] Add edit command for events --- .../logic/commands/EditEventCommand.java | 276 ++++++++++++++++++ .../logic/parser/AddressBookParser.java | 11 +- .../logic/parser/EditEventCommandParser.java | 101 +++++++ 3 files changed, 384 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/EditEventCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/EditEventCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/EditEventCommand.java b/src/main/java/seedu/address/logic/commands/EditEventCommand.java new file mode 100644 index 000000000000..b5b5ac4c0e83 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/EditEventCommand.java @@ -0,0 +1,276 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_DESCRIPTION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_END_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_LOCATION; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EVENT_START_TIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_EVENTS; + +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.commons.util.CollectionUtil; +import seedu.address.logic.CommandHistory; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.event.Date; +import seedu.address.model.event.Description; +import seedu.address.model.event.Event; +import seedu.address.model.event.EventId; +import seedu.address.model.event.Location; +import seedu.address.model.event.Name; +import seedu.address.model.event.Time; +import seedu.address.model.tag.Tag; + +/** + * Edits the details of an existing event in the address book. + */ +public class EditEventCommand extends Command { + + public static final String COMMAND_WORD = "edit"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the event identified " + + "by the index number used in the displayed event list. " + + "Existing values will be overwritten by the input values.\n" + + "Parameters: INDEX (must be a positive integer) " + + "[" + PREFIX_EVENT_NAME + "NAME] " + + "[" + PREFIX_EVENT_LOCATION + "LOCATION] " + + "[" + PREFIX_EVENT_START_DATE + "START DATE] " + + "[" + PREFIX_EVENT_END_DATE + "END DATE] " + + "[" + PREFIX_EVENT_START_TIME + "START TIME] " + + "[" + PREFIX_EVENT_END_TIME + "END TIME] " + + "[" + PREFIX_EVENT_DESCRIPTION + "DESCRIPTION] " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " 1 " + + PREFIX_EVENT_LOCATION + "25, Tannery Lane #01-27 " + + PREFIX_EVENT_DESCRIPTION + "Charity drive"; + + public static final String MESSAGE_EDIT_EVENT_SUCCESS = "Edited Event: %1$s"; + public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; + public static final String MESSAGE_DUPLICATE_EVENT = "This event already exists in the address book."; + + private final Index index; + private final EditEventDescriptor editEventDescriptor; + + /** + * @param index of the event in the filtered event list to edit + * @param editEventDescriptor details to edit the event with + */ + public EditEventCommand(Index index, EditEventDescriptor editEventDescriptor) { + requireNonNull(index); + requireNonNull(editEventDescriptor); + + this.index = index; + this.editEventDescriptor = new EditEventDescriptor(editEventDescriptor); + } + + @Override + public CommandResult execute(Model model, CommandHistory history) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredEventList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_EVENT_DISPLAYED_INDEX); + } + + Event eventToEdit = lastShownList.get(index.getZeroBased()); + Event editedEvent = createEditedEvent(eventToEdit, editEventDescriptor); + + if (!eventToEdit.isSameEvent(editedEvent) && model.hasEvent(editedEvent)) { + throw new CommandException(MESSAGE_DUPLICATE_EVENT); + } + + model.updateEvent(eventToEdit, editedEvent); + model.updateFilteredEventList(PREDICATE_SHOW_ALL_EVENTS); + model.commitAddressBook(); + return new CommandResult(String.format(MESSAGE_EDIT_EVENT_SUCCESS, editedEvent)); + } + + /** + * Creates and returns an {@code Event} with the details of {@code eventToEdit} + * edited with {@code editEventDescriptor}. + */ + private static Event createEditedEvent(Event eventToEdit, EditEventDescriptor editEventDescriptor) + throws CommandException { + assert eventToEdit != null; + + EventId eventId = eventToEdit.getEventId(); + Name updatedName = editEventDescriptor.getName().orElse(eventToEdit.getName()); + Location updatedLocation = editEventDescriptor.getLocation().orElse(eventToEdit.getLocation()); + + Date updatedStartDate = editEventDescriptor.getStartDate().orElse(eventToEdit.getStartDate()); + Date updatedEndDate = editEventDescriptor.getEndDate().orElse(eventToEdit.getEndDate()); + + if (!updatedStartDate.isLessThanOrEqualTo(updatedEndDate)) { + throw new CommandException(Event.MESSAGE_START_END_DATE_CONSTRAINTS); + } + + Time updatedStartTime = editEventDescriptor.getStartTime().orElse(eventToEdit.getStartTime()); + Time updatedEndTime = editEventDescriptor.getEndTime().orElse(eventToEdit.getEndTime()); + + if (!updatedStartTime.isLessThanOrEqualTo(updatedEndTime)) { + throw new CommandException(Event.MESSAGE_START_END_TIME_CONSTRAINTS); + } + + Description updatedDescription = editEventDescriptor.getDescription().orElse(eventToEdit.getDescription()); + Set updatedTags = editEventDescriptor.getTags().orElse(eventToEdit.getTags()); + + return new Event(eventId, updatedName, updatedLocation, updatedStartDate, updatedEndDate, updatedStartTime, + updatedEndTime, updatedDescription, updatedTags); + } + + /** + * Stores the details to edit the event with. Each non-empty field value will replace the + * corresponding field value of the event. + */ + public static class EditEventDescriptor { + private EventId eventId; + private Name name; + private Location location; + private Date startDate; + private Date endDate; + private Time startTime; + private Time endTime; + private Description description; + private Set tags; + + public EditEventDescriptor() {} + + /** + * Copy constructor. + * A defensive copy of {@code tags} is used internally. + */ + public EditEventDescriptor(EditEventDescriptor toCopy) { + setEventId(toCopy.eventId); + setName(toCopy.name); + setLocation(toCopy.location); + setStartDate(toCopy.startDate); + setEndDate(toCopy.endDate); + setStartTime(toCopy.startTime); + setEndTime(toCopy.endTime); + setDescription(toCopy.description); + setTags(toCopy.tags); + } + + /** + * Returns true if at least one field is edited. + */ + public boolean isAnyFieldEdited() { + return CollectionUtil.isAnyNonNull(name, location, startDate, endDate, startTime, endTime, + description, tags); + } + + public void setEventId(EventId eventId) { + this.eventId = eventId; + } + + public void setName(Name name) { + this.name = name; + } + + public Optional getName() { + return Optional.ofNullable(name); + } + + public void setLocation(Location location) { + this.location = location; + } + + public Optional getLocation() { + return Optional.ofNullable(location); + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Optional getStartDate() { + return Optional.ofNullable(startDate); + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + public Optional getEndDate() { + return Optional.ofNullable(endDate); + } + + public void setStartTime(Time startTime) { + this.startTime = startTime; + } + + public Optional
    + +
    +

    1. Setting up

    +
    +
    +

    1.1. Prerequisites

    +
    +
      +
    1. +

      JDK 9 or later

      +
      + + + + + +
      +
      Warning
      +
      +JDK 10 on Windows will fail to run tests in headless mode due to a JavaFX bug. +Windows developers are highly recommended to use JDK 9. +
      +
      +
    2. +
    3. +

      IntelliJ IDE

      +
      + + + + + +
      +
      Note
      +
      +IntelliJ by default has Gradle and JavaFx plugins installed.
      +Do not disable them. If you have disabled them, go to File > Settings > Plugins to re-enable them. +
      +
      +
    4. +
    +
    +
    +
    +

    1.2. Setting up the project in your computer

    +
    +
      +
    1. +

      Fork this repo, and clone the fork to your computer

      +
    2. +
    3. +

      Open IntelliJ (if you are not in the welcome screen, click File > Close Project to close the existing project dialog first)

      +
    4. +
    5. +

      Set up the correct JDK version for Gradle

      +
      +
        +
      1. +

        Click Configure > Project Defaults > Project Structure

        +
      2. +
      3. +

        Click New…​ and find the directory of the JDK

        +
      4. +
      +
      +
    6. +
    7. +

      Click Import Project

      +
    8. +
    9. +

      Locate the build.gradle file and select it. Click OK

      +
    10. +
    11. +

      Click Open as Project

      +
    12. +
    13. +

      Click OK to accept the default settings

      +
    14. +
    15. +

      Open a console and run the command gradlew processResources (Mac/Linux: ./gradlew processResources). It should finish with the BUILD SUCCESSFUL message.
      +This will generate all resources required by the application and tests.

      +
    16. +
    17. +

      Open XmlAdaptedPerson.java and MainWindow.java and check for any code errors

      +
      +
        +
      1. +

        Due to an ongoing issue with some of the newer versions of IntelliJ, code errors may be detected even if the project can be built and run successfully

        +
      2. +
      3. +

        To resolve this, place your cursor over any of the code section highlighted in red. Press kbd:[ALT + ENTER], and select Add '--add-modules=…​' to module compiler options for each error

        +
      4. +
      +
      +
    18. +
    19. +

      Repeat this for the test folder as well (e.g. check XmlUtilTest.java and HelpWindowTest.java for code errors, and if so, resolve it the same way)

      +
    20. +
    +
    +
    +
    +

    1.3. Verifying the setup

    +
    +
      +
    1. +

      Run the seedu.address.MainApp and try a few commands

      +
    2. +
    3. +

      Run the tests to ensure they all pass.

      +
    4. +
    +
    +
    +
    +

    1.4. Configurations to do before writing code

    +
    +

    1.4.1. Configuring the coding style

    +
    +

    This project follows oss-generic coding standards. IntelliJ’s default style is mostly compliant with ours but it uses a different import order from ours. To rectify,

    +
    +
    +
      +
    1. +

      Go to File > Settings…​ (Windows/Linux), or IntelliJ IDEA > Preferences…​ (macOS)

      +
    2. +
    3. +

      Select Editor > Code Style > Java

      +
    4. +
    5. +

      Click on the Imports tab to set the order

      +
      +
        +
      • +

        For Class count to use import with '*' and Names count to use static import with '*': Set to 999 to prevent IntelliJ from contracting the import statements

        +
      • +
      • +

        For Import Layout: The order is import static all other imports, import java.*, import javax.*, import org.*, import com.*, import all other imports. Add a <blank line> between each import

        +
      • +
      +
      +
    6. +
    +
    +
    +

    Optionally, you can follow the UsingCheckstyle.adoc document to configure Intellij to check style-compliance as you write code.

    +
    +
    +
    +

    1.4.2. Updating documentation to match your fork

    +
    +

    After forking the repo, the documentation will still have the SE-EDU branding and refer to the se-edu/addressbook-level4 repo.

    +
    +
    +

    If you plan to develop this fork as a separate product (i.e. instead of contributing to se-edu/addressbook-level4), you should do the following:

    +
    +
    +
      +
    1. +

      Configure the site-wide documentation settings in build.gradle, such as the site-name, to suit your own project.

      +
    2. +
    3. +

      Replace the URL in the attribute repoURL in DeveloperGuide.adoc and UserGuide.adoc with the URL of your fork.

      +
    4. +
    +
    +
    +
    +

    1.4.3. Setting up CI

    +
    +

    Set up Travis to perform Continuous Integration (CI) for your fork. See UsingTravis.adoc to learn how to set it up.

    +
    +
    +

    After setting up Travis, you can optionally set up coverage reporting for your team fork (see UsingCoveralls.adoc).

    +
    +
    + + + + + +
    +
    Note
    +
    +Coverage reporting could be useful for a team repository that hosts the final version but it is not that useful for your personal fork. +
    +
    +
    +

    Optionally, you can set up AppVeyor as a second CI (see UsingAppVeyor.adoc).

    +
    +
    + + + + + +
    +
    Note
    +
    +Having both Travis and AppVeyor ensures your App works on both Unix-based platforms and Windows-based platforms (Travis is Unix-based and AppVeyor is Windows-based) +
    +
    +
    +
    +

    1.4.4. Getting started with coding

    +
    +

    When you are ready to start coding,

    +
    +
    +
      +
    1. +

      Get some sense of the overall design by reading Architecture.

      +
    2. +
    3. +

      Take a look at Suggested Programming Tasks to Get Started.

      +
    4. +
    +
    +
    +
    +
    +
    +
    +

    2. Design

    +
    +
    +

    2.1. Architecture

    +
    +
    +Architecture +
    +
    Figure 1. Architecture Diagram
    +
    +
    +

    The Architecture Diagram given above explains the high-level design of the App. Given below is a quick overview of each component.

    +
    +
    + + + + + +
    +
    Tip
    +
    +The .pptx files used to create diagrams in this document can be found in the diagrams folder. To update a diagram, modify the diagram in the pptx file, select the objects of the diagram, and choose Save as picture. +
    +
    +
    +

    Main has only one class called MainApp. It is responsible for,

    +
    +
    +
      +
    • +

      At app launch: Initializes the components in the correct sequence, and connects them up with each other.

      +
    • +
    • +

      At shut down: Shuts down the components and invokes cleanup method where necessary.

      +
    • +
    +
    +
    +

    Commons represents a collection of classes used by multiple other components. Two of those classes play important roles at the architecture level.

    +
    +
    +
      +
    • +

      EventsCenter : This class (written using Google’s Event Bus library) is used by components to communicate with other components using events (i.e. a form of Event Driven design)

      +
    • +
    • +

      LogsCenter : Used by many classes to write log messages to the App’s log file.

      +
    • +
    +
    +
    +

    The rest of the App consists of four components.

    +
    +
    +
      +
    • +

      UI: The UI of the App.

      +
    • +
    • +

      Logic: The command executor.

      +
    • +
    • +

      Model: Holds the data of the App in-memory.

      +
    • +
    • +

      Storage: Reads data from, and writes data to, the hard disk.

      +
    • +
    +
    +
    +

    Each of the four components

    +
    +
    +
      +
    • +

      Defines its API in an interface with the same name as the Component.

      +
    • +
    • +

      Exposes its functionality using a {Component Name}Manager class.

      +
    • +
    +
    +
    +

    For example, the Logic component (see the class diagram given below) defines it’s API in the Logic.java interface and exposes its functionality using the LogicManager.java class.

    +
    +
    +
    +LogicClassDiagram +
    +
    Figure 2. Class Diagram of the Logic Component
    +
    +

    Events-Driven nature of the design

    +
    +

    The Sequence Diagram below shows how the components interact for the scenario where the user issues the command delete 1.

    +
    +
    +
    +SDforDeletePerson +
    +
    Figure 3. Component interactions for delete 1 command (part 1)
    +
    +
    + + + + + +
    +
    Note
    +
    +Note how the Model simply raises a AddressBookChangedEvent when the Address Book data are changed, instead of asking the Storage to save the updates to the hard disk. +
    +
    +
    +

    The diagram below shows how the EventsCenter reacts to that event, which eventually results in the updates being saved to the hard disk and the status bar of the UI being updated to reflect the 'Last Updated' time.

    +
    +
    +
    +SDforDeletePersonEventHandling +
    +
    Figure 4. Component interactions for delete 1 command (part 2)
    +
    +
    + + + + + +
    +
    Note
    +
    +Note how the event is propagated through the EventsCenter to the Storage and UI without Model having to be coupled to either of them. This is an example of how this Event Driven approach helps us reduce direct coupling between components. +
    +
    +
    +

    The sections below give more details of each component.

    +
    +
    +
    +

    2.2. UI component

    +
    +
    +UiClassDiagram +
    +
    Figure 5. Structure of the UI Component
    +
    +
    +

    API : Ui.java

    +
    +
    +

    The UI consists of a MainWindow that is made up of parts e.g.CommandBox, ResultDisplay, PersonListPanel, StatusBarFooter, BrowserPanel etc. All these, including the MainWindow, inherit from the abstract UiPart class.

    +
    +
    +

    The UI component uses JavaFx UI framework. The layout of these UI parts are defined in matching .fxml files that are in the src/main/resources/view folder. For example, the layout of the MainWindow is specified in MainWindow.fxml

    +
    +
    +

    The UI component,

    +
    +
    +
      +
    • +

      Executes user commands using the Logic component.

      +
    • +
    • +

      Binds itself to some data in the Model so that the UI can auto-update when data in the Model change.

      +
    • +
    • +

      Responds to events raised from various parts of the App and updates the UI accordingly.

      +
    • +
    +
    +
    +
    +

    2.3. Logic component

    +
    +
    +LogicClassDiagram +
    +
    Figure 6. Structure of the Logic Component
    +
    +
    +

    API : +Logic.java

    +
    +
    +
      +
    1. +

      Logic uses the AddressBookParser class to parse the user command.

      +
    2. +
    3. +

      This results in a Command object which is executed by the LogicManager.

      +
    4. +
    5. +

      The command execution can affect the Model (e.g. adding a person) and/or raise events.

      +
    6. +
    7. +

      The result of the command execution is encapsulated as a CommandResult object which is passed back to the Ui.

      +
    8. +
    +
    +
    +

    Given below is the Sequence Diagram for interactions within the Logic component for the execute("delete 1") API call.

    +
    +
    +
    +DeletePersonSdForLogic +
    +
    Figure 7. Interactions Inside the Logic Component for the delete 1 Command
    +
    +
    +
    +

    2.4. Model component

    +
    +
    +ModelClassDiagram +
    +
    Figure 8. Structure of the Model Component
    +
    +
    +

    API : Model.java

    +
    +
    +

    The Model,

    +
    +
    +
      +
    • +

      stores a UserPref object that represents the user’s preferences.

      +
    • +
    • +

      stores the Address Book data.

      +
    • +
    • +

      exposes an unmodifiable ObservableList<Person> that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change.

      +
    • +
    • +

      does not depend on any of the other three components.

      +
    • +
    +
    +
    + + + + + +
    +
    Note
    +
    +As a more OOP model, we can store a Tag list in Address Book, which Person can reference. This would allow Address Book to only require one Tag object per unique Tag, instead of each Person needing their own Tag object. An example of how such a model may look like is given below.
    +
    +ModelClassBetterOopDiagram +
    +
    +
    +
    +

    2.5. Storage component

    +
    +
    +StorageClassDiagram +
    +
    Figure 9. Structure of the Storage Component
    +
    +
    +

    API : Storage.java

    +
    +
    +

    The Storage component,

    +
    +
    +
      +
    • +

      can save UserPref objects in json format and read it back.

      +
    • +
    • +

      can save the Address Book data in xml format and read it back.

      +
    • +
    +
    +
    +
    +

    2.6. Common classes

    +
    +

    Classes used by multiple components are in the seedu.addressbook.commons package.

    +
    +
    +
    +
    +
    +

    3. Implementation

    +
    +
    +

    This section describes some noteworthy details on how certain features are implemented.

    +
    +
    +

    3.1. Undo/Redo feature

    +
    +

    3.1.1. Current Implementation

    +
    +

    The undo/redo mechanism is facilitated by VersionedAddressBook. +It extends AddressBook with an undo/redo history, stored internally as an addressBookStateList and currentStatePointer. +Additionally, it implements the following operations:

    +
    +
    +
      +
    • +

      VersionedAddressBook#commit() — Saves the current address book state in its history.

      +
    • +
    • +

      VersionedAddressBook#undo() — Restores the previous address book state from its history.

      +
    • +
    • +

      VersionedAddressBook#redo() — Restores a previously undone address book state from its history.

      +
    • +
    +
    +
    +

    These operations are exposed in the Model interface as Model#commitAddressBook(), Model#undoAddressBook() and Model#redoAddressBook() respectively.

    +
    +
    +

    Given below is an example usage scenario and how the undo/redo mechanism behaves at each step.

    +
    +
    +

    Step 1. The user launches the application for the first time. The VersionedAddressBook will be initialized with the initial address book state, and the currentStatePointer pointing to that single address book state.

    +
    +
    +
    +UndoRedoStartingStateListDiagram +
    +
    +
    +

    Step 2. The user executes delete 5 command to delete the 5th person in the address book. The delete command calls Model#commitAddressBook(), causing the modified state of the address book after the delete 5 command executes to be saved in the addressBookStateList, and the currentStatePointer is shifted to the newly inserted address book state.

    +
    +
    +
    +UndoRedoNewCommand1StateListDiagram +
    +
    +
    +

    Step 3. The user executes add n/David …​ to add a new person. The add command also calls Model#commitAddressBook(), causing another modified address book state to be saved into the addressBookStateList.

    +
    +
    +
    +UndoRedoNewCommand2StateListDiagram +
    +
    +
    + + + + + +
    +
    Note
    +
    +If a command fails its execution, it will not call Model#commitAddressBook(), so the address book state will not be saved into the addressBookStateList. +
    +
    +
    +

    Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the undo command. The undo command will call Model#undoAddressBook(), which will shift the currentStatePointer once to the left, pointing it to the previous address book state, and restores the address book to that state.

    +
    +
    +
    +UndoRedoExecuteUndoStateListDiagram +
    +
    +
    + + + + + +
    +
    Note
    +
    +If the currentStatePointer is at index 0, pointing to the initial address book state, then there are no previous address book states to restore. The undo command uses Model#canUndoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo. +
    +
    +
    +

    The following sequence diagram shows how the undo operation works:

    +
    +
    +
    +UndoRedoSequenceDiagram +
    +
    +
    +

    The redo command does the opposite — it calls Model#redoAddressBook(), which shifts the currentStatePointer once to the right, pointing to the previously undone state, and restores the address book to that state.

    +
    +
    + + + + + +
    +
    Note
    +
    +If the currentStatePointer is at index addressBookStateList.size() - 1, pointing to the latest address book state, then there are no undone address book states to restore. The redo command uses Model#canRedoAddressBook() to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. +
    +
    +
    +

    Step 5. The user then decides to execute the command list. Commands that do not modify the address book, such as list, will usually not call Model#commitAddressBook(), Model#undoAddressBook() or Model#redoAddressBook(). Thus, the addressBookStateList remains unchanged.

    +
    +
    +
    +UndoRedoNewCommand3StateListDiagram +
    +
    +
    +

    Step 6. The user executes clear, which calls Model#commitAddressBook(). Since the currentStatePointer is not pointing at the end of the addressBookStateList, all address book states after the currentStatePointer will be purged. We designed it this way because it no longer makes sense to redo the add n/David …​ command. This is the behavior that most modern desktop applications follow.

    +
    +
    +
    +UndoRedoNewCommand4StateListDiagram +
    +
    +
    +

    The following activity diagram summarizes what happens when a user executes a new command:

    +
    +
    +
    +UndoRedoActivityDiagram +
    +
    +
    +
    +

    3.1.2. Design Considerations

    +
    +
    Aspect: How undo & redo executes
    +
    +
      +
    • +

      Alternative 1 (current choice): Saves the entire address book.

      +
      +
        +
      • +

        Pros: Easy to implement.

        +
      • +
      • +

        Cons: May have performance issues in terms of memory usage.

        +
      • +
      +
      +
    • +
    • +

      Alternative 2: Individual command knows how to undo/redo by itself.

      +
      +
        +
      • +

        Pros: Will use less memory (e.g. for delete, just save the person being deleted).

        +
      • +
      • +

        Cons: We must ensure that the implementation of each individual command are correct.

        +
      • +
      +
      +
    • +
    +
    +
    +
    +
    Aspect: Data structure to support the undo/redo commands
    +
    +
      +
    • +

      Alternative 1 (current choice): Use a list to store the history of address book states.

      +
      +
        +
      • +

        Pros: Easy for new Computer Science student undergraduates to understand, who are likely to be the new incoming developers of our project.

        +
      • +
      • +

        Cons: Logic is duplicated twice. For example, when a new command is executed, we must remember to update both HistoryManager and VersionedAddressBook.

        +
      • +
      +
      +
    • +
    • +

      Alternative 2: Use HistoryManager for undo/redo

      +
      +
        +
      • +

        Pros: We do not need to maintain a separate list, and just reuse what is already in the codebase.

        +
      • +
      • +

        Cons: Requires dealing with commands that have already been undone: We must remember to skip these commands. Violates Single Responsibility Principle and Separation of Concerns as HistoryManager now needs to do two different things.

        +
      • +
      +
      +
    • +
    +
    +
    +
    +
    +
    +

    3.2. [Proposed] Data Encryption

    +
    +

    {Explain here how the data encryption feature will be implemented}

    +
    +
    +
    +

    3.3. Logging

    +
    +

    We are using java.util.logging package for logging. The LogsCenter class is used to manage the logging levels and logging destinations.

    +
    +
    +
      +
    • +

      The logging level can be controlled using the logLevel setting in the configuration file (See Configuration)

      +
    • +
    • +

      The Logger for a class can be obtained using LogsCenter.getLogger(Class) which will log messages according to the specified logging level

      +
    • +
    • +

      Currently log messages are output through: Console and to a .log file.

      +
    • +
    +
    +
    +

    Logging Levels

    +
    +
    +
      +
    • +

      SEVERE : Critical problem detected which may possibly cause the termination of the application

      +
    • +
    • +

      WARNING : Can continue, but with caution

      +
    • +
    • +

      INFO : Information showing the noteworthy actions by the App

      +
    • +
    • +

      FINE : Details that is not usually noteworthy but may be useful in debugging e.g. print the actual list instead of just its size

      +
    • +
    +
    +
    +
    +

    3.4. Configuration

    +
    +

    Certain properties of the application can be controlled (e.g App name, logging level) through the configuration file (default: config.json).

    +
    +
    +
    +
    +
    +

    4. Documentation

    +
    +
    +

    We use asciidoc for writing documentation.

    +
    +
    + + + + + +
    +
    Note
    +
    +We chose asciidoc over Markdown because asciidoc, although a bit more complex than Markdown, provides more flexibility in formatting. +
    +
    +
    +

    4.1. Editing Documentation

    +
    +

    See UsingGradle.adoc to learn how to render .adoc files locally to preview the end result of your edits. +Alternatively, you can download the AsciiDoc plugin for IntelliJ, which allows you to preview the changes you have made to your .adoc files in real-time.

    +
    +
    +
    +

    4.2. Publishing Documentation

    +
    +

    See UsingTravis.adoc to learn how to deploy GitHub Pages using Travis.

    +
    +
    +
    +

    4.3. Converting Documentation to PDF format

    +
    +

    We use Google Chrome for converting documentation to PDF format, as Chrome’s PDF engine preserves hyperlinks used in webpages.

    +
    +
    +

    Here are the steps to convert the project documentation files to PDF format.

    +
    +
    +
      +
    1. +

      Follow the instructions in UsingGradle.adoc to convert the AsciiDoc files in the docs/ directory to HTML format.

      +
    2. +
    3. +

      Go to your generated HTML files in the build/docs folder, right click on them and select Open withGoogle Chrome.

      +
    4. +
    5. +

      Within Chrome, click on the Print option in Chrome’s menu.

      +
    6. +
    7. +

      Set the destination to Save as PDF, then click Save to save a copy of the file in PDF format. For best results, use the settings indicated in the screenshot below.

      +
    8. +
    +
    +
    +
    +chrome save as pdf +
    +
    Figure 10. Saving documentation as PDF files in Chrome
    +
    +
    +
    +

    4.4. Site-wide Documentation Settings

    +
    +

    The build.gradle file specifies some project-specific asciidoc attributes which affects how all documentation files within this project are rendered.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Attributes left unset in the build.gradle file will use their default value, if any. +
    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 1. List of site-wide attributes
    Attribute nameDescriptionDefault value

    site-name

    +

    The name of the website. +If set, the name will be displayed near the top of the page.

    +

    not set

    site-githuburl

    +

    URL to the site’s repository on GitHub. +Setting this will add a "View on GitHub" link in the navigation bar.

    +

    not set

    site-seedu

    +

    Define this attribute if the project is an official SE-EDU project. +This will render the SE-EDU navigation bar at the top of the page, and add some SE-EDU-specific navigation items.

    +

    not set

    +
    +
    +

    4.5. Per-file Documentation Settings

    +
    +

    Each .adoc file may also specify some file-specific asciidoc attributes which affects how the file is rendered.

    +
    +
    +

    Asciidoctor’s built-in attributes may be specified and used as well.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Attributes left unset in .adoc files will use their default value, if any. +
    +
    + + +++++ + + + + + + + + + + + + + + + + + + + +
    Table 2. List of per-file attributes, excluding Asciidoctor’s built-in attributes
    Attribute nameDescriptionDefault value

    site-section

    +

    Site section that the document belongs to. +This will cause the associated item in the navigation bar to be highlighted. +One of: UserGuide, DeveloperGuide, LearningOutcomes*, AboutUs, ContactUs

    +
    +
    +

    * Official SE-EDU projects only

    +

    not set

    no-site-header

    +

    Set this attribute to remove the site navigation bar.

    +

    not set

    +
    +
    +

    4.6. Site Template

    +
    +

    The files in docs/stylesheets are the CSS stylesheets of the site. +You can modify them to change some properties of the site’s design.

    +
    +
    +

    The files in docs/templates controls the rendering of .adoc files into HTML5. +These template files are written in a mixture of Ruby and Slim.

    +
    +
    + + + + + +
    +
    Warning
    +
    +
    +

    Modifying the template files in docs/templates requires some knowledge and experience with Ruby and Asciidoctor’s API. +You should only modify them if you need greater control over the site’s layout than what stylesheets can provide. +The SE-EDU team does not provide support for modified template files.

    +
    +
    +
    +
    +
    +
    +
    +

    5. Testing

    +
    +
    +

    5.1. Running Tests

    +
    +

    There are three ways to run tests.

    +
    +
    + + + + + +
    +
    Tip
    +
    +The most reliable way to run tests is the 3rd one. The first two methods might fail some GUI tests due to platform/resolution-specific idiosyncrasies. +
    +
    +
    +

    Method 1: Using IntelliJ JUnit test runner

    +
    +
    +
      +
    • +

      To run all tests, right-click on the src/test/java folder and choose Run 'All Tests'

      +
    • +
    • +

      To run a subset of tests, you can right-click on a test package, test class, or a test and choose Run 'ABC'

      +
    • +
    +
    +
    +

    Method 2: Using Gradle

    +
    +
    +
      +
    • +

      Open a console and run the command gradlew clean allTests (Mac/Linux: ./gradlew clean allTests)

      +
    • +
    +
    +
    + + + + + +
    +
    Note
    +
    +See UsingGradle.adoc for more info on how to run tests using Gradle. +
    +
    +
    +

    Method 3: Using Gradle (headless)

    +
    +
    +

    Thanks to the TestFX library we use, our GUI tests can be run in the headless mode. In the headless mode, GUI tests do not show up on the screen. That means the developer can do other things on the Computer while the tests are running.

    +
    +
    +

    To run tests in headless mode, open a console and run the command gradlew clean headless allTests (Mac/Linux: ./gradlew clean headless allTests)

    +
    +
    +
    +

    5.2. Types of tests

    +
    +

    We have two types of tests:

    +
    +
    +
      +
    1. +

      GUI Tests - These are tests involving the GUI. They include,

      +
      +
        +
      1. +

        System Tests that test the entire App by simulating user actions on the GUI. These are in the systemtests package.

        +
      2. +
      3. +

        Unit tests that test the individual components. These are in seedu.address.ui package.

        +
      4. +
      +
      +
    2. +
    3. +

      Non-GUI Tests - These are tests not involving the GUI. They include,

      +
      +
        +
      1. +

        Unit tests targeting the lowest level methods/classes.
        +e.g. seedu.address.commons.StringUtilTest

        +
      2. +
      3. +

        Integration tests that are checking the integration of multiple code units (those code units are assumed to be working).
        +e.g. seedu.address.storage.StorageManagerTest

        +
      4. +
      5. +

        Hybrids of unit and integration tests. These test are checking multiple code units as well as how the are connected together.
        +e.g. seedu.address.logic.LogicManagerTest

        +
      6. +
      +
      +
    4. +
    +
    +
    +
    +

    5.3. Troubleshooting Testing

    +
    +

    Problem: HelpWindowTest fails with a NullPointerException.

    +
    +
    +
      +
    • +

      Reason: One of its dependencies, HelpWindow.html in src/main/resources/docs is missing.

      +
    • +
    • +

      Solution: Execute Gradle task processResources.

      +
    • +
    +
    +
    +
    +
    +
    +

    6. Dev Ops

    +
    +
    +

    6.1. Build Automation

    +
    +

    See UsingGradle.adoc to learn how to use Gradle for build automation.

    +
    +
    +
    +

    6.2. Continuous Integration

    +
    +

    We use Travis CI and AppVeyor to perform Continuous Integration on our projects. See UsingTravis.adoc and UsingAppVeyor.adoc for more details.

    +
    +
    +
    +

    6.3. Coverage Reporting

    +
    +

    We use Coveralls to track the code coverage of our projects. See UsingCoveralls.adoc for more details.

    +
    +
    +
    +

    6.4. Documentation Previews

    +
    +

    When a pull request has changes to asciidoc files, you can use Netlify to see a preview of how the HTML version of those asciidoc files will look like when the pull request is merged. See UsingNetlify.adoc for more details.

    +
    +
    +
    +

    6.5. Making a Release

    +
    +

    Here are the steps to create a new release.

    +
    +
    +
      +
    1. +

      Update the version number in MainApp.java.

      +
    2. +
    3. +

      Generate a JAR file using Gradle.

      +
    4. +
    5. +

      Tag the repo with the version number. e.g. v0.1

      +
    6. +
    7. +

      Create a new release using GitHub and upload the JAR file you created.

      +
    8. +
    +
    +
    +
    +

    6.6. Managing Dependencies

    +
    +

    A project often depends on third-party libraries. For example, Address Book depends on the Jackson library for XML parsing. Managing these dependencies can be automated using Gradle. For example, Gradle can download the dependencies automatically, which is better than these alternatives.
    +a. Include those libraries in the repo (this bloats the repo size)
    +b. Require developers to download those libraries manually (this creates extra work for developers)

    +
    +
    +
    +
    +
    +

    Appendix A: Suggested Programming Tasks to Get Started

    +
    +
    +

    Suggested path for new programmers:

    +
    +
    +
      +
    1. +

      First, add small local-impact (i.e. the impact of the change does not go beyond the component) enhancements to one component at a time. Some suggestions are given in Improving each component.

      +
    2. +
    3. +

      Next, add a feature that touches multiple components to learn how to implement an end-to-end feature across all components. Creating a new command: remark explains how to go about adding such a feature.

      +
    4. +
    +
    +
    +

    A.1. Improving each component

    +
    +

    Each individual exercise in this section is component-based (i.e. you would not need to modify the other components to get it to work).

    +
    +

    Logic component

    +
    +

    Scenario: You are in charge of logic. During dog-fooding, your team realize that it is troublesome for the user to type the whole command in order to execute a command. Your team devise some strategies to help cut down the amount of typing necessary, and one of the suggestions was to implement aliases for the command words. Your job is to implement such aliases.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Logic component before attempting to modify the Logic component. +
    +
    +
    +
      +
    1. +

      Add a shorthand equivalent alias for each of the individual commands. For example, besides typing clear, the user can also type c to remove all persons in the list.

      +
      +
      +
      +
        +
      • +

        Hints

        +
        + +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          Modify the switch statement in AddressBookParser#parseCommand(String) such that both the proper command word and alias can be used to execute the same intended command.

          +
        • +
        • +

          Add new tests for each of the aliases that you have added.

          +
        • +
        • +

          Update the user guide to document the new aliases.

          +
        • +
        • +

          See this PR for the full solution.

          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    +
    +

    Model component

    +
    +

    Scenario: You are in charge of model. One day, the logic-in-charge approaches you for help. He wants to implement a command such that the user is able to remove a particular tag from everyone in the address book, but the model API does not support such a functionality at the moment. Your job is to implement an API method, so that your teammate can use your API to implement his command.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Model component before attempting to modify the Model component. +
    +
    +
    +
      +
    1. +

      Add a removeTag(Tag) method. The specified tag will be removed from everyone in the address book.

      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          The Model and the AddressBook API need to be updated.

          +
        • +
        • +

          Think about how you can use SLAP to design the method. Where should we place the main logic of deleting tags?

          +
        • +
        • +

          Find out which of the existing API methods in AddressBook and Person classes can be used to implement the tag removal logic. AddressBook allows you to update a person, and Person allows you to update the tags.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          Implement a removeTag(Tag) method in AddressBook. Loop through each person, and remove the tag from each person.

          +
        • +
        • +

          Add a new API method deleteTag(Tag) in ModelManager. Your ModelManager should call AddressBook#removeTag(Tag).

          +
        • +
        • +

          Add new tests for each of the new public methods that you have added.

          +
        • +
        • +

          See this PR for the full solution.

          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    +
    +

    Ui component

    +
    +

    Scenario: You are in charge of ui. During a beta testing session, your team is observing how the users use your address book application. You realize that one of the users occasionally tries to delete non-existent tags from a contact, because the tags all look the same visually, and the user got confused. Another user made a typing mistake in his command, but did not realize he had done so because the error message wasn’t prominent enough. A third user keeps scrolling down the list, because he keeps forgetting the index of the last person in the list. Your job is to implement improvements to the UI to solve all these problems.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at UI component before attempting to modify the UI component. +
    +
    +
    +
      +
    1. +

      Use different colors for different tags inside person cards. For example, friends tags can be all in brown, and colleagues tags can be all in yellow.

      +
      +

      Before

      +
      +
      +
      +getting started ui tag before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui tag after +
      +
      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          The tag labels are created inside the PersonCard constructor (new Label(tag.tagName)). JavaFX’s Label class allows you to modify the style of each Label, such as changing its color.

          +
        • +
        • +

          Use the .css attribute -fx-background-color to add a color.

          +
        • +
        • +

          You may wish to modify DarkTheme.css to include some pre-defined colors using css, especially if you have experience with web-based css.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        +
          +
        • +

          You can modify the existing test methods for PersonCard 's to include testing the tag’s color as well.

          +
        • +
        • +

          See this PR for the full solution.

          +
          +
            +
          • +

            The PR uses the hash code of the tag names to generate a color. This is deliberately designed to ensure consistent colors each time the application runs. You may wish to expand on this design to include additional features, such as allowing users to set their own tag colors, and directly saving the colors to storage, so that tags retain their colors even if the hash code algorithm changes.

            +
          • +
          +
          +
        • +
        +
        +
      • +
      +
      +
      +
      +
    2. +
    3. +

      Modify NewResultAvailableEvent such that ResultDisplay can show a different style on error (currently it shows the same regardless of errors).

      +
      +

      Before

      +
      +
      +
      +getting started ui result before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui result after +
      +
      +
      +
      +
      + +
      +
      +
      +
    4. +
    5. +

      Modify the StatusBarFooter to show the total number of people in the address book.

      +
      +

      Before

      +
      +
      +
      +getting started ui status before +
      +
      +
      +

      After

      +
      +
      +
      +getting started ui status after +
      +
      +
      +
      +
      +
        +
      • +

        Hints

        +
        +
          +
        • +

          StatusBarFooter.fxml will need a new StatusBar. Be sure to set the GridPane.columnIndex properly for each StatusBar to avoid misalignment!

          +
        • +
        • +

          StatusBarFooter needs to initialize the status bar on application start, and to update it accordingly whenever the address book is updated.

          +
        • +
        +
        +
      • +
      • +

        Solution

        +
        + +
        +
      • +
      +
      +
      +
      +
    6. +
    +
    +

    Storage component

    +
    +

    Scenario: You are in charge of storage. For your next project milestone, your team plans to implement a new feature of saving the address book to the cloud. However, the current implementation of the application constantly saves the address book after the execution of each command, which is not ideal if the user is working on limited internet connection. Your team decided that the application should instead save the changes to a temporary local backup file first, and only upload to the cloud after the user closes the application. Your job is to implement a backup API for the address book storage.

    +
    +
    + + + + + +
    +
    Tip
    +
    +Do take a look at Storage component before attempting to modify the Storage component. +
    +
    +
    +
      +
    1. +

      Add a new method backupAddressBook(ReadOnlyAddressBook), so that the address book can be saved in a fixed temporary location.

      +
      +
      +
      + +
      +
      +
      +
    2. +
    +
    +
    +
    +

    A.2. Creating a new command: remark

    +
    +

    By creating this command, you will get a chance to learn how to implement a feature end-to-end, touching all major components of the app.

    +
    +
    +

    Scenario: You are a software maintainer for addressbook, as the former developer team has moved on to new projects. The current users of your application have a list of new feature requests that they hope the software will eventually have. The most popular request is to allow adding additional comments/notes about a particular contact, by providing a flexible remark field for each contact, rather than relying on tags alone. After designing the specification for the remark command, you are convinced that this feature is worth implementing. Your job is to implement the remark command.

    +
    +
    +

    A.2.1. Description

    +
    +

    Edits the remark for a person specified in the INDEX.
    +Format: remark INDEX r/[REMARK]

    +
    +
    +

    Examples:

    +
    +
    +
      +
    • +

      remark 1 r/Likes to drink coffee.
      +Edits the remark for the first person to Likes to drink coffee.

      +
    • +
    • +

      remark 1 r/
      +Removes the remark for the first person.

      +
    • +
    +
    +
    +
    +

    A.2.2. Step-by-step Instructions

    +
    +
    [Step 1] Logic: Teach the app to accept 'remark' which does nothing
    +
    +

    Let’s start by teaching the application how to parse a remark command. We will add the logic of remark later.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a RemarkCommand that extends Command. Upon execution, it should just throw an Exception.

      +
    2. +
    3. +

      Modify AddressBookParser to accept a RemarkCommand.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add RemarkCommandTest that tests that execute() throws an Exception.

      +
    2. +
    3. +

      Add new test method to AddressBookParserTest, which tests that typing "remark" returns an instance of RemarkCommand.

      +
    4. +
    +
    +
    +
    +
    [Step 2] Logic: Teach the app to accept 'remark' arguments
    +
    +

    Let’s teach the application to parse arguments that our remark command will accept. E.g. 1 r/Likes to drink coffee.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Modify RemarkCommand to take in an Index and String and print those two parameters as the error message.

      +
    2. +
    3. +

      Add RemarkCommandParser that knows how to parse two arguments, one index and one with prefix 'r/'.

      +
    4. +
    5. +

      Modify AddressBookParser to use the newly implemented RemarkCommandParser.

      +
    6. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify RemarkCommandTest to test the RemarkCommand#equals() method.

      +
    2. +
    3. +

      Add RemarkCommandParserTest that tests different boundary values +for RemarkCommandParser.

      +
    4. +
    5. +

      Modify AddressBookParserTest to test that the correct command is generated according to the user input.

      +
    6. +
    +
    +
    +
    +
    [Step 3] Ui: Add a placeholder for remark in PersonCard
    +
    +

    Let’s add a placeholder on all our PersonCard s to display a remark for each person later.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a Label with any random text inside PersonListCard.fxml.

      +
    2. +
    3. +

      Add FXML annotation in PersonCard to tie the variable to the actual label.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify PersonCardHandle so that future tests can read the contents of the remark label.

      +
    2. +
    +
    +
    +
    +
    [Step 4] Model: Add Remark class
    +
    +

    We have to properly encapsulate the remark in our Person class. Instead of just using a String, let’s follow the conventional class structure that the codebase already uses by adding a Remark class.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add Remark to model component (you can copy from Address, remove the regex and change the names accordingly).

      +
    2. +
    3. +

      Modify RemarkCommand to now take in a Remark instead of a String.

      +
    4. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add test for Remark, to test the Remark#equals() method.

      +
    2. +
    +
    +
    +
    +
    [Step 5] Model: Modify Person to support a Remark field
    +
    +

    Now we have the Remark class, we need to actually use it inside Person.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add getRemark() in Person.

      +
    2. +
    3. +

      You may assume that the user will not be able to use the add and edit commands to modify the remarks field (i.e. the person will be created without a remark).

      +
    4. +
    5. +

      Modify SampleDataUtil to add remarks for the sample data (delete your addressBook.xml so that the application will load the sample data when you launch it.)

      +
    6. +
    +
    +
    +
    +
    [Step 6] Storage: Add Remark field to XmlAdaptedPerson class
    +
    +

    We now have Remark s for Person s, but they will be gone when we exit the application. Let’s modify XmlAdaptedPerson to include a Remark field so that it will be saved.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Add a new Xml field for Remark.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Fix invalidAndValidPersonAddressBook.xml, typicalPersonsAddressBook.xml, validAddressBook.xml etc., such that the XML tests will not fail due to a missing <remark> element.

      +
    2. +
    +
    +
    +
    +
    [Step 6b] Test: Add withRemark() for PersonBuilder
    +
    +

    Since Person can now have a Remark, we should add a helper method to PersonBuilder, so that users are able to create remarks when building a Person.

    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Add a new method withRemark() for PersonBuilder. This method will create a new Remark for the person that it is currently building.

      +
    2. +
    3. +

      Try and use the method on any sample Person in TypicalPersons.

      +
    4. +
    +
    +
    +
    +
    [Step 7] Ui: Connect Remark field to PersonCard
    +
    +

    Our remark label in PersonCard is still a placeholder. Let’s bring it to life by binding it with the actual remark field.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Modify PersonCard's constructor to bind the Remark field to the Person 's remark.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Modify GuiTestAssert#assertCardDisplaysPerson(…​) so that it will compare the now-functioning remark label.

      +
    2. +
    +
    +
    +
    +
    [Step 8] Logic: Implement RemarkCommand#execute() logic
    +
    +

    We now have everything set up…​ but we still can’t modify the remarks. Let’s finish it up by adding in actual logic for our remark command.

    +
    +
    +

    Main:

    +
    +
    +
      +
    1. +

      Replace the logic in RemarkCommand#execute() (that currently just throws an Exception), with the actual logic to modify the remarks of a person.

      +
    2. +
    +
    +
    +

    Tests:

    +
    +
    +
      +
    1. +

      Update RemarkCommandTest to test that the execute() logic works.

      +
    2. +
    +
    +
    +
    +
    +

    A.2.3. Full Solution

    +
    +

    See this PR for the step-by-step solution.

    +
    +
    +
    +
    +
    +
    +

    Appendix B: Product Scope

    +
    +
    +

    Target user profile:

    +
    +
    +
      +
    • +

      has a need to manage a significant number of volunteers and social welfare events

      +
    • +
    • +

      prefer desktop apps over other types

      +
    • +
    • +

      can type fast

      +
    • +
    • +

      prefers typing over mouse input

      +
    • +
    • +

      is reasonably comfortable using CLI apps

      +
    • +
    +
    +
    +

    Value proposition: manage volunteers and events faster than a typical mouse/GUI driven app, and derive insights from them

    +
    +
    +
    +
    +

    Appendix C: User Stories

    +
    +
    +

    Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

    +
    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PriorityAs a …​I want to …​So that I can…​

    * * *

    new manager

    see usage instructions

    refer to instructions when I forget how to use the App

    * * *

    manager

    register a new volunteer

    begin tracking their volunteer work & hours

    * * *

    manager

    view a volunteer’s details

    track their volunteer work & hours

    * * *

    manager

    update volunteer details

    keep their details updated for administrative & other purposes

    * *

    manager

    archive volunteer details

    stash away unnecessary volunteer records, yet have the option of restoring them if needed

    * *

    manager

    restore volunteer record

    restore volunteer details that were archived

    * * *

    manager

    delete volunteer record

    permanently remove volunteer record from database

    * *

    manager

    import volunteer record details

    add multiple volunteer data into the database

    *

    manager

    export volunteer record details

    have a backup of the volunteer records

    * * *

    manager

    create new event

    have a record of the event details

    * * *

    manager

    update event details

    ensure that event details are kept up to date

    * * *

    manager

    view event details

    verify the details of the event

    * * *

    manager

    delete event details

    remove the event from the list if event details were entered wrongly or cancelled

    * *

    manager

    archive event details

    stash away event records yet have the option of restoring them

    * *

    manager

    restore event details

    restore event details that were archived

    * *

    manager

    import event data

    add multiple events at once

    *

    manager

    export event data

    have a backup of event details

    * * *

    manager

    add volunteer hours to volunteer profiles

    keep track of the number of hours spent by the volunteer volunteering

    * * *

    manager

    edit volunteer hours in volunteer profiles

    maintain accuracy of information pertaining to volunteer work

    *

    manager

    export certification document from volunteers’ data

    provide volunteers with official acknowledgement of service rendered to organization

    * *

    manager

    view spread of volunteers across events

    determine which are the more popular events

    * *

    manager

    view demographics of volunteers

    know what my volunteer profiles are like

    * *

    manager

    auto-complete commands

    execute commands more efficiently

    +
    +

    {To be updated and expanded}

    +
    +
    +
    +
    +

    Appendix D: Use Cases

    +
    +
    +

    (For all use cases below, the System is the AddressBook and the Actor is the user, unless specified otherwise)

    +
    + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Use Cases
    +

    UC01: Register new volunteer
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):

    +
    +
    +
      +
    • +

      New user will be created only if data entered is valid and there is sufficient memory space to store the new user

      +
    • +
    +
    +
    +

    MSS:

    +
    +
    +
      +
    1. +

      Admin chooses to add a new volunteer

      +
    2. +
    3. +

      Application requests for details of the volunteer

      +
    4. +
    5. +

      Admin enters and submits the requested details

      +
    6. +
    7. +

      Application creates the volunteer and notifies Admin of success
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      3a. The entered data is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the entered data is invalid
        +Use case resumes from step 3.

        +
      • +
      +
      +
    • +
    +
    +

    UC02: View volunteer details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin requests to view a volunteer profile at a specific index in the list

      +
    6. +
    7. +

      Application displays the volunteer profile
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC03: Update volunteer details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin enters the index and updated details of the volunteer to be changed

      +
    6. +
    7. +

      Application updates the volunteer details and notifies of the successful update
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    • +

      3b. The given details are invalid

      +
      +
        +
      • +

        3b1. Application shows an error message that the details given are invalid
        +Use case resumes at step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC04: Delete volunteer record
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):

    +
    +
    +
      +
    • +

      Volunteer record will be deleted only if index specified is valid

      +
    • +
    +
    +
    +

    MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all volunteers

      +
    2. +
    3. +

      Application displays a list of all volunteers

      +
    4. +
    5. +

      Admin requests to delete a volunteer at a specific index in the list

      +
    6. +
    7. +

      Application deletes the volunteer

      +
    8. +
    9. +

      Application displays a successful deletion message to Admin
      +Use case ends.

      +
    10. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC05: Create new event
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to create a new event

      +
    2. +
    3. +

      Application requests for details of the event

      +
    4. +
    5. +

      Admin enters details of the event to be created

      +
    6. +
    7. +

      Application creates the event and shows successful creation message
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The given details is invalid

      +
      +
        +
      • +

        2a1. Application shows an error message that given details is invalid
        +Use case resumes from step 1.

        +
      • +
      +
      +
    • +
    +
    +

    UC06: Update event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin enters the index and updated details of the event to be changed

      +
    6. +
    7. +

      Application updates the event details and notifies of the successful update
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The event list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    • +

      3b. The given details are invalid

      +
      +
        +
      • +

        3b1. Application shows an error message that the details given are invalid
        +Use case resumes at step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC07: View event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin requests to view event details at a specific index in the list

      +
    6. +
    7. +

      Application displays the details of the event
      +Use case ends.

      +
    8. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The event list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC08: Delete event details
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Admin requests to list all events

      +
    2. +
    3. +

      Application displays a list of all events

      +
    4. +
    5. +

      Admin requests to delete event details at a specific index in the list

      +
    6. +
    7. +

      Application requests for confirmation

      +
    8. +
    9. +

      Admin confirms the deletion

      +
    10. +
    11. +

      Application deletes the event details

      +
    12. +
    13. +

      Application displays a successful deletion message to Admin
      +Use case ends.

      +
    14. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The events list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that event list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      3a. The given index is invalid

      +
      +
        +
      • +

        3a1. Application shows an error message that the index given is invalid
        +Use case resumes from step 2.

        +
      • +
      +
      +
    • +
    +
    +

    UC09: Add volunteer hours to volunteer profile
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Application displays the volunteer profile UC02

      +
    2. +
    3. +

      Admin requests to list all volunteer hours of the volunteer

      +
    4. +
    5. +

      Application displays a list of all volunteer hours of the volunteer

      +
    6. +
    7. +

      Admin chooses to add volunteer hours

      +
    8. +
    9. +

      Application requests for details of the volunteer hours

      +
    10. +
    11. +

      Admin enters the requested details

      +
    12. +
    13. +

      Application requests for confirmation

      +
    14. +
    15. +

      Admin confirms the addition

      +
    16. +
    17. +

      Application adds the volunteer hours and notifies Admin of success
      +Use case ends.

      +
    18. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer hours list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer hours list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      8a. Application detects an error in the entered data

      +
      +
        +
      • +

        8a1. Application requests for the correct data

        +
      • +
      • +

        8a2. Admin enters new data

        +
      • +
      • +

        Steps 8a1-8a2 are repeated until the data entered is valid
        +Use case resumes from step 9.

        +
      • +
      +
      +
    • +
    +
    +

    UC10: Edit volunteer hours in volunteer profile
    +Actor: Admin
    +Precondition(s): Admin is logged in
    +Guarantee(s):
    +MSS:

    +
    +
    +
      +
    1. +

      Application displays the volunteer profile UC02

      +
    2. +
    3. +

      Admin requests to list all volunteer hours of the volunteer

      +
    4. +
    5. +

      Application displays a list of all volunteer hours of the volunteer

      +
    6. +
    7. +

      Admin enters the index and the details of the volunteer hours to be changed

      +
    8. +
    9. +

      Application updates the volunteer hours and notifies Admin of success
      +Use case ends.

      +
    10. +
    +
    +
    +

    Extensions:

    +
    +
    +
      +
    • +

      2a. The volunteer hours list is empty

      +
      +
        +
      • +

        2a1. Application shows an error message that volunteer hours list is empty
        +Use case ends.

        +
      • +
      +
      +
    • +
    • +

      4a. The given index is invalid

      +
      +
        +
      • +

        Application shows an error message that the index given is invalid
        +Use case resumes from step 5.

        +
      • +
      +
      +
    • +
    • +

      4b. The given details are invalid

      +
      +
        +
      • +

        4b1. Application shows an error message that the details given is invalid
        +Use case resumes from step 5.

        +
      • +
      +
      +
    • +
    +
    +
    +

    {More to be added}

    +
    +
    +
    +
    +

    Appendix E: Non Functional Requirements

    +
    +
    +
      +
    • +

      Reasonable response time (2-3s)

      +
    • +
    • +

      Backward compatibility by being able to transfer data from older versions of the application when updating each version

      +
    • +
    • +

      Should work on any mainstream OS as long as it has Java 9 or higher installed.

      +
    • +
    • +

      Files containing volunteer data should be encrypted

      +
    • +
    • +

      A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

      +
    • +
    +
    +
    +

    {More to be added}

    +
    +
    +
    +
    +

    Appendix F: Glossary

    +
    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TermExplanation

    Volunteer Manager

    Staff working for the organization, who handles administrative issues pertaining to volunteer and event management

    Volunteer

    A person who has signed up and has a profile with the organization

    Admin

    Our application’s intended target user (Most likely the volunteer manager)

    Application

    Refers to our system

    UCXX

    Use case with XX being the use case ID

    Mainstream OS

    Windows, Linux, Unix, OS-X

    +
    +
    +
    +

    Appendix G: Product Survey

    +
    +
    +

    Product Name

    +
    +
    +

    Author: …​

    +
    +
    +

    Pros:

    +
    +
    +
      +
    • +

      …​

      +
    • +
    • +

      …​

      +
    • +
    +
    +
    +

    Cons:

    +
    +
    +
      +
    • +

      …​

      +
    • +
    • +

      …​

      +
    • +
    +
    +
    +
    +
    +

    Appendix H: Instructions for Manual Testing

    +
    +
    +

    Given below are instructions to test the app manually.

    +
    +
    + + + + + +
    +
    Note
    +
    +These instructions only provide a starting point for testers to work on; testers are expected to do more exploratory testing. +
    +
    +
    +

    H.1. Launch and Shutdown

    +
    +
      +
    1. +

      Initial launch

      +
      +
        +
      1. +

        Download the jar file and copy into an empty folder

        +
      2. +
      3. +

        Double-click the jar file
        +Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.

        +
      4. +
      +
      +
    2. +
    3. +

      Saving window preferences

      +
      +
        +
      1. +

        Resize the window to an optimum size. Move the window to a different location. Close the window.

        +
      2. +
      3. +

        Re-launch the app by double-clicking the jar file.
        +Expected: The most recent window size and location is retained.

        +
      4. +
      +
      +
    4. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +

    H.2. Deleting a person

    +
    +
      +
    1. +

      Deleting a person while all persons are listed

      +
      +
        +
      1. +

        Prerequisites: List all persons using the list command. Multiple persons in the list.

        +
      2. +
      3. +

        Test case: delete 1
        +Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.

        +
      4. +
      5. +

        Test case: delete 0
        +Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.

        +
      6. +
      7. +

        Other incorrect delete commands to try: delete, delete x (where x is larger than the list size) {give more}
        +Expected: Similar to previous.

        +
      8. +
      +
      +
    2. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +

    H.3. Saving data

    +
    +
      +
    1. +

      Dealing with missing/corrupted data files

      +
      +
        +
      1. +

        {explain how to simulate a missing/corrupted file and the expected behavior}

        +
      2. +
      +
      +
    2. +
    +
    +
    +

    { more test cases …​ }

    +
    +
    +
    +
    +

    V1X0tO@K{kT=0)*S>pTX}RS_nl`jBmYpryBQR%zF5sr;-=n%Ds)lNMKGMnYBL62 mju{8}r`+=Y=OfmyeU}ucqgE}z!re^%UF*iJ>!nw%AN>!LHDy%* literal 236195 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�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 diff --git a/docs/images/afiqlattif.jpg b/docs/images/afiqlattif.png similarity index 100% rename from docs/images/afiqlattif.jpg rename to docs/images/afiqlattif.png diff --git a/docs/images/imarbles.jpg b/docs/images/imarbles.png similarity index 100% rename from docs/images/imarbles.jpg rename to docs/images/imarbles.png diff --git a/docs/images/kratious.jpg b/docs/images/kratious.png similarity index 100% rename from docs/images/kratious.jpg rename to docs/images/kratious.png diff --git a/docs/images/sharan8.jpeg b/docs/images/sharan8.png similarity index 100% rename from docs/images/sharan8.jpeg rename to docs/images/sharan8.png From 395f7158bd5a7919eef191e5f2b74b3a7fb2fd30 Mon Sep 17 00:00:00 2001 From: iMarbles Date: Mon, 1 Oct 2018 20:16:59 +0800 Subject: [PATCH 089/655] images: Resized UI.png --- docs/images/Ui.png | Bin 81847 -> 81210 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 02aca225e1f99c7cf7ece6e1c31cbe42bee249d3..53df9cc906c7d4c6692dc31a80d0b2e5c412cdd4 100644 GIT binary patch literal 81210 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