From 347337ccfc918e92e11738abccf4f71c9ecf1020 Mon Sep 17 00:00:00 2001 From: Ng Wen Hao Dennis <36025582+Denniszedead@users.noreply.github.com> Date: Wed, 16 Feb 2022 18:15:55 +0800 Subject: [PATCH 001/507] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 13f5c77403f..c56b35b2ee4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +# ManageEZPZ [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) ![Ui](docs/images/Ui.png) From 6d3e685b121e002de14ff49d998c43363bbf56f5 Mon Sep 17 00:00:00 2001 From: Ng Wen Hao Dennis <36025582+Denniszedead@users.noreply.github.com> Date: Wed, 16 Feb 2022 18:22:21 +0800 Subject: [PATCH 002/507] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c56b35b2ee4..9493cce1c33 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # ManageEZPZ [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![codecov](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp/branch/master/graph/badge.svg?token=ILZDIFELY7)](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp) ![Ui](docs/images/Ui.png) From e47b7b3140ca3e43555d8bbd19edc02de4d603e8 Mon Sep 17 00:00:00 2001 From: Tay Jun Yang <6387754+dannytayjy@users.noreply.github.com> Date: Wed, 16 Feb 2022 18:24:16 +0800 Subject: [PATCH 003/507] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 7601dbaad0d..87e36174854 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,7 +4,7 @@ title: AddressBook Level-3 --- [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) -[![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) +[![codecov](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp/branch/master/graph/badge.svg?token=ILZDIFELY7)](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp) ![Ui](images/Ui.png) From 84fc021da531188295b8dfc79bdab65590f1c9e5 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sat, 26 Feb 2022 10:25:02 +0800 Subject: [PATCH 004/507] Update AboutUs information for Wei Jie --- docs/AboutUs.md | 8 ++++---- docs/images/chanweijie.png | Bin 0 -> 12030 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 docs/images/chanweijie.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..7e0f338336e 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -48,12 +48,12 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Dev Ops + Threading -### James Doe +### Wei Jie - + -[[github](http://github.com/johndoe)] +[[github](http://github.com/chanweijie)] [[portfolio](team/johndoe.md)] * Role: Developer -* Responsibilities: UI +* Responsibilities: Documentation + Code Quality diff --git a/docs/images/chanweijie.png b/docs/images/chanweijie.png new file mode 100644 index 0000000000000000000000000000000000000000..e3174f913178c6738664a0b8d569dedc7f8a6860 GIT binary patch literal 12030 zcmbVycT|(x)9y=$&=e8`r1#Ji2vQ_eLz5b+5flN1(3D<0Dn*Ks-U(Gg=me22pmY$a zp$Ui}y$A{dA`0B#Ip_C%-@X6bd*7_d%39gU-p}mWvuB=}(+{Wfz&U+wJ#B!D9015j zFW__r&;n?wscERGXlZC@=;&xc3}8kEdU^&97FK33HzzL-HzyYtpOCaDpMazw7nhg< zRPwS6313e|k zJQWMSj0QEU=^YvYPq1uA!V6kK&8jvCa^#zkoV`~l9f<7$I|rw*h^QD;943E7K~YIr z>l#8^M^{hZ%-q7#%K8S%!SU`rCug*aw~w!%e?VYR*wgTc$f#$S#H8eu)U@;rY(B04 zUszOJQu?a8rnauWq49NlM`u@ePw%@v;^^4;#N>ym>CX#`OUo;(YwH_3yWjWr4}Ki} zJUYWg22lJBi}e0Cu>TF$c@i#iN=gb!nloHv`XPEZc{4Px�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 A&j0`b literal 0 HcmV?d00001 From e0aea40fe6334fd4ce0f7dfdeb0e065e2b6529d7 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sat, 26 Feb 2022 10:54:18 +0800 Subject: [PATCH 005/507] Update Project Portfolio Page (PPP) for Wei Jie --- docs/AboutUs.md | 2 +- docs/team/chanweijie.md | 43 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 docs/team/chanweijie.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..77befb3556d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -53,7 +53,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[portfolio](team/chanweijie.md)] * Role: Developer * Responsibilities: UI diff --git a/docs/team/chanweijie.md b/docs/team/chanweijie.md new file mode 100644 index 00000000000..b657880a688 --- /dev/null +++ b/docs/team/chanweijie.md @@ -0,0 +1,43 @@ +--- +layout: page +title: Wei Jie's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ - This app will help to allow Managers and supervisors to track of day to day tasks assigned to employees. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. + +Given below are my contributions to the project. + +* **New Feature**: +* to be added soon + + +* **New Feature**: +* to be added soon + + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=chanweijie&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + + +* **Project management**: +* to be added soon + + +* **Enhancements to existing features**: +* to be added soon + + +* **Documentation**: +* to be added soon + + +* **Community**: +* to be added soon + + +* **Tools**: +* to be added soon* + + + From b0070a99aadd386d7da7426248fc5dbbc9649498 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sat, 26 Feb 2022 10:59:51 +0800 Subject: [PATCH 006/507] Update Project Portfolio Page (PPP) for Wei Jie --- docs/team/chanweijie.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/team/chanweijie.md b/docs/team/chanweijie.md index b657880a688..c0a2e23410e 100644 --- a/docs/team/chanweijie.md +++ b/docs/team/chanweijie.md @@ -5,7 +5,7 @@ title: Wei Jie's Project Portfolio Page ### Project: ManageEZPZ -ManageEZPZ - This app will help to allow Managers and supervisors to track of day to day tasks assigned to employees. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. +ManageEZPZ - This app will help to allow Managers/supervisors to keep track of day to day tasks assigned to employees. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. Given below are my contributions to the project. @@ -13,9 +13,6 @@ Given below are my contributions to the project. * to be added soon -* **New Feature**: -* to be added soon - * **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=chanweijie&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) @@ -37,7 +34,7 @@ Given below are my contributions to the project. * **Tools**: -* to be added soon* +* to be added soon From 02c2d376a156d4b0f04d85422bda2ae3b11c08c8 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sat, 26 Feb 2022 11:23:33 +0800 Subject: [PATCH 007/507] Update UserGuide for deleteTask --- docs/UserGuide.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3716f3ca8a4..9be5f192afa 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -142,6 +142,17 @@ Examples: * `list` followed by `delete 2` deletes the 2nd person in the address book. * `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command. +### Deleting a Task : `deleteTask` +Deletes the specified Task from the List. +Format: `deleteTask INDEX` + +* Deletes the task at the specified `INDEX`. +* The index refers to the index number shown in the displayed Task list. +* The index **must be a positive integer** 1, 2, 3, …​ + +Examples: +* `delete 2` deletes the 2nd Task in the Task list. + ### Clearing all entries : `clear` Clears all entries from the address book. From 3e10db707adf232e0c9f6a0d8a1e66967ff23e1b Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 19:17:00 +0800 Subject: [PATCH 008/507] Update UserGuide - Delete Task --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9be5f192afa..fa638c4995f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -151,7 +151,7 @@ Format: `deleteTask INDEX` * The index **must be a positive integer** 1, 2, 3, …​ Examples: -* `delete 2` deletes the 2nd Task in the Task list. +* `deleteTask 2` deletes the 2nd Task in the Task list. ### Clearing all entries : `clear` From fbbef6bd6af3302c2993f9555ff5a91c49c81fd9 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 3 Mar 2022 19:43:32 +0800 Subject: [PATCH 009/507] Update Non-Functional Requirements and Glossary in DG --- docs/DeveloperGuide.md | 45 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..ac35cf16b0a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -312,16 +312,49 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Non-Functional Requirements -1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. -2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -3. 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. +#### Technical Requirements -*{More to be added}* +1. ManageEZPZ should be able to run on any _mainstream OS_ as long as it has Java `11` or above installed. +2. ManageEZPZ should work on both 32-bit and 64-bit environments. +3. ManageEZPZ should be able to store and retrieve task data from File. +4. ManageEZPZ must occupy as little storage as possible. +5. ManageEZPZ should be backward compatible with data produced by earlier versions of itself. + +#### Performance Requirements + +1. ManageEZPZ should respond within two seconds for any queries. + * ManageEZPZ should be closed/terminated within 2 seconds. +2. ManageEZPZ should work well under both normal and high workloads. +3. ManageEZPZ should be scalable. +4. ManageEZPZ should be able to load huge amounts of data in a short amount of time. + +#### Quality Requirements + +1. ManageEZPZ should be easy to use by a novice. +2. ManageEZPZ should be in English. +3. The UI and fonts used in ManageEZPZ should be big enough for senior managers/supervisors. + +#### Process Requirements + +1. ManageEZPZ is expected to adhere to a schedule that delivers a feature set every 2 weeks. +2. Updates to ManageEZPZ should be able to roll out to existing clients remotely. + +#### Other Noteworthy Points + +1. ManageEZPZ should not be used to support management of illegal activities ### Glossary -* **Mainstream OS**: Windows, Linux, Unix, OS-X -* **Private contact detail**: A contact detail that is not meant to be shared with others +| Terms | Meaning | +|:------------------|:----------------------------------------------------------------------------| +| **Mainstream OS** | Windows, Linux, Unix, OS-X | +| **Users** | Applies to both supervisors & employees | +| **command** | A message sent as an input from User, that coincides with our Command List | +| **todo** | A task that only needs a description with no dates or times | +| **deadline** | A task that needs a description, a date, and a end time | +| **event** | A task that needs a description, a date, start and end times | +| **mark** | To indicate that Task is done | +| **unmark** | To indicate that Task is not done | -------------------------------------------------------------------------------------------------------------------- From 418d44585d1f681039afa47f5179bc9ebb848a8a Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 22:53:03 +0800 Subject: [PATCH 010/507] Update UserGuide --- docs/UserGuide.md | 169 +++++++++--------- docs/images/helpMessage_new.PNG | Bin 0 -> 6873 bytes .../java/seedu/address/ui/HelpWindow.java | 2 +- 3 files changed, 85 insertions(+), 86 deletions(-) create mode 100644 docs/images/helpMessage_new.PNG diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fa638c4995f..41871328adb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -3,10 +3,7 @@ layout: page title: User Guide --- -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. - -* Table of Contents -{:toc} +ManageEZPZ is a **desktop app for that allows managers or supervisors to manage employees and assign tasks to them. Optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). -------------------------------------------------------------------------------------------------------------------- @@ -14,28 +11,31 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). +2. Download the latest `ManageEZPZ.jar` from [here](https://github.com/AY2122S2-CS2103-F11-1/tp/releases). -1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook. +3. Copy the file to the folder you want to use as the _home folder_ for your ManageEZPZ. -1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
- ![Ui](images/Ui.png) +4. Double-click the file to start the app. -1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
- Some example commands you can try: +5. Start communicating with ManageEZPZ using the command box. - * **`list`** : Lists all contacts. +6. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
+ Some example commands you can try: - * **`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. + * **`list /all`** : Lists all Tasks. - * **`delete`**`3` : Deletes the 3rd contact shown in the current list. + * **`addEmployee`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe` to ManageEZPZ. - * **`clear`** : Deletes all contacts. + * **`delete`**`3` : Deletes the 3rd Task shown in the Task list. - * **`exit`** : Exits the app. + * **`clear`** : Deletes all Tasks. + + * **`deleteTask`**`3` : Deletes the 3rd task in the current Task list. -1. Refer to the [Features](#features) below for details of each command. + * **`add /todo read book`** : Adds a todo task with a description of `read book` to the Task list. + * **`exit`** : Exits the app. + -------------------------------------------------------------------------------------------------------------------- ## Features @@ -47,13 +47,7 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo * 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 ` ` (i.e. 0 times), `t/friend`, `t/friend t/family` etc. - -* Parameters can be in any order.
+* Parameters for adding employees can be in any order.
e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. * If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
@@ -62,100 +56,105 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo * Extraneous parameters for commands that do not take in parameters (such as `help`, `list`, `exit` and `clear`) will be ignored.
e.g. if the command specifies `help 123`, it will be interpreted as `help`. +* Task related Commands must be strictly lower case. + +* Task related parameters always start with /. + +* Task related parameters must be in sequence as shown in the instruction. + +* Task related parameters must be lowercase. ### Viewing help : `help` -Shows a message explaning how to access the help page. +Shows a message explaining how to access the help page. -![help message](images/helpMessage.png) +![help message](images/helpMessage_new.png) Format: `help` -### Adding a person: `add` +### Adding a person: `addEmployee` -Adds a person to the address book. +Adds an employee to ManageEZPZ. -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` - -
:bulb: **Tip:** -A person can have any number of tags (including 0) -
+Format: `add n/NAME p/PHONE_NUMBER e/EMAIL` 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` +* `add n/John Doe p/98765432 e/johnd@example.com` +* `add n/Betsy Crowe t/friend e/betsycrowe@example.com` -### Listing all persons : `list` +### Adding a Task: -Shows a list of all persons in the address book. +Adds a Task into the Task list. -Format: `list` +Format: -### Editing a person : `edit` +* `addTask /todo TASK_DESCRIPTION` +* `addTask /deadline TASK_DESCRIPTION /by DATETIME` +* `addTask /event TASK_DESCRIPTION /at DATE START_TIME END_TIME` -Edits an existing person in the address book. +
:bulb: **Take Note:** +For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) +
-Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` +### Listing all persons : `list` -* 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. +View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for today -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. +Format: -### Locating persons by name: `find` +* `list /all` +* `list /todo` +* `list /deadline` +* `list /event` +* `list /today` -Finds persons whose names contain any of the given keywords. +### Marking a task as done : `mark` +Mark a task in the Task list as done : -Format: `find KEYWORD [MORE_KEYWORDS]` +Format: `mark INDEX` -* 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` +* Marks the task at the specified `INDEX`. +* The index refers to the index number shown in the displayed Task list. +* The index **must be a positive integer** 1, 2, 3, …​ -Examples: -* `find John` returns `john` and `John Doe` -* `find alex david` returns `Alex Yeoh`, `David Li`
- ![result for 'find alex david'](images/findAlexDavidResult.png) +### UnMarking a task as done : `unmark` +Mark a task in the Task list as done : -### Deleting a person : `delete` +Format: `unmark INDEX` -Deletes the specified person from the address book. +* UnMarks the task at the specified `INDEX`. +* The index refers to the index number shown in the displayed Task list. +* The index **must be a positive integer** 1, 2, 3, …​ + +### Deleting a Task : `delete` +Deletes the specified Task from the List. Format: `delete INDEX` -* Deletes the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. +* Deletes the task at the specified `INDEX`. +* The index refers to the index number shown in the displayed Task list. * The index **must be a positive integer** 1, 2, 3, …​ Examples: -* `list` followed by `delete 2` deletes the 2nd person in the address book. -* `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command. +* `delete 2` deletes the 2nd Task in the Task list. -### Deleting a Task : `deleteTask` -Deletes the specified Task from the List. -Format: `deleteTask INDEX` +### Locating persons by name: `find` -* Deletes the task at the specified `INDEX`. -* The index refers to the index number shown in the displayed Task list. -* The index **must be a positive integer** 1, 2, 3, …​ +Find tasks based on the task description or date in the format of (DD-MM-YYYY). + +Format: +* `find /task TASK_DESCRIPTION` +* `find /date DD-MM-YYYY` Examples: -* `deleteTask 2` deletes the 2nd Task in the Task list. +* `find /task homework` +* `find /date 02-02-2022` ### Clearing all entries : `clear` -Clears all entries from the address book. +Clears all entries from the Task list. Format: `clear` @@ -167,17 +166,17 @@ Format: `exit` ### Saving the data -AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. +ManageEZPZ data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. ### Editing the data file -AddressBook data are saved as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file. +AddressBook data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.json`. Advanced users are welcome to update data directly by editing that data file.
:exclamation: **Caution:** -If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. +If your changes to the data file makes its format invalid, ManageEZPZ will discard all data and start with an empty data file at the next run.
-### Archiving data files `[coming in v2.0]` +### Tagging Tasks to Employees `[coming in v1.3]` _Details coming soon ..._ @@ -186,7 +185,7 @@ _Details coming soon ..._ ## 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 AddressBook home 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 ManageEZPZ home folder. -------------------------------------------------------------------------------------------------------------------- @@ -194,10 +193,10 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ -**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` +**Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com` +**Add Task** | `add /task TASK_DESCRIPTION`
e.g., `add /task read book` **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` +**Find** | `find /task TASK_DESCRIPTION`
e.g., `find /task homework` +**List** | `list`
e.g. `list /all` or `list /event` or `list /deadline` **Help** | `help` diff --git a/docs/images/helpMessage_new.PNG b/docs/images/helpMessage_new.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ea6b089b0666bff44a34f9e511a716f282fa9507 GIT binary patch literal 6873 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 { - public static final String USERGUIDE_URL = "https://se-education.org/addressbook-level3/UserGuide.html"; + public static final String USERGUIDE_URL = "https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/docs/UserGuide.md"; public static final String HELP_MESSAGE = "Refer to the user guide: " + USERGUIDE_URL; private static final Logger logger = LogsCenter.getLogger(HelpWindow.class); From 4899c0d15629a0cea15cc877c64a1208406b3053 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 22:59:40 +0800 Subject: [PATCH 011/507] Update AboutUs information for Wei Jie --- docs/AboutUs.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 7e0f338336e..3e80fd12e04 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -48,7 +48,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Dev Ops + Threading -### Wei Jie +### Chan Wei Jie @@ -56,4 +56,5 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[portfolio](team/johndoe.md)] * Role: Developer -* Responsibilities: Documentation + Code Quality +* Responsibilities: Integration + Documentation + Deliverables and Deadlines +* In Charge of Component Model From 642a5580a8d8b5dadfbfd69409fdf09cabacff80 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 23:07:33 +0800 Subject: [PATCH 012/507] update PPP --- docs/team/chanweijie.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team/chanweijie.md b/docs/team/chanweijie.md index c0a2e23410e..0e422a607bf 100644 --- a/docs/team/chanweijie.md +++ b/docs/team/chanweijie.md @@ -1,11 +1,11 @@ --- layout: page -title: Wei Jie's Project Portfolio Page +title: Chan Wei Jie's Project Portfolio Page --- ### Project: ManageEZPZ -ManageEZPZ - This app will help to allow Managers/supervisors to keep track of day to day tasks assigned to employees. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. Given below are my contributions to the project. From 5b9ad01045ee6f0c9755ac4f219eb99534562483 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 23:09:21 +0800 Subject: [PATCH 013/507] Update ppp --- docs/team/chanweijie.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/chanweijie.md b/docs/team/chanweijie.md index 0e422a607bf..6094e3afc77 100644 --- a/docs/team/chanweijie.md +++ b/docs/team/chanweijie.md @@ -26,7 +26,8 @@ Given below are my contributions to the project. * **Documentation**: -* to be added soon + * User Guide: + * Added Commands to be implemented in V1.2 * **Community**: From 49182955c0a5686fb0507dbb207e4218abd3e307 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 23:12:32 +0800 Subject: [PATCH 014/507] Update UserGuide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 41871328adb..f9e99c7f065 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -170,7 +170,7 @@ ManageEZPZ data are saved in the hard disk automatically after any command that ### Editing the data file -AddressBook data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.json`. Advanced users are welcome to update data directly by editing that data file. +ManageEZPZ data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.json`. Advanced users are welcome to update data directly by editing that data file.
:exclamation: **Caution:** If your changes to the data file makes its format invalid, ManageEZPZ will discard all data and start with an empty data file at the next run. From 87e26564f0188c8913d192ea87646145d3e7b65b Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 23:18:49 +0800 Subject: [PATCH 015/507] Update indentation of HelpWindow --- src/main/java/seedu/address/ui/HelpWindow.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/HelpWindow.java b/src/main/java/seedu/address/ui/HelpWindow.java index deeec4546a9..1b0066e0a45 100644 --- a/src/main/java/seedu/address/ui/HelpWindow.java +++ b/src/main/java/seedu/address/ui/HelpWindow.java @@ -15,7 +15,8 @@ */ public class HelpWindow extends UiPart { - public static final String USERGUIDE_URL = "https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/docs/UserGuide.md"; + public static final String USERGUIDE_URL = + "https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/docs/UserGuide.md"; public static final String HELP_MESSAGE = "Refer to the user guide: " + USERGUIDE_URL; private static final Logger logger = LogsCenter.getLogger(HelpWindow.class); From 5e80bec0e485e0dbb96df28718f522aa53f43a3c Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Thu, 3 Mar 2022 23:22:23 +0800 Subject: [PATCH 016/507] Update AboutUs --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 3e80fd12e04..45039830eaa 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -56,5 +56,5 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[portfolio](team/johndoe.md)] * Role: Developer -* Responsibilities: Integration + Documentation + Deliverables and Deadlines +* Responsibilities: Integration, Documentation, Deliverables and Deadlines * In Charge of Component Model From 9acd43a0d05dbc5e43b5f7b2253c192bfe67d5a2 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 02:04:21 +0800 Subject: [PATCH 017/507] Updated DG, Use-cases portion --- docs/DeveloperGuide.md | 259 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 230 insertions(+), 29 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..9e1c012db28 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -3,7 +3,7 @@ layout: page title: Developer Guide --- * Table of Contents -{:toc} + {:toc} -------------------------------------------------------------------------------------------------------------------- @@ -224,13 +224,13 @@ The following activity diagram summarizes what happens when a user executes a ne **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. + * 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. + * 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. _{more aspects and alternatives to be added}_ @@ -283,33 +283,234 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Use cases -(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) +> Definition:
+> For all use cases below, the **System** is `ManageEZPZ` and the **Actor** is the `User`, unless specified otherwise. +>
More specifically, the `User` are **Supervisors**. -**Use case: Delete a person** +**** + +**Use Case 1 - Add Task** **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 +1. User starts up ManageEZPZ +2. ManageEZPZ greets User with our HELP page, with all the commands. +3. User uses the appropriate command to add Task. +4. ManageEZPZ adds the task & confirms with a successful message that the task is added.

Use case ends. **Extensions** -* 2a. The list is empty. +* 3a. User uses one of the three `addTask` commands:

+ * 3a1. User uses `addTask /todo` command

- Use case ends. + Use case resumes from step 4.

-* 3a. The given index is invalid. + * 3a2. User uses `addTask /event` command

- * 3a1. AddressBook shows an error message. + Use case resumes from step 4.

- Use case resumes at step 2. + * 3a3. User uses `addTask /deadline` command

-*{More to be added}* + Use case resumes from step 4.

+ +* 3b. User uses Add Task Commands with the wrong syntax

+ + * 3b1. ManageEZPZ sends an error message to User, indicating the + format for adding Task is incorrect, attached with the correct syntax format.

+ + Use case ends. + +**** + +**Use Case 2 - Delete Task** + +**MSS** + +1. User starts up ManageEZPZ +2. ManageEZPZ greets User with our HELP page, with all the commands. +3. User uses the appropriate command to delete a Task +4. ManageEZPZ deletes the Task & confirms with a successful message that the Task is deleted.

+ + Use case ends. + +**Extensions** + +* 3a. ManageEZPZ detects an error in the entered data. (Invalid index)

+ * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for the delete + command is incorrect, attached with the correct syntax format.

+ + Use case ends. + +**** + +**Use Case 3 - List Tasks** + +**MSS** + +1. User starts up ManageEZPZ +2. ManageEZPZ greets User with our HELP page, with all the commands. +3. User enters the command to list Tasks. +4. ManageEZPZ displays the Tasks according. + + Use case ends. + +**Extensions** + +* 3a. User uses one of the five `list` Task commands:

+ * 3a1. User uses `list /all` command

+ + Use case resumes from step 4.

+ + * 3a2. User uses `list /todo` command

+ + Use case resumes from step 4.

+ + * 3a3. User uses `list /deadline` command

+ + Use case resumes from step 4.

+ + * 3a2. User uses `list /event` command

+ + Use case resumes from step 4.

+ + * 3a3. User uses `list /today` command

+ + Use case resumes from step 4.

+ +* 3b. User uses list Task commands with the wrong syntax.

+ * 3b1. ManageEZPZ sends an error message to User, that the list + command is incorrect, attached with the correct syntax format.

+ + Use case ends. + +**** + +**Use Case 4 - Mark Tasks** + +**MSS** + +1. User enters the command to view Tasks. +2. ManageEZPZ displays the Tasks. +3. User wants to mark a Task as finished, enters command to mark Task. +4. ManageEZPZ marks the Task & confirms with a successful message that the task is marked + + Use case ends. + +**Extensions** + +* 3a. ManageEZPZ detects an error in the entered data. (Invalid Index)

+ + * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for + the Mark command is incorrect, attached with the correct syntax format.

+ + Use Case ends. + +**** + +**Use Case 5 - Unmark Tasks** +**MSS** + +1. User enters the command to view Tasks. +2. ManageEZPZ displays the Tasks. +3. User realises that Task is marked as done, but is actually not done. +4. User enters command to unmark Task for the specific Task Number. +5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked.

+ + Use case ends. + +**Extensions** + +* 4a. ManageEZPZ detects an error in the entered data. (Invalid Index)

+ + * 4a1. ManageEZPZ sends an error message to User, indicating the Index used for + the unmark command is incorrect, attached with the correct syntax format.

+ + Use Case ends. + +**** + +**Use Case 6 - Find Tasks** + +**MSS** + +1. User starts up ManageEZPZ +2. ManageEZPZ greets User with our HELP page, with all the commands. +3. User enters the command to find Tasks. +4. ManageEZPZ displays the Task(s) which matches the search keyword.

+ + Use case ends. + +**Extensions** + +* 3a. User uses one of the two Find Task commands:

+ + * 3a1. User uses `find /task TASK_DESCRIPTION` command

+ + Use case resumes from step 4.

+ + * 3a2. User uses `find /date DD-MM-YYYY` command

+ + Use case resumes from step 4.

+ +* 3b. User uses View Task commands with the wrong syntax

+ + * 3b1. ManageEZPZ sends an error message to User, indicating syntax used for + the View Task command is incorrect, attached with the correct syntax format.

+ + Use Case ends. + +**** + +**Use Case 7 - Add Employee** + +**MSS** +1. User starts up ManageEZPZ. +2. ManageEZPZ greets User with our HELP page, with all the commands. +3. User wants to add a new Employee, enters command to add Employee. +4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked

+ + Use case ends. + +**Extensions** + +* 3a. ManageEZPZ detects an error in the entered data.

+ + * 3a1. ManageEZPZ sends an error message to User, indicating the + format for the add Employee command is incorrect, attached with the + correct syntax format.

+ + Use Case ends. + +**** + +**Use Case 8 - Clear all Tasks** + +**MSS** + +1. User enters the command to clear all Tasks +2. ManageEZPZ clears all Tasks & confirms with a successful +message that all Task are cleared.

+ + Use case ends. + +**** + +**Use Case 9 - Exit ManageEZPZ** + +**MSS** + +1. User enters a command to exit ManageEZPZ. +2. ManageEZPZ confirms with a successful exit message. +3. ManageEZPZ saves all changes to disk.

+ + Use case ends. + +**** +*{More to be added}* +**** ### Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. @@ -338,15 +539,15 @@ testers are expected to do more *exploratory* testing. 1. Initial launch - 1. Download the jar file and copy into an empty folder + 1. Download the jar file and copy into an empty folder - 1. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. + 1. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. 1. Saving window preferences - 1. Resize the window to an optimum size. Move the window to a different location. Close the window. + 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file.
+ 1. Re-launch the app by double-clicking the jar file.
Expected: The most recent window size and location is retained. 1. _{ more test cases …​ }_ @@ -355,16 +556,16 @@ testers are expected to do more *exploratory* testing. 1. Deleting a person while all persons are being shown - 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. + 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. - 1. 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. + 1. 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. - 1. Test case: `delete 0`
- Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. + 1. Test case: `delete 0`
+ Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. - 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
- Expected: Similar to previous. + 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
+ Expected: Similar to previous. 1. _{ more test cases …​ }_ @@ -372,6 +573,6 @@ testers are expected to do more *exploratory* testing. 1. Dealing with missing/corrupted data files - 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ + 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ 1. _{ more test cases …​ }_ From 4381f7919aedc5a4d1fcebb75e584aded9967346 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 02:09:00 +0800 Subject: [PATCH 018/507] Removed
tags from DG Use-Cases --- docs/DeveloperGuide.md | 84 +++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9e1c012db28..108bbe7fe78 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -296,29 +296,29 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User uses the appropriate command to add Task. -4. ManageEZPZ adds the task & confirms with a successful message that the task is added.

+4. ManageEZPZ adds the task & confirms with a successful message that the task is added. Use case ends. **Extensions** -* 3a. User uses one of the three `addTask` commands:

- * 3a1. User uses `addTask /todo` command

+* 3a. User uses one of the three `addTask` commands: + * 3a1. User uses `addTask /todo` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a2. User uses `addTask /event` command

+ * 3a2. User uses `addTask /event` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a3. User uses `addTask /deadline` command

+ * 3a3. User uses `addTask /deadline` command - Use case resumes from step 4.

+ Use case resumes from step 4. -* 3b. User uses Add Task Commands with the wrong syntax

+* 3b. User uses Add Task Commands with the wrong syntax * 3b1. ManageEZPZ sends an error message to User, indicating the - format for adding Task is incorrect, attached with the correct syntax format.

+ format for adding Task is incorrect, attached with the correct syntax format. Use case ends. @@ -331,15 +331,15 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User uses the appropriate command to delete a Task -4. ManageEZPZ deletes the Task & confirms with a successful message that the Task is deleted.

+4. ManageEZPZ deletes the Task & confirms with a successful message that the Task is deleted. Use case ends. **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. (Invalid index)

+* 3a. ManageEZPZ detects an error in the entered data. (Invalid index) * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for the delete - command is incorrect, attached with the correct syntax format.

+ command is incorrect, attached with the correct syntax format. Use case ends. @@ -358,30 +358,30 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. User uses one of the five `list` Task commands:

- * 3a1. User uses `list /all` command

+* 3a. User uses one of the five `list` Task commands: + * 3a1. User uses `list /all` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a2. User uses `list /todo` command

+ * 3a2. User uses `list /todo` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a3. User uses `list /deadline` command

+ * 3a3. User uses `list /deadline` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a2. User uses `list /event` command

+ * 3a2. User uses `list /event` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a3. User uses `list /today` command

+ * 3a3. User uses `list /today` command - Use case resumes from step 4.

+ Use case resumes from step 4. -* 3b. User uses list Task commands with the wrong syntax.

+* 3b. User uses list Task commands with the wrong syntax. * 3b1. ManageEZPZ sends an error message to User, that the list - command is incorrect, attached with the correct syntax format.

+ command is incorrect, attached with the correct syntax format. Use case ends. @@ -400,10 +400,10 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. (Invalid Index)

+* 3a. ManageEZPZ detects an error in the entered data. (Invalid Index) * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for - the Mark command is incorrect, attached with the correct syntax format.

+ the Mark command is incorrect, attached with the correct syntax format. Use Case ends. @@ -417,16 +417,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2. ManageEZPZ displays the Tasks. 3. User realises that Task is marked as done, but is actually not done. 4. User enters command to unmark Task for the specific Task Number. -5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked.

+5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked. Use case ends. **Extensions** -* 4a. ManageEZPZ detects an error in the entered data. (Invalid Index)

+* 4a. ManageEZPZ detects an error in the entered data. (Invalid Index) * 4a1. ManageEZPZ sends an error message to User, indicating the Index used for - the unmark command is incorrect, attached with the correct syntax format.

+ the unmark command is incorrect, attached with the correct syntax format. Use Case ends. @@ -439,26 +439,26 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User enters the command to find Tasks. -4. ManageEZPZ displays the Task(s) which matches the search keyword.

+4. ManageEZPZ displays the Task(s) which matches the search keyword. Use case ends. **Extensions** -* 3a. User uses one of the two Find Task commands:

+* 3a. User uses one of the two Find Task commands: - * 3a1. User uses `find /task TASK_DESCRIPTION` command

+ * 3a1. User uses `find /task TASK_DESCRIPTION` command - Use case resumes from step 4.

+ Use case resumes from step 4. - * 3a2. User uses `find /date DD-MM-YYYY` command

+ * 3a2. User uses `find /date DD-MM-YYYY` command - Use case resumes from step 4.

+ Use case resumes from step 4. -* 3b. User uses View Task commands with the wrong syntax

+* 3b. User uses View Task commands with the wrong syntax * 3b1. ManageEZPZ sends an error message to User, indicating syntax used for - the View Task command is incorrect, attached with the correct syntax format.

+ the View Task command is incorrect, attached with the correct syntax format. Use Case ends. @@ -476,7 +476,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. ManageEZPZ detects an error in the entered data.

+* 3a. ManageEZPZ detects an error in the entered data. * 3a1. ManageEZPZ sends an error message to User, indicating the format for the add Employee command is incorrect, attached with the @@ -492,7 +492,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User enters the command to clear all Tasks 2. ManageEZPZ clears all Tasks & confirms with a successful -message that all Task are cleared.

+message that all Task are cleared. Use case ends. @@ -504,7 +504,7 @@ message that all Task are cleared.

1. User enters a command to exit ManageEZPZ. 2. ManageEZPZ confirms with a successful exit message. -3. ManageEZPZ saves all changes to disk.

+3. ManageEZPZ saves all changes to disk. Use case ends. From 32836c65dcc1da31af516b0895621d7780f73e01 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 02:10:12 +0800 Subject: [PATCH 019/507] Removed
tags from DG Use-Cases --- docs/DeveloperGuide.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 108bbe7fe78..b316f350c09 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -126,7 +126,7 @@ The `Model` component, * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) -
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
+
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects. @@ -283,9 +283,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Use cases -> Definition:
+> Definition: > For all use cases below, the **System** is `ManageEZPZ` and the **Actor** is the `User`, unless specified otherwise. ->
More specifically, the `User` are **Supervisors**. +> More specifically, the `User` are **Supervisors**. **** @@ -470,7 +470,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ. 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User wants to add a new Employee, enters command to add Employee. -4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked

+4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked Use case ends. @@ -480,7 +480,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a1. ManageEZPZ sends an error message to User, indicating the format for the add Employee command is incorrect, attached with the - correct syntax format.

+ correct syntax format. Use Case ends. @@ -547,7 +547,7 @@ testers are expected to do more *exploratory* testing. 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file.
+ 1. Re-launch the app by double-clicking the jar file. Expected: The most recent window size and location is retained. 1. _{ more test cases …​ }_ @@ -558,13 +558,13 @@ testers are expected to do more *exploratory* testing. 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. - 1. Test case: `delete 1`
+ 1. 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. - 1. Test case: `delete 0`
+ 1. Test case: `delete 0` Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. - 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
+ 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size) Expected: Similar to previous. 1. _{ more test cases …​ }_ From b21fc508b7f252069cd2a7cf6803e63bb5528a2f Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 02:13:03 +0800 Subject: [PATCH 020/507] Added back
for those not within Use-Cases --- docs/DeveloperGuide.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b316f350c09..66149a285a5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -126,7 +126,7 @@ The `Model` component, * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) -
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects. +
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
@@ -547,7 +547,7 @@ testers are expected to do more *exploratory* testing. 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file. + 1. Re-launch the app by double-clicking the jar file.
Expected: The most recent window size and location is retained. 1. _{ more test cases …​ }_ @@ -558,13 +558,13 @@ testers are expected to do more *exploratory* testing. 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. - 1. Test case: `delete 1` + 1. 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. - 1. Test case: `delete 0` + 1. Test case: `delete 0`
Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. - 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size) + 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
Expected: Similar to previous. 1. _{ more test cases …​ }_ From 07e84fbdb10fad6c9c66d68da1be1a62c11f9be9 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 02:51:39 +0800 Subject: [PATCH 021/507] Update Project Portfolio Page (PPP) for Alfred --- docs/AboutUs.md | 2 +- docs/team/alfredkohhh.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 docs/team/alfredkohhh.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..c65d5ce6527 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -24,7 +24,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[portfolio](team/alfredkohhh.md)] * Role: Team Lead * Responsibilities: UI diff --git a/docs/team/alfredkohhh.md b/docs/team/alfredkohhh.md new file mode 100644 index 00000000000..632452ef117 --- /dev/null +++ b/docs/team/alfredkohhh.md @@ -0,0 +1,30 @@ +--- +layout: page +title: Alfred's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. +Given below are my contributions to the project. + +* **New Feature**: + * to be added soon + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=alfredkohhh&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other) + +* **Project management**: + * to be added soon + +* **Enhancements to existing features**: + * to be added soon + +* **Documentation**: + * Developer Guide: + * Added Use-Cases (PR TO BE ADDED) + +* **Community**: + * to be added soon + +* **Tools**: + * to be added soon From e9a99afb57b6ad20e9bc7fca108ce792b635b07b Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 03:16:13 +0800 Subject: [PATCH 022/507] Update Developer Guide Section, added Use-Case --- docs/team/alfredkohhh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/alfredkohhh.md b/docs/team/alfredkohhh.md index 632452ef117..31e32612f02 100644 --- a/docs/team/alfredkohhh.md +++ b/docs/team/alfredkohhh.md @@ -21,7 +21,7 @@ Given below are my contributions to the project. * **Documentation**: * Developer Guide: - * Added Use-Cases (PR TO BE ADDED) + * Added Use-Cases (PR/ISSUE TO BE REFERENCE) * **Community**: * to be added soon From d26e1306f8960de6b5a10039a061c9500c1386d4 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 4 Mar 2022 03:23:42 +0800 Subject: [PATCH 023/507] Updated AboutUs for Alfred --- docs/AboutUs.md | 11 ++++++----- docs/images/alfredkohhh.png | Bin 0 -> 102418 bytes 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 docs/images/alfredkohhh.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..2fb88010e04 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -19,15 +19,16 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Project Advisor -### Jane Doe +### Alfred Koh - + -[[github](http://github.com/johndoe)] +[[github](http://github.com/alfredkohhh)] [[portfolio](team/johndoe.md)] -* Role: Team Lead -* Responsibilities: UI +* Role: Developer +* Responsibilities: Integration, Documentation, Deliverables and Deadlines +* In Charge of: Storage ### Johnny Doe diff --git a/docs/images/alfredkohhh.png b/docs/images/alfredkohhh.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f7e307c55deb15b1e94e7a88a2198c999835d3 GIT binary patch literal 102418 zcmb69Ra9Hw_r?p;0)?V2#kEC?yIXO02~Ked9xO;(pm-r@fB?bW-Jvb+?$%-nUPy50 z_wDaL-gEBHXJ0&Hk7uuSG51(&%r)2iZ{@#V7_Zco)s!)wJ;T6w_V2;??-V0M*V)t8 z6Xfja^;VFF4?|2|O$!SP<9~dlef}Q9Oj%w_Q9zK7k561goR9yX^4T~F+5Jxi1%<`` zr~I}eBLDYpV{7w272$LIKVOuePw0Om9K=Oz|EFRCVxs?3eu00({wc

lg|cIR6I$ z4i3R<0s?~96tDk5K~M2N=$YyN59a?rod1Ww{}B6s`QIeZUcP)uL`XzMNJu65{@r`Y z|IhsQ6XP{5mKc^8<}*f&=dYh(zJB)K00!;9C}BVQU$Fiku%11~#D0N+gZs~={^$H3 z|Bw0a>*ttQ*f0KD!yv$XhVlFr=Bt0!m66>Y?LkQ*GDA%_$Ro37%<$t}Cb8Q3q~nu+ z>9J6(BBRk5upnc9yw2!PwhXlU4z!)7eW!P|ymF zs|B!LRN!VKw1qja6A_R1Nn|HwfTq=AcJsJkE^=)!j!nFHrjR5*iEdV=ETyNyCAR@p zS#kXt_vRQF;;+Zz+~ZS{DORz4!)V~$B;=TMhO{hQ%^pF2y-mq<`~^3TlF z<~Ng;(wOE>=Vf*c4fg#a4BG@-ZGML48pd zGn$bqJ-<9fPN)br~% z24SKcyTiJ#&L|KI=sn zN%bKsNzJD1wBv*?EfGsNp8M-L+v?w4x}nW~D|RJNv+D$Fnce?kl-ybQ$(HO(lOUi* z8&M;`+93N}2JUjjVn>WcM3=oCFk`yXpvr02y{fvZrAVWa)AISjxTIBA*C%1Ge!h{>@lFjULyFyTK@3?P2b~jk>@m8mbH3+p)zeXkI2SeiSi3!AXXu$ z<) z0}GaK!~T8-%m}|Y0M)Th%gBWK{e8Mb%w+XuBDZ02-CjyKBFKD9I$RPHR1%Q5Vv48f zx}|dz@N9ZPk8Iz_@l7a&+OM6U=v)@^!uVC=x{1)6Vfj|CdnFdD)G;?SF<(!0xHMi8 z2O1FRR6&+cVw**qY$yNf9cDStp=+hX$@>(w+b#0T+QU{Z(crKlS(AA2!k;?AEbqM# zzgBfsWd0_$1xIQ<5v%=_J3!1=ParjMS_1pZMhl;vcr?=H!2u0!J`eAs8s|!^W_M#T z^gwnm2DJUlBth{0IV_)V7%=gZ-uCJ3^Z2f=G8|4?2nf4~CSoBLRW{Qn;bMmdBn1DY zM9$%ckZ?ul}{G1#TQPl`yBZ7prdzxbRrqCML-icxN5!z4h4{f?~7ldg4Qp*=N>jgGIO?rv*{|+5|yI9dZqdanW=kN&A&!o zE*h>G?B<@TU9C-4{j5jszRmlv9~b)lF?%*dq6I#V*ot$K$^+wpdv8M`d+!b;IY~;R zUB1Q(@l0&cQ89Zb^gj%^ z-N9mH-MjtE1phAZ@=4&ry(g!R`IM9JOXpV#m$&+Bixy7Pp@(9dt$!~9PqW*O3+9E# z)~eLM_`hK`T3(CI#&rasu$3*9&HqeM8^_zW>5-CniU=5xReWr?RN4>P#-4%XKVohR zGyDspwG=$#R95(m*b;w$bN~MNF+vuYpv`7|u&8&~Clhpu>6zx&k#w;s^@-o*~Io1|+p`<0EzGep=4^!c&igM3ohWJq6Lq zX?1=wKE?M=KX&FfrJPoGZl-z|J7rw2XEobi+a%sFFQ_hSOd5~j@Pg2{*BK+No88HK z=S{*V8`354;Jl5%68KXZt-BN1+21#3O(t0mB^f&DvzR=8Q{MpT`}9f$^tkMNr7P#& zmC@@C@kyD%I8TV)~ozwqg}lR}lbdfQ}!pj|%^UZjj9G$z8xgNb$B#6bied zJ4V_7yOQ(KbB^Ed$Y29%8}Rlu{=c=B((hH8$tNusu0b^`szhmqH>bBs;0G2qZCPE{ zJfI0Iwx@Pxo#n)HO{R4(G?Cz<|qoEE9dWc~o?exe)NkeX-(atUC=42zO^pjjpB z92*R;@U$gYF&51h9OPqU%+y!k&eUtZaj9XixpG$}4~E`R)Y%*lJsnRx85WL5as;!u zKO!=KLY}7Vr-NA+W_8+wsK-su{9S1xPkqz)Wi)@71C9JUEsW>CXv?cS${T=!BEn*x zIg;T+nRJ+0Lo)zIDjQOYG%^&@j9PkH7aamWGCMgt$QiJcHaz-M-y26TcK;;4YObMc zZz4fo(eCh4H7%picg9i{gbta7Tyc274O+zG#TuqejChES%#T*nb3akM0x-9#ARL9U zcQ>+Q|9I9M*Xz@?{@!pe98PoxP`s-ssjQ7?jC8bHAgHY8`W^GKGJgQ(2Xbn!v^_6# z;t^@4aLIl%4T@-43qbcCFo;2CVH4F}0 z&e=MHnPGCNhfYOfc?`iBUV zU5j`bOFS~XXTlug8-`3590{v}ZBlxEIxQ1emDv9HL$u=}uT(E5#{V2F^5e> zBf~+loU9xl0=YSV=^apdD#nWPyI4WVEa}>f7o<2X6`uzsh`-)sX-WKq$i?|q6raLQ zkanBm9OwPDekIDjH91UxMo7>xO`TeSt6a&#^8Hn98vhTjNO@UjMMV{(6WU1$cAHtV z1D9t%nXMOSHu}?F>NXb7EI@^mPxg{$-%0+|y?Qy9R;Ws{5@fm;ZXbjiu@MmHqlc8nsR=?+)GxVw#o=$REiv;30gU4Sbi$;QB5_(45SXQ~IH|aKe;z7N$r}#Xovx=6syB8T>rVuy{UoDJR!m4bY7aQfW0+o(_*OxU zY*~MX`?7?~{}0&!C0K#HbBNFT9vd9X{6{Dao4P17=oIIR{{84iyoR00NweRdtVq8v z$%6weSU+Pl2VPUJDx{^CwyHS1vq{Ec$|A)39`t+y$WphvZN$I!A`BvBMkq9z@4_6) zC_JiKWs?p(I|eCI%Z<_rZ#w0#jZ;!SvHsj<4yc0$#`m-@{E2=@9uA{8hhCxF7?c+d zZn5BVmVqH#^Q3V3b5HM`#s|vTeY(SjVdzc8m8&I*$oa69Upkx@P#!G z{+z;ie^rmpr0842zPbEqxd73eghQp_9E%{o(Y=)W2_S+k==C@v@*cnXyD6|#z`!-7 zDeNc`8qxBmRC-PCw17#`a*9v-fq+ydf)t!3`Eh>$T-Uc-eeqR*n@1$V0%cgyn)K4R z7)h2gt^=o-k0#2N7WOxJVxfFRdWo#LkVw!7z7UYaL4J#G$U|^&MlCLXsxNZo znm|nz8Mq2Hh};P+7ab{&EJbXjU(^@aj!ng>&+s@(Ec#mxl?aA7=fYvN=GJ_{O_Mcv zzd+Q%_P$_AX;O#?+D8fY(`=w~CziLpz~NC(aXsjy@MvmM#4n@z(40l$U4zNBYt!Fg z>w_oOZi2^+za^`y(RBq!-MYDfy((u@lW(bq#`k+!n8MZyT`W z$zQ42>8oz9)1V+z1J0^*Kl#i(D~aGTGVaZT)fS$nE46<=Q%uQf@c*G+dKD(Dn=yB! zHy+CEw9RV5#ORdc5lWmB&0@B#@yAm|)W`9vgJ4~#a%c^0s1%qCqtP+ve%qEVR(K@_ zR?3>&uU?9F*PwF|-dUz_qHB0Pe1!jwXCX?>+TKOVX#Wmknx{iH8SIo}+V=e+0BRsg zys0G8E&vTsn&oATTjs+O#~2mk8Dv#0S?$+I8Lq6GhV!Og`mAP{w486+#)Vd9AX>lfU4Ai;T$#Bix7{NocbNh}(wGI<~q zaqzdwb$J^HW~$rK_0pX6&rO4V;9Q%2_m_$`4*P=Yg==eps$OZc<8g?!R^FsJJ?xxw zeJE^pq&x1rYbx?>K|vx`noEOCc|-X`_1f;u3&%w$-g2u(;fQ??U!4-OapT0+XAjn_ zJTbHG79k0nuND_Z!lGVa<*hw9=^ z0+E^LJP@p?PBj~gPbh(*Nl>zal{Dd`)=sYX;UZZVQC7dxQ@4hcE0V#o+U6nsTZl}- z^Sj!swm%jL-ZK;L6tTZ|7+*!JFE^#}a;}3_^3e6>ruQ<^zfNofXYazThS3)i>@Qr3 zCV8aALm;(=m-kk5Uia3#M^9%rW74wQw?4tCbyMn99K|(Nvyfy3N^)mI|EtF>qpktZ zQwbh?nl^1-GY)0$aXb4Ek#i1oW!$ivkT5-5M95J45T;}G=iI0fy)B7#t%@fqk>3TC z8_VI+PsB0vEy22>qk4btTuZ9mDNkM&^l{H z%?@+hl0Hml-^*s6SGlfza|;@|baoi9wiE-j%+!G1s~_Vi*>MkNNU^lAy#;Tw5Sig! z{x$$|A0kSRrdotrp|#T?7F2eQe2l>ECwn6Fs(j(BL$J@-`ZJf~-2<7TJ*!p?#8%hA zaO>vcMj%XMtR_ zyypi6#5gBDG_Gwim?oLoA>{tRs}43~Kj^gF5;yo>oEjxw{}oTm0H+0hH@7!1%E~t| zjUKyOYT~S6tCn(ES~!CDG;5Hqq2evQiSzQIsyS_|mZ3zYrr53bRyuswIgW*SN~VPn z9j|?Gu!ORp(1@#RDAhVd$Q)s&$pZNrmQTBtEgR`2Vk9+Zd4R@Nj5&GW-7m`y?9{fr z8^oL9q5IN!*x}yNy6Xz|XpH&~WAos$Csb+c;9*pnW^#9p*QMsxHzYwji2aL`1j1`& zd;ZxtDY7U@s3qO_?#$7#_RB$Q%iX6KN<_2rxley2qPaf*Xcy%KX`==y_6 z#5(AnSoAojuWIi}XB|P_c=z{HFI8>d4?n~)iIY&b1Yp~E)#ng4asR><-Pbq-eA+U4 zt8$!W2wj*l5^iCA4e0HIX{*g(deKrdujB3zeOF@@itda0v+v4wIt+G03?CmQrJhI9?z zLAs;o#kD|thyrd)9zXc-y&X?eTkDsHkOnRT79ECF<7Il5<2^%(>O9ExRz%CFN9Q9i zQ{@ao>{G|jWk5%h6BaF z#)Y*TO6Kv2G>)LmIb?Rr~uEkmm0Iz|N|Kvdq3aw%o`)9Z(f>`9-&TYOEob zdpYlJy9un4eI@!g`!~D+Yz&@m1=CAgrMF$?wpphK8_4D6;!ltE>|gPq|7aaQ*28sL zE+L}G?2{E@vvy(2t-f*5oOLRKS#`e1gvgIrIAc4$zRO|HraF+8HQKEE#*mneI?QLoVT18q+qx2-wvaa@CgF>J%=auk0R^ODtVfyCh9EQxI;u| zdZd=EZL)`2dxH=EiqdyvqC%!b(TUl^PbxXhKo0M&JCqr*^|QB`?mMQL1ceJ0b32n} zN&(D~xLU15WPU{>&pCOFyT_rwg#HF?ot<@rcH*UsX5C6@vJiZZy65yNeIi zYrPa~EMEtl-v?i{6;e4tkpZm7lLo%X`^TRy%KvQjSF4Bc&ogGO@7OkPrx5;+6TqY> zlDA<)%ob}$jS)M;+q201!@w6cWfk#ebCIKtZ`=vf^6yT2t@Dh^&|FSUqu$j;t+*Ys z)B9+MjLd}(EZQt%mV(I2ciumzhyF9tA~z61((mmp=QKlRH2A`(K}-s_D}T;j=xWY# zby62*jiF03g&D+sCV`*AL@``L+7;H*>sD51Cscjx$_vb}3yU`cv&PTZL1%7sC^t4w zr+JlWX5*Z+wd{761>SoUgbB8x+v^EJRhXONv>KvR0mg6P!ma+_)2m}zb(TycHuoGG zG!Ee*i__Tv&-)8Ots*Rc9KbH;Y3qtqHGJ9|^|_OVVD(bVUid3juD-xl?JrwJ<~O-3 zE&FlCDKg?I(Nm#?Z5fMyYFINU5Klzcr~$+>gO?7uM@LXCkkAeS9O>Qah-}(<`V8H- zI^0t#eZ^Mfi2&H=fa zZ*-Zrbo|x$KD8nI_Tl}Is~C=5UZQ{wQQA*_MKmG~6T1{-~l^ zsF1p+)@kz(9_8}w9lrsUE_stvJMqTv+#p<>N=qbuZFo@zJE0ZEbQl(Gq%8xWlEq59!5?S2T^tix>(@OJYwI^soEfxa;F54M$0N0dtti#og(3CMZX``+?urAYi@9zKsW~X>=HjPzB1M)+E`~*``y`B7; z_LV!9HMw**_o$JAPJe1U+ecg0o?ByhhUmXM_odXSj%q;muvKQS<#2HXqG)KEm0Q!u zqkDYjdO6M(HAnY4U0k70Kj2#{wU&*k*m}vMtjRvl< zn3WUlU?LrUe$+Dg3wNGRH%#Hk#~UXs8Pm0QX2u1A@|~&O%#BMyrfw~@F`ODQHeq8y3$KF5}_fr^Wn92c+J61ziy>OEyJZn+FAyq}=r zt)u;zNAg;CNiRIsE;)eC;{bJ;(AD4r+Z!#YcC=y_{CpOesHu@;Xvspe@sxSs z%Dwn!J=#F3yc2Cw&p&h~#Ys4G>kag@jH_*OQ3GJ-HvHJ28NJkVJS`oZa5GQ0sd6-v zzvs|n(tNyQDY!$xln;h2L5-=@8T+|rF`$pIU~9>G5ibWj;U5m~v%lE7BXbrWjW)&&%*ar5glkz@DKPz&eoeeQIy(r4yWIVE) zRPsn6SnzjdEQmMwz#3@Qc67$Ua<)*PB2lf5UB@n`2$B5U`SuWxs$ z+|$;wx&#)fh!x5)DZxlk##7xReEAOHzbQcm!cvh*zXS+hMkHbAHeU|FV`CeRj0TYC z?4na%+-rGa3a7SSYx4OZ@x$=4tM+Mj(Ybx8-m+CwD?PhIh*a@s%b1JetJdMhl|P9sF=##Fnl(gxEDjG|E}z7X6UtUfU6!B&zfnp4+?}*M6je!5IsT}USypZem$W(B zqnC&G=+OHyi;fu# z+z^oN$r4;k7+%}aBPSlekb>9QQDXyk=V{;o@mNjSi%<-5$)|}Z=vo@8#481tZlo%C zt^T_*NOSx)J8J5;&?~5Ssw zY45A^$avZeq%t=2#(k2lvHOfoJ8kl%9QPCu$pI$03O%CINXjC;jFqN!0wYr`6Q!te zfTdabk9eziw&-N5waoBI3-J@TAbxr(8{YQP7uu;Vrg4J~r{q>Re)Kc{VZ3cvxT3Fa zcqQ<5k~sQgZIz=Wp1KTUz6P{JvOPETlV&YE9%0aDfxyUIXFN(5_?4qB_m&)bHPAuF zlbs3YqBO4&3IYT)*eT=4;*|5{VCAZmxpbv~uz!y7-b|C4vGWKS>{%Pp~Xxivkv(vNTvuZs4J7;&{x9 zEJn2n*N!Z`p}JYla>{LdCU4x2hQ&)FSgOXH>rA zT-XcvX3&E?hr?BUPDMI9vu<8#VXHxlKPlgH-5E?yKigRpw-V zOS4)LF`Z(N2!O`Kng6c&Smc+(zxoWH;!=hNg4}2O1&c)x*56MSK^-03jzVjvq>b|? zx!mdXE^a5&>b{M0a)qWqRsJPFf~)w1NHF_JS(d9+F#l2o0lv5={GLZ$Ub`+;IxJ|z zlFHigA@1k5XdRI}S97rkEyb&(k^3I3rJ$pwEe-~t$c4_Du?d~uTCF^xSk41+KKXn| zf8`9GgP%9a460MCWH(p{T*zi+A5@##s%(++LCIxof&SLaU{{1pjqjJ~>ud*GN<&YI z4kPLVMZHlXzgNl%&=8ujjf#Z0elGnj>=NUu;bu$0BYVf@`>^HFgR&-#c#h3)x7>4D zOcv6UUi(TE9WF-QTp?USUYz916K7IeBhM$~O6qkX>d72jKRdsLi@%NfKGqV0L-8tt zxic4$W_fV`v>Y`!ZG{fV@BsO}af}j9tP}WYETGpTP)(F2C)WD{rkEZ<%3OfY`dOl< z-$H-i#Np7>n6!!$+==7j@GtY+HZ7j_bKIL5_ptQCTXI{ss9B7=OOW1f*4p`00xI^q zAQBI}=HHHjZy_)Usj zb8=kfaoz9|&oB4jzb=bD@mY(>vIR3Ib*G#BK3Xh^m5;?L7=u!3d={GhLco*4WTJ&5 zG6f<9aH^#c;YE~T=9N%!@#vREM-WuzYy{!NIqw1xW)=i_x-Ne`uE~~LntqP-yiw&U z-q@m>Ev^fH&%b)*q$H@5wW1G7U&gCv-=(kQH%z>7GB!WYwm@uY26YYub?Ng;qJN<8 zJ`E!UnlEJy8yV>sCB(rl!D&iL+DiM*dq228%XU=65DeXmKR=!ttjR0=h_THty1e~9 zc(uDu25R9yj*VP-8QETvG+vI^OeeN9>s4N+zy*>AtU#t`O#uEv(qvCG6F;#8u#ks0 z0*&RHO#y`%DUj)>#dI>|7$&+ya5RnDadpA8TeKuJ9Z<+oW$|Rg2W`*At_W;ighXoV zk%@umAKoU<6L3&OC({1pw5PuM7;F<*7pMF4N2A&384X*xr`J@*r(_cY+=vLWRQq8i zej2BEi7ze{?GJ9YK~~S4c+0^k@HghLo#koeD0Z&4Brfsg)Qx2zF^JCY*IQ{$&quaJ zuDOL}Oc$cYa1F^k?s@Y%lM*sL?X$fzD;k1&bzWZE**7$-g(%5w+GS#WGz8u=-kNpr zfO$L~>bNq(r|;}d+U>y$$(tX)Bvx9SS@|fmDNU_!F4Wx(Mf<40Xax)}uTs8bWRsCy zF<%zfL(?e}+H$X8Tkd6=-yK{WVtUQEEe^Yb<(zuod{shMG%c@c-tN)icW?Yl+$2}R z|8<&u-oM(-y5zi$j2lpC0d%#4f|T68Y7z=vFm?)z-Ez%^OFW-b!0c!(t}<(;lr#*p zizLh|yc;a`^r5iIY>7Ai3e@_))U4ZZPMF+*>^V+KslLWp3-}oNiD)9|}ABFEhJ07O3vJasiNp!)qYpj}@R*&mlcw_x|u=$l4qvgUd*^=%5T= zR&&Z#GPub&?Sb&RtF^i*Jve2{ZWV^@P`}Y*WUoGPL`}2CzOTSJp?=PDr6YuFUfgfq z^l^xCJf^M+ZBt2gc1BwY9%AVuissn*O-;)^R9HQFL!v6HpNJ6B!bo~)qy(r(HWJ|V&n_s1dWpHMr zUWC1yzX`8a0{QuHSzIqOGeG^`|8#h(vVSE?Ccxrtamt+H%>HE5(wH!|DLLLa=! zmgjPD)cm{i_T%)SdCqMs1M)L7T(gHLqEoXsMck1X?a8)0da_DgJ;hVn_DcD@o+hqy z+e>uIuWngK4p!;nCSKb@eQ*%<^4BFgj7z|-O7NaKAjvL|>7Aj~n^yI?5kK1UYz~O+ z{IGA~hTl-egme(sc24%`o-h2xwr@$svyKi~a=Zy?i6{JB6`LyfE74&W4hj4^&r!3H)`lguuUsk07W4aBx}@D*={_JLH}3==+axYCAAakpJ+Gq?z%D*_+2P#r{fM^%^rbhZKYWhMviRK z#2+7DMV2oM?NC=uf*c5JzwRT+;x^EU&`TKD;jO?7*yi+|4Y%ILs4=@WB@StGV83Zf z9v!zNVK0hhdHU3Z0heFYB4P-MOIVQkd-?l-#(z%+P>twO7^0-&9sn4 z77Nq5Ffr|EBlY@6*A!0HVt>sRb*`J@SkTUDo#9~cr%xXjBtxEfXPY|Qw*48y518!? zv|-PW`~}{pI6Hkkq)Hgn@fDR-t%ZtkR-Am_A1}^SGt^M@mkLuo95PaBM+m!2+oo`0 zE?9HUBK(A`BKBz9n$PzeUz_5ZUMLAy*Kd>@MoNP-|G{ z3BXF?GJ>~mES|HmY)cu3U9Ea`Z7#?X-?f-+lF<|!PSIL)(%r{qR}u3c24M4zY_&$n zx|Je$F!t4S5R=uad|e}EUTLkvr(l7&duZU?So3I77#~seYaN-ABHELqmvg=5xZ#ba zTuM=c?EPF;bZ0Vt?nzx4U%3_H5blN2N_%(Zc}s#8P{mymH*!-# zVA}a#nP;aNzVQm{l33eYj9=(!Ekq<_UQ61anN8-eQ8=HH(<> zqC}?FGVEdKQeZ_Z{?fs-0vuog4K&U?ENjBeW9Xjy(KIce5H)1wmz=KnAQpE6y?0BQ z{22F{MT3WNvJCFHYe-qAgxcB)IaP}E>_Y^T5v7m=+cLYHxAQU=xV+NF;ylvgR1d}r z8QBX4S!F)OP+#+#=FU2FfSOFGV9tAe=HQv}0>NR{jt)IHpUVYssIm@dwA42UzKQ7K zea}(T(7WMz5-!Si!_7InF3>qkGwia>DrxYtEN0XX;+-BfZ(46GYsNhdLHgSP#kRHk z-GRgh@TGPBtzPM`jhy842i_b5#Z%$x0m3-KOzBL>#^3E!27>NtUxM6ZelmWI_5g@H zt$nb2`P?CnTdItVi(mVG{LZt>4mjD5zNg!zR?Y>E_5fa@MM^~%ANyt-QRjIwwRiIC zgpQw``scaoiuSkmPV9pb-E8A2Js$IeJPpgsMX2%K(B`j>+rot>B}&6Z&-Tf31B2g$ zK&KG1MN^heLDkohIYGC4OTzzQs2q4Si^O|b+GpCY-bX_o$Xz=gh0Vgp2AL0}>u3W|&trL9kWN#JIqOaOs0kLeFawWgde&EX)Kv>weZ%wS7LmEg~2 zUGDCh;^wK)g@q}*>$9`kv)}L1D5tJ9x_2StZxTDfAcKs_vO}Vj9t|LE1=P8CN~T!@ zt~AHveOP#M486E>%zlA*CakwREBwp>Xa~^CtPv(l>wj_n=oxBOaTpt4STVNH*fk=EvEw7N@NA+s_%vljC~TiI%I3Brh@&d(uYvh+p zG3)vgn>_09?>Et#H)^bKJYPY zLFm=-`(K}}zq>)4+nbE?czm-F5{`nH(@4_tbXe)6Wt2fQ zY~puaAI%LsHkb%cOx`6R;UTQ>47KprA~uK}o+glJHD2J{Yp%lv?WRddQBNM`m`$>9 zM(O9Yb|u?d5jh*8Z|AK=czhS-U@>cL_+%c{QY$5BT(1OCyB)P@o7-TM_;#`3Hmrqz7y6&2QER56)(>(JO?3L&hmGHD1kqTOcLSVM=d}H62pi< zvNXm`LpKty2Pj$kVyIxr$-JKs->i(t}tBuXr%vwr=hqakzD+&H;6qUipR)JW7 z3t^DlE`e~a**&`JFuC01){j;|;iDmWAu?mp2nLmgoa!h*R!o+YcbJm*P*3 zs+WMEe!H=cS1U!M8B3N{N?UCN;K09Ky5Jt@&LfI4RR7JG4GSl<X+V}_uU!m-X^DsNs0zy z$|VO)_%%~4uYT}K3PpVMfJiPbR9$~gg80^r|GuPa66@UwgzRH9DdPU2ip>5D?wy#w9Sv3*O?*2}pa z*)>eJSf-tFdQ+L&$uYL;Uw9%Xmk?T}LWl}9izr>2rg5kZ z_#spS`U$@2z028>Sf{sN8VV}BsIk^#NDk0_b98sv$u0@rssj^i%?+#;sqPw&Ee0#9 zRDM7-I3QW0hmc1ieaWi8^rTT*AEsnF#w3oyhUpz)P}nX@F`kB;nSw1_$3Q4&dQEbX zL!#Vtboi|Yb$O3K&xj8%<7M-iHp66+t7Mdj^3MRFl*R!A-iqp0R-f{mZpJzeHm{hy zri^xN1V>K_A(V}zrG_QGgE`HG%*CBu^{nY$EP#V{(T$gl@Z#JSCFMVc`n`YTrA@!8 zL-Hqf$<)8rb|l^^!39x*2u9YkWVahA(7S6jO&mXWf9Q83Gl^YU z--<5mh(vCTG)#-Gz=AWJS`brA6#KoWehz0i4bB_1l;*9(=!Rsa^AhC_@EcSaZ8w_` zt1qg*)7sL$oQO8?xmM;+5?&@vUTuC}KNR(1i^k<;M&~U7rxz);ibT~H zZd4U;jSfgHQWW|LM=GFzCl+1nssLMH@?_@a<>m0<2*98CJsl4)t<1%g^;s+TuIrsU7!`{t80k55?)3{DlkW`f+8HI|zU7PObX zQZ31XrjA>bPuw;!C1|<~ja0uDYkb9^k%4Z?r*0U}6q~k$sFUuZ2E@RkeITLDRzieu z^j(vMdhO_KZIf$eNkTUNnFxE5`Wg>!m1|~80>t)qori^R-s{nAzrR(KGs4f~0k8D# zZ}4zI*OWyNHF%BniBDV90Xz?wU7j)tQV0K}hfw5RAafC+j&;qRlav0rnoZ~+<0#Q%eCLAk#_{g031T$?{XpigsBT_b(J01+NQQ+69Q6h9Gx_ zt!1l=6k)ClCk51KlV_iO&fx+_>{a*{JysoO0?jwwx1EhgbyT&rGj}?kBFJv~y7`^v z&=!bfj+TZU7woG*Zn?=AYeRCzspK*HTCu=kr25XQoQ*))mgK8?jrM4Qgghy+p$Zv6x2N8XrLYC0`t@C@+066{kU$>++#LO z+Fn>8MRXXLC`e5>P=Gh}>k~_>+n`4k=q$``5Sfx|g~piD7c=m&NXEVM(nK|C$NDckY?vG9N!**%RLAr02K2dongK za(1k$^389{3ypy-gp`JFm>ynK9!EqYK2D`eWiUvFvZGXrCWzYj08RZ!=-mpj`#Ja3 zlmr$2Ntph2{wGG{Y#18kVyKKC`rDS^fR%R z0wpf zqgoDu7Q;j;j7(PHl6joef2pQ-lP734$FU3snQQmS!0vlKv~fj7fj|d+p5zx*X&+1O zgyCQ<(k(cs(YvtD39{^S>?Z#D?un6>nX@8;&v&!grp0Y~%p2)+cPPF!22C6n%B2fk zmVSdepDDTz*%laE?SWH;8ch4qOxev6zhx~#!I}4p8-A{W=Lf5$1P)m1GIMh!v5KtbfP_j z4q9HH1jC~MR{wG9jJCh->+FndnlSOA^bE8J?LDvv)ZJT-!(#Yin(kYAB|lr*w}G}{ z1>Uq?X$Pr)O_Q!w5H7UOxyXI=zH9-?H;BMt3)MGr>?-{B8Ula%JUOpeu_2V`nrQVK z&;hP>Wr7uQu#emhoXL$1<8?;|hym&QJ2v=FcC75fyPzGfi(}##Tl$S`wH0BM<*jvW zB%nZT?eySw72(}rsAPv?utogl!mtnCu#g&4+CfiQfY;)`iaHU9j!;R-WdAD!)*vxd z9J5Sx=3Hx6l`a;*RIN!D5OI~U_+jfBF+m$=Ptx4@HSDM|FoSwIPse@ls!n5G0pGSk zx0MSsEw!|0o;5np)Jb3bOdu)N`WO5Pg7)gYTRwp#_CluAXf3CpKU=2_Bwh4ntmSzE z6n-7m7+Y#g?xowA`7nJwQwm@#(wihBd)HkVP>--u7`s5P|O?P@48l6xM}*>JjUgJ z#Nu993ioi=Wh@2TTDah1+s-P~!=ipZcdV^OwTd13TGGKq{lqL%Jd_&m8DvL7Bo#8Q zz_m`_?t&I*9t0rH2N^59p?#?174v=QV?dV~XN6VI+-2cd&m?V3VT(yDgZGI1w*YBd zpLSQ(af);lV#>_p2BLb%^+}$it@VSNiSPzs3h5! z=vMsERi{peM3L(Gn1f`jP~8uE?+KH5@tz0nE(+d&P^Vh6uMf~4R)0zO`UFGMgCC@h&cQ6vZT$-^w-C>asSuQ345F&WL*nNo_LA#S^c2$Du^#uN$)}mVjWO^7 znl-Wg@oG9*gf;*TGc>!qmn}SWR9yfSz$GMM>tufl7(X1-BR6WT6pf`_$Vk$2RzOBY z4>0k{*^!=C#TWe}-?}3iUphtt2kH~88aAd{9+zK^)i3+ZF~LBYzehK6x)*(f^^B@C ze&Cw7(DQH3P5~>Z(Ujed4UP3=bkt-UKU4;POF9L_RYPWDqk+O1gUmoW%Orb#IWUtY z6Y`@*O?=?XfiRxRB5fKo&Pa@liwPlVga;2;BPw@BJt9&17cooVn-B zJ?-8zci^uwECUH7nX0A=eS*)vh6(6FsM{Frp9z?`#YOAq*(ATA4*}H|K-Nm$PBt=O z`Yw`HYf~}Q5V=rAcmE`Z?H`uL%kS)~9BtNtC2~5T2S2z5m)h(I?)UjyFAIk9MlEYl zqoe9!1-A#Dz588TD)sLb-SdxYyKBcwG_KUL`P60qZs%i17Rn1=HLLgAURcf3>#O~& z^dNay3qS8L*~hg_f7awA$8`+@AzD)+yHnW5h8M@O<8glO|0p7 zd%?Jh*P3U7wbGTvM||5-kJCM?Ed97^eBh5|uQ@-9$mkIj<;@X;)qM*^mBdNXzH;lF zmB3u2E%MP-@1z@A+<7GF{M{w(&sR+$jdx&wJ{<48Z0Huy;GS>vb}D7)Tim8q{%Zgq zE%cM^*~8A(HCFbV{*OPxd2M7W*#()EALjBNNQz=Y4jdME0n2&F+NrR!>urVO-WB3%bd|>Tg8rcMJ|_z{guB zD~rW+X3cF5GUwVuQnJ*8Gm;nJE*E1pkQjjE*a&Gt@$ah&=h)>3@|5)*hdOObRC}-K z!*6N{il1*c2(K6G4PSd}yJ}+|Yj^pP{Ngp*cG=s}>e$ysqT8Vr1eoI;_TC2hpq2wS zLl;{O-@^O}BE{L+Ss^YUp_9)oSs*?7+w_RrK?i_Zhu*6Cd#t^tDbERbnKPVPRv{^q zYif$o4PE^%QSFN!rdHgWk55ab|Mgpo3;_W!ha^|NzIG%1hEr;L0EtY&b^=^b- zqbN~M6t(t_pf=ecY!$DIiza-j@_uGum2EH-pE>kQ z(3cs}JbF}gcf~ny^~Kgp)uwi+f9%4}#N6ajq_ag{t;X1`y9)>=tsxcs&OqJ1&4No;@IH_&0Y`b63il8DZ7+vAN-}DNQxVxjCUS9|=~uo8Kt17Dhqad*a6IT454V}iw407||NFGQXoBRN^CjMeoG^); z+t+pbAO3qvX7^I4XuGq*`b%-X^qIAp&IY{?F7LmqA-G#6d&%2NyajIIrd}zA2OG)3 z%SflaOM0gqR<##UFWLF7T#gK?*5Tw0oc>GCQ6rPW#24t#HM=MdQCuawYe#v8auKD% zRPy@?c0S*#!JQ-X@g+gn!izp(28lyQvA3eRrfQiMbrBbMNg+5r9n7JocBj!T;65pz zoy^zxA!%mTMr<-XaW3|)xdd}!l*8GjE<5!F{B}g6wd(5yfvZp1ji&q9LZAB8#K~whzs$57OzCmtSMO_Ag9nk9WH5?`>%TLs zTm-+~!ASCbgIR1@&$CtLL0&Rv9o0NFV|>-EotvAITRSh$Rz>PoY`;Y86q@jb?7N2= zaI^Q4ew)!Ko5n{eWaN<^^fN-nh7+vQFXa>^R4o&}bNctlWeVRrE7u-E8uRy@jrMml zU6(GI`WBW_t%q6BrT1Eww##VTnK(6kpMA+m! z4md-)m@jEJx{Im9KrGwo4)@Aa+~hXutHJGi{21Hn_ZCvCz?u8&Z~T_443V9jk^^qn z?sva*+OWRd<+>1FaWJLgimkLcl=Q|udcT_B#)-|Aajk+pWRe2gI@C;r?c#QtiF%`&wwn{{?Y%7D zmm;z!4jZa2es3dYI&7svUNpG>U0B-eX<~6%=zH5(z+;m6D{M^t3-Z$FO_5KZu(!1U zWYssV&m=bf7WKG#_25~U$vvo3AXQ3R=g%EuqJH@){ednhR$RwN@Ud*?!I9d(=KEDG1-R37Zww zqcjWZ9u_*+JWp}K)kKs|s3`926h8hsswS0G>-X2a@xLCPRI}I<^ZrXA&Bs$FDeQj|seSQIDHU_+V$(ziC~@e4i&pcLCHT4AAQ2KJ45Y8j+p0kX?~@36Io~!Zg7`I=NSJxB~Pd!)ajh3Epk>VFU8b0>J=Ay zw}}m9dwB}Bm7G@TuQy!EwPw!-RD9>a$Kw>)B;;SH@1|&`VKGh*OUp`J`B*%T+I9K* z+4nCZHa2GNNBF0gIwG{AwtAV%?u+iL+;W-C?R-tF2Pc*xjGLbCmk}XrJwVS=fV01?wzb z7{Ojz1tOX7XWaY%PQSc=&mi3Xp1UJ@rgc3;D|v=_hMly$oq@kJR!~^2_Pi@+s*TqaNPKqAyo0zFx87*RZV zU34(z+`5H0d&WlKpcIry>^U42qYbL+XeS8HbA@JlVgf4)7~#dwoj(3EyE19Z+@kY; zS8Lj;%X!J}FSpeC81#?)ODk!AnWd)trO9TZoEW%;NEl>1`LwpPY}qG=zkN*7_T+cs= zc&-^a__gb)BHj2MzewxwA>*8O8X~)sXzwn#335@OBQ~ED>XTNt2k;8!4L1kr!^6TK zG30=NAi_9Z6WZTLR(Z#<=v@>eUqYv$6apGNZ__?RH74o zm`CAB5g!thFU$fEIv^lGQ;#~VF#CV-q-DoC^VKja5`toJQh`4FbFsQmRJZ?Y#|nUe z07j7zfF#1u(8;H$u7$~llD~8(j_e>L^brC;xUo`b0SF@_LsXN&{LkE_C@^w_2~5@CFgG)C1wg^Uw(IabPL|4rUdx zfb%G1JsU=0u56?f1q9Jdo zJ1EdtHN6aSGVb*H`s*4NsmZ;1((cM^KQRP2&Gsb@D?G8z((oz;AS$bcB5N$|%!uDF zn=^?kJ}GjjwSJni8+giE9hy4DqC-OjzD}&Hp!yN4$00&_=^!U3Gd6$&_kp{VoN+!n za^nQ}&gh*nx#s=KQ5+`a6NmhgKXolBWjZYmb^Y{;g#1CZNLrdgn*YTeD}s8I`TK$z zJv{?b7G0$Agt%-~ys`5DFQclLvtesB;}M0yVzYLy|9)#NMZP^wN|zsq*+q8}DcjA^ z{?UANz6sEu(W9&}o}q=U;s(y4cAXY@@@W=SwXU?tW1ik6cjFoh>g5?h#`VRr!52G> zFf{aqRV1!CT3m{ol5u)RGx){ubMd0g_$xz6@(N+849$>d(+@p%6=*A-SwlS9-zkeH z>7$$c-$lApMCRgQPgF8wQSk^qpcr;1stC@?YCh7GRUg#cW`vnt%;(Xb+|!9v9xNGK zm5LuU8GNG9ZQPmZ&ZaD>&-Rdhqz&2&=|0c@okJnYX@xRg`E+_*GA?~Wwp-Hv$^!8l zSx-TYWWPB5(ElY7cz0J~p7X_ZB-x23wFnVWiBLDt%mp6+^xQ$8m3i!5=){TOM>8o2 zt_k=oV8v?Tc+ZtClDPY=Bhd2ucl8QBu|C;)2r=<9|GXc4@(cCOG1uj5p2n?NJHD_C zL9jO6M*F*$lbd8M_ma;$!ZEkmjKC5Gp`^9RY57?T+dm$ty2sDinn^N|QH%!hYZ|Jz ztK=jCt<6(-RSd|cNHL8FDWvC6Z|mfqlIDX3$R*^#^lY&cI$5Dc1MTVF0J({EaQ7bY z#HY3)4^uP;zqD*5%GadijEDKea~MW>K6^IghV*$dh~ndO^t$zpGG6qh_>0613Dl9M z+NTT1CmyDTgZ=b@aj)%mxNIiD%ZSgKo*So7!^GtCA!#&PgQk|2rZCvQpN~g@KKe@{ zX|#7gKPmzE9>p;LL z;lU#f`C9TXEL|B(PB16ZAsNI~R0Z~5a>6}_gvA9sDdPPplNOgOSO9-U78o~jqUM^H z*~(@QVN`(fs$d@PnA*$G8;6#qBFq4OK7>nfFrA^=m#?W1V54{$W&^3wb7Erf@+_(K z^i*)7(NyTlm*@&vz_(Ciia(Dqiw*6X(puU5!@{Uc=5mNnNC1H>gYOf{%gaWv1T`;@ z5N5s;#f{Mf({rn3v!zTPMrok1l~p1ZCR~rsj4y6G$cCYjQ6~4Fp5VaSHbUmN4U5JX z8zY}_gQ*=V?^0n1FtrO%W7c_D(?IP@1JuWlMXApKpE{6W0pW4*85Q`a@0{N#va+b? zV4&YeLIU{sm6z&3qC4l0Gl^Zg;G()ZBQY1yIRC;suJt3@yZ7?4Cv36%)1>eee38UW zRM$BbE|Rj6(K1MWjiIX$ne4yl7SNrWPE$aHDM-Wy;OL+*IC=$Tm#UOTdft0ZN0{wE zS@y1pq{&+om7U@pj!auX@9_GO3d!6U*T=DxRf>+XRVaQ%<=-SlfVsm)bGYt|lb$~l zp?9*4l^7VONcRow4VsL8Alan=NAa3~B$W_$M@kY|rJYNmrfz4|bX?4iVfln3>AG~& z5(j{$9rvEgzxp|!yzKimL^J&QGx-6MO8FySe*7p|(}a`?pAqA8V#sqTShoY)U*5k3 zrU2gST&G{oVIDqi4~gbo;1Ii|`keFe3?J%*gzBanTxBvoQ~TbLZ<~F(!uBo={q|n8 zRH6h1vm!E4qQoynvxt=EDAsVCCS1B`_hyU_8WYb(%(tKJprLclZQulJ)eyNtci=JVaq57KLSwuk^?t@3q~^B9z1eWt`-{N zLh-qC(wQ>L{~1QYPxFZHyW}VZMjjbq79_nuR0to7lT{SW1CMN#_Qz^vo7az${}JU5s+~D@TO7fdv(V!0)#s$ z87Cwr?jS+>3h3>1DuB*Xn6l2o!gAjw4(v2g?($WfnZ?QK>MAF&YK@Pu5(H~;QzQ># z=x@MNQ&VG8Q^E3VO=}i$)K}ZH+4=lMR+o z!Xuww|5>~Lx5#o6a@@o~a*8T7dcilOFu?ygC9jTvmX#Glcqh6e;=+vXnW;KuBz8MD zK;nl#NiCJ~xdU8wHH;*L?;f!vb6EL*>~%l@OD(xeR&#~*PZ~XgPCdEwM&c(Qe;Q`W zFD>?;pYdz0EMNTn!oX3;(I-d=+yVKl_E6;deGkze1WNva_{$65mnbu0JPHAk|DMun zNzRh2xJ$b$MfqA9gd0$<8HZfD81U~Y`JFG^h$f>iOCP!?>HnU(Aw6i=x$5`IMOaGV zZsBYbeWxIUt$2Bn?lD8~ zlG*8=Hf@0|y*C>^!oi`e+)0^uxmz!bJz=@B z6~4GDoxIa>_B#qSEWbhGi2=Tok{JDlHHUQ>pwG*WaiLLt~>^yK3^6}E#X4wA<$lvhN%T*!qzgp~%yK@!M%-HJA1 z%fsafj(qQK5W~ZXTRV1e47$tBBL@0>Asa4I;W}iQY@dVYhx#P}B*+q1MB=+47mkJx zGLQZ}RsM;}*)Y83-nV8bcAXV{DE*8+emi~Uw==95&!GKbD#?_Wo1zxc>m5X)R@s zB7?Y40++=)V!6Imqf2Dju-HB0WVoH_CkVg+d&QCJ+^7hY)SXjdfTE=rSZ{RSk#9IB zYjRSUA<|rkEJuHBlZ!Vt8S6JC#pb6TadrR|0tr_bh8xbtfn%#9lkBjr-KK@g>vCeI?G?aQYUi`;P#`&imD9=2E)JEK=LG0c1f}oFz6+IKf;WWw2 zIm4W~%Pk61d*wapwpk@%v_Z;#+_#bt?IX#}`5me}L0Cpu>Ng{zG0csKNxSQX2L~JC zpwLeVbNGNB{SmSNV;(fw6Ou`pry4YQI)HQD-Szuct-2KBY+{jqn*t7|b(UFWrC}OB zwpXk;I3L?Vg6AQT)o^gJZ&SV?EguOHhRe4fgKLEv!wUdYuc_(xFV0wPB=N3NJBWh8 zEH|AMUqAqkeuhPjL0W1tTC`D0xm5Qh-cn!4Wz7Hx@4WN)uM!A|58*8eKf@C6UHY*& zhIi%e8acJ=cq{(evF^X8?C*MGJ~}f!qmh{JwE%|>LFm8|jM`LYP2HuRs2CFkklHgu zS8i7#PU`c&LHzB;MSbliKWiJr!vkv zehKYkfM0cen`ddmco&6kRR<0C_95}%l>U#4$(`n-fV?nfBF*@{GL{yuK+1!E!e-m z@#FfT)Op$4mWl?j)G)Xx4us$AuPr#I-%6a>9k*#yb^4;r$T9gL$=fcKti7188~M!d z?fHH$yyb<%5q{pxxY_$ur~tkwmD07ga48jcLe@Hzk&;k4 zCuPK?95-8aD1A6_g-Es_ey1_wS-qhb<2!iDVjbef=VA-3tfCE+b%P_BGrJQ<>FN3Z zWUb_?8I=#1?qCLY;LPm>skt^rKt;>Jnv zri3L^m`(9I{W>$3m&=z($g(^B1aoYbl}0ZH?HWr`XhTfF`15D&W~U8a;431RA57^! z^qz=QuPJ2w7|&n+Al0nL{c!bA_euuY)I~SFOjJpqxEC(?$kb)aaN2w?xdMXi?oTB< zn*wbX=5X>>l?ObHrnZy!G&_a!W626R+@TAf+kAHMWjb@^rIe~Al5I;|bC`ZCO;r?n zxyUZ9ke}@up8t91#=w^Yl~B!aaS)z+K6O1h7oF2=u&gLX){3iiS{&f(+$-|gea(O$ zJA&?uIBz*$zbLfZH|f0KX?I*iM(lbXUL>9r9-4PI$hhbnqs!iQ|IU~3G%f12d9LdM z>(UeLuiCi{x8nA$^X=O+AyJulaSXsQJOUZ_jiny$j6;0?Qyzhbj&T=$IXa*Jb9ZXR znmuse?)t`ka+w+4e(QgH?aNyXWx1P1AO4DrBYQ+c$Ds^pW12!R^(q}vzTb?DW@0D{ z|0$ZrB1pOvD~<0Gmhgs{xq!1XeTx^d-LtS&kz`GtCiTgjB~2JpgNq1@op4UmFRL&r zPTm>pW0>)~aWSh8MY{-e59B8W0TN36F_coW2LYbEVTrXI22=#~$w|rYzw7D`39Vf( zJZ)rr+w@3G$K)O){ZhVUoDSE3^4L4j$3doqp<&{`r;KTq-#IR_^5Vw}*N#HIi(7gW zeToO*HoBW=us1G!ntLy!>^yqrtzo(4G4-f)OFslP#tjJSJXyf^% zmsxVfNF24 zLNj;o-h}Y3q|mhvq#L0+>aBeGBYEZS0qHqdoogyxvgxKVVweN9(INFzR5l`6y@Ly9 zhtA1x<_7!J4S8;)DL7@6>3Q~RUzUn2+ITKWk@koN2`?fevT{1UynEgSS6DYNh@72t zRfUf{*!#*O6wf5x>B$h+9BH$Q)bMvs5Dm^)oDH-54FUW8;N_{)aeNn%aBs5AZ+U2`WcO5 zLleEn&Wp}w1>7o1XXhdQQzrS_Cd|n`Ek^#E3ePWL+WVs}R1c7djZyK~)D|2M*iDdFb4ErZQJCCfzk#>nsK99HVa{ZIk67vVn}VTjJKynD zgXDRGCn=>-j)7!NWOOmNNTo3Io1}^2F>rFi21YhH&{EMfKwOXKn7-io^?%K7RK>?H zm6}X4;6TOT-0j;)wpZtNY&*I2W&!RQlG?c|3BC`$#9vDU>Wwm zOpPA~FqM1Kh1)#wCznhC|DKY}pnhVCS=1hZ2tRt$W;d%O?z22L+o~YAY`#U=1a6{3 zq3dX)YgnQC66H@tcBJGbVL}2Z@iQzlRYqm17`H~ zhN5g7BvL{S^A=3&Gh^}30lbG=94nZ6#nyIK{Qpw_6JRKtDR0(y^DG;oyw(kh z`HVt6J<(`Qi`V(bE-Z=VH@C90rrHYEV`kGD=Ee8I5DkL2*nl(YYys;>2+;y&Lpci%NH zvNW62V*H5FtvBm&`^JRCtwf5ocCIB3YY7wYl-spBt6Zm3apNB$y!(NluEaG;N|oJm zO^b$nFFyXL(lyux+mn>4yZeRKai@ysSc`hxrn}`nxF_N36+2&`Y&d2^T@(OoB@ubUvH42pbK=^Bc! ziRq;^8lmwc-DW&87w3Y6_~zaH;;cd4HZ(Obn?86Ox9^DU)_CCdv{-V=`lWOBN%ONmJu{IgZ$+!7Nv)piH=x!Y4J)zv^ zk)wuN2K{&@Ge>u(k%|)+QbSTf2qG(oLrL3{?e<02w~$w+5K%V`G+g zo2XGE(KaD&1+I1uD!%5u)h?Cf19-b{v=~|*RAvV;YG&tMbB5P zxW<6<6f3Ox3BR8?d;0ftr+b1`@55uil>KmTOu1DpX)N z#HsMn{GMyqE1owH`=~34(62f=iEP%wQ1q4*?o zi9S~)ONAM_m=ZT0k1b&R?2zlWQf>uE_E4IKa+b+H=eFtWwBubrSzp&fbYsLeG_+V= zHOYJ_cmsPOa|HKdt>h4RAlZC}TS$dJR0Hst8~$S6*YBo0;H_x02#0`cy^*A^Pgq~a z5uYNR7)&p7kasg96_^ORPR=mc-g>1O<1b=Z3^icm}4rj@hilGqUxnols`1NH-=_)U!#npMeM4Lz1l|O3DOL@0z4AsBIGDDn z5&#fMof52{O#x1g!MhaZTkMyXLCB}Q!ik1K1v`j@l#V$U*UH7xW%u(9ME+gnrdwxk zeYvEknhR%BTHOd|o1#lqJ;V%wXKdZ-y@r~CWnT?i9&2?P(xZf;OyRwHLe)!8KgSjG zE1yeOy1M1*<kFu{W$KG*>fUxPP7_L(D zddE#yPzKk;CcSD0OA&q9rQ!2ZJ#u#>puKv$o2dGQW^$jrlT{PRz*wbF=IIF@!vxul zmz3{7ki08sOTiGy_ty16f~*;gyL`$vaNmgRpSZc#?fz&zx^K%_$6*|Ic#O7G?FJEmRuG)CQpxpWIChC5L1kNHYgjX2kh9(I?gq$ zJ6~Xf}aDRUy!OAwQ|eYuW_It!O+wmRYn{lxJJ^>_I4` z*<6$Tqt3N;FUHQ8bMG;pA`&F$b%8FU{ghmE{j4wA_&`Y32BRyUHJMp@ zQ)v~Jx|h$%yna?=@JSFe6u8fc?Yd;|7!$~P1^vx;DmFK zMCydDpq;)dZ8GfBZPuJeo0(6@OEH^)RR-*@3d}82&fAu4SRrJ3;E&utUdA2hdOZ@f zH!h8hxOOTw+o6leF0Bqiv#5;%wk*Tf6z z2cHDm_EfpQ7Y{b1(wwVk4oI`WpCZlcjrNntPPKSCF&zr(Ffnz1@384vuxi_hdvocU zgktr9aN`!D;x&A~x9Hr55V1?4_!ijL+D%-wZyIM#$*8ujN5B7ulI-tX^ ze??BagXAh`(3JXYt-8!c48Lt(WFvJRY+ka}GHnFj_LTq+6jt;z=!KG*$;u#%J`?#+ zw^Y5xA>nc5aeB&GXH_Eyb?f%4i#hM@YfjihWbHqYc)5raf1x>8!Gvrlg}A8<5=NwIx&T-(zOEd?;(EJ}x%|uCE$S-MpaFA>^m6TsCw!im%2`5^AYX zgls`wxsO=H4HdyDXW@>r<9$TqcflXO@5@fYdUzX$yb8@Ga|XW)auef?510|NFp{Wv z+@KPN0M%|%U(dD;K;F^<)_xNhN-f#Y>SmyX8;~&orFFmp(YXpXX{CeH<1We77a~H* z?DKXI`zcm6V@#X zxRy!u_pH_?5iWe?u39DZHwQ;!^Zw|r0d=MbWR!3m?1^fXvW zT3X^TMaiT6i4tndMoH7I06P`J@<=c}xkO@Snb$8s{{+{7Y%Hw1HL+C*XiJm(;8qYN zill$VlxPq3L%FXK6H_b-H02CS!Umr{?WJM=raI9AXNUS^IylGA&Q6bT&)Zr_`riCI zH)Lg)GS71cBGoiZ*+k>IE*QXu?*orr2isWPEsP#DYJG@^U~X=1fl)>H#gUO0MboBO@W=pnGB*n;M~|j0^KIn<1=gMn->?yIeG-d%wcV(y*|#?0~5nTcB1FHZA}h zT#R6SGLSa~wZ;%ER@L}fDg_~G{1fd+S_;rcZloLp{GJ-3`V+)~i}tJ%YCl;l%DOki z?&szw`8wPfQ?6K|7xX81c|jq2Z9j=na%~G)g^Z-7vFgY|Y~8i5E!LxHTDsH*-%_P=%cRi#1JKI?OKG0h%c z1B#VD(G9l6&;M_&epdNcu>iaXR#hQ!fW=r=0b*R;&zhsr9x)WI{|baCVH$uN(yA-R ziu0&GJfC6{o^PWiaCoDchU)7o!1FP;dNsA4KqM%DG&~D^HzpVR6K<6Thc?9YrLnj) zyvah9%m1cdT3RZllf{w-FOx@Woew%#WBx3Zw|=5kaO(Z}{|cJ*D1VV%fdTHEaA<97 zXl%Pf%|{ry>c5^A{^5fLL2jE3LuP$R606||E5E^W>tVU$QjLuGW)uvDDO|y-E5qr= zx$%1{SDM%|npw9N{00BB0Rh*#b`(^6OB99CVLrRT`XW{ko^j({Yfu?ZU(Yhl1gfz6 zMPI?nl*^Z@uZR2yjCOiNk|{}Tq=}J06QIdi0@ug!iiy}>zt{TYVfxB`3uXkL%g+>e zzydOls${Pw+;9W0WXj=Bk#u@Ij+(EVNlY_0H#ZA-JHdJkzuMI0UyXTP6dHbU8KZVs zc>j$~W4L9tZn@n$tGRo*ucV>DCGsL7BK(kN{Js=!~EEjZrJ2bWLBt*dzLT^J?;zs;D9xzn*={I+_duY_!trr zlZHla^m;_-)4VQz9Bgo-CB4Y}SRgCPMx0>ajiW(h_&*iTSRKV)xxw?J@btLRb~IQl z{Y+S}NqOq-xKzpg1N}=XKC(Zq7+Gyc3!%nsPsDJAi@VmW&G};3?tn4cMHsNffUR@o z^dEqf%(iCp2aWNWo+t`%GiKd0%mRr=*M+6$jt8VaNYCN0;wk#|E9NOl&r^Yd`vi*5 z{FTO)paPY?@DW5!Pqa)l^?h$K93&Blp9UK(oKjP@$tdsX; z&QOwIXN({)dHWd=DvZn+(@k?1vq+NQj>(!z7Gc~$FEib|ltW^JJnS_f0mBQcsRH*O zjWN?wVuaC$kjRs4iliPlQ0Y*0gwV^_0pld^_^tk)J}SWSN8^4f0hZ4B3BZ*Rme8VE z+F&_l*{dk947)860VAGo9LN8W)S#lmiW;wib_FHqZDp?5+bR)sV^|i?94pNl)Bu%q zj1d@GVTHzLo)G!t(k@2OPz(G2DVB}@6yazt>V>7HS%b9K zi=v!d~gk=%Ti>V5jLK&|Yrzfee);Ed(*{?t)Fbqg(Z z94qIgsJ2*_u?{|vG>Q4C<9->mw6t;J|H4nL{9xI1)9IgBas8i6BB`pW>87&mY&h4n z+ArI{TB)fjH||y0?g0B)CcwNyN53x@f7R>UnN|RzYgEttOS9*ejS@5a+ zgsWFY*#4vi^)u{Y zESefr^!Vi*dP`j-rWU`6ec~(_#%J;T2d95~8Z0^>EfZ1+>lS7af_9@28D6MifgJr3 z|2L7D+kTRZbp-X-hbYKT&GQq?)Uwo6=tca4g{L3X_5Jqe)85{n8aLUm>{Y_$?!~IA z*-|#RD_5zWg*lp_FDNQhNXnLcg72g+cVOgs{bzHKW}T+gM@98gx6UNhp=al-i zU3>%WT?^kJu*$zLBLEjKvTg(=K+N^HDiQT(1AbWONiv>AJ{Yb<73j>`t-B^1DQ@(` z&-`WQK2ey@(Id;gDh>Q;EKq%>V7xtd6M9_mc+0kC!_TkTw_H+g;so$PHi|z+5QUK9 z*5TzpN#%VMR0q*A;tONKK)#gEc}O)hE)W#`0JOD4;oOBTL@l@jS`` z_b@#>$N+vfPtxK1OT0 z#=Op#H89(bO+{@5jEb@b#KTcv*S%6dDbx&+3T~Yhw9H!(EBbM^!n;!64rc%IX@|g@ zm(dvs@~>k9@K^#zdr1wBIa7&~U1N3I`#^!PN`LNwIvc;|*{~snK9vcRa>8K$LYm+E zd*IKSjs*+NNt#2ZRAu_A5xR2Ot~e;7R1ax+$E}9QJDAdBShWv`G(s^W7~6i{(qFJv z=5Jp^6H%;Q_!{5Wp=f7XHf*-LedjWO0kxC8U7*=uG)2_3&Eg87t_p5@B6A|5(pT)&-nqc zz&S_o+U&q#sq$H;4#2vdeXy)nP|R#|%uEhZCIV3!53@167c?yJpg5t#R&KIyv#fGk zrb94rrEzHZjm@zsKUdIjMpo%4%QXDNh8(Gmz^OD2y5(dwjVk)KA&H-3=6xkLHEoq# z%^y?zG0tv=1yWqhD+s`bE(H?%5O*cPhPb}Mwgk-HaXbnjPi{j(TXW0qg1%G_wl+#~&w z3`>5sLFAsd>Ph*^aodq1o#!Z?P}LcRlN(oV+UrKWaj|;ZirMcqPK_{_`@tUCa(Z9s zykV4U`G))}I<4e>mvM}oWgp+$YbpVIxfLH2C{5o?| zLYmMsm3gej?fXHPiztKQxfN&xo_63h-ZN5e9C{N`1h@gZpWd(Q1D^+z6*`7!q z^rT!f^W}WEl{xsG&ES&Bicq+XyCq2!gs^l_pJ_Yix{k!Yu3WTfGSooi>|^>}DPS`q z-Yb>b*UZZDusXs zX{6=!S4xhBXJmY{y~AhUKlq0dnAq{4--X2?6IyY(m(mbEA?&kLsRe{P56fN!8EVRA zw;jg3-ZO3{R?J&1#$SR<>;qyiVnbM3OMUmS?Ti{iUa@ib-W^(6<#Ji8q-**Pq>cLx zY|3y4+yf@DkPJZ~&a;4WQWs;dD1+`PFc{h%N8;U*>Li%E5fnw*P;l@%P$9cUj?ux< z7D0E>=pS)WH)%F^S+<1tmgKnL+F@k-Hb5!dSUB6l4$cFYax=u5Az7XI`z~f^GcU*V zxhU*{Q0jJU-ktuhxi-e2DI%QD#bS2K@`Te7BfyM1--tbw?K-!Y;>q_)BnLO)2tqpL ztp9t;GtVj^e@MDa4`i+koXB;uv*k#b>sE7&Vu|Y@?Pi2W#D;yXH|k+sb3V<{{{G`{H91ID z2S|Gs2`@Y8l$RRXW3s6cylC%gI-QLZiZUaSf*}kGpoaZ0X`yr7xKdbEX{1=58r&{7 zASe`7V9DkvW!E3ht{%)S=v+#a$x`3_%s9I%(9bxOSi~fCpsPY4n+|ng^5bgcNOE8{ zkS5>bRJ@m$`bIkFa&HwJ!Y;ToWcQeJ8BT}jR=L0+De_{biY2xSO8tzfKlUEd#A<!6k`fjZm<97@S>-SD=Ui3d^GKG z#<%UIG*nZV<`65Y)MQ5cXk+YKYSVj@m%;v!S2&<#8b@RBjGJ~{F~S-a5K*zBrWQ;A zJN#g&Jk?N&J_oBcKLp#US@0GU1uXb-Cm!OWL)1y!b0r)0m07aSrEQWZBrnDuE+_^$6E>cp*lfH$TkWEB zp^uU6>twb@BV_H^Zo}G$L_Sm3wDZs8M&AsQa<-s;eZJvxs8rhs*&A<(Jx;Z@#SD0t zS(bV@%J$BjapjxR!GU|dO(}FtN{>v#ABS`AJy9s>I>UmD3)QyV#o0JTl%I6Ag&sPF zPGgVdNf*hSmc7RIx}C>@IFC55#BNO&;qs4giZSSq-OK>;eSZ3J1yok!Cy@b;no_rJ zIVbll59^2!=6)0oiXBiWol6JBO!eWCigLYdC8wYt=$efg1pq2Cud2T<+Z(Oi? z$BGS{=`3q*7Y%QsVJ8JRC1C+;{v6(j4We9AxtQ7v^S?JSWCC%jD!6{8p>lZ=g3>OL z!wTWP(8}-R3`i3lZ8ekxOQ$>-LgT!~!_rcLg#pQ~-D7TKVOmw?cXtmzZuiAZhm!_0TBAB=+l$dOquNLr343}hT88F5+Orwp5n|MWqwD)?-1n6qK_^qhh z7MkiaH(V|OQ?G!(&Skw z!i=?6PqRqY>EW$DJ@@6<6i?GKqgzjmJ$J$EG<7)Ep<`l9OTOPJUBT&SrT~%ge1*QU zj@3XZX1X6`F{L?>Sz!Rmt!aX+%~!yEc1$p?lf< zr_O2*l;{K-AdEQ*6Dm#5>IFYy;^v*!`LqmJ+tHQ}UJ<-5AQx23+uIxPg}-P3na-gV z#}6tZ6&^t(Jh;9w#j22VFhQzKF;$3JQA$Q(qaBm!Q|&0zku*-lSY~430uF`+iQ`C7 zcou*3k>J^!)N^bF4kln)L9%|5a*Q@GUFjS4U*XYl|LkLeXv8?G1ZYGyy-I(d{xm#R zoJ@0EA=TkVLY_%rrhX*SZ`?!=@Vrt=HU(O3@(#2wSmz)1=uiEklKMrd{{^@#to2W* zxIm$QK+<)?RJCHX3LGq=!ORkBoEYJ(Uvk7mZm=!*-slde)Nq>_D4wk^_LnY}Cy4fa z+6R`9Q^rqk+;F%ZS?dtSy^cj&Y;n?hVQHqesgRoeMC!T59vjHB|CqLY+o1{O_`T(M zt-=Ex(CR@yxeeeo+q%17fWnLE!v4&4FV@~(KuO@ylvxk*6%S&BI5-n8l9r!#RvQOMN;yc~cDGg&w=aS56l7F{Jn#e#q{ z&c>DiIO&=$nwlD;ql19w|6eNyQbOqYpRb5HId~$NxBuYG+0}z&ULHmw8-*Gcd*RJz z0yH?aUy)PIgb4t-`WMM&`VAnb|5^2qw%lOAvJkG>0;lpH8`Av`pt~Ts8=OXF7YJC( zbR*%_H|h%cbkfiUML|a8#YU<>-@srn2>>hx41fiHjPu^xGe(FdP^vTm@PUnw2XDM6 z)`P`PDLe;G=E8tey13Q;z;uA%1NfF>G%kLN?E(w~Gd316zKiNQ0Cih^hFUT&;Bqu* zb+B;&I8K1;{)gRwL7O@m_)!3T0LK8_#T;>){jVpVx&X|aHpejn72MGif1KCDBk5#!ocFSzcZZfoev*Ms$roohBg=CcGiPCH95cj)st z_mhmF&OOjvu}?j>bDt&l=N>B%Us&vqbI36N&I>U|4l7ELYNAndac#J(6GFUSEX{r+hAX{iOC@_1+dIWvbMh2t%J; z9xoqsIs@SOdtM~2#=#$`9Qu6$wW36!sc}ME>~aBn0H)0>0wR?(p8RlM*RJ1oxTo@M z6Tnj4cqs!t-w6p5Ej>=j(u6E}5hT*G4qy@k;D|e#H;g#6bT}FP#wRszc;DfaG=eo| zH1%k~HK}?u8SY>ovJL@63n5{Wt>AkxaqtP~<;t^auh;dcMJD7#>$@;0xUa`P6;&D} z*Lvp`nK_P~aMjCYqco7599M=9ZGZrXIecwO z-9tgNn}_nzmd|wEhLNZ-SKTS?2UVOx%9EH}KeMS**oI!xOMy=94YNcu`X?{DHuQCe zA0$+~c`A*@4WUWir#-iO+V(jO?OBkhmx)E^_X_2IRZYjFI^o_JS%!MzgpbeYKwpebQ9MO!pus8(YErE$y)Dw{V+jW)zYNtUBcInK4sS^-{- zO(Ho7vatZi-%0joPWD{pX!=A36&mc(9B#BfBZHOV+P}uf8^@X^V&ka~K;Ak+uDWnRkjixuP}o7C zL`g8{gbxTUIRT{r@MwT?V9?qrXfs$zASwqh^row_ZurNpQ0)QZF05EHY(){hs}&Ga z_(2RZlIE23vR#cByUcaSEl~NoUlA9~JJdlRKh)FLLH`V;;2sYy@_EnUgJrEVVWdl3 z>N0#)h`!sGVgIQr)gYgo&i2 z7{I0j>P1Ga;{IS;iHrEuLOdWiGaDDZyN@~+a+6yc`=X17tH6*9U!Wu5y#8{K+!mFGuSOipD-}Am7gMO0mR!| z24jLmgi%w=25`nm0TBoi2Ad_R`2c12t*v@9_Q~^^DqQYRljb3K&kAB|TUSu#Q$?2! z31ZaM@zyA{;^6S`Dj&f)Tj%VUmgnRAP0S$!Ct}V=bfGW1eZ{+Sqhv|X3oPSd{ZjrQ zK_2bVq0W!upHM3)DN~ukMSS*}#!zg^D9IJ5bzV&JY?6HbY#$W9mNU7GlAOWw z)*8jun$SDgNo*vBPi{2yUZB`U>~bM`B5)~60%r8f{Q&}dBx1S)_k;?%g+qk-1eu(w z)!Hzdny&|COe*JCrrcAiUCduPBkMhde2zHgel{L9BZ1lZTsTq;k>=kC20B?X-X1E3 zdG_Q(f-WM9|3(CNnJd%^Yn#xf^4p+$Wa)`NDr0S}XL?ErD6 zx_F)erbTbaGTAD)3v;~|g8hYJ2T78EiscJGC&S{8{E=>MZy$?&_tjx9C_&}~u}roQ z?E`pib`>U$InHIz+N+x%1#fLbUBap2(;@r>{X%JJNcvSF165w~1&#oRbsc7*!qkDj zW_O2sMJ5^q?ERG4R)+`IZiI_*F-7UZD&X`1A^I zcd%kgqp>Y0a+Np0Avl!JGV3-Pq=@I%82AblqgJ6VV#j7iyP9pt)Pww|Z^EyJ&^v1# z@$@her9KK2&e^>SqDQi#RVeBkqD;-$*yg94K9b#{-w2NN#!FMqb*t5?5a}|*i=f3d zq*Q~zO`V^E)7m`_R09rt;D(R_9S-pbsKb@;I-n6|YvNGpsfR#Hg#xCaI8x(kT&Uva zNGjVk36?oJvBR#)su}%NAg1BpUk-EQ-#6b@OBd^g?E{pUutH~Ge z=OuY%r~fiPb>Fr%#wJ4_;KL{_`&F+C5L8AcPl=TQiJe|4wr5j2dP09zm%cflT z0HMQVu8T6IW}e)@oDPMc#Jgv_&6l;CC$M}xn3Ng`M1)9640WM;b?mSF?y|~i!NN83 zEqCKjmYZ*o#tt`7;(O_e)?axOuO~A@1S(jU$8Pan>Bfc6>qZy{Fz4ka>gk;_Ng0UW zSEHtDenQ;x9FCHBT?cYlGtb3N_*Xjd#)9xzCXWrxwUmWhZ|XFI#9y4S3!CDFn!%cR zY9S0*{lTl|ljVi*HvV$=C<~P2Qm&>E;G<<6I$`N>{G&rKBUqvMwSuX!aV8=B?r_Sy zo(SYv!I!==#^GySR^^e{O|h5!59v}zvgRyvUVr>$K6k=Am-bj*LOiDAnDlwqhUD|A zMV#f3{<-Rm{8E49>PWIR@GA<2>!2#+?6Cesp_ z@}RByMNU>Ee4T)B#*SN!qs~EWe-dtS)w)t(>cfV1nSMA*aKo9#z28A#$NXgg!Mx>o zyARK(ON9tw4WrJ9I?4DnFyoN&&Mze6r3ARQ4Q#j!$aqFh+_eZ49Z18%vhAeuZpD<- zP(DeL%}~sVh}K#IauQH8JgMMWd~KpEDPH>$3%FgaZqaH`e`jhOz0il05C;D$#anh_9C)FHkHWHv zSA|un%xH5DDkxJQP%}HDZzRk>R4%l)z8N2mtJ1*cr%4GfPL4{v$q(MCbikPDsB7kLKL`NMJAD5hvfm z`wCN-SjQI9Tevv$&^ub&P}C8ZP(;nT|L};PAF3gbR11_`T1{zTfNnW1V6>6juQuJn z9Sv4o(8k8#Qna!XbrzaRN5`_p*sI$>W~{U{tHa8?xYCz@Hl0@v%}g(1+4Mog^1*{T zM~2JZx0bw~b|TQXcmw>1qB8bysazG6qL8>Ca&ARF@iH94?Ai3jQdE_*G8|c+35>z1 zZHb38W6O&KRVWmKgM>`*g2p4b8frNnJ$wzMJSa707$t8HM_I7&fi^=iNJkcr zFIW+Qa^!??Ymx3McDg}KHrYKiC8;Ao{KW_} zEf#6iYMv>;42lJs;3Qe?$D)=-UVENoV1G7trj#K4Ia**1L|?Fh-lS8RlSP#fzWbJf z*bTe1Rv|&$1S~JDH$H|I#}Cm&5|dlWnM$jTE8+F_6bu9=mTNWE&Jv6(L5%BYYFT~_ ziF@5iN$sqFOi?4zWpuP@sOh7o1t@OjB(hrHTw1U7mWaNHSy?6m5zSXJn+*GVE7)7P z8WcPG`;uN^e`Ir=wGuU?h`^|Bg1K`_d-x7y((nDSO5ZDQ=CG4lc~nSuOVexx;&)OB(T|(w3LHZk4UNE`G9Ax zaK1kcaJ$M|)+)UPs9eQR*%<<@BXP6Iv7LUgf5f&inrHGIVLXqK=7eq`O1=8 zfUt;LOWcDbA`6`(kcByMKurqmIox?ocZA8u0<%7!C=wPVsAFlo*xznHvrWK@$8Q2n zBuZaQN~2UCR=OTaRk+;q`6OVAk-)Cf7iW|g!)1sb)};bvHu4PVWH&091Q#Le!whZw z){i1m?BG#1ta;zuC6NDYXD#Nb*=okZUZYJxqd0|_3NZ?Q)m(zUPo2;>3{o70}gg z?dY9H+#uuZy0S9XLRGbeWZI@Fb%7K?sbTCvmQDzlkv$;k@%?;D@1lhKRNw?~!_D`F zqSZD|wbs4Ph?xp=L+m$5bagTq=;QE7=|{3f3qgM$L6el#ZNbT|b8!P9q44KCv^I)7 zx*J8+LTmeUOs4*n0G4s_H{6%{IJBRnY!Y_e==Y`jra9q0(yC;Sz0G%xOE=!p2WeQo z$i*1R#!5}+T>rZ51%gwTr^DO1Q@{GAV{oDEbD16yPNo zd7Ig0xh0!DRtU6U!V0DBm`&Xh2si93f|!P27nq5GAL4L$!Sy%1a5CHy#w268+GL`7 z_jZbrLYm;BZQPp9j#(;6BNG5ovWM~)VqcVE zmEpD^3NucUn#|(a1TT$${~rz0$d-@xzrOY8kT2utpy}wS|8cK+iI@b{!5FOHM%0ir<%ff!jeL|1kfQ+|7Y#7v9GHaqx^@bwm1L$0Or9pyQDu zv0D$u@-ub~i-Z;rmx}srm_Ts)RyfcV&jk+!2xqh;6t$F1(gnb-nl#x3#0B)701rzA z`%VgDCyV7I%lJ-{3S)?De^4NR1Pi8M8=wpM5rDV=VsoMQ1f2Fh8QT`3PaUB0G!`57 zRfs4TiU2gK7f4a?&lg$5Fqq*~WlS?6@#?Yz){Wz__LEqk!<176U`T9-O>2zG^@`Zf zToo_Zl{J1}DmG(mYF>F(VHAR`vO4;DhBmG4_;KC`PKT0qWbaQmcU4X8WZqQ4S9W-v ze^s~AN_%-0>sg%MYMJ6_%qhPcC#|H^J~R2g;Z6SUOJwOOa?&;t#;wkce+cR5*ozHL zlWO>@Z=7oW*K9k96i5KTmRIHi99H8G#db+3#Qe# z5gVO+`IUIerDFsGYxqDAdL{W|;P)@r%M-OHnzW5l9y=~Id59C>67YUo-s{&)0^;BJ zGL$iY=M$K4AX9i>cAz1Cpp0;`!Fn{j>Z}Ex9+ST>9k_{=8dZO!Ivz^Z*RS|rmGE^_ zfBhF5Y+Ip3`d*u=bZ4S3pRKWrE+O4{rWS>=%Vd$1bkS6IZ~5Yk5`Gk`h6Qpj8wJ3; z+5R^RofpqR>c8i>!&v9 zkU2B56FzNs3_pOfgMf?>)!xcv zUe4ZNslxTUYn)eJ_-XxFjKwMFt`7|W5JZcgcP9HnXGqADNO z65kR6r6{2}=Q58w&qO5}iJv?3{=PK(&Zz7-9>`Zz-`2yWRZsOh(|=zgg>NRBAbvg6 z`F$zK@=4aG_eBOLK#6zA12-!RQhYNa*ll82s3KFPXPO|=ExtNs!RT?I4?KQQ`{CQ+ z!`uvCF60o`p;0N4RVzyrHfcCpJKrs!#%{j#P*!59>sZh~f zpzp43R#sN<)xZ75p9(n%g0CWxfH)WZ6fj^mso;7+c>RpVwR9+O01D0p1iP^c0&7Ku z31|QwuXECS`?y-7NG)-g#!*1itEOG@;0UDU;&wkwH?F2yD}w%Z-Pc`cjn2TZDzBWP zy}i~wNkFmtLs`kdfC0eOMU#DNu#3ILDrjHuX6%HP_Bto@)NcsoVo$LZ=kYL&M9vTE8z*WHT-d zomZN?D)R}YsGR2dC}s-_!L_YYv~H;SRtjO_jW$F{`*qB<=hstSPwoa zaKej{@aZNO{$D!azrspz@%@yPYi`q(4nJppU%JdgS7@lETc7yU^fdFF($=)rxVTWt zEQTNqRVw6?u~*f9zjV)LA0-jUbM9ZANMV<+sF8jP(DX8Do3!3?`g;_P<;K}lIB5r$ zoO^iSfoBZ#B82ik_MfNfzt7e`bHX2F{3qH5JdJ?n3!NW@N)$Ym7o534Q+L00eS?jG zyj9aQJ6O8*(IGTP&rTW6d5zA>%wJoKNU(9y#w$I33xth;j=NB+=efTx8GLXBSe`%e zH_7U;c7@G-s{QNbuH^u-RKB-CWBBCR6xWMyxxT<0 z*#7TUayQNvu8*_*ZmLr;JI8|Mg!)n;lk}%O4@@g5Qs(NJxC41zT8#wW`*WV(FgAoF zia$!4))SVT$^&*$p{%oEw1NH4WMG_lF&REdc@p`5PyXXTyBw|pPQU-GT&zBc{PW`9 zZRJ{a|9SIb@j=Uq)9K&4>H>KV@cu!c9-IHO36R8MfH2*^Z~l*r+1NX=`D-1EkfEL( zI8EMB~4p|JpS^K7echGr%r(2v!FH zy8}$eT4=MX!Yej}1Fwn<4gwuSZuN3Xi#PNbncu;sKP^4wG0CnQ&q;`6k#zc|N!LIl z5T-xlvTBd{1cWh=~NmEcMxjs^o}IK;*20nybs4@bLl!d}73SFbAq;gQOPmJggao&2drn$)f$ArdFKSRKo% zb19$?JLQH>yHjW}?>Vpd>maGwnW=-R&s+bSGXG7kJAXnL|L=4I-t}gr4A1`N&ne)@ z-HL&s8C83USm$l)m6+wf{~nrfdVnp)KDwEldc;G|Yw*MM_oa%>5@f17@WZ!aWzR#! z52dn3!o|wgwtgvwB0|Z2ef%Y_bI<9VV&Bd>!QBDNbF3~99!&(?2OG~D4T5Y1qbWl? zJh!qW3#lqK7$?TLesx3s(vH0yM^5>0YTfPYNmguFmFCKsc}t|A6*dS|$a^f+ z_$1}`rRH<3@{f~6TZwHN9(GSY`L&$#Xzl8q@=zsW>3=pT0Wwz6*G(907{b4){r4sG z?@LbMH#gdXOi#kDz1}_F?406PZPHNtXnV_QZ)5J~xoQ8o*UM?YkNR9;`Zh!^`ya%! z-d%A>usd*fz#?Jov_lWg%Z$rZn^fSncS=d88rQY5g> zzc0P@zZIpXdS=jVZ=BrG35Rulc^m`C1B46hO?XN6+Hv?3n+Gu?{*5_{bUbAGGFm^} zJ`_cq7udMeYVj_WXOog2=IKFpDx!Nu&-F)`A2@u8FR#MaXqgvbO)?pYM!r5rn@C5e z1Ba&pWo=^oc)IXNKyo=jBiN=_u9K`?<;Q;7)ilZ)7W;ik^HWvxapAw@CS!$c)EDq^`kJ@Ng5$t%*41tzd#1>mX(c6i{Qh|b zJ%|vV3Wp2r3O!O0{C$a_keok%K;ZhmX|p@V5&`4x7Fft{UUI&S?<^!Jow7X z&$Q$wEzqfidsZT1+1#{Fp=c6q{CM$GtA2{07HdMkTZdesNt#TnG~e-&P*9ub@gm7d zr;IAo3AW4s1@xn-6c@JInb%Q1GOOn1LkKKI>|2QYc9WXdvl;vMxy~utMtltN=TlZ? zgA~)nh+c%H&dr^Eua;K_>C|Vx!aIi|Ulc^WHM`*#{;QL0J`>9%gd0%NgWZXZ3}48i z7%P@YU*P_IN#mgav91-U-=d_7!{NAQ-gu>LL1zhFBRLiIIY;FKC=+R7ZHuqdC>xnjeaq-=@UxfzAunZ%19`+1E zy7y*szHy*h5XEPEd?wvlCA0xXoFwN|A_VgcIA1mfDS?c+2sqjk!IwT}z{tfr0!U->_3WE3pn$MSX!-UGD-4z=KwyCPrQrC*vxikRTX8+tK&Be~P@O?&fIxg}!NX znrKqdz4!U>CZWA^wSFtM{g%Vkf}Z4KiB})CLJlTQYC~LNjdf7|j-(n6H@n9n2U3>L zrI?0;^z~7Yx;#UvMme8HSUuG%UuWNt;8Fz-j)bc#otLJ4EZSt=fXhjBiF9Bi8}hRf zZNJq)2`80ahQTY273ob^1vP?1KF&HHGv?Th!`t%dfByRB@mGQk|68cc&TAsrWA89vSRp-DrjH(sPV307goLMcwf0ArvRGjg$@-y3pj8d!8{eenh&vZTpBe2gh3vF+&~;? zElTwGbDS4AYc$@@v&Mi(8*;`!lYYfuDel3~u`QdnWH)4^w*6ISldbe_A+ciLSiX`Q zvkv0Hc0~GTWj*w54Wn~;GQ7_Y1_?O@Te@ReCxx2R^62QMaghpPLe{SzPXf~Sy?yo^ zspK6qT6YC$@&fGQLkghr4(nLdS^9Phpu=)-ZVwRmasRMBgKAZUFdq>z>iH7NDft*D7oQF>iek4$P`9Lb$+U2$!GT01O$3+rx;ao=2%)b~ zQc5XE7BcoaVZb=Dpv9Fx2(Dy}7RmS2LcfT-tWJ5|u#o=MDb8~E6c#V@2~sq8HNYLk zKzx~j%^&7b8b=OX(V=6*`nX>Z85V|F5=m?5xq~wg{v-sQF3C-%L#N&JadvI!?ai{8 zk%T@aG%jN`u!%gmRQ=hztB%M5_?&j_FTeT3Pfp6q2chRo?H-{x-aE*+&lXDTtD##?#m#<2p85xBh{{gb!~b7w?m=gs9rG_=Z4r~H_JpwZq$f~v?I_c6Kes9tNZj| zfb_7~GDVC2fC(1bxBM}JyHzNoP~VIq2sYGOTd`?)n&^b^6YEp%L{tO@fp&0?DLmJ3 zC+7i<4&c)~Jyj-=P6VWt1I(MhWFA7BlTx?iit){Vcl|)vSGPdZaz4;sLcQ$4iIIUg zJwFxNKF5O#;rKltD((NP(Y-^g4?xzW`_5eleMSgEcsC#hHP{it1dFEarneMuuU4?e z)40Sa-kk5Nqu0UyGoi8R1gltzU<(F_p-l4*a6zhA7ZO0kR5C7YSdKwsuG%4;mxx3A)$=}!FLsuNj1rJ&f=F7I5ImtwN#Uj z(+?l>mFU5BZQBzc*__0xikPb>9gFxdY>N&$w(SZkW`?n#f_2B=e)j4r4&o236S+qX zDKsg)-#|q61aR}#G>qBM&-P~mO2R|(_*ik50ldrQB}bbIC={xmkwFl}sllEc1N=>^?l%lMS>G0HW`~n&HXs68Z*S4jr+PBfmdNZaAfy{8U+O_(oO%)l!1v zp>jU!C*vmjz6n{l{s5Gd@;)DtHuS+{M-%VGK$`>H93K$M^b#pHk@?^KnP&xJ0bn;4C_Hd00o1CX{dwL11+>9^ZjW z>_|@}HWayh-*si5$)`KW?-PRS2zsW*efLYSa(XU_C5A2Q+am@b8=q$R-xB?t#0Q=G zd6Lqgx&~qhW?p8P`U7AT*Vd;`rJ_$5l6m<0n(CrR_q(vM+?QJgNEml3EJ1=Wvnz`P zx`BwL*MxxYr;;(0#@V=RYR${BveG}j8=o}3ah^YPFqb?{ zJN0a;TMEhVebbi`j?Cf3$~pO+N=6jhEb}uSxvQakoeE2qzN+Yh?z3zQkrwZ$qDPKn zg+IGvccjPO9o&ASsGN12MEXQ0r=Gn4N=P@*Pd71o`_}B11iUuC_ed3>Ev+nLzueMG z-`q!8_DdFH&Aiq5jwSB!v(u)7%A-wv32BhKZ>~96ooS^&c)I$Qd|-}rld$#rUT6!@ zg$EF{#j7DnDH`;Bx75D+U+&dT)((k@Oao{X|AEBuR`M@I;2hh`vbqg_Gwy>Fy%nbrpllSV5Lq_I2)z*jlkZzy*0ll=bm;5@d)UpGY0c z*3cbC972wW)S9-jYOCpzb^6Zlhw-=_LA+Q2n<7iA0H2_gP}KLvS+Lz{u8;oLWO@PD zt7yGaHTP6wdMLm<`;&ES^Mmz-GJJLNu`=FLYpJ-p zRe87Kgg)#PVQG?`PG+4THe~tci*{$&^&XyZoKKo9laQk`X{xid(BN=!5Z9{_xwC6s z0>n!gKPusUN1FO$T499K_@=Nk>|$hHIr?si(qnO7khc4fG0E7R38OQvn{tP5rk42G zeOuF+zl&%>U?XPkXufG14Zw+bYb-F7zwm$A7~P$bd+@3SEGeZ>lsi@gYrNdi3dp&0 z9l9#fF3V{C!EB=F`4Ug%>|f-h$%DqJyB%jy$B+LB(KQWx8v* zvhU}n1KF=I*!Lk)vM}Ek(r2ms?EA@qWvg#~L|W>bF9u6BW?C_i9h1|h{Pu<0?=if0 zdsx-7g<5fb#|wDrzHL8!26pu5KPOdcVUrW~PU&nusA~W?w1+`O2Ueo!%^zS!r!{Xn zSw^6&C1(y`@DUEqXkmuYNs=%Du(LfTH?@5W*Pg#S*S@IcrR(|2Y|4eg1(TIi%{zYM`V zmO9s3N~dZAO9#`J7Nf19^`gv?AlnQg_JJ*$9_<-m!GV}b=ViC7ctjgN$`p%zm8FF> za$ldp0=&A((E}g5n$`B&16JJe_{>k}RQWSMxgc1qMzOEVpITe5A~nAuIu4KEjmhEJ zf}C~G2EFu7=a6vS4X3UAYC!|^=_Nk2F@r*#_W;6{qVkH8^oEL4EjdRfuT2M1tC+^@ zVWR5}(MK-4Rh(BlleT(14YnlZS9|~It#z&vDOptU>jObNM@GhcRoN;1FulN(-pxW8 z!Jc_cdCc*v^&fs}Wy~&>31K8Ps11MPb3VZY+nYZdEN3O!?|?wD@|%sT2; zgpxTxiM;MRq*)&J`D){jhDS>C5gL3&EY&Hn)%jF|sLKT{Yl|Eue3DeC-Y~ z5|rJOX91^nekuS)+jt_hPY))etHPBgq<3^fw97avb?8IVv}Aa>v=zNaQp%i6Q-?hV zVCxlhg+;_i&(0DwR#a+)aOc8$tw2r?N-g_!G_ ztJZQy@=OSdx@4CCX*1Np+4W!Lgzi}QgNZj`G^8>r7kxOyWA$cnE2!fQf$gUY{O5_j zBekBHg>~6xQ|qJn^7v1ktM3+YsYe>^%$vbtGm3i96NNz7i{)**1{;^TJG|=PA}POx zXl8U_?g){>HdifM?76-<57olV+BrpoT|Wy$xn>79*^9o`iy;v}w0~WU#0HGT_Qx*9 zW4lC0%Oi37p3(g~cYO^1{%`l76gv4> zof_`$I`%{iHLFpZSvT&V9V-St<@=i{=7r^2o zx$Lg%{i@-}{Req5Zgln1XJVgyF=lO1w1ZE2Cu$|mWwd#P+vg!D)W=zNj-$3M>+hXD zn$-0j4%WPqAuAt+WPRbs$9W;TeGDzyZJHuIguNMsrK@~S?{G%n{@GY3_l*;Pvd+mG z@ID(f-f$jI=efpEQ`l4+Iv@DOlFAJBC(xuKl-M{+Qi;)z<-kR3m+0vbz_}ucTBUBl- zWOdTU4d5Nj?Sy2TyBP*X+}_?3S~Tka%zdI^2?Zl(0{!IltI0pLehP8*rG$2xUTNwV zrTj=fy*jhN>>b<@QZ2XrOO7DUZdlQu%p4g3^fXT6%lu1G*&u8^V#Zm{vL*wKx4|c~ z_a6#+n<#&|`I8$Eny}QcU>i8~S*|nGGN~|RbZdBNfZktoZ%{8L@VW!1?~Rz1 z+nJxosEQPao#Zw4IYodTalb9n1US;)`f=o?E4am$ zy4tHkbH^;umD?T5IEDF=cE2gU4da+4>3$~b`j1a&llibGW}v=imcs+z^!w6P^&X%j z2oeQz#w1{+~Q(?65cGPO`Kvq(F1+wt8qVakPerG*`G-=|OV-Ldap ziYCOY$SE(qf|+Q~we|30CVN#@d!KZqeed-h%MgKZ4p^?bJbyT`QHJ@Ma|oAxx`B+V60 zPpOPKXS<@C%iEiDivCer!6UEiJPwM^_}q4{C#kdSA6K8Yc4?N&LbmC8ZRZWn8+W~z zX^_3x&7dDAU74KxS?Z3Y!<_lq9{U#U}h^ZiX zCn+EldXnaTfR_B>vi#imiPuBTtA-}RCm7$NBwBxEuQ7M^QrkGbCo7#SMtZMAIMwc~ zR@U#}#mH7aSGY%;+z``RL_U!lQIF{oB~0~ja6MJzOx^CZMs|sq0}@AdEeFs?tUwQ9raezC)V^?=H>gNrNcfKY%579d> zl?LNxc$2q=)|OT1m1{N#_K4u%#yR2+m%UhDAcolrA}2X=wF=A`l1nkO;Mt{gCHuK6 z1kwQ~#vJr^vZp^lFh6}b&-0g7O=5XoTEfpXpKRmtYgY9s&GK~t_0f7Aeaqjemb?-m zOxQq-?8AvqZ!sD@7Wfl}{hoI?6^eFRSNe@@{LX8>Z(Kh9spNrvsgW*$&G)F7Z={v> z-3!?CQfTxf%Y_qNhF;k6N}cj2mQNjgseXwP-25vj=0I~Ud&S-2rozn?1bwsO5I(@G zT>af8$8Jf-1f#bxa(hFOGV(k&H3VvARh!n`AabW4fnF26e%^-h-t#^ae|@@T=>)Xy zr-~v+PmG!qTS1n>wEi$9zwnxC401EX*Yb6{3T1ji?Dr@pbj)s3A{3_xgSu! zm2 z>EE^qTKc$_L}-w|OZo4nQ%oY)_1hrlG;rku&~0 zWy=%rj_^N~1X+8tsNKO#R_2J?c-Hnp>=s5Hi+c>T9Z;OfH0}$f?nkAMslO>~uyyZy zsuU=w^?2=AQPyrBF-(c=ycJ#CjFn7C{1LMJcJqN;+R~C9|Lc#iyKF3Gm+ zBRE7?JkqRO%q=|T^gce_@ptsJUi9JMD)uX%Z)k|+m8VB(Vr_c)qXXI90^2lMjp#pL0scx%b31F2VLy9=edJ^-K)khYnv2~%ibIOj-u<0 zx@&VTf?VpL$4-;p!K5f6>(kgJFqVJIy3o=7-Rse`<0xaB=m#qY}Y%N|8H-2T;;+wA~qPp;_X#Y*gSrIx%UqX{{qlli+V4xx9~m5lFL5HN z7XH{w*9D@mgBCGRrgSxc%i;$~WHCU`j zL`3X`%3n8_^)f7(=R4X;{Fius;AR*4D4%xilnu7Gw-O7327cB+u=>Wm%e#&2S3Tv1 zGNPtC;-{;VwKKg0yVp6K2dvKjy8Q0v<=FwM=FUt1ggl*~T?;P{5{GkVnb#KnPsE3B;@fjxoH&YmDh!%$ zbTo6AmOx@AJN>)!WpV!Sx$F=0KHKW)c0Rw}$dTHwwh^)n&2OUYl$7MOc5-x$f7heC z=G1kNpXbIxpLLt=w>IF=SjtdB+I zzQv!`|KRT9jytyeWjA};prU0UT6fxb+|4rfm+O!G`#ZdeIw~d3yzR*#_UP?X=6s8f zNveiUH+P|HxOq&+o10tx`Eu8yKhthVg%lkdMEJ6$GeEzI#h8degWHo1=am;igeQXB zG>4i;+g9_aveXU$&5p*DK!`?Y;-**CvBR+Hjnmsixf}UI6>~0mWUwl{ z@yndXg_A**hJL`}dW!E*O))jYXKdKZUhWi{>2YE1+*9!tzvFNL?g|H!Bdbt{1iuZX z?VsGV>a<-uiNpLiB63jGQ1nwaDyKeOvbLcS2^nTf?IpILwpoNMf?3&e#W#=qm}Psy zTi)}>0$JOk|7!kIQ|Hd>Pul$JIPTCzMRZek*LrL<4cOYnu|)@a#UXDjY4VKs9%2F+ znQ4ad4f$S0{}n+jcAkEfb9e49q}aT36i#h{pP?1L?$}ay&FZFOSKR$3eXZ@;MF>dX zR}<0ZNoVbveV8~io>nJc*ZF{^7<@%(!D#+|FJ*MTRBbac5pBMV>J~!hUWKViv|BdS9`(EuXn2h**A(V^$prM6;mC8FJ^Sf*-i=D|S$a*tacl6^A7L zLp?XsVr}4gg(gn2-|_NY^yFX419Ead{hX^uJ9O$k^;l}J?st_AtB6x=V(M{<8M(KY zLUOzC_i`jJOXk&x$^ohi8TXl#&*-ei{^sFp>Zvs7d&$C9YH-ebYF;cjti+lq#PSy{;tV6!d=FmLB1#?>rT6q2pInIdhyM4RwZDa=+&HESd>l~6UquF#gu6qND6+t1y zAFTRp^~kqC0n~T>OdIG*@P5;hza;ejji&xgT52lGIu5#?t9;WhZ`AB{Js=&&!PQfC;Bjy zq^qiQLov{K<9cp6CKpM+po;RD^J(yex)eV{3GG{WRS7X02s)xp6oOZcY?ml&q zPrUtlSyCd~SPpO7-o3l2=SB~HR(2zY8RpY5Q@7*n)%XAK^cFyEZQuJhE+s&K7AfxS zZSXc&(4xgE_fp&;r345RLU6a@Qlwb%a!V;vg1Z+h+Jqp%9fF4$7@WS(+C}C3ePlV4v4+t%>FjPbI0GcPrhfr!B=?@Meu%=*C`kOrp-V z3xzL>IYrXrU-3ef=$exTIq*dYW@lxpfz?6n$kudMeN6M!E}wqCWDr9rrKOzDG(XT6>A*x%}rUafT-IoR5xm6m@$w4&;$gPTW;DYG>I_ zly9KNR^+}{uXoJDV-z#sCNQjPFJ;dIO~6MZ!R0LT@U!LFNu3gS-8?g#gvRIg+ApbytwIBG%c!tEB3t2sd<3d$ZIOy+q;oH=Mi zsXXy>Jqgk~OXZ}xJCI~|#ZF$Tm5Wr`ghBf1jN+sveV)w3g-glN=1a78bkTGR-CT$- zDMzBEhag`rW9B?cneo*mNs^okLWs=jMeKZxXDVF0gzP{!&|RJ4pldpShf?|LCF

H0)wamyA* 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 Date: Fri, 4 Mar 2022 03:39:26 +0800 Subject: [PATCH 024/507] Update AboutUs.md The AboutUs.md file currently all generic developers, which is not reflective on the current user data It needs to be clear on who are the developers and their respective roles for ManageEZPZ Lets: * Add my photo on the page * Update my github link --- docs/AboutUs.md | 8 ++++---- docs/images/denniszedead.png | Bin 0 -> 1786376 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 docs/images/denniszedead.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..13fbc60d802 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -38,15 +38,15 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Data -### Jean Doe +### Ng Wen Hao Dennis - + -[[github](http://github.com/johndoe)] +[[github](http://github.com/denniszedead) [[portfolio](team/johndoe.md)] * Role: Developer -* Responsibilities: Dev Ops + Threading +* Responsibilities: Deliverables and Deadlines, Quality Assurance ### James Doe diff --git a/docs/images/denniszedead.png b/docs/images/denniszedead.png new file mode 100644 index 0000000000000000000000000000000000000000..c7298c45222ddb8a17c245e035665a195795e448 GIT binary patch literal 1786376 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

&A!l+RgK(n*aC_CMI&(yvEy}URLccg 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

uQQV&EOVKE0=Phs=DslLG8iL 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

M1fpRYBLLd|)q_T;hY_ zF9glmS767|q^z>GfzZY~b#@^_%Fc1Zc80M*RGydNXyQ(KG|vH=zSMLkL4`U57Rn2r zY~2#nT4Dv>O7jbg7r>=IS-Ij=d&XLr0k(cPPVaIc){WHyySatF2?e6RKx*yAjJN|p zu`RE9*IADeI*M!$Sx}Q1!4LO*RS%$mGV&IjK6bc@GO(}Zt|kIHV+!bl?n?xsb2#n$ zPtcF1M=k&M4J&3sxNf^FG=cLf-BP>IQU-`y#2;^`?K7(Q4mU#-0kQhswvHrGO$L_6 z>%hzE4CHF_J*_*}_2Xc`^iLTauVIiTdGxj~iebKw?TK3nNBgT$x76x}NCwIS*TYyD z_{E^kooG9dv^>DZOw!S$l!=*YO`wINP1cV4uf!JW!~|vp=y@jI^pkbvpTJgPMP59x zv)|k~u`$l0UWMlp;`(hL zTOrI|MBD0$(b{RWx$N)TT8F3(r|om~U2dg@&TtPw6-vqsX`L$rNlh+fiEwj4*L%Sf z<&BX6;$Oe1W{yD*rldi}yRwS08#j~F*69gFi&J3aF_i}ERCjP3>G;j{O+wj;(c)ja zJghHbA{b;cFZ;INGXBzxoEt~&8KATK#MAlSgpEmE9*SEDs>+WqQ%nOcTqS!>_0R1# z13&%{{a$#5nsM{EDqd|0uLY?}^!6E;D1kkZU0*tsyuTe<}WLT!yMC}KOGOh-8zbV;*4PZeew2e1h4)h77R2k*1v9Z>djDl zDQyS#auaRenosT13v24PulE~SsZm#~5-K^#4k>8s|NS5JWMSqf6WEJ^b5s)hKLWf^ zw+#~hWC&AFbxr|4FGMo!mv)hV7ei2re7o8PeIIxCaEOa5oq3^0R#IyAxYwiD)hARQ z5XETLdQe_ANg(t;HGXs%>VJe_lp!cPP`T(2+z}Zq<2bP>fd1V3s14jo3FgaI)xN;v zq*o&l4A*R9zl}+C;lED3L@ukiWX)NmrZ<4+tvxramtxQT;%`vw1Z5r1WpWm%aG8n^ z5P2FyLbRjcA(J~aldC?ju6>m!r7Pd5RcE3r+%I00qe0ur$x`K$qzP+|iS}w86KMcV`nmfW47N*}ICXFeJ~vUS4Lrxk|fz zB1tYHS)_VLwQu$znegMv_j}&wov|JLs~n~?J-CW3^L{2J?mZ9gm^XN_&-^z~2Kil^ zPp?i>=i`ACJUz^?j!>?bLB|q}7;Fo3D#!VrS0V%DtryH)|0OjAc&784oxQIc|Rt zd_>$02NudcnPIl#?u1;ex;gP!9tn|ngOF+r_T+)~+_j%odC0oJAP0S7Vxjz&Pez%q znA&Jb4Am(7-ePVhUVBZ=t5Z>P^QxdSl1_`y2J{syZvzW4^C2IF58Gkxo8e4lG*^YW z`OI!oQ>CQ{MD5>JoN=FBT0BffChM@`tn~WOH+f5^M|~oP{hSRUU=7{hCQ+ ziJiEuoEouj+i5MW5LQvJ+pMQE(7R~eypJdmnN<4{OGnf|h?$>b75i%lk=zbNMtf!> zy(sms_|1L{T4}+Jw|%Foj&Y-J>ZdUU>fh^n1ME|07ukRjYJF$$$|E6pHMq1OEOGe{ zg)Es5$+g+g(=6}yO}*N0ZA)^KrbpE=gplg@q`U!=wsO~$KEwt0azE^C(`hn8{ zW3>F9LYvI*l&4e6p^@8;Mv4AJUJFLxN+^~>X^83^jUaDsi%&nT5v`;%E&33|b4<@Pb1StUisy`59YwIK|>O*6g*FboNDa^3Mh)TsFUP?6gzmLAEGd5vH_3G~hDD zU9=i6de}fm2{!^*Cz}oK=Dc=G}659rvqP195JZyU^= z<2(=1M2Y-61ErD3nit)WIp2P+41XPo676lcf{1)7h}5JXb-etQ{%f)TSx?At`{8T+Jy9wU zu#ohg{S8Te;tFaQghdpZo#fDFsd3@S@D9U{rLUX7_(S%#K*CVhp7A!AlL1<;v6YO| z=`z=LZ-DDZcEQ*>k+QVotV^e*_(^!f@i`NZwJNe!NxruCZOt+OhxCyo6;4R~b3e;A>3C`(Kv7Bqj?|lrG1}@IG0~$2CJ#BX#f{qar?syv)Z7 zRR^s-U(*vIHj~O^F0%`~hoW5IBEzwG1>*jPqO%Tb>g~h$=nz3tx<+@q(Iw634v_{0 z8KXl=5D-Qq;3#PXB&9?_fsq3NK`E61qr2<(p7;M&vWkYeczu7RT9+Gq10fN zkw4N@*@5nCEt8b3J2uwKpUyk`6Rn9^A|(fPCq8LK6*Ay`^-_<|9||xwBH@pE(lDLk zl49b-CW?_5$gyZ9aFrzZ0`KkHoL1Usq_|ceWLopJnW-Vz$D0H}36!hw-+*S~e@Qy0 zfr;@IQ+sLWUVvWGtG=+#56TTPB{epu$jZn-QIazLrSRx+SjcHWE6SvubpC+Mq6#`iYQBG*t5FfuybAx`=XTK zQ|Mr*ie8sF>i4j1MAeid#X&?6%APet=55T~6NKVtuEOt5N$aeXcos62z$d-2vr{4T~bSegQ# z%E;(H(31+%PU($ zAm_H5)77;98@ywP-&DcctfNkkn?ap_Ag=TIy}1Wl$5qu69dX_c-)} zwzFLCt1J{Sn*V4l%YvG@n#uY!OHsBVxY%GOyBfqH?aB@V^wCE76EPY>hvy}VW1{(=|- zVtNpTzXDtxzwR|ZaWtXY&uV;of$JVmyi)18WKfl8?U10ObdVQI-Q*TdqWT6W};8nXZhfaMuC#Te`AgI8 z&lfhBeHcq|JA5~Cj;Rxkg^nRYxC^VuS|zu-~7fGHcwi8UOEdFyG`IX`nL z|8()%^FL5ja>RF}q}0wGq)jq6G1jZf|E>|~p?~;Ukf#JIvU+7)IE)m0)KsPN=HE+1 zO5jTEV9~GP7YtRr*2zIcwm5O|RL$UJ=Z-$J?ScdkpeS<6u$)#b_Ga`UESZTMCVkj}URzy@Mu_(Ktd!~O24 zq=SrhCHX@O3coh0T8LSfl%Rjz*eCCeCF%JMe7 z`imtDBli`sPyGJ1S(`B8^N~VaoC%NSN~$6E2pHs4!eL~DK{?wy*E!0W#I<`8%xznY z#HrtVXFalaZvsA_r8>4N_Cvj}P#NVPRblX;%;n`h-n;#X2SPj2U6VgVf4f>-HccAa z0@L6u^{&_zkyY0j``2Qw&vkho9O>Z4$xR6khx%~N>j9HYXqE)mHTjZ)mbv7B+<@WZ z=K*R{YS~~}UPh~jW`k?Sw*qjXN0P;6oyc`*?$}WDg(=+Wov8xkbSQ^FzwdpY5=qpH z`Hb{$`K%kbQzKeC&F$_vWN6KEdJBeU3l|CVPov@Lg2N1y?a!eiLh%6>9f$Xuxt!Dn zR8dnBG7}GfGX#ot5a;waQD;6{=s$agIlP?i2-i6mS`2B%@QPqSo3k;PuBsVQF%`*QiZ-%7KK~L+ZXT0_F)mOU~ zsn5qfg_C8gbueDmV$P{S)M0c*B|wlu=0sj)SD<%kzRrif*zr@^{wD!xgw9~sp=?R6 zqMWxKO)WC>zU{IbWrL*QLpaX7oy{I@U_UhY^^iBkdaML>R=$)N=$!Oqz&64qUt7jL z-zs@2m0fgtLfMnf{)zQ#{~TNj;H6jWE7oHnNs8SvstTzcT;cs54Iip8l`}JPQQba! za{SY45t_a!Yv+*`HdO91`zB?4`ZV0{6)`J&c7`4DU4QPuQNPQ!VTPcwq{R_;G?GJ3&_raduMDY@$(LePfl^p&83i2g`twr@`!ZVttdy?-m| zIIn~;{e#XGh70Wt@ux%zS*~f*GI@GdA?qLgLpj$ewd!Yv{4p{)zdWhw2)90$6#4Aq z?7KSp_tDh*tGCRDnN0v@Tm*zUw6%Y2sx)GR)pz6Bvyb$y6ZcMOJ?wesSR;D$H~DqP z&yXI<_|GoxWn5?_p*?<6fs~M`?@S&QerG?RF)CXVD57DuDngwuc^TFA3H<}+GxVmjg#_ekhEa^WtPa8>#YXyXs?`Iq5m>cD#XXI_HQ9HZ0< zw

WRj%YPEy6F4X7*q2xg25dj@czoDn`5uU*Frl&g(awXrnrZlyV`GbITikGd7<3 zdiSsYcD2zW8J}B7CiCw&rr}qW)FodFB}I?U=CPiYN?1H6DEj*EYDOwkTIMo;V!u<- zsfg%)_K(Stl0mcg*aGVOHRe0K)l_UQbk7LBX#uu<-u>R8E}4OEDK4f+Mde6Xa%d`t zyglzV6xzEJxk0UdwaC^|&A5qPzVVVQqeZwTpjn*)fwP!-w(Ob{e3J5It38DRS}N8E zo~AL;K3kf~XqFx=l)@1OyD^tamQGm6GGv13jy+Lnqp90 zoewSg#->cy|CIoZKJiiMYjfrDh)%O~=|830HhOYO%(CL8|IRJ(hZuoY`m0@Ib7kW7 zrzxv(#WmOpcT9hZ@GOmx!H(7#;Qb-GP*B~`HksqFeefG|nS_go(R4~7a(uHRf4q5V z=B}kQQ|w7aW<}Ob(Ln-LNE~9qg!Td;09RPD4SMW?g~WgKr*;!b#wH+t+AUpDml=$Z zjD23MS?a}p`LoZ8LV7bZdl-6&z@8$}Pmy2&f#B&y7cTj<2ybMeL~4ASI|Eqb@Zjf0S>%tVwygNMZlJqQKn|Wy<9U zWL$w4f%Klk;Fw708$2=>7^8Q!LcDqiw+xaLRPL ztwv}{$(e6QQ70v3)2a_W)B!NI5bE^c%&{dkMNgr;c~o(AVe4 zQj2$Em>Xg=OycZ zZlCqIsHYnL{n*~0Zu=4ADgq|uI!X|_JxoL)lV_hIUQ9113+FaS>u1jqC4oXLzad3Q zD|1^~x|vp(JJAn@af||1Ymux=N9(v%s(8uO!qQNCcAR1m8s^D1{M?eM3^_S?XI_Uz z=+H@Hiy?`jt-cWKi*XdSl^VipZS8(hugN|Cvs0hty>spr8OtB@6|x}Bv# zIQr7L#+8>rLPs2xNyQm6pI| zAtCftJR-5D>YmHkG`9ZYR3Irq`1BF6A_JP~6q^y#C+kXoGZ;Vh%PCW9l5`~F4^qph z0iot*Y{T0B+JBdTB;B|;&t*>W+L$O!QPD^A+ln#8)243TE=m;ZOQt><>-$FXmgbuG zKR3|(`>XEtdyurlO`L&oUo>Wf*WQpBf8pJ|qi9wBqWnP;OD5SYQTEQ#$8u$UO~3bb z-G`p0_7nUELSA{KTm{kxG-5n7>q(Dwt_gY_@g2D7zx*Wgf`JHK2ug1JR4C(m!m_;t zz-xyce>`{DkY{&?Pl=@4v_W{cN&~)aimUM8;O_i#es5Y-6oBl)gj?9p_CK&ER_MKK zD*BSWr@#W2`ZTE~idLIY!O3b$m&Rn$a|k*{|BWghtj@GC{=|Df=KmscJSfTMWUU+D zG7J21B=kR!aw|cQOzvDlxMIzh8EP^rBJ)JH2g5iP|O-}Mlur((cb z(>ya`@dLe=`OWaF;;IUUM~F4;Zm$E;R&{z%G*H1TSeDxTc7&*JLnul3jb%=IG#%bT z4?)N18~<9$r7yVYt4T2P3jw$Q;q}SYq|Lggr=BymwqWKcZ zI*oy@P=_dES(_pPR)lgWnFruh}A>V;9qRtp+W6%A`+GPsMMrr{oA z!VLqZPsJZ@5p!n}#8L^*zpjaB&Sa{%=(7H2%y$V)*=~~INyg<>zS`E$+0hltdw%mF+xP%yCmw^LlkQkp4H?GP?o{SJV&XUe(b-^Kcw_civZS zxXyWJ*9mVAg>Fd~sZ9I_YA8s3gJdf!nt9=B!(hXDw0Ks*`xKVcRZu?gh-5?lr+?hH z#R}yrzy4S>+ci0i=T=u5HS?kY?6Bdd4L-(BRT^_QkT0;v2PeL`X{^Jg6h#$Z(rIxg z+<%K{3mQGvA0yRnFqx(^BhH(){t|EKMkU8U z@Rz_}`nE@@r-KqeQ~rj~ZT`m@6V|TmK7St0NKZeK7)^P{ddU6jZ=payT4kgXMe#3I z3)O`h?{n6kqyH!vWh&gZ*o@CM%o@Cs8B^|OqGkT*xi4lKBZ=PJw>jF9RkPpPZOiAx z!BsS@o>u#}=zew(o9ZN(KCB9I_}%OMg}Y$=pJpikMO3}}-k6(VdksZL0%`ZpsMD(?~%~T%Ofrk_}jYtpZ$f1Sv1+R$?W(#LG2{Al$WmJCiM? z<_g_4S1SpxHo;T|mQEIwa#_V6FJ}Ex$7+56yk)T}DAzSG0^YUtr#sk~d89=zUN{ObmJkI8rs?k6!rmLa9lYcRSW zdIg?yFYZ5pI8!-({b%$$YX|20A4t216F?4x{XM&iir1)eb`WMbIj+`>drBBNNy5+m zDhc<+Jt^I8nXeuZdaOgSC$~a1 z!-TThhIB*aa;o;{f0;j-^xU6{rvTxgoKx$Kaz0+n-D2twB)lyvBN_%qdthGLV}o@g z=Dz;zUFD6$cn4bEw%}i=R(8%Jh1~mGgIZFNT|oC7ruj?xbg6ql*ZhtkF#UQpMcS04?-LPu#?E=8@x5O5*uAPE8>b>Jl?*v zK(y$#^Ejy_x(@%&x;WOV)O#Ztc;9m(`grXCiG3?bW+1c1-7r#r3vt zSiXM(Z_8&rbu@4~8D~u?uKlvYW_vpAm4%PACZ$zH*hRp5w2_Z5X(L3OtUK+2n$vso`dQAkT1l$1DJ@E<4 z+i#VhEGx&!Nb1Fp$n*6m!u|t6A%nV*nq+!r*4OHH{5g$MMjTJj$Y=VwD}WsQkEbKW z)fe3Wf84(^Hl%1H*hQ>y3^Gzo;eZdgjRy%hNLO|q)(JA*MS7J#nfXC7za+2129@d5*n$ge zJ={wg%~bwuZf;8}!fFz1__H#Zt26l;hxF?6wEg~@MZ+OGqN1ZjFT-(r;1PA{ckEY3 zNe$NbJ62OScK+sQaPWqqKsOS_tXYuIB>RWASsOCJf!nl#!_uH}e5F$NyAy|Y5NYr` zdQp;}773e=G9j*n6h$wATVW)Tvnnp>r8AXCKQ-Es$Szjq>J`PCd{?zLKCt3nj!l!D zA8%*4o$ZDLnwxAGiFi^@Z-qk1ku(B7a*vK{mG_^Y0wdN_a}yuOQ)2l8EixcqZ`veI zkto_$^F9kQFCYFga?{#7S?m2pKAL3nE^_mjb|+JeKPkV@8ICMR0QQIsczHhRs#Eu7 z=A~r!$0v7Rak@Ra<`&}tbAQ~K6477a1s~quzS4~JX#~O3s@LC?hBM|_*=9Ezl#MOo zVaRHNoUcCn1~4phhtMI?VG=?)8C5O%&Y_=OxYr17N?4}QKY^xBsFMICFu(9Vp3L@&7rc$_1hZIEe? z50f-RKIZBlqFPJsk(|#G&0XnqTd`z>ZvW!YqZZ?*UlGW9xp8r-1XH=yI36%#rDPH> zn13NA_sv5@8xABnt>5`Cp4jQP^}JdC)&RK<|io4t$_VLJ@xo0{d;JpiG%1KlSR4S;l&3BiX;U_jdf!g;0Vh78v`YZo?^N-htnCKJLJ0j6V9#aCA-w1@pr< zRF$M>W?Em6xC}>VluK88T0DK)d1pDa`V{di6-}Ww#Dh&9=-)3h#icF-rT@u+)b9lr zpHSd|t|Dij#*)~+v)=Gv3r6s`Ia|Et)lyT8nOmEHK}~gU1ev5Vp5v|2JdmVrkd9SZ zngGH<#G=ELWL)Z~SgT;+Ii7$M;y2{$Ijy4tWcZB3tI^$g>HcWtqFb1djn1D~iws-F zb|KAPy60|ct4;xoY*ErCE*j2%Ogehot+)-lja*6inII|wflRm*>ZzP~gjVnZJEze* zzj-v_$B5Lq%)1tOQ}`gko6|cu;qF9I2+f*?ZRMBgUbR5p8Kp&|Z}Um8->{TvDA$ zt}i6zn%qGTRm7~F;F~koW;~;vNSQyKEWZ2VodVjBA?yoZPkhonM+3&05B?F$^hO__ zbnn1-Rrjox(>^cY^Dj!-t@A7Xy{2B+wB(MUH|F8dZao-nYnDHN5+D(~s!Z%br+o90 zbgnhlb1AN?f!Dtj+*EVP2rjdI>3{M$W{<8o-4gu!hOEBH}e~W(=iv=8v%TN8-ki>P$!ha??F(|grjr@@>?tk5F(IR#t=`D=PqhP zL5P$v9HfMNYg=+5b-0}?{YdXfp6dI29kC|)w@C((ObG+ZIK_;jZr%OjZ_!)@^PX;` zcoNiY(Hvr`gTx`6!Tf|+B*0+1^JCZIau+c<(7g;HaoWs;C;`Mb@{Oj!O|66K{{s;LvO#>|5=!W6`$>E|G+3|c z{ocPfgKy5$N|kGuF0Lkf3oVvj#apC<=mbFwY(cn>owy#5d|(t0_#aEn?@Z|pZTrS; zWKk;~4<&W#;4F`?1`(ti<@C`F$zp3~)x-yap@!z{+a;F;D(ceSfObzjEv$6Hf< zSBm#3DJg%0FO!DQdgPtO>!7B6!j8vOaibE?V2ChDCwt!p zYCSZM*Ea#;n5xAU(!s4-0H@@aU}t$@_L38NE4k#R*Ibh6*|+db&08LoOJ6RFbO}9LzLi z()k(+Osti&Dbe&%&gW7uT(SwGAtmKwZxY7{GLStXGWq&u%G^hv%>BOLjY+{Z_wvmhE~Q=7!q!vQPJ5;LYQ)kP_1)b)XnNlP#PzI zhA)|jHYOvA|H;&OmieRn$D@v@+jO_n*0v3a>UVC{fU$*UHIg0QIu92 z_F1ID>KmdS#B$5?SvpjjOwUCePs)P508Z)R!d}dL(pm%_HgET=K6@R+-a#Sw%5gkhuOF7VRx_<#-DELevI<8L6f`*R8QzxP zPET^UT$o@K@(LR23=&=Kn*gf3x#8kSnM}z{`O(iH*K~iplkI{Eu;%dHve9ESn^1#7 zUf7qCq5S#(vmPqs9_!jLoNWJQSNf-VRRo9xdbE@9FlG*)>=XMl0AUm{7gm8-)RL~LnM~Epxfj#TqGHcmBq^vX=ZFOOFDG*b3VKMz_U-`H5oS${d zpWA=3*l>m_TdE{hN+RUu>$iCBGST}n)mXOiYA3_+B)O}J(gWf>0G#sD)Q_WwC`=|aqn=ucNCX~ zZqt)O)@?l=OCesHh)ABC{q`;&v=mo#14J&6@P=}`1}&Z4+h_cpS+<3bdlu_Td@#hz z3RhX1w%%S($9Zm|J5SL^WyUi&alR}JW7-@^6;3xpY5bj6$}JCU3R%~5BEr0)6bjETW|BRg+d+C z(`=DZgW2V7P}+^I0lZ^WGc4V8YIhj@E2~oLqpfa`B`3 zv2;=Fz0OLvK!uKB;3QhJCMGZ!sSH1M!o~G%o{U=w+Lzz=5lYEs??1WqY}~OJy{x5h zsp(^boKR+v|qX*#2avYxe!+YS7+YSXd`;ed~|Hm)eJ z=OoEE+1wJq-7CwwTlx>AE7a^`F$h>IPHS1)BrNDLF@dk1j#c=}Q_mJle#qp`y^&vY zg{Q5Zs7w|1>8$zsjy+Oy_E20!c>r3p`*LM)i#*-WKTds-^$Ejlk%zVgpLn{Kwo<A6o)^}=7umrmss?1pV6+g){81f z))Kmk_kG?%dRao~ymcqG+K;rPO8XXmq!AqLnl5P0_%Pc#obPGp*>|wL{ESOG_>hvE z(kk<{^(jpM>)PCbl6Ql$tH+-$ucl8!zrc#;1A@BN{w*3Z`gwZ~#rdXtK?UaXVwslm ziMv1Sl1No>NA-2DUDblgUDo|01!Z3CXqV5EJ-WX;R~d5hp8OvXBFsSm!p*PHMd`hG z&ria(4|~Zo)VF&lOUZMTZ^aj9k8^-NqRmYS zq|SLC4=u{Gqic4et z!VQvxSs%Her?O(TVB|P8_EZ9pHN6rX<+32FS0KBpDPGoBSS=-w`w~SSk@#|)lASX1 zn$m^5lS3NiaU-y*;iqlm@~>Op_yge+&n&it2UJnV1-1m9Tbw^!{h3eFL_DZVdT+dK z9%^g6pz|)30I}8Tx~J>(0hpP<-n&3&;YIQ6M=tG8Ras95yV<%!pG&By>853;gv8>@ zW#XanEB}ocvRxUCaQG2DyvIyxaezSg;FC1zlH7}hVxn?vtR(m9mnE;8vXBTgR`th( zgCh(4^GA)%Ck)pX7<3b%{GfA!9(}QM>3Ma3ARq{o&r7{Y52HXX z0zUjU3W{gn*nVfHBjQq6&(Vzls%|`owxBbmE3-~@6r=;iKrX*Zcr(>X?sEsd5P_Ov zJ?HVBhp_^o!mm>$KUjO#s>OwO+3md*`zKhUH_9%w$cE20$31v_n5+-QX)Xfn8${`R z$-sGYd&;4#lz1ZYXNn#b_Y2KyPdpO6Qw~Sh?PCwMG=x_huX`ZZ(UePg0IN=aaWs@W zDW_N24j;jehd%#=E1i(#NkOhi1Z#7qj-@2)a1tw?Y_>0+EWvuc!7;5%U%-Pu{r&?9 z0(2ZIr;yY24A1G-WxeX7PxO?IrqDqU`W)EjOZSABbe3&+(&Hmi3Okq5{X&P>bkM9v zT8R1b`_@dqnM2Bt;s~+{i3t?3ouH!6fhG6sDguw3a{MhCVT_f;A!pcaAQno*$m{AK z@mV~Zj&rpJ5WSqkjxjsNL`>wb6x3@QVD=}DB@}_HSp&dhwTG9PbJZyIFz9bCnnH4p zJ#IFZ+*JE4_0tyRlk7jKy+D4Iy&q7YdSeFqU5C2A^N);-N9#wfP(_*jIW8fG@hQ7Z zoP!+xM%y97#2`$oSCInv%|rf7(rd-2gw2@S=|O+_t4Tt$*KmprMK9W~#cmPWUa@JWx6OL#)5bnjhu!JWPM>^ObB?Z=7B9PDslfxh0x4x=e%}**-UQy|hN?U>8e7bQaPEp_lMsJz4KFLV#L7HK0?PqGGt}=0*~-Abqt12 znH1Bt`BAH3Y>UtFAGjTq620ql7kwxH~>+-F@@c)Fm&qqS})Y{{t%QNMP0 z9NYKYq%2qeSiew}WtCv?^vn$2N7`b@m)#+z9JQ^j#eHG48tP;{S}ciSG7r0u;6|zM zZyo^tReU6**P$JNshi5AYjPe#bT<(m{{e5RHt5*b9E~ItzU8F;`Px*vw|Dh?P(nZ; z%Oji3;H5h$e5enyA(@3HE+JEI&CkPA%GO+N8XtzW0_V}v*Y z%8+t45qim?u5M5rc4y|jd)alMP}~6dOE4~z@N3Pq&-G2vR7K8{1Z)F*X7wd|cCxxK z?tEjL6T(OUH5p>uf`w5SoAPTg9$}N(QG50`o%~r>he*&$Y^pwsTdpRaO`IT40v^(6 zOiQ6gB|K-I($L<;{~x8x!WY&XzORQqW4bSB2RvAar8*ZnJ|5yLJkmgei}L7uApSkN z^^On+N8BG}>I1F(zrvacKQ-+A$1ZTdN@}|_f*W@}Z0?u5LUy)hYotS<>^*`ACiS<7 z+|JqYsb)bjyO}`noXTxj#9%Um^wf=T=DYl~gVVofN{vchg7hO#+CNF(>}MgXAh$w4 zXoBRs?-4L)Mzdm(ekAqY8LVg{%AvUzJRg~qgob5zMRT9#C#deHpnyiT63K6U`V>M( z#3~bfu}tskwivns`2JZVA@?Wv=Q!%|NEZ)%%uKUvyBN0aX$8A_q@1vxF>M=yyXZRU zC+rW36UtHv+ns!$Vzi?G;H0*!Zc%MwBj2JE@Egf$5nEi>*dG@a-*pk^k1WDmo+k{m z{y%{}L#KWFp;NI9!g+O_k{OkNucDiq3u56<*bXxmbZTfY~P`pzaFR6=GKtEOm7 z9JqG0K#?`X2ErYc{{l}0iu&8V79>`uZH?JimrEhuymEo9*z~QgeWj|G9I;e*XQ%Vm z*w|?$j$yc5D0D)Gd_emtiWof`J4AR5TLui@PZ=eKN;2J2ZgFTOB9LOU$J(|kLBt}Z z03N-mN`7YvaY{RQj;Z9{klbI7WRRtTKM}}W$o?^vhy+X_q}4HP5V77 zc`OZ^)X1}=FQ!s8&~wP?jrWYN+)mhD%s+0JhpCn-PnzvdEi|v*tdje8%?F@TKax+v z=14CXPMZ*)Q*uGci$=~znJEUm>I+Y9;&;jUsVMFfLcZKj+V{OSSw_x+3i|HfqUDry zKVI5Lj_;cnx85^m%qDJLilS7c{v@yx^DZ4&vMX(fx@ftW_RYQIw~wh$Lr`n&2__B6 zH1KFE62|}YoW{+pB+Y+f+7!hg{GsRwAnmF*{TuvJlj`4R-}xP~ebg-pUAPQu;yV9i zbRlO1HZI5a&u!Rv|2N~AO|AoMSAu)w4UWIwszr8{_dn39mj)3ZvydgH=ViZ1TA)65 zni=+7?z~8O#N7OQ^D%F;nZ>qAH_5o3^OuZDNdu~C;o2)aSYMjE%jP23JMT{}pORMZ< zK)SddO5M&)rl>$l5*Do_y}bt<1y{9Y!%O<;wxVgi1{}|XyR>^_{ANb{bPEZUnUm7- z=yloO6rB7*dG3|N0zX0*HvT|JHi%IvLL9{Yo-EDsKnD9SjIT9Lrj!VBv+Pu6je z{$BedR%)s1&SgH^3rXE2TYhla$AXlegDM6OSha|!56&p6aH?Pbs>T?>W-4^@RVStb z-XJqNIm9H9Dng09iH{2zr}m;Rty%pd5w_QIPnzBIKRj!Ehd@V!nRhh#53TPGjKD^S zci5LyRP+iB$^tMo?p9_tYW8vca34QXXW;tpLuc5)-f_g|RN9ctAQB zC259uWU{#F^z$uCxvBD3%m>t0ZyWhKkJ_f8-J8p*U4nVk(p?oTrdy4XkrQ`(zLJ$e zQ&aQR<%3!yVs{_iZX0nXKL6_{b1P%76V>ygFKv!L?ptb6)`a_xciJEZBfoO!!8}b1 zM>Cce%^UIFW>X^q4DFuRJ z`I_HJXUv2Io3{Vz{;evE@<8?w+4H)14qI<8hd2a-K+4NG5kq1g<3br(n2=Lo&k@sq zXk;NYMV+8@UxxbEr$)9#k3*SnYY9no9t28}L<-rz3aqvLCAW+!40PU1ZUk{LD&9hG zY6o2%xbfOO`?l~lPs;lkXTuG@2b{B?k|z2FWR`%}(KEC0pWG%GL9xUjw9=LhG3~Km z@wZR{#Y1D>&IJ+D!Hcr(ZQ)LGx(5CAe1yCOivm`u|;XNVyc#O+tSW{}A5W^~# z;Q#(#y_}?1<8QwfX(X0Ge8(iy)T!Eg9`TK=KOdU;`z3>^Z{FyIQ9ojw?;SThOFBSF z?nu{KmQ9f;NkqyASu$ydfWlYuvGvbt}>|JiW z`SsQj?|*+=2vN6LtV``cQtqjU70+E+!YgW073I1L2aEqzWAWVjHX^Cm0J)&OS!c_9 zB^7tD+hjn5Yf`E?0&6p(%H`?q1+Fy?-R=7p|1%kCKnx1!?Kw^Qr2GE*`c?y24oupG zM82frnRHNUk?~Qv4DtBRGF7Cx>XRNXI{<7UnzfWX+cptYF5?On8;0J!32CZCGVBzOG)F|k>sn_ z$FP-kXiv~Lsd)8|;GV~iOX(fs3&mkEC6-R|VXh{Gb>^bZKc;tA6|99_Qh(tNYMa?# z%hr1_tbjYEizKvJi-dUT45pfLN<5QzJbXz_RVSj3gt!O?bcNZ#8$`xDuCWSnf2OBz zPCuNfZk82({jtxz0)@$^qED-H6sYAbZJDl~&TxrT|Gj>owG#+ti}#=#`!|-lahj_3 z(lVtHZSSIzM8J3zDKwqQjLHx{!%D4~_w8q07JT#^x6sn9*p|%a2*Pt#eqwJzmP7V# zyk@ZX<}YI5&rFo+ti%o8{usn?swn8a7xgSD!l;bw}UyffYuqtubky>8|`15h`_CXy=K8 zY+p<{ugNbMQdH7xek$Ih)V-jk2b=oiLxX?;6N>g z<7J5!aZ5%06cd+yBZoLgp~YZ@%aE+TU8?K?<}Z760Qx_WVlG#00QXaO&en-(kveVUt!#=LL(r$W4?=5{Va%;VVmcoLCN9^bq4lu-38u$j zPh6E^a7p#hN_o3o(6`m%wQbFuRBCR62i2T=Op3u)#tF~3!ei1#nxFHf z)>xFA39x1ogL=`x#CZ%;G&fTJ$W5i?UrA~l8g*~ z8F~{XA1$@VtudMK@=JZn*=~mEXi}kH8Rw_J=INlV^5ccmYWKv!P76GT1<73%fk9XZ z_@G*hUow*6z%5B%sC1#juNFogv801L*ql#D%@|&`0lx;=l-+}KE{vB6{tzC-uLlwk z`ga=InHL}W*7tr_%v03gHT}>5UKHYPF{pa7J6BLG=5zm_^tV%CCYd=24F1PlUH*(t z-G304-tBb!tX>&dvEby>KAsUhj5Oo?+V{ViJ>dZpsyh3dX3qB&?yCzL4}>hZd`m$Q zxq~uQL4`}n=d8#!FtLsZOSPx%D4{f$-Yqh;ZGx%XbF?@$3%S#3M8(A= zqA1M6PdP`#y{&bs>AGB>@1>j5L+bxPK=K*KxW8O}PhtcefT{QJ1&m|zdvc($GVAm8M3vjN5& zA0#+)0Abw6ki5XD@dX?)QI3_S_$W+}6v435)e|qnEMo4t<>!i|=ldHmF7=I|Rx`EW zLnS1xjgK{X-tU5y3qyB|Rsov%00z4@R*PpGpWl4X156N2dVaD}fM3cRF+|p1Lj9f6 zFETO=UhG}MxR}MGKzu-HzU!zBVU0Fo|6b&Y-#w_~5zBKd$6BotJO{Kcke3MRa*=1S zjeK5HRcP5S>VWR6GARFeB^JELI5@M|AAEIHB&qrUW9jdnrfl}Y9zBAEVq>xvc!2&@ z&S*%$F;6daDdxro>&Kq=e_Kf}k2qCc@IQCLSP&EAce!cQ@yTWZsIFZkgAhcInZgA9 z%X2yi^QcjA%-+Fkt5Oc5pNH6Ya7g~mLixSStHs+EECSck=-9+1h z5QOc4qWpQl|1~W_7ly+9Kc+zk+W0vc3VI)VZ6kj;69@oGpsbTbKxWd;uP++BMhM&| z(CeimDmpxW2-atfl*mjWgf-3n0D2CT%BUlr@nhmM=p+SEJHEI|Dg&x8GS;f0H{;Yz zp{gU1lcg|H(2+kGJ;<>okB>etH1zTj=#Ll``}b-_&J0ulozxr4ao!m&T|!?j3*!BE zN>WQCz*JHRz=^(B<37y%71<}Li&cltVL1sxrBzC7CJwzUaF1Y2s!={l=R|ifE>PLh)edkPz(1{fBAo} z*q$hWIwkb7S4DhD5qZJH&s`#> zImJ#uH2NX!hthqQPqu&Dy(&we2WuFj}QX8cniObZ|nTROL zsgM`5efKTrG@QdZLhQDf_bt%`ki6nwz^%SyQdmf~C?JOH*X(;jGQv=Mb)dUZqs+P)YFIkV?j(aPxzrtU?(?lGqy?p(If zqGf5Odf^D6pURj3mn1)O$>m>Ly^U1)R+s%^^UN^{gU9NGo%J5oUN(};Q<(;thLBG!AIBT?oL;Y4^akya%vDCc)uWz+v33>i zzmg&SXTmf5mWQ?oG_<+DfiM`Ux14y|Cd@4K{XCrN@B=j8TMKeJVY01?d}jPPQ_2iN z5>q57l?@ZSIf88qBsq&C>s;4--~wdyn@GsoW>E0YYZ#u?G>a3P1^4 zf4@~k^IRck@Ni+NKk`4t`oTg<3o4uql@|>b-W3}l^Uq3r3VZ77JWGZkY)xuOBGZo_ zfB*{ej;p=>fIuIFV4>KXI73IqFq84GvDBhT4NF!$xCdnKP!f0#-rVTX)>VIw~cgo@?BWakthB) zzJE6xoNkMo&)ClZ!RuW4)YTThFk7~lompR-5w(O!wG@sk<|zu- zxf|0vVK(1cAzb(){#+)2ifZD+P?m$(q(sMXpZ#jMON^%TZ&@M#VzrCl?6fjv+!wJ6`mlM58U-3l~B-tU8fs-9Z=k1Zv5>#^2NOt`4ha`i6sv1dQ9>S(fw z@ud7s1y!P&t&z%V8h7|z0s*@&7vf!6R6b)soSWpufhh~g_5_4*9G;{-3SDs%J?`z$ zx&9!p*wUm4`qDBo*nlV+c3aI1C5!DjV1!~JXD4+Pomq=JqJs~J34+bCmfK`pO9U7p zXgy+o=1PMfwMB?Y#HmV-hct9AK#r3%0gi;9)KixR1Yn}%Nul+g)g~Q*!WSuk-?dhV z+&#AdsQFh!Ue+e*yI2vVppu=XWF4Ks3y>Qx{ihQy3Yx~|#M{WbpAvkzXamrM5{Y+< zhKjkHB;;=jNbOeO>EyS`p+#-TF#rE3I`43{-ad@Ss9mF_HDX3>Y7=|!y=SS|MG;%= zQPqfDD}vfutF?7dt(c+qE)rs^J&NC(_y1hEa?X|WJkPnm_x-usrRXFof?p$b2iHH2 zC!0|qLVJ1+)yNQuF-JFg$iyhIvya#LjVb$Fj(y0lSM~SvVQMh^K8XREkh0et$vyQ` zF423FKee>IPr-;kWM2K72Dyxzj{8S>Wk4f-nnsX&z=m$(a>ict=wmCWPAp8b>-NPY zU=K*d4rep?B8l6?g91C2v}m02;Qs-zQ$6T{30j(GVLiXRJ*~Sm$&6V^#ADEgM4bbR zD&M^_yB?qdl$N5Uvc!$e8|kNf((`uQB@?7sBV76HC1GB9y) zO^!kJJ*X8c7ibXgRr<57%_TVh9(N8@O5pw8s_dS$mpQT{C(dt1ewDHl$?jzL#+=8b zS<+70gkCUSTt=4ki2iHFZ2`WHj@!zy+>hE*3VcZGWAjNCvnB2|43YbIw6AUXiH;?3 zo|o5iEtZrWciLcUVNYAflgjLyDvaK;Nsh^XN?;tVXk7CV1JToUQXjX`XFm9cIrL)< zaI_M6FCDba%4yP*1e#379|9&g3b_BGq)iBcm_p``!p`C4A1M?AT0JD{&~^oie!c!c zD|QdJ2Wo5&D)Ftdh&y^Omnq9+RH$$*!JojmNritHWpwFVmcP5EI%UQEdw;dW;Fo9h z^g~@*n|YDcONXq+#On>>{8A9e{!tJ&+j8VJMR!Vda81=x9!tO^doi_+Sp+&p;WVdiKzn!b1E2r_ovSTkC*IsEX+5nw!aMTqLGtKV6AiwU| zyUH(Zy^m7u2T=a;0%NYHZPRKQ+*6NLOtC)@Fq*&Rx#_uxUz-K|&TbHVLc7stN{_^> zvUc8PTcyABSgefwZdT(6L^VgRNt~dG&jKI~4@(hPsx~+&; z_Vc2mV!c@WMxvZVYbAhuZ7kd(+5otDef)v{GtViAe-#kEiuVjWn5!>Kk`Vtc3%-d# zF(5)29)%E)asyMR=`Fuz2>Fb{`xLjFAzoI4!SdN@)ogfoqX3t|{Wl*qR5EvAkm{L_ zRVmMS$d9pjfiVpb_~<{tlOxgu*vUSMA#16haz&nOQ!p8XB+*u|s@f~qv|>`Al_)u) zC&L~LycjsvHoe3&2vQUk*ssWS=;imCBP*_F29|SI+(=)rMgBkCB0?%wJMwXN;3|bX zB1HMFZpi1y`)O9Gmfa@Kew9_CZL5OMybl_p%`e#`473#+^}d-BfiaEvT(QE`n2SI? zd5eo{n}x!wuTTwX5qakO9$4uOFe!VQck)evHn|fNiE&dOyS*~a-Qr? z82-6wfAqrLK&q&|TW44dUm`Fqn8)%?axR$VUmX7KiYWahPH+4wo~4UScYCkb6IB_@ z`rF?avu%vX168+Jc;onoS%7V zp*;cEKD-;JTIAmI>Br4HFW@*bK~>?GJdRF~AIrXmVmDVO>btS6QYzs+Z$pq#4pN9$ zH;>^nLWZo8Zc&U~Y)!LYt`g$`+o&7j2zEPrijQDhzYXlktKQtVvZRX9IR#{+Uy>SB z!#;%x;kmZ$_!iFljN%_(UDX*+@*YbSXhAUn+4oP_sKsDsKr^>;xqxI_n&qtzNa~pD zvj>veivD!W+CI5LDsDJXDO>rjZJ`FLK%=wmX(DBk&#K>kCdwz$J;B0x`PZhTUSCL< zIIx}k#$heTgA^`5)nbbNW7}WWz@D3i-pf+`Gj;T5vO{T#n`~98m?4-xOB8A6aF1a2 zHHEyNU%4U;02yF+!Xf}irM>t@+W9%RVILC;mtBI1g_E<3khAl4_Mqib(S4TGWSTt1 zJT~`#gYLOPPQs&fQOi^T$w~+dMMKlZ>Xje#5(ci%J07W~eIXjeh}f*MsrIjp8f5Bh z2|4tC3nV=G8|Usj)N@9m4FVyqrzB0giLU?*Pu>E-tpEOoIT=Nt>8o}02As!l=gP~_ zN*DJj|LB9kT;svG`bV@=ZZ;}rjv*Oo@$?yDu#&aA3k4Hm@ui2c8#!F@F5IHrX{F_% z>;@2eE{a)Cqe}t;_(W9f-P1AfjX;Jt;<#;-h2&T|E(3Zv$#}Xt35YuU_a%QM(&)w` zL<04VK*iy0(OHQQ!7PHnJ2W%-sflr2OiWX;SZOlO?}-6(c<>8Kb`)Ug`IEW~ zk@6!^2zs3EEQiaGSolbOK*6cxLd=mI9a1A8b`1Xli{j_tQ|uLMA@9&;+R|R(#wy8S z8nnTuRYVLKM6%A77S)uQV=4rz>`q4BJwA8JAZm&j5jnw*@arI=7pcKC;2PO25ZIYTUB*(TK_%S4^8lb44y^HYTAK7P&WA%ar z4+RFs3&Kf+hY?K+5lFdA)cCb~KCQjsrq4rhZ1FrdEE&W7@4Vu-j{n^wE&i!}S*d0(Sn)0qT&9X!kZ)25WyJclZ43)R#BOUlZp@C zzkeyv^kY}p338}ReDiet3k^9!BP~4bhxOX$Es3nh3IO>Cq^Hrq)r~tu?$D5KX6G3v zMMrF`SQ5%1^D3I#;sj_~8D+c4T-7c7`$s31@Mlxc*b$X~K)T=QLGX`9vhyO(ti?eG zE?N`SfD46?!Hc`#BKJ0s_`a-iJ!porOr*-jhC9sU}=`1zRm7b@3JpOf1^1THUA#b>Zz zNt`=B8)n|;d#ulEM9m2KlZijm>`wDDP1i&|D<%#x<#tU-!c~QD7mjay9nH^=YZXm3+l!9-qk_~Z?FtdxBGcgW zSzt_w9(m@UUQaBEa_C%)z-RfwnVC%~s<5#u`f-Pr-&dC=5z)D7;vTJ@x+@XL_|i`` z*&%^Sc7SGf!&^;a;6ZIvt8o;HgT|Xe2R98Hk%m{NA4!TI1Y21pnFoLrW7wv+SR~tl z&J^VQdW(VL5~(CGiIX=5MN0blF>+tN3!n;JmO{fG(|RPX(Dc<)B=DHXfu^k7}LdcEj_$01Qb#_laT0# zlEg~7v@C@6j@jJ{^rHAde!i{Bn|q0Jw1I^60e!hwuPt zU-GiwHH0z1(#`0aWnL?Qc`B6`4l`XHu}K`Okxkp(^yQS>5ahXSXtnx9PnSOT|c`pzc{C>j* zoo!*TpSbarR8PIB+>}^43>&l=XVc6u?-CKMFsbUYC}gcHR0>@RuJ$+Tm#(hF28t*C z4ZHGMY6T4(eyo}}l)3lBCVTwO=~>H1J-b4$=u1-evTbA2<>qI1YOqC7vB@jbnrXC| zeV+X%LL^|79Y5Fc-EqH=+d8P4zX%(1()+3(3Vg}Kad#LWau?+I#$h9vvX(jQqHL@b z)5sb_Q6Qgbb|J?i-#HBs#E+E_QT)q!wLwcGJs+O3hl1=NGn)Y)UV)5fF>fSIp^lGn^K^u~acJ zIsmhMYk5Cc*8FAG9I>Ht>wWgrT;8-3(H~gu2PVw!Sl)BlntkZEP@569yA-43?d)NM zvziTrldVqgm>V=oO)ZA4V%T3_?Q4}b1nh=$e33PRBG?MHZFy_6vODLs!zFkK)4t(& zckR5r4+NKWNL5kojg^m`8v++9f4*NAwRni2DZ}1LA&R(sm$rPWOT5#{kv|Jtp^p0X z0sbTm+CYkk)RB$W7X_c_YXHd7i;J3UR||uw$-_zt8E51Q4nN7sb`wr>Y8lZQFPE*Z z*+ajuMy^@LIfSet%fA{NXdJq%6a|a?AasQVzn1|%g*^AGWcqP530J15*P9xdYN+B1 z%m=Wk{^FNT;+JRYQaBc&s9gx>WxBy9_41`PrP2AuGK{M2yVfCIA>y{x6gC|A;LhQt zX$bk}%oe0|LD36eQby3tkx7w+;nGeS(qBn)ha_P3q^?_J?@4Egr?vSkFI-tJ)VT;O ziFEIZ8q5NNPNg1)ikpSXy^VYW7~&;G(s*}&w*R!~fL0}t-SH1F+7m&Wov&MWs0}Bx zg8zU1mL9?JLft9fSRZiqq9z&a3LOh66*`_+|53_0_%(utT6E=&Sn{a{#KHa@-I2UE zb443`y|>Y$!e9+N+nss)>0s=?nd>n;_nv-j3MVGdIO})Y4ZhCuR~Cti5*$l@Qe8Xx z`q#<#aGUK{+Uxocywn)$!+}5bM2pzcVdk; zg@<84@ia9J-pytn_bB8XiN ztFOM>S8GT`2M_=Et3&a{Z&)$B@YpNQ_my@lm5&_FGvwDOfv=UYT$h*oIb9~Sv^M?` zzzC>zOUJZ5GICvTx0=g@QH#-on`m&A4ON0Omx6+&(MGe+knBitdj)D^rBVVE6EF~; zM%m!^40?n!>FTRe+wTzy!69DtU~xC=Nsk6w3j7?|E)HvRlSu-!345{0HXAh(?i?L zP-yi@rE~c(2L#k9RX=ZJP%iaz)wOnDPb(%@u*nc{cDvm3BPI43K4LXl_(s|TEML?% zu>`rN!qgAG>Ak2kEZlL@FN!B5$cRY)d;0%H;o?HZFavN(N-zDZwzy)+ku)j+{Icj9 zIcpsxK*n&80SU;ENh@|Tx{$c;mP#c;ZVdv+J4r1N$m;%Mk+ChQ~|)vh#6 zp87!U&pv96X*SgF|5lO)mm<)&sgfZPM`Pea6h83YAyM@EtTu53Hk8)!^b%_NNRub% zuu(qVOmi2-gt_@=38tUV3uqi=92UbK$6T-EmPkkhdakoLWvmoeVEuKN&~pFQ%L|qU zExd}kb|rueLPp|B<~QF_Qq>YNmW)?YFWQOxHf6^IQJ1N9@V(8Kt%5VfES^0WVm668 zr87i>^M+s%e~tGtKO@QrbF^*zPOGiJXW6?xu6clWLp~x(-aWU%`kTAA zjNLnw*E^Mbw0*2mjGS?P0XSH)rCw{3k8VjfUQujzaiUH}DrwJCx>-qjbQ2Fsu2L3h zbr^AfR#vw`e&WP<03bTSPIW$%wj6(InZQ)RnIg-o*nA7s6Zuhr9(1z?gjarsSG9CW zev&u?Flo)cGz!1j3Zb89wpYhn{3aez(Xh)bv*oBd@M~>t-~G^`;)d*wI`JD7WQMw` zaO+rPXQ|>&Y6BjB7CqfH77w)*A0iVRy9}x^?G#Nz;{*R-$fU9u-a$l9dF~pxt?@yS zjSMZ%esZU2&8a6X%JG}hG2Czd+0wD%cV@VuZknRe3Jr;5e)ymU?g?B8dDW1drEQe5 z6ZD5-L8aGM_{)sKVaBU3kum1B5@3V<@(F3!5?!oVt1N@GXrRD~V|~UC4#t~n)91e& zR;6CjuONyXlD2zx(<5G0HCMseoKl!`Ubb_rdSotq%4#030jZ(ZHBmP$0s)J%yh^!6 zuKHB)KI6+cstqeOC>%eAcbE~&Wnpz}_x-lAr0gP~?H>apu*ug9?1G#Axb( z_%3>5k%R5-6a``1A&$vO{}IPzKml}((o}^UtKgdkZ(DyWgYLd9O?KXAXw@fcWn7Rp zz_Q8yB8Q8hk}vaq?2}x?-phcqd{b_et*wFA1yeImnjn9j>*#{}JYaPDOaEqsS%w6( ztG4dAmtw+D{{5;u-~VsX=h}lBk=A;3{e+58MiLrd-Fyfd@$r>>5hx>qe_&5asm@#G z`nYi`aSo4&*hm>SOjYI zimz=YeUsw-SbK?^IV^P`7(;Y@J*8-L*=ow#mR-wJN&BS(+stX~`<0;Q?3{sD0W;*} zS->*FNYu8He|8ha$1(gRQNMu03GrMSS9(3wTwYkrq-6cF76h00b8;&v{o)~WsOwc; zS9aX&@&3LkNaOkNzubjDf`3=LEuq&m=+9Db(nTNg@db|M3Yna5Ek*P4!i)JNwS>?I zY=o-^jQ0@-e#^2b7jZ)#)AT@TPEWuR2_>BVfDx?NeJmGLOYG{fP?19E>;Ln4%JMP1 zy4~Suk+p{CQIryIzyrRe9TJPZXX5I7Ksb%UU#N=1NeS(xoM8Qhm^^vD&+P_L zJdcPQ2MZ~qS!fBDZeG*>@aUZ-cgl!sySxLnKRe#_p~;>kUo2W8R^sMA%v~ZqOZ_Xp zh8qisUycQplES8197j_cr@3gO{|ODUO=dMj0^@D)hQ4OP>YS|I=Z=|10+TkI1%6X`Q7?f`d!wTOGR zS}uX2loP07ZAL(|2hlN{ldX0HStE4@jzD%HEVgM8J@(S5a}*$INZQDFvT9 zf*5_M%V#qS?*%4)(yOcaX5TNW)z^YJqeS)`LoZEqE-O~j6v8valYM}+!*iIX-4buo zK*@X`lc8Q+p}G-(EPI$t&3VtLWuiwNY0Abj`O<1enC$LSe8iCfIfJXsz*~-#v5_HL z6{T|U_VyjV%OJOq!DbV(nF(`!evSyFF-Jq=QUQ&kHgmrOsm{0qNfZ^os}@!eH;n;( zDxIh|#d=o3+hecbr#+3_`<=h_GYW=-)yLS=1OBWO$EF={LEnVX=4%RPc1ErSuO6ib z7;*@Fj@2>8_D3SU{{ zvarS`W%3K&&!GbtetAGnM9lW{U!Z`GF4v=XPN$P!^THOsWRPlZXa6aQZb{{R*pyqJ zA&(m-ccYBK*ACnf5`*0Q_SExq@4A6pBazcWp*!p`9wq$oh%Xjo2-LI+hL}Hkux#s<6dN z;N8ddDf}CG?#u7cfh07q0>f}6dRZUs;15CX#1j)gB?p$~-Z5P19z+0-5Yv3pW(gj( zmrvJ}K48Gy(oJORE(-G%^8LDZv|$3JBC4c~iX=fW`cM%g`f2Rg=PyiuS#-u3L|V`P z`HnNXV93Wz;Sr~xD%ombW05uw-oKuaR9zpL6$}}&P(b}jcV%`T+~jdpL9drZsK@=9 zu(CPPSD$f={Sg^xVGs`MZpN*Dz!l)76H&1;DFOKs@fhG3b-p|7v-vb z3>9;~XUznFq8vg%XLSN%&8D!bzMEz&qQZ5496vhqmyVZ9Ke;le8`@prdaagpAwIYW?!^Yoev8q&&p(Ot zNLlgDi#Q!g5GL=};SSx2qK<&X^9L52#m7~9RI!BgY{U+}bhtoWp&}a86f4IJelv&B zir9xNcPwZdKf`0rkKXeQR*dO1rP|JpoOwCw)6Eov4A2F^3X`HBkAY4fufSUcT)at6cwD-Ii|92=G z^NTcf5%SWg=Ny5BxW~G`)u$KSlO3xh6g%*+UUiL^!xV-xORTppU5yd3SJ!j48AJJ0 z`=vv#O~^0@jt3>)aWD*Tf~rBQTb0kxqEBFj5J@qIt%(QukS#t9x-oxF_I(pcxS!YZ z-~b><>9VxU_Z##b_JW??4@IGQq0JMo8;+*+_as;sN*nt{Ow-E|4kl{E_a`j<6rXxz z5?KW%c7_1)p>rYcs-?bM! zbt4n#=(*~2zd3@jiP^S7?LIf3<|Vh>d+WKNO+@@3!2Hjyy{65{jv?}ErI$`D5IRod z-G=tk*<$nb$?)T#1#ea|E#QP}!}=+Wy9fI5YEzQw`>Oe#KbO-7Hu>|hO89$SX_#gy zj)+Kb$Qt?y0c7yEDcQ3;YF7BO(yxtYOVyd|bHC*VeA4-wXE{P|y#8rD^?`VIRh^2p_`<{Szlb7F+MrH4C1})2)AZjb zEkZ;LBK=2_^qVxRwBNNO(Qb*DQY;kzIp%L6POa|lWiZPkHCD6}emeb;$J#W@Ig#}Mj{m|&X?wU72Zx;#67zXz^>wjVDu5qJi! zo`V>rs5hb6o$X%XK>%|0X9>ua+wH1RaK&(AXdsD!2HTth^ze@1*PdUsM8hflY=qJ7%k!bN&CJUE;)$DSGE40Us=Mr#hMdITw*se;*O>h=`N#iZm1 zZAFiApE1G$Rd!EnbMh-q=lqK5d`AY4 zE!m_kSp$&#dNq|6qm#il8T-yXY*6_8oo!8;8mGz5tj+5rhv1vLZ@JYiTF5DQlpP+n zMHO*vy02A-*l)e<8hYjswGKs2<-9T1cJz%RXSG&#hz|DlY&Cs297^uc%s6KB1D?!qMzYY;0)G`N@vqgy0GBCM%a3x;-{bjk11yro?C9PL!zB{xjjV`v^5 zU4H$Yt=QXAo>g*! zCB~U-qbY{+#D0JxVfG+M;RMG13?r3T?Zwe&i7hU;_++mhO6E*LqYj_jKKm6hxXjv` zJDR54N9WMPKzr|$5@~$AUKsDLQ1^2(%w68+vj~kT@=r?jK!SS0Y!FYTj)emsh})yl zfoA42!d}8>ZB{pu^9SpnAZaDjrK9m^sqC~=ZKsN7svC-8W&}ky#gp3@Mi!FUX z=FO<*sBMWtyh1IinjLpi!3~`>s+V)Kt{qhRj{B9l5Dy7Ma#)|&|el+H{gA{`=A@ab3=Zk-KO~)Wl zeLPln1Dc-D=AIpuQ=wJbGb?fDc~(_ z))S2dx#*GmR*GtCWHHO}{$Z>CJnHog-_%MJPn^EtDZaV0fG{c`V}vZ!IQ1UO>zs1; zPgLVw0o!)RAZud7(D%Jf-;}Aa%wSUyzW%>=g>OOqbBg}P&y>fGYpXjYAH5EfoCEY& zfZ)Y~>S|0a-J!rz(z(DG<_HoPhNOfl^oOKs%h|y0!si!e9C>0hi`yp7_f*98?QDL} zKZci(F$(tXj-8%XDM50l_R1gj_p0`JAY~7f1<*eI#w&7R@6$bff`RKToxgeP?4NUN zXa0YfZW?F~W_4dSjgKYZ4miVZR#m|2441Zq_c6!4{F$(0W87Ia9^jC{;(5IfJdQxz zdM!Eh8#Piz+b$wWXO)esTMg!mtxLTg4RQnOZkCPNE^&(6s(Fvgs&9+QmBmkXTP)M_ zQPZbyJz$+G5!rW90&XwpgiS}b3Jo5(El6RrVF72?GbXy(di>>;FKN^;SO67n18@1; zwe0e&CWcMQRLA~=#VGd;rV6^=8zo`?cj;q4^GUl&G{mD>3Ho2Iyoz-EyV=c%o zRY^LKMuo=VuB6zfpmV~`OME$YA}tds9#h>}$6LVa`1-YhfgPIj9S4&u)6MI4@3(IY zKn<jJ=wP%O1B8& zuVr!x_Z4+w;tenXGhUxeGf4wpE{i3$A&cA}UBM3e2Z)von=Bsa0#~WMX6WM7*i$-HM9W<0Ml; z01BLf2Ry7aLEf@Oe_-Aoc-nLGT|mfe{O^B&2baO?nQeS1H5Htq1b+CV_gIeKLY7Xb zZPMA_0(fvXMtXDP@Q>xIvC8<_tQ94m5)@_o^=Qdl%k0hWf_n?AimU(_@7+p!@#r~s zP-fQ>pR=g8ltx-EMT1rp-vhCR;ZujzV3hI6O8m&1{ElT5QF_2i5jXbb(gzHXisom` z*#~Je*+x3A-CBEH8a8KhxE$Nkt+%0^mHY53`LAh`)Ru zZqWgFcoBzTy}tEk`e-|9Ocr~Xoze}&rAOmkIntg5BP)V1b)I#9oj(~BI6%x(^k+0tT!Bjwp6wk5s@a|E=vk^`;s>9|2mcV$IOul0fz}Q*+h?wOE~xih8A^k zp+-6i&aTl?9BwVJhGVUMDKm182Xc_I(|$#KiabHW&9c3?f*%wj5pSEWzH<*SN?w1? zNxkCw%$yTI^n+Sw3{;B;dpD~9-<4P1mJu$;n!9kpNZg4^neOOr?@BTB_w`Uj4Pi3> zTr`S8cvszQ7|3V2k?Ms0GGb$3OsX(MXZj%gUF}-2w$WlZXdpB19-+uOnF8k)iMDG0 zLC?5%H5BwuP5Z>oGo*b);fH+|V=$UJBm>NzcAt8)!rGVv;%`FF%T3gTskufLY0s3E zK6%ma_Rya8<33#FN@eZNsTz;$pCf;?HL|NfAiWlky;(FlK7^lHBx06gj6`H7&=yQ?Z>>C zRw^LwA#R;{E@HQQ0AqHKnOwXgsj3R?GT8s4=}?=74>_6$dW>%l$tWXY;;xdm<{;>C z>?_7)iEU^1Uc1+jvkz%-&b{Ld`J7dzyWLH?2wxh%2c{JJ$6ZO~Q$yZ!)w4kkO0W4q z7mNq-m5xKuf5xFv0XVcR-etrumMIfc17K z)=9v*p3bDMNM$Y>j~|QD*`bl$jODO>L`p!t{xh2kMq~KhOdF#@?NyQXYMT;>jBsY_ zIAz>D{Xf)B`WEqR4OZ}&bdGKoUVz$Gp)(FTE>Or>%G9asA6wfmQ43d|iDe#|Y*y1E z-?BiwJHx^7OMC_KgMFBe7Ne*d5eY}=HC2R(u3ISIT!W0(fvzC(%PRHjoAvm3CMzqS z8lj<|N$Ra3Fju~-Z?9Vcil5RS7lHJ?;Ca`w7ogd1;`fLP#RpEvu$n~Vt>$1=bg0Mn zVtYjVYi$m5+(37rjzFJ$+-}?w8wy{*N^>3tGtIJkpmHzo`BE4f48(K%1XcccL>;qc ziL8%kt$!qCZ62G1C*tJ=5d|63uKxh#u@K;Qg12;8^i=RDWrEQsEQNg1FShLz?`p7K zCWFDy_CV(cm#ce(QcuF~VkP zPF@12(ncQ6*5aAdR1+*u9u&1NY;*`1g>gez)8;hYoebff}-IwYNnI z<;Ja3uU<%RhjP2(1c&x`VII{TcR}@#`XNbUr%45tmlgdCbTR}9vmn;NI&JP<=x3vq z0q%srcxn>);GHP1PxkVTN)u8nv!p;A<7T4kXg%iEK^+!+_JNQId&hv*{wf$(0HstG zihw;VF*?l$-cAueAd%RHQK%afPBF;7@?d0KJ=-i~8eg=lsJ`$Z{dNF21zOG->`MM) z=-HiY70j6TTTAo|IU}Mc2S&|QnEoIa@54*P7w4tjkA0S_m@?en$l_W7FOn!aeTcSI zNd;?{kp2OaO3O9EOeVVR8xALW7!Omg;^~Bk!?Wt#sK!Tw7fEvjQ*Y)!I-%&tqub{mM&o`A=7|Rx7@%Pdxob$TED1P4tn+F z9N+rqhznu_#;B{%ab!W?DFopk-At`I<#05KY-w}%bU47(gfM(@&~)*nwCGWp!QW;1 zah?}iy4&gfvBLQMkx;N!1Hv{%fyxL&Uva&`X59YiE4lk>Pzi|;o4Vp!HLUl}N4&h( zB|1Qq*%>7s5lN`6_Y3(W3uf&5H~sZb0#n-bL$)i{@DBzjA1oDjbtlSOV7gDqz(k65 z4gToRIlm9<`H}-e9F(m^~DeU&%KRnwqgd~;|#pYvra@r$cf)!AI@I= zo3ty$XUiu~8(W-3Ij*yeiJGb*yr8zGiL5CA0-mpQ*XmH^XN{jF>%MilH}-tr&{MF8 z&htVeE#W)Y+l>l!H3PBUYQB+0=Bg250qRc>{Qw8{kczO-oEL6 zhq1}qFr#U=bCEa)DQ>Y5f`riC@UtmC##!Nnv`Hiqn z*3_1;4+K<2kBQsAi?FP)4VwEooCWULzKg+wN`|~=Oi4`Y=#yFHg*_xS)y;-}aD6yV ze-`y`T9dv_>Q|z2I4QVFg3|hPBB#yN!*TX0sGg^p9o3{zxj=pUpZ2Tu91~5Ot$T== z@K{zbBU2qyUhP8lyI&R$TQJH)Ic=;X#at6oCjN@za_M?04**>7+3q>}i<6-grX51T z`intX8v)})u)h)upWkho<6R8T*T6m>NIxhZhg;uLVW|SL3!z^dOz+U8@>v0TMZglsFHh%{9}qvOeqSdr%R!0^K&w2uI)hSYtK&93n_XJvZ|mL z@B4=oemOy4N7e&xv6}W@shCg}B^5LCa?h{riSUJMqB7iJV+D0|eFe4bi- zYuITX2O{(bE5Z`MA_tcim(st|o#X;6%va#8l)S`i>Ai{%9>;RiZ-#H4T*fqY$WB6{? zyaOeQTPcwcEH3$P{CMA^Pr9q5=%u7C3vES#D30hL0bU2*QXM2+>0}|j_oQ~~+x@@9 zdjCq_aM8wU7vN~-I9trESxp);kGB7Qa7dst~vN?RhgFyd>x zu>j#D&}8ue`ej1uiH&(14XDzKDQlyw0WI?FXh0zVt<)OY(Jm3p!e_=CEeDLmv|66h zpK51#KfGrJJ4wO-FL3GT4(wpU_}C}9!DBw$A%I#8-csuI&~9_Zx9B|%01Uc~oE{W+ zeY*ne@Pray4RAoJXc{LFOcpDzgZzHJ3e+~Rnr)glT0iC?y}zh*B_*QsZaP)Y@kakk zGQgkadp+Mkq0d5|sfEeBV|lg0zer0k1GJ>;h}bJfy<2Gs&p>nS%xPJ+)5dGe@bdtAvyh$+DI2c-y-|KNp?&Ev(D*GvZ|*n#Snd z;^hIuwvh3vG7ida&pRN^4IR6CAWUn!z+s}AEP4hhf(hSzR^%ciIN5* zV+RXao6(7>J)zSSpdV-3oefVr%qYq5!EmWYYzp2?gBLRJ?tZyfHLQ}Rk)CmVR6+aj z;#%8>LvLDM@TqqIJVNZ@uN$vMX*Jc=YmV~}_-zs1`Wz~K8xwjABS4YPWRpOY$R_zmmlMz`dwP;%VFggT=TV%*yLMzkFa(|#@@9QTqW-s>k9_)*+_ES8% z9v1{Y>Wt>dv{RqlTs=SkxcOYh9pZSo%6qVHtGhr0zWI!&fG~&{psP4fB{+|!*IX=s zF^}1C%E?}i`5z53KfGLTu9d6YIhpUGgBSbz)ycmM zIIc0W!F-oeao(9bZi>LjvPPWO6fj6XnPh$Nq(2~`WaDxoE?{ozL`x+jZc9)_B3Q~g zttlK2%_|_Ur*b5|M@^&RAGVDoyV;d#LHx1pB_(63(#dg^pe6bTi~@eeaO2`p~X}L7Egvr9ggp1)t!n4k`4dXH%)&ju!B7K&J=ME^#>|KM7Q=ibc8_HJ)4 z#KS|)e+wUAdWrC2YpWza&_38YMk#4v3qXBWzdZj~O%!I)xfz-46!ACNuS>Nv6>Y;>Sy;U6WJ z8p@6Hvn|$jQ5ihcsW3&WP{at3*v6Yx%PO5Zl$-Hu`O}PUs|pp^V4td5kyzDM*Duia zJcL27qFWlc_reCL0qjIhf03iN~^4D-R!kG;f~D9aH(c z(xghJFG_kC$%blHHrAWKDcT@^SMG4e;&I+I3RG;l6|T;|C+dF~bUOIrSL#*`o6)a* zu8q~iN0%m&fwRPI)|m&SlHzcPsakKk>CoQ@3sG$e`F$38|48;mIXXy|Cs>T#h2Uw2i4Lwc_*u zD4h`vaFUr%e*3+Y@Mj_}XEV(&N0mb>Md^=-CZkF?fKB2|79S61I@wMoeoGuCgeB;X zkG#M9n74^FV3hDHoW=C7gACGVoBW@8lUrJ>pGq&|8MeV#@fSIL-RIFWr+bdJI(c%D zpNI*t6jz!Q$|(roDJd^+o0q=2nu|@< zFJgJHAdZ5-P62HX5W5k9q9XsC>tO&;@BM?1z3MvEAscQ!2n^#@^x+z^rH5F}=F1f* zd&HU5z<>a(;Cj-d?0|3D{ZJus<<+raoUfx0(xX5~s({(3c;hN&bR^ynw*&%gR^`gJ zRJV+|u}}kztT#=0bZw)H#q>abQWj$ajPPV3ph1L^j*`@K$_3sa%}Bze$sJ@smQ9cy)7mC3wQJj+BqQ%F|~06 z8j;#6Ti^O*y^Lt-mBc^rrIU_ZWJT6-z?be$0!PHLUV5%#{E>FsOJ8bT%)+Iy&t#A< zNRv=eV1?0ER7N1SkCi0C<#SGBC(4{ouBdso>-uK}FFyB(jl25CwqBi|{{#29Hmok7 z<0>p47FWC+vy3@nx?qrz1F16IZ@7X(;3f?1JgDdIh^gAwjg(Dwmwv1DYi{iJ*O3dj z_=pnMEKgD2>g+ERYCeHH^6^=^JYnCIMcb1iJibNzGa1qlmd|?C^b3}hOb^W*B)*Qw z)NwuEKDjONK49Xs)B&?0zu-&byh`O3eooT}v8Jx&X!{!*WL*$vp6X>vlIo|pC#NN2caaDTx1D;LiafZWBQO%0S)bGdR zrV$}=tGCAekCnZ@3@v6CV=^!`{V|D=@Tk}Je*I^4{i!X+r7gGO_etnp`jz`1{!zTX zsK~^kjeOz?b^j3P!OqUk>zK!<;J?O6K_D0o`E`pFISY@JUY$ZTg#7_^YEd0L^TO;_W+mXA#p@_g^|>usk(52cJH$F+(1_^!|TvDzwx zw0aGHmLh(zBO}O6E0G}|d{LU?e*tBkb1{yN;*-=V?6pmH1ptpqA`A?6OmzsX5h2%; z60G7rOuW34tpK-?A&l1;PSssuX5z!kxKGuMvV)SGRh~B7KkxT^24b@(;v~F;E3)71 z8?AS&y-eu99aRXXh5u;io%$DADr9c+%uFlnP}QI-({F&cdQFuGc=YRD!KaqGK-5Ml zxi3yI)|h)-Uka2jO)ni)L-(0vMPhOxR?_lEdQMQOHP|rl)){sjFw6ScXjXuCF4hcbl(Zuj@8z6=pEXrjT`>5&+On&`k9lpMEGzq`MbOTIL~%YlEU?0(wL!I4O~t`gi&6ZWWLRma}XZG)z(k_ zs=GM2J!$=o%#w^>LVC{>IAiBrXe_d7YcoLO~OP5PK z2joWGn;hXos;~#;B!|e&649mCgEcaL%h~--q4Amh&zv^bY|34;#PH^!nm{h|scqrL z0d@i8a@0=F+f9+%)?}@|1iT0|Yn<<}w{iAj)7`YS$#^pEW>llX0PAV%B>jnPE;$3``7RP2aE#5ea$joj0~2GZc9%;Kte6P3zTu*eX-*N?q#l_q{m1J398+ z0O=Ah@UODohvpLrUW;$;u(a2HvY?wN#ceQAkwnmLCtVn`;94p`vq(G7*)v-(S31`?l*W^A~TC->|B1k`R&l z=iJb@l(}z=0M8HaM7;f+WD!jR48pYHuexefUs1P&lFRv4d2G#4r&7Yz>CB~?I0(h? z>K7Dv@VO=~p5YT271@FJ6E0pwQkxwXdH_@S>CKiI*_gV&w|yMGTvR-~8ckhRP`krX z?uP~_7gMX_y2M+)YKnE-{s$PAz1Tjjg{35-tAsUmFbz>+sox+*fh@&_w*Cdn@idK+ zU>d}x&l&N`=#(Ew_U!OZsxTAb9u(kIgDS%Z6_oXU8~iqS)s+|-2pv#J*J}tkL9{$R zDj0qQYV@Ij>=%v|nLjZ%kCs1`H?KYG1<;@hE5)ydeZ%q)6+9WQmnT&Rbd86vdPR1^^!Q6F8=HT0PaXz@doU&N188oNR5( znl3f$c6lg4QTWs5u@aSzV^G#zoW|MO+1fCAW3Z@lGv>L(qGQ$)ndIEF96VKs_RuzTQFQATcgP%|br}$HhtT@dhtv8Xd`9a(M?_cn(Ifu?? zJ@RgC%6aYwQ|akPFx1RxuOsu+gv#;;0S5>C^Xpl+sT|s!Y+9MXK3O9Jw-tQFI*f{K zP@WMEeNO}O?Mcat+B1{Xuii%pLuYmY{eRE3XC`GSyPb`OpyE6fIXENf{uQc`x3y)V zdn4t%w#W1T01B(H_N?Z$3yE?D!UrS#{{W3cY?j#$lc-9p!ZgU~^gTP$i(wfvqc_(F zhD;Ib{&7`y7iK1@smZa12t9c`obgGpZJgedsyfcficj*utm7e5m5#J)j~eBd^~kE{ z2QnMa5E)`*R2+9a6OYb^P)?!5S@@9KOw0E`VnbttkAAh1t79s4xlOh4pUs6C1HMQ3 z6<*xa>jkso*D41Y#!pZ4{OS8)`*W1I@oO#Mk)v#mG6pf8)eg3%A6c{5*#7{8x@H(y ziT?m-WQeLJ)b%7r0wPomr?=zyeQO$yW;G=; zrG~qzs)Ujz+6D&U$RFpStmDoo)SpyoFNm)J!Q7*QKws(q0N1TK*`lb*m)<0~^2lt0 zc;IvRcF)#_HWI4rXLx_aaxiZ_{G!<71QYeBr#2KSv$I`NRv1}9ABKLFx{<#zTK4tc zG9F+)v`Rqr4F%?PC>$z-oCD1inN*e0+u3P1cicrGD~?;B&2C++cRF{47A>;K+n5Yw zjt9_G^AP5B$!i=K!0FPUirjThD_}=&xqEycv(r^#&9#& zr?>K@dmPfkw04&Iy}j5C3xl5B4?ek}OwFc^9s7n< zV#C~XK$)L&Y%UXP43A1o5#`<@(PBTm84NMV$2mTj={A)Qt>7_G~jm?yXJmFYx z%APap?0&TmLs@EiZiA~VimF?8Rs*TWsqa*bCj-%JZ%c({U`X}tkMoMuz|pvr$e6$* zr=Xw?YT($fOA3?q&+aAmkI&9P{m2vs8-nTcok)cG7tH zPd>t>ps~&BULA(=61NJizmmA)J;puy=R6-;hZ5mFR(YnO;fviNo_JsP8@FQvanDu? zK*rOIZtKnuYE0{mMIwDC#gAxS(&%||6Zdv}#EzsMgD3iYwKg26UsQIBsU^ZVe&CWj zlhE!Rv(u$39IiGqZnw!E)&xfQIO81mVe9H?ShyKe!WCF-B{qa8talK5eNWfD4I3tM zmt~j-xQ$UpAN$G&Kn{5r>^gc@Y_wxs;XsrYKnRZ|NMg^Nla7Py-xP{4?ooRNJgNYH zy1Bsway|3(r~;M2D!D+-A_JYcB|~xdPf$3??dWI%6?1OM6xfZT2s0ncoF01mlh;37 zW`HeQ%D9cCOadPu{Kq*sRRe$k{CJ=Ql33+eXJXQWv58T^$EPPhPv<}v6=sYWWILQ- zERHsi52rXIwg}Im%>rcs7=eubUnk}H)Pa(D0fsrx89AUuBW9@ASvW->ck$yih2!HXyEU>4QlGfA25X>ilc5u${71IGW)PBQTn0D<=Sz*gjQIPBD&n9lsg?ujZ+dka?VCj=%{R>ymMg z_j~%&un8=Rv4#=_LNKxQ+_~xq>CSPFa6dW#fTn)vWGZmH9E0!NgM-hf zCV(n=VoYSm8I%KJ)}4TSP)U0)nPwH`J5n{=GRj6W0qAkb$rM-%2!`!Ew^JZ>AxwD;s!kY{ z^(1GLlSP1z&dTmJNo~QK%wgtk%CRV<6*G!dpQ%Thq zv^(85!8#qg8KkyEaz19`13fs#A3fRfDE6$*Q)i)R8g83niE$JQ5efnjiZuR5n~&16W?Ze8pz%yZA1#cL(UB9wi%oVmESdAChs%2s6{T;}uDRpi=(bGonWXidC`qd0+wLDLCqXKD36Y zm=}7x+~rWaq>4fY80bcS4?=h+wNgfk7BHr~VsXa&w)~&FxMOYy8OQMsxTeht{$bvc z#K46r6QLo8e2?M-uTM$|ElDJ<=VNZ%hvp=F-29n6cXN)N1prc61fgY&;TI$41;A`_ z2^O0_f_UT%3 zgF3A;)=l4Lj|F#Rf;##ir?|(zTGj~Xo3ZFRZ-c&Zb1IV_Pu)|&>s<;c=XH-p(%0YL0oklWJPkwu-)F(rzQFbw8ae*dYfa=U*LsN0RPWv9_0Eu)&SF0G<>9 z*DN|<@!zd0-1RWHTWZbUhkgcac5m%neM<-0L~c(ZM7>KtTPO;>F@aWi@@`J-Gvv54tX6syT zMd32ABoH%(JeqbjPRCQG*!f_5m>aX#u0LO`OEZ*>-P;D-WYA_}UA}%odG-GQ8VW}{ za~W60I-K<99jHc#+tck{Kpz(+usI|Lml8Y#;$JqOF%9cU<`Tt8lYC;=8dr+GYj4%7i4k;%dXk;tG9mc}+C zbBuQMpn~PZ;sxg%P=#a5{7HSWceo^SJ+MdkQf$>9J8Db)rKtI1?<0yCGNuVYy` z9nhC7Pesw9ODK?Xa1Pw#A5l_q)R!|CRPheg*rci2a>IZK?gw*LIMY17d+DzWJcO!n z*e9NQ5#09vR2@n-HuT*pTbEaqWs3pFOyZhXGo0*u4~O(eU8q!GbmOPBU94j%9=WCH zPKqAnDz9Jj?@yTKm0rc$?RLvYizru)gqmBDpyYWjx$zQdPHo8a2s-}&_352ap<{$$ zsOu62LVjX?W1RgdUdFdkI=wf;alwhT2{Jm6$Nc{Q_2_all~(pPCh-zlskG5yGRzM^ zG6&b+^rskiGmS2?GbXw54cE^kiES4oWP*Rs(zNA9kx()u(ynd+Tg^a_dW0X!m5n*l z*%b$d?Ee6Y=3U45w|AhgthLaNUk=Z-oi|W*IN%e5pKO0TQ?TP%bw*rzhl{jEDH|;5 z)N)C{q~e*Yg({v$OKtIrdnn9${j;Vx+*c#~{#6c@_As7YrSP+RN!P6WMuz&?KtfMZ z!SuyaR?(Q$qUq?(XGqAw&T;uws}hbz?IT-|T#OUPKcz$5&Rd)I;vzPj7372dCaoHm zm_&J80D65rXaktlRyHcWr;K+4xT%qx*`a6U1zZ8120p!Nk!hOC!?mL*etdI!YjARUTtGmMqarrKzijIQpvJm>!auU4jwIng`ZLxYkqM>zESD!I^eqmZ6R zjn~VJb@u-N>sC$bLus?5wJ`y+jC*oGt4z}6_js{_06&rZs;(C~eNAF%Q+LdVfCo(W zH4$r=2qlycgv8`uKCFF3&!GDcHIg^jueL^v!5 zPPoVPrjb!b!rG$%ILCZ?)mU~$UZ-gpiMHc!w*b`13Q1Vb(rlv$r;GuNW2gTBUZyCR zBch7RATYT;y(;Woh_0;=E<)qe^P!!Jt_3c(_T>Bzz!2_Se6j%;-P_sbE zB91}y?^7gYI~oaOxaS|riyB=2(&wzK7UEcR{XAjYXoZyFi!sO#p1B=!`Smr%(VBe` z>Jj`R*Iv+G+T0{)(FOt){$Bp@~a&^rk?{1jDsGTt4N+yHv2%fk#{PN2Tq)i zY8pdvMpcf75QvDB5%kY~{{UK;#Bo{@u89e4vjKta(w&fOB>FY10Fa*jJ-X1u*;h!@ zqGoNwC%3pA{{YCP0aDP{p2{qIsJp-2{{R}c%^Zx|t4Q|l!Nz(4)9F&kl#IyCM=v1Vn>ymBil{{Z#B8cYnGGQu%($2<&l?V5M}wcJ^|!lV0WzK%;eS1f-9I&7Do!C51S+d&#%9~>sF+T zb4Y~vj>-lxvH6Gj{C}M|t^qX$#h?POA81%M>uAIx^Cm1GXGW;Tk(A0Sstzmsm7)#zUb&VcPM&3(!Id)K;O8#B`pOre0=TjYJx%5ATTq}srLU=u}IsHNW>v_8~*`~EVfeNgHcpNVo z{cBXsr1dcMcq8(T6mq-{-Dyi>I*&pN8(5kZEI1>#PQT~1D6*jRG+x36bjX=e1=7n5jWn=zp+noB~(! z$gAZ=IHM-}!tpX~gdF44{{WxTpR-IAG<3cg@N{;nuW}kof(9c8f&Ta5Q_7abd@DoN ztn3op4gE(!)7zRZV&rRq&<=yrfCf-_6ai9Y?BAL9pbTrf2(DDDoae4Mr*JrJTf&jt z0#omIZ){?o<Nv+A)A?4>mCT%MNX?Er)rhU;6Vrp5R{}vV2R$=PEM;mIt8#?0jo3Ii=QTGP zc06yy79uw)z;*06^dFr>;&eh+Ir}yi@?o=u9S47 z?0CP3ECf;>G4o*H06nmMzpY_3bw*b*^vzN2-!fqB`^Wgb0pq`H4wWgFBzm5gtM0^0 zg2O$1J%9Suq-1kSCv$B+;e{AI$6v;+Ga@^)xMUHYN7tHc5y|Q~P)g;19Xp?I&ZU%( zKf7`zz$B0dIp>bv{{ULen#8dLYbF^6Lj%-fo|J)-`D+;i87J?46cci3Qr=bAz?D6^ zeqHhUQDI#3zY_Q!9YI9)c#1?jj?9dx?U9b()}gB%G^_IHc=VIr_-wX>6`Kp#=I<4Yx><~eNg3RnZe!B}1Rh4? zf$P$dXu)N9kxuWN^4TLT+vU$(diwq~1r%^4UE4`)U^n~RemPSva7kl1eR``kFP_;05&U~#ZK_QD;35zzpDEj^dpl%7n12> zby-IY3GQ%6z}A~91Z0vRyGm_m&eB0W z8-u&AQO+n3`&}j}0>VIGRl#QYfD6|d=cgE43~+sFY*H|%@Qt*}khEDSsEQb2h+=l_ zZgJ1|w|}z2tveK?(TOjDY^b$3a!jYN{AIm&0hTO2Gn2 z8U5Rs$T6|m30 zh>a0AhyX@Z0K0v8K8y!XlxCN;W_--I7lJf=nivwWwJ)yqiXN~==trqw_jRLY%X2?#IcBpBDV(u+w=3vXw z>5xLp6mV?_%sj26hR1Rb%5m2i2R#i-6@^PHb!2$Qn$YAKm~CQ7&TxBwceup^v2IPw ziv)}$M&zy!Eu8b8PQ8T!6hHu3_imVjxUt*_JgFXxIOEcQG*BZF%=>Zx*@1(Oy!v*) z$74VZjzv~k86+Pz?oLPpzCAhucr`#;S^Ti3Pr6%sXO+frf!`j-p#r1}FFd3PB#fAe zE0zEdI*)vl(EZv4VPs(&NBk`Oxd(6u@!;?<2fYI(GwcOmIV?d{Q?k)a%s?d|K+tpyd}#CuvXgd?!VRG)v&f=ls8OBrHf zT!Xo~91l_L+a0I^{j>{qj~cNN=Wqo4%>MvE!BfFK{*+i(v9k`HCe-rE2+Hl+pn>A`Cje(2 z*!S=HQ%3}(Pd}wl8B@4c1RN((llhTA z(l6Uxyuc{o2VwQ&r}_LTTy{DbZPoBeIppz7n~u7%NrIg8>7Q@wKqg|1w&xij^#t~y zqo=aG*nk2;o}IrsvRW<8cNsfaanm{DGz*lj(JjM#r277SDw7_?+iPWv@H=!gnJwJA zQKo4E)KtX}}(27R7k10m;K+2aF zJ4VpCIT=6a)__Qk3wD$D@1AgI8)Vy9orIi$K#4;#e2d%GfFY5=$Qax2KoEuBj2=BG z0-UlWf9pR=1!5(;Mj;SmJw0e0jf*RCNPOYXZ|Ok?Mwp3n+JHH|R`|va06nNhC3DC8 zL#r$Ng-dP>4?O<>p0yKJHH;5D(xcrgTq$hlzp>}~epSwEH>HiuM_BtjIE`>|!90FL zrBZh@gbqLZMBJQ8q>h0|9Z#?Frk%}gV`og#+F4b~Ylc8ZF_YG#n9tfXJ+uuePwwy!P&4WJQ|2q3nUm>Iw-7la(42yM zW{Zw9eNKN;@a?_O&D2U*jk|#72lU6Wt4z{0TwaG8qNtwlZA<$Hip@0 zw}fZRA$_>~&stoAjW%sZqudo3l!20YC!BjzRLb@&p{VH+gxX!VcM5O_KHuX>)3Gw7 z%$Km%QCFCG*InO@7{<^h9uV5tF41rEvvHtc+q0t|( zIkY(hLDnd2>|EQ9X^!ZJDPhoX*QpBx!Wn9zsf1M8G%b1?l?)V@DSEg_Wr%t@ls3#*`bqkQW3DX?oCnMUQ zGc7h}-|CkR2{Ey5ybjpO%@Ugwq|EI%Shz^nF_k&SbKBabO`>BqbTI2>a2;3y$NBZD zRT*ky?zPRy%CN`rWApk7uV_AV9?Myed2-mv@5Vd+zO^c3saW5KT#5exh-CK%gZNdc zmZn*sT(wnT?z!$d{yzTn`Ox{%&)Vv!_YJv+U&lY^(xFWmscLj-sKj|@1N`^&t5Zh2 z$ha@j)Sh`f6+LRMgP9!l#o%ecLNn{{{xuDwIc{x5bsh)IIt=scRGF!5E>s`9572{7 z;9%d*uF6{gHV7H$b5kQZqfAJQHwNqVpt~Rc)AXN)eixTexLs0wZO+iZ0sA#EYAc$WCBk_@Wf&OFaf}~9 z>s1LFC!x?qaS~wU1?ilMtBaVD>rq8aWF9k|e=m9*g()GLP1-a>5(&xc$68U5P>N}b#eR(-3h|9pv4}Wa>)oNASCU|dU`I(M8V~l=1 z{{T8%tgmMy4)062$a!0-^*zsO90`>ptG4j@E18KT@z;-~X&Ppp%ekPw7PeEnXbs08 zb@t6)vp}fC&%DuX;m8OGBe}`PrYdCwfzwD$4#pr@1zn(k0Up#-L#JeQe`SqwHs>H` zjOWueYG(fmq8c@q^Aq0C0Cx z`8TRhL7b1$vXb9xna!>=4|Kc7r}D$%8jH+IJ2GZ_9LMlnsRmCJMGABuK|LXc|- zmUTZWoR9*HmgA`%Ju%N}=cx;7d3c}QJCNueCx-ssJDYdQI0T=)_lF8`-l~;LopfvS zE1Orh7CL|?;s|7B18Wro;QkzY;QecIrqql`Rx3$a;0k#yg&5x+dCr>IZsr*v_KRW|RZO z3BVnXOwx|Sj>ew#$-xxLv6ZQkVr&9VI}gYDQ(}_P=JZRp7|UaU^!KH5Td~%|1Uh_pUP$VF>RU5z<~{DXw%IHW zN99F;!ag&GC)mxClDMh4YMsuK$HXw*sUYK#+<%ir$#Jo<=A_v<;+@1(ngZWodoq@+g*|Z-LtA&M|g&}YU^Y^Busm~}L zmu-5NJfXnZ);_P`1+!Dg%u-XaFr#bIgIN0gE&D{p^gn;e`IRo(MKdlxfqCG~^MPZEkbpHT6 z)x^fdj!P`s3-=fvpY}RAAT&a(_=sl8xILL#U00G0sLh z^r|JD99z@pB<=oRg#@zFoRGxkfe=YLr&Gpp`Or~bXA***m>+0BXD7WPXqk_04ivi9)YLo zgo7SeBb={7Dw{d%Z+)~#a&gK1an~KGsS3tb^s3;o;kf{G$FJfAAUx*wQYU46Z45xi zZ2SAvGgy}_SYu+GsKEC8kALx@3PzNO4p}>LC=o|-TS13%N&f!JeAP9r3do}RR> z7C5gH=@4sn&u?&>!=TCNepbl*v5-0G(xIA0Ry-43u)WbGX=7#`V?=qLfJY>cA$!7LQ#Yh>W?!?p%F2d^AIocYt_3Rv!D3ltSrvkAF1#El9e**wA6~UVao$mZ#Ev%v1x$_d z<9AFC_qu(0&@!O6A@{3%uG>(8S0ldQdyHm)Ad)g)%bm8i#$XkJ_xAvFKC}%CiYVA_ zF283(o!H4z%gzbx4o(MN^b8?iD|~G76a)_}frl&Auz3fe>p&8)EE#gUS;$p6!5`kw zy#OM-F-0UXJG&~6DVwOz0|$fk@81*w3PpmkjQL=x`A9sDG0r$6ngFpRj<2!|2$&Qs zMoV+wvHFgkXaX(lHt*oKLOx)32|8{=EQNffpcKl?6!%2rMw&c|N@7Jv!!uNj=1QJ#FjyIW|^= z+}%iY+c?3E9ERRnFnGx1bH}gK8L6mt!v}585!Urf`5sR)Mk4}GysXEJ4aD~yKp5$s zq|}{Jjf`zB%-`Jk!*PDHM(gtKBj(5$Brj}pxczA)YLBaY6Qvs)MUQlvCHQPMlC_vD90{(E*Hc)Z_CN zL>E%|)waLg1Gw$n7M z$(H8>0~>um&w2-7vPWjy*pq>rkUhPrF*B*QwUDT3FbAQgO~tuaUzQ`u_2Pk{kV5B~ zh#-0j2H9z(U-f>TlmL&7px}Y+Kp9?RHw0rGd(Z@ts6Q(XM-%}wg#%z1$8kXhMdVq) zj01`bMF?Oj*ckwKp_IRY@b-fgD}@=_0Y2_Nd4Nf1Z7*BSd)T zi5USiBXs0v)c*iOSNosS&N^J8x-DgtP9NFnnxuK^(34hLGMva3s zE*tkmV;T1U06D9*jNDGTD7?XmhDTHB?afh}D&J|LvphH_IRmiw;)GI>jd44`xOF`C z$8YeW_8&ElE^ESWMpW*{r$2>F%v`lLp}TAhDd!}DIr`J)EzOsW+o;G!Jn{I`yBD-) zF{)k?$i_Sn!yc#Cr%Fyl&PI*B+XM_zh#Ubzk!nVo-Y`*xV0z~jT*CH@#no=zl(PfS zb?NEFOOQ%zhflhZV^1v)O!cIsB{pp(^MF5g#Ad6QJ)<+V8^&~C5a$P;!joX;%-t^i zqmOiGNg2V%6r&+RdL0Z`&IjGjKZ_XRtC+rVE-%>^aY8-0on{X2?gP(uGpD=T?m6qv^!tPQE@&NSh zS-BABsl9J>!A2E;s!}VRm%h^A9LB|S>BrKY*n38DTAj-@k+5Hw98^j~%1qX`x^SUZ zBb@V*+NnvGc4>X0Ok-i=+tc||xLus)r*Ow+BRxsNf(Q8>Y9z%eGTofT&?_cE;N*3t znADl49EAL+hdl?s_*1whW$I0cin?F{_-2MS^fUC;5+eTZf;jd3DMV3b#8D5u<&o6# zF_Tm~kzGcrpX#_=_V4LK6FIwkWt6^CJ$c6&6`Dq9(l#r%9#=US8T{(GM`9_o(X(%q zcBtxmA8-D>4kNLF9g#9LVH@PZ`ghOPvgIbmnrYG@3ZP{qxiCT z<2^g)+Mg)-S%ExPD&a|X9WpccW7?s_#!1}295>64FMfFd00AO*~rDdlKXfpBvX<|QT`P&i!+}xC0Er*`^WzKBlH|m?Bo`i|J3_CN4B%l zlVm{^1_F+l^v*HIpf!uJ)hS1zYgE>){?6b?3pP(3bM*fJB+%Z6Jz3opd=ugbVwy{7 z+z03V+=0hFzlW`5N~b9}N{ZHJs>iCrTWNGWXXRmv>h`G7v_pTW+ZE2`>Dd1OS{%_b zl1Pri<`Wj&sUDrZuxL_1q^u;d!U1(+54TKE>_bSSD#jNZ@r<55YDCbwYOjI-R~+vl#o46G3;qHM3IqYZkaC5!SZ?S?mnMdn8b+0 z)M*+e435LwKg`wGv|wsCcZ#RWVpwF3{e5%&Dj1t)4ThmAN__VydhjvMDFk&dOQ_5j zadUur4!@lRD3y+;^BtSyWzGrD@*Vz^Bv8u>19x!GAZE!K$82=S>yPRwa@3qpP?1e6pC$jCvglb@<)N30!KOb{{ZXKY?S|%Owd1vZB`t_y9c46w5Qk5hwGt}oe;-#@km^x0c_Gw!RatIx9&u_yfvr`p0 zSm>qkIfX!!ZN__y1K;cT)jF0NsbZAgJV6^T80>d?dXBjIRDEF0*D^Hk7H^tE8nUr( zOasRw{PR;9nv+hke)q(3!lFjXoOx00wU z2^q;aSB$GYkC7 zFWRl*k*&sC5s=$SKf=GofO_LN&jz_1B@IbbyZ`v-qtd$EH5v!Guk(CEOd!D1vuRi_i+@~d>ag5}BE#bJeEjkrXC_4d= z$2|AXJq0L2Nbi%BRgu+=YgA9W7Cnjo04BBfj!tTwjNLAAZ`+a2PsXBrVX{TXrfCVDU*cU3 zDUsbdI6F={XWEpJq$(Z}sp;}qv6kDR7$6=`aD9z(RM79IB+FV(ruOW+*sFv0NZeHS zBOH6?qMIs6_ALX%LC{Aj#GC>N{{RlSt@(w*QKpA&YtH$189QGot4!RjPsV~uGsnDbY~#1qh6kH?j@YqfOr8$o+aKaaKPt*b^x4D*YhWU5s{Eif zG6D4mudw&5n>Dq~t6S1fmPy;m=i9Dv+*3@46R)?sU7@?+bIBO0xtl|0xpqRC>yyVk z_Qe+q9FCyLyAq>gIVay7V;Dnh>OFvt({kc>L*-Wn3@^ z=IU|NoS$E6OlYF_00LzJanGn8oci_YQ*w-p?z^#`LG{QZ0Oq6*Kh~iaAo*;&fy&4M zVYx;Zc6(#%gV%}~)k)a#y;9aqE=67K9L7Zi$0s>BZ0Eju1CVlZYQ$?T{BOI>Qn(XVk<2H;1_j`$wgIP}E;NMsZ-qb^PY zjy_!Bc<;4n~=pp|Ap15F{`A;A-a7Ir;1~~W409YuQkIgtwz6uQE zx9ED%0;GZ+>f|%Cag@rG12_x(KwzBkbB=L94O{*B4mL>R&G}mxKy%5*W6%usqQsik zmnzD)Hs3B$isX~WaNd}}Ad-Em$z|q7*@8D)b#0Ca01l_V z2dAwFqV=_$^8WZkm}ACUIr%Y?2iA}pH=EA)JT->Zdlw~Tj$P+gh)|}fI9mB0Q$QM zXwGWqXBFj&s@_{E`OXN);GS{+0P4+E&SeJ92gE-TW7C*Lqn*+=<=e*H%0}z}3C}s~ zz49?yL317SaD3kp!RgkT$Br4Nh##|VEhJ}hDCY~ke(}yXV{sk+wJS$MY04B$xx5c= z;rP}eCQfi%+0o;8Jta&Bo`*@#nfFJ1`GU#F!4z0Aw4QR8rff#0?)X8mi?K*7m(E1z)O82(qT;>G$+ae(fPCXP$3i`iZ_1|Q zvDs+12*fIp+w=7PRcMJGp=3(|j(F`_A`Jln>U!0IN>wUyN6a(9{V6ax``5@j@;c+L zKh9`HBE620EyMY<50|bzbKZu^ayn5QcIs5%XQfG*i+ymIJ4YV=)D0Y+&RCoQ{{RA{ z$}%JXWmt{fIQ9Pk8j_KBPQHrY__4+b&T;Gc)q{gNNU!97mNV0*9lsg~aj{^RkOq?* zs3eK*%A5`{{OBxfZd~LK&VVfsmxIoG&`ro%H9Y<_6ft859-pNI66_!m*qQ*(n~ab! z$E7q{9cygToy@q%??VR7jF<*nmi07}AjZ17GLn*VpkqF?-i2&%8vOWN44yDl4t**c zHKusKi8TdB*(W8rU_T&6J0DN2b2%G9Gl&wI*Q7p%Pj2Z-V?M_E^QRfhLS+101uY~rz4N^(x$_OF6SE*7gzI}jY}@a4U?U{c)N|7%W<48OFzoUzQ6Bqc< zaNp+4!V42iUlZ}9eqG^h*p>`wsuUCk?R^(gpr-?_qaGC^vw;N?pHdoZV(Kg zax>nLh=BttKNIO=)e_n@Pe)geIY_!!v11kOO`Wl%LCTqb8ZQ2HL#%hZ+Rusl@o`Ao+XE~ zWsmUveSZJnKX>>3ygu*O^Ywf^o@5a2y|WPG*muRudTTOcb9-g6#^XhniLFX?w;BdNDn_w5}?+`jZMx zjht%oSGB4oz)LAZYu-&mIf4?15Oi;1)IJ`b?=zfF zIRjpaYfeMy06Wp}(Am@{to{FENApha>4`LhghH;QsdtAnDo@sG3CH0ZPpkYA2mgqAyJxp6(p1)1G@2Ou;fGN}0Xo`w#d9n=E&&;^>$x+xV zAlPuHQ<{#f^=+kHY@a#auF=T=)v79$nQou)mJ@?QFyei~fSI@uylN`tRJpJ({UQ;6ckUDMbQuDWfVT*R*lYB!hZZT)!TU9 z66?tbZqf}QfmPqFR?if+_9i^|dzquVR$uqKpM&1$*}4gN?IT!mSvdXUitC6cJxO7T zel<<^9>^WCf%xn_Ffalj*=9sP$hhil`RDDdHCr8-(y96>XMR9_RY~lT{0yDJi@aPA z?6}73<&PHAGp1lgj+Ym$1TT6jc||Mk&Oi5Xrx9$-Jc|{SY;ua znwt&8MEyv77^C2?j-@iDV&=-*B=`_@%CPH3W(u1=3mabn8%Y_ZZ}dPhZNxwK1!J6l zWR!HMq+7yBtI_>`kGp?&7bh7^pjftPtQ21vMK*;X^LtkllJZt|=>y%=$==@Vy%^S( zlv$rXr%6aO*F6j@j31DKKA?eJxEnZ&WjJHceXDe}fLQ?%jR4wwtv3k40G∧4Xs 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

x!j5?-MN%NO}?GSH|! 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%0DD(wS^N&XTsUv{;%c5SsJ@$Wr0n! zP{}Y@?<@U_>pG8bn#o^$YK%h2+HjeSwQq1tiVZU8dcZ}JuN*(O7i z<*vP}8+?B${-p8!jmLRHXBnoy1}g@F)6%G;i~VQK{B%@3qr9h*G10xe&FLhIBr7=g zD3b5cbf@Dsw}bv&iPQHYyt4DLov7I0*x_`|&2aA&izE9HP9P;*3Ubu?jwcF~e1~(124i)aPZuiY@HzD7Y-coi;aL%avp!;u%5Nq^CPlwR_ z`P#aW>7`av-yVL%eo8y}%Rk?tFgMUw`uZ$X`njvDO7%*fwPV|;h^@$2KC)nPgCUSY(l4++06;GA|?!j2}}A5q|jFeE!Lw)?j1y)5aOmVU3KzO@-fZ!=?Utg=-$ z83pV)Bl<N3Ej)u5y0-nK3(A?bD{KtG;(B#oh{o3VQof1e=IRoL8L9N9n z&BS=9F_Fi|4SIn-98Q7ngqf{fd{;M9p8P8TStvEiN^gTw2%T0#WlWs(u@jm|CQ@*O z5*_J1Mm9tS=IGU{H0L+{AfInus8su8$Xee=ZsMdXwHEFPt7@Fvh(VN@e$zw6xiiY%^dUMGWn@%6x6S*QFaU0Frtm*%xb)+Tw2l zkt__@rUTXP2sL4!X5Ol3Ph?U7T|krA%=hKXq0bzc zY0@IgM=h8>62=qfzCO~;Gt(o7HXqgEi4~<=!0dF&Ch${iZY97CKaD}4R|3CcP;*J! znJ@%t*e%I?mX;6qFTz=XNzu3;WIHjDz}SKBSloRUwJ8}{6yRh+k}T-SQN;cC?NAe@ zr!#jI^7tod5ZYmeMoR$cl}Z?Jlf4x-PZV(b!~zgACB985dox5yC)7!ztX?4C%4n0L zfGDYUK$_t(gVP`bj22jW&x}58$lDB)e-64ywy0o)og_*}1_LSDlLMiJTsUdqrQ-UZ zN(M;3afYY?a8*G*h<|_~^9*;tl_(O>sle7sVr~`k3`!4}%A=WM>5y==7$|KRA9b4; zm1oA+mIinc(ew{bK;nQDC-YB9QoWfa44S^fp}`TpRjA4#jb0iED^%5LhkK;F4QFHi zko{M`1e{)UmV4SH54_(SBJU^JxIZq1z$$T432bEzvpE>Yfk|yv#rAJl(-#j^5wc?} zZIk~~v;JfjDVYzysKaqpcQd0lt=@HgKV<85?hyLW2C+Lko7I!9qm&-iAOUviOUeiw zFyEJt(=g3C-#E#M4P)JxFW8B&b^V!L(w8e65v*fv*g~sbxG1eu`v959`}}*x?Kw!m zr+~$+wIptn%4ahuH!VUnKZ5slpLqGSI7$!cUB>K}y^cNCMsx92^2ChUc>&oVDRmZR zrT?zzMRT*|kbMX8$_w$Q7B5}X18POF>)rGZ7hSMq@AIttcW1_Ri-i;gzYr)9>m!@O zLk;wE$3*Aq-#3ELSG#Et|AT!SyifoJd$;Aoxzc;-7bF_!xt8jGqa7DlELU96W8R2^7KE;#Aq47y?F^`+CcYwk%t{q{&F9rK9)E7AeO*ncaEDdF_oX;d578m{N}zK^uKP zr}3O<*GdQ2{o~Kq<;gnx&s%QvHY29INq&efz-nbr`h+5BGV&|iW|cQRGZu%S0aU9y z>~7OubyvOic4|~-)N4ieqRSei6nF%0mRAyF}eNNDCpp&T2u{&F1dB=8CMLeI_Y-ZRPKZt>IVjx59_#>x4=h$WMjiKhPO*Tg$?fqYwUo zfp^87%bsI!VeYBPM1Cn-b7Xt`P*uM=!=&z3oAwV^PVt6uN|47^*Y9)R>XS5_cx$U( z7Joumf{r9PG`nE(@9ldP-lyVI{Ip*`Y4Qu$g!H6_4H(dc2VdXnthrv&3VpDq0(mj0 zbHGqwNsWBDCbwwzNy)J$&P>+~5Yr3c^1rI!^zaATp(9W9RAiMS?u4}KUw%fM4cCl$ zJz(YRfu@TLSr!RiGb5K3^ zPa92%90>upo5I7pnYCB5)Eqy(i>0i_c@hPNW41{=B&@ztQg~;*}}%XBFnJSfve?-j~Fcl_9MSx%9F&n0j&b zyuTFaAZi0*$xuS1QCbo&ijl66SFtKi8;J0xL_n;0Cwd`BCcv1RQ8BbWSyOicWH59!D0AzSc4xqT?bWZo@v5TK1-fb1WLpxg*6*2nQ3Np)G zD9DWEu%*d-Vr2TB<>X!AWSWxj2P+H6_@FJ@xWJPJcs9F{b*blDBZ?6JUI&!VOEFd% z^i43o%-?I9ZnQ+#9|j+n_*9y7(cN)wm?WtNlKis1W_WyWy7PONHJ;O1l{o_1BptC4 z1)X7OJbut*A!Rp##!Y6UeU@X;t-B^!MduW~hRK-Ch-`D@N)J`ey&B3;*_ zxiMe&53kpvYK3iB#WH;de|{dSmEZQ?V+M1J~VbS+ec(pKZf8 zc&R|!jK~YfAEekWa5>XZH1LLIXUu(3VFDGhnzf|&BBAFI+9q}X`Ujv5UTF<)-R}cj ziStbA>r~UP1HD0!dM)4u6*e}`;9Dnh-ak}YE;u+4AM|)4OYq2kuY(r~3JRsk;G5H| z^-;(259E5h!hGk6rWLeD(kv!Af$P?0HulSgOlmH_`~2@Wa>i^KbkBxn4QtTaE?_Q2 z9wodyyxMh8Q&6xg%|A)@mADglw;1U`Ag${^l3CQ;Aa}fD&ZW@Z*$p#jlX%u8Ks=ps zB&TFDdf%V7p+7?HD|Hm`Y0#9R=zf-ZNYKB7SnwBrnn;Y(ncV{~W9Fl*f+p#5VQKOB zF(<6{XL`Jhn*1W`aTG=6%6D%&54|qW6p1stZx5_ zmw5osUDVXWI6S}DgEyT@v(qBo3!}h$y~kfEl)g}QH-JPA%(Llzpf4MEizLbnd=OUY zx#IV`>v<;k44QIqgYaAe;AmeMp7FsXwHIV}aC_ADCp!ZtsE|qNtkR#{QH5GKbr9&t1ve=osAwGCIPIEG8 z^?+<0o8%&WDKK2Ae!(&Is+;2Ftbvc_|93NhD;-#-$``z2a%kcpLX8-)`UFVWmr^W^ zCuS@V>f-B6H8ntspsgj+>djtwuE=GH;H(v!>-`BysfmKAQJl@{5p+uXl1K)I_xZX; zx@0)2v0LQwDs6+R>nl-U!RF+pU;v{eDV;j4d`kZs;8Gp^K(mtqrqRR|O&t=X7Ya1ysKI!uWq8tu5jvR>h!*hYHKV1i6 z`FvXFy6%B3^ScDwnUM5Tcijn-;QZ=@0bLD<8>B{V)HOx35g-%KpIXo@J8-d!?_lh_6fRZF!d;+O~(Vz zb0uIu(7ED!IzogP1}7K(2T<{lhHZ_u*(Hy!k@Fa!MCK#N&0ft*sINnuONS1^+2Il+AQ12n52`^!ccpid;2cG}X+ z({3I0bZ9P*Elh&U;(Vo{L}?awE;g6?h|cTk@wne?6zW>2cZM zfsbgkBZNH9zi7(zO0=CoV**w-uxgGd-K<50UM1ST_ zyX2KErBXLEv!>A`T9kX6s*2@YEqQoBNL>51&n-^;WK8{!pP+(HK0P01H=l1QXP=Ny zJC$O;HXi5DjV5l0oKQXNeU;QDAD_ZSOdH|F2>~WATp?aAkZnJh+}O2wM|Y+B z!rg`XQ0Wg0_JKyZj<6|iD2gYPJo60_+JAIOYub(GG2xj?{S%tc<`y7!O0Th zp532AM=CsuMG9a0jryORpXBfi^7^;&dlpfWk)Z6n9#EYaRUv%2yFVaNjAw84-Tf{g zUjONZVz80koUEP2=u5U@*+y>le&9?Td22OGv^Vfb{9yZv!@(0>1=p9m+QDf{ZjJ`O z3PA?^gXroL{8ZkAHQ2huTny>gUe3VMe(fzh(xanerN+AT<2Y|YI(8xwAaaI_k2X52ulM_{O?*|1{BbFn z;{=ZXBS&kSxz%C1UrZG*wGylBLeSFHfvV(J?K`uJ z@8#ZbM@-bcj(qVv=-TB>saMD^8V->77!p3tFG|Bd*mbR9)9#jU@5 zsCrSWzTxBPFJ9s~5879!g9|p>bsH;M`bHF^T1Hb9pUdT_E1l~oo@^MerdR1|>b*0w z%gI>!C-U3>%mYUN&Isr@Ril-loMzP3az13FQ*~IO&Y|A+Yp+S_X*ze2TApPcir zNmtuz2Ukfc6)!BjDxOb#db60?Np5L9_l7A17hvpj2MrZ%iAjrAV7{Lm6{pP*#AwbD zi6&!UiXi>oLMzx&c0SQj4uU}k2ZaQTYLjH1FfAng0F4tMw(Z+UIXj?}_OEpaFGEyk zu1<8qk0*uyHirwZF8_;hBsB4McT+FIY6ixKDGX@_1zgCxK1%1fQS?bkSG8!gu+66W zWjKBLV3_0nDDAQ@Rm&4)D|B*{5?mK^^0FxPI6rDOY~x?#i!-T*@+8*&_5J0C@Zi=P zz#Zgy_Mb>0?dCzDlkUiNI7#32GRLENxqa{mT{ig~{A|iIV_@_ViEi?eP=HXKDEu_{ z$Gd-SWOwJ;T=17bJPyEiA1%9G=6!?zlr=f|MhKYEJ?4I^i7G33`5*DPx9T3_(e5_98zJRl6)BzLMX1|yLt2p;2 zYxpWgfULT+({&zl%_^f2EHlFtXlnH!znAaT2{&~*=0wf|Vf|D8^5>8 zB?M<}naZJMAQ@0@4a0R;3=YZ{?$Hx5?0>;j2TPLlFWQlDOXihFvJ$CxF5B z-Dh}y(KJ_pJq#@Hc*+E6_QBZd6FLI*)@31cHr6vEJV9|P9_fKp1N+3aqRn#oTt;Sp z%59h+Fq@IJ@1&w-9kRx>fDnpTP%dEa!Gt~r1a$)4(t}69f1m569zAAfgL(9P@}T)5 zA@^YOcjh@m;AMiR8#JG;+UOGQ;eT-t6rdQzsGwN3MXm0QajrSbPiSGQ#w?FEN^JUm`-VwMXxZ1hHWB_y z()myLI^F+;Un0(T_nR}`XeUHW?X+-E?S6H>o~*j^mYp&S{YC&MOs<;0td>tlUrc#$ zGF|~6)G;s8sQ-BTm21H}*^+Rzn&Wpm9bcgM&VYGGRL!2tck=b|pNn>jJd4=mi zmB;D{QE(0BSR1hqBh9LjqePP3ZKf5LkeMr1?HzLI06S{dXMJ-Ldb;L3I1sTc`C*Lg zF^J5s=_!%jZPQmhKsM^_y^u<78i$PKfTEO-3fKi zt}Nn9!jWn;;g^j^WS^xc>zdA5g)bY?bSbzWBi7WuWE#3=H(u#*OYqD`_s%lkJ1fQ2 zb@)h*Hu!RP$(fv?Z)8W4`$_StY;x33TI=p@8XKbt_l3U|sQpCdtHY&vSTt^10m|e$ zzV71uXQ}zZPlP6BoMzO>LD>D;q9S1+c;czyd63_0IVH@aHlk4c?`jL66IxWJvu%%4 zJT)jMnQ`Bt%|l=dppVRkgT8r=M^bg}rBE-tR&#)c6DoB44~UpZ>4Efy=6##SW|;TS zXwFB7;diO3hQc|)xIyz8C70^LwXJkG3@(FiqL;t4I;niya>8`Wi`BF3B0iy$oHrXf z1_n)EygNmX|9RzWn82S(!RJnMSX}`~qj*al|Kp=oU*o*y{5Zbw+@&?eH%W-jg}mbF zX82p+Tx;Bp<9L(UGAKDuX2DTvB|!hRb*y#VE4L0~azyq^nF*;I5gr%@D)Yy+#M(<9 zM9Xw(2M<6$=(O7UF8wXE{H1aJw((aBHP0v~Z`;ti26niA%pb-DtkoxW*Bf^OFMiHd zY6scsDdI8US4NvAOTP4kNZ zyyD;ue)tGTRl-*$YU-fzyX^=YdRkdf^W})1Uk=7ExZ|8nc5?JLNiS7GynC7Ao@= zc88%cATyc(xPi+_5*n6*y$y9V z-mb9&CQfwRvluXC6Ag_n)F$z_K0k&#J+}0tVY|u)0+HNI_?KM5oS|M}l!VrBV{nb) z<*$9Xm5=D^7bJ+X{j$-u*%y#dEs65=f?c?=Wu3wm+osugir6pT;Q5 zROome%losmyicB>0i4Pmp+#1_9b#=mxLa(-7FRs$@X1gds(jtdXh&4uQu4hwZ~hIO z0aQ9fh^$uvwkLgAnci0@&as`!uWl~5b7@$#0{D}v7FByf(<;EmzDu;WfE>@xF7Z(P z)4u=Y2=0~Ipcxq0)CK*0zp*SvA^|kyim5i_$oU^A{CMHw!5nddw>nJX?uU$Y0|pWN zxWJoBrKdI3>#ZZMpnmHf!^>PL5}qd$YV?$p%G@VOALs?)2ZIK-k7fEA6uOV}6+uh= z_7Q=?q4esam^lueZQ4m>0#yrbYg2=+3a)uSr#U4Zk`+UgoY&i+s7 zrcPC!Sb*=)H;ipP$u7rCJsWPyyuCC&4;?^*nR_owSq1N`MO=6T617AB`2Pu6FdIo@I%m&Qeq2AI zkzNU3@r8W7-}@#lhe=j{MsrEH1ztTMg+G7ddad}`%gGZi(e+w)%YLA?2g4{Fe>C%j zEtyI(*=AKa6Nw1;ZMTss(%>lVf~}_Z38eIi2l{FWl9iijUdK$BoelW?kTpR2B#WNU8dfx zLe}qfOGEa8qEE`CstZc?itUP1WM#6)$v-ChQ;~H22TZN?V}gxXwKlguVXu z*GPKnTfI6y-|R2@#4FO7kTzYdm^AwzEe58ZwcL-_E2qdEXGgd%kw4~mWf=d3Az0z; zAJQtdf+z6jvahbnqqO}w>JqT}9pr+O_%phl-eea67Q1$=hD7zhQy?3Oq>SOp$gvM- z;}$974DFA`A@o5EO3%!-aZ6c=;3F67*7-OG2+Z623soSqty)y&h|FyreG(|_F%!O7 zqf~} z3rqabV8}F4mWfRoJhlbo3-3sqM% zoxJBY2C{igyk*^z!Ce??Be)Mth5-huUl-E(B%r@wbH3-V@`D@ zA@{Dail?AJF4Bdd!;C*^Me;8-nVXOUnCRK)KNJ|j=yi>ooNtb{`m{9tV;oMe@iX8M zsgo(1Z7wVV2?>b^%}VT#CP#;YKL*R+!*W6Kk^v+O{`OiVYVR~&T7LW7cgRHJ1UtD& z^f*Kpzei#7exeECcz44@GNFL^`yk?j519qzR%-1_*3YhYWU|40-rCrY?b~8MKL|~L zRxv-mDN%mAnbu_;q^~E-biZN3n#%4)(`99+BPWMRGmC|717x_j)ib6m{%^>7*1)Ba zB20XacDhebg2bPyblAAe&4uve8Le>SnjutbQ3>J_lyOgz+cTrUyZZT4>Sr?$&Ym7gwGm8p86VXmKZV`m@qHdp zy>6Jl9{;{``%8!oyuhb4q#@Mn^7|3vi*gPoIp!uNR`uo`Awepd=tOdU-}#i#qTD4f ztB_uy4gQ3``vwz1*j?$nA7)4I0+J+p7|tRt%;Aclyq23twih2~1ZN z#_T_RmW|FJ|F~B2tr%(FET`}**^#TW(0NZ7g+o9#CZE)u_L!Qkm-gxZE_gZEuq0`j zFvV@u=X#2~`}vR-ZF$6aYoYilV@9%C)@QulTvn2H@nq#>g`UIDY@fWDAd=Um^CTWu=_GZ%aa3j_1kdomZ@-|HA~Dqf~Ykc z{@KXK@I;42%y$@`uL&MumAj&(?YX2|ZkYWmS}kKPFGwJj0tTXEt#$p@LdlLU;~g*F zHFEGJwRJ&t4*v=Ie(qV=C1jY+22V~7IzFTi4ZEL;?AMA;+oUKuU)7*RnDw)matoi& zYkEK}I!Q(VOR6O979k;JS4-Ov!pAVWXj;XK%gR^%gE})!qiFvqgQ(90kNK#?vUiYP zdv7lZe%i6G91lmCVeoLZ0OB*PL`BYL1Cx|m6Zsz?g;(ebuG-xHcADi)b22Eq(nQ_J z6H%*W3OQz5i4otPAe_IGF^dl#D>zwlLwMpQL4+HOkEN0mcU}UMptlVl+6PFYwkPl> zvCt<#nnb#3s2$J&77@Oa!Q>h44#+jffvY1CsxPERNGEI&&mTh8`UVW?#^no2sDlvH zp%6B(Kp`#-{jf`U%D;pB%#7%Y+X3#atzua9$UDI3ZR-)Bha$SOi~$&LfYWBtz<(ph z$};-LepO;bgKpHnYzSvDekxywAqv)RR5ySE@K6Syn)&?1hXC<&0S~x+fHZ)5#b)-x zlrldc-^>pPlICo%0B+%xVlptW0C1opJ>3tY<-zF2Himlw8NA#FDBzNpF??EN&@9Jn zMAC{rumw_r_rM?Kv>VPzSw85i|?!e!piy zjo?+FUSm&M>R9OBSsOcAOil^a^EI-3Z*t?&Sz_u-EDDGL_d%r>A6hZ`sv9Tn<#?2r zvrV_JCnV-)vSyXfOz79>-bMraU5PN6TWR0EBL07qn8Qjj}(Ys!* zgWJULPbN9UD?H|_!Tr+IwpOu@i3u%w19MwF8|Lo)FI7Z{3G=n}`pZV7%-};OMMg|n z70I|;J9WVQmKPds`!qdqOm$4?pl-Gdov&bedXQ{*;8A6xgsQ_dkb79 zaii}{ZecIAhC0%rm5Fuwv^H?DB=%QUTHE5Ir-G-4r&!GYC_&sL!QIXBh zb$A>U-oaUo4&oFVB>pz5YNInHu%3i+7E7|2+Opoov2?-69fL&{ip)eC5%-Z=ldWV8 zVXhIvAWt+uxX+Qq-~ZMf(Aqp8N)3tNA4#*Z=5_@dWso!L(htUhuQv57sb=6=luSe5 zAns${Tb4a{_Rg7a?`IKFXb@ffwEUTMvxoDH=+|Z;VU7YKDF_j{+NLXOT-*7_^-LJ$*S&<2?U5*_N zrrlp-HWNNGCcK*VDgRW4QdEQ@l1I;0t+0^}Y_~JO56^(*?Fv3~md|Ozu?)?#UA?i# zrlz4orHNW>3C0#)EZT&?XxVmjvHmm?wab()=;~$1&SRTyzN_1S=tS)v46+)BeD}dM zH)-x;v>V009LX}BmVCs++ST7&R4$6Z4CpF@IarGCivX(Aoq#5e1PWIt|2AX{b#OS` zWc*itzBxOrU0bzIJqoD~R=lEaZ@uXj9f~w%9KJ81Oxog3AZ93{;cfb!I_vUlt z8A-c4RCHPGI!V))GlOnG33KsqGWY-~#a=#VdOFjgEYocj;>z)nac?4^9v=QZ&D3ww}~1-bMveYKyJ zp0hUa_ENu}0bjF;f^{t)@tz`FhBO~<&_3XaVbe-F%XwI$ql9b|M)7Fj#K02B>%&h^ zqwE3sV$R~4=b2Hfq!z8g)9%w&Svq9*VCpxt=2Qz}ri)}I_RYAu8d9f!UOcN5cw%ezdsoHipbJUE@fSUEMOm#0(2Vra&-J*0(o^`~G z>M%N4kLsjkL~v!ujWiNSeUgaqyoTS3P)gs0Kl_E$)c_MHKp;ALWT z7=_ok*Ew}SlD&=jKfq^obtT?{T@o4eHAgZ#H(+X(d!7ExtgMle!RH<1<)C5zAsr-t z3h(Yw;76mInfEqR9O*YA!ggUktAA}-o|r9aa4;DZ`s)x;OWk% zW2YFQG_?{E0!0J~6qUUQb-E<*Qs`DKJjZ}`DV4HwP_PYRa9`6q6Rb|$2fh%%cZ0}+ zJCn;JPplx1y-Mc{-X-&>?1)rhmnX|c90*RQ_%gC33fmFvMUO}R=w(AhQmf@nTbtof zAV64SUMzZhcQL_CCnaJdpIr_etO?cqyGAtu^k%RNyxLiYBG@LCGS;3JIdza~R<=-kPd_>N!`vC>aggm|c*&d6fQA zc>;;e14yRYo69p`m$izd1Yl;-OFTt_NZhV>dDD6-4ePId4{lt z;jP(E;eBja6qc+4EI~HN`xK_@3L44@?OE)TX0&@D5qEUJ3A0ng4KEiIawLcIxit8) zlrlH=q)H(Z`wS0JSfwBLLEc*?Pgc!(ktuseVBX2Lu~YtXsQ)B> zd`d${5#DO8mksO-v0Ii0yc{?47mM=WWypY!b!gBq_0?%$!tmYzCb(O3IgR?715=~= zG~heTO9Fc9&H;%b0cvLo*1s+qq^3&MY?F?_8+sE_mSLdqc;WKh%E7J>3GoPBRnos7 zg-pWdCC=rUUlyi8bv$97hadAnV<&TjaTaT0khiehxBDnBarYrSb0c%-;qT)S1O-IR zwzOF5%1V1xIypMX^vPTD*AX&4<*Z|N7t7ffw}g26iKRoQZa8oTH*T@%oYN&plM^06 zuDOhwb5Q5csLhcCj#<>bTeQeA_SGyg*;7u|ubbw@QX0fk>Tg0)LPfYQi1^}unp^UB zcVRkSk~&7gkM#z=b2*DtW8!Od^*x6@M^wRPt_aq%GqA_hI5by;3f-uZU|o!gYG$=IAZOt_-7`+p0^k2!!go@|weh#lk04 z*OD1tM_VZQ*U#J)Nsc5#gjVxzx6a)%2}DoqtM<3*YVLNf-vy66H?_1aZ@zhcJYoD( z6WyL(eRs2~yx(Scv@-YPVPTM~+y1cI=E8i^!p(aD34#~~I}}L`V%41e4fh)r_(jWJ4;_-Pg*1oUlf2qZJ2QqJ z`9DGV%pLQS?^9Bzj>^zwMhy$QtCPc{DUw6hv zD)CdH$lj}fLf6@*C>qrqTB-c-o3>QJuh{nA{TBu^I3dqeU`|(?J=w&K`a`>fb#?`* z)8FTvj_G>2!|(PNA4uPSnPQ8fG23|Pef+-RYP^u6XPfbk%Ow6z$D)MtgxOD3kO1@M znU(*2kFOh^aVQ-#u3WpME6an7u?x?=--%3JzA}-kd;kcbwrJ$j~C~JXj)w@1&!@GwBMWVt6qF=!!GH+E7 z<%#5DHgN`+^8c(2m*n?bI{Z+ZxJuU8Lpj3b9N!Jdf-9xXe}d?Fx%w7meaVIQv9Uq= zh0u8glUVJrHcgsX*BHu{@Z5=`LV7=&srAeD%TvX}*R?8HAZ!25!{sg(^d%hmyhTz< zpnCz2S0A#UHIv6exF&UGPqLooh5RTOgsq7qFW}5s>|wD#+y?PKYSTIStmg)Ksj;a* z{|lD=*khahomVPeo#bQC?}Z}=e+JGoidQiJod8~^T^&&R`iW9N=mSh0LcwE3xj)tq zb4$Gx&_MlPN}ojrUka=-0ze)d1VUw)&kvr~b$IIvLC|&?6NE>JgM$#-Dh5J751gQ| zukt>-;Pxjgx)xF+j95)-|d?w_5lSd zZqk3qh!24(U`fzAV7ZBp1e5wsR*2Aoe-6OyK7bEWIQ<`x0~k()$TFc7{{zxFV||$% z-8{iJZH>z4Pz|fuuJeZiM}T|&kq8R>tqk}(tNC{zfPEXca0=I7^Dg1ffE5EI(m%p& zfsgNwtv`!+qzxES8;Z98ZeAVXkpUfTS8eYJK*|HGwE ze4?go?T4N7cLKRlUeRAY=xFjsg5dPze0pMIYu{clURRrUBk^Il9F4JolRPo6hls**}~lHXC*z z)&vGl=DREU%Z(KbKj%wL#Cdrm`>C^8E4qh++PTA>q<&~o9w@1s$uzaZWxX@o7rNE4#0U8`wpl#7ayxX6cIoQ_)XK9$JxqP%l?Vyvy_^8Rhr-QJB${Y~spY z)qCfiU*#_RP1H6GmQD+r{rJfe<~GaK0mR^KD&@8wbaSYaZo8Uu4)>iH6j%%IhW=IU zP_vPbqikL@cI7>nc7aU@p)T2Wswzd|khcKwfj!(HY&>=^H84f8r)%wFFPs5%84l9Tk{8UIMzU>^0 zYz`~%f$DOdfyjoFoiK@kZAw^nur`udu&1%JhQ&YOS4fEcUZ`j1P~cP9L1GaQn>H`O zd;Li_7WH)QHOZFbjCdQEqKTeN=Q`h(d__t4bcR`uBqz&IRQt8i0a)}F!dIb8`m{uK zEzT4lqG3Ns+#9f zg8@g%%U3UmetlD?mtWJuf8{o_&I=KyXW$SlliPnD{I=M}B(EK*6{cHXz7Vlwupmz2jhjrg=mLq+c4T0i{bi_*8B z@_At`&tg4!LX`vf3#k2ySl++0?hENgr6!%thB6to(@=rGG{A?z>CE$A0z@I#qF}t; zdjF1>m{hEa(A?RcsUPl8byJGL7MbZ3@AEb{Ifgti?{$zCY~XdDx1+N=0r9oqZil9> zmiSNt$Julj7c)a~Vo||-=-3ZYF6Qif`&*cC$-KEL0Xeb4WE=E5K+2+q>kF}7wLu3r z%iR_djNw#SwnEqh*-UB9>ZTAlZ>M2T0w~&kO=T+ISq8wPLG?vH-?oX*3up? z${KiULp4>A)JzBJ{%lBz_WQ^4+s0-&&kis!Yeyb|n?3JA}bPeqfD2!t*cyojpQ znu}^)cZ9zebP%;8^ILBRQlw84E}1Zprd2efb~KMvNwLg;nSW>T#bnjGgoFZB8FV*2TCGyRSUfzX?0CnrY=LK|8vL6F$`II9CFMU(du8>zT-x-)&_hpiu_h70^qN?9U(W?&#SzUA|*lFLR3gHOW#|1u& zZrx3)Zu6kIlkYq`3Lkp-scXTLu#Jd3po5TCR`zQ+JLeGR&6SRtKRS1WUrOBd4TPt! zHtK(&hA0n5H12_K_k3v|_OFQPHF|yFSr>f_7R)F1&p%V65%?wea$Bxtpt`g{==O8#vHeL_&E#TJ4HN~0JbhdY> z!x&-Jv{TNeUPg7w{p{;YL2!*OLz@{vV`Zyg z())AC;AeiK4r5XPSQ5DvCC})ER2?RRX+H+JMQEGCrO~+c{i_!%ORRZ6H?&m)JXXW5 zg=yyyQ>zt1euar(#5;*vVjAEMw03dL3cJ>@4nzs-?$16122?g;n<3-jslS*i zuCa(zZw!lSzJhdGumo~%D$i!&xiybMLeu=%WxPT#k02Ha7MU!gI;frfv`bULwy?Xc z{n28P`;j`hXfWp|pdx|2`pw*_hiu9%o<|o2U3;1SJ+J0ocua{u&RA_A3?M~AG5Jh2 z{D)Kb$5DE1j;ym@v5~0glQ1p8NH8@S#q6MH^Cl zZVfCxMv_dJHSCLM(Ts8(FesS%6Vqur>73)#-5pybHSLfzc%kzZ5ZUy z3LX3F3m`*W-GC;};AY+TAR0V{7TNZ|dHcvXs|u85?{#;%MlkIJztlE;nsb#yC3hYd z)@9SRQv&7h%^0;R?87_$g^GrgW|9*g*x4e!7vvW@CyRI5#-9i!X^MvUGKmgpNt%eu zr{goerMzu5B7ef4`7Aqrl_^2Q7ud{H!NQ3#|If}lW>2YdsP~WdARuVbc<5LQ;ApPi zi(+xUEX~zcA+L#=t(X^!)f&|1ba}KU-`jJn4g_)Q5C%OX-*plM#PoSd zF(}ZOC-cOoojr*rKcu8{Vm~G*a${q}1CK&31U$phQrOMg2>h+pYGLJI&+vc4x%SFs0b9q4jIfA%o0f$0f^ngH$3N+ zHJCbQzKJGdFv0A+gjB|SI&7kXUugo;j)Wq0qcpo$+g>tNXou9~I$X1617^3=ZofHi z?sNhcby(k3-BYjAu^pt(KYoDNHDhV$?bv1$ta*v`#oXfNr}Ng&s*WGjNU{|CnAC) z_NT5=bQbZzBOgmMH@1RI6LQ<`GGUg%Co1v+*HhW-*@i=Ve+5S)uU`NUH~KAZ>L2>T z*~dL$(cVeT5YZl(M3J%ustUcJA$$ryKkF%zMLi>jonZYzazCl^B}=NH@}F*^>^$yw zbG+DY)&&#uE6i=MbMhSOXTRG}x-PX-waHOCU=G_OBSfXKXc%Nh^3 zuvF^#%zBZ7_q|$>x;l;RpJaho;=uK5-(MLkyUcBi&2FIoxm0Q1K*Q#}__%-nd5JZt zkWPw^Jj}eT;eb=k8VdsJ*@wq|>B0>{yiy;$UBb)df3f09=(k@u@6CIHtZGYb%f4%~ z{poXG6XlTYp;~|gbcFrZA3n)e#Rf`Yyz$SVu84}ZWUKwnH5epwU(?>c?5Tbx zt?`@PR}9`0F9a3U3f+BizS3Q{@7wnd?Pv5K8AYRs-U6wQt}0}GoSjRP=KfN)P06?V z7Q;%1ofB){-5UYmoleyLKu+qcm`lZJgkV)u^T4%BPaf5q&HwP`e2 zV`q<|=;oYI?jgXWeJpPh5|$SfZ+@A#h$~S1&p!F+1d4}w`T^$7aGTs_t+%n}vHSCXNq1M_t z=v&}p?`MUQjMKK>8dw*2uTmWC(*VXh$Ge-D7!uqI6R-PC!5m#F6A$Azg@w@Ygu;T; zvV}!~kY%R82{7pdcAbXXDwuSxuTuDqcaGjmw|^`8Mxw)i~J0z zMqHe-g=Xs0!2v*q&?dM!?*c%Jni3c7XbE!CUEJmprt-o&bx}?KktxjwcHvozvoVMq zqtn_+fPDQgvMNTP(q1As(Myc2QmkKFq#My|5ij;!Sf(<1khwe-ROgM> z1E@O(wk$_y$Yz(G05QQ-O$s|HoB^JutSDZ>D4ym2Gyuie&?kTqdHgesv)>nDLBg(L zSf+@c7oa|Qe`l;Di0SG<*k9T{M<9mz4J@j_E-eU-MlmjAsd)xsfE3@JBO#;roO6*b$yk0@7Vxl5-* ztm)q`i{D{BVU?xAT4@BH_Yf9q$11pjW(n&jK+73~&N9>nV&BRZfWYRj91=e!$j2v;IAM zG}QnUdG63r4v+xFlPA11jP{b*U;>BjPqWs!PDs=#?v*E)+h;A-)LVEr+H%_l|7g;A z;siBNw5l{t6Y1#$lnmFzBe%PCe9+saI7QO|c^cMtPyC}PgkJXd&&CrD^u&XAI-i_$ zfS%{fX*!;|`rya5M4@MdJa)X@dZtw=Fn^VlN<2KY!`Nni3oxwfX)X!aXioTWR87v` z-F-G+`}CX3-HPya@iWQ(x!zNz8|idB3m}%iaZ$MTlcL4siX~d-)}nQvq+7NV)d7(| z%ilIjzc5m-#rIw>eP|t8f=e%D_Y|5prCI4My_M#Wm{9n@T{Wjur9+GUJQ4# zgsDXV1&N&Jr7iEiEm zG(ts>2kPZ9AyAPDi8X`5*D;9)+f(4A5bdcHz}Qpx4^UGICP#`*aYlff?#A#8>4{dA zgF<4|?DlvBYWL?8CZ>!RaX9BnolnoT%{Il`X1#)fZl*hWE#4$uE&#d~aTq|HvNnM~ zo%RLi)uGkc<~}I5u}lAbL$Zlsd)rQc3gL^Nf94 zn2H>$*K`x<@(txoO<~clA-pUO`;*zOz2mf*bfzjk8eA4WUVopRy2V~Ao=v`Y?k36Zwk*RO*w={mho zZ^J6P($E}{wD>^PzqZT|M1x9mu7|9%#}K;2ujO^=#x5~^6o5u}^3>|)Oy?^H?{+uMP z6W{CdSOy&=5iZ)bQ=yRNo>Tw6s$DvsS9AVO*W4Ngp=5ghO^|t;_B}6z84N^yAyjU< zadLcDl#`dg ze`Rc@cJdb${5HF755~q4Unw{j5mU%YM}vdMD!DYMu!zeF`)?M6Qx=)+eGF7hH-<--jNCx)WMODf2G_}#Wgx94O zwJ+3zIDm1ne7$EBNU4)Ca~>^1Zkjq2eNHEwv2*@}g8$2e;FJ3V1LSN{Tp3xnjlv3c zv-fYJhR@MH;G|#C>oY?P6_e(-M>FQ9Jh!2eYjrN^}I4PD9Q5j8Q4EeBDTim%I}v8 zWII)3osCY=S0gw=% zmrVqHZpS&E6ySH6h>+++EK??jw=9a2^y(4t;6NAXVMY|Qxp|giBwK%07n;Grw-VEB zG!wi|104xxpXidTzL^au1v+r9f@CdlH1wT-wB)O@P)@)=i}kT9Q_S)gfbp6Do3^|B zN4nj$BzkQy*oNwIT>OELUCLS_15I;WCfi^Qt$-8mD)j~|Gn72}TE6HmiwwTdjN3u{ zy{n0GEC6p_ZfnJT;(zK#zuTjeyOC*6Yi;KlOe|mQr&q9^mD zzSDSv3%WKZ%8R8B!6p`buZw;ywfSatU8^Ut=pK$@1j9!ThzX{@1bqnk|H^s5pZ~6h zaQv$a+(X*5SJEfK8JTV0=Sj){2T%8(Bbdjs&HUY&x6jf-S2*>U9qh#13pHOi1(h_i zdV7q-gMUbVAUPASQ!>{ooSnEW5Q;{779bmsA7=#f4080p7Hr1Fy@WT5eKWJW5B9sv z=xS2fPXTVwLX9t$%SO@z5MPX<#5kI()o6u7ZHv$LHQ>+^lGK#2ATpQEr;!E@>x=*0 zE>^E;P_|!p=oXlJ*4+OAWKJ+K^o85Sx$1qwDaWf*c-z>m5)v|0)zq_ufg7<^-PT1}D4EpVK^I#-X{zX~?->gd}S2({e^htCQ$ z!w(;L*uL!<$^WjFW}V|M6{ol&Bdbm!rlJJb0469m3>ev)AsOOU{j)u5bZ8-nVc1yQ*P3MfT_0iW;g4dBbN0xXcZ+~>xV3s0H$mQqWYxer03w6 zEqTdZ0vm~FI_BS}OZCpx75?>0sgd4ewO&p(rMHx~rgTG_{RQ;Z)m={<9h8euT4G zd&3$$PzsG0j%wAdRn2Fwdi= z$8{Z}rv@(|`o@!o}} z%v79v#&rUw#-l+5FVv+zSy0LrSd^lR8)4O9q610h#0WR=A2`^N{o_)U(2 zFXlYx(aFcHgA!;hcN2{hzQcG|rbLXJz}JWp4_Z2_v3DumI?&<&&@akiCZ6m^G}i7z-{!BBGv;{2AtVz zp>k;HfR0F?p#L8vw+tyjY7`)9-N0!+bp;TBL+Pc$ra^QZFpi;eNZR;8uxrtF00tb2 zM;?pjbY0rCy ziKqmI_#OY+L6dFNCTie({Q3%PqtTZM@UH~TRm5>U9jRao z+aj?l5j~izux$;~8dB*HmwPyM;>u$^A&Z%S?b+BxSGS(Wf9wk+hhM39^L*f$Wt(x2 zjp9=c?priXE)B7ZxV~`3)vVYl9&d4rPuzX7&?J~(UVia&%k;IAju9%>x(OUS8w~_5 zAn4n4x(+{0_;4xa!-2!k2;P6Mo3S!tOG_>P0scv>))~;S~ zT1<_O=#bgb3cNpJ#&O|9lSXa(@lMzanel5vLPbjT`d7?9GE634Mit@?yga`DwOROn zA@9N+54(QnNk2IjFBs_b4O2BAm?%;`tkM`F$_2g%O1#g=bz+x!7zFodMmAy5KOa7_ zSV6tDVZ9d4-&-)K`z?xINWqq~9=acg{6c)D3n^_gb=I^*Lh0n1ySR@8mJBu z;L{ZVdci@@|H#pK`eL62k-eWwqe*wv#r4?mLHe95sWJ&VMht{i1|%V%xDn_uWcPU=j}kw`MUBZ|SpQEL+Vl>{N@2Z_0z9*;^z&FFXU z-s~?8mpG6GAk(5=L`gHZ;QDV*%=BOQ)3fvEfQ2?IXaIKQ7^#216ogju;os;SO$HxBJ zqV?Z_aaDok3|o0PneZF)E7m+F7|Shw2hr=Ll;|-&vjeY_>L*CMyT-10rVH?+p>jM2 z;KB_yztrGYxs*#)#B7_PR72ZEumMO*+C@v7DpZ|=lH(~1!tK_R^A7!>w zL45YEAnDe8vwJNrJ$MBTZ!)~fVJ(+x$AR#%3tNMdr*)wto891H7e70OBV`ormSUsijUaWJ;qj4e3kIjGYa&$q|I4Tvr+mqOylsBda$q!pHNRUniGW;8r*azQw z&L7kI%w7L0;jRb4P$(FS-17P6aOLKyUhy=Ocx(>`-XQyeNGKi+rAo$0y9 z4{oN`**Q-ALWH@3HWPK8H3tm5A~1>@=-{v-^j0g)XX8@nZ*_g2fPKZBFXEvJLqF+( z!zGn#>fl80icVfr@-I8D06p(E=DUjCWd|6(;xP;L(Y?KuHWiEDqyInXKl+bZj8dQ< z-36#XbkaB6{}|@@U1-S9P-knM2u?3aSS1+jKDV{GljzDGR&23ZI-BKH%`6`?$OWzJ zLgq=str@0Z4i(s}@osx~S#uVlOe}Yg%x4Itt^Rlc1iaObEx=B2#U&)_ zQT~Q4P`Q}+&&R_YB{}f?{js*sqXZO`t=((NgTb6K#zRu-WwX)b7 z-{OuNj`G^d$6-IQzlTu@$X_q(B4dv@Fw=dEyH?z1UIAs(Hcmy^DfXjvbbIhLQo3QS z*f&p=qe|CWxZ$0)()mX>j8NCqR?jB0oAi9_>s#WK(C5$zcHw!zO!`ui*R}VkUw!Qs zcFE`$y%0xS#-4QP{?V8I;f3Iy2n#M3le-@xRVfNPIXuwef&pzzlHc^rO?P_kodZSw zJaL=I*wT6gEch>AC~V}_K#f1G+ozKF?}L^;W#bM5V+s`cgR(^sbX4HyV?kXN zcZ2-c?rPv`(Bm`7lj%16754NyfZ3&586a8R!)g-()jQPx2)HJRrn-CQKUTShp&uju zket2*vLU#00MB5)@gpHHMaQZ4)j_Y6+ljXZ@*TTo@V3AdkUJyH)<26vL&JH=#lg$u za`bcB>8Dw4Z>aEF+nlbd?R9`Eq}8r_6=^%j(ve&2c#;|b7$a+trh*nu^Z zz;vQ0q^NC8U^4fcm-08|6sSI*4Zl7gyc|?8(T`3E!z_iU1p_79+G71wgku$5-jSdOVqWY*)cu-1O7JxZ3g8b+vzU8 zMfDc5-Z_EGgy24q8oy=a9pqYi8$nhF&3XxibD8Po+tQ?A_S+thVtPAy-1dl9-rh1t z^sVSe1uS9(O3O+ukokl#CPF5{GkM0d0{T)D;&UM+Q_)OVk-k>v^2?Baqzph+4UU_c z!q^}{5@IebOhRL<&=l}}JXIw|-i0r8PGRQG71LPDMrZVvZS$ZXEE>Nd|L#En0}4z!5&QQ2X_PZ2aY}M zs#m0V5Jg#M<}E=-INk6OTWjuS-goQd1!p`Y1`>}4JI(fv)&P*eayCTPS*|Unm6Qoq zSw-vX;G<90o#8M={e2FjEX2;V7k2FLu5VKb8J^q<9*KUtZ>nZ0c^R0Q{EUdjd^`3l zUjOqOof2@76{su0 zDc9DDc(TR&w8y|!+Pxc!y!MrM<$RnYQR2A){y{7WDKZxvGo%|<=|ef!8B%QBK!P;O zL0WuYBEx&um+b~FG)$SW>7Yy(&iMG}Kl*^9n;E2(U3#eQlizdPSLtM<7r(Y#p~2lh zuU6MTKNJbRyc^F>lC6lC-1V!O@;_Ry(C0E#T?Vs?t@7F`&px~=k=;u*Rt;FGZ~nc> zf!)#jy74I0JQOt0(jLD(2V&}6ZL?J6u8#xIPq|z9o1ig3Vp->l^ZClEG{^0tPDzfD zf9$s&D8e5fOCH+TikWU>Ey!n%6xnjWxNJYgtTgcTGXMDw(di);uP*0e?&6P3M&_TB zri@8MjrKgHd`T{jy|Nij(z}kUxb*hK4F?*7#=Ut!vE}`A0sJH21ZKcWRLQ;kY)wUdE`Wv+cHioFiFnc$0Itx>e?k zv9T5_iG%h2w<=oq%?vVM$ROK-FK*M-XMu~Sf$uu*;1&7Bk~mxsN{6`&LlM^)QI~3z z+NE+s^v=+4bYN(#c(v3|e(>gqbMFTqicX?d9)zbn;)E5l@x+WnF+gSylQimNE^%i% zEudj!mdIOUGGL$KgpuLio(u6WnDWdV{i-}~?(B`Md;aa_Af=hD0>rGf^PBE_Hg{Zl zBsjh})+RM{&^4cYC7n$oiY0;97-^Lpf1cDAT=9BzK~B%V_)9}#C5sfmkiY%Q+-(Nu zTvv8XB9Id1oG$T5+A-Td-Es-NrsKX{4zK(u7iE)IZmDdIs^Xw{oiOF@Q29PehVC|F z@4V41*5q|pC9j!%rs2&^1wMz)4)O(O=rV;|0IG%=k^WBJ;bL%L4m>q~rTSUOK8=rC z%HJ9(Y}Mo~;BCzLg;V@Ple)n){Q5-0Z{%pWIkp%n6vdp}cRbw_@Ua)BDM@94V3hQ~ zlzEx_ecVWD7U~91dH*yA4!r(WV{cFNZOuoqUQ(;Dp%XF11aB4)3Lfwn=e;bZpx|gi zLC!~A9ZiMp2V(`nOBf`GUj#_`5BTB)y8z&IhM|$COJRW#;H@4MI1z=704W;U4e-Q9 zP+>y~02-Wi19TKv>>~f23I&Utq)~|fABfz%aTjuCM@p z706Ncgw6a1fV24H8VSuW02?RuEzk<)VSHc*D;c(f+6jQV!yFiqf3J@BgG}O8qlaP9 zVN7T$UFxdTCOtgjZkBHDjC?mz^0e!6W z7ov(94NSXN{-C2ZAuoI&%*-L1JHW3Jns~~x3xK!LwS$=->s=tA?z#;_`D`_Tyk2?~ z5E!HYVNx2AKRH02iuD$b4>L3yI&=@`a&s%Z##634EyV=i$7U=CO5Tk9>7iV zgGVHbhR1Y#YNi{D29MhRfYhTqpPpVA6MR*%Nswb9XQG&CSBp_OZbHtZiz!uG|gB!#Asq~h!+wx3jR}{0svx@a0 zf0&z#7LCc)+-TjmK{n#UY-sp6na>ZJ*Pd#8(iN{&^&7_kF+b3ejc(4;Yjs|i?i>3i zaTxV8)46_OSC^uOHDc`ppRvDT$6%!M3*lq33HqdiRjIhe*$e6f5s$Du!8g^y!#gO+ zagh^Z$gCU(^LPIPQaeZM-SOqc=sx|~dnQ<6jNnM*z1&Q!QZv1Q8Ww$tmLmZKU;&Xf)bEx$YI_A%>J7$l#+OcO5 znCw(iiIAmXObU2O9?uN_<28ih{E^dT8fx`(&t+G?%F8ePSl%9 z{dIk$`RRSJi{~3t8ipP;h;<7`gU;{sdc+mG$2U|S5DO8c)RiHr+tO8=7W51Hx`jIK zpZeu5d~Eqza~*0T^;k2NTbPtF%@^q=S@_P%tmuO z3LZId*lYBs3`8(>OSvxxTFm&CSL$#4bvz?7mt6v)VW%pk`Jc`YslHob{s+|hDHJdt zjVljvSNsRKb{T5h8RW7yMTC6y?r6PI%k`~r69}fz%Uk8R0ip10>+9M)wpeZVLjAWX z2oZ??-o>i3<7A7ywBI0Cs2CagFUk%UFGq^R&r!QLjK(C?^*Lv@CQ||G{AyT^6Z(CN z{|uW3ah;6)ry%WL=5yINyn^N?gz+2=Tb~ls)To-%GMY(Dxjp2FkS{t{s*I^#uyw2Au}NDGg-+`%6) z6#Rvzk>hQ#rnorl6~rTI=HgT|xnPMf()>tHdH4~DR*3(5gbnFk9!t&Pe9beXkZj-1 zcG26GTL+o5#0h|qWz#3ew=6}T`I*V2b13zEqL3fd!DzDX>Y2IsbJuK44d+?GQd$?r>o;Hgn=qx z8b-qt82S-NJHTt|O4f>h1{V{}H0anM=nTW8p9oe!2Ean)EB=}J0fN={o9ZS$^s1@@`b|ZF({CGr6J#^bkYt}n1V}V=iVq`U zP}m3&%Q4D+WS*loCp=BKlMU zv?rXeDmK>kq8&`pC~d&bq;8VZ+snipYD^GBdeY4v3bo1H&8}|?MC-O?j(U!ONE1&5 zZPN#i8A5vQl?dd2K!{|Xmi^ZKjB88!Cci{DUc}4$u;@D(0d4S##Fufwucg zeGHR#aeNql`A!;-X`Cq@-Y??aoIm%c7YPNY+Sl@ew~U=>QV|KeMytQ>8TL~-VTtbQ zEkk3p84{i&Dr9}+H6VG5y7fd4w096Q^sRmC4*ejHc}1v-9y2omjQiCqQSL!zN1C`&tTO08a0x?m*w! z(tHxxx%9?sMaTX=9+`)Q$wi&JH&j6kDE6}q^Y$BBICtXXz~QGAQ)}g6v&}ILb_!8! zI(~rosH7>9@s)7=6V8xwH_63h%e%q$dg)f0R@dbEH+$!HiA0+xFdR3aBixXE$foo)auhItIJ&^1oz0c|y5KM6`w z=jR>F1dv+)pqr$f^|ZTz+ahL3x4!Y*p@(tGXZP=%dY8!hrvNpOpBO+^7FzPq3nL`> z4c)-QN*S`(JWp_{o8IYMF6oy(@0R$fK(sgO2f#XQb&DD?ZJ`5nC++&w+I~?Wm^m=TQ0yNsOsIB= zhk43FYt0cLeyHU>MQxAhBhw-$&esy_{aM zG*YT>0?eMxmI475n}5d*e3mzfo$%+jF?P_Oq1XE~ z{g07+lYv42Rj$7Q9^_)`U&&~FRLplzdkh0>e#7sD48t@&Y&`#p4a?q}x_b-vO9vSR z!j^$}=SVYGjwuc!3?{IhZz`-0JPKwHH&48O=!~@#<0sPWbSR@4;2|`mLfV_NNH1T+ zHd{R0ggh0>m^HdZmwVBqB?Hb8+_vY0Z1Ltd^6g;8*b|D~W(YIO367|9E&Ibzr~Z<` z3&xust-vFyC)DtR4)ZfX-5wRNd{XEoVX^Sq-CMSCEU6*FIqT%0E5s#{?7q$;q+~ET z5o9u0rCvvB4PVz1v%OfDEA<_X(1%+AscxF@&t(C4t$O$%Y;8X_dIJ<0J`BiuhqVDB z61162kTgP&^plS5YTVQ;sb>0c%775WUlz-Smo&9p!hhv-CwlsbNQ z#q+!bFJ>sdI?Y{=TH9J2l`Q#8R4+lBNf-C_cFtQeVZQ60pwR-GJZ<%G!J@{l+WWrl zmt+j;u1UUoz9(scsBvm7XruaHZ}ldtatZ_U%*^-wttsS`ZhDuSQz}j^iFP(VtT1>q zcy;*_fyC_zaedRckUtZNJ^S9plq!(rtxD&i_~K95q5D?3}jctYlg z>rJEA}AcKPriZt?UxR8hg$Na zqn#YlK6brI92fAfpd{l&S_K_9`bAC?clpGocR+1e0~S7g@R1A^2(p3S`KH9PqQ^B8 z{Z8!ri;gO(^v66Fm}A4MJ;5a35!qMOR~$|1_w7M}p!3N+;)ahPr|I}Y)s+VUB8)G zKfd5F{Gt2WS!7Yjd>yAAAAjK6FP5AOq1FjEh$MZ&t5vM>-yDF>*b(o?l1m9 z_1H*EnFRmo#x%S5g=41dxdCDrG+i=#xHS0A;ET&YC2~?u6e!Kih}y^FZQbrAp=$%k zsc3EILg%07$md>X+H`GV&q_P>E?FMX;((JAnop*-Z+oZe7J7$ooO2nqu=WvbRS4cS zyY`$PY}s4TztizV_x7x(WKxI9!ObtO+Ibpk1|FAVWVLXc8_S*c^ccy;Q6VJLM!aCf zK=^AQ_eZ5bZ{^FuxGg@`--zwL?emvPan_>j^{;QwRL^^z%6@yjeBN6{<4bN)@63~& zL3vQ9@|+#W9Z@M)R7)F17M4gIy?KgstjPP+NmU~uS3{YK>V}YuX?|DJy8QQ)Etz_0 zTWQ7A8>1-)0%qYP76>R`rn445LRqb0;=Jud;>Ztvggy-@tv8R75uw?@Z@U^ZQ;9dX1{tnnb0RHmLcz-1`e0;uCv7p<%6xP2>M*DnaNUuD2kzt_)D!>Z5`H9KB(v zj60j5zW^@1-P%~Ppevmd>-Vwd+Zs2C35C$$~1sb~hBq|_@MOHxb$rQV((3MCk zXHmRSXD5}DlLZO_tnizlV6CamK@iLpQh;<0#W{lBfZ^nek4iU4&Zl8f@#Q)2d-Ln- zmc-;AD@@6EU(*H1m#{(vqy9h3F3>k*5ZRY|aC~usa6Z7mj&ncQj$?&4o5oBng;8Ic zT;$OD|K2`ho49q5)kZ+X-OvHc|3JtRfMz3{06#srw#n#+s?e%Toc-j*;mF)ex8 z)<{vkbupyJjKel;8^G%xoquZj+}pg=I&ey;qSXNtYok!% zgj&A;=cyCvwcE;~cKIrxvEe(ol-xnAKOl>Q4Kd z&ooOC(mTC=E@!$8nLwNbDNIWI%?}3h#ERAl6=oR6p&xb@ormmf^{D6D>HSwM9a}1A zE%h?qQbT)Ue~By2K656-yi>s7#=(-G=t6w-Sy+bNR+f{GoT$Kj3Xsr_Da zIwOO>u3G&Lf6jw4U=}554&riMWj7hhkeJV6@yUEtNc%pM_&0i|LLqqCvUxx*cE?v} zrYA@rKFH4;I^&w*3dE*ieD1be7~6mjQR$FAmL|=dbm669@~Jd{cgnYgiI7MUD~7H8Oc3( zaUcg>oYdVLa|RMK7yt)%3OVNT$O}z&rBZ3lq2&b`<)xB!E%aPaIUIv*E_09`xL)6H z(Y0a+Qb%bd%2;c+-HCwvPZWN(hPoF&bXUXN0Ni4K(lZP5ewGnmB6|xA@Ai@!7yy6bFzGD#Z+t7;Meq41hUD9$0tGhm z;fJ!;sevtMGeO5!9t1f1LA2H0(+k>+w??2vFK4lQNrBKDK2@?Q1+m zHE&?kBJ*xP7g(xBj0b7o+f;AwB8AMW>}Gef-teeSf*t2x(ZBuJ+LJA>kR}VD?n04> zIi7G3lYG+HjMXrO1o!+H~&+n+~iGkdcn#s4sntfrSqoIzSv7*;>9sd&N(qlR9Ao`xCuN?Mrc5zyE>TTtREH3|BvKCg{NX!cc-@g2W%)@9q zXuKNdhs4=FOfRqvNWQZIVjc*Pz*4ieu&UMRrN|qJ34h6;qpY47Wbf4TFqy{|y#m%< z3ZAVx?z@+40pnB0_F;D9i{2N|+9^4%^Oq(i@M5-R+YF<>pP`sM*OV)lZ=ZUv);UQE zr2_{$dZ~41EM|qwy?f@|Wcs9R^zRug5HwC2H<&dT{Bh6qa+7T3#?jIHX;#mUsau?; zv@hsR!BBUn|DYGs=w-lFY|`LEX%(hmK8LQ36xa=9=~JVjC}Z*X&NHCwciU#%4Rb7} z8%VWDSW`;j@5CDH23hVLg+QKsYHLfD?v}0jU!%~JRBjy_vpWQUS9@O-ub|8RNe_`P z`y&h^;tZ1j7oTZa*fE+iVzbphEzh<;DEjC;)^DP4oX!KhVaEt07LM16a#B4t z{>(BDA)JxWGBMSJ+olVn+V%c9`aL>4_x39wTL~f7Qa+N%0TP=Yf!Z>xO)UC0Gp9Z=yZ( znUyPWf3Uuw4#oFgGaXO*xS3`gp%=nnf?|K0aOMLcY&{8j_}TVWl#~tTpP%#yZ)4x- z1$8zqnXm)?qdLigJ3#AkjL{a*6=uVhp}X6=n0icdGtxugtvl9HY$lwEJOG<{`!$p{ zknSo@zrikpP-*ayf(dfio~wrUO7phR9YDx^?y8Y7Y|3J`>^sxeZshm7o$@DYn@FtzPgWzSC z(`Luy2UVSuttH`brTlw}#7uMa6-&S0_IR_P;3c)5%laDM333_sgtbTVSoMB&%XLzy zo+k+BMVbCkY~`l=Q7j!S=U!HTr=L1gaoGVs!u!+^A7_P^vfx!o1cFyn$HBxL?D_zy?|^owPVhQG-*^rlun8t;{e z#bqu|P&u(~qP{^k_*R&EVM@ztQJE|66X_(m$3U_&-uC+{1FP1#y+h@M!oviU138YJ zbNsP5dN2%#5sq#Bk^@-hzOng{Zv3KKQ%(t6AC0W#NfDQAoy&>b2=N2UX z3P>)J02aRzq_Z?V0#DJVa}#svtZL2dczG)tR^N!u6*cOFF;D zhrX*BvAbVI%#qY&XfPq2U1<^ssmWZ$ifszuT21=m`yl{sGaWY^7klsplBfK+_p?_F zDKfLt7;cMO!%7QZ5*l2-&m@nF=zeknf(Pcd?K6UO!2K8Ttbzng;3 z4=o&&?(_HO{;VAeWnH=A;UGwy-reQsTtYCBA*wg46X*HzBn~(2*iXnl}L#=rAbx%S+L^HBOMho&Y9cV4(*8 zHde27vY8dd$DBI%U>!x2l2SztU7FTegQj!n`aFMO3e!yc^b+#-IODxb+%9dUfR--Q# zJ1l7BpBDkQuC+S2$PcKWP!8gpA>eIdjo__}Wv2&9?rwduE8OM5>jAaJ1lGLXs(uAj z@!F2Z{9Z+o^!2nY-XGKSogw||3-JqHyVg8LboK|xe6Q`<*7ZU@{l71SfKQscUu!*t zl~elteb-|8-zmo9`Oy*$8fjNSOQlm~Z`$(^DIPk&)o?yl0c&^d)G@($2*YTX$V!W{ z2}hqBT8lk9dza(mJ%!c|7lBsinE>WNSM3TDqp!7HYw7YUw6&sSI^&4ZWw+O`XD!6T zlrdt-6@J_4_EdZj=)H6MXQS!g82hs2)K8@kL6wnU4nD88Hm{#Ni57Djxa0BKH#ve~ zlyI@-#C{Z;&FtK(E$JTH!HDZ68MY1)owccsZ&}_F_T7t5mag`R{N=79rw-AIa*11E zs~H#!OaFgfYuBw#=ziK@yQFiRERA8$ewf{Nv)yTiLazW)zhLJgG`~N0DpdOV8b9n> zZ!bNgo-8f6nNFWW=|_MY(*ImX%nIKNC=JX6{O?NWwf8fvo8zy1Oh`x)ANTGNkEGI@ zr>RJsCi9t2$GMr+!-14{op`E1RV#fI2lmQY`3=Ua_#KU#T(lh3Tgq+Lc=^!0+5UB$BXP@} zudwh7lCG`Gzmf|%tMa|WmaRy2Z=C7vM|H2DgI)1A8iU!tIavESA<=#CALTKjKObg2 zRcQC-gR+&7b(}>#>L(*pSm;0|ng!a+PSo`Ul-hTwnmZV6Q}39u4`)f8B_ILok&RhzI_;=j#!wIf+_tvayW)VIg%C`nfY6V5HDRyRDa}x$7ZS@EcZSoC+ zc1*zXyA`(lB*+FQPkshDe@7Z1F)x>maQb^kE4U5*yj8*-@oYv$cjyves%1V!<*Zqg z($xv=-7O_FvCbBbKWAeH5rd+gR1Oi~5DgLtf1Dcwanx5vgYMZMo^j)a`5=NK7cX*$ zpOASM_Jho>M7%T>q{|VC0_wx!MQ`om8NqK-IEuH5K@j=nE9xeSsBMJC{@R z$W^WEfnM+-xQWKA(m}ZdkUFOc;V=uv^2&j9CWtizOdEF6;ozHc4KAMwbbmedL7AUN zpir0DynLm>g%!V)cPpAL$ad-8{>~$lN+qP}Zw1RV(ERP#x6i8FW=_<3pZ1_tS!BbB3pW`;?G{6IfvQA3kj1Fs`p;px%ANJvlEBRkVfx8 zM+H=3w3WMM$cRZ2Jc=HzQyRFvkZ}{@;h;=j6>nnKRe48U&}1s78g2w>fzQV&vA+S5-F7+L5liV_MQszap+*) zM6^^)IO;3WtuE6Z07I9B?#*kFy^eo;h&NxW(|7XCFx*HXE*Nn!)XK zolc(iF3@W=aAzmhh|8L1mJFV!YK7A}bO3E()^ zT-KaDA;!1Si+To{0m!Y-=23d9kK(*|Y@9gXc#{FKWpeBGbG5h+m6^Iq=LT)K`j~g8 z4Z|r#ZreYzX?Jth>z_+Y-EtCTn64*G72YPw=czcy{j3h;*2u9#V|FA!V|>PGQMo*P z`{C@5!yoq8-1}R`Gkbn$I%v&J81_Xt?tv9i-Ff|ddL8trrbq`+j{Eha05A_BqA0Rc zFWb;iKX^Sntz1+ZfAw!-Cz8Ov$88oaqGMr@?F7Nj>`eiM)nU9&AG`O|*0t zo)g4j1~yk8tq!l2rtrEUt2E@K0q~NWt;h1;w2=k zWW?*Y?jF!FU2NtZnj8l9;RDC71UWtDW*eZ#F~{CUoG*r1%T{`+&ArJ{50xWR`MQSF z{n+NSX3nIPf?e(noc=L+`uCXq?dgCMDlp+5x1btg;*6y4hAFB?%r11pERH$m^2};>@hop0Wn53P>9V+Y; z8^?nO01%BVd`=M07na73uh`0kgH{1QNCV8DE@MX%-fXVuI~BW?_JTe83qNPOZ@%X| zEMyAqXvEg{K)d~iW+KmtKy_Pp9btmbA8P$t%uHt%J9=JRg1`LkORzJkNZZ`NFDD$M zOBNt^k-6l5_kfxuSHUXiG8G)CHE=7OD$JuH=7J|RrB7|DnpDSssFOZD#aBL-e+09G z%&9#vfuzkU(I9E^61KzOqMzlJds??d{P9AMb`XcTW6>Repw#e6@by!OaWjIk;XCqf zi^{#LaxKpAs{*$X+5xeHSWM^!oNr&f%q1r2xa!#36$QrDv0#`XVO6>=*}-~`>P5+t zm~7&NkCk5yJN4?-=YE5O`|lf{8=aJ-Zj8wTg|Rx4yk7lgS#_IXp1f)89Ts|-KcxQy z&P8D_yhEwVgrAuMj6v+Yx zFRo*GvSMCrK{g8pBP60@BdIV@)v2P&97~b=*Uw=D!BndXZc9ajpptin5zONKaB7Z^F8kCFSV8B88+&e!VHUlw;pqx|rSYPA zeiwFmJFRwD-(t=R4n14#SBijh0SQoCtyX~T|b>Xerai1t)L3G<-P-KP?i^+*fPAa zDygE125y3*yU=&YU@(Itsj)k_c@BK>k%zZzp76ud&0#CW!_v;v@Qu@V0FP*%UP4e zV?qT-H%%F4dh=@gQFa{LLVFe;#UE2{W_dO$ioPcumH)sjP~)9A%cKSG-`|~P*yn)Q zy7&Rh4*`0)dq+1^&7woVmb4duxn>_S8Ln$w)Hbed8>kuq{t>VG4+O8J^w3(_IT?Uw zy4t@Rqn|ElV3aQgnyIpp>fockqrMB^c?D~&5fEmPZO!+zffKz*p^v1!C!A!o9-HAM z2!w5nEbKDDha+6AF=6$Qf1YX?heq_ zSQ*go6~qUjNmKf^8B{RN@2@;B=S{Mr1H!*_UxhQCgU(La3*C~oy2MI;B3-YbLltbO ztfUHRT-vO_oH`K!^OdJEK(~Y++bQDvy-5bP%|_jJ_kmtI+_tL>dZ8@0X?Tdn!~c_k zq%0SLTw^xbpvlPI$&BD0+utN97M6GKvxZO-Djs`;Doi9N#)6amdpRu@j?bPOCv4#( zbUSQc7eIKDwC0*maX3>lo`IwSQ5qHw7~6}4u16p6mVb`iQUM~<^I*D1wftDp z(ll)a(xdiwm_7dCUCzXU>I^J2Sh(A7>pWDA2NP4*mhqrf|%n$?|$BFdXG5Y8YnT?@W;rlJ({02tR?4{IENN`v?eHd_**5if7&tofDOd z+ANnar~ZuRoEvv~KC=a(Ft|GsqB1b_O)B?1(fI(o*P(k*i>B>>7^wb_^ILLv@Kxqe zeYg}@Np?jRD)xSDh)aQOPIz?tmoDEZ#Mn|c`|`@9Eu@PLZxd-!Wb${L%F}*-084m| ztf~a&gGr>{So!@g0#2Ud;u3$lqw; z9~gVVnd8x32lqU7K^=O5AXKiGEkA-n8)6mvEEdiy&7xLY$7!g#xg>wd!#>7zZ;ygb z<@@eaTxhi>)RoKGa_)j72Kh{K?vSEb$HSlxpZ<@cbB|~8fB*PB!<AJ6qoJ?$-wKZx)k}U#6^m1Uh>C?9X3lrsecj znOvF>40gO1ID=&*HaFFAs)|eL&CVaE%WNaCf8O+5;_B-^0|cuNHXXbBB+5_HiQ|=- zrrPBr?JjCW(?%9|{oPI4@XeX@&wt#a6`G@bN)qeOX9$}&N3CUNMKO>+h>sdC{=F~u z- zu{K9;io|*E-SpF`fJwpeIw799{wcz79@HKEK(^d7%u=il6?V&fcv(?2M<@B%wYWgF zQ7S~+&)}yplFHIgvxa7TQ$6MQGTUbchFLUX;d5-{}%uQ|umO7Bl_Z!ZlCd|hH6Y&Y^e)GbfFr~~SwkBq!Z z{m|nYdREfz0sGI&<6A$)OrJQMjL+O!=C)-pyoF4xeFqCmNe-Pz=GWh+_MpA~k&n;6 zB|aSt2}{d&hs##D_ii!l)4yB4 ztE|qyBxb4?t`H=LPg9DsGv+q8N;4L6!NSFL*D?QF+|5!PM#W<^;JoWclUZHk%Rf(D zTvz(@a%@9F@>u6re2!PsJ}cptC3uIf=SmHb7_L_RoIhvJ^R?{OC#^$R&OnjX>r)xW z^~K)Zb`_W4Kl9deqwm&T(Lp3METj6CczMkee%CjE+o9A%mUYD^2I_Imzt@3F8QVK< zQ@@G6!%;)hgbz*yUEGu>hp2@kvPq(^ts~a6-Y{<;tdyiUjC4!1MEH<#J}Qgw0XT!SE;S4Yors~7yaKN@09 z%Y{Lak@1e|r^Uz9TnBSHi@fsWa?zro7Vz+_{fCpXF1#I_q!j7~SJxdM=UdNf*wQ5q zrYVk^@blJ%x{*4B^A)p!Zacv&3dtO~b=p~~{zdMSey|azP6D^>|N1@v5_NpQZ3X>a zG9m>ps8?7-=XMLAbFn}Z>=3OVcsubFu&#o@89L#L5L3W~EV8?K7I^9V14IXguYxe7 zc@SEV4j!`!mX1L1_6lAsB;zm*Z~emTcj(OPD48}0>?z<29`tJ@LFfJd1`keq3Nx{D z(YkjTsDv39a<`xBeI9rLVJy>T4%pQ=VHYh(rsO|6aOs>6YUrCrUL3p-Cx52&Bj8r7 z`Gm4SL_G*^Yqbcb^Nbrxz5|OCc=7ci{Sq+#7wy|0K<8dr0aFSe03#->1i-AZU>kJ4 zcvw$T&SCXk;OoZ=UC~6$w}5>`yw*%Fc2FmUT00XnvXi`CW5qRsWA{7$hr^ekc`ZMvtSh&8UV;* z>3nN%MU#3ARHpY0iLTYdCY-d$oDzs7sqKuAeYB9eaZR6oVJQ2hHlp`N!AcsIbBR?N z%FZd2N=rer6|7JpHAwKh_Dy)T=(L#JsF4x3$>Nw4H%xzM;EmeJ6K^bTJs#wrqwM`P z*;=q*RRl`je!T-{qhlHE*19$GScSsR$d=*E06;=L>2V(_&qa)cf!yyhgF8fBn{u6q>G&TYpZ_v*JCLD#*9zo5}6cuM)f*IE;FN`F9+?5omT&TCJ950X?JOuR*@ zj4i}`MEziSir3`1|Bib1z#$bGBL;n_nWpT2I|TM^D|=23U~+6=2PbBgMXt*v!eD9eDKX)18}$6A%E9-(1gCPT_|;WXR@3`X)4B!= z*;OY_!ZIbd&ARiEMJNa$tq5ml^D+$@>F$>5m=BUdN29r~HbVP1+vhbpHi{vA;(ibs zh_rkwkYn{+QWtb#s>6eP>`tODSv*X3TBlG=^cu2&Bdz6`*CDCi+FBeTDtX^l`ywxM zw!VP!?^rZ;7EN2InRGAz3-}Z;4av zYz>--dgRUL%6X<&42M~t)?Murmy!L-iPMkDut#STyAMTyo0>rz;rwjd$R>L~~L%&&je1QeSI{KBPvt1p8#|O|rqBYO5`mjVq6z7C0nQ55j`L z$BS?2t5k32xwZH4G&g19*zV>OYn9I5--ocee}X)@-)Nsck7H5x1Xe+jNURe^$?X!B zFwAsXr?Sfz+7y8YP4g{LGh%E7xQrjR9o)4MxXyke)e=^W>};L(>yc~v&vXQKt(;|5 z8cu(5PO;0E0h z_fezrxM;ftFG86yc72#41?r@a?il?*N1LePvB(FX{~GC+*dM>=H!nvyT*6!Rs)bAF z&{7)VjlD{I@^=hG+gSg(e`M1E*XgA`UAsAg?%)MA>YdGmwAK-G8`t zp%L-e4$9wGR(*4v%U(P)MxifF{sK3*c-VoklXMeVY0Ruo;b$Hs$0sm~EdJL>*g7n1 ziynndoKy{(F)~b4!#0Pye$f^3I&t>&FOz*PXE--TBZe{`BocyW;cCWkPf(h)~_7+`W&e2q}M-`gV!RZWg2miT{B{Jp0 zlhZj_va!AibvZXd^R3J}pZgY+ndSp=%nv;n(lS_@TdPEKwubC8qIJX4A z6hP|Fse2A6qJh(wO;rn?aZp~~4x7XCs`uLOyt|PU#BCMJ>1P3h1H_5LVlTcY5@X(& z0#}O0ms`>pcFKf8PRqItR|QtU#>AonC66y8k+R+yVW=@>l3wU>lceo?GG)D*NzD(& zcSZ2M!XNNQyj2&x<72%Qb=9;2W`U)N;eM_mX;0^NLee8nkTr+6sj)+_;>-?8QEF;X zOjL7?Wvozk{rhf$f8-x_5~@4jNj%aCKuvRQZ|ge(F7J#!o1 z3o*kY!sCr?V1QBSeNKbK19H?_wQHaBP0|n;n0#>zs$x2fnKq`a8P8$}&>IK{z|BP_ z6w|+$C|-{A8nlhPIJbmC?=~}1K}*G z@zFkzCIFEJ;Szn(Vho+@K>{@DQQvi9gS9Wy;=A+p$1X-<1+I-h?FHkAQwe{ubKvtc z`2CcjykBA96;RTJU?ufcPup>-3ofQFRHh`xt$5ANxaB|es{)T{1 z-by=pLbmJlYdUvj^y#{X)afLb%QkyFZ;-pb(--c5XCmaMkh)b_}V;K3X@>AyP&;X?=0A-Q=tIuhBMlwvep~v=@jLyc#||kl-UwRO$Iy5_yGET4XQvT?U} zhHX2agx=@Me?Q#w?L-ky#$-HjbTTJnpPrquvPtiMfje<49eYKq!lh?BGj+=<;S+Wa zy!|jdq`m`&v5mcdc(uz-*onljbvuVTdhmsn*5hAaUHYQlO0_3yX2SsK`*iLCTX9i= zJy@fZ=-~c20X;&Z`lAQ2pl!QLOlw(()C*W+oQ^8t5I9MXx<8P6{K_VXrqrMH<)~P} zee=e4#$HoJy!LZw>$wB}9*pANbnrL%AHOaiSz{L*hhn{HPvbq?D`{4%!%FYKe~-mm;0kJ3;z&h1~9oDJGfMdM~a z>*vhj#c$&GO4dlp2!lrH)@t3@5O$8Cxr~|z(Kg*|5g~g^r6_~J7rG37@BjXHk<6YM zZc*kQ6KWFf>Re4{n(b|Gl@OBVe;xa~P?a5C<*h(`+C|~yna|TyClYG;9WYI4nl0K#;*t4wM*0+i7x`D z1jYj3(qX6si;#1@LmFbwiZ}G`uU5yu=Bio9e;rh*fEDy(n>&tq}&AGR(t zOJbkBuAMwlP`0(BH|Q>ZQ;w&&R?6XYHhg{F!hiwq^@`V)JW|qAk;&DS{(R}`bE*~E za~iH)OYo(Ljd*XjUVj26BfjgLdefB5Q)r{gGu-~NyixOEv~cJ+4@TEhG`o1Ovl$GK(Qc zkGSvk!R4NE8ZgZir+pWq^)pIT-I2N@&GQio4Gm@~pLFv@;u8v;E$*ghu`XSl{?$eJ zl-P_(a&_kQKy)V9&RhCegncD>Vp~sWe&WBF>COeTqZBy(+p(xw{S$eouARGTVxBLA ziK!!puMXv0jyeC>{dNE8=l?;{u}#N7IxlK~9}5 z*ojv>??-D!KcfivW`7g@sot&SuUcmn;u~$ElQj6Zpr1Cp{_1Uo(6gG~9lKJvm4w%) zjh7JOKOKuH(GIi*NeGxLAIh`ZGqS4brzgg`5v~cqEKKJuhZ@#jE#9q9$_)DL;l6X- z3yMYQfJw6D;%FxVm1oSygXhso!Wp6S{iK!UlFWm+xxUR^+Y=|p>+NNkAVOdcPn~IvdMsvKIBkxoa?(q? za2%A*3aG$f6tD$ABS6Ezk@-Xq^8tYq*N6HHsF5ce0Vfc0$Qn8eJPcY^gs2<;#`9($ z2yf6i8<~>e{de8R12DN?G4zHGlrIgC1wc>VqdG93*RERxxdxh;p`U?EXJ1~E`4jEn zD5oy1mR-eh8o<2ZLx!%?`ayOS7%TX8a0XNc+i~QPu{xfgfh+ar%PQ!+X~dCMz*y;t zHVO0^8tFFgfM!_1tiqxx0vC;Y$8C$wdsQ^NckC(f;ae!!QB&53fs=5YFPc5?#bNe` zEZsoi0|-nw_&QNAu@{vUC+^9(cS+&e2`TrfN2)WrVBfgF$Eug zsTYbZPps39IkC%1G_6#8d7@%gp0Mc~fLO&)VxL)oU~D*u(7y35Em7{D}35das#t9+Sz};9HG27&RDq z^%TA<+;R!#|D@*V{A8(dZO1;g=uC2(`~K{tabW|LC<9rqKtk)Pb*7-B=iFP7<}F96 zGHxZd@g>kjG4RmEp8T*mSf{O+jOlcD_1$q-u41 z^uWA-V!=CH3pdO9x0EzY0|SW1G>ElzxBsN`N!bja*D>o3ik3*qChv+4Df}&x8>n@e zpLRE2J(G#{<`Lw%_qZ^;|838RX01R*^?08THi9$%(Sr;%!${j`3E zWAGVK?fy^HT#%)v5K|EEogIUvyLY**Uw+LTo5r=B59q77-&J@{g=hMy>GM7-1p2w{ zY0CQA20P`@_X5XTQ}$6My2>BbA3&vZ693V__1Xc@{vl zh9PM+^A)L! z=H*_&JjJpFKie$FQ#C6E$UN;(a!7{@Y3`~FDy>;o?Y@ca1@@~7oi(BBcUUPCXJs^A z2S#( z<#+-Qf0ZjLsG;n>RV$zsh-oSNkTF@|p-_g$tn7eWw8TvDv(!|TZqY~ z6QBjoY7aSxCP+5#!5`fJr>2sBTz7aC6no=st&I;7xhCvvy3rOo;B3#6{}kl8@)8Bt{8m7zVy}e;?UQEp5JdX!e{i&ac0BN>q{)s6vgkAenlh-D zDyyN%b$UB4{pz$JRb)MjNh1cgkqi`UU8Q$xsuzQ|MCHelc}7!`jZF9T(ggDV8^5rS zi6Uk@cezT8#C7_`(fbrO=B&L8;WpOq(^X8yZpGgF3|Ur-EKuZVYF{)g*RECh9I~kw z2NuTv2i#HAi9Nkedq-3I3F{8;z_NZuKc$GdX@6|bm&y|)2QT#LMZe>>YI^wWSvv8b zjI!{jhByUr>c4HUH|weFsNn=hUX7W@&)ct( zyO}v@mEZmcM1hde+4Ve?-~itBdvZd?-u?%78GZiK&AcLIG9UTLT8B5(bU_%1i24fA zL@=5i+0EF{ccNxzR|%fLz^*>l+Y*{lQoAOtrpFw8!FQS$N>LUicLwX?dm%cCu%Y!L zC?@ENOghnUiO0U|6cZ0-(^u_yO3tS<-5Y`P60w+#tINWLhsmAxdPA$16 zavb!B`!jBnl<<7LrWmSwKlrfkzEr7Q_B7hxIF3%rs})MHv@tT{#8`H{|^aNiKJ zpF7pd<~U_ZT4^e4U+uR=NZ)JVZmXi{LwB+|(sx3NJ{h4fkQ?Oz|DJ`iC=5ZemO+r_ z9~d=N@JKA|ZVOZAX!|S-j^1J#;9JjQG=E(Bnc1O$z_BDk5Fh|z+sraO8JIt;5vZdM zh$E*+)Zss5jogeu2%CXI2NKiO06#)>;gSp{!2beM{<9>i zIdIjThckJ<+Y*P6$<9L!<$zs(vBL$w+~Go-77_d^Bx4V)EH zg=N$_VdG@HF0XDSqwlinG1SvbHLabMJelnR#st_*SPYo%d4So`z9I71!Cs{Pul~pa z(`lQ|e|Y<1vOKg)L4jH$3GN5_BJTq3&0?ByJE_qJPh8a0VAi4Fi^dD4wS?FoZV~N0 zr$N1flX*%|{1ede8Kaz47Zp^|9#8*!{`M}3=AsE$r)9iLI(14XJ_oeL;IIVc{4Ni6q`NiriFD2zz`tI72|JvL)0jJ^8 z?_C^1##V@O{Sq41{c6<4pyVeVyZ$xIV)HvII&L0pY9nL?sh>rld(7Ob`&= z5ZcM-DeGWEnal<+y9U9YMt%CS@$(}n!O@5a2l6~*pJ|Z>`XgrG5f^`I#eQ%}x#q05-j)xIvg=YRKjJ7B0C!1z>6tDfN&F7GrtPn2wJof0M7Y zF{XfGp7CrNXoT{`s~<}}8Jjvq@p1N(I7k*oQAuD*puj$sr4_LVeQ0fp({c0HqkB99 z7*`@@G!mEU$sxU3(V^1Q2AtPl@-0LgXdAjg6U;(${(;DEE=_@$Sm*8_=bW39q0*t{ zBIVbVrM^F$EQ6w8(WX;u9a7Xlw1f5Un=Jowag=OJQgt6$&pU>(7?!PwchfdPDUDuO zQfbYgP;-sn=w(@eVm6Jjm&EGZZR<@YLf>&yf?a)Vn?ytkhRXFHgRkP=vqqE-MYN-_ zy>IY?IwD0!S!(#>F&>-S)Jcx$3)%V5{aU(;---N1F_(ppXA={RF2^E+rl9SxwVCKY zlq>FGu?Ihw(JLq%3Mxm%t^6DC_^T~(U7mXG<+O5b$T<0RpV=9U5p;C;TLn~r*uYZo zLoA=6m`U3ogI<$GV{cF0`77mzsu^ef5>hpAml~UqQZ*8F{bwnra$XGsqSAiL0!9`Z zje>*HaXK?(L9On2jW?HUVvWY1sQ^WJ|P~JWnMAs!B%PrwsAp-rGuaNO7qe-(Q|hz#p1S zvP*>jq$D|YS6_S>-&D>ZAcg9)4LTIw=vFwkignkXVZ}W7!4!_>ArQ)t6jHmc<=_X~ z=&f`0%CAi$)muPZitRcN2%{2-4p|JnT@Klw^(#MZS*<7aPcW=fYvl(yp)3HJ$ly(+auk%$ENF zN822)*t?06_qa_hlhpi>G_J`taEr2f;~Qdja;Q?z==-^ge(qUuS;;q1=_xCsgV10U zA7t*wrA=dvibRKD0RWM$%C2A~_l*kJzaS9SRo zdeO{JJ-Y_imz&E^BYBBFniOQxT+2QaNQs7d`DYS^zUDOVM%bceYE^#JsUJ^AdLnZS zTY0XXI`{TXuR6XhbSkKa&^>n>75KFg3H_GvH~*_i*=LrwpSg#+Jcrp%vGCdqS=q_K zSP9M)WZrIJS1=cW+H+JgG5W*J4YFX8=FDxd;~M@ZPAiz`WRGpV<*0wQe}%&S0Pu~5 zW|MN-$Y(B&wtXEVZSMASmbG{E6`exp1&Vrd zUKVc9VPaZ2uK{JCP#U!6go4$;N>I85gMuYkuG)?jJOm%S3}R@<4L%bsKLcOob3_4X z|9Z;G($WRc6cM9b@3zstWXSCao@`$OXI-)2RsDM3%?)6BLmYBj-H4m02(=z|W+QZq zfpO~#`!RIZQD;Mh$8^mu!9aXA;xC9Ih<_roJoZ8DVjOZNI@V8X1KfIKgER$B&s7lB zg(|f?E7GUAN;+Im+O`PyJ+x5P?8*UaQXpToycQ7%4ag()R1DQujvLx9U8n<9K2$9%r&bP zf!k2n%loKbV*cdhi;lqO`pUHG&RT8q9PyY&1u0EoG<|_NPt>wLd&&I= zno9Vp)+~G`sKH0u%}@6*6?V#F!f_9KL8x`C7;s9~60I984JD`=I-YiiFSVlrf$>3@ zMCAx5NonP*d3mQ;A+uiV?N(cm57LcAiQFtMHIGlLOCn3uaE1oxy~^qkZ+j@l5DVeY zjsqLaIA@{ZsZ*1Q`em=7wbte*)r+ss(f%4N0+X!j%XZS3G~Ya?!mqvz_!RX#XeNr7 zxSX8Yp3?krSjt&x|G`2#v|M*JJGkvGbBXJ){izOb#f%TS{6KhcXp??7PhE8byDa|D z`AKxGRU@njH?5^-wwbt=@6V|($KaevS+HNJY1Pb z0jc3l(4qO}b zAM^cMr0NGAWA(LklS@_iPPR?8!KYt(F(cxTEacSpD6J&an~U9HS4b1!)V{`Zphe&= z$il=L5uMze={kRLSZC5`p^it&iLFWr$ToF&YeVR$aCH;k&&5> zVo3@`Lbilk0nuK-Uq^2;K|LGAyd^w@tvc1h~O>e8x^u zLc#&)7u?bIiGaH zbb2VpDZQp%SlMhl?%NiY%|#G>@?dF(aOJ3yp=2RHqj8f}Bo5*KiIepalY92YwQn+S z=$q#YRW66;oMzoO(GL=ZxGkZ4TF@cnx&h3vuuDZ9e$NH&e4b1UJhOM>_-^)HH%CoG z!&8&yDUO=ov7yqWp%>9z0{r{EXa}Uf_dV2vbc?cgCf zDu|;A#jlFcKHB}?%#lXv15!4K2Zk$8zf7tsHQrvcbO{Hi#07saWfo44(n4M#3(J}i zLQvnRSg<3FqKZ?NpZVUPS8^CR<&=i7q1cTD{1HQb;Y}|-k?RQUm@~c$8=x#wP1Qg& zbAQtGxdfSY|E(u7rq60(fNYd+D)GkqiF)G~pNQ@I28@pVV*6uhqQcqsQzAkwJMRtP zQdzrU9!ZztI+bR8D~%(m8s5=&;n#%05tjxsE@SwT1~yH8k)`JXZRbj^Vd>_ zVxsVZFD}9r-w}y8F9+R#`fV~hGzUH*F6h2V9>bq_f`SFQa_ zXwWb3{il&5^Q7faf@#3e62d#C&R0i7ggUmpq40uFW#_F7!#qB5^m)u+qV77Vr<@8O z+|FVb+(T^0B;EO7F z1bY~|u<|3ibH?kLI;Y|_zcMn(^Vg zrc=Zg&_?=8n&WxTbSddI;l1C-d=njn&1waTLu~Uf&=Zv^&S`Mi^fDH-^W4UHOE4l(zG5=bD{zay+V^zg*pc4w zFSo!qNWsA=E-~aQxw}Y+JCx>+Wi>qbLzWXQK*)_xmn(?A!7l4_;PyWepmM6+?-DmH zD3Hdsh!yWGwj{V|`@<>PySTEp^XOBoesdjdTSh24nm2GM-URI<)O|^uWb24n4uUxCr1;_okKb`i|L2(wW|fLsfzAPw z?uVuyHI+Ks3sLAvAT$Sjt=6>{?MBg2S&%bS_~e5OC|$Q*hBn!68q-npUp*y_fMZv*3dB19 z>MTYl3ZK5PbGI;goTraOONs_1AzvBuvvbNJG7m)`c2=N8*9E8{TeI351<#Dl3t9y` z^YNac`I&8Sk^HP*jJ;jHHXo+#ITF3{$p8YTQkf?38fcWN*|)&Y#W-l*6PsE+i81-^ z*;yHDyHNc`D({QQf~i1v?b?`Yn9k{H@=>bEvc_E7;-RfcWm?_yy)_YAd(I0+cvkL0 zOh=EJ)@RA1HpavfxpHt59kq}&2y*iF@0dmn{SUaO!xQ`M)iHr`F3#JQznZd-`>|3| zXa~xAHkzfbWAi~WAL>keA(yxwHx*#vHw%%jIrpkI#Eb}a_s^xCeLNQ5N*%+pV07%F z#${GT@TYp0exux{B6av%X<^ZpPTApJqR5oTwvFybLT(c{B77Je2AsPB0d#?m()}7y zwA|MYK9g~pKk~t79VHPv^Fn?G`5be-=2C{+8NsS#;cWvX=!B#EsJQT%awWP^0AKJo z!X5kj(_dIopRPu$cNA}dqwdD4YLr z{8VB;|1Uyo&29XS+S7^u>Muc$e9(1x%#vYCw|-mt^XX0-^K$dJ)6RO!P4r>Ep2@^X z{l3hI0QX+J%sqi1f&H3WpBHZU+Tqevul6qcxYs`4E_Ak5hfYH`WRL$dCWf+~j))Kc zo20V3lj6E9dMH605Kf;qVJ!20sH>rTwz5vSVyCIK?KZKQ64311jzxxjKW&he^RPr! z;nS1CE;Hoi#vQ}8N4KloIMjtA>$0`&N=D#4^Wk-qkwWEskdz*ygE`OfM%jv_F%a%6 z!;M0n>){<^m1v`8$CaC>irbQkPmZN$gm&VkEA(~?bBA1`l+Ni?36TO^W+4^co z0>_yK%TOTA50EFz!%^T?CjhH$4tR|^i)cxG0Q~u7_zaOzb{sx}?ci??F0-5=OL#~d zjAgP#*a3pA_zpGZc@OQNqD;A<}oC@}kE~3T^2ol8 zhXv%*nXZ6>Q}%TnyL=aPCP+Mc%b~U9Q@a70;T*{t)EAO*Hy+O=kDJbG%ux;K4}Qp` zG_Q%PX+J0gRe7DH6lMvem$dyu-3U*S%pDN_8Tn52=zeJ?k5kV-$U%6 z9n87)rtgEYea}~q7RMIrw22S!Qq##q-EiL>*5~7LjZaiR3!GlpP=q%^6=o)-!lcIB zzH<}|zbVf9$R=`3VkDpJ)&CDr*L`H(oRt3O+hhRMd=L?U z-a*2~Tlv-t&ty8!cm2QZb@v6o;!BClv?ej)^=$elW`;05z^CBPjm|HD;mRVq=O;s`% z=kXXafA_8$vv_PC@j@ecggt{wC~AxRSzI2b{xcUedsKUsnuQ~@>(Pgqh66=Y1+Ludtnl_z;vJbrE5|@IyzgA+1 zep4KHP+^}7XR`2*$F$xeVsv@3?1iw&c`!>zKw~h62z%{2$)pd4z&uR7N=yB zbn=X(ng#4;Z3lRN74l~+qd+cb(&tnI&DFDLnFI>pUUv^L{3t{)Q+*6R$%5U1eM2VV zpiepbBv(g;EBbf^YcIUj?8}1sHG3@#2k7{36vs{(lVbn*Mxwg2J#O?rRD2sP5YD3j zcj4jOJ>qCbqNbJdRbbn*VsD(Avp`ZFmhu@;9-$^E-X!|Mki*X!O@I=&B-yF@+#(jGLw`c2EE>s4Um``6w3?+y9`&6kN(`;ITtza-L zs&2Ri>{cj0y#L`PYo@H`w6L}?PKL#~xw&M(fpE&xN*MR_33UtP3}^(^Rd8tNid_okgNRzc%0lN&kw;t%Es%<-asL}&-_=G$;phP+17!T z6~+l-YCqL{H>RXQB)vG66DRAfm5c5`O@jNzUj7`w?GeaTlL-G!3Q-ZBMNAR{0 zH^JxIXA@G#pQu-(7yDKG#3W#M-M`G~oYBQld3R6no$ipSKIoi!1VdAUClx`N)Hd=P z#K_^sH(71+>Dpk~^|9SZSuo9PVTZG_uru==w-FH0807Sb=Dl*y3ORb%-(Djlba}t9 z>}JD{=oXPh8?QFop}Ww2p^@!2FG#uRv_2;)wjGGpyZQFtp`@`R&`+*i|>hKi^e3vn?m=e=yK4v2rCPGT>e z&gk+U<8?~;Mg#va*FL(@Nk2w7TE}6quo(V1gr1v>ZunfKxR54+@O?g}=bZ26CY2XM z`9l}re<+Xd`Osme#O&qU#OeaN9lCzP=bSH^%AcoRNO+{e4M1^BZ!##!4F%lFaNX}U zGOiAmT?>-K|VKPM7gG{76RthLE5?<>wLSE-PBb*#?DftTWgx}#tE zbIx3?c`$-y$E@@KcF);2*1N6TWYVB;7ECXH`y^Sp=92ZidTZ>!M37Xz)c=1nq=>R& zvF@%hDUC2)U{Pb`XLM&mV)u^3(?kf11cL4a`hf?vgw98PfiRcLS+(uAo>SP>xm)z; zz8AxHj#{*KZg4%`++>1N&#|U`dL&;W-=@^g#tMPc&)eEIdeKjUvIJxoF7$~5@5yU_ zG_{|MnR2>%U{Z#q{%z8sJ&Bs_Mh+P(?UQb6A#>CiY~KJ`O1$OQb@?%)%g37mjjGbf zhoX#4$yttLNlEoguJm)KrRi7(GBRZ#x+Mgu^~f5YHLM>biOD`>fT!3y1f}bf@q3ps zZN`z2r69ZUL2dlYna;KmZ6ozCHC&|Q`wPdYCbj8bx7(vU}yYm;9_Qz>x>h5gbnN8o!U70 z4&okcZz`dA`4Jj2II4SC3yx8=ZnF-}ZntGK5m>IZ7G(4@fKdp43NJQe`IWmS7Z&GO zXoXsri|q`k&e1!pDevH(cVnXd{S7_zXAs5Atc{YI0x0VgsS!QKYTsp`v~#d+AUg13 zv*JjH})UfPAWbkztE>jPK|Ka9 z>r8fWsDJ=cind7?YUsLx-KQB%f6_6t*hIRqb&~Z~hR$UzLw|c>9ryq>byB}jOqmp0 z{Hc-CHimmbepUYH_u%2r30KLM-n#@$zmrO*fQ6`mi+Hy2gOst=eUzjkhiOAdx!|Z% zxd09g{U1PQmtNu&u_SJvl5J`#_IqDyK)^5vp~>LG;sYV`*||aGnooZ7%N$&?p&M{0 z)OY8}5>+W#wo-HXD)L=!_4Oi|-yyuNLzmg_5B0{mE?2 z9-S1`St9oziu%FU6{H67&ialhj^$!Hm=`oU7%bRkQ6az7rOTzprS^Y@odsMIBEt1c z0$W(_zlpcJ?oXS&6ihu!OZbGN=b{pHHHP%QL5O%a8Ikix{@FUkGM|a%S2{Z%ikGV1 zK5?;H+n%hev1HmKdsM>uF|=lq;^yXhRJHihND^oly-q!Uuf4q&vy-r3y^y=6PWwNK z&OM%~|BvHmHs&&ONk!(8O@!nY<~rn7a=%q7<<a?qR}WvOa>#S#-_z&=Wf0CH`jz# zAI7}^)fJaxz42uO0!^2#_!LuHLD~kWrEo0ED^xt@NlLeL`x{_1;M7;o|L(jriuqTy zutqUeUB^#9FNmfh#ta&DvmFY&pf&CQ#K8y{xC_J$uKcZ?Gb_^?u|FhbjB$-+H7zxlN1x_mx(!ij(?p?5_s* zQ8H`$8AphF_$pX3-$VqXVibT>9+)D?MdG+XS<#D(9Om%t20{FX$fkgGQW$9Uqxh5? z;RHQ?za$KEkUR;t(4iKIpCFC@+9x8C8#K|J>;hL~VV!^)5uF7SG`|fzM>;au$mpiy z#RG41pa&_UYL9iJuf3EP^aE*rxOq_!4DFvZyF|VTnKoN{Lp*cJ94(hcjamfD^P-16 zkq+d}7#gkaR7O5+?5kOqPEr&;# zRcRk8cojH3-R;y$pmO_>jsR?fTdCjtN=ZiAH9OqV8~M6Ho;i(VWB@R9_g||9q0 zLJuc;3M#NB9Er@;KUthr|KZz$1OG>(V}}|e++WiTC-pcCuU%>y_^vBv_$zJ3?RjSH zO3rj*M%?Sm)1%-7o<>#wYMEADr?`g1?jAX+0259V z$*amTKNa>}F)~4+%KDR< zQALEP8TL*$_fckB;XtDA;^dR%s?vB@+h{}07BDse} zE)Ravsz;4&GYm&LlU+3Yf3BT)ISo7C?(W)edQCh>YIXf%vi3^Xn!^ob=*s<+p7&Qz z9UOF8EL!VsvliZSbK#hc7NqLGw(Ct`e(1Sd)UDWO-ZST$p4#+4;Qq+B1zkRrtf4}da$uM?2pIGm|+d2ZuP zx`p*uI878>-uBKOLN|Zh%^@S<))s4{kl&wh1ERC8kAvbns+M&h`kM^~sWQeU@+>gi zPwY?8i0XCs#+MTG(+FHPb1(fvju-L{3^U0_EQtz^_P&1FefdsM(%hS?dvf#_{RjY-o{!M6C0_!{~BS%3?q;OVyv@)UYUCjc+xeVhPBJR6a_D4GKqDKktPpDNR|}BZ;W0-?uI^z$9bz#z<9XIa$qfF(<#`!=){!%U_nfhH_=F|KD_M_na%~^HZ7!6nYf*+e zR^DpPB>j$9onlc?ygWQXt-<fxRx;6D7Jvv|@qkEf42od4@5HKYsB06{DsZp;4$nc8_1gkCZKA^`b)I*yu-8w*D zz3>vRu&1S31YVpq=X=;N>H5m(FsJv%*S>ev(Y_T!oVd0Blj#bV z15plZFza1@I~L)*k^atlr7ImNB4F}6Yo;20s?J?6b;bf?;P@-BS8Qc%QM-b}g;UD^ z*Hi0RhOK`08o24cJ9#*#*uGyP{qL~rVLi|Fc71I_`R(E^m(WbLls<^=1JIx}A8J1K z`ZkboL+QDKM0JE82rvHqPg;k)>Fj!5E~l;I(?V*GBb(weLfz}7>ni}Vz3(D(pVc9| zxioj>^zlO)5ZK7&XBgd`OamwBS4W#!BbeYdFpIAL@0MGo6#a0luB(9ctGs>i?>%Mf zdUd3EG_0{Rt)m?ZjY0H#wxFY}%92W$FU#X%>bo-|8{^ zMB|mZm165b@@l|0vCw*IEm5y>cL%NzQ`G0{zx4@Q%0_QWVwZWg8C*o=y)KO#?6v#a zoON9A-SGLFG;TNdc;87)e`lMQu=z>Q zpXxJx;aCT#lJ^zJ@{jhMHJ31A{|7X#;qnSF4PK>Y8#4}RO3gobSPJ2A35%iIMPiR} z6Rq}|sWlG-E*@QFW>C`c)Pi;goR_7>&7KNlNi-a!Qkxta`5FuE&9OUee=NW1t~e>l zPPB2>*$NgKyp(CK{iQ%J0g*Ul&DI z7L3cay#9XCGT+GU=kiMQ2d&5HH;xCDlVW$x2(eTGD}`=7fA(-{(FqS3=Lr#?@;)d^ zP{5?{D#7tsG4<(-c(X}_Zt@h(Uvw!wGUf&2w&2(JNR2015zfvo8GKYhNrJ$=*cHe7 zHf2SWSZ!Tb#R~r3nD6jOz5SFtT@iA=BX}#7jXI-mS3m_;MiFcdgBLtG9tNw1D%_*V zL?zy$y=%eW~)X(nW>9JmgS>^^p@big}GPmme$6 zs&HJbGQz-6e$r{}!{i{vv&r5fyEa-qB&TMomcMisC?k_Ae_nG-#B*@-`+O3zJ`#bi z{ecxKvt)j6nSUj4?QKea!>r4hvi8ETTl-Ok2};pJ0p+2y#*QAL9}{%jxg2)bLW?qeQa*C__n@_Q6`K7AFpExkTnl0V8&B8X?qWDNp7&|~ zE#6&b@$S?6yddPDz@vJS>h3<$0-kAl@&Y>FVa{OY*O}Klx0Sz$!U@^kiz?CnPah0P z5Z~ixmVZ=5aTfdAJNow#Ef~Ld_5UtaqTt0iVy(yqGAf+0H}~=ezMt|U8%t<=SXA$G#G7vQWb032z6MW%PBpg?q)9ahz~_!Es?gi4sJ^xN0(7~OLxq3 z??^SdByJUajH*2%|NBj=KW-5DCa}FZFn_?2(roUlhW!v4aX0z(olcqYh?lq26ED1t zqad%7j8UYh^)8f5u`&F4br z;24i?eE}7)y>{!a=v9l2iM?CGYFrPXT!<-w-0w->TO*xcb%*F&kGt>O)04$2Pc6^t zy_0v2wzn~UA@9$gI6lqypM;{EvC`{jM!{#Le!c3r=G*W62*>wbuY6+M;YAu&Z(m-r zIP>khKF1p`kNgLGFY0jcd--j^J3B|xl@G0jZ>@ww*L#^Cmxa}Xf4oGO)c>u%XX#(< z|4GxyU9jO1qI?aBH1TN`LHnU;J|8vP~A>(Y7lADViCacLvUkB`C*xa_}* z75UWSAm+Ycv2#rzdSt?{{~1@AN3*x=d5w2K7a~y`@C?%O(C1#Wc9}+AyFXwAa9K z!|-2~*R~cf1SUo`f8J zb$xh!P(=si;d6cva?QL~7hs|E`zMygMFb5#%VS+jts$_e|G>`h*R_1ke(Og><#!V1 z$898;KHDc^-GVOhh(pW=x*27L%7!)2wvr2}M(VbCr{I`NC#Rrw%Nslhjacn#r zbfMC1TpPzgs!Za%AmO_B9$yaAK1*l;6QFcL{ncn0)mWfXBOU?&L{g4kQd#79ho~}jp zp{sC>y$3mb1*B-rG+s;qhPV6{oEYBwlgA*>fc~`PXp%Q^UAAD<|4BANf&mq`?1mxI zEi3B{dQ0*@Yy7!#779qIOq?T^6p1Ib0P$a{<}$L(^Kbu?BBM-Ufo2J@a5;ZmuPz~W zQGKiyZ`pXWG4*9bCi)d#%-G}v7XVuyiMzigJ#sQ9FW-K-JwqJM{!?u+58lBbe7s18 zJ~V6Ej#-70a=I4v2?7a%E$yM19jU7~IV>9$@1Ja>xld*4>qLEf zZh{lUSo9!=9ajgf@$us!V0paygsEbSl3|1>y5Iw~paE{p$j?NE*^W577+gx=eF8a^ zzHG)k9|Ej*Yr~2BH)9(q-4=Oro{w%CDWi42+SpIF9%yfsaml{vEVU7qNVpupKXz(R zeJXT{F#O^Wx{?0A#aXDKkvs0!TYVAFK*lCRV>~rD{TzLOp%Clzl%8=eWT0t>pLRs+9P%n><0(y4B~=uLu8k%Z;+BpEEN15BxAdq}!Xyj@@b(w^ti{gLfBW2Rod&M=T=QTU>)685-9QM~7iEEatXT<5$$ziP z;*yTrFZbxZaOxG<5G;BAeS#=;jDD`og|Cj&VV7HuObGdj1y}!5igmN+g&v7p?j`L; zw&(?RRd6tKicc22afp8nr4;6RlpD0MM1=J$kJU0QrVEugdm#kRFe#h28bI|ct7zYv zu8FX+XkW5Gg(Qs(ni>s0_4|ExUE6!m$J~`B9Qr0hl&`i_^fnU>_2xPYZRUZt>GK#A z$V*@J{Gi^`8jZ6KYzn^qJ5>KCjkw&1l*0-xi9df)v!z*r!M3P*>eHVN7Z6t%2WtQCW{jJIn#yj zv1*-kJEE{1lxj=9UBU@!JE*XfOHH;~1ylJ8lN7wg zkcb@Sn!3=D+5SQBoWb&{L^nKLp9{Mz&k=!9D;VtS??7d8*%*O9o`DA<11ftD_V|P? zyXo5h4vpyll((F|yxXAX8;OV-Myd&1jRZ$4h^)g8ig3J#!Q#0#5a~w?lMTBLOE=n- zpG?#iy|%^I~zf_M}w+lbId$Z_usX1M9Juls>2)WIlwykE!dOfF178%ZH!-kAQyJc zI!P{Vkf(6#>b)n<~Pd(nBs{Guz%-&~aO`*W=10O`u%UszvBOF9qZ5^#M} ztkC-h!CzD_5=vABeX@YvQAxM==Tw!9l;Tke>+#>9&nu)qL-^_^a`!e{Za1HekW4D4 zEvi$urA>nExzy;->sxdy06)X`ajGMAP%fg%mAdCVG1D9|$sVG6b)8S(Qhy00XoK1N zx?*e#CjfFyHrfB^FR`U13N?FJ>=3)RJ}Iv*0qmS0;*8iCE0dx%LKgF7JRC^{-S|{i zrj7n(J%Q-x7hWZgGT68Bbz@s9odzAX8mPeb?p#r9TX_%F_OxV=t<;tFH0eif`1m;8 z!0u}AJJ2X#e6@ZB5k8N_sR$V6R_Aq`C-*%R%;IejtZ&c!*1k_RC}^wHP@jbgD{ymZluVSS0uu;@PszTSYMunNPZJ3dmyJo>^g_#I> zPofcwtbI8wR&3Vv@k|?ek}c={;Ur6OOzdam+*7q`I}5!bh3`ElF1!m&2fr}PeVJPf z4SI$}+#iV~jL3B&M`Way-PVG$t_X%(y+y&=z*fDN$)rLU&(Gkzt-2no9i*G5cBC@k zqW*=NI+CNp{o-xH$7P#}x{)IH<*++LCb4VpZ;6{FOP;vhZ+_*E&JRl#2;w=iu)a7^XI}ueO`)+eaRf+wE=~`mqbacma-v`DEXD21!o7zBos@z;D*AGs*1@W0@TPcH?f9s2yPhyAo$(^GG0b&BzH>MXc8HMX1pB zDIr^|&O0{_>6di>6V$3xylPqx5v&ie)#R299K$dxps|#>#69cVpYIkM6b;|g`(i1U zn-e~T1%#2^B#*Ttcdy599sZzM>s}fK`OdG2NeJf_sqE55HxCnjMd)MQc8e9}LY{gO z-amcgIx8#6Yc^x)U(mk3G}AI?@!ih1F_KkdXca%uk*`g+faHSo^?$9qC6havPvdgT zi}ld&rJ62O8@7LhPhg~(o<#8?B$u^*H+rVVF2@Ev^M?H}LjBzf!{n>jb@i-r>GNU! zhhT}Yd++dxT`Ul3cW1eX|Lf$oj$@%oN@2I;>2;ZxSEi;kytFWCT(;$9W6qqSk_`CW znzQSU%sVR!-7v$(FZBVQo646X!gKeCMN{!Nt zx7KFX89X#*@GbFE{C2x5nLzgV0Y59wL>S~o5?|eyU{Lw*pn`;-X#075Z(4V^&e&3X zY~R*3D1s0MhE9{imj?XnEmPZ9gYeX}_})QRuU00j#--UR z(IG}40?<8sFOz+=+i4}0C>;3j6FbsAMA^G9?9sW0uh7lY7g?^&kL=>q{@Bc*o06RwlljuaN1!x4f^ksPH3y%v$C7xCTnReC!#*aA@=7`zEcodJ{~;BuHKj^p|F5ySw} z;6ClPP#);&Fb9Gv4*`LF(4Ov}Hz7&-<{ALg@UJ6KlIDTq0f!PF|Ed}5;;A|Am!QyD z8kZo?Jor|!3|sjdb(2HwiM}!07FPB2KR^<6;h32S^~_oxR6yR~-jewNYwdXrU_-qZ z>?!C)Zh@8PF2dFdjwchV0T99WZgm_I7BzwsQujM(x8*cTFNgl3@r&bI1N8SdjUmdQ zicC`7gdwOu#>X=ZL6Gjt}^ULVN_y4L6JBnCj_(~aQ1%vtV{b7!X8d$5b>Vb!T;J3+%*h{m?r{B{L|Kd@? z`F9YcV!p(>)_JDB@}i$x1tg>XwbIVoU*Qh(7dvj*`%h?%4371jbq`}kH7Sh=7ic8X zJn4J=Ftu%trsU8$#^Il!ved*rJ<}tmm^d#wzi^I4QV!IjD%u`F+}B1t?FrzPXr3>u z>?&#uvFM8t>3C8apO#_w5OL5?h_l>Z@7mU=y;N#OJ&_etpu94v(yy8`WHnzErynyj za8$rsXYv}Cjphx}bE%4+sy)`Nwnoxf!(sC@4L579AB!JABwwI1#3@LNs!mlYkr0rM zf3KT2{>V~^l02JgRr{<1n)&G@-AEhjwte-s(FuIZgr^n>=a)jG#|Cf|t_e=nYxm5j z@H6|xwtioc%@m6XFAsQo?`hgAo$V={9;nvAlHQhKongoE6iA!ndTJGtXGp(ofcshY zr7v^vpcK6(n>>`)le>K-x90C+w})=mPrYbnXK!ffwmMlB!zvgy9V*;E&FvNj6f?hm z8t;wy*M1!a-Hm^qtKK9;EtR^?Kn?eXYOL0j=J3}W|2WltEzX3BvsZi75kiluI$Iq? zNF;r~WHBPl!;`FxyE%l6*v10LuRBizuuBCRZ{DNb-o?g5h@ln7Zo%br+gRmzQwE-E z_S{N($-TZ$YR{B$7{CTUh}0+FikCi~>9Z*qhZAq(%ha}?Zv2gZ&vBSH_P(@&2W&$H z3!XYaq-KWahsW}K#B&sO>f6F6^*ir@vwE%L=SnE6;O=jH=^ObgIFeKi#k8x2h`C3) z2U0?o2IV<|o#|{DWA*k~#cjQP$kYyNl^ zo5;?AKeuLJ{y4oGpkAv`?(OJ3CwdQZ}b{Bf~w zCX(>aF$MRL(yocz`J^F_FhY@2XEdnM2<}9zEVR6}3sn>Jw}=w5vG$ z1c_*N{8z&EQXKyGjkx6g%&I2ag9_JIUl;~SW9V^G3gCM^xAH1dtIl72Dl09<`tMDS zCNSHr9r^k{F zjI#>M05GVF)RM*BOuQ_IU{H|wMVm@cJADe^p)E}Ndo0SQXufD?E)Ef4=Xgj( zsPbzLm^)tsJ?={fi(QkS=4bZW6e>?5DtMIa5)J&R3@C}HJF500ga<1lmYXN$^eVsz z9=MkTg>N&y+uuIfwqZ&2%E&&{D$k#I?IobSG*0r7kgpRNvkmfUnX0{FvN~>}I4_q$ z25s^=EOhOa2eK}Y%sn$6(yNL-FC9sM zlChQYop(9n*!p2fTvOM7Wip3BEttKZ8v zg5+e2)t-pN)5GWWAV!FL3$yK|nF=H}+^-~1yN{J_P(qm_iX)0j9=N9d)I>vudMTS@ z7%3}~EzG*rT}GCE*abSLNUHGoSU*;=hC4jLZp6^8o2_h|oDdBa)!SzWG6?l8`V6(%6?+p*PnpC9e=qKT-+P@<*CWglq56 zZni5(sqa=)r>F#W4P8|o6u38RE0ef4_{9oE2@(xvR7%n!hc#|p{x0&2C6^R@;NpG*}Vx!A4MK-|%LpV~9| zsS)BkNC4weXl#BiE-`oaurs1Q&Ncn3FKhC(|I{$&Wm0Xg>!HR+famo@kbMMpvIm2V zkL%h^$E%t;OR0kdE~3QwXeZCCsFL1{WLY$?7X067+NzDOWJx|y9;VfYJZBLLK8-qz z#OzkcQ$k;eM@F0M+8|c(Q2&j~Ba{s;>>?qQ7Jq3X^jiye=kE`~qCp?XPhv7?&$9L` z77yvxb@{xE?PZ283>j=8@aHPtJBS^B_4`ljLYj3O%9hiKXQScXa+o`5b(i(Zu!mM` zE%$+L*(2Ho-2%_!UqvAswO(|cV8i$6;s2sXAtIkNZVpafxmXtvNoB_b3mZyqK{zaB zI8ZzEsmuZL!PZLm4vjD40~rJJi4)1uzN!r`f29C;h8B`8&7No<^_c z9<@{_iq`({oKS65*~OxyHs1rz**V82%(QQG?apVaXwR3a4_T|@gfVfqge|ge1g*3{ z((2$;0@IV=2tmh`2%OxBp!rW1&~_ctt{$u#dAZK=#;GPLRnNHllIjNoREKw-!F<~G zE{=NEu@CjSZRSYWEEN{fc&;4rl20+Z-st-vQEY(}tZ_tBD<``v8ARN@1GwylDLay{ zI&6&;D!t?ndPMxe;s+%vaD;qQDYY~#bqA$a5%Bd*X83e$uO8w?93rMlPZo z1MOnmwax?4&}n%aW)dn^sjanBzqoYpUx;#Q!riuTdyY&S7G0M`3I;E&SJcM_GmI_u z@@e0B-3JRJX?Bw!!`iI+nY5@J-{_%5;3v-t?(k%P(mi~g8Ai2FqLgd~F!8(XKA<TC}kEw zEV00T7Q>&C?~X0Atx-Op_qJIg)Z=4UdC&$)`9R5;jV$4d67#n{Xqqicic4tDORus+ zw~M=jPWoGwPV}pNeUo5#!h9futlGV$7eceTKiv`Eo70$X{$a@4z_CkI&ojDhuEINn z-s6#{d?+ZPcgk|ed*W4!PI|Q60IZSAt4pwVb1UGtu4Zu0&{ggs>uedsg7N{`P86nV z10jDR>}OC4$6nZ*nCW^u-EHFdZTzmq$|pU_cn5^C3x4eXHjw-@Q)Twb=adtg1Sr@+ zk4L8z_usjQAiJub-qh{^@Vm)|Or4ZGeu)c3dB$cP$9b9Yuick2NCa{lU6E?`QAade zBQ@whK(SZSP5P&!hg3f^>VoG$`h|Jr_b;;4AavZs_$s5pBi5pkBXZOwbo`BarfYE5 zLi}2$#XiIclYgNw|BsCG9T2-)6>ZWAB7|0J^^vaI`tsS;Zg$hMrGalU>J(*|C+Yn; zDAl#?zjq4S^Go$_gfgyTS?Nby;<)TZ-z`R1(MtJmLD z{s%apr{JlvK?2_$x72(-zeecsNM<8TB95I`zn7QmCl7~04c~?DBRj?llAjM0D^FGI zo;vT4X48CLdR+2a_7(A)4!e^W&$L{3!s>!6!$Er_NKflxXT~b<$SG56D3iG<p&VGPyjHGj%5u(H+bCn(nc^Lgoq|BIp;J>zjLdEdB@Z-!$|vkrp;rWu6NU z1&dWIw0N4njvppvzS1FgwtnHIo9ZREziruX=T0mO2UW+TJoF%=@gwNNq=N3VUmyQC z^D2ev^zv-)a7!NXe9+TmDb3Y#PMexDc(25HEZ>mi@A!A0B6NJC?YVfDpB0{#BO}8I z@ub*cC%WpTo-O(Bw?6fe2>`UE@0I@rk9)hQ_=_KenbSvMuL7f~uRS1f z&@6(rN0h+1uTFAbDb@duUA-cHfBMyoG;#a4r<{GSfSvuaXS0-KYMTt|gvx`HbXQo4)6J64?H zC3_2YO}vxMumIwB^V|2%uWvPFt4PhbyLuwx;7|!3SjtbQLwYH#5q65RcA+oeFLaB6NY0 z4;W8*{*s5l2f(VEF*p~|1oyTHL+}b3fXDISxIiF-^q|^JNX%0}Oa$`Zr@u;Okh&O! zy3^>&tE$@rAh!WF43e|{P&|WaJSKPDT26h-2Wmg5p~{Wca7Rsta=FZq@*JFQY!H8V z#09KWK;wgHFtCBq1k7RwfD>9FOE@?@{tFQm5Qsxej_uh(#rOo=qJtrJpR?9%IVY{2 zpBfnhjpFUnwfd2)t)ke1-56dXN_+Pih>it*dy5oU5xT! zdrW$DI7C}aRE)un{3jyfbpGi>r2w($tFKRg7}963teM)kyGLKHVWq*x79}lzo zuy=D$o+|jt=pzV5tq*ld*L@jn2s=d5)LxF9|Ec3q1G!N$APK|TL-e_Lu*+bi!bHsa zJUE55!AeWrjUjL;on3Lnh4;XGirCw0;BrxWO*6IlYWb`LwsLbS*S(}(7d zG##|V`%WU5&=&%_pp^w-AP%e2{1lq4cd z)+8IaZNL{+EX%y))z6)Of|38Y;?;94n|L@)H%wTQice%bH9Dz&?9YdLOy$pkc{)H~ zH+)M%)#S{Bd7T%fLRkSGCQ9xi=>@G=`j5XG*5|g^o2CQSCw3-<1)qy#1gv&(Sg$UA z7!?dK_y25xu(YbodGN{|H>E?^#&)kP-|ix6Ws3UAQXcEpIr^*xPD0Bf!SdEzRE5Z) z9BJXsAcmOaTMfuD1-%411d^i#ZK5#o!;>IkNE-~fvujoNmpsSU3w<6QaYyHdqNYKvALI24;Kt$wVVq}c7qP-zR5s^Y9cq&z zC=fVPi&5`8W2yJ#0bjL^>J57p>-QeL?69GGn>|%rK`ssgXY5>)cs;%Nz@_3yEk3?w zc+>fTT+?0Ioq5ea(cbr>{!Lo$vRSX6p5XeMCH(ZE3j0y$AaV*k6@X2;+ZiS2v~b<@ zix6hzJP?KwYOkbuW~{iieHFDUV0y+MNK3ZOgSq8!7x#=&KQ&kw!)VaREmSUR?*d^vCn~fFNrA%wX2^!D6@4^S~9ys-J@#XO9 z_>AdeX$?(55qFzMpBc5RqJ(X(J(hsihOgjcRN8l*L7TP}r#wnRw`h>B7!rK&nnKO6 zJc=@3zq0QL5o?`6=Qh4?JHHL1j?a@BlHi6@J@cx>8x_a&K6vw#?X57 zPotN`Z;)@(of}(+sH6iRgf&S*UOMH+e1ua*@3^tz-5w0WhYFd8mw$>?ZI8QNF4d79 zyLpHn+0wF2^SZTDiDdUXVKT@(($o&5;WZ;8&X9sj+)u%6n{9k~Af?4R0#wr1X(*M2 zejK6M02DYEXJRGu-b4w^B=+AQUIXI+Lxx2CJQag2|*gE88%%7vk)My5ZXy4Z_7 zGIKNr;1CTdC0K!g!=&ihDt(yBBU7yl59C?ut;K>_ZNETcGvvu3M2Y&AWl&8 zqo_hasrvPXt}tl`T_lhyFPnFipL?6<1=_Es_tZBD8~=Z8J+wsEF(v;~zL?eo=*zAv ziCQ}J@<12@G!06HA2gXxkM|C)G7{YGU2ST-+ZfTa9PiIM@n%sM%Rs=(poFn&pD#W~ zn?8$4dFfflxP{2b&CO^W;GIX2Bms#;*0KPh&+(F4*6gYG>l}R!ik2#-+Wdz&ueV^K zykYX!N(2a0Gvh4p(W{#Gt29bw*eAU|n7ze{DX3}duV;OEj84!o3R8h!W)^qqo#ci|Cjd7_;reSC<`;|wWWYs1V zVhdjQhSqe)Tp?XtdoXMnyD*kkjvvF)ip}$KNM6YZK4Ab#ZcnSw*OsaQ4AjUb?wsiv zt-m59qN;dBd@=8#!pP|Bnd7VG&uedTbhL{5XM2Zd%VQNgd@!0bYN}la5j4a}57kE- zZsu%3$P@rjGScq-<%eajm8Lg#KOzZMBR^kRCWQ37*=2mHgh+PZ&sNx;5|MgB*b-Yb zi)595w{kw5(Bw&nSaun{31vOwU>Fwa1sciz3E?g??jA<4LOGZLQIWg!2+<$JGl%+B z?}vUpZrA3Z3f@Hleb)pVwKmJ&HVdvAPi!?I?V!9~|^S(x7HRI}Okp!k?XgDO$q`ZjRq zoF>MzBdFFyWP9jC?>v!ktnQds@bLziv>FqVbG^s?a*^I2UV!GQd#{JRiGyFCaMACP ztBv{%%Cr@$YTj-<4UKcHmo6yRLoh+b6~>jUHr$eXIF|x4NlSxS6>IU%P%WigyG~mv z6@|cbbGI1lS4}`qIr6t#Z@XMS3z7z%{U>bhCfO-phe)|43^b%=JhZSrD10(D>=~q! zc~ki06i4#m+{(8Sv>4<}t3Jc1@RE>HvHvl_dc%th}#zI$O#ia^2jhS6?MUU!J3>VeqHBo3L69l?xB%_Cb-ZJZ7k^ zEvj3sZz;W67t{v_Re?v``HdoJ^$Cl2{xvd4b*CpGtoi|wTC{AyY)R&V=ou_-1f?30Gs_B~%mV z9$!Kr>UxZI+M>&cWkM5VGi}2-p71~eu$Zh-@}#*4sY* z^A8ZQf1}>4;$9~Gdn^_)=`@AN7-cOLKEG7_(aiE*dUb<hh0U}xp&AWdPTy$53Rfh%;DWd(^L4#LM?-^IZCDdQJ~3GjOz!P%O6akLTCSuBBI4s;3j@ z7-T$tv~qCPKIk&(bPeA5*>(C+^N(NNjZa$KdwMxC0ZvFqntX@ffJj)Y-0AQ9s;q@g zb+Erx637v&K?tSuAS`~O-MxIdq__O4BBUunomC(0 z%_Js|PA3U-22`}I!m(mKaxK=>7gg%sCRdcON^E5&H?xd2LVXMR)ggVieLqRVI7-#; z+CBC~t&`&=^f$qGZSyxXsHk%xZNZZE3Fv_v4xs^B89n;V+cGbL>W7@24LX03lm6xi zCiOY;KJ`$rbh*|6a)b*(!%=(+n^KFPT0C>g`kUDUj|X4Tyfu{B#}X=kHOU3N`nn@2 zttEVv*|CTIAugG^VqoFVujUAklWerzi+mHEc>J(i-zxWmQHuA~d*_UmFLsL#? zQ#(~URC?KpCwU3(WHY?$;EQGjCwl|xuig7K8o3#M*SX1HHQ3c7c8G@Z0kIx0u(EbN zEB51NdObuqkl7ieJ!J6h64_qqieM&B4~v2?1e5gk$*US&QgeD4V=Wp%@08 zx_RE;U6T^ZqOjM=)EtXp_L_`Bc}#!GZ(f6dW%K@M|ESIXada;JO#P1^KQjzz?q!)< zBiG~>8|G3PA|$y)a;I`9_q!;XF}I?bDRPNWuA#_f?o$-yHq9mXJ1P47&iD5Rc+BQ< z&Uw9GujiAxc#DGR&z4@Wyz~Ag80L|0#;u#_YJ7Vr$fqkM>Nq`ZN;lJeCaQ+;Cu_Q< zUG;>A-^XR(qR4ixYdFM>xYW5I2N&8mvJ|~+W=eYSXG6gMs_gw7gC*;ZjmJ467i*16 z^KG=hgwZ`3_pz-X>T0Dt+(T_9gUy{AOdgyf`pM`nIhA|Q*Izi&bStPzC;fHo4OA+09?#T_toaMF230YqlzhM{Ii z4&WAGk^-caPJ!72uuB0zD?<2A3UHIb6w8NVCX534AhS_=QL_{hMt`6RG_He~hzH9c zND?GD8frzef{_N8hV-F*Y9arP97{QY!;BoU(-O#_9t!&bb4U8TUZj>svlK1Shc*i>(<0ReMXeUo{L(&PIj^vNN!xWL({56zs2EmrWj5i(*^esXexp#G73zkB9uAjae?uy*t9YV z>~I`?z3xu4X!E~y=|+V0Q)gy{4*5{mz@yuitisAF1*I?O#35Q)i%Evzr@Jmz&SKDy zVtj3Y$5_Z;)ictF&mi5;U_(DlUh7>Gd$+D&zW^2N$hS0ZMrp;{5h7fVLsxX0a{X&h;3Vx=Az*?C!mS?d6_Je;c=aZEAD9u14#zN{{|hpMX5 zeia+&eq|vm@!#;9G*y#e4>8e8hAV{W*d4v1dm@2lw!KhTL%IO!t~8tXUyBPzsu~@fKqZ-&UXGSss^f&SrxgU#hNTV-K}R)lAkqgGrgj1G?TU7DQ{7A z)&j4jn2eh7v^euv zYxkW+t;{rlP8IIGyDr!0tUVUdt~4!|>OGKcH6+kd+0N5`q7HI{+!8}>DucX>UK$ad zmLn(H`52&dE`$RymR3(CZyO9ulDRe)o3zrZkmk&le)yDaR+~|QJu%{NOu?eA;QNQg z*XP|ONy5wQ*Cq@QsPsU5@QO8`TA1Wd+*{ThgY@*DIHkDw@YL5cf-JgJmPRn5IJjQ> zhNzfcF01(_I4Lrd1P`N~9}{??B0@Ity7}~8cbA`bRPiH#lkPD#Rwi5GX#$ip7~VRDtrDv$oIl2^E1&Hai&~3d}B>GigmE1vWuA{FD;L zJ%n)>>i=5p)^`5^UvAcOGMK$jcC!u#7+{q(LMWbk8n1oHm-FLv5t#GT$gPz@7Vh42 zHm}SLRbnZ-*yLryU(vMyO*Q++a3WDfNaMo#KCvKc5rdo~k3yK$MLq6ZWR(my|H4X> z)qqducQNz7sdBEjZrX`WljL7R`e3?Y*LOwj^MZl9`^h4b9&t^ppiaP(uN#{b5YD0J zEYKQN{4`dVO)#=(v9KG~KT`0iyiMONcdEaBiJxUC0Io@Ht3rwnqOC z%Kz%Q`PfONhwTkvOWpL>2EX8hhO%Vq=XZ3q1pXFB)CUelp?|)sDNdmUbzN&CZnK(g zlDRlycnXR&*-9SBO`h9zemuCq>RpnM9xBWwHK8iO%q7S47@F9}jZ6=`#h zH?Aqbuq)hlv3CuU{0)<;qHK)tKNFI^(x(gu*zE3#y|2=3{oTgAk0Kft-RttJemiif z!n1@;+YJa2T*et7@ttVAVXARiISX4t;v(IvriKm zh$ACNk(pG8(-(Wg{@M$?(Gw57Uy@2sx0J+`W}#`dd_D2G*c8u_w>LJA_cnl3>VxJKa@T2 z(Y2QCK+|Rx!I|!#RAgzL?Tbkf)Tk4z?^#+F_sx_=SQ*s3e=lr~_rwUm41diwU*Idb>X`i+Qq6KVJp~52yHhi&8>F*`1$Ui!wb?-`E;2 z-$RInIqd`ipmA;`?#QM}($eg5&&%BIV$&}(ui=)l2Vt501g(~b{t0Q#yR&MOmV zV=>M1$^6elSfC1XUXF{25DfY#u=^fSzPI~7KN%wArk-GEm35_PcOmxDPD7NCIuL-HC)*4^l=?9=JUi8_3&~`9j)&wW6 zZg+3MDTn?UUtE~8Q4N$Ku1Xeo*oo}zIY)$1uoe$NPb6VtI#$~BUy!$iYiT$A8B9W? zWM#_0NtYM6+?imCwPURl>O~fuDv^YbS4aye3#R~fjR+Ct@WV2yD zU5FFp5-dmz%oECi4h*sVupyZG6JWaN_THrpqd4}^x#VxtmrU%6#Adf&=69K5px{7i zgz4d1{WAWUov}q!nQUvTBK3{tj;^>BSc<*)* z&jdjuJ*E}pNam|1v1GVZANu&&(|w>?F2CdU=KQ3^s{FuOq^98aCIv(z0wpyg^~yk1 z%$ceh@H5Od4_m@faBeloa!4hi8~q>Pp}NXq_oQ_Hr|wmX&*}A|ghJ|;08DJ#kTw6| zfWK6pNy=rpL~#Dm@nPfuhf!s-486YJ+j><=vw$TeScHWC4@iYx7G1=>YmCfE&$%(2 z5o%AMkUy4OW$JLjCGMjzE)U&$B}f6|D^!!+E+%DL6N?H@4pw=7IoW4_k>PvDOcDps zv!frOk1X?XK@Y{W=q{JE-gQ)3AgSVqg7Heb%p%H4pCf>9kLfZogNuO*Jw@BLdHh4{ zSbjW&tg%aNDE1`YMGm~_>G_-`3kVVP5OlvV&M1w*yw`B*^^);7nP~H&%0`VU#;l|FMk#{CB4%z*a8>&?=n86bT|{~_k}1u zJeOfOOcfVoeux)a+D@e1?%bCmjQ)EwcnTgxXf_>A!J)`njpDhSVQv#&!`h{)zqf7l zGGt~a)CsJHWA78^tW>0TB%M%9l|tMwF(x!kZ)Kv+wR*Lxyr=NNU3vMZris^|aT-o3 zqlLoPL`sCgM=b3si5s7K@4Lu`PAkb5bI9hP{5Yzb@kv_9pf;wwLWNJ@_v~&a#8m#A z)6EPz$GqDHL%>F(&lbG%e0t^0Bgt^o!`9Z8c~^Nh*~EbH!w)VSLul4A)VYd)q0b5O zH&VMgxH~x-8UiZfpIM>D#LJ%+n=I{gis36v0_D?GJk|&KjU% zG(I>4->J_2{THii7o^?$v( zzXe|jFb{K8lKNX{xHch0BxidL`A|Pca}0m!#O{9fw)6{tFW8q(w9Rh^{xZcZ)RbvI zlF#1LtTb@AElj?6Q_1Ci8eY$q;=7kP)Ej_alCmHZUG|L4uw{51Cp)_ipZ_PKbDs#7Nmo@*D zLCKXG*g%+sNI=B@1o!Vu7kIM=_bzp?_g+8J2?66SoJq^sz76^|=AcskTCY|GCs*^v zkaV^E-8n`{oq3OhL_-Z|vj`uIms0_;BQ&x7p0XyK*S2fMZ}|{T@R&FNEpR^X3PPRP zs5X5fs~`)U&mIN;8C4Io#5d>nBuF5kctXgTWVm#9MEXQ}jgSrf?IzoD47{V&`Fn#T zUNgzRM$rfn$<6P&XCEH1S24(oY5rWB%m=rIu(Dw{ae*Y{&d9e){(!&%;g;s$bF7vU zOv=VVVnMJ`52RHoJlx38(e)?J86G&k)~&HK^=Q$`Sow|cONfuF?QNregGu7(!Bko^ z`9tk6zW1fNsQkU)Sc)=91coXw4IT7+tmHGh{lZ!F-p0ucH5a7+m>{}m`Mzh3GE23! zxNAGwub6e%k|C?NL}=YP{2IvT+wSV8;x?#3;tyZ~{F%-nv-!^H~Z8k=R-3ltd_)-h$&OY+hD`Ji}sgp=b zn~Nz9z7(SMS0wH}I_DxPT^EIf-w$&AtSPck!S){c2P6afU{!S4o5B1Z-{1mDe!vT) zeejy@$zBTZza*s?xS-bssFYG*d^6h=W-k$PE%0(l7pkVy9g6@13K)2i6?hKSCUzf|3;5x5K?&{1BOd#o5BLRj+VfTqTgea!htvH zfqg_%1aDF6`aKGEj%CDAhSENdNFlG3UW(WJFFFCwV6%YN+uLYxERsY8BNM$rKza%6 zTO3WjH-|nJwv6(GG%-8wQP`5HyA(Ft4o4Rd&DDyGcqE1oH)k54D4>^yu5ohC(hxsm zc?cL#7orCizONUwfaHw+?YYbhX{I@ZGvp7bZv=i7c0=|-=+m=UU4CE$9OE=HQUIST zfcWAjg_QvV>o6sRY-Yr*8XXVkmQ3p5k-zTy0`+?(4?5!Yg!)}JS9W(Rmh-p97Z%0l z6nlTcVk!d^RqPg=?NeL1ybA8=-c)+Wm#%$-NRACTGNcqrWwq&F(M2c-f>PELb`%Nx z7xsRBGkm8(D;lx(E$+o@ot*jn01AoI75XbCA9{LiLEg{O>wF`r3dtDF9D#0bT%8;L z)bi~iz7gIIm@sv)G)*m$7|=@P45h*OKCkw6S)6Tse39cE=g!K^XbMLSbMRUyBcetS z@)gIOdElSc_TbO3<~T9Pa8vN{7o3ET1PQ;{7KHU5ihdEdb7u3}$tT7dB^$^>x9hdM z$`D%BjX3;2)!Yjf)cv}a{fMhRDy32z0@utR>Ior^`;k=6xNhjyU zb)=!15wU^96>?{^fO`rA-mC@rI(gdkVL+3Qvd|<$3x3xIn|C&|iw~_?{cz2^GsBor z0{d;Mv9(*qVnQKHbL*!0ghzz$9-qxkjFI&YLS%_YyTdil&QGX{T86O8L125B(mc%V?TL zw}Sh8-5%k7?$Zfz+iA0Vi^D;n5aQ~sz`r}&3_RzX&%>f7|AHV)S0Trr<%BW-m+frr zmrb;fbCI25teaEI-Ze*I9YW!JMc9852s5N>`SbNQmL_c ztviWrpDg?oEg!vcVC>4IP5P>zlqS{m-uovnbV6ChL-J}3G9RSoOlm)Bz3*hd@W7VY z;@U#3A)g0k`3-AG_}czPLQ0YG*?5z;{ilbT+s#+v`Ko*VPERjZ@%L)TNo0$t+P*`; z=Z$*h_0Uq;Ls*T2Qnwdf#eGKqGVBK3BrPFivn%MoO(Ik8N0=sAE(>rJs`(B@d%-F2 zCalVCDbqn7>@+}eYK87!3PmG;gx`c+ej9>EYQK_OdVC3*rsJRpy9%UoT+tr$GuKE= z^8pUSPl=9wL{Ku+9$08^$fJgUr3~e%zhJT8GotYt@m=lx9JW|3ofM)q%yuPErZa*=#;Gy2 zsRz-sLPdgjK(=0m&o6m)cwYVSs+em@F4 zRjx*4`XOdHX8FNNc5mA{){H3+LcA(?+P%}H$y`@Tuy<(MaF;)}V z>4fiE5qk^qof&hotBo;x`Z%*-z;$a3y|OX}lKmPkDNjda<7GZI_Hf|zP^f?{>VpGB zd9{GshspHGFkd8|UwE+Ab*l#|DAfQ%9u$hnYJFZk835A4QO->9{EL|f@%6!T5gx6l z#46ACKK@zFKrgp8q4`!=OBZT#jH$F1vEWaUSFABFJB91m|l zL9mbey`E(0mBQ+QCTh#5VCkyYlcB$F2FxKsv@fkoGo@0Fe}*nmnJ=1+eZF(^{N>FO zbFYb(c*DYRo@dIS7`6u%sNRfpsS|a09A)`yY&IeNEzR#Y>e%_A795&>X}$(8T7q4X zB5Yq+E)9rOO6L*irNRnkO&&0BTKg^Hw*v=t-aPtB48QQm^f1p>sWmuO(U4Oq-EfY4 zB)(z9fUWXSKAtH0VQ$zdZF#%RM>BMY3n82=HE~hLKI(ChvyE@!g1lt2a-&p|TpdB# zpnr)f;i8@OueQg}kf9YZYgk)}m>CMvx0NI)KFXm^c~3$~3}L+^+<5rWHhNL6S@d}f z_r?0=(M8+hLucQqkDK`~?=eO`>O5Y)|BGHhFfn;AazV38u7;SKQuf2YM{Fze_%2EQ z@*`eV4>U9D%rY><6+OwpaZ12L#0KT()UFu-0-TBgHKP+uh)eH8US<-Gz5=xKx`*06 zVc5;^x!`>Y8{M3*PfA{+nr394d+Of% ztG_bkjif(Se5Tl*QfTH9lm#H+BC$DdY@Ni=PD_D-#bvK&MFskQvYC6y`HRbM^E+Fv zi%L5Nm@+a1MI!R%s#s1J{wfc*-z(#x+^%?N#FwoQ1~-7DMUv=@A2p{@JRnWm`zxDk z?}?mAj_EtMI&n&kv?!DmkpxAGFoeP6Amxr%-bLkZBh3VFm(;0bG##D*tCJG7hgZPBC|TGCo-Fpki6k=Www<}y>pcVWnxBe6!l`{>7pN3(L??- zV&Lxhnr3YMmP?@90lMuv$qyEwf#j7LXV3G+j`ZJ=L=gOYcByYbzHdm8DtsQLRyuAm zKxjQJ&nDHltm#q*6&z!=;RN_|xSvJ3Iy$}upW}xD2LaQz{+;U7JAOpd&6f+itCz#K z@_<5~N!u6wE=fN$Yv`FXV<~`Q26drR2ynVY2w#*)D-j!JvCe+w)RHA+8z;5l5{qWQ z_9!RPYrBH4Drr5sKc6Iog@}GSP0%1;<7Bl8{O# z`Kq_B6X)DIR8|Q@)XeXxvUAtH3q>4u>x>}v!n+~$z{ zc;d1G2Gc%=^kd=VQJGr1nG5J=iW_yP!5q0j&d>6THp{yr{)rO{8NyeCduf*sIr9L& zEK;rRIvgs;6owG_K0yxKUleeZDriLXxQRXLHpMaG8mgDpJ(*DcsfBJ5j&st2Cb3*|6DHEGQqJb#{16A# z_D;5M%fI*hIVEiL$3ma&omg<<_vBCcU6zS-9&!M9&+>{zee|V#`}JF=&F!KuGrg3E zn>dM&NVy9kE*wgpOMWJ;?`&7b;s3chVA7E(bns?;hgE>{{f8p1DGxVpYQEp2`Y2;W zZ(ZZ)d^_LO#~ys;gYq)<6&-FUoCYK$4oak$d$}Ac#D9G>U>h8ST>Lu;4;(A`AoKm{ zs@wQ@QeQ-(wN3G~x?ta?izPjFFxCjGD?v&vN#R$xk3<%UZYC~2J$Hq`&KxM6{>VJ| zo#^Zyv^hGrQb6VA(`$J-F>H}~;e9kun_5bIRjaL;P+Z#&?F#Mqr?n45+$uiI@M-+| z4{$HwUB+p;J(h5McgoEoHM3nb0tTHtP>piWt*Fjoj84@YXIy;!EzC#K@RdSvZ!>e* zYI^`Y3O5-dQ0wovdhHjrawtc1{DaZsjP=_^oYJUJVAp&lfzbMHHT<)D_pjEhA3!W40&dDDaS%prj)re*xKeNf1N2~zXd3`HPut4aY^uRsHz74Wp=r> z%df?32lZXA{l$8ohM%$1S5A9Y4YB#_V;}U#W%}`0#v7qArq`qG|#UW_(aKg2iiZ(TXo6NM*mw{qTM& zxyRg+U;H!&U;%ZZtoyf9?-k+a2x<$#JVlxfazHK+NWDG=Lo)e=R{q52VWKXr8M6&% zO`Va=+=--sL=_Z~^iSZe{=3hSlD?=c>VZtMGUC zjX7UUPjffFuVQw}b9KU^MP_1$E`xy#G?g@)(xEer$lW8avmy*@u7vSO3I;3$aQI zXP1H8K75r$*us+xE3dUFLQHpj-tWIU(HK+ zn65OgI>H06QMBDsV#W1*Em{6Vdsz>O8d{a_t(;Uo#d+Nj34Im@aa7$0i{)CheP`)p zziwp?-=sULDTcN={9eRV<&%WmF?9D-(6L&mVNu+l$U zv|B~zoWfEhCLcEr`F+e_igPvV zh~G))>r33H`QEGLbbZ`|+v@E=GFiIB)$U;rwf8)8the*j@BV}wN)SQ}4ZC3u1`VZq zbHzOvZ8AKJB zz(t+BOQX<|$ZAc)3Utp!&xbDe-b}vbHg*aei?Il7J6D&dLb?&`vGVAXFOvFmP(!9i zMn-q2!p|}@?vUp{VC=>7c`YRMgl1t{Kr}WnPtIU3N*w;_arh82q5i&wAHXRkX7>a zSZ-ZMwpvmQ$q6>;Wx#V`@WcQmlJ6;YU;6LVHQ=I>kn5(VIrBzr`=7;Dz|al_e&tIP zh<)Vxp~y~w$%2`WKszH&7beEoqp-At;m^DveHVa7krkxI- zS!@NTJ?S4)ZTR>=9bGQycTt`M3qpYf&AMy`tg(U}lnq^uh`>QTR)x0{=L>>iFzDFQ z|K~ipd?q$WCBT}n|G`Jjyza7Jm4q;cP&I7UejrnMalWr_T(BLzL_1tmjVT7w; zWO%-xD>6zNXbah~iR-!Exa~hO@g-K)Vd_06$$*$Nt%={=py^yyP<66*cr}wv zpIu4kGS%Kv<;P>z=UatP@@*9KiFo#2dQ606G` z+|{Fej?qvCuC$8q%^7Z~K7#KK%@AUly@E@b1!jvzsV}kuj9aD!IE$JB8-N-wGVB9@ zUKBX1QA;-P(&6>9;p?`J8_R%|9+meQeywSF6rtyrGNd?;?j!AK7yShV%vSuA>F&87 zbuIptpVFI?<}6rOgW9mP5z>P)|2LO;WQ%Xt=Zv#kOoVxVT#Mjavbq)5ap(TD z`?oaIyp?s-WMDTP4l{{HvO3!|6u;T%T|#m(fS{+ z{Uyt@uSL>`=@tGvG4LZYYZUuyxvZl1Z~G-)pY@VBC02jgo1SiP`8!V0>}tH1<@4(S z{mMIdpzmrot4tC_G`i`2=2!ux&u1w;$JugZhGTHp|{}>I?mjc0=M!!^gf5wWO z*AC9k?hyW{q7Egnt{X_b3B&N)vlWQ}SOM=6#x@c75kAaDh=DP7e|g+p0>%-(>o!wUCk;q2}Tg|g3sjh-25HL=Zz z-N_0N!an{dLShQPk$hg{a+s`)0lrT>%#??~&xAgKKlvdR|MzFTKB?>5VMkkP9nP}s zcB7A7BGqJzMv?fM;oc?dC8FoZ#fy$y0z&Y_pYxM$%n($^5^K;4&Rv}G`$|mNu>qWOepIq4m&XhR$YXRS`E(dF0eCF zLp1&ze{OUX!P0bodO{v2c_=K?*Zb2uBp4#c)u0-%7TEs$0#K{=QyvKI!ALMDgDe6I zr2LExUfHy!wn;9QcPnHAEUPC|!;dpJ!|a9IjRaB5BJH|uQez*aAy3pZclv^5gp91Z z)plYvd1Gj*6&7dHEN%L)fWOYhS{YoQtqa?!7~t<`r^)Q9mTV)Nn*LnK>=U5H^}$px z;+G;8JUnrp?!~CstENc!s-dJ0lV;;jBe}7msK$jSEMPI`(zP-si`NTsK2Y&w1Si^I z&U+Cm{HvPZ>hiu5v%+T|$LqOoOQ!57(bN)C(g@RVqn>h@lZz6ofwj;Rph>2=#DvjA zH)nB*W|C&J7>%6?TJHzXL+(&@I<9t|ZE62^OZ1Pd@Q@ z%+q_3J*~iJ{U!FTrk_gNUU~J&9e3G~fws23BJZgNolgcPAVxIv_=o(diy(LTj}FGw^?o(ZEfTvtFs1AEG8mC}l*rSdEd$a%kxkH-)Z^KCB!yHr6(Vu^ zypdsKXlR!cSMu(Bl6-vpcK&I2PqS{D(5JQYJ8ns{9RV@~(K%U(zA{TXvJ(60EdIU+ma zOqI9j79`dPTKGRhj?OKNfq$_}gJy6nJsu3*8XRDUs-A4Q{7jMQCsfo-%^VJe<91(} zKW9AG)Wrb#O*Cv&H)tremTOQ!l3d2*Ha2v5W6N?S#Im~$5l(Ucgnvoq+-P?3Y@6GL z>l6s+E8DIU1Lh)oP6Tk-hoG8vO9HhmYTu`v+isLM+-;Xv#;mvOOh4h17UesN{+-c( zVgGz)&(P}SnqIsHXXNX#v_OL1lEd`vq`xNfrA-%gFneJyq?dg3@q83Loyg^e6&tQng;NpaYq12hbi!_s)Rno7 z7=nnU-@{A>r^a{`u<8+i7QbYkKeGfMHz^OWi{}E!i$^LJeHUw&rmc>5RJz0zI;3Dz zv5WYiGWXrIIvw|BV{eO9JEio~6HVXWHYd*-g3>%@kA`^%ZKoT=+ai+!Kck;rh}(TW zs&_`eJ)nYB4N34HkG>tTUnPQ0R<;t~!~FgDFgQf_nDkzwY!>l2a+mkikiqfJ(n!iL zf@IncYFWqB(V2{i`MRf`7J}$&B_W08Y}EI01wM861tv>BDWh-O%?4MxNjK$S6qr~i zlH~0_uukq?k4x9sd-Kc+pZei7!fS~4KcHPBHScV{P(0hUfyA4SkzCKWhSWJ33j*bL zSKZ|KemULt+{w*Wpr?0_pCsR`57JQ(bbKHh#3&oQiJwo(kg3d-M3(YYE4*$$e`c#2 zjbsp7BSva6Ur{HnC=OhfWn^%tCP;|VMC~nVwD3)SX(yZf`sXoi6B!R#+fnFVVLee( zoM(-~c}`_Pd#Y^GO|)}@xGro$jLi6L_ANWUlRXf{=5`qGjd_5+{St)K{2}k5&KoRH z20Y=G(oPB6WKzs21F6Q>kV?hdpXWrFgr@{~NC``O0xY@fhI;p$T|eP#pI>Dex@q}O zBJ)Ru73;H}zVrOG1hp)eY`3Y*#!Y4I7P$0@Q?5U%BpHBBpPqB)1+A0Cp(s=tqLej7 zxdd_IYkiJ$KrV(RQt-5NA>No*pQE)Uj6;J3Bc(G+R(JGY(_Ot%bE%qq7D?BXb1j9P zk44WtSXR-sNt$PbnG?svWM*p!iu~z{nh`fHsVGSP=&MlIbd;@z5yu2K#uIw5%TGjG zjlJMkUuV0den-6#D%7Hbm#Itc_8PgtY`TYfvVNgI%&JOiRzT`LjwoOW-By@Mr&mkO zwXy0Nbd9$W?Q$IKa3@El`4nvk@Y}h2;C$jckvvW?7iX_t(pc83T?Rn_LA>dCXOjZtOkMy)4e`G~b} zWdr8SvAn_zjdY&4@2C838)}+!X24LwY0+5~+EzW){Xzq4X9>5h-EA|EDQNnGg(oMz ze`uG?>Q+pCDqpVWXvjf@WZ{{xilL~&5~uQOc}BDSE5+ZjMeDzz^EdKW{Z1nzDS(kw z!U~S6@2BG4B6@N!Y%V=2Z?;EHh_CME^GTOrrBB3}JbvPRg{L=sL=&RVewY#ZuF+j= zfz!PFo}eq?DkGc>h}0ezS)2bMS*@bINj)d<87KUS)Do>NvlZ^- z@)De!Rmho`)qd3{&sQE1i&AeApSq7MGx?40&RMH&J$b=(|0-4? z%DK<9=}hZoy5%m9)UF8_(T$w^Wh_c5VmK-4n}!cN0v-PZ%Gf{Cke5 zKV<^@n|^g@ls1fRZSedXIHfKY^{|(H@kGZ3DfIOr%qm=^XCYrB75hK~l`nH-c(~DZ z=bcD{57;$&I{|7wyghvLuOqd}3gzpbm55-E-Evcx!< zi7#2b0`Up~mIu2_cJf+w2e!>^JCX8RMZ@cE&1!g~DEc89(<3MbPe741wz}?WAzuX0 z*d@ZhB^FPHMMoSx8km?Lu=RW0b_1_y&k#NKvPLpoXs?YX4=%8UTF6n2Cc~_{l|O2Q zEvR(Qf^n-7a$BkA;=))}Kjl*H9xTbLa*aW_aDnMmo4MKOs<3I`L9*1hmU|=K`6{1n zc31AV3vzdMt^s@#Ar#?%@mX#z&vO=Ptv%s^wei->445$2*x2TqM&6~iQBzyT_iPPIQ2d|PVf9?E(8u@HR=xQx z!i-%(2I4^A($em(Kqm18&U>Ihd)wB`e7pw|;TTBUu9!?ci`RUfct`bJ)K@6@VT6i# zRE-?nwf~`{^rp(li&~r0KFMkfC&^It@Z|h^KKEV(p2;d~zscbYB~vn{xWSmTsNB+T1VO)URgf z;Rt2IVr$4TA~NZx4usm{eKY%SGH1rsg2`^vQu{?m`-YqOEwB1J;sfUBF575qd9U+3 zd4nK~kddZ!Y=yS-%VF2WkFV~GIC|krs-DB%p6HK!7f(b?Uk&qf8>u7 ztJRT~#07kB?@IzH#)P^eH)mg$4xhE+S~7a1|8eJcQ168^^qG&UnaNu*W%w+9o?-bQ zX&FsLr7NOJ z7)xunv)0q{y3B)ar{P@23i{q>V%F8kUtL7;{vd9Z0FF|%AU!L(Y+QvD)Ykv2QzNkJ65=2YP(ic_dCC(q@zxWd zF$MvSj;e6Lf6hMzP--|dXNsKpgr;!)_w88D3+X5l1-e}fHTFb7SNjwQLU}a*=gbN2 zqYwXTxux++y&Hebnekxv9S!pF+4;-=0~A;!)>#PS{B4fW$EA=L7DDrXhM`Bp+O-gc z)i>+AKyx!s7odP?qp)YKOTcR(NMdvth=oN2rk41_{sX=q%P6XPPup#FD7Ad#`zGsA!p6g1x$iFP^t6VN4HIx&>q&=Nite#MJxSttvnB@a0 zoyDA|z{!Hy1JvHWgo5Z7DKPmF$AA(vNWwQt0vA~2PYYvPJJ#t2*F>J95~BD0I)P3g zJVfW|m+Eqwabe~;Wk0xP@Y0g~YJ6g^*8?<&1Oan7f7*&6$5vMhZwKTtK!WT1IWA?A zYlt6ax>|;3dY!p!upBYWHtXxl^tA584(lXWz_XQ^1==B)h|nbGCWSQh5H}G316uVa zJUZxl7EROkC9#788#;(Mxw9!g*-e36p9VV>E_GhHp zp(}3oE|U)n$>0YIDq?M z@&)O0Z9tHlUj;$}*r`y7MTE$1g?7+myH9U>{?29Jx>R0jTOcY!pM&)1#O)Sp^4G8< z=Qket&LXl8=IsR};41wd@zx(rPini~dwtH?!A7v(DB!oFT18>>O{tOJZ^OC`Y6R39 zpEq4n<@HH1@LtIudfB)_+azc(&K9Q+R9-eBqB_dp$U_NoFtK;>qgX<$&2X+!dVk@N z2M^AsJndN~i67}oI3e0W#HT3SQ6dMueq}yTc-=ZEmc^x6n4z_cVc_?cuJkrFi)2)y z5W)>W+~E&BVVs#`7=6F%EY8l3i8C?(B}P0JwcrCsBLVfuR_)r8DAVukPCEkT#g@{C z#t~^fj{6eBnrFWK3G!mQ-h?dt-aSXt3O+#&-f5p3Hey*Iy|^s@*JiEv66AJ5>dbYr z(ikDj-g91Z~2!mV@GU>QWc~OzG92R`yRDe=`8<`#TnhB>=aP=Bt zUU)vfwr`O8@R{;~!}!M9$j&Qss%7JKRD+eIO*|XTD_kUZp@`$U9jy^SPyIj{2NR#KPmX5Z0BnN zRnYzK^Q2+XQ86YWxwDKMnyjTw@^-3$1+->=Io zLQb}=O`7V`x;My%x<+xct zWPMC*M_Qj&osR%xA2Jv1e01R({mLN|MuC`MaH&(;2?~GDU^Ul49f5U{Cq-UsuGKb+mB9rm5xW^y9r;!#F%KvWVDw}@2PJZdT zw{+9_(Z$ZR&Vs0cj`58y5OO4(@e6qDil0x#3RTh_x(8!!wSy0hO=u!0%3D5gc;p?VHuNO zRPF1rs82KORS(dNrVQnr`Q(lq^Y0jR+gv=*iz+F0vlb8(4yyiqtLFeKN^h-jSv&Kh zv?)x#1mAS%zn!jUf3Udu2EmZnSMxdH8a|XppVGMs5sOz%4y@%DRvNM{T%;VWG%IzkORa=~0nBb>0 z`{VV9zh4%FQ@l&F@6@uOQBKp7(nH|{25Pf7AVXN-_e^bk3on9j8hTi8eT@H{CfDhV z&JPZuiv#_URB~tF*oSccYl@yV`yZ?>Itj{s1i;Qt7*=T#o*e?WxbnVDx3W%8cGidv z&FH{}{)!5}amoJ_&eAVx>rpTQ(@A^2200 ze|L0x7}aJNlEm1o{k^*s)rAYgZVYibXj+?|L9Q;Au14QGGTM^=k$T*(xt8J=x38W{ z@=wxk!$YX^cWf^qA8&14d{8s{^gwwMZSzd|MfN2FF|O<5jABn3_MMV9%H{o8Q>AW< zuLHKs{yFp(Ojen#9Szlj=b~Q4e0q|YGUGaxFoBj5qm$`e+n!C52?)fFws!&o8}$~Z z_vhv*U1I&WyJ|J2MdT2VhHvq(tYEjhe&g-T`%)9Ffc|icEeCsa3A1Qb9n{rW&|VQ6 z+O`M+5&r|SfhRnlG#VW#1Vj3QaRvDuz?H-6&x!bq#SB>0?z<3d zRKkS~O$_gRjOD5lIdUy9xmo^HDKvz4)QmY+rBr+yLycC{W$ae+sYLcvDHOP|sL9O|@1$}g{)taNBD*ZROLY%9@Y&cNPPiU;s!%NVVP4)Ccaqw1Qg&Uj z>b^*b?_A8O@I)jN*1y2Ss;2VdXh}*Fh*M{+wGcf%qv|#P%#pN5&&)2{#!{YECp(FNH>g_ssfx|v0&)VDNmk$D5w_iw33vbO`B^f(TklD-n$1BAx1 zZ@(Pf$vphB|9Rbdlrj0}AODBOO3~aCVVCa0_W@o*I-w}=v!O6dRpT>P`Q@gUTLl`-o+(kR!=a zY#5_*=gd(_awlZSeGEC9xgs<(xh1&@Ns%%)q1;6q%blCh_xJhz?eXxi%|6@b^?tpc zPXWx((IowNr+Uiuy=mS{u0(~RXw5#`Agkxe6tEF^my+gH8tA_K)*;dG&GqUGeASxR zMRRi5Y|o-ww@+~rQyOwP+&w$lo5(0c5mWPfA7E;$z-lmS!A4I|)aFYLwun(C#%hHc_;Y-CDJlzRwTm1*v zf!fhmh9s-rWm#lU2e>fY*|71eQ&~15x@MydwzPK0wihT-3<*LM3v=_qCn=xaEblUM z>jz~0!(RK;89$YkjYJMzAx0P83O>cwz%lb5uzOI7wa+uAX8ktPJn@uHzwW_5m!P|Z zcd|0&tLyb5anyZFudb_fX4Z#vq5lIYm$5lb8gf(_^LY=#LEK*OpMO zgk(nHdOCK-PPl01cl_lGrwl%`Z^+L8(}tXq5w$L#>i4Mc{ysWazPwmyW4OF}v8*7r zyXI<&a32N3g@nP_u_V%qH+b)WZ?VZ!9U`5w$y<|MhDbP!=y4G6PvD(aPovL^%;~yq zuDnDt1-}1^7d0)t{io!Uf4FE#SiY-$%*Ce?o``s+vKMj}hkuvIn#Jg`X!p{$I zcgTpX&|@^$lC_+`88^#H1pAy=w(gX{c*bbT5OH)eoAx1%ee%$dNpA;0uqCYDN*4Gs z%v*0vmR(lA7v|5pHof_)DCdQ%c@&Fl1lLO!+62u zkkKrwz-x$wZ-0bMKOd&t&GAlfa4EMkY^VOr=U@-ru6@}*Hj;)Ec!xqsvl$ay&`(qXSGi2n1v@VMp?;*9^!2^iH1IQv4y5hRAKC2Tm zd$dwJ3dt0(Z%F@bZhhOko#CGY%+Hf> z44_|Wz~Sc89WBY5wK+fLYie7)%Bc3kzE#d@^l#p)zT*pk*Z=&xFW| zy}fZ73YK8u`~1VB4LTSdkGmqOp=uXpa$8k|%Ll$CXk;RXiZmb85Nik#y(yKPfl;{I z1AC8e!t~+Pm|FAtW z6vRcq%)qq|ZFgq{!@RnMBr_8|UIEenjh`q2BrdaTCzLg6&=Yc;)$|5n3TQ`O0=gVH zuK@;p#5o!sB>H_f#TSD5+w>Zh;^TZC=5zu6T?RJ`*(vum7WA4Zl;3|REn*0VOf(@Xbdz3D7pwa z7Q>GJS}^MmjsZV*AQyjt+%n$nDV)?@$3{qy0=8piBu16o1Vua=TG3-R?Hu2!lEODj zx*55e8kl{;onhv>1w;b+7!k0rLNShIzW`2di41l&G{TdbZ#-4^Fw;8@zbp0!4{z8 zR~tmtL|Jo?+2_P13p!=cwJ?zo@Tm|Qe@HjHr!Q0Hx=;%<%2Y$Rmmd+gxgkO{Ba4Pq15{z8oc1;Z%9ChKg-+<3k=Z~%WcjmBz#oRwZ?Cu0LU9Y&;TKfTHS@><^Lf${I&uZQQ{#pDg!-Bf!P%-KS< zs7nTN#`p7zKLtyMovnOKiAgsDk)QCx*16N*_G70yG0^VapVDF3x|d0lw`FzF2I8VP z4?=-P`hCyKQUMz;W^T&~p3;&)(p(fm9Entr?OCA7F;O^367Ld9%HUMz7Rc+F#;X^t zq=yVDTRX$rs6|Q|nekIvK7b3TX6qI?@zb=bGi-0QWxunpBB4nb0a(WY|8SR4__>${ z(O+tK!;Q1oq!c^ZT6_(}@(y(=rmiF2Y<8l)v#U23#C@+xk|spz#)x5$N-kMl1o!44 zT{GJ&W07cC+4vI8Ny{K+NsjEnpAI`xe_i+?f+)_9axxMILSlV?$Sm~|`bk~7Zj$n0 z(BqC1W!+$_{9I5H{b8~wrXdN^&ng_$h$;X>nzQNrK)7oqj(KwN}=kAe9F|Ch< z058QHA0N@1fXysJcC=|%##%Q-?`0xA%1CnYHzLuZS-pUA>ZP6z6 z2kNPQh-|Q{(h5Fo4*$==0_v8>-y(dIAXM@2X~uZWVOSKH?lyG&eE(E&Vw@>W-@)y+ zNJ^Snn;cmcKV884gID{`wClf35pyeM`4s-=&L6z-bM+bVD4M7NoT?Sv4cfu%teCHD zN!ozoVVOmFPLNssce@+TFU7j+;^0WJlar<|krhfJ)3z=j0cw@mUh39{Y?>Pf~GnUarWY7Bdl`2Zwy;ApM zNt^e>cLC?E7>U|`%DSQUzj-{~m0Nq|(ad@H4NJAub3;YP!hiIPX!;+eK6kS}|CI4Q zP}&S6UW??WY*$fVmt6lQEi&}tk{D#^-5K$wBuUuJG!iu!>=)V>=JcyY))NDuSJ61HTy<& zs4BxCVZ~CKZzh9auXL8U(hoX$mnn=&+%0>dRA_g2OUTt#Ip&>;e^GQIiAn2f@@w0n;g`wWb{(vRi)7fwKy)y5GW7JK32*OxKu$BUj(U($^o)$K*gLnC3)4X<-EdkCu`D6P!X#B$2tNu5)FmpJaXCKfF zclFaa8*2vL%C!C5rPamWM>$8T7~HKOe|{6EW*W-T2VRQ^Pk{rfWqbNdWY5noqaA1= z1zEvxF$)%!Eg3UP4BvUlpfg*`thEub=B^DEcBX~Mtd6qmt%V}>I#W>cj_6Z>q}MDZ z?kes}KfpRS0F@w7ySuv|F~tQpE{vM_k>U*}N00FKQw$|JnQL zg&w42vg8?B0MG#_0z@Nt?|eEMA97b*-LJU7Rkh>e)N{7}tt$sUTieJtQ6?@Ex$38K zzT?5u9jYd&xNI3eXQIr8ZLC{xl>`IN$z#=kt0n|C9b88+yr5S-&r!^iVso8vXt?ypt*AMxLcvy_K7`S`U33>wXCPtRD}RGU^f ze0^f;5Yd|A!pJuYE82*&In$(+BlO|2K-Y1tx9fbp;Sh57c;&9A^Y7F8Rgcpy78bH& z2Dx6}+bv&X2|RVh@`q9)Q<}{5&*Nye8vn>-m7g99|3v+CDt8#a1w5JLJn}^7qht`= z%7xoY21+M+_a2TBar{6iWqz%vnCRG(b)h$tc_xEoAi1?$-ft2oOxF*c&S9j2)R&h3 z090|_sceE>f+<-@DuBQ$THJPN^px@s2i=)P<$j70u z9JIlOws-d?1r<19XfPP0e}63K`tpHqyOND%y1vfP%8m1Nwu9e{rczW7fylJo(tF!V zr-POm81K9%Av^v9(DxHnrBA;d@$o5M82maaw1f8KbiZ`}d%1)~Kn$J;k`a1iW^-}| z8Shl3lnc$qtPFxbH}oljuH!VBs1s+NGl6j*_P96}HAl_*DcZ=MTg7w%Y>ls*({rC~^}7!jL=;}QuUF;!r8Qqo;Z58t%G z+SiOjSZAUfsN+Af(pQ;%fpzc6p5Bl?)jCVxxfz0}aOEIjU1G-;l*nENgak=oYUs-U%}1@v%nvTCc@<5qmy-4cFBnG4mCZ z+^8P>zYzx<-d_k`Cq(fL3wM5|6n@S&(sYfng-ssMzzoeQkoiw{@1yQWfNdB)lQrY>r26&S)AG@hSKnX2h;;OV7H?GK5?i2bXI8b;@_dG$~5 za8TP9Hz;*QrcwQ#-wjdenNfdyRg}j;4cr^iVRW+mO4YopJ8=3=t2txFPc-tc z_1=p;>E<_I9yyu`zZT~Pv%^0_-z#lZ1MRnK)S|(!3sQb&zzNrAja=2QJ%yYL-WBZ3 z!UskuMxLKPhi$4l_pYwIX0~GyKbF%gZ^YeJl>$rdw zv+kw8CuX$T5dGc>jm|S}wf@mf&2D%^3*>lA}NBJ%2wz?LYVO2z!wp`kOP7 ztB6kWx~||p5W=I2_YmJfBBD=)@r};}US=O*=@J~Q-ki>63pF!aB|Y|d-GuOXh%eReI?zEnl!Kj;G*L_YPRqk{*8pn5VJl*{X9J{pT0un@*Kaz=F$FO! zzl?dKOTz~Oe*%c#lexRz&&lQJOEAD8L;C0h6iWNYi^q@q7t>ee!QwY_5C8}x55Y7X z49zaTkjU%rV-4@K&zD2o6Y_AdbIN1eq z;lm8a=o_{R0CE6e_m_nfgpi@+0YE983#5JcX$Fy*>!h$47G_z9(NKTbFl2NikPHRC z1|)v1fCMx_`2kng`e7*gKqxq)P?vcaz^MWKjsswp z-*Mc8&|AQN!zW5ok#iw0A-~L`C-=!rQd!w#Mg{(3aHAqFUO;&T7$=pNM@9Z-xU2Bj z$%4^aZ3|RU0`(l7Qc<8S;~W!!Hg}R`7|wjNint-+fj~W~oW*AsvD>V)z|q11g5C{B$s2a8oz3du{wjjB3eSN0rGQdd8vk6{&O_vMAkyon*aRVxNn~4gi|3F9Gj|89;iA zyT-8Y;6eP`sSid}u`3pe<-Hmc?)RnUyG)!!4Zz+ri6Ss`M>JFU0{j!O8XPOo8mlQ* zbj(uY=eE+CAlt{&iG!@NuA4`ISc15McLoJ`U%wKcQ$&F!q9|r>DO1^&Wv*4iuy6eAf=HU7e4<~wp+ry91%FQMMn4r*nN=YdDnoecje`| z*(cHhUHGls753LT&VE$xN~NP?clRl7=6SK)34lPEj#V909nj48mqL5LUY}$?^krE4 zCkQ{PM#>xf2UJ+KX!T03M6*2)VhEH7W5_$TEn2?W)5WZOy+6-6T%_PxVztYooJ;zT z7y%8UKdNh8=kK@Y8AI{|1#WHmw=1?jRSsPR*dP6itaSL&yO4bGDm+797*2ude9w0_ zUIZo2hH#4_r;a3c)y%eN`Io{Jj(%Hn#4Xiom6r^kaV%P3V|<79^+C=b)7lR*4dSd{ zvlC2Yp?-h&Iz)F`uI=7G`{}{=dR$@%3@^|<6;37TJbQKi)bf_}lN#-7s;U z9dy7!3Uty~%8GI?kWG7(RhW%uD^hLmvS)#1Hg>-CRP0E+gLbe0Bw2_e^@my0y7rqs z{(K?qrn(ZYmzklbmnt+@qfBWUDJ{NsllW!)u}h5LYTS9e)57z#b=p?*Z!VqQqI~&s z!3xhqD@7H(ck$c&m11iCrJ+K@o{J>LyoSn2BqC{Yxl6N9wWK1TXg0# z-6P{g#$wF{f>wWTbY) ztRpuFEh|4qaNI>ktXU{HE1t6ryMsbdmvpcByR$5FVi@K2T?VOZ!)Jix3;p*No-Ej` z>bys*4$fc?Zm@Mol_|su*gza!i}R}Zhf1Qr`o^$o;kTlz$#-}np5B>n=(g^f<0`L} zfnByx$yofmJNEV7T<6gr70WbF@PnX&!i5)&xkWu~MzW^|0K(;YRJv(TX8J=*`PW=*LTW z(#`94+6{c#fyX&rn(HzL^zYw{{abVwS+;HAsY@3=Glcg)jASjXxH z+dG}KQh$6j^MsxbkNGy}{FK26=}xcQfr%xCeHE7<3iRg`adGuo)@Xokb5pcjM6_Sz zN*V4q$fJug+9AeV&pgfNeJD91Y4Eul+h<#D3eT1hwoOvg5`N6^G|#c`K+)|Kt&v4B ziR=sQ7Eu%J6~a$l(x>0P)d*hJ`Bc>X!CKp-TIItTCH1o}<}nswJY%3P%1V>p%0l2K zE2p+Yr6ik~5q!QalVF2o?I5@R<11s z%_zrRv10J()dDxpyf;(=^V?z*v~`AAoX^&8G%`r4I_*u?+68AgsB@@cwYd`ZNim*|$ss?9O{MXq6WxP&C*M5p)2Qe=?0(5s#icvR# z$ZotLsN*GsLA!@a6>oFWTx>EYC>QAcH`ZrIH3_4IR_HL?`_TnX=ZU<@IesP=k`ZWa!b-vc~nh}Hge~2E^ z26_|%F&~@yneOUz=Ya5ur)5HrW6=j6upo+|YU1GCN9``W;9z1jKIAe4F^9FC* z?D2QM?sEjSu3bQm7wFe0n4zC4d>Xj(`bEcAi)7l3>dEb{7yU{#Mt-5Q9gKdM--ggw z?d&mZclnuxU;$SJKeA%Tzi8tOc7Iw@I$w8(;{=)2v_T5bY6Tnk2++|i6xe7fhJil? zVR!|3FF{hAZvw=B4URqAA4o_CXF&jiANF4WhBwq0FPXJ?_z535O7f%BME)NXW|#x7 zeQr-ounM6Tf+%>)BEnS}p((vQLGh-tYc}mZZTY7CG0%Et8((rgN1G{+|FxK?HU-?Y zZ^FGf%})^^R$eBToRS{GEhdhp|7NUvdVBsHcD8LkFR1M_HRz}J7l&>oVQ<<58Ti7z zBCpIf>rE5%^oiLQo?0*a`*(`T4f+cY+YS6Gm|VA<*n1^^{8DblHRie8neM2SKgBW& z?d{Ywmy~UfQw75rzfXr1Cq4+keyV{o9ZtivNHGSw1PzG2hWjz)Ce!xkACG!0-;ABc zA5V7lL4L|CHK7lxiTV#OEPhVWXY&J=l~{Iq2F*fxik~`^RiCME?pn7=-iAlNQxViD z)E(!)^$C0F+P~Z1^7Mg2Y~jf%;)#5g#OKDTO1!p`fLaxvdVb7bgSI&?P>w2W;5#x= zL8$RT^gi4mZkfYjVtxDp(DDGA%Q61}7sM)N^aywZvAZL$r{Lkde;spRURjySnW~^$ zU5jV83cLloVr@4wFHoPB$wtEyCYNEpyV~Cp>lMI8nw*QMF571xo$xY4iuvcAfxB;I zCV5j0vtrBFPRw7Aq9o}WWvG8P4!`zXMh<+Zl(*R{ z9Ya?NDL?Xa+j7f}Rhi6qaELzv`KZKhlfAZ<84Wso7Zj?S=w&qcQIrJ2If@{hLVqVcS`$p+;!E;M#N@!fIsaFEGw~S&3`un1cmIY zrjlo>N}L!zLx#r0?ovt>ovUrGn|?MMu1Laei#^Q|p*X7^ZW}N7XBbt7>Sl+!2`8{3 z*`f{|+2Vd~SNh9YOGMtY1G1eSpZ4&^7q+&RnWO8LzL)1lbtlkov+1cST_|*E-hm-x zhb-3&kn-1DUgiEeulR{}FUDoJ2U;Bb1<|pZL?6G!4d=9E`IOZFT9IVlhQ(7_%KPma z3{$RKI4if{(=sx(e|P!A9L?{VQQOXEyLv?X=&vmrt{a~G7*?Txisr6JE&;oHt`2dZ zISRAxQyCTQ=umvd^vd5c%_rHXi^unQ#9g)sMlugYLRW?`Dy--_6HDY-+wn}qrL@{} zx-*<3T<*}ijgeHNJ-6of7#DowP;ErHKh8)bg<7dI|HaBX(UA1hvHNB__1@G_?B}@c zfU%7KfbUhUg7wnoJo57@!LkYra!%T9%7tcF>xyv6>snXp?4LoPoFn7Sh{2EDhlhGW&{j>J~@811@xCL2~ z<^m`nVbUgCFEU0!W4XDP4v2EvXY3-_D#j#+>jGC~&3$#`q%Yv&p# zlS+k(=NJbXJ}b8_7UMt)MMu57a!pR4{4!#EVtp; zD<3-yDS2kcD$+EG7bSqbf9pWU7sQK2iRLl8{v!#D>d}x~-jmqym!d*A6&=T?V|okl z%Maz?bbMN2R;!GHpGeH19RXah_Fn206vTD|_=oN8y=o?Suq;oSK;NGTmNN@HudQNe@WGn%U z3tx}C;_b%w_MMSDFVXI1nxMdJ9)YFMZO>MEmd>6kW3jc+k8%JfSM;J^m5^fR-rrwe zX0&9hWxTm*9u@B7G7c?OfrH&zR<|oj?Nfk|Pjy(_@Foewk;zIwPv_6*U5`-YuU*Da zw-H=nY>FjUv8-Fi?;mxDgo(}(zh%1I?T|`|_&j6wN8b<%ZRuj&MVlipeSL0+6p3P4 z6qnbTOqVjQGOo0RN)bt_sV%6QDuq(M%+sDPZr{gUOXq2V`d2J)^^HIDk4Aj|wV+*o zz(F>u@JjFg4|t!zE%pGR@(#xeaDqb)&QN$wRp5x7YS-A_jkTE*`P!swylKCvj~*~a zgarpH@__-__ohqS+L0B26j*d1aLPhXF~Qe1FdT!b6vrK4mZB9%X5u16YFYrdr}F`a zJu+hyiUG$h@;)C>2hBAkPY9A9AO@m6f$7<>Vc^44pd@3M$`8yB$+Q8AKgNKV01Ufq zKoi;%(xH}0A%nV=Dh+}s^uMns7ldGp0V%cY>{M{@uRnJjS3zdd8fK^>fr^?b_PIUs zDVdCz(PI#=>L^Jfo&o$TfS6Gc@Wka}Fvx9Xxq90i-ArbUIiF3r1!VbR30*jeN2pm0 zCu4;Wi2t$}z_P}M8GCxBG>4fcl0~U05b##JP8ap}8?J0l{jOu^?u$9i;C<|O zoRA+__Xzwu25w?Rvz;`-bcm%}M01QgKwH}RZCXY*{J2e4S7az>*RV(WTfM*j4VQzD zcdd78!YD-nT-ol^U7XA;^y#JD8b7%{jgr#b^&lx`EnNB7U-rNi%&L^#{WA>wiZ|+& zMV^A-GsNaD`MRLix28jJTZoz(QL^>a6|=3%J%*WgoLs@;Si6o9K%L zDTbg9CoSxGcE8iRo72&+u39%f?1Jd1qyFt{pWJu&>hNGW|4~)FacRNeFV-GvyqNlI zH}&V+`(;*-^Q`~zwVn$07je}KLhS8PEW$lv%sNBdKRp!1xIiF%4Eo>Mibecymk)bf zYPnkL9(b2$phlWSlsh0Tmm52ZJfa+tx%@ST=Wcgo^=;bP?;ZAW+d|U+5XJV5P&%{l z%ZiMVH!t))1H+y^l@^JNCT|w~MRC_T{BiR}CtnxSWrl2);^(5;+ll$TrkEVr8#pyQ zuLePrfLiY=l*8JJJp84r^0J;uk&`YYtfb=4I_L7*f&R+ml9jsM?KdO=cP8ig7mn(( z>m^x3QHdijsF&}3uf8|4^IYLROA4neM#cnxN9rG%`;X%r)J*Q&GA!6hjd@vKeB)j zZQb_Zsd8qGP0TfT7u$aTd>Py0@E;IwWNE9lbz&QRc|jV-_EA|Fvuw2MaWoUHd?WRR z^N?WrRWky90Dqd&`<`L48>K_%AK=MZbzpw_=VnyYuVLqEI~@zJjrnlbNgvq-;zS_EeqXC7 zT)kARw4Jn{Ul55hUK7>Gi+RRa-_R=SKL7{Rust#&bzRB_*0qSeQWd2~nEqEEgY(;) zptTNF)EcA=LzR@_HkW`#67RQQm9avf$oqA&{j`AQUJIbl_25)O3YOQ;Y8(HCY&huK}g#~=5t7h7TC+b3u zrw~L}1g8Z?m_SbFR_p?UOGF&s>&fDQR+WgD`QC)Iljcwc5m35-3&@c$(2x>+6MY2#FLw>88 zD!a~YS|Fw*xQntby=xxVUgF=K7DC@a4Pw< zX?76I$=M8>I?%{@^3Ef}Bv--v*8RfJb`@otlV6+bx-bIF5j&cKh|#Cpl^ulrnlq4^ z;OP^eNUuNbnKmm7-cgl{gnd`3$@pr{{-b*TBg=uU&`nqKoY~||{l}usTFB@P0$z2= z(arlx7MexT#x*=Ov5((BS*v+Q5(nD9BU^rJ6Wv>KO9E9KFZFhebBV%Rv=WXw8P`O~ z9&dD?$vqFKRPe0yop5*PVgX!`TB5A5%AK_v884DaQ$?JL;%-hg6f6vXGT)`d`n zO0*!9%+?=|NWx`7o~r2{CQ&3?C=P#AS1?=;3g+|Wu#!%$2p=a6_8^MoNWtR?+M$c2 zbN9N+Clx@Z%m}S~@DE-k(B0qee96H~`#Q09a=3wSEO74M4STx_27G-Vr24wc89ls| zyD%%H_uFZ@y6Pw~K`(QGEQd?N3n@BEInu#Q);}wdv@~CipnF9@_pFMx#FF0MspwIt zg^TrwLkSSDLPR1HNWVVB7Vu}#oTV!lr?RKtC6zc;&&0$sn=>AHRJ{87<(zvcgTLY( zF(<%-32eF1{BriJsTF#TRm6r)#?g~ zL|^$Qxk-jyewuO$@7pEhf!3(~r-x&i51Dj!lMk7}tcC!8)4~A5a)RnxwH}&NMxO^X z&D0e$%KciG<&7rcMXUGh{)(RPRU9n8gs zbPr;W@5To>ySWD6vn~JnL6~{!65H?E^7QtW3CCWKm>yR~oYHdxn_fSbhY(C0Zv8=*q775Qi*c=;3uB1dfzJ$7Lpd-1iggbo|CPbB2 z9t)%GujHeE7S38js`BAuZsxntB7o>R=SuxJQi*vkm{8hg!1hIdn1T`xTQE2{vb<*> zajUQ&tT6ieU5RWD-~AU-a$4r!FqEEqETg&w111ZTBJF7DgSx=6Q1Ri{u@1b-s9AA5tugRk9MOR>*t8DT$j86 zV)}d6xBAQh<4d-=1-hiuinc*rXOjATJ~36T2?*?E?r{_?BnrDjGB+V-4F<} zel`oc3XvMF<(6BUM+496h~cDiomU7jRp~0;N`GIAf|ePf)}}87BsQEq^U_DYpC?)R zZY^515Svf(Z_E8Q)+vAJ>J-s381&D97iRt)OkeUm@5VyhXER8j|8f?-E~;9TX!lxX zKKsdXco%K(di;2=%G69!r%}no7lF^AAVstj-*D=7%k1S&RBPKrw{81>$m>Fi6$o-# zF}}~av&vRb9!Dr1-Wd`BmDvwYN$>4)C3FBTv0NWOsEL>GDW1zz7@M$Mtl?m&2&@vY z$XzvjW@@Lr(Br*^z@bByb_DLHf7MEs5I5S#4c#3owMlv>!hT(bvzLrWH{aqPVeVEu zqv_2`=;(pdvQ`Za_lp{z5XzWlf7?t714^&sVzxz_k5Q7BpJy~WTc~d!QYA%&1g0j0 zL|T>(tro@PG=4AwG{C%P21JgxfDfl~8+uJSihJYK8$bJd&FF?9IH>N~EyYfNfr&gH z6w8=dek#p5bff1l_$@T)Iu$Ptd&uy%$-GW0{;YoFa+iTO^j3}8K} z8R>RYl?YWTS(A<>m5)M2%vet3wi1;Y|JL<2wAkoRrzt(1(&vxs>5#0Yk=}SowZQi^ z;wVyHgYLqH(qnZlqln$5A@slO`@EA`=Nhyu`WW%6TbkPQ>Es$_R(kD9SD5uMD#`Wx zvwea{M7f*0?GYW>1J@#%!_XlerQm8wvC=OU-x`|1o|&j{RL?3(=2RWj*d92~QLn#= z@a{snX0iQq94R>+gqS0yndZ>Kt!e`p9mSn^4#CEDbqbYfZ2k#-J%dn!*trzDNZwR3 zFcQWZ#sJ=uS^LI&GhrD^aVAfLrLsQLFR+_wwYNB7mQfuxsHF+9E&`_c;*+E-y3c5i z&Czt4UQpdp1+dnGS~k3Nl6&Wj#lf^YKEr*X{DP#2tzA;jo7!f-J(YHe<3D_GrlUQ#$me^&4 z^n8(vVpHcR_i~+kBw{$E+ccJPnajyhThXxH!1Y42HoT!3if4wsF5?m%TkjZFbJ>(v zW;yo*P-uT^W?n_m2bq80D@}Vw1po2s4c_DYg~1iHukO*a;&zYawzF3CKPE3Y)zp|i zub*_Psg6zrQE||%6}^hi3Gzb$3`>yn*M2(uULRM~M+f?{S6i`Q{n_SCIUgnFgC>HbyTxB`bN}fM*i0z{kf>Kr0Y-qxzkmYGZNOwv61RPWEfAOqb#(z$+=oe z8iH~v&gnt7Q_)eRMqcmFdKKA1p-yEn;RQOb8xWddg+b#8c|)e( zczZ`~pMRYp6rmaWMccwpdr2k%JtS}yF|gL!!0{6WmwRSWti{(vApb#W=e}}UwHY+~ zX~_J$)0si(@V0+uwFzh3!BBn7@M3GFqSKSH6X^r#xyN6ti=KHPk7j!b{D>W`{GBtl z+Tm(lpncgpQn<;JN?taX*)BRS>R>5qM1RASoHdU454cs!tvvT1AP;zedR+z(EH+>d z2x)x;W#Ffy zRw(lr2u7t3M01$=hk!)WDlCYGC9_if&Aw)U8B8vvb`8Vl1Au)Ixis)MShR*X#^O|7 zm!19s>e^7pAte*fr8(k3nj!-Ju_+kMHd*=4eHX`m z;p%)*HfCJ&Q?W*OT7ZD#3Wn0j{)ioIQlpZRJ>LL^vty8j%p|md;Q|z>`Le}HuRK1y`^@!Opy=U7{Xxi(AC5PQ$O@djJVG!b&!i19&Er!;hLu%ZuP){;l zn9j=dv1z+{yGZJ&p+uWYQpxy_jgh%?%=TTUTwpRNI2wayh2_7VnYoXBKuidn&+XJ-RcXtM!UVctssh`+|4$YAu7lIHr&u$FvW% z{I%H@){8@$yiR&1c%FAs3Mx6V1zJMMm@- zEpB#fb%@EcJ3WHQltT$H>~)o5DP^t8!TuloSDSEq|Euh*u-< z4@dt?#M^!cXv|(LMYJUHXD6FMW$B>vrV(dh$A$YmO0cQN_1$S%<65GeT>ChY1i663 z@7Bn++gCknN|-FAXZXBudZ{hFq+Cm|Nb89oZ8n-|KSDgK9;Wa_&(>j^{Wa&qw!i7i zw#epR=ZSsUHOXdUp8r|X_csd-i+9=nB6#Xaw3E}14!g4|Hm<_4kioBnYGyx9*rl3F zSL?I32K#8;<$i0eLhWeE$AyvXCs!*UDO@|dU@U9ns$diBvdB~mq3FS^55C@Wi2Po< zSNS5=J0roV)X?fl`%I+jekg^0ty)mxiN(A7cW&aVw{YzuN#=Lv*zbL413{d_Pwaxv z>*Oz=m5SwD>%T2As7%VGi9JWISPj=a=%|MC4`}%-Wi-WWhB$>#UYx8^pi}AgzSfbo}#CEmv3CsC&73*s9PaLeXH6Z@4F%}E+Ih@S#G{_&&}EHZI6c<)qNv^0@ z?KB~P(E3i4)KczjYI4*lrsU3%!)eW?I_zsr5^jPc=_wbST|-|#QIwR;XfJh9aI}>N zoIlD*lHy{Ow_K@h4^6vFw=351>rH};nFE;&755s(z~c?a+4K5R4oBwsr8XZdu*30( ziO^{xcE-I#@fN|aH+^VKiLp{Eu1{ok%tdM!E_wMv>eY9T9$C^AUTJ1DC=}nvBlee; zmCQxy0*J1Z=kDJ5?=C&Q>dK?UPG)aKY_Tqv9EG#xOqMvM_dL9+c-lo=_GBI-?ZTr7X>=Zhi=|S?~|(^N1<59Q~2qS9{@u%gN|zH$OG16i<(2GgZr_ zt~eKE!h7=?kEVTntQg%w1ww<26X~zf%GQJ0R=W4=(oN!@EwaYT6b(t%p(tj#XS34% zbG~;8dsiE4`wNVE(t?B=vNA)($fW~*3w2>X_#|JRWnweiV*U{d$gZ0^7ATJ-O32Rq z90_z$c=eFsO^0*!7jrIpB>S=#o2^CX-@n!W)^TVo z`ktP>>K|su1WF}DUzbfwSKsHW+h&MubKo>HaAsD*phPDIoF;^=9E!c;aU6AS9xgZ& zkv0uKO!s1piu#yaGvR7pTpoaWmiURJ7c=~*dnwNNQ{A2Q_a|S8#07gbhRtF8K4r92 zlmD7RZ-o$|*KkVx(d;Mu&OZ46!@s^O93t-7bxTFb(p% zk9LK)_0!gwFdZc-77Z%}oE*KHSp)AX8;W#ePN~pbU5Yry{v|wNTXc3bUC7bz8gsX( z@`K$e;Uojfg}Fy5ws2p~oU8J!S2b&IzLOCPK0iGwIsL|vkM%gK4YnQ>J0y05KAUYLsuUv=ti`tM;r|fuWcKw^@v2ptuMCvJtuxMPknEGe)>nBFD3G`+0A`XbqJ9G zt%30KWBC#(fVN!trH)oZPO5)?65AMVWFF++GlqDZx&@3B< z883qoo;6|tyYr#qkHiukk^5xUflpE{y%#fv7)80zAD?;QPHW->ZYJ>g(NS}IlEYwc zRYCRaI@4IKf?pp_P$cbe=oN75idc@MBY(vlx7jLo2!+NDy#d_%9hu{Y+d!#s32Y9ScCdSQYLZH{V+aj_MK`-eYCw*c0->`#vbUY317Z>wwJJFfx5!0!gCAEd33lUdsJdbH7JyO4<`5mC2V;*gAIPLTZaQst7cqUC+AN;Jbm9Fr03kiLt>>KuyTxX{bSyAccj6s?EaOA zV%N_MtF2K69hUel3JOVc4aZu1wY%6+9cmhfO<^#t;nDvWVg=4*T5-Bd9WOeq5YP5c zZ#+o|Y3kc%85XCL1e+;RJ3Hm~W}Y4C>GiTiE2SxH75TkS!;WWsCs@@OU;aX{_ca zJS%zc%O~wCm?;{tcXuWl$QWFTFZXhI$V9*n?izPAeBHDg{x8duSjy$3HdY@XWbshc z!-`Ko(B0LVW?1&f`P1R5@@zY&V^06b>URIXRJf?}IR$;CP(dU?wC-1D&n=yMspdAU z(&9|kQu;p3nh8&+$A7(bN=~gfdQ$TRP5DFEbdO_UWyR_vy3P-ECp?P1sOi~3&REcI zuJ12sk+=C_}**ZIldn+!F}PWAC2a?@sHs$Gs83Go=E*>l(4>}w!^I*JMg3H_-17G+i*}&S zToqF60X$zX6SXaDH0)SNBw zaxe2xjB#U$OmGu(SA29YPXhX#|7GT-QJmcDRU1I!}Y3HQYIcrz&&pCnzmRZd? za3$8E2~p+a1<$*D8Qck~VTQmL+z|xNF|BOIG^4=!CeA&Was$rb$N);%8#^}FHN9IO ztkS7hLzNJ;73qqNCjI9PEP+=!Wmu*YQu3IXR2LRDNzR7Q_}@}fEU*`>X?GN#zQdp; zkgt`S*G3?J7L&m?2O24xC7(R}mm&|*8zd0yuOU>$J{T@viH!R3NQqIb(#EY>m{o-I zf8Snu=s^MYJoYMX&@uc7@5cE0SFa%TCp3EK_5;d!830h-O?l!w)HbfA0E6LXTUSF+ zK?fBSEmuM=r4sPp4OX-BbV8SZJ%eli)V?Dt?^@=4T?xH=_D;~ozOO@!z6C4$K1noR zmNJUCSucUN;2-P$dl0ZDBtDw~L1H88&(uSX1-zkcb?E>7><^hCZK#%te|G9W=-q3%J znaY&XD>(>yA-Df{@tnJGSGv(Rm~*m~?RA9@08L-yb^DoQw5NAiqN{XUFC}Izu%I-ni6v?4Qk{_GK`JUghI1S_d@Ij|aUz znTrOFmPFKE@-&Ar!}vUOPCo%(o}AxbNt~O|744xJ)(>qcU(dC=th82KPUookzJw8G zV$1tmLjUrG=F!)|Yu$ISM#IldUgJ^W9YyeN}J$<+(`I-u&F zO-4~s#Lyv3kCr7O*>{oJCtIrMz`UR>#-rh`q&SJyFrq=tEg3#9r1L zFv#N)y#|8x0%kQ1t3x0C+rx=2DHj8S6jZ|Vd5$D4N^-^ghNwXK_@LS--}o|rZ_96T zBPxLJE2E9nMc%^Lj1ZEh0eaBqJu-{p8=UYXFrA!Mv#s3P!dSS_AgsU1h1Ot;C^PO7 za)_4*z_Qw8=jf4^gr9FN9AJ+2Us04EPukiGmzz60F|P#==P2BAr#U02h0Ycf6;$wQ z?BGoMVTB_8{W>jn6=}_Sj2klh^Q33=I1|hr0HEN zlUvFLO}`M^lo(c6ufbi`ia0>(237uZl@t`Z=G)gtWEy^~Qi7R>n7KgPFoPwN97nISv)(eSjZ3|7JF~vw z3h^`&R4vxw<>EPyFr+%`4DY!|g==sdXkr%MC|uKkmKj98b?6GI{Go5tw%Y~o148$b zdlRF^LGIQO4UfowG24SLb??8_!h(>q2)l~gbAP6dD0iN7?!URsBLcP3=~8ducUHyo zg&**Np1tkY;gE&?C}l*!V)sg!ezY6{svo___s=vd!9~EBs$=aNo-g9(-!Kp>A80by zYau{~bC1ikViM1Ui|WNg+8!XM0AFKs+gVvV$Qb-6@5CH5TIi-R!g$FsVp`)62zl;} z0!Kdv9a<9Tzp8~12A1H6?t@ZW?f;GaRk$yM53K93Rp;h<~fO%T2DVHeLl*mJ=1irnm{L~Ium}J?VVY4=jO_sphG_XW zSN7h%!!VV=;r6WvpWIKvlr!E2;KHKqI;_!!fCsxB+FA)_570rBBq{hh*7t#c{)$Km z{SE3yu$D_3&VeMGFC0z?i&FdgfnMr7uf}gH%a@)lhEwndT9)4zTl0_%2ZP&;eiRSeZwG@ z$B^YTB(v>qu>yAb-gEnB>PB;>b}`s6(XTP_vZ>^$l8>&}q(Hz;G0;vJIT>O8?|F+~ zh7PwrTh@R1{HFfdbYNF$n{Yp(t;4e=0N;}ph{QsdwY!aa(fjafRQJUF3^93)rg(kZ zKylqeG?YLsEGgy7=MB;@=m{Q~YwYp)Y{~CxptDkvj$b#z%pRxTGSia9*Oxk9=3w~rs)zTYcmbYS1nZC&FKRKznTAmS`qTsu@K(W z|AA~|3Irxc%K{w)6;B7CJBlmCG|>*?!8LZ+jP5S)gPFGYrMb>_s1IFJ69e4hzEgSf z-@r!e_Z+fV&eq7zO6S(M*S}mnZ?7W>((6c$e!LOTqf+SWL3NM5b@9tpsNG0^uJ_+3B!+9|GgRx>ALAb>B0VI2E_pcPki$^%h4Y|yE1!od2 zy%=k%0QAn<88c9Q^~UFyg@y&iv;GGXJfx@3jab}SJkuWL_)oSBi{q05;ey>a-1@q> zdJFVg`;Dp_2R?BCD5+z?h%a5UOK@4ke$lp`2b8PG3u_LoQQ6Nc#cqmorG-cYBf(+B z_C4!TEjRw-R7iX-`-55Z~aK7ns+f3;`&>Vg;0eWnEn9vi0IR7Y3@)(bN zArUj*x5~*Gt*kM1OP|F7Z960!3@hF1qmO;?g2+cUkjI=$D{W*l}W5j&&mCTG-a-jMn^{gh$Th7oCiqW z8NuevkSfOQP6M3cc;IWpS;buykXlCY#?TVy_mV}cp&#fTb6%s+FTACmoXr7Tc>!l) zM8HzIc2Ju6d`EV2%TKvJG$VUv72Ex`uMIBKYuK?dZf6T$bumAV>UBco4rNJG`%~HD zJ5V4N466C9Bel7rRsYTC(&EJ<4W&)Eub@GWbYU}=m0Iz3Ri<+BzENIPH~uLUkJ%U- zH)kB3Yvi1!;GbBH#sdSAnQ~U!C2F7|jh9eJ*cEMy8jvM)coZmszV;~oMxA#?J z0dUctMHDlPzwuc#vX?Y?GRSb)+p$Ga|`*BAU_;A!qDgU@+ZfT zme+|dK_u7>D!5P2Tywf=8?G|>EI@da=v>Rc=z2?1=xK85q6IO4?5BEEr<$_ZKbc$C zzbt-lvo?5Bx%W@+fb60E^Z+0NblV~mKym5o75UEFx^Xk4Ht59Njaf`3{F zn)9en*fi|%%T8QpTh{B@SfR#`Wxiqo8TwRW-o|b5Jpq?-#L{)Xw6uXr!#+!6yuko? zGtz($m$XE!WlE9~^Vr+1eW}~vkUEbMHd?Z$mfXonYOVa3pTLZ-6iOuUv>ON+3Y%#v z6Cxj~+Vr_iCfLP4U~5xr5S+ud^VP4F_$Z)(d+AROozZHWIh&}gC3qA56#1^_Hx|4LrTRcEd4(H)J*oYqD%1a7`ik-t@yDBXD zs?A$^uP^Ge$oH%0#@1wJoE6HObL2`0qu2IapTE96Xz(3jk`w!IVBy2Hza2$5HCW++ z+eXsxbkf4dlf(-WZm663LHH>&)eRRWg6YuOZ_f*0ht;z8rjtXRIovnrbdYp8vfvP( zM{t<=;?;`-1>?=!OqTJo2!5N+bTg-bJPC&PZ=?{yZ|O4}{AOK9|2u-& zFp#V>{Yc|pXZhwUl|nEYb|qCTpoe_|tSIN@NOf6Khw<*Rkn{D zq$ppe^w;{`1~Cedh>AD}94Q>K^4p8X-=nsdU|dTevCshvf9W&v+de`-(9LwS=GTa=`=I}~(&67kOV0+_;^7S^$ zl$zm5(D@Go{l^ei(p6cO({b_PMTyJI9ULqux24nar7sB2M{+%gQq$a|YPb9D?w#^j zBlflQSfXNP=GZF%@MHlkQ~SA?SRwM6Sinf#kGYbrDsNeVi*4aME`t$rP7a-$KM$qknd4r64`kpY(+}j(bUiZuz-*Gax9#c>6OvSGKeg z-OHtJe?Tu*9-rKq8q2GA;46c&)RobH!8*k)kBv$sp~Ax4t$gg%W$uRfcDoI6iDL+u zV}?L!O=blyQ(V{xXKwkpcuK@;2Ge5uAq)Ogbu$wYJkP;Zj$TWY88@VruGk7^8Tixp z5833*JB3r66M3)k)Uo_yy`t>x%e2&x(0eh3nO{?nbm6_>g#~pMj=_f+v%S9V>L#IF z>@fJ3FT+2aNU_AGb;Vq@UJvew3>h)DR#`4M>Y!I~qTxGW_s(Q~QO`ms2^ZAKUpQwr zpj=q;iOV#W{6tx<$C^G%>GVB9(6Y^uB4O#Lo=y;OIyekcNku zQ=!OhEpus7WWwb1y=IxSRT7PnL5Fb{yh8dMZdK1~Q0*Q;=)K-BmyMC+8o-eHf5M@A zFTb{C`d9YyFYVb~N~Jt8*YRUTrg1H*?TwGR-o032XDj+pRzx_3;ucc@_MbNVtsfjX zh zbz0a}Kh0>>ztEXrK|yM6T?bj`y}EQq?wNQDl@W)#<)4G07IKU_ zOV0oI^v8$l+A>rOyYpjI=9zH-!E-CjJZ;l$&P>ca1HEU?S#wAT!-1>T9=ebsP?>@Zz2x4RjjkUxV~> zw;-svs9B547-H5uOE@n*(=zb>fqLIqK`msFa}@ z>vXLECjG%m0p@xhx#bJ5x>4F3Bb#Z|#6A?bbwr$;L)RGE$$YM(K#L7`scVHek{o5* z%&#a?Y6_Dg_5J= ze^Bm~lJ+>&{kff{uI`wxwvJn67nto7wssQ^iY7&j9eO<(Y2!+`+?q*w#;&ez_${VG z90AVh>=cIjEL9#p;3}Xc)|q;Q$lCe1+)HL5ZO(ChnsY9sW2ivz166do7xKAFqx)l5 zcHfWH&DLYXK9OlMX~{scbzpLbV>epJM@+v|0r5-it!6`7a3B?AgUj4tywKEHe(_ft zq!kyGHh2_3G;+m|wmE`dQRMw?cP9F94Sm_JJVJ~|%qE*~(XKz9eCzTqRh6u|EnOVw z`;2iZ#3vDN#R{oV&4k6GxB=sM=X>Rl;q+v5hk5lU4#<@I!LZ=#^A~dUG~TySR`z_M zobj4@BBa8d{Z}qh0=+Mk>ZR}Y+sFd>aH6Q{-&RnhatA{)S6;^CZ>C=Q%@l}?bD>)+ zh~|kADLftNR1Q-gW3Mr|(07q`Lx@8Gs*V1oyNZPcBqj6XytXtdzjs-0$s&vhLsdaXP^dx_=(xlldUf{?5 znU2h5F$928j+~4ADe~!lw2KlmuQr5DBoR3Cn zL){1(`3Mda93uV!&ynYU575%-v*(YGBBDRO!v^z`&7VB#t>l!sziT$VBqnaI0G8ft z-}??JgaH@UjPC$n)zfeoGee_i9GlkmaGm@8$U(s2=b)5v#&8+WC)LX`q$vraw=Cj?W7L2R znvWP2VGfB#7B_*<57FEzj6t~%hID{2-PiI1#0aB%vwC~35if>=rcZ^m=4MgaM6}2YzIT_&A86a!9V1f6-mCDpkDtfqSbbFLIO_E$ zgwaQcGR48k%69st-_OQ*Hq?7VhZKo_R9c6!h~8AIae4rsaT_}}%+@k1zwo)LO3kfu zm#clQXEA1olSu7Xju$5vqvw)SYVgWGKJvVxH2(L6oxoGbIWO%Phf}VE>!a6-+n?QW zTx@N9^~2A+3_Kmbd@hFYvlGR*?} zBKU_wdq8Y|I<>~ZrEfEIIyHYoET{K~YHqRC_%F-uZtvCcgdbb|U;h=(t{KIzxMldzgpT6WV z|A0+s!qlURW%6T$IioXf{&?1JK~PmP>O>G*e+SGI2xX`ICqq8wPaIMR7&6#>?HQi6 zDX%BoEXx<0!E#)W!9Yr@T8$8gWiR9g%PaDc50`Bh-<*bz~G``ouGh085c487>?#t=u z?$OJ=(Zw)DIauX#jQy^0@bar44L4<^bzX2r$d4MEx$y_MN7uP*cj4BM?HsEP2B>5y zg$!#Yg$J(`1YIfap>5Y_MKlQ&rVJ^^k#4ZhxoI4TG_7meG!?fgJd(4hNvp|ju|cMBESy3ypK1H_-@ z35V+=|G~s8Yt29m4ESf;z}sS))Nba611e0G=NdT)r{;#>G7;T=*|`C~6DfV3;zQup zouR14{#+?>dNAefLuuQt4Hh($i)cn6>S**j@NcvG!@^a#oa(9Nx-;n0-1VeU2Hi`n z{R*2sjj-^8lM9Zo)9YNcqwS68-2k;`%9<|vW5`tV%gKb?g>ZMzxe&Gc2?kBRn&Ku* z$e?u~4chM;hQI6yw{Lt}%v&rs%b0Qb?-E{W7r5_(E-&m$RD{_|8NrqR_<1!8rgONT zGjUtG4+&;3bgS2d!Swx&UX(lEdZ?kqZ~H@k;3taLb6l2^}O=irk zaBfACRui9#w-mRC*HTPTt*H+E!AY2?OM#cIlt$mOjIVX#@uhICZSv42lO@k{nT2;c z-;lzsx$h8vf6YazxlO(~H>BOe`@ZSC5~+D$4}_t_Hg8hvJ6Ae5k0)+A4tdjuXL4T4 zJ2pIOi(}UQ$PGA}-fF%7(A~>?>p#PW%KRIEuw|;4%aU2)NikqPtWHUw#%&sE>ZLA% zM8e!3FTeA7aNbwN>^)_-K`G@K<+7imBOS4Wk=TQh{YiOdDe zq`N0Kebi#P&t$a(-5I`~`Yky+lrgF2m5n8g50Xh@2=&tTk<@{IOHm{S*n} zdUDGX*cAVD$Ps(~_;#kjOebxzYrD;iwDiKvq4}x4 z#g|KxMIUm@D*Lq=p_1I3ZwR0%%yE3kzxS}4xT%9SG}tVA%9lRyb)jK_AHkbBE;3aY zs~i%ZB&zl$oUk1^S>%v}UpBpNLJ+g&@fU zCmGdid{1dFndiDhe+uVTAa)FyH76Oq5^B!aqg$<;u@w!&0UJ7q!HKQB#x8N8=y{aI zrjA1h?J?Vv!zk&NeC5I~pJq%hU2g=p+yD~&x{1xup-APmyJC`qa<$cYyT%5sta9;l zW|@iN7mu`4Vpa^0HOyk>EJTFMS6i%rAYc*|*A!npNM6 zwc!)xxJI6o{kIKe8 zh~Fqr=@fdlik=Irgu?;kcfkc^wrBZk7j6%f9qE~J5ISOv1rXQ(!d`JnQP^W|)R5Zv zW|Ic-RBvyp$xsPEg-agSs~rKamfu_WSENMT(~BRo6fv$f=}ocC&mGZD0>-UcRh570 z&kVThBeE&QAsTee;V>rGrUKd7&sc`WCByaqPf*3fMPjDFK}8!Wln@Qiv7J&|!AXw1 z1ccIO!E2Sj1IAM+F~&v}{Vl`N4F;WzG0e)uFRz#qCY6<=1(|@BvnE&bql!1`_{JF( z_cA}3VuyD}&yJ~Ux54~x+Ki2(qqEspO&@%K`j`Et{dz6&LJ=R(8!9md`LYCrP$~LL zMYnkZ9>KxZC-ls5QKuj83p|ad)*~c*_!)N=0Jz?hg+7TmAXxRGzxQ`_5Bf!Qn`k<8 zPteKOlQ6@~n%*rd4i+AqFwUg2a z4eKoSO4*OvT6|4BXW<>>EpsYvku+S{BG=9h0(OMW=OL9q*bYf!mC&#>XHV~`OyrGc zVzt_fhC5TC(Yw@oIGGQZqPXon%0rjAh{{X#8^a4O@$EAL<6P$j0HQ4=aI-JF;G0rJ zC0<4>!kLgQfvi9%ARfbkO;3${8LDz|ss|z?BU=i*-*kxnST*!%80On>ZmkXMq#H59 zD*5m<29)mKZ}UO41uDvYe5xjEaYDpQN!^n(Lr1rzx>|%GM-Z)fvQrY4b6(}Ay&#9V*R2BjGxJqNlVFC<2&BNh}H;%!@d z$`y6Tm;sO_t9HO^gQbi}$tAet4s7hu`M)3=!(P)7qlIEqbx?>(E0h0W?q|n%)Fqo_ zX;4(qz0Z!^)2m$?SWJaW=I|T1!)Cf2519>}MQ+tm?CgXJ54Z41X8K1p_d^60+WMGK ze)f0_w5U7?iX3CKpjZUS;q1>@i0|i>7D}0RnsN*isd%xkf{TV8o;gSK3ycd|wjIl3P5tA6 zO#|fZ9nCygJG9pJS`Pz)sC~l z+l@0uM@1gxXNi7hs{`)~cXqCZ@_iHT%XKh(DW}|+_QV5iOA{$duqfO|P~XdNHjuhA zde|tt$84sf?;iY$w+Uh7+3Gv2aJzQd;+}62@|IgeFef#L3%X3(XZ)4N!4dSb+y1=6 zc`r9+@n>voCE1MuBMV>xAv1H!ET3X_I7+uNQ8>6hx3&E_Nnz_tIWcMnC@Ve_4CrI zwNAQ15#KJW$~3IbajR`Z;g^Y)cY)fNmywKtFE2xS4b%oyFKSk&uT}AaZ~gYb{fUA9 zKDGu@;`R8G^;HWi*_icV&?i8JPA2=jRr)<)cNbZ-gJAtkE#NLL_8$ZMFB*u67?11K z8E-T~m0p0j^Y!OKW!nwW3kReZFT0lEmm9=kzyCcBmE=iS;xZ?M`hH3?q=VRG5j3bp z9{C>13Q-oM5ESRctbXv1JFHK{lm4bTL3-Qj#5p?xE_c)z%00}+>9HL zYP|+_x_oJg1CyY9z*|DGX-2Q3g%B}5w|bN zE!I6a*!s)Kz_2Keq;$)+fDW`3dkw~_wC^;su%!WW19BfbD~j2I5RYCc#KN95fvDp5 z8r~_S#XzucVmqOTYg#2KAglRvlAgL35IlG^vbl2jy*XzdkN*<&$Wuu7IGzgwiOmS} zEb#^I01!;9DH!<+SYTav_ z!1sHKrG7p zk`&A=&ycm_Z0=7t5_9LDA8#Jv`o5wg;4D5><_EWQBeQWKGS{XSK#~mpQsSJwy+Y&l z$m;0h!eacshHJEA8%LuGc@)lvl$5Lm+aUgGl^!lw);o?hwS_znBx|{8+4#3O2LhTG z5T=i=Vcm2mU9C_0?X2G=-|Fh~_gT;Rkum!VSgvu`>}OA2*EpW{@cL&X_DC_MWz%pg z71*A!LfpG(T0T!3ng3E%6{9^rPe4=#Iu~~@n8bkr$XpeMbGUNFxD&T)Di035 z8=g&LqGhkG%%&4RS@92g*|}YLE|G;oxNmg&h`!z$u7VFj42;~X6Byi-8qg*m*8N*N ziLn^X+qwo0uI`a>^-GBy)3a?vAewbPBtu@KOJN0*3LH2$9&YgP;8O_j#I>`a=`VUL z`BKK?ij{f&GMsPy(w^4fY1<`H2bGo6+p^xN^NZyRi7Ij!bNFd0_JRcu7MpZzY-G8` zaI`JglFMj1aqxFoasF}@_<-J7BGkK0^3aH;-F}s*89?ek==C3eeD$ZXL27{uqMa7$ zn32e52)hoBk@+l7PZnmGjuzbbk$;`t6Z9B}gwlxTGgrMB0M%wJ97vxy00+G{$egV> zY@ZMGDRbDk9w2vI0I~TUr~WDc1u3VnB`BwR9+0LLg7~=!r1bAG7?C`K2M)7n!BW;I=2}4EE9GKl z1}8Y+e-nS@wwl{PP%-L@8gN}tSm2fp2THVRO$TN!TET!v=qo7x8DWTL2LM!8S~9*E z&knYLvR6u0HVS_5$gcltBAWCrK=53X z&B}%m1+E}fq8j2cU#*26)ksjTC7@S_r2TBKoQmTJ-A~k&Z4q;Ob${V<@`;IGDO{IK zeYXAu(tt~Ir;OiK;WZ@_Ek{N z_w+l{%{;3Cy3glDFReaEeBJ-pw+tz)Mql|C_Wi2w@XdUSm43{5u8CHS^z7f)cvfcl zhg}>$S_;|B;AO6WqKDLZiT;1363DGzZaMoosa~4hj4lLf=&J@55%)70>#%o<-)gQl z3HUA>w23iw1{ChC9Pf=-Kku=p#81$n(#hG6B>6Q&Qb;I{ebK}!sm8evecbxKq$T+3 z6PNMyK2Whb{k8Yg_lldi9_tT=Gk7|rE_9zETIJ6BF^_iVzIJ5#PPX}i0u4|Hw4Ob% z&j}8*jY-_&Ha}}|YIBS_-wdhhTPzSK|MnAWPRTEdjcCJbn!N`0Q#zR~8AgJVrA1xQ zEs=|1AIuyd*9ayv27@mCvUmCH^d@!90_RxkJN;l(KPjc9?pnku1~aT(WbFV8R<)c_ zs0A^Zf=~Vj!k^XX`JvGe5KZJ?OC@)FAi-q_%!J?iUcWV{K2_tGa-d>^d*aGa)UG@m z`_JsXnVKll^+VN#Hu1S21c90cmC!1tjSgwM_x=y`K(8iquB0t~VZWD4+wA|ymF_j6 zk0|Qry6T`&W?g5C$f9D-y2*Mz+yV zpe&&l?^Wli`Q}r17TcSPjm|t{Baz{gzS%(m=RXU@tcXZXO7?@_^Xm~HLz=AA!oN}h z{BXq0pU=)-r}f5YEHz91(j)4Hdv2yWP1vbgVq}UWrx(%bHXYOTby%Zcy^(#QPX0Ih zEfs!TGMnFqH&9}az%$HaeG+daO3N*ZaJ-)B3XIMvtulK-O!@{@TR;&?_FEUj@pIsi zL1!=OG-cmdH&`OZ;AOm(8WZJpSg@75;PjXfA7W$(4V+|HrgchjLB5!OgcQ3eEl3xf zU&m^-UM_%0KXA#>9?zVzI+c55YU+NSY zA5->x9zwFPjxqej$W8p+BGKmz+bnA6@Y6RF+^FR#7(X7m8yld&0wPpe#fu^KdLz}B zn|wx*_rLaJ)pnD+7hX8UJ`&5(*!e4s>Ni{w`@p-Ir|cGQOExd{k3G;#efhd^i&kA6B@{eE4xZGF#UeY_H^G*yf7Ww4mrr)hf9%>cSxAS5Pc8(=e@$>Pf z%9Ag$f`V*2@BRCRiouzaV%SAxX_?J216WN?_kM%GS0olWi1dpT6Y9MPwTVG;gN}t4iC76~CoQkZ3>}bkdjwd{S;~OpKbz1%FnL!E*=tQrE|Z=&=%9yex2@& zU>S}0ke3U@h zNzf_T25j@ruIKmlsy0Pt9a!dWFUda&VsI}J?3fg5^ z04^WYY+$7Gk#G2Us`4Th^am^o(}ZXX_y7Vmws6eiQohp9V~-5UX=~g9{*;+TJaOH? zDU`(TSe}2oQf1a7SAM5Z+=gSdw%wXHexH`|-mz4?-L~7qB=zFb*^>HE6M!e2nbC8%Bt)rkhs3!WL zx<23PRLAhE0)xWo7u7kDmVe@z#VXP%;0JK>F2k zm5au7gK{&0(!`2>)U6;x3jvTGKA;a{J6o)~4=I?}sB{#wNpO*5^sRJXz9KX+Ak*q&@VgH+Q%h&@8#(He1Ln&V#2`r=8x z#IL_Y*VJ#l6TL?E-=|80SBhraZ9m!oX70LW&Yw@^H#&NSdgkI|gGB!{-U2qUi8f1Nlm&qv^rrEx2ZjM!eRFU@u1KZWX3l z-!z|LI(+slb?Fhwc+QJc~Nn$HgQD4PSS#u>HR5gXhtGz+U_*99Hyh%i;EJL2vd@j|Nj% zx@d#c?nLl2D98CfBm{#xQ7z0)cCG9tyU3%^m-ikVG1YYh+6uuAx?~<7tYV<=ui7a8 z=RW%LcS}?BeWGf%f2+oqkL|>3o{VnAbHRgH+h9*$$!X!{S$Alkjg5nj9<$p5NJx9l0EVMaO#7DEwZ-p^Yi|R*nzT#=Xi8vr<}1^|Iq~GYe@#L zx0Y6iF9fX_FYoM~gXu4Z^n%vRM~#v-7wpfPB>F535e%d%6wDAr)wUv6)o&Vq|B3M` zYOdou7ut6^NIWJFYrW2XhHIQ>V#(MvvXWL)U<*M@G=I?=htX!g-P|qDLT-xjLj_%k z*W6*D5+Bf|@``VN+}wlTxp`wZmN!>COqm;N&C^keNfe*B15G0`)F^F32kbC&P^+=+ zwaHg0h6U9f0~ zeq>^WE!j;ji8wxzm0N1Su{CNznG}a1%}4K&Y}pBFeZko;;z}dVh;Lf6z$8a{T?oxQ z&9U)gLbl_FC21sUT89!~%)nP@Jn4_WN7Io2ZH8{KnP$Y1ljcGyD%#S zvg%pAHJ6%P9d7wrTT7RTE!FGF^-%?fAuHC|J>dc_6V4tvSM%pUct!eUWs+zJ0Vs+v z?4%oYKS=%e{V@(`vbJ3pNcd&EFV`oQfu7^~KdcMR{_XvQ9OyZuvoc*Mb-+ki0XSVD zUkNbuO}cp9nr+Z}wE11;h-9llPgCw&n*uT>HD3>#34t5w2p1#zB{Rn;p5Nz7?nJ!w zA$ZsII4QTJIr^Hokj3-BX?HPmAX0#FCpPs?^aUk^k6aV;aSS1FD<(upSLpLjk2+N0 za0lMFJF_&KagE`c5`#ZcDU3$N9KE6-4lhT#n~HqXP-%iAIBGkFI!zCFnZ-5#dk=Yk{}SwTKe3Mfn-2R z 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

V5P0Juep1Xe3~HwC41f(crxM`rjSP_=EeWnwMF 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%0D+kkkjld1pAf)K0Qi0Fb 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 z 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

(NuO{OGroP99UV5tEc>4oahkK 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⋙jTC(^_wRToV(vJDNmOWx7yVH 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�Mjs2G+-N4z$T(lKNGe_-3+xF2;G1 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�P<;udRz;FO+Rh-v8{UUep*07YLg= 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 Y=QCd0N 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

    (a8 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

    >tUn#jPx0>lyjoo%(ReK5RM%<4$R03G^{^kS z^3&;H_xG`dcDpmYtdFFGjIi08@jYgDXL5ObUw{GUtV88hpT7L zHruPi{D)#Oj#Y?}uxY8q-t2Fi1#(yQPKdPXs>|2cn+X5r`!~x}47zUH_3{1pn?b(% z^m=@HczAd0`_(6}UsR3SCJ#Ug;pkKMaQATkq4w*JImj^gt7)7Q$>p%>h4*DYp66Dz z8`im7fkP=1(?Hzy!Z~tc8m`!`hui)1;oZ}!Ps3{6>QT|TSv~E;O87i_yZYqiPhNla z@Nn*X+3j`@kHdjIf{B5XcAltZ`O@Om?X4(o16%&mbNhYyk>!kbBA{OBe9 zXjOt}b((YJ)DZwk5DK?ik+2_9DQ;$zI(Jhw=8uS62yll5_z>ZyMnsNI;Y`FtiJ_?1 zKnV|rqUr%%B1dEZkqq8o@zA5I78XL3T3aiXh_M5AfI#Upf)E)odf<4T+^G{*SfU;@ zm0D|~fLORTrq-;?^>`jt%?UJMYIU6E;vvE;i8(WI-*pg>n21Q#Vp$5CyP3N)p_vLK zBm!FMe4*NW;W7eOYC#_EUaRR6%ye@AKqO#|rpQ7_77-ZX9#e^>qlBi5C{{m$TP$27 zG{UVZ`63at(Vj*maqh zTNr`Q(^(`fgdSu>!m4iW;cz;hR^Inr=j2I61yX&jxU4lRS;lWOA5W!9$A_K07cPvWe zO2-dJr*?dMp58w`>+|()l>`|a0P7r}n1fo_`sG#X5<-ks4e7O!9oy;MySv>nnmeL% zBBzMxggVJ00H^cu?e9lD7LNHm{p=T?Jln0l`R&(Qi(<+tM?fIfi1RpaH}w4K;%3ty zfAfdA!C-7a1)LoT0_cxMCs>LQ$U?LvixB{z*7gy?##WwK&v)BD_-HSBsy*;}AF zAhDpCs(CLxkU%V$M|OABWrgC)EQXMPxT%6!-z}g|PeKl=t$Ku`MMNx@P6z<_B^&_-Db%A`aR|t*jk|5PoEQiZ!h#?rQV#-Jh8qE>9_G3nR3d^2Hk&o)AR=WH zawf)*aCF0*vpW{oF7rC&{o}D#g`hUqVC&X|VI8E8haZ9#Es-oV90LS!h$zLwk#k0` z$gx0wn}&sQHc5mSh=GIvz}Xf~F)R!k4F--yxV$_>F7IYIM1TPy=hT5OFAcdF5=b~y zR|r%ORqIl>@D}E#>S2i1G$KS6i4=C=DwEJXY5lR`r&*S z7bo*-SdG+bt6jK;FGnSZ@Icqnm#*std}eYtecacJtF4Dk(*zuw%@9hM8}vz4+2W#G zbx3-i5n~Vp@ZENY9%q@_xjdXEtB`Uot<0|4qG*$f;Nj?6-3g3Cy?x9%F%yJ^Znmq- z%Zt7n80EAd!zv}lgb^@naR_tQ=13f~f`$N2rMN}}&CObgMELM<+{`(%Amje9e|kF1 z<9K;>xyieEn(B1!6P)Mie0%?Y{NMe{|MS22_3CtAPvsQ2sgKXU{%e_@`WJYVRNy=d zZ2HybUw(G;Z~k=X*LVBlej1N;9)VYN3I;dSV%WMfV5>&1H|yO`etw~WH`kk0mqcil zc^J|Em)x1H4-a~QSSoZ~P4*`Gx9fA{bI!>~<=b*zVSczk^GO|#Rc18rx6=yGR~ z+$9{!+&mOT!fCx-_b80{IGq(&lfsYRz1_dRQ`5&bZLgkx_W4gA4)t-eGvvEbEl1yj z2#Nrwn05Ni?|-jVyH(%J_jSxE0}+Y*=J&t(@yGAD)?FSDyLqbb@83(tE*fxKZ&SZY zWA(}6?r_>4&Q0fEe(@E!zPRbv7u)~xpMU2iyk~W(rVV7CP88Jj34m37C95(X0YN&t z-`}0i2eFmUWypCvPTH*M`Qh=Q>v*2drJ8fz?@xe!xnAwI+gH!8a>j?peVbeAFaiK* zz3HwlH!m($D^jT^pHB@y12s5Q0bo63k!A9_LKrAP8Rw`VJ6?5bQEnrCI3GWJ`+huE zL`2~%i4aR|m}I@$cr9(N6wqzbvrnIQ>-FbXyJ3*?Jf6mLZ@8A6yI#FLoR2|#@$Ba2 z#q-^6*UEhR{f{5M{}BP4*2C2&{pGPdzFBkja-L3mFTQ&DiYSEzFp(tlKnk!10d7lQ z5KTRThy*E`HmE?HSdytWXvBc-)s%<>%)PPXr4_h5isC}Ibw?pr1@l<0dVye3o9Rct zfi3f4V#WaVpl||ds>B2a#7G3D&5=xX86Oj3cmP7JwP;JyrPLdEnMP#VZC2LY%@Xr8 z7qg{+%iPQX`NE7wZc+xHU3BqzLfltyPOacOe|x>`keW2RHx|?B4Q*Y4h+X27S+mGu%RZA zPUg9C&>|m$AS8@XQ(|WIfYt;_3a5nZ*cviYF*7ycoPfat)G!edS%Yv70JR7}VlsF4 z2m-_f9T8;a;Y;2rb>faXD>C?^CIn{$08(41guzUKA6YkQ%8-}JZ)=T~l@M}Dsq3;x zp2oQq1@mdH7(sxwv@RtfF$IXW%nltKJP^>s7dTJ=rQ92~h>nIe4XaN-fA!h*D*}Lk zq>uuH7@G3je)#>@x3~9S{PL4u{>wkhlBC3dOexwpae;_%iO2UJ9^c+70s=qPX}BD& zudW}Dht$c>e)45c7}~t4RYfoaGs*_tto!kFY~X1%3@%MzOc=qOfx_x{?uzI#i{;KeOM86qJ@Ejpf0<7x79h7{xm&KekuK!|~iBxDMNC0$q_tGr`vIQ+V3aVtDZZc+|=v5BwJcB2y9*n88Bfa znnQ~oz0ROZx;-Eq4FLcwfB+n!wK_h2_wMk+?YrsexV8=iN_zt{-|YV6qI-cYyOBLj z^WIc*?uFH&AYeI{K!>0(g$^Z=oA)`VEYO;onrSNy5rF`M0G2@k07u^?cM5Q53gpyv zrW)XZ9$_9qNI+3r1z=y|Ucv#f9CrZ#0}+rMGf54c=L#Ur$WDa`nIbbrL}|?wh=h4T zzAQ0EayK*Yx{QLU6Cy?Qi%s9LgyDRio0$VqARz>C2C~|Om@V1c(R%TZG@>%bAkR-2&VL+(Z>jqcsgjB%DeO4`La|27wVWpJzlWIQRV!#sKb) z1c?9;p%s7s?y>9Bs$bwFsfEwyS&~HbBx`a5!1J-z)>>ZYZU&^v&bxZm;T>mls523t)|??{Y8c<%<_DU%dY9-~RnL zSyTLTfc75bN+3j(gwZh2l8daU5ekd^X=6 zXZGkH$o~C&GMA$&IP^wWefRR!%g;Z5o)~kVJ3&NGo=TWP!XYPaf-ho}GV-RA# z^~-0~&VA0SKF=q3^Zub&$z5`iQt>c0;xv_pjv~D)glhz@hV_u7s-@gN?C1aWZ@#^I z`*ipIJ|$MbE0M$RAMf_Jn96Fm+P`OY{B(U?tFZakiU_W5Uj^)LVFfBH{<^I^Vyetj{`le>R-^X8Cw-S_L=_V(#? zcQ|p^an7X{4WzJ~X`!A6dKN|u7UaGM#)N$un9bh4eT-TjpT@Z<1+La>Qg35BSDWgI z_>fr8qLdjVE*_^}|MIKnFIQUCYLh?_4u%#s%_W*Kh($V2)5HF->jYHm{){fZ?r4X* z*DoGzf;uw|Z9J9JEbCL(Crvc;x!>)mG_M5|FgQNO$DJ4m89^L$ZZkMyBMBgua6obc zUqTBD{u|wpF`OWl=Djns5NK5hL$d%+IWdYhFSVjjpA%!u&4MWjF-G$M^axwFy^AiJ zgLBUFd2|OBV&RV}Z2}M?ByX*1L!gvp$-lMPFqmOsVz`@ns~Av9wOQv<#&L3s=03Mp zHJVXVb%4Z7!ZP&KWd{^uL=ch8(o|cSH8a5~3|eV~sAiOeAX;rGY~cU^i0*3U5UAD= z5k%%vT4~IZgb7f?5L}B9XF>|I*3`XGxPhZ^Xj%9+f#`t%Zl-2n4r+nax$E3YQ#C?I zs%q5?nV7S=SJUb$;0f58S~vnQA~F+1A_|BW9@FEkBq3%Rvw$y)6wWPFC(|J6n+~u5>lEYGF^cFzC2_nqBA^0@U0HA6B(e)i8 znKoq9s;!lU-l=LSr=`G)h%ACkK?n@OJ(C|N)voWaE;ni2L1bV{0TvjEY(k%S+z-;W z*Q@8(&k14!-YM2*4mk!OrbO1C&jhz))o@Ry=f~-GfBi{>kNTRlL+wN{M^6 zXi#S-1>)m0e|UJ9U2{0+jH#c`rN4ZhcaEV{BcQr#KMbpNNB5_v{ZpMX5zS6HZGU`d zPv^Tt`s&5*`ZBE%ykTw1o8*YDO>%#|-gQpz>utL|0d|(sNh82>gN~3aPSbp_2{t?J z>3Ff}QZEO?`-2J@`s-hO&a*sxIR5o_-{gMSZqs(l>BVZpuu3xCJzVG1cALZ3-+cph zT(2LHtE(lxSZ#N>?l7iuteBb(mXJR(RhCvCgpsOaazRG^2L&ve&ili@?Vsk;(Q0d^ z2Q8ykr?~8Us(O4lKF0jWy76Wh4&da@2yV5EW)Zerp<`}2^j&=ZK=`&jN@olIWqu=hlK}(wg9B5&0&&K zN0h@Lnh~QznCs$L2m~Q&tujlQoW&DSASif*FUJ*gV*w0>U@+D>#;E~$N`yHiSxSWN zIgyz!|1b$+5QHzL`5?CDC`ieBBJ60p>w+q0JxAO`0&P~$t3@dKoTJ)Ld0+;Ow1%m81AlG7BAeAlScriWq<>? zxQRo;t1_Xqw)^Ln~xzti)*z~T-&F5wamLwA_uNe|_sew9tz!{h#RF6(t` z%`Pr4=c)Yo;kfF%G}zFw)rzaU%6U4UOw#k~KP~5Sc-pUq)zkhIP&b=R*KO_}9!jYt zwAt8-c3lU|BUD#EoXcS>7T_odu|LoAc#=e)ef333Lx4QLe!f4R$~^6cVYlvpX#VE! zch1v?hcxa*M|bsZC;*+QkO73GB;hdcVSWM(Xx;~Q)ZH-C`3(Q%vEwydzx?NV_vZcI z9s0i8Y`suDJpKKB{q6tnuUT+d4_)7NT_SY!1`(~OR+lbertQUAGDlbvLBzR~^ElPH zth(X&FdgpCszAsO5eg6#f`m~v&$1ep(hkRQb8&I;@@B5%-~IL9nT0EaS)H4<$T@AV zE~dNt5Bm~g=jL-QL%*F`=~G&5hW%kwuYF!=l&^pI!Ay|S*MImn5x;nTv$?o(h(u{W zojx4iO>G`7`_I4l>3{tDKa9tEb;UG6N~u{rosju*bMb1ud;au?H`UVIcz-w(@{8?8 z0uSd_=XsTKEA(_2Z{OXo*R;OK4XK$+>gH)yhm@u3a+wQu>v@{r-5t&+Z%xSk{`Pov zxmxXdV(t^aeE#fmcja!0sOtv|&{h~FQR;@oV43;m@&ZyhS*`Bi_UhTqIL;O>(jU)b zB!}-Ux$r;U| z86cT8Bo_d4Yp94p$c*XLt544F9?s|DS*Cg1tas(&+41e0%VCo!(KMF*2>^$iO=D!v zlq9i-d9)VR!W{{Pvj@0=Wa+#Ez=*|oVG(NXBw0|j%t%BZrIm-^f>Ws=z*66z8O5IMGH z^Lg5Ccj(z#<0MR?O&L5wOKIW$M^>7LJ3u5NkFYY^T)>u!5&==Gx|GBaCjiMJ?y5~Q zbAZ?C6tMt<1*uk3@P&kIW`<-{tEzg;YQcmlFCpsO+8S8|H`^E@V^tlJAfTHffSD4Dh=e%; zEs1=H2na`TfLL0e;ebRK0*FKo<_2!=s!1{+Ym3@iAZ8I^0`;Peh_tmp&p8G7QfdwY zT!!#&5D01UsW&D7ie}Bj(;}1eAf^T9jESsiEF}KLS&Pdo5`YMaG^`eHUYqJT)zf)w zdDj7hDLQIxiAMC(;r9FYw{Q0QefhAvdU&|LzMdywbaDl66$v364Knq^;5=9J4ajMV z^Z7WjBe=J!?nR551=2XpCj~qcWp^vHJHcor1|D@ z9WpZ#F#>h80ixD*u}!IiiRiI#scq4jq16xoN<)NJ7`Pj9)8qbd0FRwz?uHHp+uRVb z0U6L?vWL^rTA{9w6($!aO>6n=>eF>eKjIHRJZ8D*uP)NnZaZ|@%S^R;(=Fqwm$&mY ze|LJ5RWSgqV!hf8ub*FBZZ@+Q1)HNPDuev7lj#EF5%X!BQ;RkALnX5K?njgNq z-5(Cp_YHI++mCZ`A6{=0=O;fN$txkS2#`QH#Bxp}09t6DA3@vb4iOIV@yx(L3FRLZ zLznU)%0IHJ68D?!CJ&txQw_8-?$5{jr!*Zj;~b5^Fv!#-v9nLw=dRt zvt2h|l?>P^B>)i6jEIWud>-%b?P-q}+tXAaieMb=*lp4prRNttRax8GZP^?`B(}S7>I=k0fWN+=rcwP5C%qItN!uoYT;l}rXpFuKJpqp^msmD zprnKVt<9#!ESZu6X;Wmf2&WJcZzkX*1nAl-17kuYau0W4W~K;03uORAvTy_MI_}mz zv&RB8as;O~H*c;j5Gewg83E0lnB3h>QDEEUtc)2q8>wCd4M5x-)YQ}|inlt1_S$b( z*B7gouXmqZTnrY|?Wyj)OmcTFkJDVKTW#^8U(L1hmLozn9MIe%fKV_Hf)Nohn1V8f zJ7`naKmJ0-(p1Bdf@-Y`SHV3bBM~M{=Mm;=elDB!VCE4T%kmY8 znIodsvRd`bGEK{knQC)lG>xgwh+w*)^dJI(qK2ylXf@SV#uv{nE_Oqgv5u$5+v9q> zUH1bajC0}Culnu$&4;J`fjDp0>(wT=QVkqqakoG?I=N$7Zr&Er4LPq?7C5_UXj5iR zyNj#C;qd`*m>utxSsQ@^H*{Y{E_jhmJ{CItJb#ryO+YS)0 zy}tPT_46O!ewgOg+~(?Lm^$gS-ai~k+crycoz4ek`pM@n{>h*J^4c;c%WRK!Rb-@ApsLo+@D zuNhOEX0S69hjsuwUz87<<2Q3$;0l}e5HMgUd!5^Hp6k#*gb`q$#nsiph}u|Qd~);O z{2%_i^>%eSojQ>r3kRH!=fD5@+vhje^9=v_um4b{TISlPoN}7Z=Xq??G(UX*o)a4a zkZgCC{jfTnPo=id*lzm$IE_=SHGI_duogbAx4Y&v*@;sEUJ+6_nK5He=py}UeWlQA zqwz3bZZG_YC`w8~y>u*P)%d4Fp9?lv-L#}gcg~u_!|FL%Y9J*Z( z-E@lk_m-1fZ8t&q!^4l6+ZWH)5r%=y;N+BOUA#=wL|onQaG2a+J#0$AX@8uHsrDr7 zYT-U0CWbzz&1$G)J3dbHIBr)v^~%5)6o@2p-tYhL?Kkh=PyO|4G0#C#@o9g~9#@;; z<>iIV;9;7A z0XYI4BXx-rfi{u!$%{`v|McZNPet`=vwijYm4ZLMyZg<<-|Wv*m-^hVf}?1qlqK8L z#@XDI*ogzjbL~?HUG9e!TPY6eH9{F_NGkwItNycJ|9n25@9$5m;H#?_TS>n?oJu_m ztGr5-#!06s&KUwc7XwF(ELhcmW4#_2*utjT)SQI-RbQHx)~3<~Q`EQfdjD%r#K@o{&g# z?uN{nfifeyb%})ln`cbOU=ejL2{|)sYeX%~D!2$wr8Lzf0uUIE7!Dp97#I;?P5@T5 znj@i5TD0#-2v8zA5y?5%R$D8Q#Z4oCkx%iq=*Oy7B_EI6AQWnp(KH22F9q`0If`u2y+rw_i#oG2t;U2&9v*f zR{Z0U5;2e#5F{W3a_(rbOxnu+@oo4u0B$bMt=VaUu~ak;2J1c7*TJH7Tw{Om6bNK-GKnTD27n^>-ghJ5w{e~DNnQ7mg&iHhy0Wqw)oLMpl zxQ7O`t6jQywYhx0Nr}R0C4-Lh<(AB*hy6tmbDj~ObXGSDzkfW>7Q-+C;`ZVyOB84s z1c3oumi zVBdAbc`ngBmM}s<5JK2;z6=Z{r~w>c0I1pmjERK$e+csk@osay7-XYWo1Vtgv6OKD zJG!61SMD4!&eb7?F1;9f%W-)7_QQ9-d;X`NZIHr}`!Iztg+ze{h7{#!(_O&SNJj1$ zIf{jw@Cty>p?0#{eVJ*9)n(1(2tUMP>LZjqNT(@4n!Wdbc9+_2o6UNL?Y7&HxQ`WytST@ znT#kA26{Q48n&lFJ-Xbs<5lJA_oe2Ut0~t7iIjF0;doTtG=Z>|ibTXXB zxmpB7AQWp!1dxKl8A?;tW~N;yrdp?Zb+ySNYK@q@L;$FHI~O7%!Zx=huGCr!$F5J> zngc)pGNmM8no^qQvzFo%*La@Xa<{+wI=^`HJSt%m*av|6uQL@6qm)e6-v!DKQI*jk0ejn3Jt*$12wYh<` zDn!BQ>gKtuU$*f5<2^HP)~niTQ5{rtz~^&wusnU;N!~zUd_YxBu#2 zQ%;XhcOTxr>v{Fzb~-=K^O(oD001KH`c*s6)*x{L_x&*tRw?!7SZCM_SGdAtQ$MVT z@$UZiT&`5d|HkZ?Smw0cgtx}DGUey(OzijK|P5rH@BPP+WC zKLNpzFAeK=Z+?ta|Mfrni=o4qTSTG-mrcNZmsZ4iRmRg{9`m{%%lXIim>CncK4+8; zO>#G!n+DS5i|0hLTCG-n4)E4=D%IQr$s>?pz3O+H)q35p*4?(>jN|;_{vH5R%1IJ3 zF;fys83`cFH^T}brHnVvUv-?Ag)pAqTs>ZH9-f}se3mX7frgRlQ5?<;dxl+Ys=6~P-O1y&4fmSIthMwZPHX>w*b#_`H{NHh z`@Sv}BT>nl2rc@YIF*`fVnxRUW&q|KnZk66E_jCskCfS3tMMA%$Ssn+6%iP=m~W>p0;gi~vuPs&38=Y11{h(LujWe`HcluAt% zL`^g&O=H%gwd8RgQ!ZIG8yx2;RYB)k4qe+cF0>(ZU36rQ2{{lE5pWFa@l+ zrjm+t>>U$oDYfQgs;L$@ElfetNKZo;Q>{j)J5De&Xd(ik2%hqjMRGMEB+*KaKgKx; ztXMAfw3W?O1uPd$rIuRF96^|~WP_}h5yaFKs}@kLl^L;Zf|=A>Pt$WFhL83V`4~uW zBw}bl-d8Xc7uX3HGdpG`@ZM>a)0_zLg!P78s-B27Ohh5&>RHL4D1@dpty;l=PLU}C zLo)&fH4#HK5~AtXkswE~m( z4hRUzPO4p|oJG}6?XM8McL7iQqv-Tdhn#?&F>6)Fga|<98G%3%nJ76tJG-1GM+P%ndNyry}A%P?1(v@U%^Wm_8;EezJ52ARAQ9H%J=Jyd2T{Y?Rd=O{HE_J z3KU_4GiG3(b0s1KtDpd8VhrHOP)$osAb>(8K`BMXRA)pBU1(#FoIA4fuA$YczdT=U zR%Z);)rW=ezybg}7PL9<_xlgq<8B_rh~05KMh8^TcwR4kbj8YXEQsL9d*YK+(hw+m zI?nr@8LayAes$LOnoEKrB~K-9b*n(lweK7|AOQF{9ruo;VlLBk2tg5m44i<@!_(vY zd3X%X`KVn7u~P^?APn)-hKCzPj=RA=Gngg;qBX}t+lNM@_mdai8S<^QbiSpaSm;?(+S%JN#%Ih z86zy5vG@=?MUS>>V^ACbn{|J2vD!Sp>_5HPTx?un+iNl@fS!Q+uz_XtVf%30KJK52 zjTpov*TRUVwSqw)5P)ix3!rKRG^n5k$^?L9&Jpo4bgDMWtXff_q)dS}%igr?=h=D3 zo3r)f(^JWE*dHi*c2pEqESI6E0#Q}HdwA;FX0hyzNXLJYZjtY z-CT33rR274<~gTXiK%7BNSoEl@nX5`f_E|}=ZGkx2{9h0DWy4=tiXpc6}8wlfF4vx z(III)tt43i2s99LsdGIV=xWhcNID(?_KQV){_K-Q+a3?cpMLnj++JN@)OR1Y^I?5< zv0g3r``y`j`=9-%|IudIrINS%?Yq18so2xQ{>A0_AOGgd{W#q{KE2*PIC5#5?;h?s z`a0TvIuM}`zSi-WCJ|M|zU^1b<@rVT$%`}1<=_6h|G6PthhWOdDuIP28rzVL{n~eD zp}+X#Sxb#MTrELUsM4vy?qK<_zKZzCU&QM#_GU$~PGj?OnwrHs>J#HbT+md{8k%Z? z?%CeMxV)TPSLRA^K%%LN6&uP>OPb~h0xwq!Yu)wL^?K8lIaj2i58a>q^FK#Nzx$hShW&AMwsB_^`ljt#HCRbO!28_{ZFIbX*c@su zt~tATdA~pY-~T^8B`7$2I`^VjUOw*KO>mB1^ySL&%IK~zQ-u`s&f-kk?QbUaBo82Lc z?40k^bT`RiJ22v_euHeK)aXt|%8K5CBOsavIL>ou`m?Kx?d#Vd7(-BUciZ9i{rmMI zES7)THtzPPr}uB48Vdi(Kl`H)OvcGEvdwus^vh*;l*5oEmz(SJ_2tI24BJ_OEAbTA z_sg&T>`GO#2zlScXb7oRK<>MyR#^fdA~D4n5!DAG(p>A5b-nhVUY))8;xj9Kt=e7SR?c6&8115iWrGwT3tQA&TyRbG^R0U01eSi!;p5z;c2gS>iU59jwv#7 z|39qH0EHA)cWYerDjf?}vxQZ@wxH3UaotEd)o-VCZ%RU;xmDp~>1fT}2fYxfJidG7!k}8OtkilXFs=zoGWh#KlB-H|<0NON-8dQ<0bULtmCYvm9F{?InIE?EG=+k}N6&FW9W;USh8ha!P~Lv`_O`j}7TvS!Rm$`CKmOrR zGG45neg4VwFTUv1%}+-x+O*4-y=dAVwzX>8_RfbGA_1ff-nn(-jqiRu3{$Ojv6k2( zgn$toScOSOu@b=oxf=MSmIpx3r&tpN1w64!M92}KRZT%M33zJ2vwAm9JnGy~%iNI8 zUDqr(>*n%eb9GUeV$&_oHfPW}hybTn=sa`ixrJrE{rO>-YE&f5LM1NkvRz?x+%(mg zFra4wFs2Q~2bIz~=a9yE68$I>AY?TaF*G7{2n13c zJF;X_i3ydMn9yf2LT1rvKOVM+{c*^iR?n^+w+b_h>X3<8TIb1$Vo5n2hcq0H^8ze*oB{zW;vg9W_2BM)p5DAUwx6wi2(6M69ETz4(MMePW$+z_e$=5D5=dNz z>rdA&E|*uEo+RV340(PiI)R3$4ZBXvN)aR_u41{Aq(Y9)&Mx}4jjp1YM-I^=BB~UH z;W+mlv|U%~tR~rz(5^4n-qC)0=-X);ih{BSbf}ZPdU12US(W4N>TG%G`^NRR-`&Z> zfD^PAE9hM4Bg`{ODpTe_?V|IBnp3XxX{v4r&JhO|(2w6$Rmb2$AWsG+3bg_PG%h&w z)f5;kYD%TfMUhRh)Z*A#MP{e~`yu&iP*g>xA*+*%W*sR8r=@0Zrru%WFFw10>r3ty zJUd8gDpj&W%0}c|T%83kZRk4Z%8&QQluPe1ut)_lL###2z?lJIE$RS?@ic{DAn!es zGlYuH5ZEaR0%EGl4oa#9HqFI79iCFE-Un2TA+&ubqQh~>Rh(;Gbjr2NM$FGYd1jio zyB!oDVv)kc#9p;znURB(QmYtIRsqu(ysCDKcDY>T`^VvM7{~du7dNX_-!!gYwvLcd zGSp%&oSOa&bDGSQoljZRD7IZnG7R(Oaxsr-Dg!!T@Jx+}fypfUS1&dfXT1yc`szaK zRBL7S0(^D-$?v{>`|tn#n}EqtIa{okpP!wtT;DIczI%L-U;pOSfAOFHsdr1&vfpn1 zr+@Q5znOk$2-7@G^Vm50remXe_CA-cHjN|o1cIFPzhb2 zu4^tYHm@#TF3$Sr&o0puAOs&vs!V)^=y zUw-k4_e?~S*6-ik9uKn`HnEvgdHdmUxoKP%fB5hr#z^Qn1RvXB7|{jagtiG39GHbX z`Vf#Ht!8F$j?9_mKRHehQw(W*J0(Hc6Jhkql(ym7?7D==VMb-)>LyX^PJhU zIv#Q@sv$IO46${A*`0(IwJ2EQ{V+{GzkfRntLK-O3*Q1LK&~Rp9-#s79s+;@C;%{` zj}buNgie(D=`XrZKl@_;bojf!{kz(V^M1_J0Sv3$et7%#!}8hLr3GbSBnOJ5G!AvU zPqv5zVXiexj-EId&KXL!isP7uhll&O@1`oBeDw>gWiE5zz*a*OqS2hwhqoW{aAZ@_ zN~b9Y>tfR_H)n@50UMuqDQ5aH&Tb}RNHIncoyHWK$j+HssltROXq&150f>qS0RUmq zLKV;jQvyDLMI0casSp07wl=Vn;r!J5Ie`m^5QvCLiP#VkuzRZ}(52_^*urZUWg4#=wH=mRlYt)R$6 zh?GQP49q}8TIx7W#)4p;8T6zsArU(v6o^p^m{?%)%(a$z)+U6UN@S-@3dW91HF$4` zX`WRK5KsOlGlkQ{9_`dot5OkxJ!{sSbG6fslgqi76>wBa4I#8H=3GRI zsUf16iir0f45SJ&lv21o^`bupA)F&XG&2CJqCNyb1k%_wE`-(=O>Fl2Js^pi_f831 z@W_q<8jATiOV*ayb-`IU<)RUsNKUnYDySlWLlQ(lpdv73o2!(ZMDNBl^5LxQ*WFDA zwMh^mhPGv$hy6irZ)=RSIg6XKKpaZ3a)e@qN!&7?Jv%pOSIZ?w0yA(3nx>HrB+W-s z4nYl>DD&xDqL$T>gHvu>4G9C0Y8|Gr9PU9UZW~_O`pR`;AT{j$nyk9L1Y@f1B7rh@PZKuQTai5zekS}6LY?f7OaNZG#7+5wLIWXi0 znC_?AJ2R1@f{LW73_x&_@YYfki99<5HgEui5tuxxGFd||ms&-A6f-pdLSW+tS;?G3 zE@ixZ8m4((g?V_I8;Ba$p zZ6^t5=P0zHp*Rft(+VzwB?pVMi>vFi>+`-xU@`%qg2Azf=v+$S`RPsxp50u5uX9ak z7`!*L##jVlr~#YrJ4TjL$uP!H7z8Isuk7F8eBM8I*K%>EaC$&Itxlpy`d|@ z6JXoAo)+|Uyd87DpLV`g7Zi=0$EsSY5@JABCIMp*ML;3~AT&TwK!S>FrUYzcY#J!! zEaf;TqHu6Gn{}<0Qz?x9@_+qbUR_`PAOBDPEfOqN?Qu8nhGP?mfX>e^+Ai$3qp77i zd*_{VDVJK4ih}88v3i3Qg z0725i45sxYLGa#Tu4x`ES5$3+lRDPYSQSkQL|x|`(P6j?ZhZCW%Rl+WCXL&i4}ysT zs?}lEyB~jd=G(vc`sM4z!*adZtQLUovsV|j=i1)Dz`Z*Sl2o{ned=WXks_Q!c1 zv}ORUDQ)-r5BCpKozGTh6r1CmOU@~kVVs%x4u*Li&J5P34y)JdHIomcZ|0Gnf7rfQ z4FDYjG9UnZbbt|J&)4M--+Xv?_p~`*gZKRGldm_wae+%!=5BGe3ah^DVi#lEHNi8Y z0-{!_IUn=rX?uj zs86?tu5n%L88Dd7k7LjN=K99Jd@-ktXwMd#Pd8T?WO=c=JU{>8`yb{hZ_bvExdOg^ zcY8dHw|DQsDyTe2<+g)0HC%=<2QHj#0v^E@06yW{bgG7*t;cf-W=_Ws%C z#r29oa++1??EJi6twoIU$#Z!sRf4I3iJI1GWlWrknjDV<*HKK1CI*e(E&4v$_Vv#{ z_YEzY7NN{FFJfQvaR2b(I34Gvd74JwdUA-Qk9QxA`zNfjTwk>7^{CwU<{{ zclZ3=@BdKyu;^n^!;ZN1X8JG=!*LW<0BzdX#)deQB7zdxA(NS%cA6?i&WPC%vx=!X z?-T(Ly!WM6BtB69kvyTn2^uC+Y7teB=D``9z21m@FS-iby_ zW+0`4*lGLi5J-v82thP!v0B8;98f?$%m+Yp|*PD zR0IpG4%lH6y+a^XH06__2N3`m*~lY zQw{Z`nX|DVGdng@cIrImT2vJPOr;Htiq?{xcbc*)gx~?;FdVB25}Asrq9aoW4jCyI zIjONq6#{U?U{pn`+LW?mZrWaIfl`Buc=}|Eniw)MF?@v286z{10EkpP)l@-=00GS) z=bCbLp3P1aJ3|LdPDDx-=U7B)ttU4+d_=G*{iFX2#7;wf6I0W9PW18C?Syy(a_Edt z24r?rO+chs^qcdG{&D+w_h40hY?O^1dhawi^v;8`N_o`B+e7w;=s6e?B*Q9Z;9NP) zHNa{XW;}^D|6%*Xv_DF9gw4CRyT!M!zyI{Zr%hjLQfCdh@wj{Y^G^>?PlxEzs(ZFs zFi=sET21SdX==J>Uw{3Q-4Q{(vz!uRBT02U93HDy-v==>Kyseg0dqvqDrR)b=@S}( z5kQeL9>?MEAXwCqpqZ&DwxOAzm|&Xb8a+0cZPamIQ>=O1y?-n5e%bJ*iz+hS?{?q6 zpLf#{`S;Vou9^n&*RC;j)tA7|hmNVWf6N9~QBT2|prGO4dq5gzO|!~8mu%?RV49wW z-4+k1EF!5=y&o%+J6#>X#}I-ci;;+^mSrSru^h5; zjSvVKnTQEje+2h2)2M$}@y=2FXCik;d%0$u2wi+Rk)!yaRlLbvY^O#POJ zrdVSXJS~)_GEZe_Ik0bS1P*i+-(3I@svwZBP#)oTiT8T%tsDE((FU1VhtjS><^Q799+{iEs}LX z37yu238cEBMPh@*fHvl1zjU9!JZo=v54$5eH#^)v9ftix9?wE-*PHF`xGzPTh6&NT zwrQddfw*^}K{xG=Rc+8(2wr^o>CN+tGatijMZ4Wn4sgua^1FV(*)6~ObLMq!a73N5rqKW8%qh$0huFo2$4c%sa#Z4gAw|Y>zq>+TW)&y zAN=MQP3%ZVhBA;+g4lvg& zB`+F(zV4Rm&G9gc)vK%XaX&uYA8V;n6LUR3hc7?BUib6e>(?lnY@BNq#8h=Im}ZIG zIP%YLmZ6POM#sKw`&Ir9u`YzyFLpCPlRiR(1+&cV%G$JeRadwT%HR7ic~XIsgK)-&6_s_e06;h zLb$!(e)sK41h=gCq-hf zpkPKwxl|y?b3#KzktzhW-}H#`wAJ)qb?e3Q={T30pSJrn=jEbrLKBxRP3gyPeu{)=>)uLD`{OvKWhtvBY_6WA zoI-G~F0Nu|)2zpF0t3_V{OauUS6}Xj{oU@aKw*z5&#T^H7cDc_3i}!(m8u7kl7{UQ znew;a-2!U2Uc9<_ett#><0$d>-yMwD%+p*>VOQsved8ko#1L`>0QJ=@XDc%zWQE)9?#%4u4F6^*<_4TKlKl(Jy zDX2%JPgV`TfB(blAN%VoZu^4f9IV2cJ&(J+Y9*#B)dk1x5>XCIqSiQ? zQwGH@dKE=Nt%^Vx9V?(}m29d6R7;)4i9RZ{T`4m$irF*`Rz;+gGOMPXb5#^6sTNVK zrIspLr4Qtz=MbXzA#f8zWJgk%_2geCM91C?M5+t1CNMD-Ev2417M5*3WUJX!_rtWG z<}ur$$iv~dJB}3vh?=%<+R*gv#rfIw#rb*YpsG^{2&a^z7By5xA|fO-l`OSttyQa7 z5iDw@Y7wkJMQJWF=Gho(1yxA37+BR>bav!aPI>q0fdE+*<~ge=6Pjh!O2mvOW3{OQ zd79G*hE3ZU2s`x75s|8*86l=p3CVe1YZb|{@rYKWie?(E>w_nDgq|VQEL8{z8Puc} zK|IN@4UkVrk6Hx~MYKvWLdRIl<&soOt)`qv;i(Ys(oB^MDTaAKussc6o}GHWb)*)3oH{)hiZ{qKJB z>UqPkUiY8n#qR#;?e-ySJ){ZuAJ)^_xOcOmfT$dyst=uuo(Qo{DrwjcuuHQ%KI|X2 zyBDvnxfnY=)0x`)8jBqhXSeyZjJiSVd~sWjZ|NC(Ou*lO*wA0Vx2f^sPsS^E~Xg zM`SxCidTMRbFhMoxH1We!N?30NuvWJniWjdGy6VFkY}xkYF0o+r4RuT9Uku9{dhO$ z;(VNn6ji}mtSAVpSb)XZ9Mx#m0)T00!D>$B_@q~hiVcmKYm(_W9d{F|E@Noge!=VD z>^K!Iof#6U8JmLyGbB~p?~eCQb~BxCEW~0B2w=j>#ikg2Y{ch5T}@aOg>>9LU7u5o z(Hl?m;SWE3SZtn!^?8C&z!)SD8_+P-?ZbYb%j@BA{+ln|M~o7@{wl&Th_A&bY_9f`U!MFwb)>rRz3b-+Sk{@x15}h{Z88 z2Q2C&17ZzM*#ba|L9`x8#EFz+E|qeH`=_UaukEXs-J13?1cHVe7b5zg>Zy^x~6G@OZx#EEmg)T?dJSH{q}di{*zz- zi~s1K{`dd={}7#r9+0V4I6m!iHWfWTTP|MSJUwm8Gz4_+Hzdeqc3CzVj&1Kjg@-}PP zA0KyPe(@r%HlOUDrs=rbY%T(|he864{0}n3D8^%A}~4cJtLKA7!PyPdiEMU1Hj=p<|;su zogz_D$R>u6CWR_p^ue>J%(ZmO)-3ngzWn-St@7P>Kc8(HLw)=1^|MzmR;%@oKfO(* zq;*K65+XP}4#)j=FI7X|w@nMA^F#KJ5QD3w?v64xxtoDax8p9?QEHloaT>-t*TrJx zycb~LV8vd2@o6PG;^0;>29MyreSKHTShXC7eX&ePUE6nE3o1ai-f+|UMYDR`%~knc$<*cQ!UsUi40FL&^T{ZzRimF;IIgj(igb2PCV-8IdLZkwP*`8gTv%_*c5F$B3 zVG-Cr&Hs>Z?+*K#W{0+Ud*~=WO3>6?!0@c%$kF**w znSv@Ql9?dLiTgmzK!~KEruMNAfTaA7-9f8WPkBdEB4>y>3nDl+Mnpp}$kl+!IZ~!7 zN~%Nvq9}rR%7j}L1u=t@zX?sP*bD$DCZ(vTR4GLOxK^yiayixbRgA`*v#Rrv9Qzp7 zi+;6i8_y0AOdKErG9sCtxL}UG0hsA(wa()>0GKJvIpt!erlrm~i9Q~VcgOv%)NGBJ z_hA7b-aAz~97JcmML)<=JL=xmvCmK?@QBv&t#Z4k`v!l&px%b17O4U8)r* zWQDPmlr`s?N&!68PL)6uy{PT>L$Q-%oXEMDLI}}0^yokV9UrHe9k!hx=hTMQd8f?B z<0wjm96~#nxvDuNWOpLc0{{?&;A*x>s&~GMfYg8vnX1-docpc=71SA-i4gRpLqb7C zsK!R@k+Gy&s|vu!r|4KuLRmFZstTzTb`~2p0s}+*=zu{)B6QxBGCRj+plak%q=24e zoOELRDZ+BKTC|JD`#)4IZ5wMrEhe=fDw9*IKn@VI7FTKBkHP!UcU9G?`kKtS`%>G> zmGzs4aRN`Nq~5@ZJM4112-HNHFsG7A0mv$H%5vpW(K`SDK@=hAfl?&)XW zUM^iajwOyNHHDBx+Q#)QrtyirMP9_sLIJp#oqlRjBc@gq4TJd+#)rrI75Haomu}e` z7;FnPpK0CvbtnTa%v@U~7|s#h(|;~`ECy?1O5 zA$T%vin3!Qtu9YaFyOe`{qTKim+hi&S4}IkX7eJ62m}a$``9BZTU{;s0Pt|wmNd=t z6q|s-57U!zoU<&>*HL}(Hdq~v5(7l$8iJ@ZioQ!Q`UGLtlJm$4Dhw7d0J!mZ%;S?a zO;~Tdxnam@Dy57w)L9`gU$o10@A5PRfQ`a1&597@Fh2f7vCjpnj(m>G5L+;aPSGUK z*0k+aTok5CV-{+Ir;vA}?3>1gSv1w+`@Zqcp*Bru3<82VbkVn-z51FJuy{aKF{0Lc z2Z|<(E?%6iW-4PkCJX4SmO56IaXvmilnVQ?9;V}O*6qa-TB^>W=E6o~z@iAsL8DW1 z<$CRtv9cDOJ4cNJQ?&|Wpdf|`urgM59D+x6b*^OQ*;lPvrAooz(3O@`uj$=hGP@GU z*lwO*HLKP6`QmI7J7f{)x+_iOI*F1yELp}`(^+ud=l zhF^a5>$|(BfAz2a>S;G~j9$@se>hHx07&yVOp!M0)jZB=PS?+`7;sYC?haEF4ijmS5aFySv}t4r9}~7~9qQJk5uu%hwl6)FGFgv{aH}Cp`_QR3`J}m9Qq5 zb8VWafMe2B%%&8pefr{=i%yb|x&8il`|vnP;kH)_YUG1YWhCSnnzLnVj@rh8r`B_x zBtS*jSxUAaAnmO<<2)ZbAQntS*!m6XBjo=qiFP84=ynBB09H9en^(Mc# ze|P)%_Wb5zxxCoz#&O{>wGwFpANT=TV(Fs5={2PP!kjcbc~YE&brI1>uHvL zy=Yqh*MI$2RbOyODeYd~wChHG`~C0Veb}zLMa$fvqBMzIpmuR}=4(x}oUN`O-|v3= z*WW%oJ-)ktB94n?+pQNqG)UkGBdS+%M%Ytn2x>+!P$a@dpwWtp<~)>HO3kH6R{8YP z=T_~fKm4RB6kNAh?8j-<(5E+7zxw2A9;d(k%isR=&9~>zp8fNG@n{`QTQ+Q#$Nhm3QFt5%v*M%M zTrL?~Wn8Q~j-7exR{dhNCU8=wcf0Mlp9x8$^i9yJ!){JNuGX6<2-n{wHx9jtZ&6M)p{Q-d6HU@`Sq-vgri9O1k zp^B=gQ3V0h?RI`R9+?@WI@}Y1^Ik8yuBa>U=7$ft@BD6b-eIN44iq#Vg^J+qI?>rG6r&`Rx=dTY8KI(X)YF{ z_Xwp5Ac7PFF+&CfgQ6m;2q3Cz8e;>Bxg^Uc-XoxzX+8065!ot9HIX{!I?pwWo-C}f zZG#Wa`?igJ8v>vwVlYMk^h|_+M2^S-p?BU?vs4J|Ef8vO$TQ6;89_?(kgA9V->h1n zj8oRejDf0(7?SH^jJamhx_#K!qAJMCzUdmX3J78b)kxHeNiM}owOXo(2|6e_k7W`I z^DN_>#IUF!84?+Sf_=Duza6JpYLSX+fJWYV_MUx=aoP8toT?!L3XVf!W|he~hs4{* zZ3xl1I88}D@(@W>PhRt?;vIYT6^eJvjB}ZT_hulf8Ek(T5NR2L8hRo?tX54C5KdAZ zRWJe~1`tJqkG7jrS(XIVRBBD9j~ODIs%(fS91p1|0*PcJH84|PW>qoKlb>8o5dF!V z&P1i;!3OW0n3PfxFa!h+Dk4P;7|@JCRZ-PB$DY|!nrBeaim>qGRuRseL)5X5S! zzJW#4x++zxIU+TvwJ~eKypJ`styvMNAmr6KO5^nA$M?z@toB&5BO_b{?_9*b-Ml<+ z7_`i;dIUtRv{_v`E~rN=rO4BE-owZ>IyxQKo#w1!80#tFbGUsJNs6}FEb82h$DyPo zFlU#Iaq(i)5zDL(`}zKutMakf4B%Z$EY(FPsunbh!%n zz)`UH0IckzhXy7~&{93?8Z6qPOSM>?LegSdjQe$5I6x5QuqT5GNCqxYP0sVVuS zkVQ?I;N|nH3RKh=W3>XnoeRVE`2OjUYg#q&5_$XM?Kcbe$<^Xn3oV&eAz%k8mIVNm z=fm;o?l7yH7lU7P4yf!c=WLFB^vZDk_jEkUKKZDtRo5=r6_7*OKit*i z5W47y03y4l^Dcr1n5SX8-CKq19J#hxxNR8{%f%6mIYL-iJ1J-gRw^=j+vawahgij^lA2|LX7lFbz}aFTCr)n3aQb zUE9w^P2%SA*)TthQvq=DtSUz!$3ho_u&p<5y5Y4{22LZ_zU ztf2et_uKn#o?kauK11ICnCG}!F0yXct99$H`bz?+6(#~guw3Weq>Z-4jAk6NW|*K;n%@wiwnmK~QekyM_iCO!W8s_pY||Lr|Jd^ju6VOzBhHAR*2 zxaVW@&%d~NdYZrc?z`2mzn-Vz!`nA`F5{fri>^Cch3F+sQf41~-**ueN}@=)mC z|Lu1_e$%z-y0>&F`B)Dh-uH@M{^mEUi?hRF*zJdOH8d?CmE&RZ0FS$SjkH>?KKty| z=U;r`&>wbNfFfeM-IQwGEH}l^IcFr7s!*Al$WV3OPvjs~Du-dtnxs^&%9V|}zJXOw z)6kg4wx#I3^UixhI+5)N8Sv!WV|L__0nr8C?VcVUb|u%U^xyp7{tBE6p3Xn{A~Tjc zn`+^1Ypm0rk%z-v5dYaz{sj{iE}^Xj=7U)iq_-Z-02$FUtn%A_mV|>xf{>w&TSLk(qSS#ij{> zBd@!#T&60W2>3=$Sp)~nZgYJpa{*8wbRnPv5k>GP4v8o7E{LAImLDM?rs#uHC&HZ?U+15yS)g)u;Zkkk|bk*Lav4MKc^uYG)2tYSzgDh8lp zaQc5}2q;xf^;r`HKx80CRumKwP)b#WQnePpD?0(f?w zkQ@`Usu8mps%h|^iE=G~L_UxqkVo=9w$7X+Ej0JUu1W?s0i>2iv;&$-7R0V?MPb2h zh%wi>6uW=eIfI*S0ces78lYOr0!6V}s+zSJfQU-2MIj|Qjz?7xgKVaz#I95wr}TK( zJq}xC7BL`X=S)Oul_KIL)qEHa=j*d&zd*xUD*<$^7m=K+h#(LmiX>2C?}H05#CaMG z039%(BX=@P#TZ1Yh?%ooD=~Or&@!hS*+Vsh%FF<}>5RH3pXH8^E#P)t=%ngDkG#CSZBX=*J1MohJqQ*K_>M3kIECU&mmT*gdDWN1af zAcL8hBQg*mMIr!TL&uy@oOfOH(|#UG{jfU@eg7B#>3{O_>n}e0{Q8&Y7a>)wv-3R9 za|q#Lv94qNIlV5yU92uEXlw$A?DvNvQbZrNhxq{f@|EZz7<_(xx%;dfJ(NiNX)1Z7BS{593%brc93{Z7E=*VNmW0m01*oc{#$vJhdC{|%6Y8R`9e9_!27kz9z z(s4N6&1reQT)kXXP_MdVLMdrZrKadTGn!%S9EcN5j8IKbz&WUF#u~lrn}C$d0bZ>7 z0D&hP_KDB>o6oP=u+3DTw&ZGHqv!4F)%xnX|NPU{4aL4z5=;9LbBR7=hZW)MYSpyO zetW2Uv?)PFC37M6>xE-4)lw=BY0HvPecJQRU`qI z$6SQwF_(yO*^DU<^WD#PANr{6qG=XwtO>7& z@7}+=+m6CsdV@w^ezJLa6?&Lm4g`%qU$%l&Wqf?v!PNCYO(`;mQncz&WiB~YowO{a z=y)jG-89YOSP_Q1`GD4XJ`t%(Q7NqCn5s?XaQjGs7MJeAF~)#UYng7}d?=4~+bvVS z#6X5PN%b>Ug2O1{TVe>*m_zNj7xk?yIysBPDeH0Cy?N~_;lKQ^|BJEI*B`crsr>Nc zYv-HTZ2*Z~OAZdlQA%M7qDth*X>4MxWjG$*e}Kn_$5hJm=g)>=czC!EJ|6e;i|5y` zfB1R#_;`J`K3}!o@w1D?kFVc8JU*`1tH|(l`#!SsjaMCP{f7t#Ag!@v6K%fPl9_Lba=^H2Cd zObbvXz`pf4PnFfdER+jZHAks&>>=v*?y-&!?kdjP`|;`B`sPzl3IGV=Y}EWX?BABd zI}3Xbk%8yKLp?m$LahskEfBhrzy&}TU31=cwqCC;R&Cb<5IhUL|6%_)Ec!mgg|Qcd ze%ZdiegAjget&s!sbhWk+n+XF_tTs2pSIhk=`nICLq*J{xf}sG59#fUc{o`MKYDnAh$Wqp4ZQrj`nlw#-1zW(1T7l3+w9YZVbI4vJbKm8D*FH?LD{}JbXau!@!bz2>eb6vXD@G7%Vys1zWu|)W)Xk+i&x7w zq;X1fzPh;fi}gSIC%-Bw-TwH^_WkShym|HMrEB}+`|-E8?`|KD%k$>qX7%pf+i$-4 zVRO;{hyUVN=W8cp{_xY=Z-4u?eR1>btDEKG>}q-L0hT2}<^5p<)5XP#`i>BbK`B~u zO>-90CbCLRGx@g7$MLLh1H#3o6M$N5N;9evFWI@S=>UKX8y^;Z8=D{qh6qxbk;#=* z4#U7MwB6#Zj`>#J-aS02hBl~45>9oeY7PL* z{&>VD#&|VM(_#_3K#gNU8`EsNrzw?V8di($<@1*>E?@rY^DqDK`)|Mf`)|@%m}rM4 zAZTciGt5lT}cto`d5D=r0SykppYO|Q&M>rrbfuWiB5D*X))KJY( z)lTp~gpUt?iWm?D_c3rmhNzlEtkghG(GWgD!Vw4%$)M(HWLm|l0-9A-EvGbwRLDt7 zF*OGBRcfyFFb{n=TXYNWoe#cm+r~Lp#ZdrNcI3QQK?OWr{S?$wKq5hip{ccsL+3)B zXCR_doArkKML(zEa7a@ca%}|EaZzcRQuV2*3r@_49ilR^)T+5`_j@90`o|hX5D*1RgYOPFW)l$u17=uSg00dx2{zO1>(N(FBAD-r8Izawm zc>1sZH~+QLd~+j-RUsByWLJwZ#?@&^nn@qtT{vCQtN87 z_PlDGBc0?pZ*T8dv2R*pzdAeL4Z}F*#d`VG=U?8O#WmBIQd?=`+J|>fZ{IvLtN85s ztf0~Nom(`%C!*6AlyYgRv=v%r^U+aw@%-`^zxc$`%#TkG<>4@ur^hWnM?PPemC#_f z;LY`_=@%uZad+Gvwmo(jL8P_|?sAJz`(@)BpHiNuH0DH};%XHetR5_yZ`rY9rU)mg znpBX@&4yhwOtTfqhhagmSoS1v_wX=G!}vbu+FhM5qxa;UnL4om1l6KgF#u%8K9@1& zqE$^RiYihTDJB#=bqj^$yVl2rXz{+6;E53dQ8*`6v^vzP&~MhTb`kiRJX0V~h_8A?b<&RN2E0@&Kg5Bn)Wiq&Vmc zDOd51#&IsD7D6!%ebbk6pYr4D4>r2O%}jQ->^4{H4yYNi-c3|%g<@7N7yb2O5mH80 zW_FPdUZKAG#bZ&V?p86$xq$Ne!MriyN%G>5ogWK~VW zeH8goD(9I*+lp%|JG_N!)`M`mJ14o+tP1JA^s z)EE`DRt(OFifGDJx%XX*T#eCp^z!m*eZBx47Hv3RpOrbKVRD96E0{?Y5d~y197`nw zM?skq>R7Tv97_=^(+m%{|_Oo%bmc?3zzO$ES z5k|=4jHc`f(wGMFDix()cjrC~AtIntoHP&9h|ETiRb3MsX452DF3(n3Cd(;0?So*Buaeg8$$zzFw}{VSfat0c6!gWtzq@jROb2TyEw(<&=EWRVyA@wG#7Z&tJfa z^o4pj4&yNR&X+uIR?ROzd-2_OZ|*>dbvp}^xnN|D4IIdc?4wXoE2dP? z9x27R@D(<5bgxSSoVmj!kpP+q;KN(;n0Kuz%_tOWNOl|3eqN5Wg?~ zFi-p7hKppDvSf)EJ9hG3#S1JvN?Jf z?svOw+rehlqxauGj_|P4oTzJNw2Yc%h60*%CBhIb*YE!NcgtUXeieeg`FZ~N4ICc4 zUw!fHQ^@xBkGt#j)vtc}!Z-fmaXTD$(62&6w%KGE*=a|deUKu{7 zsMdm18bk+CC6|;ODU|$lcRStQ^=;cXe!W<%)-HDL$De-w?O*)^#m(n0J`ero@%CXn z9NMP!Z4ADd4)yMbxA%7k4B`CQv&CjH<@xsZ?#Ca0%=xU&pDdnTlri7^_~z;T zGHRmxyLYcU#SN0HSxmcCU$NNn13*9*a? zzRZ%2^DIyhLA6e4JkBYPhhZ-&(Fey)1XC)A5*#b2s#STHYv~qvb`j4P;n~${)wR3r z@czwKIEHRzWXT2;3%+p#h?F+fAY(l&71F^ zzWbY>hSjB2+3xp-c>Vmk>*KrIC#?Bc>Hu)jdu-ev-n{pOpFO)qfxFx7*=Buny~>Bf z{==ajQ<=rLE5ABBm_3Z+`Nifd_p8{txatlmmozpMuw5-e=R(W7UC~sNR5_weRt_fT z5t~!QU&{QXds?{VRexwXdVXx;rR0(zQ4U6$VVm1mZ$MxDugiCnqcnNohVJa zamrIUOf?h(vvHbba(x3>a!Dv^Qj=tEd~vE(AfO5iI=XegT&zUOZoA)(!<^^pZL?Vv z&NXGWeEn>-*_<8j4ts{ySUq}nBvq!dCMiN6m$(l4F@Kd$(RJT%ihXWjLpVI-FwWY|5W-606@9wwnZ=d!xAMXs;vGtA+1v3e_N>0#_&4|#55S0)?jlD8e zN??izXpH|=KO zqeH2sALA0Q0qPS!2>W6oO}wzrR1alK$Ht2sN>m8 z30mjG#(%NJJ$73}6u|MWN8 z!_L&!i}UXeZ}R{RcRzps{&Ic(%U?WStQY_8-~G+|pWppw|JgtP^FRI#5dP(F|L$+! zzUyO4_z|b%d{8qqb&ivjlIPVbnBtGG-z2lcI2@+IA4A`U-E{bB@pT9-GYaY7e*1%4 ze-^pP<4EY$h&@>`&6UY(g?XGk1pvr}#Bg z)s%+qahg*m1l5eD!)`y3e|X%Brd;N>ZC}28etY|ve)r=%-hJ}rXMWMaba?Z_U%&bG z_eik1eEx6Vzj=RuADyp-boW?>_pu3w$ERUe7GJE9+Hw0p$j;>{eJJBYz%wj$`~L0Y z?h#bh*VpUwRhi2E?(N;f6TzczI%e0!@b_yU;HG&5wOXG1KpBJ0MzS$qPqFMw}o(;hHh=#0;#1*grXBDqAir)Ub_koYYaT>P&i$DGP)8~CU z?$R(_tlFCW@oopCZ3D#Q*yllSUR-5R&bdWQ+x=npczM}ezPOw#%-NjxqIEcoO>o=y z_buU{{pM3qH)>hBg|Zrsy~maF5j|^Aqx1CwsJwgpS>BF|ruBqW`D%IDGW`4B{eK^J z#LiuZ(jV1f4cgasSM+7u20(oR}B@}ELqOQ zKK<-!eNM-_-Qg+SKkWB&YL@N!^}_PZ$4O;sFS@gfFqcX=2gi&~P1`=$vc)Q>P=Jb< zN0^@W-~Rpg|M1NZ`&0_Di|goo8|z{jePm;8n#On7yYkhaeEIb+e$hH^8Mn9hfB(Dh zhS|7lA%T^maEm2e){pvcDJ94Y`0r>{K>DrTzz`g zC{Dv6TVeL(gr$4-Nq@FJYkgY|^Y4HEO+QHENmKDnL~_*XO7W;otaU|*+d%@KUpZxez=%)vBg*N^>eED5Z#&nsd%licUFAl8$K} za%%cT(<~f@CUncDTZG<&oQBRW1aiKZ0)V0BQh@#GOu|SWp_+K|p293uy$2;EG808~ zzV$J}auJ59nbMr{#xXGFT52t3C;IP4ka^0SvuMF#JRG-=PHPuJEqP8w6{o3|q)9Ys z5kf;0D*$SROHLJ#Lm1}qFdhK`kPrpPi0E{O?SeO>s!FF&2%xAqBK9szabOS(i5ydK z;er|`%q#$yE=b%c~Oge_u*;LwdcP) z-*0!CC3pv->#2q3Yc( zyIEkIjooZ%9tJGr+51IP9v=6@4xX=#3AU3U?Vt9G=*Hc&Pg)gs55ow>_Q&?_u#7QA zKc;#A;LQX?i*i+b79o7=~GO zP#i^)Y6WPVwB4#_GzTG|W++8SLK*TnREy@Cn)))$bL0Jb*^xANub+0iaY~gIv02CL zICwf=#6CJ5OWN&+?Q|GzOxBX6TDR|S7t4OpaZXj{NeUe2vb}qH_cZL)HRt`=RqN$A zA12^X*)`PxS`)p2i5Ze}%nH8L?9dVe*4j9)&J}ODWU1(_pKB-)dA-T^yK0=O9+S+a zMD=DkrfNVJS640sso7EMV@ok+lOzz3)k=XHyhC$YQn50m+ME*rOO=Pm{r!F3jdqY` z@4~F21tK|W;v9On43b8fQ{Ogy^en}TI4!eOX+kh{VwyycHty<_lIs_>2S|`SZ(V{bA@1F$#p5FWRsnf~h7a1LmAH77o;um3QQp=Z)?2{;5Wj zg~Dw)aE#0IaK7@pG`fZ_E-naZ8of#_^K?Aqz+Mr#Yd^iYxww8Qg7^9+0uxA?rfPE9 zz5=sEc%0{#%d<~D{k#R*9dVvTeZ*E4&(GZJx7#WEY#uFCK_o$EyZvF+xv#!{1#&Ndfcef7oSYF!|2@6%=xuq=zt#0}_HZ~dl6NdtocHWPl2R4a0*5w}%g{d@ zpMHM*{)_9)aWD6;KRn#u{o$K8W$u^j^T&BPJ8ahdaM=H=fAbGr{NbaE#CWm#^$j^tTQPPRZ%sjAS#=z^zkc5&tqZ(qM#w4D!b zdnerWH_tA+;GBclw57~%KO6u!gf2EwRJ9fdL{haRK_VssGDT)CWf~82ar)VdtMjEB zd7RTQw&}BrAD3SWy)1oQ)6LpMHG%>5ET>T>s7A zeE00Lm!JKUXRRbDxsCmhb#u<-z-qqk`_{9`{8k)@K=BIi|@Ys`TzR= z{P&-H_VSPZ!+%z$lJj)2a^1xyP38EoU2Znc(KJuz=Vw>fH#eKj*&@Jne0=>zj-^F^ zzFwu#?r!fphc~Y-Kl|$Q)&2OmeO#^=mjOa>n?(<1Km2?*3}XO$d3`;`^w)2G|8(~t z-rC-sEyBx-#dh5N&9^^&c;8>#ocXRH;N9-&upLamck%4yRi}8k+dbtvr2OfN%jcJy zd4IOsJ{;daoSiMsE;p@nZG!+h&B=%6*T4C^ZQSwh_IwpyEP8ZN>r9?se165`QZ8@r z?iMcm(J#K(^qW+~J1qUX^zL0vh=@lqhn`j&+zqC}WK3udIv+gvX%@tm42Jzvmh6KY z(=<=FUF`7oA@+XrzWeOvljrA`hIpLPFipY3&DHX=SI@q9ekN(W-415bt{QOBNPX|q zVK^KIUh3z+d6v@g&6~TMi>qbd)lyXz(7DKlW~v?=A`(N>3LpeTNK#ewL`balbWcS_ z%vuc$(Gde0kpY4kI+9YE85qe0Ndh+Xz7QvV5L-6dCQV7-pDW&&fR5Mr9ERy842Gi0@zOI9>6_UObg`hZ}EX*eE_VoJe_ ziJ9U@do4QWnNJ$>>YWEfQ+19VIcD~R!MWf)5`iip#2AsthX`sXU_YuMz{d$27!jG8 zi2|{6EGjAr0M4`2OvoHVt*KUJsfxl0V)Vo)R*!QH$bbeQr!z#AjNpj_u`flk%*6yw z6h{ITtF@Ym5ecAo4m_(C06X=LPh8HbACvSs=caAgxl&4u4IqjLh}2xPh=CQW!#w4b zsU+_mIS!{c+BdQ3CClOQk;r@>A9iEt7hnJCt5qLrNp+u^>YkmiyFRvD$k)prJPMUL z?YF6IKKbnWYSAC|hoz^^BU&b?%+f?;GpxkmhN2&=e)^}s{PNeIwaUkLcR&90ZWf)K zCXb)Lxa?OEWsV*i#)WCJ6mpvH({%9EHt4C;>Is^_p}KUxHD+Fgd7LlK7whxYxO;f8 z$%`(o&SP`L<^bX{ATSpoQZ{lzUMRq#Td#a2*HB!y3t!A|o@A&3ZS2p^E`5w#gsXDO z9!SQi?j~;*&3Or&GpD+A?u!@C-tBkG>+@&l&+<@)FeBQ=N2uj|wYWH2_{M_)2slS1 za7=p@YWr?^dFHzIkTs=BB3df3`G8OgsR089orelW9{l!hdoSbVCs*0TH8C!izHd3% za=kJ|@ALriX*W$cEUMpi#BGQQlIQubd))3b$JN=QYh${9S~=>M>uDMf`(gid%vF*J zorjAyZkB%8A=Zh9*(?tuj}d*(Bv^{6oiaVdOaN*sis%?oRjPuc#<-%>hk3Z+yyqT3* znN?lYY_ixO2uYLxu|3u zfGQUhRa5TJ-6wc^eO={(P6b3%st`PqS7>~LhP(L;K5r)i?1GmRbFNxvMRLitt3`Qh zB2hiC_db<0^gR_xWId?!+En#oKI!}6-EuQIY@CB=iBziEee(3Ap3R~&@w_-a)W!V5 zE@K~kT`gu4l&ERr6*hfJ$XK@p9ht+TIf?}z9VAMgsWu8g$Rwa?7%PpgN<^7Zib-&e zi27Z>yj^W}v6)S$(~0gzCsHG2bf7@NS6wq(%!8}?aWF(83|P5}`xuLwAhB~Lr#!%9 zQU|DZtN!*wpSQ}MMpNl#&f0d|?1a<-?D-AOC>RFjv%|w~#)`@Ns$_iq`b|?cG3Kv+ z|9drD?ZywQp-Ijllj_lII+-_Z@O9O)cPZMN*LSbJyM6oimYrQL`|mDpe*f!V-`s5u z508{6rKF;s(E&0!6C6`S#)IR<`}_Nw<+7W$Cuc{k4`nQj>WtgTG?rAg{*Qk0NoahQ zl+u`banJ+~f!NggVMRWWqbOO4#tb>h_2u&Ok3RnFqvvm4zZ+9}cyx3y@6>d;T#rMN z0_*#2J82(0c=YP^+izdK>n07FI;L3Ca=i|rLc=2E^!&K*)2>h7eDmGIrw@MoCqMOB zcgvfr@7~`pR|Yel&UO&WXaezRasc-5J%kA#sX6h@Dq897A3XZ>d zJ9bsOPF+S$PWmN0-r)SeZ+6Lrx)ec&b=49zwVxMRsfmd)IRrH0)!psc!}I_4|Nei% z4FC4u{@c~+9?+1?RI>(ghjwNzZ&ph}dCL{!n|F78)T75|DtX-H zp-61)Q(arzx>tjclW#L^lZ`8 zjuHec+x7MJ<#ak@!&x^yTFhPBmfhyf>(^ttx3q%psPZ-FSW%d=yWZXS+HsgFdh-6s z`K;-DEdL!TMe7Mx*x|R{VML(@%HtuX80Vn!81uzetoInV47trPVRM+ z6;T6HggqG&jqrN~#2z{cuvf?wK`UTp2^0WQ&Lzgcj?fHLRKUo7wl+8?` zIOjNuf)PSpwK?~tj9F1lQZA}m*LA2WB5J$33JwuKGkG!~CNfY%VB&pfJd2+^-txs7LlL#e-&1YrJ}Q{rbcGU7wZ>O+P+AeDeIb_2u@;b{k)DrtGL3 zP<3(Nf7lH+OU-QNg0Fo!Jf4>n-{0=Wp`@HsMUNiMpFKQvXr1%SzRxyp)@M*6y7e}$ zSL?uj(skE&*N{ry-T&_QzdV^8SfuLkOwo#}MX*tG>^BU6;b1oBA~D9a-KBoKz3bPT z9sqC3RlSZuj3jmQHk*tw&kQ}e>;Yn&)~*g-0J^#Xgvtj~Bu|b>H?dBBq^dfcPLAfT zshbQIQw`vnRLd0-Yb)0s%KsxkWag<1XN!I zM&4|rm2xtxr$-It0l?o6DQL_E$CPrKnMVwiG^=H-ebY_r;Od%djb-Rbv?8y@gW?!9 zINBTE$*|;PDUk#3n0U`vGGjDA=di76)-VqDxJv{kgOsdnuC5v#ODVt$m(+}?7!FyC z(M>1O^SIh>)+5wi*G{Nyq&q~_vN!BH2yRk&?;RSXW*#0Qb;SkR)+u;(sq2Vqugazz zkja%anvG_h*$=9NNsSJ@nW{r?ViAq_Vo(_0z*JpPaO=owZ8pJ=Ik} zNLfL_MekxsM(hKxV|IYG4-}0EwXMOUPb5PQV>X7_;nYnhyuto<_7*e>)FR`UVlE9jA-9WTKs`G>bjOE6poRsYtGS&`56o^ZZV!$RnozCZ zeYji4i|z1+@>tSl*SqcRYS=OYDp^xChhaKz7|cYoj8fEq)3Vsm=V2uhqecS?T<1-? zxW9e%`VzodcX{%#cvM5QqKpoJp^&IuykCbVN=_-|Xc+}0YXK~xW6b0-)&$socypU~ zSjN1%-Ly?5?flJ$tKFb(wYq6)IGWA2_fcc)np%<_PP)aS{-6J+|213gCY9e$ouj_` z_UrrQUCF}Uo58GYyJ?Gr!Qk|8w&<$k!$UH6zuu%`yKTC@UddpnFH5@su`z=Rd~-FCe==$^lLWUt=jTrFmkz?4%WX8_!FVbw3cyLwyK z6$MbqtX3H*qoO%%w1{Y)GzZ{OO^3J}QyHRecH`~!{e%DPg8WN^l zVw^SAqQ)?X;Ou5whB2W7%|l{jUuQ8)F zTpS(NQ(KMc!*>^BiYKSXho{H$qi)){ig0^#ZQ16t!%dRQtGg%#$wI}SJ$n+IhjEx5 zOpBpU@o-wt8vo|i+sQO6rjrkstLg4#)g9ko++x?BVId^S}7#lC-3nZ0MC zy)73IkjZIC6p;i}P)!ZY?`IjN zXl9CP$cThQfJjKC2(u?*6=m|CgApRSPy;(8=Ur7>Q3VnMB3C0qEecjlRcl{`rtVzu zp{WZM%;JcZ!*a8!9?bsa&wu#nsPcIP17(fARP*}5!^KIStC*DJ8+!if6VF^sH@iM> z*935WHaE09ZkTX3aecoWQY?4Fs5`4-J;64Zhv>E=Z3VYUQxu>{2=lh7Y-A~l7Dymx z)6}_u7{@`-5d^3mSk$YV=*&@l;2@3CAI!SLD#*B+OuFE!V$4LlCBh5#@0l#x#nmfuZxEZXDm<-Ic4$ zN!K=A_3HL&EEx&L5)q3!G||KA1fAtHMj3o)fWg=h6u_Y>^_%3?>%@g z=3L1#Vp1Iy6=F_v2oYuRGbTmO^LZ~4vt*tnyRTBnT{JviK<|Y&nZPU zLo@RE$?5yecxlD zdH4A7*}>7=uRtWX+2VTp?%hoxbOp9=m-%+nfKnAAQB9yGIcrq~L>p~{M!P8bmPbojy69Ov`2ks!CW4Jt3wzZu>ZjAoe9jP0g%! zj$)rIn``U!CU?8y4Yy;ikx6h*_DIEI8Mp73YIeAonPSc&g5HM$x=jNWQx!ClLa*Om z#T-?oVVeVkYlf`u;nYoL)6EX9-rnA?*6nQWL-+W+`+xqo|JB>K@Bh31?*BVq%#7SH zjwh$bC&$MI*@gP(@M!3_R`U7D$-%*lO=oS>RN?k^`R?s|OR5=BN*-6carn{ci{r)o z{j00<;|Ghny}7&`b5bp4Acl;R#<8e(Nf@4(Ynms| zj(1#`%nke;5byS>1ssS^sD)_o6Wkh-~ETb{Hux?2qu$Ga?VA- zAOx?90?LNl%@z+iW{=P3v+lRQSza$Ur>Bdj4-P;6^dU*y-7i19y{WzX z<*PSezI^xNpZ$1oFmK4xZsP!#DP=JiYCssqp_DSIx-NKD&N5KdJbd~D6}gCvTOEew z_4Rj`%kJrmxQ(OR9k-LoK^w>Zs}ENnZZ{Qi4Bccp{p0hqK_gIV3Ap51$+y$5-@pI) z>$k^GKh17(-|N!TVasx}j&H9z4nO`E|5@Mse*ES`H#=-YH>o>>>bo}=W553Bqmz@v z!@TKxi#P9Yu9m}?!|CIPD@nP*^T#Le-(PCm^^m_vfATMW_UOU$Fl^WFE?=!y*XyC%X zzIu1_ZQ49|az1fza58_^P1x5rt96d56Q3j3shiOBckjQxzq@_-@MOB^>ZU$BJ-oWQ zd;R5ijgq;r-SxQMK74fi;lp-0>f^^JvqoBPRf%a6TkIglH*9SXlE9KYu(wdo-$TcQM9#7;+I|BsF;RyKgIBH(h;jG_&B6Y*)**W|_}w zSBEArV~)9m;0lse?!_0M?)vhF-+o6knsuF}Y+8iLG$SN6^Ufgw04VMuF>I(r><}0d z0Vp6NTiJV4ftZNNR1wUK*Z~5I$@hR6cD7f)7?P2Rs$~R1Kx8C^k}`RRU})f-(^AaT zc?Q`-zRkdjnwd@~6CxaTLoPz>v`CH_5W&`9fSL{|p{WDVy@j?w!eRhS{JpjWV6XYn1P0=n)J#=VjsU<& zT8gRe$JvCKhCxeqOkm`IV<`#-2*l1xAu_;1RGb4r5EVr(QsOvDp}myeI}ZTl6xbU8 z2T#r;0RlPlhz1VPv9V(UW)@M$4iVIpkP)%+PDP2(JMY*5g6;w9h#>?*6i_e&Gh}q^ zr9=eS^E&qpl=m*DTuLd-9vRGXF3wk^Y(@KiD5ZGzOoYVyN+?Mo$A(Z;fml_G6a*3# zF=IzSWI|vfB7y*nNSIX|l6S6@EU-7J?&++19y~}9U~21HO^_hv9Q)A)-*s(?#T1x0 zrUA{GX#7!X!#j90RLn`guKYnyHnNIGOOAk=j zooA3#K(q>0`K}aU=L|U)1+dC{6WfhZxzd@J>t*e&bJ;dm1Ni=Cvsr(zFwAF1&D230 zZr^@~th!y2jQv`u5QvOrE0(Gn$1-RkFefNiw|A2;dGPVW%H#6tV%)7s8<1Tp`o>+1y!q^X*sUWj0;Jx(3Jh_p5OnPmW29 zK*9EOgq()mT|aJcY_h~kTW{W>qhP8gBt}BaR7iw5_&yD#NCp`xHQYeN-Fj%D>W9Ks z@+Ou+tvE5_31AT!MFt@YVAXnCN{zENwA0X1wO(($;RMLJZoL}06m^^ly_pjcf>Bik z2`g0)F*PA1=h^$J2_X(~xxU?OGf;5}!=!TTg5x@bG3wpTDruT_^`x5?gCVf*f}d6x z2XH*bG{(_6L{pV4B^g<94w@!`Awbjkl3?N|T{rXQv48_)CNu!XB3v>X_$Wx@C>2e* zSv}?Ie)K$Q(OqxFoFmb#-flM`)U{{Kxx}$CoU-E*tw>wpNaK3DKD0%K)V1~MX5;?ZAANdrx3;u7JL1E|K|P%+`H#+~Pfxn#jbE=e zMn0L{T;JZ^Z=XGR0LAAxdzPxqzkH7xfS0Tmd*^Uk; z&X55nlTZvp9e^#B{QB)>PUCL3ZkpgVAjo+>;CZQaCrM}c@@W1s+w^1^6PKk zewZx|KmYj2<*NVHm%p3LJ6Cy$#YDU#?+}6;QY3>S>b!sY{K>a3-=-KZK3snF&D)r5 zGHJ}VA|*-Q<*3{B^}2ViJ~Vy&(b4p{wZW#7lgsy4m+vp)Sb*x)4&QC03G>VTGBEt? z$6s8n*5AIn$Wh z9L-mo?ba~u`px~#=$ggB(I=n2$iUP2(ZS*XO1gS;vD(}cDp9bct@CRt@7}+Df1k#x zeYX50G?kQLIt{Aj%Rjs(=FdO<0U;gC>TTAdbaH$Mm4Ef}^20Y*pZ)ZtH|(uct?RnU zpoEN##q)=!Z!bPHi*Bpqm*2c=+xhbsKX8pdJ~?!?JM3nR61@hyzrr&)w{Thc_%Q0&Q*rFU#}EyZ2oWG6C<34n7zz>qftnJNnH3d7^u&&XiWCt< zbmV~{my8AkxSykYW&smbRF#})Z&@`fDcb%;_5@%Bl_FvYjO0qmdnYBBm=r|>A}}#C zF=0eBC}L79=Sbw+rVGI}bu*uIlO}jo2Zjj5h)iIhW(Y>ageVAPASMohfK^r1OtPUe zlbR(o5iO+<0vLEts$gb}=)4yZGuyW-q6NvCx)G5y4*L`;1OkISucj0sA_$C#i*{xv zF{f%VT`o5ViXbaK2#x$8cQyYnfA&dV7~{s(G;s`4r1cAL16(ZcLX%J1s_WB$|B0?|& z#|Q|jB_$(7Ds>2CHtc$Iu6AAuvQ$KMWx_;6q(lfj=2!zetJWy5hWpdcp8olt|Izbj zr@HFn*uy$;9_xuO9(FnABteLs->>*Fskp>}ksKhUTtqE6Uqn>^$+t6S;40_q+CO}J zM7G(ch;f&6>pJdEs_C@ZrrpgqzaMHoKAbRV-VKd7R}nApkSgk6t0rD6)7pjW_4?)g z{mDni=cmW{=5}|#+p!?I&E0))qxTV9?OIn^;|++JnuZWvHfN+I0n>y^X@G*kE^RJv zb<|s~do}WPLyeS@)EiAXxRZm$v?I`66R<++To)ru(LUVV(PmRWJb3uxsB_?Rj`y40 z&HBUg*M)HeYU*%%u?e990|sbaMR&XHX0;o){gx-?VW3IL2{Snbg1t6D)RY2)<&qK< zwWykfz@?#&R1Vrx$CLZ}G1Ay5a5e%YW_D}=lQAOal0gxLiqg73^c1?8^UWknO>D?_ z_jd+H1SsZ^p%hdGroA)1P(kLRf|A=%RctQcn2bEslM0v%Sps%G)OGDRY?iCb+ns^c z)g)H!(z`_Lz){PY3pgZp>s_2OO63(RR0mNJjSNj8#>4`mY9&I+WEB}06%{}uWFo}M zlVwW7olLmnv@lLQ7u(l9fzY7v#3f@6^&!h>^5aI1Mggpsg&HdEqlkr0ETFe zh=U_`lJnJ9-wjvSJ_IE6ffvoBF20u-7S*J#pVsq9uQ9D$Z^I^C_rvw37ZWX-Vktue zu~PCdtceYg4arD7JG|6F#ZCQW(ODIQP}Ju0X*-?wj0Ln3Wb@<#xk@$1P>^GwTG*SE z+B_?bX;{m+Rb9ohhLILD;~Me^aXdPl9n5@Ex6P1>DHu^2VxizF4tXn@avw{dqNr>J z8O981{bo0eqnc%vFsZA60cG4JGYEkzM~Db$o=d;Gch6p&KYIF50TscqCr?=f#}bEe zyW36=r_+P!i%(y?c>1uULI$32x7lVLKl5GS!a~{&=ySv+)dslT?AZn`=3GD|kM8K`a2Us` zc8oCeJrN?Sh?KM+`Y?M=GD5*31xT5kfdHi28%Y_ud6$y!x})XY>i_dU{N;4wCHC{9 z`Okj(;?eo+=$*w$xa)VGT>>WNZaPhIB*n?3F~ngQCtZ7deDa&$eRp%Uee`H{d~(>$ zr%h9>SKGV0yLNH7E79A;)ON$rkCE&4kAC=ZKbGHp z`{v^KICP7zzkdDZ{rl%n9(?iQ`SYho{pg2L6sVNJd-vJLPfFfymiM#8EI9Y%kDmRx zmDlg?`^&dO(zM&Pv+mjHB0T6ILFLM#)rZH`bmmottLw`glW4By?QYxGB`e`D#L0Ym z-ZEGC_T77DS~>UX+jsYO%SqRL{`p6reg5(F)h(uimTlaWzTe%;db^rWo5O>}AO7(2 z?*86V?wa=e$s^~(+iza|>bJi+J3s!@fButx*)MO_OfZ&QA>3Z}uD1;J$@#P4@|K`` z`S$+J<$VLxnH^3#rD>St!-r=>lJ&5C`|f7iRkPXQ*)f;x?4Yf7+wrSkf3sX(s;`6{ z5ZA#yd~kBT*{fOCt3<&dtveO>bS`Nzi#*Z$(m-@kfuWo`TeRE~YVCq0Mbfd0CkpSB*)$zgd@@Hg!EaoYfQG z->h+ze*hCf?7seIKl{tg?%UU|k53PqX`SLO5Y-xrB=ksxDJ5b8#|Ef?ga8DFsw!#- zut!Y;A|ePF0y$G900vYwBOoLO7Aca2$+2^$y2q86D&QV435YBu8X$O-A_QQBh!kTa zqCIxpGpoU7w?Q?>&N&aFz|81UDPU#hZnLSHw{e74vdQoE`GgpzX+ z>6+RAV@h?X5K$4>I~7rdoW-Q5s;`2PF|&7^N+|-Wx;MNM5*QKDo>LA0!Fv$_6*G0r zhOloZd=&zRlt-1Q85}V(f;-h(qGwRe_xYBvr^IdgrPtFf$Mk?17S+MKC2|a?T-ws)>r35@9hh1td}f#}183 z(S4w;C}}RrAYcTDM1ThWvDnwWIeC9TB0J{@2?PubAcU%^o18O%Id;MOQY^>fIfx`F zqGp85-m|BG4hU|>n{dAP@n8Jp(@!7Hn1tZ)!GUz+>sO;I=*8G9h_YBI5g4%ItO`mX z&N*MC6jcEP6H_&_;9T3byH$1ufve-ggY3(&vgVlkUK)|b%$=W3N~*4}uMe8(Np}E6 zi%lrosIi{tgM)6h9WOU)uF1w6REONZ`f$0qz8~lFVVAFNws~{6qm)bPn%R@5&ysKJ zgI)0=JPjBuqeo`Tb=QbA$oAD$d6xVn6E|9ZLRt__~AKV0;yQH;nr7iu6z z<}@aarCCfLJviE|hv9lR4okwJX%6NKKeHUR+UId|b$26LpG{AnolZlz`NNx=^=>zo zL{LwLuN%)RV(RwNU;aY%VLqUU--RaLP!KrmGjG$R63EvZP!!U*V4)rb(uLU1OS zOWX~+z8`OvMo1VqIAR}!C`u|)K&_w&!}MsTV!o{kV(7 zq+J|QM{rG`WH6+$g=(`*zy0b0AbE$ATAIndfQdi^fF`IC6h#9P6;x``dtakRwUPx9 zr3eCQQ7Hv*p#Un9V~#nh+J0;b2&UGLqiz)tnB8WxdH3!;Ao%NW92x-*ykQA4iz!6DKPnL zRMeFB-+oXLE5(4xk%8r1c84CEBSJOG0z-18I&6-?N$KdwYG&tZBpW^YhAPKM9fTSf zR2j)LlUg2R&|Ma|-ED@=x(?pR6)ahcVrB--BBa~C&xO1T{VoRYopQ$W`_cdFrQ6xj*e*<``Piq z_5JGQn~Tpro?3<7!TEth5uHsBpFgob{mBoT&Odo{`u_DhjqsQM+b^nVb@K2L5`}7k~D%-~Rd!FTZ(na{l1>;gi)ekE@%rv$NylYUp>vV8bRA0@u{1r^gST zo!@QO{FZ+F@u!Qf+ibSW`&G$3Yfih(gOkN4AD`a!{a^j<*S8mMgv>oU`q>|SMi!^8 zPRTY~*|E99gRj4S|C=wr5%cIO0aHWgy#n?zDnMILpsVYNRbJ-v4ueaWxN{27mz;AV z3rJ8PGmwKyA?yZmDNSaF`z>pVV&LlziRtR@?)~MZ6rIjyxoF?-+NSE-X{bV8ulsS_ zcf(?eL;`L-Zb|~G$p~UheJZOs?h-vXJ^tdSKX`QJp^S$I&42Rz;s5pzzu%5x(}P|G z*p1oL6<`6>`{l;@aD04h;J$nPA#~F}`Sg=+)|Q-G!*)6~urcjE{^arD(R|h4YZO+e ziJW+>up-*6Z_Xdj{vZF%f4Lm(fB5hI_3vI^2<4NLg;u0~yoUw`|?WQCHR zpS7QS^yu~Li`_+}E+i!mL?Znze^{>XSL>tGvrkS=l96Zhb-M#u-fcF^^$$M%=*M4t zbboj6WCTcY=#LJ4-`|fBW=HMpsJdBR+^sfJpz(ZmGJW=BesjNB539wzdv<<2#QgsC z)i@OAJv(=IxqS8RW-{qWz>J&u$!eYRE*U6Du7j&xVWLpmyDz^L!Bj+xYkc+UyZiaf zwWgeCd9&>5nJv2aS2x=Ni_?>5A3yu#`P1vy7ya;Zn}#UrLg#U65&<)-4*hmlr7`%d z4uE2eA1-dQcc1_HPpozqo85Aq7k*|vjANfmVFG5zB{yA|v|U@*_xH<}uim$h9&N5x zhx7dDC(ly9e7C&(NX|(7uYUDw!S>1XkGtvg53k^E)HciP}PL4bH15>`uW+- z<<-Ca%U=$0Jb(JUnyxE{sL+u6*&l!QpZs6{FaPVm{HQt3PBCt6#BPK>* zVkic{W~PRSsD@&yNM^eXL zV=&eIXa^8fkqA|bh=owY{&+VfMrH=n{qPn{tpEWip(e?>6a-Z$MWf`Rh|c+@Zo6(e z>)JXv(7mLaeIO<=!~F+w%-*Mz_TywG%37opEyX!jBHHH&0Z0)5^Uf6!GlTE3Ik*>e z*!Qgrec##uDHOte8j^shBZg{Efl6lJkoKE`lt%A8dq)bBDqw(;%t;1Hk?eHbQdF0hpZP z`n?xxW&)(8rc!cKHFY2afr@+)(NPg9!q6BA zFz=HgAvjRPqJ@bFS*7I7YS-T@#ALYbN7uHwG^pr~npt%?sa-pnX(^3sDkkaExY;7w zm}8$}m7P@q*b4XG^(t}GRCOEq?ncQ@^;%(!m;?N>lPJ6v0YZc z!)beWcm3uMzmNBKYjQekKl!9Nolj~AyPE;8Z)QC6q3SnzwM$fSH}yPm$=l8(fg?>E zdvhfZ<0_7+3f?Wc!?^;ms{!otcK!P1cICt8UpziKTDaX4=rV4TyI8?}$6fL4!#1jx%&M`@H+@TSG ztAax@MxT*;SIP4672vk5!5Y)3% zF);&)#?B04jyFSWs+tkz2kjVh!qTVBSaxAjojyJ8yxWM*yLK_@7>aX_h=9yBHRsd@ z?@%EN)|E(70aw)k3Yw*qp=8KnOyq(lNLhn}9%QR!rO09KeehJxd`)cNsdl~s(3rM1 zq+CFq3|0)^UvAP}nRMM`F_~8Nw2eU9J~V?= z2@$}+paDV^Evf*z2l-k7k)ozVq+p_2io`gofMOXnxe=UUN%~>AB!*%F#6CD|!h7I-xBw$C8l5N&!+}2@V_?2PXyw76=#$nhoc~=6KW$K!n;Yng;Cp=H^bpRUJ1zbe&bs3UJd9dl(7>yNl~#cza{2DW}jxoq1dyJ|W+m>(Se;x{j!f7<`} zi_f+XhTq;?UoTTKA%ywj_`9FK{M%oAJ1Es%^8Fd+f)i0iLSRZU zc>+asT-w$@dUkSj98ATu#BnPn*S-<(sieSFOgXAn&Y7mBasYXs2$SOI7>Nx~2?zj0 zlcDU*WL2o3Z6;moz3cmaz1d2UrtQ=~&5SiABkvI1Hf*X^_w6SZ=1v}mT2Z@zn@l5$L` z#Gn4;(=WdGD3yUQ4fj{Ip;xU*oYWu)#U4LC{o?b7KJbB$x*IF)x68}suuD0vm-pb4 z_1g-q?b>9zllJNPzx&-E{rK}w{^+Od7)YCjP8W;icUMx!QY7WF zTyMs>YuF#myV;^K2C)9@U|vy`aty9A(PFmS3`t7cRP)8$x2_5mSB#{q&6+$gV~21! z>$(|EAugP_8n@~X&rTj3Ek3+|x668Qw>~{N{Nd*x-QR7NxA&TLR#i%T(2E zb=N7|-Bu}>5#65*glqtaMFhY=p@8gF<7$QgqGGCQ z>KH{$H6yc#TG6Vm5Gcp2phlqby_>O!4t?Bh`wXB)F{g3tMP2Z&n@(o4dDD78(_#XK zh8(>2ZvRHArdBh^f?}c>fzf~vDY&AxH{6P9jw2%Nr`G_$L^&7dnGnqkh;q&%vL6f+ zd)y0xfRRjd(UMIB%v8UxNC_ATtP}-uj7$h>gjiJpOqHdgW-}I$#E#5YyEqye1Seny zR0SVPHUtF9T8N2=RAt{LFd~y@M?$7rymO)|xe$?O2LP(-oD)#Zd2b}}&h2N&!3R~# zWn?B|HZUY61O+iQQvow1W)33i$TK??0o?nO)fAYWf~e~Esk}g@P}Bg)z?ez3h{FCo zi-_)x#z+dLd!4<4h^pFtC$Rre->)^yhbk0NDN4j@u-y)&6d*D&0}R14VJ?ZCBSHsk zjKpZAtg*kb;n~N}fBeN~F5&WOmn6b+=y!u=yBW)r!F(-w+-$eH8UWNttGen!mGU~q zVLQgA?k3Yo6jQ+2eBrBld%ud?wd|Hz;-Ki){Yi5&Tb%jqCJUUW5lW1ucn|fggEH<` z!+P8TCqx+}_p#09DpxgaAcDH8t58=iI-oQR2oSURZgPBdK0lnGl=W(Jx$58Vu6a?t zc>Zh>W>rAKSXP^huU@`+{p$6_#d3Lj>0Min4jk31-R8UN`|CRuL~tf(#oV;^U4R-^ zX?=YiTkqy|<%l*Sm2JLFWeU2Vid zhN7CH4;U&R#a4G4ifQJLgJedS)$AG?dL5%CaFjR^Hcj1xI>(g8C`E+X3<-HJ-rEln zh=?5+hzR_Xc?Lnv0U25;VhUg=A{@{$VK&j6L5e~@%8(L!v_&`MT+h0L2gmcSeILgr z(BlV()vSrzeotTRLXcRbPfiRAFpvQNxiL$W&4G7a9m*)1%@&l|sS?F~v?Yhx*=Y+_ z9n65qptNo6$Sf7l4yX>J&4GsPaCg7WV@aN|Z6`<7$@x+6E?__uwGoj3$kg`kZ|6YK zn1~q7fC!K@1j^aGdIZ?F(+G@Urlw|S0E$4~Ox2)BAtI)_h^QF>sDPRoOcfD|sDc$S z5fv;knJE#6+HW?y$;tHepd0V+u3o-fueQakH+7W*5hzkHnVJh#%I1;k5F*N6PHAR< z;F*OfBbe?<0c5KCrD8%Hquj4jzwK8khQ;*3;lauLq=w3(AQ}RJ5gM8quw+nR^lIRU zyldD8qO=;uKBr;GB^Nd~;Rfn7jzwTQj=R3E+5Oiofj$4?%L!uozw1uh~fjxDVpT5@Z0UBiXy{o zHov@D|NFoEIU*b$p50t7|HJ*?FPC@V{QH~j+pBzVu)xM`N;rP}`1rwD)3$XNy0(6J za{A@3zx??>{MOga>C@-c^yu_~oE)cL{N~p;H|u%vE`+9@eDTH8Pd|C|*MIxvi_--& z=V3fLtfR*dZ*IW3dOBVAJ(TyL&`(jx!J*lxy%mhCr>8_!Czh7Y==<`Nap^4OoD)jyjpGq z!8vaTqS+CVxy>f4(J<0(JC1`W;(ECG>g!vw(T8$=I{o7xe|(Q{iLR{r&`qJDShC-M z<=B@*-e-be{q7IbS^L=+A6HE!1-z>g>uSBKcs!YLj+lBw!-|7(Rsaz+^is;v^A~^m zpZ>*HU;W|c=7O;O?8V{nN#kadrfuGQ^Lo+9K~rbv*TuD`r)ST8aKGMNe)r~AUtRy; z#k4zmvWmZXcOQTL&BbEYzL-~}I+jd`Rj6=B%hmlafAfc@54y?o(}Sa~p0rmNA4D|( z#33PYT~8qIQWgc@P8KeNouu|?hNfngtx#}}pFcsfZ@zhXdv`ORwQSmNmy61u%omXL z>f)*&Q#YA-A5ttsKkU})VYhWmba|>g9aK6Z_)ns;Z zaH2c;?LU0^>YHzR&>#KmhmVdAzWM#jn-3RVdjP~{CI;mF#Q9kjj47&+bNkY8-|woi zVqulNWLV5P+te}5?dD%=CzAeWGQ!-tzR@-5FcrZUZJB?{w zmUnNy-kly!$`IN6^RtKV*H|?nkDKjEvX%!APnG@l=8k96Cr9($YTNhl_-KB7c6xAf z0FYzs<2JGL-INoQ^QRArtE_HjXGhE!hgdbUAO7$sp$-o0hd=x@?fSZG-C)O^ogY=7 z|KPFm2#7x&kzxVyi-z9&H9QrEs~nzn8Bz->ni3PnVU0U9BIT8xRA2#^@R|9uotP(n0C zQDb(FpcFMVVieKu=f1Gd=0pQS*q7wLyd!sG56z`iuiWcv~6hG>0%ZfLrO&CnTW^`MAUgkc4DfCCS`w4;aft#JDMoN0zAZ(9Ls1w@ag1uje?nUK$B@a6^WyhjIjucd7KdlGn zJ+U(bG?0?Ovms;^*h7c*7mc{6lu`gRgj&Hw#5-RU_FQ=}LlGlFB2h3Xj7*5gX#cd+ z*gu#^zbDn~QSla>FGW(8DtL4O5Mmh}@?_Gbl9(9D3o8&3)6I6-Jv{y4AAOcK@%nbR zWFXT3EMizJWgA}iKQG^m<6x_;?IJLmC-1o;)*SnxFJ{#w&ZcA0GQ{}cv_Cmr>^57s z29`P#Cw9fv=DUSE#ee|NgnoN_x8Ckhl|VGdl8jwPiXN3}mzV-6nhf+}hxV?CU9p=K6Mf zceUJZc2svODPWdRx_R~B;bF?Vl5mU)#*nf)@r$l$YVzBfAm;3$9`84os~smbHL1Ff zet6sj!IZamJG>bT!p8ivh&C+1jxwa(WYUe>{D&_uNYzF`r4h>d?cH?V|MW*M&Sqzj zce~}Vxmj5(324L!OoWm(=Zr)0&K)ierg^gkNlFxgZ|hJwmT^Q=k%9{IwjPQNnhdBx zpO*b{xhkq+qGsJ}+H~zUMq@+;Q&TLoU+|gj+tGdS9B6_4R?Pm1Sd}vvp_r2r$f?rx z)$RM++qSKdANDDu%C?Ua?xmEJ@~|7~d8<;Sj5n7z5@Y39qYk_5e6l%BC-eKe-KIoe z@yVp_eCvoYiDqUF6j(eXDyzDq1Mj?o0a^wvDHl=KG!BtGHr)(j+Fae;-+nd5?7HUB zXOAYQt*>#o?|De%a!m#H`FUmqft_;>ikTHd044xpQ7gGPb_I-($OTkk1w%vt-hb(g z5kLgdtforXtQ0gPVgdvp1rQN2rNWi~gBCMFS1FodN>OvUUv3kdD|x(M_Uom97DiJ` z3Z#WqfC0#dDn#sviOjJ#6;*TSGD^7!GJ%ybDq%PEY&wivc07z?rp>GkE{FmLIzBsH zZeL5$Prvw_1KnJ|T}-^G#WXs{j8r7`wwr=rFByn1(W zZ{U9T!_OB-^WZB)n|4jpw(qZQqsG&-2cd)Quv?rROWdqBtIaNL$7PB6`26_v!O7u# z{`bH6(zto@X1S%oO5oQI;oUweJb<1ZJ3*?WY<A{mh=jJrOkVYl6tTvUs1$TS`;X4-XMzrHZE zb~-Ty0Z1yh%llp;)INbEjpHx`a$VO{jrV~Oz=>Im6qxIPS~8RrWxd{A}=LI6L`pb-Ui|s^CbhX{+F=t#P}{lc}4{xZhIjQDdH0O-y!^fqmmS zd8Ep!ev`#;x>(dr(@vYid5zis{>}Sh?Ayh5x7%&TQsT|#em-lDA0OZD(l!<(e)Qx_ zHN;eg6t7p-RE{05SG$UdymxiI>W48U7s9i%^TlFv-sv)yM+ePMpFTf*@)Q_}v~mv} zDk%`t?d|oOcW;gkCPbt$ee~=ZCfp5ivyD|V&GBTl-Ha)Z!zK>Bu5(2R-|M#YbIT@SWKpqI(XFL37C+W znOTWVK@Cv>_fbhMl$3Io;F$WTfF{KVkO;w`Siyp!@@9K_3L>%d*m@2HEw~13Gv+}x ztBL{xpz~rtpcU0gihvabL?)tKGBF_{(mt$~5xHn2rvJZrqk-;EY9QwjF{K2s7rGQ? zLZtnzNhvyF#}1)57gSAhjxklit7bqY1W<6~0Zg@|tlkGeEvg8px$JdCBEn#zBBl%m z07V1{k#KL-MIiVmbPN&_fEw`kRtj*=0{{@_9IL9W>S~AsBNBmkEM^FxCeAxY3;>{F z%)Y9?n`pVZy>(sv>8Br^JU!~~cjacR66cKI$X5WGh`21%A1?k-Kr0tQ@aV{MH7J=4{^+QMv31O@XQS z(ia7s98L}y)wwy}i4G zIQBVFRSn7Dc5B;l+4pG}N*k-k<`qRmzFD2$OpEXU_lKFsf>T9ehJ1?Hm zEEF<@BxNrFLPPW(3I=lCIRIs*s_`0p>PJ#lDWR*It_!2lx~JUdfXUDaSEi0g5Xk@# zqZk+O#7cmy#!119|H-vvnym;Ss0uOp;7cz1>@!4i4vQ!fm=t8H*#S{3s$dF0NP(OS z46FcJK)7HXIquTk_43X2hc}lOPrAqAGk^++IwViNsER63X7r4tMCkT`ce^|mQe#ndc2 z(qdfF;7vh$8KJ>u+H_rG1g%I@fPq1Zt=ILCA0N%ead&fhYX`x1{;)mjAb0>np^7mF zxXsolFV;+)``M2^`Q7jSa56polOKNi?!(pnhpVoeoS)9haQEpapB^4HFaPlF_~h{0 zZ!fle|0jR^!>7-m%x3L3U%%|PJMUaf$vY5nV>GR}sjDFgs1zM;ZilL>PEYISPrs0u zFW$VLcyNJ-Au<_}#XQtiXzGAwl@FTxs%qH-ftn})71P*{^ZB%$PPhHI9Y$4+u@K-N z|M3s%ragK1_~GM6+f976`S9f7*>ZJvJ;cNFvu1MeQ8!Ztuq@!Yng90H-N3VtyJJ5M zqrdz32hX1U@RJuGJ-mGX?%UVPW|?QB-m z)F2hG%!HgIC6Qp9w?jrPqABhsr|t8Hk9V8({rzoQSM%v~F{x74U98q?zgq8*N|rL_ zST&x>d0&VzK~5^{*qcu&SFRR-?GXDh#ayf(OubkwkaOInxN#Ld?51M2-mS0hmapHf z7PCWzHQ(o^cFs|#{iN-fs+`hvT0ejB(e3-|lG3D_R?hoSp_5GxF>cqp`-66Bj0~L2 zi3veARfkx4uX$%!9z8y5YhOyw3VAG7A1;p`oSYrcOG*fm$MIw~egEqB|NDRV{mH|} zM+b)~>i_h={q<(EbnT??%dD4elK;=?hRSnYS1P-!o0THZj!(Sv5T>K; zrUxfgJG~z?35B}KNmI&>LpPbPcPS?kH6+wrAZZPLxErqM4!3Z>y1k5jE_%(I+0pdm z@v(0z+hW^M>X(Kw~zP(s&7U$2WniSpw6=z zARrhzU?os7(E1U% zlrv=KD~Rdh)twf&yN8?2GAyQ#PL4hMq2B~wefs$k8Whp4b=%u5NM1~uyUp@%|M$PU zy5AKS`WP37lNXBnNAY6yjNJZP$e#cVfhYi0m&0IhfDC-YKd zT(4c$;qLBD(M>k>e*bA5=&WrjrY86Y=Z`~8qLmM|SsI7o_I3k8^=uBlJ`{1J^RDTb z$L0Oq<>fexyP;pM?{QcHaaDJW?)!opaW8p{MVJ^Jn*lkGq)cXpSyjMTNmUJu9f+Fl z_gRiWMT)2j?0;VW8ly(-U>_~CkAotjy>uj0!OV(i(lo2saR8*E#Q+m1;a;!) zeQOa@q2LkBF{45rV<0BvtQpNvMRcF&nGnx20Lb*c z@*gqmC60(xVFT7Mt|3Qr1!X!3V;S}45*Mng3JFCD zAr=4xBn0&ALombEI}>xr&hcHzcbxzH&;Ink{ICAA^SUmp)pvjOyVYhjpf5<9)#$Q1 zPv&7ZYZ0IrDwuQV0bNxOn$!@;fPjIqWJaq=N*?rTxV_d5S6kCHxW|v5bd#AQZvY4g z0GNbx!ajQ68WSL-oQCa|L@?)Knmm~3cBPwDDmtnF*Klu`yY}7t_lFM-juulG#=v1G zg+trA27xQ{!wR?e`8qFSDj^J^aNJpZ?Es~muufNe7NvkrNg+nABQ20 zg$4oc7R3!si$D16*_5RJaJ3ooWICPAXWL!e5ba_LRxO%(7U=!Ux8MBk+mgh$HP@X= zHWl3t%t**AfQGri)pdV)xy3Qo!HdUR*j#T0Qqv(15i#SP^Z*Hfn301U?(Z9_UDcSf z6V?QMZ+WJ`1qNo`}R2{i_JDE3A z7z<`)PnvB6@NIKu&I|U-LC2JKiG3aFX;qT#;^phN;usNQB*7D);SeZK+x|;7?u@5O@&a1od8%?QNg`;9??v}_C`M-LuM!FR{iL_523bP zc<&W2LP5upu+VnZUtaa=oBry4`C+&I!^MsNWFgLZ7f_kZ)YKWUbFr8(BBr!51Y_vhSrb4#5O~gI9^`&2o&rBgX`%^96g4!`P1m2?tYg)`lR4rIegX zjO3j|#<2{NNeTc(B1`}hTtcuo?yrxq3sx*=t(|ZE-Ez6pl47BrhP&<1q}o+FB*|LO z7(}*1pT=>UcQCKq@uFi*k51;bl@{!aXV0ed>Di;h&E4(E$&^VC=aVl!`RMZP6Aam)^d=#EOC3dK*{UK9%(3$)kgV#m((q zPT7$oPl)D%bB?F8Zq<*g?RM9Xal3osL3o>(T6L zm+0#LVAf2}9vnP608aq%__(Pj=O6#@hhO~o)7550k`|%X`zz{P-VLcA2M06;r8*{! zQOTT&Zu=o=3NBO}k`*<9j5o_wQ@hUBMNLcIjs3+{+P5H8Q?t)w76kzE#b_LgjncH< zm=Y98k&xSFGWKdHMr0V`F2!LGEDCggfBo>m^k4ng|HY@zAAS3~@BZ%RzwWp2=;Z7_ z`Op9P^kDYuU;bvdzB^oWpMUcFqmQ0{`|a!B{^s|VQd8rs<)Mc8@xnWUVqM#2$oJa} z)q!)tOnE=8Arwo?^=h|USDppYl!Av3?{Bu-?YVpC0yBEle0P15BK+tF zpDmYPzI*d-v)NwX51U<2Xh+BAs`A}8A6#heATKw6;}JqT?YBjV>aGUU`|I^?tK5b} zAsU9J4bE+cRRWwgZIWFndAr$dBOgAf=51r_HJ2oshv+<0)f&|YhsRwr8CI*y>pq!# z`R0A18o5@5F()8AJU%wH<^6y}D#a0-for;hwtM;R=GD7virJ(vp(2c>Oouc(Iatgm zYq)8uiqJ~RM+dWchjA=K)$3R9-!AV*h0Hrqs$HE^ZYTBgk6*;?W_Pz4ihM7RQ9wf? z^k}A51c}+qw15w6VmYQz2Q}L+*JtMkCr5|7&8nm9TkaZ>xb3b7yZ(BE$FZ||0VQdgCGm4aP+CtTm>C(~&=Y5G3xE^pL|fuj({lpGcBuwG1k6=bbN0nw7sdb>q{-7va} zPTDEN@#la2_q%`m(oYtr=Vzx679iQF)pa;KK5x3V@3*fmmmr8zS`I_@T37X?ttw@; zyxZ;it!pc&aCUaksnxr_S=H~qdv$-mu7~pQ{2@Dsrho zlu}aGAtnKUs!_5km?Ow3dop6j=yd;*&NJ^TQA8pzLjVJy?@L-D1VmI(VszvX_DcrP z?@eNKs6I7Y6c~Ni5P&Ii8w@6izzXC$%<-@T$W_2gj6&m0ud1au@lwr z7ZAuI!pva6jFL-|f=pf8PJmRg!k7$_;Si`mW)5iV$e9^183V9tYPQ3L0_8Hflo+4r&?FjZhiq&@nB6afH;0MI#)Nc&5ns)$%sK~+u6 zz;aHx6fk3CBi>sGkQ^C+DM(S#yY;$xaP;s;&yTv<925vPrt9s7yUA7woHMhOhRXBt z(Lxk9yCLS(wXGH?rQ|f^WJ*dNJz2}zp;Tq0(mN5sVhEMM)K%SZ$Nha`*;Zo<6#(Sz zeSH6Jz1)iHgk6>*Ww%}}Z*M--9nTjByNfq54UUM>G8!@E<$9DnYJU6n^<)tOH(M(Z zvl(_xrD`hD=iFA@wbM!GyUIU0Kbp^)GVZX%<#KgDWS;rjmDF!t(XI-bqojVb*-iUJ z+~Lcct8wTtM(5EHAmzopIysmErp?Xm<;7Jmh39^OGk`Jg*5h*H!}-y(Q`d%aF={q| z;M%5hZUhCN9zHx?OeXQ&Mc$1FJZ#4ztL-o{mZ>-9)UpBKM&nw0Ydo~#9AKefs9EzE zGlP<=xHVu&wwN!(`psq|-i+NVA^ZJF(C;O6cmZF zPpbd~R4@R6B>T)}+AC#^JQ5E@hbW@OkSi_(2x{SAe%v)#v}HODIFyV?IcIU=RULsd z95rc$$Q1>c%vzVzcrcqB&Zi6tB@-4VNqy-zBB_L$rcLFEFk9!V#bjy{*H^pU?e$Pf zjX;`jZq{u(Ejb0}`Y?3eD^Luo=rQl`0V^iT(2nGCugU9 zzg?~F9~?b?`1IuZ{q=Sm)_qKAtgAXp$lGzbTCP{C*>u`Yx_;mao40uBPT+yyQfHmiQKBX(Sh5`apc&ua{N z`To*EeS32YS?7~QuXeq>UH2FN;>C-9^?&wNgKO*NH29gDHnYjahqv#6Jp>Q?-5s$RDCqu-2Ou+6 zU?lbo!XT+f&={@?xeZ{J=}(*g%#kKf0$BO6%}5%V5% z$|aR)*JPpfWgx{)>1RKB{MpmvJg&Zd`S$gCr>f!9bWq#M~q~Bx|Cf-iHGl;PpVjL7m5_n_kduQ|G<8HIN ze0Mpru%yhALrjUy{t%m3S**83%#I=KN#`s8N@xrLkw}bT4>(Xz z6a_>fKvheIRZtNS6#x~|7$7EKrlk8P9({`5`&(2rqK=9#l?!z^fxlI)ePUWRWPr03cu( z298lgj3ojzWB`qVD46}2+uBTdRK+~YBkvVOV+he_4ne^Hi*gJi;+#tK??LGnS%8HRiO>S7fF@=@A~Z<^5k*x0iLtoPj_-;4 zhzJTS`+Be;G@{TABY@`KD{x{lWW@+G%O3Z$cd0THDFPYeRhbhjpiyKIFl3Blm!vdaWt|A}As1K3apM-a2Qk?60gyxbI64vWNju zW@oGbTyNH{$baG8c?a7vlU(1}7#u3dh?o?iCSuU^;_LUf=jFj-x>y#r3~jgjaP#5o ztD7$L=px!AsWj$ARWfhW-c$wNu6&~$Pmzr5twJC1&kry zc7Zc`e!QH{Yfq>#Eh~9?Z$>)VuD3PNgTsYCC~T1xD#l4U^KIxk+=cD!`Sa!%$O5BDn*T66|!DkG%!@QUmxwn~c+;p+)BSMV2=|>ra z#qEOnqIhs}h?Dpx!FAto&-YHBKYe(@n=OXk7$xgOFbN5p5K|PBqS{)<$T`pyodCz( z#(5%7U^8GQLO`REtSU2P2pJ@s1_PdG|GoeuL?TsTiD1zNYr*wAC@@26V_+aOK$eH0 zp{s3Z$6XtvLNzH0ahaH;n&PP7)1c1S-EI5*@N)HVS7f99?pwNI#@aGsMzU zU0CPJSp~w8Qtq6I%9_XO7>tAwmkHwF7s>qA-OqKuO>(Z03iHr+@N%Np4s* zn{A6m%OcCIHKG~m=1-V`#=#wHcf*bMJ41{}mg)d#-4ZFXbwv+0cZLFVVv2{CZukW$Yf z8Q9+x0dU|kFXksl#~ESTj;SAaORigc^Zj_i38)F^XeN>YHIdKw?gvP2t3(5*$$&0XpSd$q9AW{WF$@9z_ ztIEz=An3-CQw(A(U{#d_9sp7<<-F1%88+LdH>;Z46zUK{mqR;xm~Y@ zbZ?qf<-~pW;>Fd?WnC9XClkc@{@wY|wn6#kZi7VD`J2^dIX&Fmb$55$s;vIvPyejx zy5qBhw(SUE7{}MIKahlHKl$3s(XZdEo;-Pc_WX-`k7Y>x_wU}XHk(OR#UTydNY)}ySyx>@w%aYo@Wrpb_|g57 z53gR2+x6L`=G6+zdU|qvadmldaeLPcj5aH#0;rIDU3M*RR-4_f2}zF*kEfF|iLTrA z;&6JeI6QxUH=Sqy_5bo;eewCHU%z6vpJ$KG-YWB>NW zZQ*7I_a50@-;YfQLY52xAQY9~*Q3Wyc5M^UL~G919U9v;ZIMN9?J$O`ww+al&+HIn zIiHusr0M$Go2!%4lf3fh=a-9mZc&?d#4P7%H9hGynn9Q(Lw$Ga^Kp}Sqh7-k10 zSSX0pSX70aLeFv604GJWRY|P*Y}v7TXRBgaxEX+>Z1(uslXiXk^6gvia%Wr=Ayh+F zq7agTpsFRSpaRJ;Sv2c$P>at#dD?Gw*B@@mtn_3v@UPBSdG)@N>~b*8h;<9!zS}hG z)rVK_o;-c<^oysdk0D`XxY}$)hqDJu@44T6a8WaZ1!!6LWPKt72rTLlRruf_4~Ydi zD}k90PmAfaT&=Pc!n7`}gsTrXaTu+!F;E*q5Sc8e+ooOb8ef%(aAfs}UEBDaKK+xA zZacZW95l->H{ox7{WVeqh>wmYqPpI;xwA@Q$%+tK(~aY_u0MNtpSyIm?P=)0zPsCP zHmG{$Ij147!HmOqMwB4+)uA>AXWQi;(CF3)nA_oPpW|bJK^4{b7kAL*> zKmYU3SF813|EGVLOs8j$9?a+SS6_c~wZ5Gm%#E={m3wQO<~n0vmp+Otifo!?vFVLU z1Oew_WSjftWS&x*dp~*p^xlKjm%sh8+qNXuI77w=2r^p%MX(Bn>^KHwG=^dni@1l3 z?^751jK#hQiU5iV0FK(P6c0vkkQ5SU3c6rm5p-cyxWb8;y~70tXGV?aP8 zR74g5L}x7_dhb+0Q({1alzE>Q`7i`!MN29|Xfi}kHmO8~QB;)F8dXCG#y9|leJ+In z3<4mC8UX%*U%AIVA`$5iBTNNVV@yaX#?d+Fo&Vu_V`%?ci6VmvfFL?!_BAq)B+L#i z=ziP{M2>}-74{Yy6h#2l#4LaoRD})MgerUXq%}lF0F>DnqP_NoXn#8p7P3}Vm<3R+ z@mc0WN`SbJ%!e@u5s*U!P;^YBN@xJ_!`*G~;m>~gi)uE%esi(AzL95-PqK33ygQmt z%Dg<7E|;Ypg6Uh4Y&LS_j72V)5wVbXwVA+mB7cuz_u1d=|&PJS>mzEizN5 zA%<}r$IckZO1^i$u#POXslf*{V zFp9b?J2^hOz1nS8+pOtJ=IhusyY=D2>hY6#?3=<;3DwQjW^=W1by=46su_SBs9H<) zY+B4}?RIHM3VibL=-~cAUX~={hX|7hUArAtSouP;@uq+M>ayFdXOsIm!tKztp=+Q& zIy*i-J;;q0R~og#tO=1+G#aB8X-qImREXB1fQY0qgv@$NHUbMKLL~qYppXax2qQB~ zRD&eIs-UP!0)WT_NGN2j0TQqS>UFoBE@zLP9BYa?j%JK9gw&_I_4<0-vbS0vIy70} zcC{VHFc7ToqV#5W8|#B6B+;m*?k~H}l2(;9$93H&@r2FgDg$mlYO8DeWNknQ0;;cmkUl zlNpqd#!(kg4aS+mU1(>>8V~4fmbvLPTa=5NcYRtXv^7$uq~Ppc7?(Tq?6Z%4^yHCi z($%*gKHR-8gZH-FUi7}m?wXXaP6&e_3z0zsY*a;{$a8^i)eOz`9nYrd=2ceIS!P5- zH>7?TAoLhYpVvi!ifuQ>7!@&!?8~luFaj$g04N$DgfZ>_O?jC~&*S?j?UU zLS7WUs!W-UM8$G>cy@Mq+c5c)dq;v<+v^zg>gtvwqoOg?k6p8kld3#fOzxe|0YX{i zMUkh#FTQ`z-iRwhw@O1>mC+D|h^)pqyt}=)*2%gA+K{Ql2Q|7*D?|%EuxBvPt|M?d`ebTgjHCeVpdvS63X7vtzhV7ogJJ&k(oT}>uPN`B5>EXh1$BV5n^oP=6Zc` zaqX)7qaQy9gm$|z!pmwos|&y^#C}pt{%5~@czAZWaJyfh)nzz&crbtS;qvy@wq1(i zTF91UO`hQ1>2hRh2W;Q>S-o8x z&9kzw&ei@n#{6z8%WZ#m^C5-Z{9p+_iz5Yg7Suw_ylvLa^{Q!;pfkrRS!om#5N(w+@h^i$Hy6xfdGZh*J(?{}>TCkQ3J75R^7zS< zXX~q*)o$%)1rY%z0JUTQ1ktJjIgP?ZG+JzSLrn7H=gGJNT{SUXl_ZHH~2zGk! z*k?|_FehPFV*miqSRY-EC`F7hLR_zIPtWE*{_)SPSgU?}dGY$IZ(~AJJK>aPw%Lxm z&87=N_Szjkn%Gj@pr2&( z-Sy4-_IxBv1T4|1I5x!jAexw)*sr$3-RTr&u{N%)mBila(Z|| z&fc}XapVoo4;RvO?QJ)XDJh7GA+ujpB#x}s8aG8`P8JL`wz%(-@f2W|vA|q=>DgA*L~mSDS_@Jvu!+I6KT#Gv%1Z zZp-gqp7-jnnr3oRXUl4ux2QrC+jf;u7KgKsmy>5GNr4<$gJBiUU#$LkvzDryKe}Jf z7EKqts3Y)`(jc(#{<3{MIbCI|u(|dU5qLc`iF8sIC$niZHX|a1t=W~8pPtSTacDc@ z@%ZGB39ZVoX=6XEM`CZPSr$W(kVrrfh$9ONc#pX)GHZj`c6m2iUtBl+wi$$xosr5q zG9GLICm;gEDx#5ytO6Rcj*8rXWPktwydNGTv8sR-z`fa-dCW6PV@jM%UW{Opbt%da zM&k?S6h&Cjc?*bRH;^V$8aWKW4-O~y?jM;nQb^Rr41H)i9C%sH%H!o^F)0iUZ`ZGe z!LVkQj5oL4j%z=w{NsoB>cjeG+ZNU*wj&rt>wQ5{`J%10kPJg6s^-+l;hw(E{{l1G6ygg6djZBn_wiz#HM zN7I3@j+iIY?Y39zbx4BNh7iePVH_29GOZSi=|NV8Mn~hTW-V(HpqFY+4LMS4J8FOFKXmbx8XZD=SlxhD={$|Cn)R%Ngbwcmv)M#n5rH zi6C5;Wmc6wF37)ON&I*Q?B1rI1H^(Iy_u_xV*SIUrSQ&3-7ZR zuP)1Kx;Q>)e)or$Z{I(C{J<%{es?~ZPtQ(HVjLcyorY#qj`K-r5l#iX>vqp4>@ircF(&t{AHf<;1zEQynj3@kkn#WDQDuYa@IZC<~9 zUzO#5^e)+{uKmFvv*-3r={`#w2CzYw^b$u{<`PFyrE;78}~T(1mFDQi}R}w5#+!AU;Neo@&E9@{lEQp|HJ>||Nd|5 zy6F1uUw`r!sPebXw#bZ?2+*6*pVryQ7eD^XU;cF4?SA{aZxQI;;|DVEC|%}I2PLR6 z&rY7tS8dw`sjF#dlOaFG@#^O4(c+j#D6^%tyUR@%UcPr%x4AE5j6>61-0`d1SO5MG zuT|Qoj~4&M(`VDF=yqusQVOxG^194h+c)jF4t?AArE?+yfC@t~_eJf8v9HUSwfUf7 zy;-60);sIW&D{-0i6g&1KhLeP7@< z6$O&NyS?bvn+mDOr*p#TWcuyfm*=~ePtKm#*#dw762czZQOqBnJ-vIn{l{-4L|YX@ z;1Hto)*55TrW7(Ft45QAG&EiF%qa|Pd2ASsDNsq0PA`ac|y87}TUbNe>wFt)cLA=Wl`pq~rZBrN4`f)x#d~|x0 zdo%NyM|^ZTj}m_Iz1Sn^p7T&AD~OM?Zepj=@<|dKcJ@V|e=U$Gd*G z-ELnx#(A)zX>aN-~28q5YLY1&WanVFd_86|^gR78YT#Ci|ba1=oz=h3JFib@m?9A{;g z*LhJm0s#?Fj&ZLKNzQtYmQ#StA(@l}nH9(qq1nfAj1ovxWwx2KDha?KlA$DGkStOl zRnWXF=F3H%6)B~*>Ef6)h4$udyWXrfjf#*;8>0#{vnXfIXk-Iclw*nts49Dcg0(h; z0IHd>-aGGI+eH;tVE_cw6cb?AD>#8#H5x%&~NSu*?GQ?=J1Z?9czzpMCV?^y&RM+{*htyKRU19*|+F&5s_P z;ShiSk6-RaoqSY3`RL&{e|#|vVYZl~wcosaT@({zvbIlm>#GFmU{OCfJyP#_a8w=C zwj8^4O3A4R^fsSxN+QB+P`pJHlXcQo$IGX``r_bV4vqwgkPH%`iy~r>j3XftK|-{K z_g!Qpqu6b__0Z+74XF?o)Dl9z`Yy4qr5!djx?=L9Ov1)-8wXF;cSU+o5pP7m&+nGJG;B%$djX4EPU6F zN%N#elmfupi(4T984IG^pcnPIx7GmLe1QILx7l{1(Cu~@JjQ|9xY8?k!`t_7ws}S= zPIFfl-U)Gvf>zWK7$*Q^08v4V0Wg?E)a=D*0EnXd_Jv0*LMU_+4N?SOP4f~siHytx zi;x9`aSR~noUshXkm+brR72CdU;Xa=$@FACnc7_2 zVRzZC?uKy)tkey$iQI;mQ69DJ19x4Y7if(QoG#aQDFzWBL}T4{)BXP2SMynk1B6ZQ z3y;n3qiAeVB0+8_ zbIyR(DB9_`>4h|N$}Rw)1>-#!GytLy5lu{ts4StmTJN@fuK^6ABWuusDu^LqNnI0x zOvo}x(v2y@uJCzIHZSv(lFjpCR+eR6hi1IJTPI1wFivBtvZ~z$j_dWd%ZvKt_`Y*C zaMq_mFiYreo1q(}?;=ZjaCUZgd)I}|*`vebqkc#?x7*J@`>gB6swg(w-aA^J9#(Z_ z>+<^ie7)WrAIw7-Cq;hw`a`?keDd+L<+S|AKfZc@aq077jK<}~!F;~D+g@E=|LFOX zEb}+FcU{Bo) z>!~S5=(^>kE-dIUKD&4Fi_cD*yVZ{iD_?(gx?25wHtDTNBp*FFE~@-pN7R^jCN7?C9j9&wpHG{=;v+Y zGAmt*X>+?FfP>|-lIeQrzW(O>`DF6^!NaO3WK7?E{ZgJyh%z$3Nyl!eopH`4iIP}2 z8RvbT#eS3o#v2)es+mmYzJ!-A-rYYuIC=Q+-9OyqnX$R=Q#(c+qmGo+*~6pb>!#bj zzswFKN6cs0BR&o5Md#I}uEWGPV>#u(!` zf`KFf^4u?Kzo#k1A;xY*gOZ{MSnnl8LSxB}L(mYWWdWdwX*nr3H>(%lyg2+>Ve=BD zM{X@)p2O<)X1&`S9ZY}r$wOV=HA7=llBfXC*;E#GQs?8)O3*JpdGP6Tce9fn$FoPr zsQtGuzt2kZ%Rm2HX?(aki{$VnFuJO6K9gg9Eg_3$ZjlZopW#+(w2Oc+`Eu`la-KA-2gFN-Xt zRQgN;kHY{WNc*F|qNQONXkXqERs3N%El4WhkR-@J(&!q5$(;=Ge2#u{tL07?v_0+L}2%rXw+5BebyBuXizBz0YtSsp^{ zhHe-GvmjE42?0|?g_LxkEYh^^a}tm-fM|?~A__)-$ciHY-FyP2QnIw|nq5Dv*LeOe-oV&5W*mlhyAQ`l z^F@)hm)q6(O|M8=BCv9RV~QY`ACD)WJ<^;Mtf?L`}I zB9cL$U5riF#+-1wZSrVRVqYSVkz~e{#>ng2-59bVaz8@m{E+(ya(%rTwVzIWHLDX3 zV;88U$!t>96%4T-!?qi)cYQm)Op|FfsWI2tB)`90U>w_V?LmTCj>Z~aWEFsACeVG< z@&|Je3+TSuoRm<>fKg7z?cgd6i;!MLGrx0d!q)O zTX<7iK&M0k3`*A3Wu3bMS#{Tuw_QleEFnr9QL$~>^=2~!-UXVRF1D$+ZMfTPIkRM3 zKtLiEcHUzmuTp5S>34UpZ~EJ9W}OkSTIj^~952pSyMEY(*n|Ox0hLkr4pt^03qlCi zknxVJiDL{yVj@Mg-jdCRE}(+9hLajHtU-)eV;v|WvEmpbIyBBlrMvBR-cKCmLx`Tj zUFJW`(g@M6}T8rpRR^^t^UtX>M-GBJctGm^%Y3oVF z)vO0|x7z(T|Ly-UhQ!fMXG<{l~FBb<#$A|CVUte6T4h{~jEvp*NzkM~E zrp58`wtbi7lhwM5VR-cLo<;ihyYGBHJw86}hGDmB4AI@yZ3YTSZm+JVlk(N8*G)IN zqPEVjHeFFq^TNM*{dTopId4T}Hp>*UF_`nqtG?OPbDzY~fAb%I{p9iE(|c!4+gyBj_u}=tb=!RN)mM{({@1_y9Gc<3`EUPU zzy0-_fL1-M<=6lF|J{T7=%nL66bjQxo>E!6EN^#@59%+TKe~S~`N!Yshk~u z`{C8QyYVMa4wISeR^7eh`)5Z5WhJm52Ah{zO=Qa#iS2riMwSWeVf|B#s?{EL`yRRPo$&b&TKl#n?|0qP5IrQ#ky(=<5 zogTLB?)&fFhagC{D2uWrz{HYrU!W(~hq|7oG{~61sKyjyAY;i|=WJm3=H)Bv1ix;AqyBRQSDHheGJPzOz~7$_aqUirhPY_v-!F zhflxw>=%FX=^y{`oA>X}>*;g|>CK0WF3IfR@Z`ba&wuqn;Eulv59 zmgV8pc4NMaR+GqB#^qq7!w|CyT z$M;Xe(4Svlr7()BMJLP*JSpwrf#go6c|M)`wu#plx2x^?*{4tA7%ac(>au@&_~gew{d9G+d->+gX0th4)VbB&`ljD*W8dc%CzEV?vZ(!h zyKaZ=PMNF2C1tMX1Y^2-cTIwT(2OI^9eK}V+}(jgmysm}=c*zvfVR1P$78R1p(z+Z zK@l{FNWyH1gkX#bLCNe*MuLK>8YQ9b$EuKG5Md-%MLLLA3L)*5S4N-?IYD6-tOZ69N@V7jJRUEQWJ$Ph>oSjMhn5o?`w z#xNM97?TP`)s&J!8~P3rjiR!QA?iR@{X7Lm|<2LOnM6i5M)a%*D}Bs7+IzkaZ^H@q4^R^$Z#e}*GPB!HBJ z;Rh%V8)H#1#;_;SjKhck&Suf1#F0VO5Ry@0+1pbU$*8dwfH;nc6>;z60yO5Ilv}Ex z3QB-1q5yz<2qx|64~Rg7%z~&yC<3Hltl=NTs_Khu6t>n@Rpp&eEDB-;8%~#Zm%*Ax zfAZ-^zxc`N@o5dk+|(}0^=7gcwtHWDJKS4hR53jA0xDFnZ%<9G!Jz-|p6{D532- zqew_~Q31fFX|T+yys%=(83f9*%o&43F7rreoCh{BBvDw~f1!NC%WipYp+ z3WDAya54(?yo+hOY0&jGcr6#_FF&MBFh`5vD9^*^kI$YwJhcI2J8GMx8X4kl*JGl5 zvD|I9i6aC^LlTHvg2|)fPfm`8-DcD74i~eN<-{wjKis~4@zzVQ3)7E7hn!7)5yt?1 z(*>>J-qG@BpFKUCW_IYHYcPzl+rBw}J7)IbC(p~gqEQ`*G5c&5FrcWSsznk-Bm|Kp ztOAzM0di6$2IS0mKmkxP#LAW|5EwM7h6#v31St_Q%nzK*=k2a(+g;mq>lBpy>Ah2v zWtcg1)*9RO9rZDDWSwtzZQJ8`f0jSM?&H;UTryyVH^YTzK4knB$??IC^yfamh<@>gHkd8 zMu~Ety9(1VUSD2!FK-y7kujl;q1PD8%%e&SBPS;3V`#to{u}IKKXy=C1^_U~K*9iO ztxK#Tk(7}Hg+bAPDGJ}TeH2A>U2FzXS5}%Cr|OUst5E|8Ns>3DKqJVsoH2|cZW+N`SS-H)5DYF2hX2>`G@az>#@qymw$Xasb(h!k5aU+ zzrSiWTo(5IyGvv7<(qfMhl`_w?i#L(?-ORITpeU=SlNQq-& zZ;=pQeEZ#(fBgRZa`pS)eO*loXI)X{@2_qXK-Y!k)Y|+%{^a?Oyqz|EI(qPMJq%yH zSaqX5KRR^DrzU=Me5h5OMLF^K{IIGi!g^hGP3-&X=zvue(ml%O!SKZu5`B8O{KJ3z z&);2d8^t8}=}-R4pZ)B!?|%3DW_@RQ8`YJC@!o&`?!(s?@3YCgJXo|{D_uJ;eKU01 z+uoJcCm(-0IVy}bzyIphcQ4*&)q$_AtMZJ*7{kDUM+GH=aqLnT+kQLE&FgPppXPXW zd<4i~(HLiqLBtoYKHQGcdVeyXAeoEz=kDNs;A4l)UiF)OCS5 zTFMZp9R`bnNHGmVI|?Hjw`q2h=}}Sm%gbv~MomDSD~mJ<`4-15`Y5Jq^c%`+l1CtbaHlb`|jP#FV`btWVqdIubTcx zM~BZp|Lor6bhm!@%^!aM;muoDPQd53sEx^PdcJ(~p=&$i^XB6A*I#~TGJAM<@aXK= zr?9$NkDRf>W+6Zj76d^; zO|Y*;ipU-ZiGV68q>)(=0YO!OQ^Gxb2u0EElODb(LqCpjOpMA*fCxB--Vj!KIh#(L z_nM+ZihZXk;hsnn1Eb{5DS*qo0TK})g8(doKn_8K6;Kt?>jOMHJk-mB1NNKvgiPXb4baOd?{90TEC_L(GhX&RGBo zLo8>d0bJeQtyg!O%_fNsLom5{^5c&me)j48=TBqe{<`l{)24FOx9_gn%VhITe*4GQ zZ5)Al_3mzBIIrhn46onZUSHf92_vhfXnZ~lSAZl2Zb1!V=Ez!)Kz%i-Qq8;|$&e%kRk&+=@-{fp0;dQ0 zYQ0(CcDvmD?DIz-J$ZEKa!AQk6H^GMwCmP=*Trsl`260}$+N(tj*+`CwsA{b9+#(w zwO09hTX}19$kF-;~sUcuhMF+qJ2|&}ZYj$f+AW^@%+Jwo0g`?6Txb?1JvV5HI{0u z6U8@gKgN0O2HA@$bVvZ!~v ze%H1|RpnV0bWAB4R0qgF%)LTL7#Rh@qS_>2ll9=5JGq^2=F2G>mnnHdYaEIiAsBge z*RO83SY$g4D~z*cIjd$F8ly5T4IywGS8W@@mdKRzA_Fo}#}SZKtc^A}00I_8bykTG zKvN1~&>-U|VHg!tHJLz)kU1gb5YZUx4G1t{=`&H;H9KHTXecjBrcD|dO->$Ia$^}H z7&3+eB=SgHeN`9H=;UB=u$Xg~up2jhEYRz~?a;?nn~^q1-uTJ1noKi|sk`ZJ z+8t+zWjzhCR{;T!2J32k6 zr<0!byEj+Xy5sp|Y%e$zE~A^(=Hg~`eE)dOx^VVjIlp&ywB2kDR_*F;C8}lRVj71L ze)Xq6efRdmhxga(v_@i68t3hDR(Xeg*E(PxLy5LbupK(#zyb>N{hRCcYJ2Z+ikcoi zJhOzU>-(m?e0i~MLs^u{OcYDEcNW4p4k>X0*pFh`I3}hLB?(w-`(e9l8buDF%Zz#Y z^l?gw+wrss6Ga91^h!%j9WGpSc`TFbT;_~^!kN-FS>RR_E-VIIcFK+Hu zcboh7kIQGvZfI9sm!dZ7)b-7g_1pFCyWjkl6Q(c{QQ#0pwgw$x@fuE!4kyK|Iyg$| zMwS#t$}M6F<8JJSk}|8BIK~u<$`zJYoA}ks+mXpSmt(F$GM7Di_VD}ncUKoT&wuvG z(6zhw*Sd}y)2`av>$^6~%F}zt02D)9->!Y0)zi{BlM?r1zis-&FrU_BjFNF>6_|TT zHii(}(uce(Lx^|lJL8jb6qeEz21&dd`rU_DFEV3}CY3=9V@#lEb3z%mmzAS2@h%L; zyTV#r6OZZq-DOe0FMjn=z8NS6(CzXdXC4g7WKtd<9hA#qTFE4{0F;eM+Q0$aB%@+x z3OhTPPU`w)g1crQ2QDk7lUcNya$g@W9-JM0_v^3Uy?ejvWem0tUEhyg*YFU z1%oJxWQ;|MDF7r;L={3ZnVBqRWsw(Uh8$rGpiGD(v)K!x&?pEf8{-T*5HUb;PeD`l z-p7Oj3W5sgoeLqQAs8ZwX&6K3hW$BuPg68vg_)cOn6?5~$6*>|^X?1QbLRU@tsURRGMhY#jH>NXww0Ah;J&f$jq@M5rLbiN$#j zs7b^avsc4gV-p!>Ru;4>qSg>0q2m6F1~G|{B?gU>_IfQ<;gkpw4Fi&hTALX|qH3){ z+Pke3K+u2zQc+g6)+(SNAb}u)XiCaGFYZs?efaS5;%$gLKR*8C@uTM-Kl{-~PZ43$ z_BuplUa#-ImDD!d&D}bH+uUr=@7BxX`N4A12hMZ9oJ_H4aJOyS(RlB@7Z&A&#;}Z_ zl2S|nVKDpM1py+ut{sSs&wMwu1ms8sbO_1k#bi>ercnn2IH{_vEC}`$1a)K_nUK;@ zj1=Ayq)r7Ops2Cux82=(L}LM=bT+eeT2I?i!mzo# zxgE&(ymDDyPVLF*Y+5<5YP!?gw-+zpUA>C&e&uV@)UQn&(PUsO<~lKX+U~}ob6M?k z%A>U^W5BU=rORn#=-C@T%iQhxwHP-!I@qP)s=|4@x>>K*ceCe5#q(p&&VdOxTQ>eM z&smZT+U)x44;O{kdR}aEH&{e;8Bx&q;p^|4o2$EHd-l=8C$ncp@*We!Ew8pw#+VtG z)uovtIRH%@*B>t0yVO#B=gOW0A*pDL5mhZwk!6!w#xeH8h@wECMhW3*Ri0FJge)Y} zC1{l^2aj46zsoWz8ia}T~g$fyoDH;!szon zc|U}4x7%1oqfj{nYpf+^R#gB31y&wKqNtc5uk-n`Oc@-WO#kHLXCECM#rNCye|Yu# z*B4=2zu$2&F_Y5840j?tL{MP@1RDC`HubWoj-TKA?5Lg}9{4etk!1v#8Qu>OBoPrA z8si8md0xOsz^Rzzh~#t3JUK%{+x6Q9f*7D7_CpMV*a3a8o>Fge&Z|YUzFob$v7+2| zO`mX5&sa6DE1wmpfB-)8_wF67Zg(Pbd~)!~$4^!CAAb9LPKk^KaHq#-hx3#3>($SH z^~u?z`~UEFzx(yCf3psavF>(E2g|Xpa&O%~tX>)n-r#nW#pxs(cX_*h_Tx`~`m--i zX0G3?Z$I1&UH|0qgKyrxXNIRw?qA%jFE4M`>($-eU0t}U@|am5IX+mL3uAU8g?9M6ufJT*KAs)dm$$c$)RRQu9VyjD>O{F^t1h`Q@~+?B zzP`S_ysHnMeg315`WNT<5IoWtHb7zIXbA2tr&*TAV+{jru77iVbN$WTs_E1G;P7}p z-<^Nhc6~FZAcC0w>M#F%akiXo@3xzv>9%+4!RK{VP1-j8=*hib{o=E4zW(F8_v>n! zBSPjKTXVi^^1J+KQdhR@wygj@{p4vrtG~azdi(l?pqU*Vs@Yz(n{u|8TlwtS(~s^w z`M3Z5|9E%P41+|Wgk53=76JiPqttc1Ad^AOX;v1~d_SCRW6FHyfCPn!u*h8PGfR19 z?P5CFUa!_oT-Jq|EW5TJ8C0QPr6B~q=+hMzk+aG#b`Da@$xdsxbuG3$+nM_OeJ77VB(eRsc}2L~J0%L<*{+ zpu&kcp;2WeGRD{#q9`~tpv(dQ3M@!Q(WnR_T4Rlkib+LMN(|tOqMl4L?<@fdlC?1; z6|u$|LwTNC?^u}(i2#8bA|lHI3IHOS1V9K#h5BBUSvc?zNm*1RCWx^cM`pFI5LQq@ zL!cO00FV+Ws5d6Y$ikp1L0KfRWQmseW^w>N=^f(Y+DM49s;sT!q(Nl*#NP(O^3 zISG#}&N*ZTB~Tg@h^PXvh$uwCI0kf?0owK>6%jxb0i8*S4Ot*o0I{TdEDM1O8e@^r zSyE<}WDT)J6;V)CF$S%7teRpZAab;iLV(@(&z?N`>HV{VIxoTym9^{oT^tJ(lRHD!N%E?-_oc;c*N4PU?;jj5r|0iJ zh@?LBCZn9aBr8BHAb^I19CA=l$uhftso% z9XWA`mJkhjL(XT4z(dFokCs#8GgV?GPQod6ZL1;jsN1%y>e>~#aRymAro_UilxH`W zyO-I;K~B907Cx^sZL$$y=+b7_hgtQ}y(1M3JluP9c2qhDBedao48@N9&1Tk(;qu~c zz3w)<>3nu@a^igz$Fb{n`?CH9$hn0sfDLKt_~+c)2} z=MCG3j~`Ad9JOG97|*|b^WpluIV?`U_~`khwn>bDV>7O0*s0Xj4l_Y;L`hjuoVOq{ zFoZ2wSAr>1ipHA+kq`nEOgU?2d@W!jLlRX{mpL*nrW8Z8fC?H@^wvm90GfH%-QA@K zE9qNM20#U;7)MbM7D*`qD=Bzu0Wge1fS^V*<45KEq`vP?9-d91H083&@=OOcOd2Dh zDn|rXPD4LzH;v)V?q-Z_SYM^E7<*|-_H>)m?SCQHS`+2P5I4FX_f2@(21 znj}LG(}U?}&z?-OeCT!sS(A)22$*8@lX)?nO;8huLApMy+h#Dy12{8|a2vZUcSTi+ z%M@WI-rA+LJ|qngR6~J2b^(}pUJW8+U|>y=jiPlfA`BtycH5L9ITu7m5-i-}xcceG z&*s*B`})=MFP{GVN1q;pt?I=e-&{9Q->kQ9U%hLsz^t%!QI%!pEU_dN5>VB190o^! zIw=m1@7G{z17amvO9~cQlmP$~6jZcQ03Z_s8#m1+69KV?ydy{GYc8@VQ7Cc_O$8~0 zxEo?Gm@rrvoMm*YAe@MB6>m#Z+D z6ov1*#yL|=@{8TO2kmq+KU^HG!^qp+uCn>{`OW6$E=Jjg^{($Zq#=gHP?i3#|I=UR zdA>ZHJ7?p_M&PKbr+!bbNAn{$cax!_{oIc<|)ta@GES{@s7X1P`Czk3_w}#it+59xUN}1{^2L zqkeUd)dVKcw-G|@)_IJBo z9J{7+=IO)3$MhP~xVzon?bZ>5GV3y&&x*Rr(%3f5 z&U+uzu-RAGL;3ABnX~)pT1YtU@t#jL^ zsWYC=%6TS^TTlRTU`_Gx(WfzU)1%2jb@|~kY`bY*R8`&XLf3T+!kmOrk#-li+a^wz zbv~iC!`B}+Mk8a&@(dX^H|e{#m)~BE*`zo;Sbp*R;r+u!7`txMi)L!;%XKfl&eUA4 zw~Z#CL2$L0&aAS80R3R{$-~9d-@QKn`kKhembJ!4SY0q5|w4)Xb5rvDOlyB}^(Ry2qC|>kRCf=0;Q6&v;q(x_cw4 z98!=y^HEe25D=&^u;^ZpVF-pUa7ZEy0;;NHqX2_(HZul?VX!PjdxShX=d7~=z$(sp zGKK_c-_-<01raf-5?>SfM_kD0*j#RW9|(9)5d0xIY%tLH$GdpZGJTS$+vdWQfx&}$f znZSXJK{B8~B+M!x#-g*1RVAqclebp2k1?4a^sY&TBMS#aj4_Pk=-S2_Y@H>W4PhK3 z=UJX-1_6p9tExi!vAtZ~zWVU)W_=Zdo*f*QG?B?dv#E6)dN9SjuI(A!3VJlN>BRXQ z3~4uXn_U;;bT-}Xx~3h+6rC+XMKJ{JM>(pFaB$5Ined+V<`GcHG@u7je z&!wuxZ}Q1vw@%-GbN=JU$BaS*Y13R>ue!Rv|NQaUG8>r6#Y8K=NQYUTTeJ`oi4gFx z+jR@l$~Q1p)=h+zHLSwsb-YN{e~~@QOYXsm+GI?$V>9$F_Rhs1o=8wL>!VUg0feow zMnF``d=eoxLmwra=s^Tj1HN!kMpTW7LzKy)oXx9#>=xCe+W=ibqP}jrZjc|aDenI9 ziO2Nn)!Vo4R@a-<8W+9Egb{F5bwWnyd3wZ>=qgFhaj+S6zd(Khvx_ zJ)LBl_d}&N1dEbxn_aAndk^m)9UhvLW@rnt8qzW=<8nTzP?pzuW(3(EYgp45}vDH$N=yrndm7Dx4LcfLMS9hxv2#75v zun99ItP4O;o=OTSh{4Qx!&qh2>Cv%W&ZnPz`uP6Ygw-5X|Lkx&dG+O&cbD()-8)p3 zwp|aQIXqn!h5d(L|F)b=PLB@1`ufYi|NZZ$^}({93d_mqa=X6#hrj!9bXZMh&(5zt z>~@=@qoZffo>yh9B+a&I+wS0SHmSYgei-!0gC}u}U;p8|-J;sw-WY3ud>0j6R%S&? zj1rwQL^zD&?P~2Dafk--&AIW`Y&JVYwT3{LkkA@rkpwYl9}*$xlv&0&^n(&;_1%XJ z!N!qkB^2|*7R7F8f@Fu&nX*JuRdps$f`SA_SX7NAg_uSKah{9XKc1e9Lk}`K11_`5 zxZ8EADJDwEIG>f%f=RO+!`PbCKe%^jtTEn5hvjTBT^^gNm_E3tz>pPbT+6iV%B*vi ziiyOq>jGlIwd*4pKS|9lj{Ra;LOZG(>PfXRMQ&L`+@^88Yug>~x>y_@9aL2|%4|CQ z^pi*L-o06E0h|;Q^hNpcNB64S{mtLJdU)^t@!3gUnF1n8&oN4B4 z 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

    5J4nsGrc56Y6vpNv^b}0Q| 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%0DoqUH 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�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 u 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%0D_=I*8!o2 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�jcez)Tz~_q?uE1)jpKVl~9X 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 A?f?J) literal 0 HcmV?d00001 From 399485fd48464e652405012434bc160ec4c9b714 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 4 Mar 2022 10:38:36 +0800 Subject: [PATCH 029/507] Add Project Portfolio Page (PPP) for Jun Yang --- docs/team/dannytayjy.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docs/team/dannytayjy.md diff --git a/docs/team/dannytayjy.md b/docs/team/dannytayjy.md new file mode 100644 index 00000000000..152f2efcea4 --- /dev/null +++ b/docs/team/dannytayjy.md @@ -0,0 +1,39 @@ +--- +layout: page +title: Tay Jun Yang's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. + +Given below are my contributions to the project. + +* **New Feature**: + * To be updated soon + + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=dannytayjy&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + + +* **Project management**: + * To be updated soon + + +* **Enhancements to existing features**: + * To be updated soon + + +* **Documentation**: + * User Guide: + * To be updated soon + * Developer Guide: + * To be updated soon + + +* **Community**: + * To be updated soon + + +* **Tools**: + * To be updated soon From 4a6d2de43375ad5afc009767bf4c313f1d44fdf0 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 4 Mar 2022 11:27:02 +0800 Subject: [PATCH 030/507] Update Project Portfolio Page (PPP) for Jun Yang --- docs/team/dannytayjy.md | 78 ++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/docs/team/dannytayjy.md b/docs/team/dannytayjy.md index 152f2efcea4..d2e9de44873 100644 --- a/docs/team/dannytayjy.md +++ b/docs/team/dannytayjy.md @@ -1,39 +1,39 @@ ---- -layout: page -title: Tay Jun Yang's Project Portfolio Page ---- - -### Project: ManageEZPZ - -ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. - -Given below are my contributions to the project. - -* **New Feature**: - * To be updated soon - - -* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=dannytayjy&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) - - -* **Project management**: - * To be updated soon - - -* **Enhancements to existing features**: - * To be updated soon - - -* **Documentation**: - * User Guide: - * To be updated soon - * Developer Guide: - * To be updated soon - - -* **Community**: - * To be updated soon - - -* **Tools**: - * To be updated soon +--- +layout: page +title: Tay Jun Yang's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. + +Given below are my contributions to the project. + +* **New Feature**: + * To be updated soon + + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=dannytayjy&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + + +* **Project management**: + * To be updated soon + + +* **Enhancements to existing features**: + * To be updated soon + + +* **Documentation**: + * User Guide: + * To be updated soon + * Developer Guide: + * To be updated soon + + +* **Community**: + * To be updated soon + + +* **Tools**: + * To be updated soon From bd56f62e2ba79dfddaa9ebab110b6adc9f295c3c Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 4 Mar 2022 14:06:14 +0800 Subject: [PATCH 031/507] Add target user profile, value proposition, and user stories --- docs/DeveloperGuide.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..c55d98b660a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -257,27 +257,30 @@ _{Explain here how the data archiving feature will be implemented}_ **Target user profile**: -* has a need to manage a significant number of contacts -* prefer desktop apps over other types -* can type fast -* prefers typing to mouse interactions -* is reasonably comfortable using CLI apps +Company Managers/Supervisors -**Value proposition**: manage contacts faster than a typical mouse/GUI driven app +**Value proposition**: +Problem intending to solve : not being able to keep track of the task assigned and to aid in overseeing employees. ### User stories Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| 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 | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|----------------|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| +| `* * *` | user | add a task to the database | better organise my time | +| `* * *` | user | delete a task from the database | better organise my list | +| `* * *` | user | view all my tasks | have a better picture of my schedule | +| `* * *` | user | able to edit a task | update any details | +| `* * *` | user | able to view my tasks for the day (i.e. today) | better manage my time | +| `* * *` | user | able to view the tasks for the week | have a better picture of my schedule for the week | +| `* * *` | user | view the tasks on a specific day | plan for that day ahead | +| `* *` | CEO or manager | have the flexibility to reschedule tasks that are assigned to any employee | better manage the manpower and deadlines | +| `* *` | manager | retrieve the list of tasks allocated with an employee | allow myself to have an overview of the employee's workload. For example, command: ``Track | +| `* *` | new user | have a more begineer-friendly user guide | learn more about the product | +| `* *` | recurring user | be able to see tasks that are due within X number of days | better manage my time | +| `* *` | advance user | able to sort tasks based on a specific location | better plan my travel to that location | *{More to be added}* From 344673a78cc91a0366e9245eb1b92d30879ab434 Mon Sep 17 00:00:00 2001 From: Ng Wen Hao Dennis <36025582+Denniszedead@users.noreply.github.com> Date: Fri, 4 Mar 2022 14:07:37 +0800 Subject: [PATCH 032/507] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c55d98b660a..c407e176d43 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -282,7 +282,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | `* *` | recurring user | be able to see tasks that are due within X number of days | better manage my time | | `* *` | advance user | able to sort tasks based on a specific location | better plan my travel to that location | -*{More to be added}* ### Use cases From ab5e20694f58a22215ceee8441a1588bbeb272ec Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sat, 5 Mar 2022 18:55:34 +0800 Subject: [PATCH 033/507] Create PPP for aaron-ljx --- docs/team/aaronljx.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/team/aaronljx.md diff --git a/docs/team/aaronljx.md b/docs/team/aaronljx.md new file mode 100644 index 00000000000..0a899fd65e2 --- /dev/null +++ b/docs/team/aaronljx.md @@ -0,0 +1,37 @@ +Loke Jin Xue Aaron's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. + +Given below are my contributions to the project. + +* **New Feature**: + * To be updated soon + + +* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aaron-ljx&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + + +* **Project management**: + * To be updated soon + + +* **Enhancements to existing features**: + * To be updated soon + + +* **Documentation**: + * User Guide: + * To be updated soon + * Developer Guide: + * To be updated soon + + +* **Community**: + * To be updated soon + + +* **Tools**: + * To be updated soon From af9603457beb4d367f5ef7ac98624b738ddc96f3 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sat, 5 Mar 2022 19:23:17 +0800 Subject: [PATCH 034/507] Update AboutUs.md --- docs/AboutUs.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..8a3327ef404 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -57,3 +57,14 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: UI + +### Loke Jin Xue Aaron + + + +[[github](http://github.com/johndoe)] +[[portfolio](team/johndoe.md)] + +* Role: Developer +* Responsibilities: +* In Charge of Component: Logic From d39cc6a6ec0b7a0cfafadfec8ba7d0a4db9953b2 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sat, 5 Mar 2022 19:24:13 +0800 Subject: [PATCH 035/507] add profile picture for aaron-ljx About Us --- docs/images/aaron-ljx.png | Bin 0 -> 148307 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/aaron-ljx.png diff --git a/docs/images/aaron-ljx.png b/docs/images/aaron-ljx.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b74b7a40b0269b177408fe34bdb4bc28bdc005 GIT binary patch literal 148307 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� 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

    >h3dXBA&*qPeDjv9X#X(IKakq{KkRwRv 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 Date: Sun, 6 Mar 2022 19:25:22 +0800 Subject: [PATCH 036/507] Update Use-Cases for DG --- docs/DeveloperGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 66149a285a5..eaccc022a6e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -285,7 +285,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli > Definition: > For all use cases below, the **System** is `ManageEZPZ` and the **Actor** is the `User`, unless specified otherwise. -> More specifically, the `User` are **Supervisors**. +>
    More specifically, the `User` are **Supervisors**. **** @@ -455,10 +455,10 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes from step 4. -* 3b. User uses View Task commands with the wrong syntax +* 3b. User uses find Task commands with the wrong syntax * 3b1. ManageEZPZ sends an error message to User, indicating syntax used for - the View Task command is incorrect, attached with the correct syntax format. + the find Task command is incorrect, attached with the correct syntax format. Use Case ends. From 780f815885b9cf140602aa3e118b5cdfadce9670 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 19:57:09 +0800 Subject: [PATCH 037/507] Update user guide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f9e99c7f065..7321e45922c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -84,7 +84,7 @@ Examples: * `add n/John Doe p/98765432 e/johnd@example.com` * `add n/Betsy Crowe t/friend e/betsycrowe@example.com` -### Adding a Task: +### Adding a Task: `addTask` Adds a Task into the Task list. From 75d8dace3218fbccebfe10cebd7f5703270d7ffa Mon Sep 17 00:00:00 2001 From: denniszedead Date: Sun, 6 Mar 2022 20:22:13 +0800 Subject: [PATCH 038/507] Update In Charge Of Logic in AboutUs.md --- docs/AboutUs.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index ad375c1e44c..0fb40da01b3 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -47,6 +47,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Deliverables and Deadlines, Quality Assurance +* In Charge of Component Logic ### James Doe From 397bda663bbeb35046a638c776989b0a17f502bc Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 20:32:20 +0800 Subject: [PATCH 039/507] Update AboutUs.md --- docs/AboutUs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 8a3327ef404..17c2748581f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -62,9 +62,9 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/aaron-ljx)] +[[portfolio](team/aaronljx.md)] * Role: Developer -* Responsibilities: +* Responsibilities: Deliverables and Deadlines * In Charge of Component: Logic From 7e9f1613bfde4c54a315f1b87e75b3614c53bde3 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 20:32:53 +0800 Subject: [PATCH 040/507] Update AboutUs.md --- docs/AboutUs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 17c2748581f..05e2d84ebb9 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -65,6 +65,6 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/aaron-ljx)] [[portfolio](team/aaronljx.md)] -* Role: Developer -* Responsibilities: Deliverables and Deadlines -* In Charge of Component: Logic +* Role: Developer +* Responsibilities: Deliverables and Deadlines +* In Charge of Component: Logic From 4b95e02d4634c9ba133e2ef631c74205387e2ae6 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 20:37:29 +0800 Subject: [PATCH 041/507] Update AboutUs.md --- docs/AboutUs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 05e2d84ebb9..17c2748581f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -65,6 +65,6 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/aaron-ljx)] [[portfolio](team/aaronljx.md)] -* Role: Developer -* Responsibilities: Deliverables and Deadlines -* In Charge of Component: Logic +* Role: Developer +* Responsibilities: Deliverables and Deadlines +* In Charge of Component: Logic From 163c1ac676ab6b95363b317ffb5d58767eb18f8e Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 21:01:42 +0800 Subject: [PATCH 042/507] Update AboutUs.md --- docs/AboutUs.md | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 36d691b14f2..4d1d3ced60f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -9,15 +9,16 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` ## Project team -### John Doe +### Loke Jin Xue Aaron - + -[[homepage](http://www.comp.nus.edu.sg/~damithch)] -[[github](https://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/aaron-ljx)] +[[portfolio](team/aaronljx.md)] -* Role: Project Advisor +* Role: Developer +* Responsibilities: Deliverables and Deadlines +* In Charge of Component Logic ### Alfred Koh @@ -62,14 +63,3 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Integration, Documentation, Deliverables and Deadlines * In Charge of Component Model - -### Loke Jin Xue Aaron - - - -[[github](http://github.com/aaron-ljx)] -[[portfolio](team/aaronljx.md)] - -* Role: Developer -* Responsibilities: Deliverables and Deadlines -* In Charge of Component Logic From 3a9a681b37e57f95d1b16d74e2ece159458a2b11 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 21:07:37 +0800 Subject: [PATCH 043/507] Update site-wide settings --- docs/_config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 6bd245d8f4e..4409948b4df 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,4 +1,4 @@ -title: "AB-3" +title: "ManageEZPZ" theme: minima header_pages: @@ -8,7 +8,7 @@ header_pages: markdown: kramdown -repository: "se-edu/addressbook-level3" +repository: "AY2122S2-CS2103-F11-1/tp" github_icon: "images/github-icon.png" plugins: From 965c89e1485b9f7efed0ead0dc5ae727b3c515a7 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 21:40:58 +0800 Subject: [PATCH 044/507] Update UserGuide --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7321e45922c..3d311d704eb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -140,7 +140,7 @@ Format: `delete INDEX` Examples: * `delete 2` deletes the 2nd Task in the Task list. -### Locating persons by name: `find` +### Locating Task by description or Date: `find` Find tasks based on the task description or date in the format of (DD-MM-YYYY). @@ -193,8 +193,8 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ -**Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
    e.g., `add n/James Ho p/22224444 e/jamesho@example.com` -**Add Task** | `add /task TASK_DESCRIPTION`
    e.g., `add /task read book` +**Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
    e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` +**Add Task** | `addTask /TASK_TYPE TASK_DESCRIPTION`
    e.g., `addTask /todo read book` **Clear** | `clear` **Delete** | `delete INDEX`
    e.g., `delete 3` **Find** | `find /task TASK_DESCRIPTION`
    e.g., `find /task homework` From 5f3585d4d8235720e7e9ce507f7363322ce0a042 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 21:48:13 +0800 Subject: [PATCH 045/507] Add files via upload --- docs/images/Ui.png | Bin 14607 -> 18813 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 5bd77847aa2429edac366ebe3e00650b6dd909d8..efca4f44d8249bfad4039ec1953dbc024cde93c4 100644 GIT binary patch literal 18813 zcmd74cT|&U_b!a%sAEM`1f?kfQ7I8oS|~G$AfTY5QUx>-q7Xm?LkR)L8oGcKr6~xg z2pEur7O)T^f!==lz}Yowa`7`qugWaLo{S?&mIhUwiLs zUw5KT*jcS#vwe+}l+=3bqZWTkN&UhC|4#k35`4l;?ok5&S$+AabD)&ehPTkaWi5v{y zA1?FERmz-1c(*_E9(*19_0GSfhLD4gXKW83R0)@QPM*|CSswEAqe{U&n%?L2^8)Qs zllFDCEq>nj3tMcFf>UohRtJ1aM($a)`$S9g`NOG)_e_g!bYZy_-RyF-e2H030!=8> z!p4CQl$DXvp}1pZTJ z=aKeqDkEaDYD5t%cl7bj!?zn){`GFL-0JG;CkiGZmtDzzeGU3xsPh=Bn~arG*Gi(f zWOi6lkSFfr!#{j^p>!PdYl5$o6vG%L;zdeuK@(lvEZt4S^-@x9ax4eZGO2SuF|uPsM@ zdWT1y=vVRyYggAckAW2~)#OP_y~3)nB1NqJXg!uvJa;oqNd_;PR1$G((25AGg@v2N zOW(>r?ZCv5cvn{oR~BOVz*QNzHeS_i=BbY&Uh10f>0(C(e;* %CddxSqA9cd^O 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 RAXge19gVx{rMDi1{6Bg4z)AoB From 69c86bb8851404945fe77106fbbb193b9c050bd5 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 21:49:38 +0800 Subject: [PATCH 046/507] Update UserGuide --- docs/UserGuide.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3d311d704eb..5f8c6724e80 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,7 +32,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`deleteTask`**`3` : Deletes the 3rd task in the current Task list. - * **`add /todo read book`** : Adds a todo task with a description of `read book` to the Task list. + * **`addTask /todo read book`** : Adds a todo task with a description of `read book` to the Task list. * **`exit`** : Exits the app. @@ -45,7 +45,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage **:information_source: Notes about the 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`. + e.g. in `addEmployee n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. * Parameters for adding employees can be in any order.
    e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. @@ -78,11 +78,11 @@ Format: `help` Adds an employee to ManageEZPZ. -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL` +Format: `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL` Examples: -* `add n/John Doe p/98765432 e/johnd@example.com` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com` +* `addEmployee n/John Doe p/98765432 e/johnd@example.com` +* `addEmployee n/Betsy Crowe t/friend e/betsycrowe@example.com` ### Adding a Task: `addTask` From 925f2bf7d0957b4fbb7d60ecf93e8ee39b58e6d3 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 6 Mar 2022 21:53:03 +0800 Subject: [PATCH 047/507] Update README.md final --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9493cce1c33..bd9f08d178d 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,14 @@ ![Ui](docs/images/Ui.png) -* This is **a sample project for Software Engineering (SE) students**.
    - Example usages: - * as a starting point of a course project (as opposed to writing everything from scratch) - * as a case study -* The project simulates an ongoing software project for a desktop application (called _AddressBook_) used for managing contact details. - * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. - * It comes with a **reasonable level of user and developer documentation**. -* It is named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...). -* For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**. -* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.
    + + Example usages: + * add day-to-day tasks + * view all day-to-day tasks to have a better picture of the current schedule + * view a specific day-to-day task + * edit day-to-day tasks when details of said task has been changed + +Acknowledgment:
    + +This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). From f7f5d91e359a01f0e678a430a89675aab4a5787c Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 22:23:45 +0800 Subject: [PATCH 048/507] Update index.md --- docs/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/index.md b/docs/index.md index 87e36174854..51f0efb8d69 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,17 +1,17 @@ --- layout: page -title: AddressBook Level-3 +title: ManageEZPZ --- -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/AY2122S2-CS2103-F11-1/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2122S2-CS2103-F11-1/tp/actions) [![codecov](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp/branch/master/graph/badge.svg?token=ILZDIFELY7)](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp) ![Ui](images/Ui.png) -**AddressBook is a desktop application for managing your contact details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). +**ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). -* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). -* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. +* If you are interested in using ManageEZPZ, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). +* If you are interested about developing ManageEZPZ, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. **Acknowledgements** From a5c8daa53ef577c0c8bf459e2388ac571dfbf758 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Sun, 6 Mar 2022 22:31:11 +0800 Subject: [PATCH 049/507] Update user profile and value proposition --- docs/DeveloperGuide.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c55d98b660a..bbd6eef8626 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -257,11 +257,17 @@ _{Explain here how the data archiving feature will be implemented}_ **Target user profile**: -Company Managers/Supervisors +* Company Managers/Supervisors wants to keep track of all the tasks given to their subordinates +* They need to assign tasks to their subordinates as well +* Prefers typing commands instead of clicking buttons +* Needs a local database to store all tasks **Value proposition**: -Problem intending to solve : not being able to keep track of the task assigned and to aid in overseeing employees. +* An application to show all the tasks assigned to the employees +* Tasks should be assigned to the employees as well +* Commands are typed using command lines +* All tasks created are stored in the local database ### User stories From 8fd6a3dd2707b2b6a3170ccca0a830b251ea08d6 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sun, 6 Mar 2022 22:38:40 +0800 Subject: [PATCH 050/507] Updated Guarantees portion for use-cases. --- docs/DeveloperGuide.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index eaccc022a6e..ab44334c4cb 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -283,10 +283,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Use cases -> Definition: -> For all use cases below, the **System** is `ManageEZPZ` and the **Actor** is the `User`, unless specified otherwise. ->
    More specifically, the `User` are **Supervisors**. +> Definition: +> - For all use cases below, the **System** is `ManageEZPZ` and the **Actor** is the `User`, unless specified otherwise. +> - More specifically, the `User` are **Supervisors**. +> Guarantees: +> - For any use cases below that changes any data, ManageEZPZ will guarantee that the data is updated and saved. **** **Use Case 1 - Add Task** @@ -411,6 +413,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use Case 5 - Unmark Tasks** +Preconditions: User is currently using ManageEZPZ. + **MSS** 1. User enters the command to view Tasks. From e37dff161326e8b5255f82d13fcaac7c91687287 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sun, 6 Mar 2022 22:42:28 +0800 Subject: [PATCH 051/507] Updated CI Status link to match with our project's CI --- README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9493cce1c33..6f1c07cec69 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,17 @@ # ManageEZPZ -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/AY2122S2-CS2103-F11-1/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2122S2-CS2103-F11-1/tp/actions) [![codecov](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp/branch/master/graph/badge.svg?token=ILZDIFELY7)](https://codecov.io/gh/AY2122S2-CS2103-F11-1/tp) ![Ui](docs/images/Ui.png) -* This is **a sample project for Software Engineering (SE) students**.
    - Example usages: - * as a starting point of a course project (as opposed to writing everything from scratch) - * as a case study -* The project simulates an ongoing software project for a desktop application (called _AddressBook_) used for managing contact details. - * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. - * It comes with a **reasonable level of user and developer documentation**. -* It is named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...). -* For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**. -* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.
    + +Example usages: +* add day-to-day tasks +* view all day-to-day tasks to have a better picture of the current schedule +* view a specific day-to-day task +* edit day-to-day tasks when details of said task has been changed + +Acknowledgment:
    + +This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). From f2bb4a5b3f452414a354421fd93fc90035edc512 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sun, 6 Mar 2022 22:56:01 +0800 Subject: [PATCH 052/507] Updated use-cases to include preconditions --- docs/DeveloperGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ab44334c4cb..59ab22e0adc 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -391,6 +391,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use Case 4 - Mark Tasks** +Preconditions: User is currently using ManageEZPZ. + **MSS** 1. User enters the command to view Tasks. From e6aebc70b96d5219b6ee5b7791bf6d49569a2464 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Sun, 6 Mar 2022 23:07:19 +0800 Subject: [PATCH 053/507] Update help message to small png extension --- .../{helpMessage_new.PNG => helpMessage_new.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/images/{helpMessage_new.PNG => helpMessage_new.png} (100%) diff --git a/docs/images/helpMessage_new.PNG b/docs/images/helpMessage_new.png similarity index 100% rename from docs/images/helpMessage_new.PNG rename to docs/images/helpMessage_new.png From 20ab4778197cb1bc41b066bb3623bd46d9052ede Mon Sep 17 00:00:00 2001 From: ThreeSugar Date: Wed, 9 Mar 2022 16:21:02 +0800 Subject: [PATCH 054/507] edited PPP filename --- docs/team/{aaronljx.md => aaron-ljx.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/team/{aaronljx.md => aaron-ljx.md} (100%) diff --git a/docs/team/aaronljx.md b/docs/team/aaron-ljx.md similarity index 100% rename from docs/team/aaronljx.md rename to docs/team/aaron-ljx.md From ccadddb86fb43f1efbda1ad6895958a0652663ff Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Wed, 9 Mar 2022 16:36:27 +0800 Subject: [PATCH 055/507] Create base Task class --- src/main/java/seedu/address/tasks/Task.java | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/main/java/seedu/address/tasks/Task.java diff --git a/src/main/java/seedu/address/tasks/Task.java b/src/main/java/seedu/address/tasks/Task.java new file mode 100644 index 00000000000..70565a97245 --- /dev/null +++ b/src/main/java/seedu/address/tasks/Task.java @@ -0,0 +1,56 @@ +package seedu.address.tasks; + +import java.util.List; + +/** + * Represents the Tasks a user could create. A Task object would correspond to a task + * inputted by a user either a Todo, Deadline or Event. + */ +public class Task { + + private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) + private String taskDescription; + protected boolean isDone; + + /** + * Constructor for the Task class. + * @param taskDescription information about the task. + */ + public Task(String taskDescription) { + this.taskDescription = taskDescription; + this.isDone = false; + } + + /** + * Returns X if the task is done, otherwise blank. + * @return the string representation of the status of the task. + */ + public String getStatusIcon() { + if (this.isDone) { + return "X"; + } else { + return " "; + } + } + + public void setTaskDone() { + this.isDone = true; + } + + public void setTaskNotDone() { + this.isDone = false; + } + + public String getDescription() { + return this.taskDescription; + } + + /** + * Returns the string representation of the task. + * @return a string representation of the task, consisting of its description and whether its done or not. + */ + @Override + public String toString() { + return "[" + getStatusIcon() + "] " + getDescription(); + } +} From 53c4a03df07168a588a341b5b1634bab468f1caf Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Wed, 9 Mar 2022 16:39:40 +0800 Subject: [PATCH 056/507] Update Task class --- src/main/java/seedu/address/tasks/Task.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/tasks/Task.java b/src/main/java/seedu/address/tasks/Task.java index 70565a97245..1cf35b89a03 100644 --- a/src/main/java/seedu/address/tasks/Task.java +++ b/src/main/java/seedu/address/tasks/Task.java @@ -7,10 +7,9 @@ * inputted by a user either a Todo, Deadline or Event. */ public class Task { - + protected boolean isDone; private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) private String taskDescription; - protected boolean isDone; /** * Constructor for the Task class. From 5210c20a30e7e407b0d4d12e992f354c2e2f3921 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Wed, 9 Mar 2022 17:14:15 +0800 Subject: [PATCH 057/507] Update UserGuide --- docs/UserGuide.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5f8c6724e80..5c883eeb89b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -30,8 +30,6 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`clear`** : Deletes all Tasks. - * **`deleteTask`**`3` : Deletes the 3rd task in the current Task list. - * **`addTask /todo read book`** : Adds a todo task with a description of `read book` to the Task list. * **`exit`** : Exits the app. From 74c289ab0b0a5ae1dddde76d0197794a3433324d Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Wed, 9 Mar 2022 18:10:50 +0800 Subject: [PATCH 058/507] Update UserGuide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c883eeb89b..f05174f3343 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -96,7 +96,7 @@ Format: For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format)

    =S?43 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 z zMbzectvsAA3k}nMA>G9NApDD)r{6(xI^o2PD}(|s4UCs9xZJC;>F8`5FheKN@;fS+ z&zr^E*pmBM`YBEMlUV@dI%CDtPw%t#p`j%$`nowR7BjR*V$@$bncwaehQ;6J^MdEZ~@5y`)Je4X{xxDPhxW8v`_hDI@A8 zLCw6nUx7~s75nlK$HM;9P5MOs%h|HVR@=aK&!ivQ4n!lDmPolpBURLv92GPdGk)|v z0FfvWYIEFCAo}C2D#kIG7{C<yofWx-L`u=vPZZabPE(&$4FcCry80jbRF)1!cE_QIg6aCB2 zZ_GMH!effH0DK3(mcSftW;-mAO|+F!EH_P1`p{Nfk)-hE#yTzBEkdrd^L2-;Z5L== z8Y#4HMZUt}rjnmwA2q(BTf%U0!M_lO{VNPY{d1Fg&WO|Enpq^7zUX6bHqo9S8ohJ< zJH%?SD&F(Qh>7bjKgu8{R_H^J&vRs(F7?c#fb28Y88x)oPd364z!y;^qK zal3@gPUU0&!8k59_M!h{eoIYKR@8`86IDoOk2)JK@|^lf zJ0eY03D)?ydoFJG10v~O;BcAFdi zD4s4S^p}|>n}aeix4y)B>YC9fW)@WYTp&uoS4zh0tHGele<12DZT^hGJAZ=e4br|{i^20K$81je0S&}G$6(EG7C!GGoEbf`tkz}8zd&Zx@-35w7oY52qNOJ9I7sZaH*@0fsz6%Yu?&jgOg}ykNp(TCnbcKQppR+N8lE{9w_%5B5RL_A> zkjm@#&*+lxn05%+n?!O(0#;!0_loQ}MOIsr#4-$L1C**8vGdm&mHOKALxGcsd96aA z`sSrHk&BZFbnK~U-o3ck9>3dnzvenS+sO00keFg4`*U9j4*#9<;bQ+(SMg0p1oKy% znUWHACmqM_1a2=(={rEXiP~?;PW`+CiS@zawCLq33YI2rkH8^PTz%0F)V%ykKm?(n z!C(jesv%^EHu8%fN*_T|Q*(s42;T0gSNLF|IKOr}NwQl0G^8JN>l}URH@Nqs_*8(A zDPVTtJoZeqWB6Gs6+O)~VInVT!$3Oe!_Ek!U00OP)@Uca1xM#Mw^V9loVOkNBjDw#y%%GxVcD3zYR zXerv~29C7=S%__dmk+lC$8hHmay4uSgoH(D{i}zYd{2Fd`D;hOZm!;*SEb)qQevv7 z&&(nC5I{{f!tO<>yzLF#Noj6_DV_!rNn%f6)KRe;%-DR)=%%=G2f_<_)ZS=8 znz#5wX$Bh&%YeX2gm%vf3mXPsbY77c(cQJymY2b2q?FBxVu_9hZPJphYP~Whl~+TS zgy&~ywc!r_KV$SQqloQ6J9&w3)Vw3Vdh(s0DkvxcY2n?ws3Kn)R8ynUyaQqrIewR5 zt|yyam5=J8dbyafuIQ@gzk)AS4OrWazkLk)CTwUB5oLaHG*+6VixUYUYY%%3m{A}a z_=<9=w2eN}y&I=H6-YmA&r!^()zD~P=u@emvpwPs7RSaSTu=XODC6{bj6T8e`MyK= zzp)#4ed4`5q{t@Xdlb>O;Bz@mqa!&-e4i`*n|;y9YvBE;p7jAGBkAPZ53LYu_aag+ z3k1~g+c-}`Hu4t@?@w3f*k7FZDI$2sTijYyX`q!Ww0%AQstJEz?{uSLw&bTCpF{h1 tqrmUz-~ElN2~G-`D~KG!9Sz=?@$DjiuiA_Ar`iFOMtV+jI_AI0{{giTICcO4 literal 0 HcmV?d00001 From 18403547efb3a8b95d1c706c0943d26c0472545b Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 4 Mar 2022 03:43:16 +0800 Subject: [PATCH 025/507] Add missing square brackets --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 13fbc60d802..ad375c1e44c 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -42,7 +42,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` -[[github](http://github.com/denniszedead) +[[github](http://github.com/denniszedead)] [[portfolio](team/johndoe.md)] * Role: Developer From b5a947731abf2ae9a0e6929d26911062c12ebffc Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 4 Mar 2022 04:00:50 +0800 Subject: [PATCH 026/507] Add PPP of Ng Wen Hao Dennis --- docs/AboutUs.md | 2 +- docs/team/denniszedead.md | 12 ++++++++++ docs/team/johndoe.md | 46 --------------------------------------- 3 files changed, 13 insertions(+), 47 deletions(-) create mode 100644 docs/team/denniszedead.md delete mode 100644 docs/team/johndoe.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..9c9214ca054 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -43,7 +43,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[portfolio](team/denniszedead.md)] * Role: Developer * Responsibilities: Dev Ops + Threading diff --git a/docs/team/denniszedead.md b/docs/team/denniszedead.md new file mode 100644 index 00000000000..56d75de8349 --- /dev/null +++ b/docs/team/denniszedead.md @@ -0,0 +1,12 @@ +--- +layout: page +title: Ng Wen Hao Dennis's Project Portfolio Page +--- + +### Project: ManageEZPZ + +ManageEZPZ is a desktop application that allows managers or supervisors to manage employees and assign tasks to them. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. + +Given below are my contributions to the project. + +## To be added soon \ No newline at end of file diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md deleted file mode 100644 index 773a07794e2..00000000000 --- a/docs/team/johndoe.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: John Doe's Project Portfolio Page ---- - -### Project: AddressBook Level 3 - -AddressBook - Level 3 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. - -Given below are my contributions to the project. - -* **New Feature**: 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}* - -* **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys. - -* **Code contributed**: [RepoSense link]() - -* **Project management**: - * Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub - -* **Enhancements to existing features**: - * Updated the GUI color scheme (Pull requests [\#33](), [\#34]()) - * Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]()) - -* **Documentation**: - * User Guide: - * Added documentation for the features `delete` and `find` [\#72]() - * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() - * Developer Guide: - * Added implementation details of the `delete` feature. - -* **Community**: - * PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]() - * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) - * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) - * Some parts of the history feature I added was adopted by several other class mates ([1](), [2]()) - -* **Tools**: - * Integrated a third party library (Natty) to the project ([\#42]()) - * Integrated a new Github plugin (CircleCI) to the team repo - -* _{you can add/remove categories in the list above}_ From 41e4260ea6734aac2aed5a8a2f4f9d3ab67e57f0 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 4 Mar 2022 04:05:00 +0800 Subject: [PATCH 027/507] Add newspace at end of denniszedead.md --- docs/team/denniszedead.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/denniszedead.md b/docs/team/denniszedead.md index 56d75de8349..2ca512460a7 100644 --- a/docs/team/denniszedead.md +++ b/docs/team/denniszedead.md @@ -9,4 +9,4 @@ ManageEZPZ is a desktop application that allows managers or supervisors to manag Given below are my contributions to the project. -## To be added soon \ No newline at end of file +## To be added soon From 8a7b6b35518c357d5cc0552e4891e4511078a2d3 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 4 Mar 2022 10:33:25 +0800 Subject: [PATCH 028/507] Update AboutUs information for Jun Yang --- docs/AboutUs.md | 10 ++++++---- docs/images/dannytayjy.png | Bin 0 -> 1370858 bytes 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 docs/images/dannytayjy.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..1efa4ed6399 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -29,14 +29,16 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Team Lead * Responsibilities: UI -### Johnny Doe +### Tay Jun Yang - + -[[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)] +[[github](http://github.com/dannytayjy)] +[[portfolio](team/dannytayjy.md)] * Role: Developer -* Responsibilities: Data +* Responsibilities: Deliverables and Deadlines, Code Quality +* In Charge of Component UI ### Jean Doe diff --git a/docs/images/dannytayjy.png b/docs/images/dannytayjy.png new file mode 100644 index 0000000000000000000000000000000000000000..60d14a7cf19f2a000f9e12e2f3ce6cf803d62ee3 GIT binary patch literal 1370858 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�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�KyIDu)F$N=L>{S&x`4Q)m#9hb7csP0#3rn*c^ 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[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ⅅ+C^ID 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

-### Listing all persons : `list` +### Listing all Tasks : `list` View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for today From 2e2976fad6239b8dfb228b6ee7af42a4d2e83a39 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 19:09:00 +0800 Subject: [PATCH 059/507] Refactor Java package to manageezpz --- docs/SettingUp.md | 2 +- docs/Testing.md | 6 +- docs/tutorials/AddRemark.md | 6 +- docs/tutorials/RemovingFields.md | 2 +- docs/tutorials/TracingCode.md | 4 +- .../address => manageezpz}/AppParameters.java | 6 +- .../{seedu/address => manageezpz}/Main.java | 2 +- .../address => manageezpz}/MainApp.java | 48 +++++------ .../commons/core/Config.java | 2 +- .../commons/core/GuiSettings.java | 2 +- .../commons/core/LogsCenter.java | 2 +- .../commons/core/Messages.java | 2 +- .../commons/core/Version.java | 2 +- .../commons/core/index/Index.java | 2 +- .../exceptions/DataConversionException.java | 2 +- .../exceptions/IllegalValueException.java | 2 +- .../commons/util/AppUtil.java | 4 +- .../commons/util/CollectionUtil.java | 2 +- .../commons/util/ConfigUtil.java | 6 +- .../commons/util/FileUtil.java | 2 +- .../commons/util/JsonUtil.java | 6 +- .../commons/util/StringUtil.java | 4 +- .../address => manageezpz}/logic/Logic.java | 16 ++-- .../logic/LogicManager.java | 24 +++--- .../logic/commands/AddCommand.java | 18 ++-- .../logic/commands/ClearCommand.java | 6 +- .../logic/commands/Command.java | 6 +- .../logic/commands/CommandResult.java | 2 +- .../logic/commands/DeleteCommand.java | 12 +-- .../logic/commands/EditCommand.java | 36 ++++---- .../logic/commands/ExitCommand.java | 4 +- .../logic/commands/FindCommand.java | 8 +- .../logic/commands/HelpCommand.java | 4 +- .../logic/commands/ListCommand.java | 6 +- .../commands/exceptions/CommandException.java | 2 +- .../logic/parser/AddCommandParser.java | 30 +++---- .../logic/parser/AddressBookParser.java | 26 +++--- .../logic/parser/ArgumentMultimap.java | 2 +- .../logic/parser/ArgumentTokenizer.java | 2 +- .../logic/parser/CliSyntax.java | 2 +- .../logic/parser/DeleteCommandParser.java | 10 +-- .../logic/parser/EditCommandParser.java | 24 +++--- .../logic/parser/FindCommandParser.java | 10 +-- .../logic/parser/Parser.java | 6 +- .../logic/parser/ParserUtil.java | 18 ++-- .../logic/parser/Prefix.java | 2 +- .../parser/exceptions/ParseException.java | 4 +- .../model/AddressBook.java | 6 +- .../address => manageezpz}/model/Model.java | 6 +- .../model/ModelManager.java | 11 +-- .../model/ReadOnlyAddressBook.java | 4 +- .../model/ReadOnlyUserPrefs.java | 4 +- .../model/UserPrefs.java | 4 +- .../model/person/Address.java | 6 +- .../model/person/Email.java | 6 +- .../model/person/Name.java | 6 +- .../person/NameContainsKeywordsPredicate.java | 4 +- .../model/person/Person.java | 6 +- .../model/person/Phone.java | 6 +- .../model/person/UniquePersonList.java | 8 +- .../exceptions/DuplicatePersonException.java | 2 +- .../exceptions/PersonNotFoundException.java | 2 +- .../address => manageezpz}/model/tag/Tag.java | 4 +- .../model/util/SampleDataUtil.java | 18 ++-- .../storage/AddressBookStorage.java | 8 +- .../storage/JsonAdaptedPerson.java | 16 ++-- .../storage/JsonAdaptedTag.java | 6 +- .../storage/JsonAddressBookStorage.java | 14 ++-- .../storage/JsonSerializableAddressBook.java | 10 +-- .../storage/JsonUserPrefsStorage.java | 10 +-- .../storage/Storage.java | 10 +-- .../storage/StorageManager.java | 12 +-- .../storage/UserPrefsStorage.java | 12 +-- .../address => manageezpz}/tasks/Task.java | 2 +- .../address => manageezpz}/ui/CommandBox.java | 10 +-- .../address => manageezpz}/ui/HelpWindow.java | 4 +- .../address => manageezpz}/ui/MainWindow.java | 16 ++-- .../address => manageezpz}/ui/PersonCard.java | 4 +- .../ui/PersonListPanel.java | 6 +- .../ui/ResultDisplay.java | 2 +- .../ui/StatusBarFooter.java | 2 +- .../{seedu/address => manageezpz}/ui/Ui.java | 2 +- .../address => manageezpz}/ui/UiManager.java | 10 +-- .../address => manageezpz}/ui/UiPart.java | 4 +- .../AppParametersTest.java | 2 +- .../commons/core/ConfigTest.java | 2 +- .../commons/core/VersionTest.java | 4 +- .../commons/core/index/IndexTest.java | 4 +- .../commons/util/AppUtilTest.java | 4 +- .../commons/util/CollectionUtilTest.java | 6 +- .../commons/util/ConfigUtilTest.java | 9 +- .../commons/util/FileUtilTest.java | 4 +- .../commons/util/JsonUtilTest.java | 6 +- .../commons/util/StringUtilTest.java | 4 +- .../logic/LogicManagerTest.java | 48 +++++------ .../commands/AddCommandIntegrationTest.java | 18 ++-- .../logic/commands/AddCommandTest.java | 20 ++--- .../logic/commands/ClearCommandTest.java | 14 ++-- .../logic/commands/CommandResultTest.java | 2 +- .../logic/commands/CommandTestUtil.java | 28 +++---- .../logic/commands/DeleteCommandTest.java | 26 +++--- .../logic/commands/EditCommandTest.java | 37 ++++----- .../commands/EditPersonDescriptorTest.java | 22 ++--- .../logic/commands/ExitCommandTest.java | 10 +-- .../logic/commands/FindCommandTest.java | 22 ++--- .../logic/commands/HelpCommandTest.java | 10 +-- .../logic/commands/ListCommandTest.java | 16 ++-- .../logic/parser/AddCommandParserTest.java | 55 ++++--------- .../logic/parser/AddressBookParserTest.java | 40 ++++----- .../logic/parser/ArgumentTokenizerTest.java | 2 +- .../logic/parser/CommandParserTestUtil.java | 6 +- .../logic/parser/DeleteCommandParserTest.java | 12 +-- .../logic/parser/EditCommandParserTest.java | 82 +++++++++---------- .../logic/parser/FindCommandParserTest.java | 12 +-- .../logic/parser/ParserUtilTest.java | 20 ++--- .../model/AddressBookTest.java | 18 ++-- .../model/ModelManagerTest.java | 16 ++-- .../model/UserPrefsTest.java | 4 +- .../model/person/AddressTest.java | 4 +- .../model/person/EmailTest.java | 4 +- .../NameContainsKeywordsPredicateTest.java | 4 +- .../model/person/NameTest.java | 4 +- .../model/person/PersonTest.java | 20 ++--- .../model/person/PhoneTest.java | 4 +- .../model/person/UniquePersonListTest.java | 18 ++-- .../model/tag/TagTest.java | 4 +- .../storage/JsonAdaptedPersonTest.java | 19 ++--- .../storage/JsonAddressBookStorageTest.java | 19 ++--- .../JsonSerializableAddressBookTest.java | 13 ++- .../storage/JsonUserPrefsStorageTest.java | 11 ++- .../storage/StorageManagerTest.java | 13 ++- .../testutil/AddressBookBuilder.java | 6 +- .../testutil/Assert.java | 2 +- .../testutil/EditPersonDescriptorBuilder.java | 16 ++-- .../testutil/PersonBuilder.java | 16 ++-- .../testutil/PersonUtil.java | 20 ++--- .../testutil/SerializableTestClass.java | 2 +- .../testutil/TestUtil.java | 8 +- .../testutil/TypicalIndexes.java | 4 +- .../testutil/TypicalPersons.java | 26 +++--- .../ui/TestFxmlObject.java | 2 +- .../address => manageezpz}/ui/UiPartTest.java | 6 +- .../resources/view/UiPartTest/validFile.fxml | 2 +- .../view/UiPartTest/validFileWithFxRoot.fxml | 4 +- 144 files changed, 735 insertions(+), 760 deletions(-) rename src/main/java/{seedu/address => manageezpz}/AppParameters.java (93%) rename src/main/java/{seedu/address => manageezpz}/Main.java (97%) rename src/main/java/{seedu/address => manageezpz}/MainApp.java (85%) rename src/main/java/{seedu/address => manageezpz}/commons/core/Config.java (97%) rename src/main/java/{seedu/address => manageezpz}/commons/core/GuiSettings.java (98%) rename src/main/java/{seedu/address => manageezpz}/commons/core/LogsCenter.java (99%) rename src/main/java/{seedu/address => manageezpz}/commons/core/Messages.java (92%) rename src/main/java/{seedu/address => manageezpz}/commons/core/Version.java (98%) rename src/main/java/{seedu/address => manageezpz}/commons/core/index/Index.java (97%) rename src/main/java/{seedu/address => manageezpz}/commons/exceptions/DataConversionException.java (84%) rename src/main/java/{seedu/address => manageezpz}/commons/exceptions/IllegalValueException.java (93%) rename src/main/java/{seedu/address => manageezpz}/commons/util/AppUtil.java (94%) rename src/main/java/{seedu/address => manageezpz}/commons/util/CollectionUtil.java (96%) rename src/main/java/{seedu/address => manageezpz}/commons/util/ConfigUtil.java (77%) rename src/main/java/{seedu/address => manageezpz}/commons/util/FileUtil.java (98%) rename src/main/java/{seedu/address => manageezpz}/commons/util/JsonUtil.java (97%) rename src/main/java/{seedu/address => manageezpz}/commons/util/StringUtil.java (95%) rename src/main/java/{seedu/address => manageezpz}/logic/Logic.java (73%) rename src/main/java/{seedu/address => manageezpz}/logic/LogicManager.java (77%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/AddCommand.java (78%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/ClearCommand.java (80%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/Command.java (78%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/CommandResult.java (97%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/DeleteCommand.java (85%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/EditCommand.java (88%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/ExitCommand.java (84%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/FindCommand.java (88%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/HelpCommand.java (88%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/ListCommand.java (78%) rename src/main/java/{seedu/address => manageezpz}/logic/commands/exceptions/CommandException.java (89%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/AddCommandParser.java (70%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/AddressBookParser.java (72%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/ArgumentMultimap.java (98%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/ArgumentTokenizer.java (99%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/CliSyntax.java (92%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/DeleteCommandParser.java (73%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/EditCommandParser.java (79%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/FindCommandParser.java (74%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/Parser.java (72%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/ParserUtil.java (90%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/Prefix.java (95%) rename src/main/java/{seedu/address => manageezpz}/logic/parser/exceptions/ParseException.java (73%) rename src/main/java/{seedu/address => manageezpz}/model/AddressBook.java (96%) rename src/main/java/{seedu/address => manageezpz}/model/Model.java (95%) rename src/main/java/{seedu/address => manageezpz}/model/ModelManager.java (93%) rename src/main/java/{seedu/address => manageezpz}/model/ReadOnlyAddressBook.java (81%) rename src/main/java/{seedu/address => manageezpz}/model/ReadOnlyUserPrefs.java (70%) rename src/main/java/{seedu/address => manageezpz}/model/UserPrefs.java (96%) rename src/main/java/{seedu/address => manageezpz}/model/person/Address.java (91%) rename src/main/java/{seedu/address => manageezpz}/model/person/Email.java (95%) rename src/main/java/{seedu/address => manageezpz}/model/person/Name.java (91%) rename src/main/java/{seedu/address => manageezpz}/model/person/NameContainsKeywordsPredicate.java (91%) rename src/main/java/{seedu/address => manageezpz}/model/person/Person.java (95%) rename src/main/java/{seedu/address => manageezpz}/model/person/Phone.java (90%) rename src/main/java/{seedu/address => manageezpz}/model/person/UniquePersonList.java (94%) rename src/main/java/{seedu/address => manageezpz}/model/person/exceptions/DuplicatePersonException.java (87%) rename src/main/java/{seedu/address => manageezpz}/model/person/exceptions/PersonNotFoundException.java (75%) rename src/main/java/{seedu/address => manageezpz}/model/tag/Tag.java (93%) rename src/main/java/{seedu/address => manageezpz}/model/util/SampleDataUtil.java (85%) rename src/main/java/{seedu/address => manageezpz}/storage/AddressBookStorage.java (85%) rename src/main/java/{seedu/address => manageezpz}/storage/JsonAdaptedPerson.java (91%) rename src/main/java/{seedu/address => manageezpz}/storage/JsonAdaptedTag.java (89%) rename src/main/java/{seedu/address => manageezpz}/storage/JsonAddressBookStorage.java (86%) rename src/main/java/{seedu/address => manageezpz}/storage/JsonSerializableAddressBook.java (89%) rename src/main/java/{seedu/address => manageezpz}/storage/JsonUserPrefsStorage.java (83%) rename src/main/java/{seedu/address => manageezpz}/storage/Storage.java (73%) rename src/main/java/{seedu/address => manageezpz}/storage/StorageManager.java (89%) rename src/main/java/{seedu/address => manageezpz}/storage/UserPrefsStorage.java (71%) rename src/main/java/{seedu/address => manageezpz}/tasks/Task.java (98%) rename src/main/java/{seedu/address => manageezpz}/ui/CommandBox.java (89%) rename src/main/java/{seedu/address => manageezpz}/ui/HelpWindow.java (97%) rename src/main/java/{seedu/address => manageezpz}/ui/MainWindow.java (93%) rename src/main/java/{seedu/address => manageezpz}/ui/PersonCard.java (96%) rename src/main/java/{seedu/address => manageezpz}/ui/PersonListPanel.java (92%) rename src/main/java/{seedu/address => manageezpz}/ui/ResultDisplay.java (95%) rename src/main/java/{seedu/address => manageezpz}/ui/StatusBarFooter.java (96%) rename src/main/java/{seedu/address => manageezpz}/ui/Ui.java (86%) rename src/main/java/{seedu/address => manageezpz}/ui/UiManager.java (94%) rename src/main/java/{seedu/address => manageezpz}/ui/UiPart.java (97%) rename src/test/java/{seedu/address => manageezpz}/AppParametersTest.java (98%) rename src/test/java/{seedu/address => manageezpz}/commons/core/ConfigTest.java (95%) rename src/test/java/{seedu/address => manageezpz}/commons/core/VersionTest.java (98%) rename src/test/java/{seedu/address => manageezpz}/commons/core/index/IndexTest.java (95%) rename src/test/java/{seedu/address => manageezpz}/commons/util/AppUtilTest.java (91%) rename src/test/java/{seedu/address => manageezpz}/commons/util/CollectionUtilTest.java (96%) rename src/test/java/{seedu/address => manageezpz}/commons/util/ConfigUtilTest.java (94%) rename src/test/java/{seedu/address => manageezpz}/commons/util/FileUtilTest.java (84%) rename src/test/java/{seedu/address => manageezpz}/commons/util/JsonUtilTest.java (92%) rename src/test/java/{seedu/address => manageezpz}/commons/util/StringUtilTest.java (98%) rename src/test/java/{seedu/address => manageezpz}/logic/LogicManagerTest.java (82%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/AddCommandIntegrationTest.java (68%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/AddCommandTest.java (92%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/ClearCommandTest.java (68%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/CommandResultTest.java (98%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/CommandTestUtil.java (88%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/DeleteCommandTest.java (83%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/EditCommandTest.java (83%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/EditPersonDescriptorTest.java (71%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/ExitCommandTest.java (60%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/FindCommandTest.java (82%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/HelpCommandTest.java (61%) rename src/test/java/{seedu/address => manageezpz}/logic/commands/ListCommandTest.java (65%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/AddCommandParserTest.java (66%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/AddressBookParserTest.java (75%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/ArgumentTokenizerTest.java (99%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/CommandParserTestUtil.java (89%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/DeleteCommandParserTest.java (68%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/EditCommandParserTest.java (75%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/FindCommandParserTest.java (67%) rename src/test/java/{seedu/address => manageezpz}/logic/parser/ParserUtilTest.java (93%) rename src/test/java/{seedu/address => manageezpz}/model/AddressBookTest.java (85%) rename src/test/java/{seedu/address => manageezpz}/model/ModelManagerTest.java (91%) rename src/test/java/{seedu/address => manageezpz}/model/UserPrefsTest.java (86%) rename src/test/java/{seedu/address => manageezpz}/model/person/AddressTest.java (92%) rename src/test/java/{seedu/address => manageezpz}/model/person/EmailTest.java (97%) rename src/test/java/{seedu/address => manageezpz}/model/person/NameContainsKeywordsPredicateTest.java (97%) rename src/test/java/{seedu/address => manageezpz}/model/person/NameTest.java (93%) rename src/test/java/{seedu/address => manageezpz}/model/person/PersonTest.java (82%) rename src/test/java/{seedu/address => manageezpz}/model/person/PhoneTest.java (93%) rename src/test/java/{seedu/address => manageezpz}/model/person/UniquePersonListTest.java (91%) rename src/test/java/{seedu/address => manageezpz}/model/tag/TagTest.java (86%) rename src/test/java/{seedu/address => manageezpz}/storage/JsonAdaptedPersonTest.java (91%) rename src/test/java/{seedu/address => manageezpz}/storage/JsonAddressBookStorageTest.java (89%) rename src/test/java/{seedu/address => manageezpz}/storage/JsonSerializableAddressBookTest.java (86%) rename src/test/java/{seedu/address => manageezpz}/storage/JsonUserPrefsStorageTest.java (94%) rename src/test/java/{seedu/address => manageezpz}/storage/StorageManagerTest.java (88%) rename src/test/java/{seedu/address => manageezpz}/testutil/AddressBookBuilder.java (86%) rename src/test/java/{seedu/address => manageezpz}/testutil/Assert.java (97%) rename src/test/java/{seedu/address => manageezpz}/testutil/EditPersonDescriptorBuilder.java (87%) rename src/test/java/{seedu/address => manageezpz}/testutil/PersonBuilder.java (88%) rename src/test/java/{seedu/address => manageezpz}/testutil/PersonUtil.java (78%) rename src/test/java/{seedu/address => manageezpz}/testutil/SerializableTestClass.java (98%) rename src/test/java/{seedu/address => manageezpz}/testutil/TestUtil.java (90%) rename src/test/java/{seedu/address => manageezpz}/testutil/TypicalIndexes.java (81%) rename src/test/java/{seedu/address => manageezpz}/testutil/TypicalPersons.java (78%) rename src/test/java/{seedu/address => manageezpz}/ui/TestFxmlObject.java (96%) rename src/test/java/{seedu/address => manageezpz}/ui/UiPartTest.java (97%) diff --git a/docs/SettingUp.md b/docs/SettingUp.md index 275445bd551..1be8789c956 100644 --- a/docs/SettingUp.md +++ b/docs/SettingUp.md @@ -23,7 +23,7 @@ If you plan to use Intellij IDEA (highly recommended): 1. **Import the project as a Gradle project**: Follow the guide [_[se-edu/guides] IDEA: Importing a Gradle project_](https://se-education.org/guides/tutorials/intellijImportGradleProject.html) to import the project into IDEA.
:exclamation: Note: Importing a Gradle project is slightly different from importing a normal Java project. 1. **Verify the setup**: - 1. Run the `seedu.address.Main` and try a few commands. + 1. Run the `manageezpz.Main` and try a few commands. 1. [Run the tests](Testing.md) to ensure they all pass. -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/Testing.md b/docs/Testing.md index 8a99e82438a..755219e61ae 100644 --- a/docs/Testing.md +++ b/docs/Testing.md @@ -29,8 +29,8 @@ There are two ways to run tests. This project has three types of tests: 1. *Unit tests* targeting the lowest level methods/classes.
- e.g. `seedu.address.commons.StringUtilTest` + e.g. `manageezpz.commons.StringUtilTest` 1. *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` + e.g. `manageezpz.storage.StorageManagerTest` 1. 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` + e.g. `manageezpz.logic.LogicManagerTest` diff --git a/docs/tutorials/AddRemark.md b/docs/tutorials/AddRemark.md index 880c701042f..a8b5f54fd57 100644 --- a/docs/tutorials/AddRemark.md +++ b/docs/tutorials/AddRemark.md @@ -25,7 +25,7 @@ For now, let’s keep `RemarkCommand` as simple as possible and print some outpu ``` java package seedu.address.logic.commands; -import seedu.address.model.Model; +import manageezpz.model.Model; /** * Changes the remark of an existing person in the address book. @@ -91,7 +91,7 @@ Let’s change `RemarkCommand` to parse input from the user. We start by modifying the constructor of `RemarkCommand` to accept an `Index` and a `String`. While we are at it, let’s change the error message to echo the values. While this is not a replacement for tests, it is an obvious way to tell if our code is functioning as intended. ``` java -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; //... public class RemarkCommand extends Command { //... @@ -242,7 +242,7 @@ Let’s change `RemarkCommand` and `RemarkCommandParser` to use the new `Remark` Without getting too deep into `fxml`, let’s go on a 5 minute adventure to get some placeholder text to show up for each person. -Simply add the following to [`seedu.address.ui.PersonCard`](https://github.com/se-edu/addressbook-level3/commit/850b78879582f38accb05dd20c245963c65ea599#diff-639834f1e05afe2276a86372adf0fe5f69314642c2d93cfa543d614ce5a76688). +Simply add the following to [`manageezpz.address.ui.PersonCard`](https://github.com/se-edu/addressbook-level3/commit/850b78879582f38accb05dd20c245963c65ea599#diff-639834f1e05afe2276a86372adf0fe5f69314642c2d93cfa543d614ce5a76688). **`PersonCard.java`:** diff --git a/docs/tutorials/RemovingFields.md b/docs/tutorials/RemovingFields.md index f29169bc924..f778cae5db5 100644 --- a/docs/tutorials/RemovingFields.md +++ b/docs/tutorials/RemovingFields.md @@ -28,7 +28,7 @@ IntelliJ IDEA provides a refactoring tool that can identify *most* parts of a re ### Assisted refactoring -The `address` field in `Person` is actually an instance of the `seedu.address.model.person.Address` class. Since removing the `Address` class will break the application, we start by identifying `Address`'s usages. This allows us to see code that depends on `Address` to function properly and edit them on a case-by-case basis. Right-click the `Address` class and select `Refactor` \> `Safe Delete` through the menu. +The `address` field in `Person` is actually an instance of the `manageezpz.model.person.Address` class. Since removing the `Address` class will break the application, we start by identifying `Address`'s usages. This allows us to see code that depends on `Address` to function properly and edit them on a case-by-case basis. Right-click the `Address` class and select `Refactor` \> `Safe Delete` through the menu. * :bulb: To make things simpler, you can unselect the options `Search in comments and strings` and `Search for text occurrences` ![Usages detected](../images/remove/UnsafeDelete.png) diff --git a/docs/tutorials/TracingCode.md b/docs/tutorials/TracingCode.md index 4fb62a83ef6..fb262682de0 100644 --- a/docs/tutorials/TracingCode.md +++ b/docs/tutorials/TracingCode.md @@ -39,7 +39,7 @@ In our case, we would want to begin the tracing at the very point where the App -According to the sequence diagram you saw earlier (and repeated above for reference), the `UI` component yields control to the `Logic` component through a method named `execute`. Searching through the code base for an `execute()` method that belongs to the `Logic` component yields a promising candidate in `seedu.address.logic.Logic`. +According to the sequence diagram you saw earlier (and repeated above for reference), the `UI` component yields control to the `Logic` component through a method named `execute`. Searching through the code base for an `execute()` method that belongs to the `Logic` component yields a promising candidate in `manageezpz.logic.Logic`. @@ -48,7 +48,7 @@ According to the sequence diagram you saw earlier (and repeated above for refere :bulb: **Intellij Tip:** The ['**Search Everywhere**' feature](https://www.jetbrains.com/help/idea/searching-everywhere.html) can be used here. In particular, the '**Find Symbol**' ('Symbol' here refers to methods, variables, classes etc.) variant of that feature is quite useful here as we are looking for a _method_ named `execute`, not simply the text `execute`.
-A quick look at the `seedu.address.logic.Logic` (an extract given below) confirms that this indeed might be what we’re looking for. +A quick look at the `manageezpz.logic.Logic` (an extract given below) confirms that this indeed might be what we’re looking for. ```java public interface Logic { diff --git a/src/main/java/seedu/address/AppParameters.java b/src/main/java/manageezpz/AppParameters.java similarity index 93% rename from src/main/java/seedu/address/AppParameters.java rename to src/main/java/manageezpz/AppParameters.java index ab552c398f3..69004074249 100644 --- a/src/main/java/seedu/address/AppParameters.java +++ b/src/main/java/manageezpz/AppParameters.java @@ -1,4 +1,4 @@ -package seedu.address; +package manageezpz; import java.nio.file.Path; import java.nio.file.Paths; @@ -7,8 +7,8 @@ import java.util.logging.Logger; import javafx.application.Application; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.util.FileUtil; +import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.util.FileUtil; /** * Represents the parsed command-line parameters given to the application. diff --git a/src/main/java/seedu/address/Main.java b/src/main/java/manageezpz/Main.java similarity index 97% rename from src/main/java/seedu/address/Main.java rename to src/main/java/manageezpz/Main.java index 052a5068631..d827b8705fd 100644 --- a/src/main/java/seedu/address/Main.java +++ b/src/main/java/manageezpz/Main.java @@ -1,4 +1,4 @@ -package seedu.address; +package manageezpz; import javafx.application.Application; diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/manageezpz/MainApp.java similarity index 85% rename from src/main/java/seedu/address/MainApp.java rename to src/main/java/manageezpz/MainApp.java index 4133aaa0151..6a860edc05b 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -1,4 +1,4 @@ -package seedu.address; +package manageezpz; import java.io.IOException; import java.nio.file.Path; @@ -7,29 +7,29 @@ import javafx.application.Application; import javafx.stage.Stage; -import seedu.address.commons.core.Config; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.core.Version; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.commons.util.ConfigUtil; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.Logic; -import seedu.address.logic.LogicManager; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; -import seedu.address.model.util.SampleDataUtil; -import seedu.address.storage.AddressBookStorage; -import seedu.address.storage.JsonAddressBookStorage; -import seedu.address.storage.JsonUserPrefsStorage; -import seedu.address.storage.Storage; -import seedu.address.storage.StorageManager; -import seedu.address.storage.UserPrefsStorage; -import seedu.address.ui.Ui; -import seedu.address.ui.UiManager; +import manageezpz.commons.core.Config; +import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.core.Version; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.util.ConfigUtil; +import manageezpz.commons.util.StringUtil; +import manageezpz.logic.Logic; +import manageezpz.logic.LogicManager; +import manageezpz.model.util.SampleDataUtil; +import manageezpz.ui.Ui; +import manageezpz.ui.UiManager; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.UserPrefs; +import manageezpz.storage.AddressBookStorage; +import manageezpz.storage.JsonAddressBookStorage; +import manageezpz.storage.JsonUserPrefsStorage; +import manageezpz.storage.Storage; +import manageezpz.storage.StorageManager; +import manageezpz.storage.UserPrefsStorage; /** * Runs the application. diff --git a/src/main/java/seedu/address/commons/core/Config.java b/src/main/java/manageezpz/commons/core/Config.java similarity index 97% rename from src/main/java/seedu/address/commons/core/Config.java rename to src/main/java/manageezpz/commons/core/Config.java index 91145745521..204bcf94eab 100644 --- a/src/main/java/seedu/address/commons/core/Config.java +++ b/src/main/java/manageezpz/commons/core/Config.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import java.nio.file.Path; import java.nio.file.Paths; diff --git a/src/main/java/seedu/address/commons/core/GuiSettings.java b/src/main/java/manageezpz/commons/core/GuiSettings.java similarity index 98% rename from src/main/java/seedu/address/commons/core/GuiSettings.java rename to src/main/java/manageezpz/commons/core/GuiSettings.java index ba33653be67..8ad3cc6da9a 100644 --- a/src/main/java/seedu/address/commons/core/GuiSettings.java +++ b/src/main/java/manageezpz/commons/core/GuiSettings.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import java.awt.Point; import java.io.Serializable; diff --git a/src/main/java/seedu/address/commons/core/LogsCenter.java b/src/main/java/manageezpz/commons/core/LogsCenter.java similarity index 99% rename from src/main/java/seedu/address/commons/core/LogsCenter.java rename to src/main/java/manageezpz/commons/core/LogsCenter.java index 431e7185e76..3e3f984cd7a 100644 --- a/src/main/java/seedu/address/commons/core/LogsCenter.java +++ b/src/main/java/manageezpz/commons/core/LogsCenter.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import java.io.IOException; import java.util.Arrays; diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java similarity index 92% rename from src/main/java/seedu/address/commons/core/Messages.java rename to src/main/java/manageezpz/commons/core/Messages.java index 1deb3a1e469..76877e25513 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; /** * Container for user visible messages. diff --git a/src/main/java/seedu/address/commons/core/Version.java b/src/main/java/manageezpz/commons/core/Version.java similarity index 98% rename from src/main/java/seedu/address/commons/core/Version.java rename to src/main/java/manageezpz/commons/core/Version.java index 12142ec1e32..dfb8e373a8a 100644 --- a/src/main/java/seedu/address/commons/core/Version.java +++ b/src/main/java/manageezpz/commons/core/Version.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/seedu/address/commons/core/index/Index.java b/src/main/java/manageezpz/commons/core/index/Index.java similarity index 97% rename from src/main/java/seedu/address/commons/core/index/Index.java rename to src/main/java/manageezpz/commons/core/index/Index.java index 19536439c09..1a5c93cc83a 100644 --- a/src/main/java/seedu/address/commons/core/index/Index.java +++ b/src/main/java/manageezpz/commons/core/index/Index.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core.index; +package manageezpz.commons.core.index; /** * Represents a zero-based or one-based index. diff --git a/src/main/java/seedu/address/commons/exceptions/DataConversionException.java b/src/main/java/manageezpz/commons/exceptions/DataConversionException.java similarity index 84% rename from src/main/java/seedu/address/commons/exceptions/DataConversionException.java rename to src/main/java/manageezpz/commons/exceptions/DataConversionException.java index 1f689bd8e3f..28908f5f35e 100644 --- a/src/main/java/seedu/address/commons/exceptions/DataConversionException.java +++ b/src/main/java/manageezpz/commons/exceptions/DataConversionException.java @@ -1,4 +1,4 @@ -package seedu.address.commons.exceptions; +package manageezpz.commons.exceptions; /** * Represents an error during conversion of data from one format to another diff --git a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java b/src/main/java/manageezpz/commons/exceptions/IllegalValueException.java similarity index 93% rename from src/main/java/seedu/address/commons/exceptions/IllegalValueException.java rename to src/main/java/manageezpz/commons/exceptions/IllegalValueException.java index 19124db485c..609d6e2cdfd 100644 --- a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java +++ b/src/main/java/manageezpz/commons/exceptions/IllegalValueException.java @@ -1,4 +1,4 @@ -package seedu.address.commons.exceptions; +package manageezpz.commons.exceptions; /** * Signals that some given data does not fulfill some constraints. diff --git a/src/main/java/seedu/address/commons/util/AppUtil.java b/src/main/java/manageezpz/commons/util/AppUtil.java similarity index 94% rename from src/main/java/seedu/address/commons/util/AppUtil.java rename to src/main/java/manageezpz/commons/util/AppUtil.java index 87aa89c0326..2194f595aeb 100644 --- a/src/main/java/seedu/address/commons/util/AppUtil.java +++ b/src/main/java/manageezpz/commons/util/AppUtil.java @@ -1,9 +1,9 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static java.util.Objects.requireNonNull; import javafx.scene.image.Image; -import seedu.address.MainApp; +import manageezpz.MainApp; /** * A container for App specific utility functions diff --git a/src/main/java/seedu/address/commons/util/CollectionUtil.java b/src/main/java/manageezpz/commons/util/CollectionUtil.java similarity index 96% rename from src/main/java/seedu/address/commons/util/CollectionUtil.java rename to src/main/java/manageezpz/commons/util/CollectionUtil.java index eafe4dfd681..6b28b26ae75 100644 --- a/src/main/java/seedu/address/commons/util/CollectionUtil.java +++ b/src/main/java/manageezpz/commons/util/CollectionUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/commons/util/ConfigUtil.java b/src/main/java/manageezpz/commons/util/ConfigUtil.java similarity index 77% rename from src/main/java/seedu/address/commons/util/ConfigUtil.java rename to src/main/java/manageezpz/commons/util/ConfigUtil.java index f7f8a2bd44c..d94b18da488 100644 --- a/src/main/java/seedu/address/commons/util/ConfigUtil.java +++ b/src/main/java/manageezpz/commons/util/ConfigUtil.java @@ -1,11 +1,11 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.core.Config; -import seedu.address.commons.exceptions.DataConversionException; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.core.Config; /** * A class for accessing the Config File. diff --git a/src/main/java/seedu/address/commons/util/FileUtil.java b/src/main/java/manageezpz/commons/util/FileUtil.java similarity index 98% rename from src/main/java/seedu/address/commons/util/FileUtil.java rename to src/main/java/manageezpz/commons/util/FileUtil.java index b1e2767cdd9..131ffbe3b06 100644 --- a/src/main/java/seedu/address/commons/util/FileUtil.java +++ b/src/main/java/manageezpz/commons/util/FileUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import java.io.IOException; import java.nio.file.Files; diff --git a/src/main/java/seedu/address/commons/util/JsonUtil.java b/src/main/java/manageezpz/commons/util/JsonUtil.java similarity index 97% rename from src/main/java/seedu/address/commons/util/JsonUtil.java rename to src/main/java/manageezpz/commons/util/JsonUtil.java index 8ef609f055d..59fd63c20ad 100644 --- a/src/main/java/seedu/address/commons/util/JsonUtil.java +++ b/src/main/java/manageezpz/commons/util/JsonUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static java.util.Objects.requireNonNull; @@ -20,8 +20,8 @@ import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataConversionException; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.core.LogsCenter; /** * Converts a Java object instance to JSON and vice versa diff --git a/src/main/java/seedu/address/commons/util/StringUtil.java b/src/main/java/manageezpz/commons/util/StringUtil.java similarity index 95% rename from src/main/java/seedu/address/commons/util/StringUtil.java rename to src/main/java/manageezpz/commons/util/StringUtil.java index 61cc8c9a1cb..a8436fff718 100644 --- a/src/main/java/seedu/address/commons/util/StringUtil.java +++ b/src/main/java/manageezpz/commons/util/StringUtil.java @@ -1,7 +1,7 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/manageezpz/logic/Logic.java similarity index 73% rename from src/main/java/seedu/address/logic/Logic.java rename to src/main/java/manageezpz/logic/Logic.java index 92cd8fa605a..7756af1edc2 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/manageezpz/logic/Logic.java @@ -1,14 +1,14 @@ -package seedu.address.logic; +package manageezpz.logic; import java.nio.file.Path; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; +import manageezpz.commons.core.GuiSettings; +import manageezpz.logic.commands.CommandResult; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.person.Person; /** * API of the Logic component @@ -26,7 +26,7 @@ public interface Logic { /** * Returns the AddressBook. * - * @see seedu.address.model.Model#getAddressBook() + * @see manageezpz.model.Model#getAddressBook() */ ReadOnlyAddressBook getAddressBook(); diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/manageezpz/logic/LogicManager.java similarity index 77% rename from src/main/java/seedu/address/logic/LogicManager.java rename to src/main/java/manageezpz/logic/LogicManager.java index 9d9c6d15bdc..8074e8057aa 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/manageezpz/logic/LogicManager.java @@ -1,21 +1,21 @@ -package seedu.address.logic; +package manageezpz.logic; import java.io.IOException; import java.nio.file.Path; import java.util.logging.Logger; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.AddressBookParser; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.Model; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; -import seedu.address.storage.Storage; +import manageezpz.commons.core.GuiSettings; +import manageezpz.commons.core.LogsCenter; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.CommandResult; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.AddressBookParser; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.Model; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.person.Person; +import manageezpz.storage.Storage; /** * The main LogicManager of the app. diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/manageezpz/logic/commands/AddCommand.java similarity index 78% rename from src/main/java/seedu/address/logic/commands/AddCommand.java rename to src/main/java/manageezpz/logic/commands/AddCommand.java index 71656d7c5c8..75b825fd243 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddCommand.java @@ -1,15 +1,15 @@ -package seedu.address.logic.commands; +package manageezpz.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_TAG; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; /** * Adds a person to the address book. diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/manageezpz/logic/commands/ClearCommand.java similarity index 80% rename from src/main/java/seedu/address/logic/commands/ClearCommand.java rename to src/main/java/manageezpz/logic/commands/ClearCommand.java index 9c86b1fa6e4..326f403d5cc 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/manageezpz/logic/commands/ClearCommand.java @@ -1,9 +1,9 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; /** * Clears the address book. diff --git a/src/main/java/seedu/address/logic/commands/Command.java b/src/main/java/manageezpz/logic/commands/Command.java similarity index 78% rename from src/main/java/seedu/address/logic/commands/Command.java rename to src/main/java/manageezpz/logic/commands/Command.java index 64f18992160..a75bf697adc 100644 --- a/src/main/java/seedu/address/logic/commands/Command.java +++ b/src/main/java/manageezpz/logic/commands/Command.java @@ -1,7 +1,7 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; /** * Represents a command with hidden internal logic and the ability to be executed. diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/manageezpz/logic/commands/CommandResult.java similarity index 97% rename from src/main/java/seedu/address/logic/commands/CommandResult.java rename to src/main/java/manageezpz/logic/commands/CommandResult.java index 92f900b7916..181998eb4eb 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/manageezpz/logic/commands/CommandResult.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/manageezpz/logic/commands/DeleteCommand.java similarity index 85% rename from src/main/java/seedu/address/logic/commands/DeleteCommand.java rename to src/main/java/manageezpz/logic/commands/DeleteCommand.java index 02fd256acba..33ae9aee1f3 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteCommand.java @@ -1,14 +1,14 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; import java.util.List; -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; /** * Deletes a person identified using it's displayed index from the address book. diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/manageezpz/logic/commands/EditCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/EditCommand.java rename to src/main/java/manageezpz/logic/commands/EditCommand.java index 7e36114902f..ea0fd219bbf 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditCommand.java @@ -1,12 +1,12 @@ -package seedu.address.logic.commands; +package manageezpz.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_TAG; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; +import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import java.util.Collections; import java.util.HashSet; @@ -14,17 +14,17 @@ 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.commands.exceptions.CommandException; -import seedu.address.model.Model; -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.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.commons.util.CollectionUtil; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.tag.Tag; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; /** * Edits the details of an existing person in the address book. diff --git a/src/main/java/seedu/address/logic/commands/ExitCommand.java b/src/main/java/manageezpz/logic/commands/ExitCommand.java similarity index 84% rename from src/main/java/seedu/address/logic/commands/ExitCommand.java rename to src/main/java/manageezpz/logic/commands/ExitCommand.java index 3dd85a8ba90..b6fd59bc6af 100644 --- a/src/main/java/seedu/address/logic/commands/ExitCommand.java +++ b/src/main/java/manageezpz/logic/commands/ExitCommand.java @@ -1,6 +1,6 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import seedu.address.model.Model; +import manageezpz.model.Model; /** * Terminates the program. diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/FindCommand.java rename to src/main/java/manageezpz/logic/commands/FindCommand.java index d6b19b0a0de..65243391647 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindCommand.java @@ -1,10 +1,10 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import seedu.address.commons.core.Messages; -import seedu.address.model.Model; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import manageezpz.commons.core.Messages; +import manageezpz.model.Model; +import manageezpz.model.person.NameContainsKeywordsPredicate; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/manageezpz/logic/commands/HelpCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/HelpCommand.java rename to src/main/java/manageezpz/logic/commands/HelpCommand.java index bf824f91bd0..24a3a477ec1 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/manageezpz/logic/commands/HelpCommand.java @@ -1,6 +1,6 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import seedu.address.model.Model; +import manageezpz.model.Model; /** * Format full help instructions for every command for display. diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java similarity index 78% rename from src/main/java/seedu/address/logic/commands/ListCommand.java rename to src/main/java/manageezpz/logic/commands/ListCommand.java index 84be6ad2596..4e69bb03a2f 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -1,9 +1,9 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import seedu.address.model.Model; +import manageezpz.model.Model; /** * Lists all persons in the address book to the user. diff --git a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java b/src/main/java/manageezpz/logic/commands/exceptions/CommandException.java similarity index 89% rename from src/main/java/seedu/address/logic/commands/exceptions/CommandException.java rename to src/main/java/manageezpz/logic/commands/exceptions/CommandException.java index a16bd14f2cd..38714dfd979 100644 --- a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java +++ b/src/main/java/manageezpz/logic/commands/exceptions/CommandException.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.exceptions; +package manageezpz.logic.commands.exceptions; /** * Represents an error which occurs during execution of a {@link Command}. diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/manageezpz/logic/parser/AddCommandParser.java similarity index 70% rename from src/main/java/seedu/address/logic/parser/AddCommandParser.java rename to src/main/java/manageezpz/logic/parser/AddCommandParser.java index 3b8bfa035e8..20b53bc9f86 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddCommandParser.java @@ -1,23 +1,23 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -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_TAG; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; import java.util.stream.Stream; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.parser.exceptions.ParseException; -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.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.logic.commands.AddCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.tag.Tag; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; /** * Parses input arguments and creates a new AddCommand object diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java similarity index 72% rename from src/main/java/seedu/address/logic/parser/AddressBookParser.java rename to src/main/java/manageezpz/logic/parser/AddressBookParser.java index 1e466792b46..c1652b64049 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -1,21 +1,21 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.logic.commands.AddCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; /** * Parses user input. diff --git a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java b/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java similarity index 98% rename from src/main/java/seedu/address/logic/parser/ArgumentMultimap.java rename to src/main/java/manageezpz/logic/parser/ArgumentMultimap.java index 954c8e18f8e..4f2a78d2b34 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java +++ b/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java b/src/main/java/manageezpz/logic/parser/ArgumentTokenizer.java similarity index 99% rename from src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java rename to src/main/java/manageezpz/logic/parser/ArgumentTokenizer.java index 5c9aebfa488..cd4b84f8ed3 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java +++ b/src/main/java/manageezpz/logic/parser/ArgumentTokenizer.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java similarity index 92% rename from src/main/java/seedu/address/logic/parser/CliSyntax.java rename to src/main/java/manageezpz/logic/parser/CliSyntax.java index 75b1a9bf119..e900404a29d 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; /** * Contains Command Line Interface (CLI) syntax definitions common to multiple commands diff --git a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteCommandParser.java similarity index 73% rename from src/main/java/seedu/address/logic/parser/DeleteCommandParser.java rename to src/main/java/manageezpz/logic/parser/DeleteCommandParser.java index 522b93081cc..a40b40394cd 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteCommandParser.java @@ -1,10 +1,10 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.parser.exceptions.ParseException; /** * Parses input arguments and creates a new DeleteCommand object diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/manageezpz/logic/parser/EditCommandParser.java similarity index 79% rename from src/main/java/seedu/address/logic/parser/EditCommandParser.java rename to src/main/java/manageezpz/logic/parser/EditCommandParser.java index 845644b7dea..2c105f8d505 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditCommandParser.java @@ -1,23 +1,23 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -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_TAG; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collection; import java.util.Collections; import java.util.Optional; import java.util.Set; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.tag.Tag; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.tag.Tag; /** * Parses input arguments and creates a new EditCommand object diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/manageezpz/logic/parser/FindCommandParser.java similarity index 74% rename from src/main/java/seedu/address/logic/parser/FindCommandParser.java rename to src/main/java/manageezpz/logic/parser/FindCommandParser.java index 4fb71f23103..02986d091af 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindCommandParser.java @@ -1,12 +1,12 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import java.util.Arrays; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.NameContainsKeywordsPredicate; /** * Parses input arguments and creates a new FindCommand object diff --git a/src/main/java/seedu/address/logic/parser/Parser.java b/src/main/java/manageezpz/logic/parser/Parser.java similarity index 72% rename from src/main/java/seedu/address/logic/parser/Parser.java rename to src/main/java/manageezpz/logic/parser/Parser.java index d6551ad8e3f..07a31a42894 100644 --- a/src/main/java/seedu/address/logic/parser/Parser.java +++ b/src/main/java/manageezpz/logic/parser/Parser.java @@ -1,7 +1,7 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import seedu.address.logic.commands.Command; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.logic.commands.Command; +import manageezpz.logic.parser.exceptions.ParseException; /** * Represents a Parser that is able to parse user input into a {@code Command} of type {@code T}. diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/ParserUtil.java rename to src/main/java/manageezpz/logic/parser/ParserUtil.java index b117acb9c55..92aed921bf9 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; @@ -6,14 +6,14 @@ import java.util.HashSet; import java.util.Set; -import seedu.address.commons.core.index.Index; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.commons.core.index.Index; +import manageezpz.commons.util.StringUtil; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; +import manageezpz.logic.parser.exceptions.ParseException; /** * Contains utility methods used for parsing strings in the various *Parser classes. diff --git a/src/main/java/seedu/address/logic/parser/Prefix.java b/src/main/java/manageezpz/logic/parser/Prefix.java similarity index 95% rename from src/main/java/seedu/address/logic/parser/Prefix.java rename to src/main/java/manageezpz/logic/parser/Prefix.java index c859d5fa5db..eda296bc100 100644 --- a/src/main/java/seedu/address/logic/parser/Prefix.java +++ b/src/main/java/manageezpz/logic/parser/Prefix.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; /** * A prefix that marks the beginning of an argument in an arguments string. diff --git a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java b/src/main/java/manageezpz/logic/parser/exceptions/ParseException.java similarity index 73% rename from src/main/java/seedu/address/logic/parser/exceptions/ParseException.java rename to src/main/java/manageezpz/logic/parser/exceptions/ParseException.java index 158a1a54c1c..684adeaf452 100644 --- a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java +++ b/src/main/java/manageezpz/logic/parser/exceptions/ParseException.java @@ -1,6 +1,6 @@ -package seedu.address.logic.parser.exceptions; +package manageezpz.logic.parser.exceptions; -import seedu.address.commons.exceptions.IllegalValueException; +import manageezpz.commons.exceptions.IllegalValueException; /** * Represents a parse error encountered by a parser. diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java similarity index 96% rename from src/main/java/seedu/address/model/AddressBook.java rename to src/main/java/manageezpz/model/AddressBook.java index 1a943a0781a..1d6e6a6fb40 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -1,12 +1,12 @@ -package seedu.address.model; +package manageezpz.model; import static java.util.Objects.requireNonNull; import java.util.List; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; -import seedu.address.model.person.UniquePersonList; +import manageezpz.model.person.Person; +import manageezpz.model.person.UniquePersonList; /** * Wraps all data at the address-book level diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/manageezpz/model/Model.java similarity index 95% rename from src/main/java/seedu/address/model/Model.java rename to src/main/java/manageezpz/model/Model.java index d54df471c1f..969224a3f1d 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -1,11 +1,11 @@ -package seedu.address.model; +package manageezpz.model; import java.nio.file.Path; import java.util.function.Predicate; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.Person; +import manageezpz.commons.core.GuiSettings; +import manageezpz.model.person.Person; /** * The API of the Model component. diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java similarity index 93% rename from src/main/java/seedu/address/model/ModelManager.java rename to src/main/java/manageezpz/model/ModelManager.java index 86c1df298d7..321385cce77 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -1,7 +1,7 @@ -package seedu.address.model; +package manageezpz.model; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import java.nio.file.Path; import java.util.function.Predicate; @@ -9,9 +9,10 @@ import javafx.collections.ObservableList; import javafx.collections.transformation.FilteredList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; +import manageezpz.commons.core.GuiSettings; +import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.util.CollectionUtil; +import manageezpz.model.person.Person; /** * Represents the in-memory model of the address book data. diff --git a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java b/src/main/java/manageezpz/model/ReadOnlyAddressBook.java similarity index 81% rename from src/main/java/seedu/address/model/ReadOnlyAddressBook.java rename to src/main/java/manageezpz/model/ReadOnlyAddressBook.java index 6ddc2cd9a29..e3f96860791 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java +++ b/src/main/java/manageezpz/model/ReadOnlyAddressBook.java @@ -1,7 +1,7 @@ -package seedu.address.model; +package manageezpz.model; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; +import manageezpz.model.person.Person; /** * Unmodifiable view of an address book diff --git a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java b/src/main/java/manageezpz/model/ReadOnlyUserPrefs.java similarity index 70% rename from src/main/java/seedu/address/model/ReadOnlyUserPrefs.java rename to src/main/java/manageezpz/model/ReadOnlyUserPrefs.java index befd58a4c73..23f84ffa67c 100644 --- a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java +++ b/src/main/java/manageezpz/model/ReadOnlyUserPrefs.java @@ -1,8 +1,8 @@ -package seedu.address.model; +package manageezpz.model; import java.nio.file.Path; -import seedu.address.commons.core.GuiSettings; +import manageezpz.commons.core.GuiSettings; /** * Unmodifiable view of user prefs. diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/manageezpz/model/UserPrefs.java similarity index 96% rename from src/main/java/seedu/address/model/UserPrefs.java rename to src/main/java/manageezpz/model/UserPrefs.java index 25a5fd6eab9..0b6806d6558 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/manageezpz/model/UserPrefs.java @@ -1,4 +1,4 @@ -package seedu.address.model; +package manageezpz.model; import static java.util.Objects.requireNonNull; @@ -6,7 +6,7 @@ import java.nio.file.Paths; import java.util.Objects; -import seedu.address.commons.core.GuiSettings; +import manageezpz.commons.core.GuiSettings; /** * Represents User's preferences. diff --git a/src/main/java/seedu/address/model/person/Address.java b/src/main/java/manageezpz/model/person/Address.java similarity index 91% rename from src/main/java/seedu/address/model/person/Address.java rename to src/main/java/manageezpz/model/person/Address.java index 60472ca22a0..cec1fe8d63e 100644 --- a/src/main/java/seedu/address/model/person/Address.java +++ b/src/main/java/manageezpz/model/person/Address.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package manageezpz.model.person; + +import manageezpz.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; /** * Represents a Person's address in the address book. diff --git a/src/main/java/seedu/address/model/person/Email.java b/src/main/java/manageezpz/model/person/Email.java similarity index 95% rename from src/main/java/seedu/address/model/person/Email.java rename to src/main/java/manageezpz/model/person/Email.java index f866e7133de..f2655500eb3 100644 --- a/src/main/java/seedu/address/model/person/Email.java +++ b/src/main/java/manageezpz/model/person/Email.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package manageezpz.model.person; + +import manageezpz.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; /** * Represents a Person's email in the address book. diff --git a/src/main/java/seedu/address/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java similarity index 91% rename from src/main/java/seedu/address/model/person/Name.java rename to src/main/java/manageezpz/model/person/Name.java index 79244d71cf7..8924539cd08 100644 --- a/src/main/java/seedu/address/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package manageezpz.model.person; + +import manageezpz.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; /** * Represents a Person's name in the address book. diff --git a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java b/src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java similarity index 91% rename from src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java rename to src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java index c9b5868427c..89d1a9b9982 100644 --- a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java @@ -1,9 +1,9 @@ -package seedu.address.model.person; +package manageezpz.model.person; import java.util.List; import java.util.function.Predicate; -import seedu.address.commons.util.StringUtil; +import manageezpz.commons.util.StringUtil; /** * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java similarity index 95% rename from src/main/java/seedu/address/model/person/Person.java rename to src/main/java/manageezpz/model/person/Person.java index 8ff1d83fe89..fd97fc93c38 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -1,13 +1,13 @@ -package seedu.address.model.person; +package manageezpz.model.person; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static manageezpz.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; +import manageezpz.model.tag.Tag; /** * Represents a Person in the address book. diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java similarity index 90% rename from src/main/java/seedu/address/model/person/Phone.java rename to src/main/java/manageezpz/model/person/Phone.java index 872c76b382f..791eaeed7ee 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package manageezpz.model.person; + +import manageezpz.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; /** * Represents a Person's phone number in the address book. diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/manageezpz/model/person/UniquePersonList.java similarity index 94% rename from src/main/java/seedu/address/model/person/UniquePersonList.java rename to src/main/java/manageezpz/model/person/UniquePersonList.java index 0fee4fe57e6..840293401e5 100644 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ b/src/main/java/manageezpz/model/person/UniquePersonList.java @@ -1,15 +1,15 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import java.util.Iterator; import java.util.List; import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; +import manageezpz.model.person.exceptions.DuplicatePersonException; +import manageezpz.model.person.exceptions.PersonNotFoundException; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. diff --git a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java b/src/main/java/manageezpz/model/person/exceptions/DuplicatePersonException.java similarity index 87% rename from src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java rename to src/main/java/manageezpz/model/person/exceptions/DuplicatePersonException.java index d7290f59442..20761c1f143 100644 --- a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java +++ b/src/main/java/manageezpz/model/person/exceptions/DuplicatePersonException.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.exceptions; +package manageezpz.model.person.exceptions; /** * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if they have the same diff --git a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java b/src/main/java/manageezpz/model/person/exceptions/PersonNotFoundException.java similarity index 75% rename from src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java rename to src/main/java/manageezpz/model/person/exceptions/PersonNotFoundException.java index fa764426ca7..7b7463345aa 100644 --- a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java +++ b/src/main/java/manageezpz/model/person/exceptions/PersonNotFoundException.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.exceptions; +package manageezpz.model.person.exceptions; /** * Signals that the operation is unable to find the specified person. diff --git a/src/main/java/seedu/address/model/tag/Tag.java b/src/main/java/manageezpz/model/tag/Tag.java similarity index 93% rename from src/main/java/seedu/address/model/tag/Tag.java rename to src/main/java/manageezpz/model/tag/Tag.java index b0ea7e7dad7..1ccfed15701 100644 --- a/src/main/java/seedu/address/model/tag/Tag.java +++ b/src/main/java/manageezpz/model/tag/Tag.java @@ -1,7 +1,7 @@ -package seedu.address.model.tag; +package manageezpz.model.tag; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static manageezpz.commons.util.AppUtil.checkArgument; /** * Represents a Tag in the address book. diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java similarity index 85% rename from src/main/java/seedu/address/model/util/SampleDataUtil.java rename to src/main/java/manageezpz/model/util/SampleDataUtil.java index 1806da4facf..b4b40946bb4 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -1,17 +1,17 @@ -package seedu.address.model.util; +package manageezpz.model.util; import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -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.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.model.AddressBook; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; /** * Contains utility methods for populating {@code AddressBook} with sample data. diff --git a/src/main/java/seedu/address/storage/AddressBookStorage.java b/src/main/java/manageezpz/storage/AddressBookStorage.java similarity index 85% rename from src/main/java/seedu/address/storage/AddressBookStorage.java rename to src/main/java/manageezpz/storage/AddressBookStorage.java index 4599182b3f9..e8345ded3d2 100644 --- a/src/main/java/seedu/address/storage/AddressBookStorage.java +++ b/src/main/java/manageezpz/storage/AddressBookStorage.java @@ -1,14 +1,14 @@ -package seedu.address.storage; +package manageezpz.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.ReadOnlyAddressBook; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.model.ReadOnlyAddressBook; /** - * Represents a storage for {@link seedu.address.model.AddressBook}. + * Represents a storage for {@link manageezpz.model.AddressBook}. */ public interface AddressBookStorage { diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java similarity index 91% rename from src/main/java/seedu/address/storage/JsonAdaptedPerson.java rename to src/main/java/manageezpz/storage/JsonAdaptedPerson.java index a6321cec2ea..d45aaf9b853 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package manageezpz.storage; import java.util.ArrayList; import java.util.HashSet; @@ -9,13 +9,13 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import seedu.address.commons.exceptions.IllegalValueException; -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.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; /** * Jackson-friendly version of {@link Person}. diff --git a/src/main/java/seedu/address/storage/JsonAdaptedTag.java b/src/main/java/manageezpz/storage/JsonAdaptedTag.java similarity index 89% rename from src/main/java/seedu/address/storage/JsonAdaptedTag.java rename to src/main/java/manageezpz/storage/JsonAdaptedTag.java index 0df22bdb754..1d2f91e37a2 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedTag.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTag.java @@ -1,10 +1,10 @@ -package seedu.address.storage; +package manageezpz.storage; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.tag.Tag; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.tag.Tag; /** * Jackson-friendly version of {@link Tag}. diff --git a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java b/src/main/java/manageezpz/storage/JsonAddressBookStorage.java similarity index 86% rename from src/main/java/seedu/address/storage/JsonAddressBookStorage.java rename to src/main/java/manageezpz/storage/JsonAddressBookStorage.java index dfab9daaa0d..15d42057bac 100644 --- a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java +++ b/src/main/java/manageezpz/storage/JsonAddressBookStorage.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package manageezpz.storage; import static java.util.Objects.requireNonNull; @@ -7,12 +7,12 @@ import java.util.Optional; import java.util.logging.Logger; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.commons.util.FileUtil; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.ReadOnlyAddressBook; +import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.commons.util.FileUtil; +import manageezpz.commons.util.JsonUtil; +import manageezpz.model.ReadOnlyAddressBook; /** * A class to access AddressBook data stored as a json file on the hard disk. diff --git a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java similarity index 89% rename from src/main/java/seedu/address/storage/JsonSerializableAddressBook.java rename to src/main/java/manageezpz/storage/JsonSerializableAddressBook.java index 5efd834091d..36dd01aff7b 100644 --- a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java +++ b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package manageezpz.storage; import java.util.ArrayList; import java.util.List; @@ -8,10 +8,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.AddressBook; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.person.Person; /** * An Immutable AddressBook that is serializable to JSON format. diff --git a/src/main/java/seedu/address/storage/JsonUserPrefsStorage.java b/src/main/java/manageezpz/storage/JsonUserPrefsStorage.java similarity index 83% rename from src/main/java/seedu/address/storage/JsonUserPrefsStorage.java rename to src/main/java/manageezpz/storage/JsonUserPrefsStorage.java index bc2bbad84aa..8dbd0f9521b 100644 --- a/src/main/java/seedu/address/storage/JsonUserPrefsStorage.java +++ b/src/main/java/manageezpz/storage/JsonUserPrefsStorage.java @@ -1,13 +1,13 @@ -package seedu.address.storage; +package manageezpz.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.util.JsonUtil; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.UserPrefs; /** * A class to access UserPrefs stored in the hard disk as a json file diff --git a/src/main/java/seedu/address/storage/Storage.java b/src/main/java/manageezpz/storage/Storage.java similarity index 73% rename from src/main/java/seedu/address/storage/Storage.java rename to src/main/java/manageezpz/storage/Storage.java index beda8bd9f11..2ad6ab39824 100644 --- a/src/main/java/seedu/address/storage/Storage.java +++ b/src/main/java/manageezpz/storage/Storage.java @@ -1,13 +1,13 @@ -package seedu.address.storage; +package manageezpz.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.UserPrefs; /** * API of the Storage component diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/manageezpz/storage/StorageManager.java similarity index 89% rename from src/main/java/seedu/address/storage/StorageManager.java rename to src/main/java/manageezpz/storage/StorageManager.java index 6cfa0162164..90362ac1695 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/manageezpz/storage/StorageManager.java @@ -1,15 +1,15 @@ -package seedu.address.storage; +package manageezpz.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; import java.util.logging.Logger; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.commons.core.LogsCenter; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.UserPrefs; /** * Manages storage of AddressBook data in local storage. diff --git a/src/main/java/seedu/address/storage/UserPrefsStorage.java b/src/main/java/manageezpz/storage/UserPrefsStorage.java similarity index 71% rename from src/main/java/seedu/address/storage/UserPrefsStorage.java rename to src/main/java/manageezpz/storage/UserPrefsStorage.java index 29eef178dbc..ba051d4ff36 100644 --- a/src/main/java/seedu/address/storage/UserPrefsStorage.java +++ b/src/main/java/manageezpz/storage/UserPrefsStorage.java @@ -1,15 +1,15 @@ -package seedu.address.storage; +package manageezpz.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.UserPrefs; /** - * Represents a storage for {@link seedu.address.model.UserPrefs}. + * Represents a storage for {@link manageezpz.model.UserPrefs}. */ public interface UserPrefsStorage { @@ -27,7 +27,7 @@ public interface UserPrefsStorage { Optional readUserPrefs() throws DataConversionException, IOException; /** - * Saves the given {@link seedu.address.model.ReadOnlyUserPrefs} to the storage. + * Saves the given {@link manageezpz.model.ReadOnlyUserPrefs} to the storage. * @param userPrefs cannot be null. * @throws IOException if there was any problem writing to the file. */ diff --git a/src/main/java/seedu/address/tasks/Task.java b/src/main/java/manageezpz/tasks/Task.java similarity index 98% rename from src/main/java/seedu/address/tasks/Task.java rename to src/main/java/manageezpz/tasks/Task.java index 1cf35b89a03..788ffd2d3bb 100644 --- a/src/main/java/seedu/address/tasks/Task.java +++ b/src/main/java/manageezpz/tasks/Task.java @@ -1,4 +1,4 @@ -package seedu.address.tasks; +package manageezpz.tasks; import java.util.List; diff --git a/src/main/java/seedu/address/ui/CommandBox.java b/src/main/java/manageezpz/ui/CommandBox.java similarity index 89% rename from src/main/java/seedu/address/ui/CommandBox.java rename to src/main/java/manageezpz/ui/CommandBox.java index 9e75478664b..39cd5eb50de 100644 --- a/src/main/java/seedu/address/ui/CommandBox.java +++ b/src/main/java/manageezpz/ui/CommandBox.java @@ -1,12 +1,12 @@ -package seedu.address.ui; +package manageezpz.ui; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.TextField; import javafx.scene.layout.Region; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.logic.commands.CommandResult; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.exceptions.ParseException; /** * The UI component that is responsible for receiving user command inputs. @@ -77,7 +77,7 @@ public interface CommandExecutor { /** * Executes the command and returns the result. * - * @see seedu.address.logic.Logic#execute(String) + * @see manageezpz.logic.Logic#execute(String) */ CommandResult execute(String commandText) throws CommandException, ParseException; } diff --git a/src/main/java/seedu/address/ui/HelpWindow.java b/src/main/java/manageezpz/ui/HelpWindow.java similarity index 97% rename from src/main/java/seedu/address/ui/HelpWindow.java rename to src/main/java/manageezpz/ui/HelpWindow.java index 1b0066e0a45..9ff623967d4 100644 --- a/src/main/java/seedu/address/ui/HelpWindow.java +++ b/src/main/java/manageezpz/ui/HelpWindow.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.util.logging.Logger; @@ -8,7 +8,7 @@ import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; import javafx.stage.Stage; -import seedu.address.commons.core.LogsCenter; +import manageezpz.commons.core.LogsCenter; /** * Controller for a help page diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java similarity index 93% rename from src/main/java/seedu/address/ui/MainWindow.java rename to src/main/java/manageezpz/ui/MainWindow.java index 9106c3aa6e5..a438de5983a 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.util.logging.Logger; @@ -10,12 +10,12 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.Logic; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.commons.core.GuiSettings; +import manageezpz.commons.core.LogsCenter; +import manageezpz.logic.Logic; +import manageezpz.logic.commands.CommandResult; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.exceptions.ParseException; /** * The Main Window. Provides the basic application layout containing @@ -170,7 +170,7 @@ public PersonListPanel getPersonListPanel() { /** * Executes the command and returns the result. * - * @see seedu.address.logic.Logic#execute(String) + * @see manageezpz.logic.Logic#execute(String) */ private CommandResult executeCommand(String commandText) throws CommandException, ParseException { try { diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/manageezpz/ui/PersonCard.java similarity index 96% rename from src/main/java/seedu/address/ui/PersonCard.java rename to src/main/java/manageezpz/ui/PersonCard.java index 7fc927bc5d9..743ffa63c0e 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/manageezpz/ui/PersonCard.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.util.Comparator; @@ -7,7 +7,7 @@ import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; -import seedu.address.model.person.Person; +import manageezpz.model.person.Person; /** * An UI component that displays information of a {@code Person}. diff --git a/src/main/java/seedu/address/ui/PersonListPanel.java b/src/main/java/manageezpz/ui/PersonListPanel.java similarity index 92% rename from src/main/java/seedu/address/ui/PersonListPanel.java rename to src/main/java/manageezpz/ui/PersonListPanel.java index f4c501a897b..1ac763b7d5e 100644 --- a/src/main/java/seedu/address/ui/PersonListPanel.java +++ b/src/main/java/manageezpz/ui/PersonListPanel.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.util.logging.Logger; @@ -7,8 +7,8 @@ import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import javafx.scene.layout.Region; -import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; +import manageezpz.commons.core.LogsCenter; +import manageezpz.model.person.Person; /** * Panel containing the list of persons. diff --git a/src/main/java/seedu/address/ui/ResultDisplay.java b/src/main/java/manageezpz/ui/ResultDisplay.java similarity index 95% rename from src/main/java/seedu/address/ui/ResultDisplay.java rename to src/main/java/manageezpz/ui/ResultDisplay.java index 7d98e84eedf..30167ffc59b 100644 --- a/src/main/java/seedu/address/ui/ResultDisplay.java +++ b/src/main/java/manageezpz/ui/ResultDisplay.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/ui/StatusBarFooter.java b/src/main/java/manageezpz/ui/StatusBarFooter.java similarity index 96% rename from src/main/java/seedu/address/ui/StatusBarFooter.java rename to src/main/java/manageezpz/ui/StatusBarFooter.java index b577f829423..95f3b75bbf1 100644 --- a/src/main/java/seedu/address/ui/StatusBarFooter.java +++ b/src/main/java/manageezpz/ui/StatusBarFooter.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.nio.file.Path; import java.nio.file.Paths; diff --git a/src/main/java/seedu/address/ui/Ui.java b/src/main/java/manageezpz/ui/Ui.java similarity index 86% rename from src/main/java/seedu/address/ui/Ui.java rename to src/main/java/manageezpz/ui/Ui.java index 17aa0b494fe..470fb97337e 100644 --- a/src/main/java/seedu/address/ui/Ui.java +++ b/src/main/java/manageezpz/ui/Ui.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import javafx.stage.Stage; diff --git a/src/main/java/seedu/address/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java similarity index 94% rename from src/main/java/seedu/address/ui/UiManager.java rename to src/main/java/manageezpz/ui/UiManager.java index fdf024138bc..eff9f228da6 100644 --- a/src/main/java/seedu/address/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import java.util.logging.Logger; @@ -7,10 +7,10 @@ import javafx.scene.control.Alert.AlertType; import javafx.scene.image.Image; import javafx.stage.Stage; -import seedu.address.MainApp; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.Logic; +import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.util.StringUtil; +import manageezpz.logic.Logic; +import manageezpz.MainApp; /** * The manager of the UI component. diff --git a/src/main/java/seedu/address/ui/UiPart.java b/src/main/java/manageezpz/ui/UiPart.java similarity index 97% rename from src/main/java/seedu/address/ui/UiPart.java rename to src/main/java/manageezpz/ui/UiPart.java index fc820e01a9c..e6f1fc1fc77 100644 --- a/src/main/java/seedu/address/ui/UiPart.java +++ b/src/main/java/manageezpz/ui/UiPart.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import static java.util.Objects.requireNonNull; @@ -6,7 +6,7 @@ import java.net.URL; import javafx.fxml.FXMLLoader; -import seedu.address.MainApp; +import manageezpz.MainApp; /** * Represents a distinct part of the UI. e.g. Windows, dialogs, panels, status bars, etc. diff --git a/src/test/java/seedu/address/AppParametersTest.java b/src/test/java/manageezpz/AppParametersTest.java similarity index 98% rename from src/test/java/seedu/address/AppParametersTest.java rename to src/test/java/manageezpz/AppParametersTest.java index 61326b2d31a..18b00a54c0e 100644 --- a/src/test/java/seedu/address/AppParametersTest.java +++ b/src/test/java/manageezpz/AppParametersTest.java @@ -1,4 +1,4 @@ -package seedu.address; +package manageezpz; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/seedu/address/commons/core/ConfigTest.java b/src/test/java/manageezpz/commons/core/ConfigTest.java similarity index 95% rename from src/test/java/seedu/address/commons/core/ConfigTest.java rename to src/test/java/manageezpz/commons/core/ConfigTest.java index 07cd7f73d53..da3d8ea3a08 100644 --- a/src/test/java/seedu/address/commons/core/ConfigTest.java +++ b/src/test/java/manageezpz/commons/core/ConfigTest.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/src/test/java/seedu/address/commons/core/VersionTest.java b/src/test/java/manageezpz/commons/core/VersionTest.java similarity index 98% rename from src/test/java/seedu/address/commons/core/VersionTest.java rename to src/test/java/manageezpz/commons/core/VersionTest.java index 495cd231554..36fe5d6a211 100644 --- a/src/test/java/seedu/address/commons/core/VersionTest.java +++ b/src/test/java/manageezpz/commons/core/VersionTest.java @@ -1,8 +1,8 @@ -package seedu.address.commons.core; +package manageezpz.commons.core; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/commons/core/index/IndexTest.java b/src/test/java/manageezpz/commons/core/index/IndexTest.java similarity index 95% rename from src/test/java/seedu/address/commons/core/index/IndexTest.java rename to src/test/java/manageezpz/commons/core/index/IndexTest.java index a3ec6f8e747..dd2d27de86e 100644 --- a/src/test/java/seedu/address/commons/core/index/IndexTest.java +++ b/src/test/java/manageezpz/commons/core/index/IndexTest.java @@ -1,9 +1,9 @@ -package seedu.address.commons.core.index; +package manageezpz.commons.core.index; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/commons/util/AppUtilTest.java b/src/test/java/manageezpz/commons/util/AppUtilTest.java similarity index 91% rename from src/test/java/seedu/address/commons/util/AppUtilTest.java rename to src/test/java/manageezpz/commons/util/AppUtilTest.java index 594de1e6365..866e87a3db5 100644 --- a/src/test/java/seedu/address/commons/util/AppUtilTest.java +++ b/src/test/java/manageezpz/commons/util/AppUtilTest.java @@ -1,7 +1,7 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java b/src/test/java/manageezpz/commons/util/CollectionUtilTest.java similarity index 96% rename from src/test/java/seedu/address/commons/util/CollectionUtilTest.java rename to src/test/java/manageezpz/commons/util/CollectionUtilTest.java index b467a3dc025..739f0708e4a 100644 --- a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java +++ b/src/test/java/manageezpz/commons/util/CollectionUtilTest.java @@ -1,9 +1,9 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; +import static manageezpz.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collection; diff --git a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java b/src/test/java/manageezpz/commons/util/ConfigUtilTest.java similarity index 94% rename from src/test/java/seedu/address/commons/util/ConfigUtilTest.java rename to src/test/java/manageezpz/commons/util/ConfigUtilTest.java index d2ab2839a52..d7818e07e8b 100644 --- a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java +++ b/src/test/java/manageezpz/commons/util/ConfigUtilTest.java @@ -1,8 +1,8 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -10,12 +10,11 @@ import java.util.Optional; import java.util.logging.Level; +import manageezpz.commons.core.Config; +import manageezpz.commons.exceptions.DataConversionException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.Config; -import seedu.address.commons.exceptions.DataConversionException; - public class ConfigUtilTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "ConfigUtilTest"); diff --git a/src/test/java/seedu/address/commons/util/FileUtilTest.java b/src/test/java/manageezpz/commons/util/FileUtilTest.java similarity index 84% rename from src/test/java/seedu/address/commons/util/FileUtilTest.java rename to src/test/java/manageezpz/commons/util/FileUtilTest.java index 1fe5478c756..0ac55254fcb 100644 --- a/src/test/java/seedu/address/commons/util/FileUtilTest.java +++ b/src/test/java/manageezpz/commons/util/FileUtilTest.java @@ -1,8 +1,8 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/commons/util/JsonUtilTest.java b/src/test/java/manageezpz/commons/util/JsonUtilTest.java similarity index 92% rename from src/test/java/seedu/address/commons/util/JsonUtilTest.java rename to src/test/java/manageezpz/commons/util/JsonUtilTest.java index d4907539dee..92de5aa9b3a 100644 --- a/src/test/java/seedu/address/commons/util/JsonUtilTest.java +++ b/src/test/java/manageezpz/commons/util/JsonUtilTest.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.testutil.SerializableTestClass; -import seedu.address.testutil.TestUtil; +import manageezpz.testutil.SerializableTestClass; +import manageezpz.testutil.TestUtil; /** * Tests JSON Read and Write diff --git a/src/test/java/seedu/address/commons/util/StringUtilTest.java b/src/test/java/manageezpz/commons/util/StringUtilTest.java similarity index 98% rename from src/test/java/seedu/address/commons/util/StringUtilTest.java rename to src/test/java/manageezpz/commons/util/StringUtilTest.java index c56d407bf3f..cbdb78d6bfe 100644 --- a/src/test/java/seedu/address/commons/util/StringUtilTest.java +++ b/src/test/java/manageezpz/commons/util/StringUtilTest.java @@ -1,8 +1,8 @@ -package seedu.address.commons.util; +package manageezpz.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import java.io.FileNotFoundException; diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java similarity index 82% rename from src/test/java/seedu/address/logic/LogicManagerTest.java rename to src/test/java/manageezpz/logic/LogicManagerTest.java index ad923ac249a..35b253f9b78 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -1,14 +1,14 @@ -package seedu.address.logic; - +package manageezpz.logic; + +import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.AMY; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; -import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.AMY; import java.io.IOException; import java.nio.file.Path; @@ -17,20 +17,20 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.storage.JsonAddressBookStorage; -import seedu.address.storage.JsonUserPrefsStorage; -import seedu.address.storage.StorageManager; -import seedu.address.testutil.PersonBuilder; +import manageezpz.logic.commands.AddCommand; +import manageezpz.logic.commands.CommandResult; +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; +import manageezpz.storage.JsonAddressBookStorage; +import manageezpz.storage.JsonUserPrefsStorage; +import manageezpz.storage.StorageManager; +import manageezpz.testutil.PersonBuilder; public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy exception"); diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/manageezpz/logic/commands/AddCommandIntegrationTest.java similarity index 68% rename from src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java rename to src/test/java/manageezpz/logic/commands/AddCommandIntegrationTest.java index cb8714bb055..3e04ee49f1b 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/manageezpz/logic/commands/AddCommandIntegrationTest.java @@ -1,17 +1,17 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; +import manageezpz.testutil.PersonBuilder; /** * Contains integration tests (interaction with the Model) for {@code AddCommand}. diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/manageezpz/logic/commands/AddCommandTest.java similarity index 92% rename from src/test/java/seedu/address/logic/commands/AddCommandTest.java rename to src/test/java/manageezpz/logic/commands/AddCommandTest.java index 5865713d5dd..5088d5b0ac2 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddCommandTest.java @@ -1,10 +1,10 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import java.nio.file.Path; import java.util.ArrayList; @@ -14,14 +14,14 @@ import org.junit.jupiter.api.Test; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import manageezpz.commons.core.GuiSettings; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.ReadOnlyUserPrefs; +import manageezpz.model.person.Person; +import manageezpz.testutil.PersonBuilder; public class AddCommandTest { diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/manageezpz/logic/commands/ClearCommandTest.java similarity index 68% rename from src/test/java/seedu/address/logic/commands/ClearCommandTest.java rename to src/test/java/manageezpz/logic/commands/ClearCommandTest.java index 80d9110c03a..7fd0f0f5484 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ClearCommandTest.java @@ -1,14 +1,14 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; public class ClearCommandTest { diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/manageezpz/logic/commands/CommandResultTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/CommandResultTest.java rename to src/test/java/manageezpz/logic/commands/CommandResultTest.java index 4f3eb46e9ef..a5047df7916 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/manageezpz/logic/commands/CommandResultTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java similarity index 88% rename from src/test/java/seedu/address/logic/commands/CommandTestUtil.java rename to src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 643a1d08069..d357188b7ea 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -1,25 +1,25 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -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_TAG; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; +import static manageezpz.testutil.Assert.assertThrows; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.person.Person; +import manageezpz.testutil.EditPersonDescriptorBuilder; /** * Contains helper methods for testing commands. diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java similarity index 83% rename from src/test/java/seedu/address/logic/commands/DeleteCommandTest.java rename to src/test/java/manageezpz/logic/commands/DeleteCommandTest.java index 45a8c910ba1..9a765a3992f 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java @@ -1,22 +1,22 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; /** * Contains integration tests (interaction with the Model) and unit tests for diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/manageezpz/logic/commands/EditCommandTest.java similarity index 83% rename from src/test/java/seedu/address/logic/commands/EditCommandTest.java rename to src/test/java/manageezpz/logic/commands/EditCommandTest.java index 214c6c2507b..caec7f17d87 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditCommandTest.java @@ -1,31 +1,24 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; +import static manageezpz.logic.commands.CommandTestUtil.*; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; +import manageezpz.testutil.EditPersonDescriptorBuilder; +import manageezpz.testutil.PersonBuilder; /** * Contains integration tests (interaction with the Model) and unit tests for EditCommand. diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java similarity index 71% rename from src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java rename to src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java index e0288792e72..4dd2c2eaadb 100644 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java @@ -1,19 +1,19 @@ -package seedu.address.logic.commands; - +package manageezpz.logic.commands; + +import static manageezpz.logic.commands.CommandTestUtil.DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.testutil.EditPersonDescriptorBuilder; public class EditPersonDescriptorTest { diff --git a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java b/src/test/java/manageezpz/logic/commands/ExitCommandTest.java similarity index 60% rename from src/test/java/seedu/address/logic/commands/ExitCommandTest.java rename to src/test/java/manageezpz/logic/commands/ExitCommandTest.java index 9533c473875..4d087213bc0 100644 --- a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ExitCommandTest.java @@ -1,12 +1,12 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; public class ExitCommandTest { private Model model = new ModelManager(); diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/manageezpz/logic/commands/FindCommandTest.java similarity index 82% rename from src/test/java/seedu/address/logic/commands/FindCommandTest.java rename to src/test/java/manageezpz/logic/commands/FindCommandTest.java index 9b15db28bbb..25e9182c1e3 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindCommandTest.java @@ -1,24 +1,24 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.commons.core.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.CARL; -import static seedu.address.testutil.TypicalPersons.ELLE; -import static seedu.address.testutil.TypicalPersons.FIONA; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.commons.core.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.testutil.TypicalPersons.CARL; +import static manageezpz.testutil.TypicalPersons.ELLE; +import static manageezpz.testutil.TypicalPersons.FIONA; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import java.util.Arrays; import java.util.Collections; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.NameContainsKeywordsPredicate; /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/manageezpz/logic/commands/HelpCommandTest.java similarity index 61% rename from src/test/java/seedu/address/logic/commands/HelpCommandTest.java rename to src/test/java/manageezpz/logic/commands/HelpCommandTest.java index 4904fc4352e..b46a2d87b3f 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/HelpCommandTest.java @@ -1,12 +1,12 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; public class HelpCommandTest { private Model model = new ModelManager(); diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListCommandTest.java similarity index 65% rename from src/test/java/seedu/address/logic/commands/ListCommandTest.java rename to src/test/java/manageezpz/logic/commands/ListCommandTest.java index 435ff1f7275..46e54a09407 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListCommandTest.java @@ -1,16 +1,16 @@ -package seedu.address.logic.commands; +package manageezpz.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; /** * Contains integration tests (interaction with the Model) and unit tests for ListCommand. diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java similarity index 66% rename from src/test/java/seedu/address/logic/parser/AddCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/AddCommandParserTest.java index 5cf487d7ebb..5aa25ea1963 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java @@ -1,44 +1,23 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_NAME_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_TAG_DESC; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; -import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_WHITESPACE; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalPersons.AMY; -import static seedu.address.testutil.TypicalPersons.BOB; +package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.commands.CommandTestUtil.*; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.testutil.TypicalPersons.AMY; +import static manageezpz.testutil.TypicalPersons.BOB; + +import manageezpz.logic.commands.CommandTestUtil; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddCommand; -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.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.testutil.PersonBuilder; +import manageezpz.logic.commands.AddCommand; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; +import manageezpz.testutil.PersonBuilder; public class AddCommandParserTest { private AddCommandParser parser = new AddCommandParser(); diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java similarity index 75% rename from src/test/java/seedu/address/logic/parser/AddressBookParserTest.java rename to src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index d9659205b57..91752a7f3a9 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -1,11 +1,11 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.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.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import java.util.Arrays; import java.util.List; @@ -13,21 +13,21 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; -import seedu.address.testutil.PersonUtil; +import manageezpz.logic.commands.AddCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.person.Person; +import manageezpz.testutil.EditPersonDescriptorBuilder; +import manageezpz.testutil.PersonBuilder; +import manageezpz.testutil.PersonUtil; public class AddressBookParserTest { diff --git a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java b/src/test/java/manageezpz/logic/parser/ArgumentTokenizerTest.java similarity index 99% rename from src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java rename to src/test/java/manageezpz/logic/parser/ArgumentTokenizerTest.java index c97308935f5..b8790b57951 100644 --- a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java +++ b/src/test/java/manageezpz/logic/parser/ArgumentTokenizerTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java b/src/test/java/manageezpz/logic/parser/CommandParserTestUtil.java similarity index 89% rename from src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java rename to src/test/java/manageezpz/logic/parser/CommandParserTestUtil.java index e4c33515768..48474ccac01 100644 --- a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java +++ b/src/test/java/manageezpz/logic/parser/CommandParserTestUtil.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; -import seedu.address.logic.commands.Command; -import seedu.address.logic.parser.exceptions.ParseException; +import manageezpz.logic.commands.Command; +import manageezpz.logic.parser.exceptions.ParseException; /** * Contains helper methods for testing command parsers. diff --git a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java similarity index 68% rename from src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java index 27eaec84450..ec4d86230e9 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java @@ -1,13 +1,13 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteCommand; +import manageezpz.logic.commands.DeleteCommand; /** * As we are only doing white-box testing, our test cases do not cover path variations diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java similarity index 75% rename from src/test/java/seedu/address/logic/parser/EditCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/EditCommandParserTest.java index 2ff31522486..cbc93b6a675 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java @@ -1,47 +1,47 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_NAME_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_TAG_DESC; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_THIRD_PERSON; +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_NAME_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_TAG_DESC; +import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; +import static manageezpz.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_THIRD_PERSON; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; +import manageezpz.testutil.EditPersonDescriptorBuilder; public class EditCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java similarity index 67% rename from src/test/java/seedu/address/logic/parser/FindCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/FindCommandParserTest.java index 70f4f0e79c4..6c252d77a60 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java @@ -1,15 +1,15 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import java.util.Arrays; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.FindCommand; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import manageezpz.logic.commands.FindCommand; +import manageezpz.model.person.NameContainsKeywordsPredicate; public class FindCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java similarity index 93% rename from src/test/java/seedu/address/logic/parser/ParserUtilTest.java rename to src/test/java/manageezpz/logic/parser/ParserUtilTest.java index 4256788b1a7..a0bb5755d1e 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java @@ -1,10 +1,10 @@ -package seedu.address.logic.parser; +package manageezpz.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import java.util.Arrays; import java.util.Collections; @@ -13,12 +13,12 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; public class ParserUtilTest { private static final String INVALID_NAME = "R@chel"; diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/manageezpz/model/AddressBookTest.java similarity index 85% rename from src/test/java/seedu/address/model/AddressBookTest.java rename to src/test/java/manageezpz/model/AddressBookTest.java index 87782528ecd..c12690eabce 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/manageezpz/model/AddressBookTest.java @@ -1,13 +1,13 @@ -package seedu.address.model; +package manageezpz.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import java.util.Arrays; import java.util.Collection; @@ -18,9 +18,9 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.testutil.PersonBuilder; +import manageezpz.model.person.Person; +import manageezpz.model.person.exceptions.DuplicatePersonException; +import manageezpz.testutil.PersonBuilder; public class AddressBookTest { diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java similarity index 91% rename from src/test/java/seedu/address/model/ModelManagerTest.java rename to src/test/java/manageezpz/model/ModelManagerTest.java index 2cf1418d116..3d3c5101b64 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -1,12 +1,12 @@ -package seedu.address.model; +package manageezpz.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BENSON; +import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BENSON; import java.nio.file.Path; import java.nio.file.Paths; @@ -14,9 +14,9 @@ import org.junit.jupiter.api.Test; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.testutil.AddressBookBuilder; +import manageezpz.commons.core.GuiSettings; +import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.testutil.AddressBookBuilder; public class ModelManagerTest { diff --git a/src/test/java/seedu/address/model/UserPrefsTest.java b/src/test/java/manageezpz/model/UserPrefsTest.java similarity index 86% rename from src/test/java/seedu/address/model/UserPrefsTest.java rename to src/test/java/manageezpz/model/UserPrefsTest.java index b1307a70d52..7b03fc96c57 100644 --- a/src/test/java/seedu/address/model/UserPrefsTest.java +++ b/src/test/java/manageezpz/model/UserPrefsTest.java @@ -1,6 +1,6 @@ -package seedu.address.model; +package manageezpz.model; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/model/person/AddressTest.java b/src/test/java/manageezpz/model/person/AddressTest.java similarity index 92% rename from src/test/java/seedu/address/model/person/AddressTest.java rename to src/test/java/manageezpz/model/person/AddressTest.java index dcd3be87b3a..32a7cd9d549 100644 --- a/src/test/java/seedu/address/model/person/AddressTest.java +++ b/src/test/java/manageezpz/model/person/AddressTest.java @@ -1,8 +1,8 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/model/person/EmailTest.java b/src/test/java/manageezpz/model/person/EmailTest.java similarity index 97% rename from src/test/java/seedu/address/model/person/EmailTest.java rename to src/test/java/manageezpz/model/person/EmailTest.java index bbcc6c8c98e..52b6aaefea6 100644 --- a/src/test/java/seedu/address/model/person/EmailTest.java +++ b/src/test/java/manageezpz/model/person/EmailTest.java @@ -1,8 +1,8 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java similarity index 97% rename from src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java rename to src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java index f136664e017..fdde6ca1637 100644 --- a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import manageezpz.testutil.PersonBuilder; public class NameContainsKeywordsPredicateTest { diff --git a/src/test/java/seedu/address/model/person/NameTest.java b/src/test/java/manageezpz/model/person/NameTest.java similarity index 93% rename from src/test/java/seedu/address/model/person/NameTest.java rename to src/test/java/manageezpz/model/person/NameTest.java index c9801392874..a5c67fc93ad 100644 --- a/src/test/java/seedu/address/model/person/NameTest.java +++ b/src/test/java/manageezpz/model/person/NameTest.java @@ -1,8 +1,8 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java similarity index 82% rename from src/test/java/seedu/address/model/person/PersonTest.java rename to src/test/java/manageezpz/model/person/PersonTest.java index b29c097cfd4..1d2788494dd 100644 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -1,19 +1,19 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BOB; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import manageezpz.testutil.PersonBuilder; public class PersonTest { diff --git a/src/test/java/seedu/address/model/person/PhoneTest.java b/src/test/java/manageezpz/model/person/PhoneTest.java similarity index 93% rename from src/test/java/seedu/address/model/person/PhoneTest.java rename to src/test/java/manageezpz/model/person/PhoneTest.java index 8dd52766a5f..82170a377b0 100644 --- a/src/test/java/seedu/address/model/person/PhoneTest.java +++ b/src/test/java/manageezpz/model/person/PhoneTest.java @@ -1,8 +1,8 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/model/person/UniquePersonListTest.java b/src/test/java/manageezpz/model/person/UniquePersonListTest.java similarity index 91% rename from src/test/java/seedu/address/model/person/UniquePersonListTest.java rename to src/test/java/manageezpz/model/person/UniquePersonListTest.java index 1cc5fe9e0fe..e12b3f8689a 100644 --- a/src/test/java/seedu/address/model/person/UniquePersonListTest.java +++ b/src/test/java/manageezpz/model/person/UniquePersonListTest.java @@ -1,13 +1,13 @@ -package seedu.address.model.person; +package manageezpz.model.person; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BOB; import java.util.Arrays; import java.util.Collections; @@ -15,9 +15,9 @@ import org.junit.jupiter.api.Test; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; -import seedu.address.testutil.PersonBuilder; +import manageezpz.model.person.exceptions.DuplicatePersonException; +import manageezpz.model.person.exceptions.PersonNotFoundException; +import manageezpz.testutil.PersonBuilder; public class UniquePersonListTest { diff --git a/src/test/java/seedu/address/model/tag/TagTest.java b/src/test/java/manageezpz/model/tag/TagTest.java similarity index 86% rename from src/test/java/seedu/address/model/tag/TagTest.java rename to src/test/java/manageezpz/model/tag/TagTest.java index 64d07d79ee2..34615be1b65 100644 --- a/src/test/java/seedu/address/model/tag/TagTest.java +++ b/src/test/java/manageezpz/model/tag/TagTest.java @@ -1,6 +1,6 @@ -package seedu.address.model.tag; +package manageezpz.model.tag; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java similarity index 91% rename from src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java rename to src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index 83b11331cdb..45dcba013d0 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -1,22 +1,21 @@ -package seedu.address.storage; +package manageezpz.storage; +import static manageezpz.storage.JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.BENSON; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.storage.JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.BENSON; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Phone; import org.junit.jupiter.api.Test; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; - public class JsonAdaptedPersonTest { private static final String INVALID_NAME = "R@chel"; private static final String INVALID_PHONE = "+651234"; diff --git a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java similarity index 89% rename from src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java rename to src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java index ac3c3af9566..beec161b920 100644 --- a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java @@ -1,24 +1,23 @@ -package seedu.address.storage; +package manageezpz.storage; +import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.HOON; +import static manageezpz.testutil.TypicalPersons.IDA; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.HOON; -import static seedu.address.testutil.TypicalPersons.IDA; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.model.AddressBook; +import manageezpz.model.ReadOnlyAddressBook; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; - public class JsonAddressBookStorageTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); diff --git a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java similarity index 86% rename from src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java rename to src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index 188c9058d20..b869318165a 100644 --- a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -1,18 +1,17 @@ -package seedu.address.storage; +package manageezpz.storage; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.testutil.Assert.assertThrows; import java.nio.file.Path; import java.nio.file.Paths; +import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.commons.util.JsonUtil; +import manageezpz.model.AddressBook; +import manageezpz.testutil.TypicalPersons; import org.junit.jupiter.api.Test; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.AddressBook; -import seedu.address.testutil.TypicalPersons; - public class JsonSerializableAddressBookTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonSerializableAddressBookTest"); diff --git a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java b/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java similarity index 94% rename from src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java rename to src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java index 16f33f4a6bb..890c3ded0cc 100644 --- a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java @@ -1,21 +1,20 @@ -package seedu.address.storage; +package manageezpz.storage; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; +import manageezpz.commons.core.GuiSettings; +import manageezpz.commons.exceptions.DataConversionException; +import manageezpz.model.UserPrefs; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.exceptions.DataConversionException; -import seedu.address.model.UserPrefs; - public class JsonUserPrefsStorageTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonUserPrefsStorageTest"); diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/manageezpz/storage/StorageManagerTest.java similarity index 88% rename from src/test/java/seedu/address/storage/StorageManagerTest.java rename to src/test/java/manageezpz/storage/StorageManagerTest.java index 99a16548970..dfddfe7fdd1 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/manageezpz/storage/StorageManagerTest.java @@ -1,20 +1,19 @@ -package seedu.address.storage; +package manageezpz.storage; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.nio.file.Path; +import manageezpz.commons.core.GuiSettings; +import manageezpz.model.AddressBook; +import manageezpz.model.ReadOnlyAddressBook; +import manageezpz.model.UserPrefs; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.UserPrefs; - public class StorageManagerTest { @TempDir diff --git a/src/test/java/seedu/address/testutil/AddressBookBuilder.java b/src/test/java/manageezpz/testutil/AddressBookBuilder.java similarity index 86% rename from src/test/java/seedu/address/testutil/AddressBookBuilder.java rename to src/test/java/manageezpz/testutil/AddressBookBuilder.java index d53799fd110..5cf2b78ec6f 100644 --- a/src/test/java/seedu/address/testutil/AddressBookBuilder.java +++ b/src/test/java/manageezpz/testutil/AddressBookBuilder.java @@ -1,7 +1,7 @@ -package seedu.address.testutil; +package manageezpz.testutil; -import seedu.address.model.AddressBook; -import seedu.address.model.person.Person; +import manageezpz.model.AddressBook; +import manageezpz.model.person.Person; /** * A utility class to help with building Addressbook objects. diff --git a/src/test/java/seedu/address/testutil/Assert.java b/src/test/java/manageezpz/testutil/Assert.java similarity index 97% rename from src/test/java/seedu/address/testutil/Assert.java rename to src/test/java/manageezpz/testutil/Assert.java index 9863093bd6e..c9a08871455 100644 --- a/src/test/java/seedu/address/testutil/Assert.java +++ b/src/test/java/manageezpz/testutil/Assert.java @@ -1,4 +1,4 @@ -package seedu.address.testutil; +package manageezpz.testutil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.function.Executable; diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java similarity index 87% rename from src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java rename to src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java index 4584bd5044e..20b65fa748d 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java @@ -1,16 +1,16 @@ -package seedu.address.testutil; +package manageezpz.testutil; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -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.Phone; -import seedu.address.model.tag.Tag; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.model.tag.Tag; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; /** * A utility class to help with building EditPersonDescriptor objects. diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/manageezpz/testutil/PersonBuilder.java similarity index 88% rename from src/test/java/seedu/address/testutil/PersonBuilder.java rename to src/test/java/manageezpz/testutil/PersonBuilder.java index 6be381d39ba..061a43d4ea0 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/manageezpz/testutil/PersonBuilder.java @@ -1,15 +1,15 @@ -package seedu.address.testutil; +package manageezpz.testutil; import java.util.HashSet; import java.util.Set; -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.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.model.util.SampleDataUtil; +import manageezpz.model.tag.Tag; +import manageezpz.model.util.SampleDataUtil; +import manageezpz.model.person.Address; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.Person; +import manageezpz.model.person.Phone; /** * A utility class to help with building Person objects. diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/manageezpz/testutil/PersonUtil.java similarity index 78% rename from src/test/java/seedu/address/testutil/PersonUtil.java rename to src/test/java/manageezpz/testutil/PersonUtil.java index 90849945183..92a67a033a8 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/manageezpz/testutil/PersonUtil.java @@ -1,17 +1,17 @@ -package seedu.address.testutil; +package manageezpz.testutil; -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_TAG; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Person; -import seedu.address.model.tag.Tag; +import manageezpz.logic.commands.AddCommand; +import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.model.person.Person; +import manageezpz.model.tag.Tag; /** * A utility class for Person. diff --git a/src/test/java/seedu/address/testutil/SerializableTestClass.java b/src/test/java/manageezpz/testutil/SerializableTestClass.java similarity index 98% rename from src/test/java/seedu/address/testutil/SerializableTestClass.java rename to src/test/java/manageezpz/testutil/SerializableTestClass.java index f5a66340489..6dfae862ca3 100644 --- a/src/test/java/seedu/address/testutil/SerializableTestClass.java +++ b/src/test/java/manageezpz/testutil/SerializableTestClass.java @@ -1,4 +1,4 @@ -package seedu.address.testutil; +package manageezpz.testutil; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/src/test/java/seedu/address/testutil/TestUtil.java b/src/test/java/manageezpz/testutil/TestUtil.java similarity index 90% rename from src/test/java/seedu/address/testutil/TestUtil.java rename to src/test/java/manageezpz/testutil/TestUtil.java index 896d103eb0b..3b57aaadf57 100644 --- a/src/test/java/seedu/address/testutil/TestUtil.java +++ b/src/test/java/manageezpz/testutil/TestUtil.java @@ -1,13 +1,13 @@ -package seedu.address.testutil; +package manageezpz.testutil; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import seedu.address.commons.core.index.Index; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import manageezpz.commons.core.index.Index; +import manageezpz.model.Model; +import manageezpz.model.person.Person; /** * A utility class for test cases. diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/manageezpz/testutil/TypicalIndexes.java similarity index 81% rename from src/test/java/seedu/address/testutil/TypicalIndexes.java rename to src/test/java/manageezpz/testutil/TypicalIndexes.java index 1e613937657..0f1c9ced77c 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/manageezpz/testutil/TypicalIndexes.java @@ -1,6 +1,6 @@ -package seedu.address.testutil; +package manageezpz.testutil; -import seedu.address.commons.core.index.Index; +import manageezpz.commons.core.index.Index; /** * A utility class containing a list of {@code Index} objects to be used in tests. diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/manageezpz/testutil/TypicalPersons.java similarity index 78% rename from src/test/java/seedu/address/testutil/TypicalPersons.java rename to src/test/java/manageezpz/testutil/TypicalPersons.java index fec76fb7129..4ac4b0d5d15 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/manageezpz/testutil/TypicalPersons.java @@ -1,22 +1,22 @@ -package seedu.address.testutil; +package manageezpz.testutil; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import seedu.address.model.AddressBook; -import seedu.address.model.person.Person; +import manageezpz.model.AddressBook; +import manageezpz.model.person.Person; /** * A utility class containing a list of {@code Person} objects to be used in tests. diff --git a/src/test/java/seedu/address/ui/TestFxmlObject.java b/src/test/java/manageezpz/ui/TestFxmlObject.java similarity index 96% rename from src/test/java/seedu/address/ui/TestFxmlObject.java rename to src/test/java/manageezpz/ui/TestFxmlObject.java index 5ecd82656f2..ee79d19b836 100644 --- a/src/test/java/seedu/address/ui/TestFxmlObject.java +++ b/src/test/java/manageezpz/ui/TestFxmlObject.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package manageezpz.ui; import javafx.beans.DefaultProperty; diff --git a/src/test/java/seedu/address/ui/UiPartTest.java b/src/test/java/manageezpz/ui/UiPartTest.java similarity index 97% rename from src/test/java/seedu/address/ui/UiPartTest.java rename to src/test/java/manageezpz/ui/UiPartTest.java index 33d82d911b8..61c90bd8a75 100644 --- a/src/test/java/seedu/address/ui/UiPartTest.java +++ b/src/test/java/manageezpz/ui/UiPartTest.java @@ -1,8 +1,8 @@ -package seedu.address.ui; +package manageezpz.ui; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.Assert.assertThrows; +import static manageezpz.testutil.Assert.assertThrows; import java.net.URL; import java.nio.file.Path; @@ -11,7 +11,7 @@ import org.junit.jupiter.api.io.TempDir; import javafx.fxml.FXML; -import seedu.address.MainApp; +import manageezpz.MainApp; public class UiPartTest { diff --git a/src/test/resources/view/UiPartTest/validFile.fxml b/src/test/resources/view/UiPartTest/validFile.fxml index bab836af0db..f065da94d4b 100644 --- a/src/test/resources/view/UiPartTest/validFile.fxml +++ b/src/test/resources/view/UiPartTest/validFile.fxml @@ -1,4 +1,4 @@ - + Hello World! diff --git a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml index 151e09ce926..1e44a6d3b93 100644 --- a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml +++ b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml @@ -1,6 +1,6 @@ - + Hello World! From edc22a43127a64033115dc1a5fa80039ce68f9e2 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 19:32:44 +0800 Subject: [PATCH 060/507] Update order of imports to adhere to Checkstyle --- src/main/java/manageezpz/MainApp.java | 4 ++-- src/main/java/manageezpz/commons/util/ConfigUtil.java | 2 +- src/main/java/manageezpz/commons/util/JsonUtil.java | 2 +- src/main/java/manageezpz/logic/commands/EditCommand.java | 2 +- src/main/java/manageezpz/logic/parser/AddCommandParser.java | 2 +- src/main/java/manageezpz/logic/parser/AddressBookParser.java | 2 +- src/main/java/manageezpz/logic/parser/ParserUtil.java | 2 +- src/main/java/manageezpz/model/ModelManager.java | 1 - src/main/java/manageezpz/model/person/Address.java | 4 +--- src/main/java/manageezpz/model/person/Email.java | 4 +--- src/main/java/manageezpz/model/person/Name.java | 4 +--- src/main/java/manageezpz/model/person/Phone.java | 4 +--- src/main/java/manageezpz/storage/StorageManager.java | 2 +- src/main/java/manageezpz/ui/UiManager.java | 2 +- 14 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index 6a860edc05b..faa373945a9 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -16,8 +16,6 @@ import manageezpz.logic.Logic; import manageezpz.logic.LogicManager; import manageezpz.model.util.SampleDataUtil; -import manageezpz.ui.Ui; -import manageezpz.ui.UiManager; import manageezpz.model.AddressBook; import manageezpz.model.Model; import manageezpz.model.ModelManager; @@ -30,6 +28,8 @@ import manageezpz.storage.Storage; import manageezpz.storage.StorageManager; import manageezpz.storage.UserPrefsStorage; +import manageezpz.ui.Ui; +import manageezpz.ui.UiManager; /** * Runs the application. diff --git a/src/main/java/manageezpz/commons/util/ConfigUtil.java b/src/main/java/manageezpz/commons/util/ConfigUtil.java index d94b18da488..e7945653f3a 100644 --- a/src/main/java/manageezpz/commons/util/ConfigUtil.java +++ b/src/main/java/manageezpz/commons/util/ConfigUtil.java @@ -4,8 +4,8 @@ import java.nio.file.Path; import java.util.Optional; -import manageezpz.commons.exceptions.DataConversionException; import manageezpz.commons.core.Config; +import manageezpz.commons.exceptions.DataConversionException; /** * A class for accessing the Config File. diff --git a/src/main/java/manageezpz/commons/util/JsonUtil.java b/src/main/java/manageezpz/commons/util/JsonUtil.java index 59fd63c20ad..950b8427e06 100644 --- a/src/main/java/manageezpz/commons/util/JsonUtil.java +++ b/src/main/java/manageezpz/commons/util/JsonUtil.java @@ -20,8 +20,8 @@ import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import manageezpz.commons.exceptions.DataConversionException; import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.exceptions.DataConversionException; /** * Converts a Java object instance to JSON and vice versa diff --git a/src/main/java/manageezpz/logic/commands/EditCommand.java b/src/main/java/manageezpz/logic/commands/EditCommand.java index ea0fd219bbf..4afd7f01f4a 100644 --- a/src/main/java/manageezpz/logic/commands/EditCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditCommand.java @@ -19,12 +19,12 @@ import manageezpz.commons.util.CollectionUtil; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; -import manageezpz.model.tag.Tag; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; /** * Edits the details of an existing person in the address book. diff --git a/src/main/java/manageezpz/logic/parser/AddCommandParser.java b/src/main/java/manageezpz/logic/parser/AddCommandParser.java index 20b53bc9f86..314aadfbe47 100644 --- a/src/main/java/manageezpz/logic/parser/AddCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddCommandParser.java @@ -12,12 +12,12 @@ import manageezpz.logic.commands.AddCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.tag.Tag; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; /** * Parses input arguments and creates a new AddCommand object diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index c1652b64049..7a330110654 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,7 +6,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.logic.commands.AddCommand; import manageezpz.logic.commands.ClearCommand; import manageezpz.logic.commands.Command; @@ -16,6 +15,7 @@ import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.parser.exceptions.ParseException; /** * Parses user input. diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 92aed921bf9..c2b6cc14cc4 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -8,12 +8,12 @@ import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; +import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; import manageezpz.model.tag.Tag; -import manageezpz.logic.parser.exceptions.ParseException; /** * Contains utility methods used for parsing strings in the various *Parser classes. diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 321385cce77..a847a5cf765 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -11,7 +11,6 @@ import javafx.collections.transformation.FilteredList; import manageezpz.commons.core.GuiSettings; import manageezpz.commons.core.LogsCenter; -import manageezpz.commons.util.CollectionUtil; import manageezpz.model.person.Person; /** diff --git a/src/main/java/manageezpz/model/person/Address.java b/src/main/java/manageezpz/model/person/Address.java index cec1fe8d63e..7f16ec3c25e 100644 --- a/src/main/java/manageezpz/model/person/Address.java +++ b/src/main/java/manageezpz/model/person/Address.java @@ -1,9 +1,7 @@ package manageezpz.model.person; -import manageezpz.commons.util.AppUtil; - -import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import static java.util.Objects.requireNonNull; /** * Represents a Person's address in the address book. diff --git a/src/main/java/manageezpz/model/person/Email.java b/src/main/java/manageezpz/model/person/Email.java index f2655500eb3..37311364f19 100644 --- a/src/main/java/manageezpz/model/person/Email.java +++ b/src/main/java/manageezpz/model/person/Email.java @@ -1,9 +1,7 @@ package manageezpz.model.person; -import manageezpz.commons.util.AppUtil; - -import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import static java.util.Objects.requireNonNull; /** * Represents a Person's email in the address book. diff --git a/src/main/java/manageezpz/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java index 8924539cd08..08e1ac7daf8 100644 --- a/src/main/java/manageezpz/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -1,9 +1,7 @@ package manageezpz.model.person; -import manageezpz.commons.util.AppUtil; - -import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import static java.util.Objects.requireNonNull; /** * Represents a Person's name in the address book. diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index 791eaeed7ee..60d07cfad00 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -1,9 +1,7 @@ package manageezpz.model.person; -import manageezpz.commons.util.AppUtil; - -import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import static java.util.Objects.requireNonNull; /** * Represents a Person's phone number in the address book. diff --git a/src/main/java/manageezpz/storage/StorageManager.java b/src/main/java/manageezpz/storage/StorageManager.java index 90362ac1695..24e2129b699 100644 --- a/src/main/java/manageezpz/storage/StorageManager.java +++ b/src/main/java/manageezpz/storage/StorageManager.java @@ -5,8 +5,8 @@ import java.util.Optional; import java.util.logging.Logger; -import manageezpz.commons.exceptions.DataConversionException; import manageezpz.commons.core.LogsCenter; +import manageezpz.commons.exceptions.DataConversionException; import manageezpz.model.ReadOnlyAddressBook; import manageezpz.model.ReadOnlyUserPrefs; import manageezpz.model.UserPrefs; diff --git a/src/main/java/manageezpz/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java index eff9f228da6..d072b282cf1 100644 --- a/src/main/java/manageezpz/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -9,8 +9,8 @@ import javafx.stage.Stage; import manageezpz.commons.core.LogsCenter; import manageezpz.commons.util.StringUtil; -import manageezpz.logic.Logic; import manageezpz.MainApp; +import manageezpz.logic.Logic; /** * The manager of the UI component. From f11acf2fff5ad7783bdbb0223d91ca5ead3e2eb5 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 19:40:37 +0800 Subject: [PATCH 061/507] Update order of imports to adhere to Checkstyle --- src/main/java/manageezpz/MainApp.java | 2 +- src/main/java/manageezpz/model/person/Address.java | 3 ++- src/main/java/manageezpz/model/person/Email.java | 3 ++- src/main/java/manageezpz/model/person/Name.java | 3 ++- src/main/java/manageezpz/model/person/Phone.java | 3 ++- src/main/java/manageezpz/ui/UiManager.java | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index faa373945a9..3e080bc196a 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -15,13 +15,13 @@ import manageezpz.commons.util.StringUtil; import manageezpz.logic.Logic; import manageezpz.logic.LogicManager; -import manageezpz.model.util.SampleDataUtil; import manageezpz.model.AddressBook; import manageezpz.model.Model; import manageezpz.model.ModelManager; import manageezpz.model.ReadOnlyAddressBook; import manageezpz.model.ReadOnlyUserPrefs; import manageezpz.model.UserPrefs; +import manageezpz.model.util.SampleDataUtil; import manageezpz.storage.AddressBookStorage; import manageezpz.storage.JsonAddressBookStorage; import manageezpz.storage.JsonUserPrefsStorage; diff --git a/src/main/java/manageezpz/model/person/Address.java b/src/main/java/manageezpz/model/person/Address.java index 7f16ec3c25e..1d2f47f8638 100644 --- a/src/main/java/manageezpz/model/person/Address.java +++ b/src/main/java/manageezpz/model/person/Address.java @@ -1,8 +1,9 @@ package manageezpz.model.person; -import static manageezpz.commons.util.AppUtil.checkArgument; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + /** * Represents a Person's address in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidAddress(String)} diff --git a/src/main/java/manageezpz/model/person/Email.java b/src/main/java/manageezpz/model/person/Email.java index 37311364f19..65090293566 100644 --- a/src/main/java/manageezpz/model/person/Email.java +++ b/src/main/java/manageezpz/model/person/Email.java @@ -1,8 +1,9 @@ package manageezpz.model.person; -import static manageezpz.commons.util.AppUtil.checkArgument; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + /** * Represents a Person's email in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidEmail(String)} diff --git a/src/main/java/manageezpz/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java index 08e1ac7daf8..39105ead462 100644 --- a/src/main/java/manageezpz/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -1,8 +1,9 @@ package manageezpz.model.person; -import static manageezpz.commons.util.AppUtil.checkArgument; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + /** * Represents a Person's name in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index 60d07cfad00..dd834233d6a 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -1,8 +1,9 @@ package manageezpz.model.person; -import static manageezpz.commons.util.AppUtil.checkArgument; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + /** * Represents a Person's phone number in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidPhone(String)} diff --git a/src/main/java/manageezpz/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java index d072b282cf1..e364491a55a 100644 --- a/src/main/java/manageezpz/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -7,9 +7,9 @@ import javafx.scene.control.Alert.AlertType; import javafx.scene.image.Image; import javafx.stage.Stage; +import manageezpz.MainApp; import manageezpz.commons.core.LogsCenter; import manageezpz.commons.util.StringUtil; -import manageezpz.MainApp; import manageezpz.logic.Logic; /** From 1dde17798a7b65e8916ec022cc4be0220137f0b9 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 19:43:34 +0800 Subject: [PATCH 062/507] Update order of imports to adhere to Checkstyle --- src/main/java/manageezpz/model/person/Address.java | 1 - src/main/java/manageezpz/model/person/Email.java | 1 - src/main/java/manageezpz/model/person/Name.java | 1 - src/main/java/manageezpz/model/person/Phone.java | 1 - 4 files changed, 4 deletions(-) diff --git a/src/main/java/manageezpz/model/person/Address.java b/src/main/java/manageezpz/model/person/Address.java index 1d2f47f8638..a9d7fbf035d 100644 --- a/src/main/java/manageezpz/model/person/Address.java +++ b/src/main/java/manageezpz/model/person/Address.java @@ -1,7 +1,6 @@ package manageezpz.model.person; import static java.util.Objects.requireNonNull; - import static manageezpz.commons.util.AppUtil.checkArgument; /** diff --git a/src/main/java/manageezpz/model/person/Email.java b/src/main/java/manageezpz/model/person/Email.java index 65090293566..dc2f180245f 100644 --- a/src/main/java/manageezpz/model/person/Email.java +++ b/src/main/java/manageezpz/model/person/Email.java @@ -1,7 +1,6 @@ package manageezpz.model.person; import static java.util.Objects.requireNonNull; - import static manageezpz.commons.util.AppUtil.checkArgument; /** diff --git a/src/main/java/manageezpz/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java index 39105ead462..1ab73d1a561 100644 --- a/src/main/java/manageezpz/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -1,7 +1,6 @@ package manageezpz.model.person; import static java.util.Objects.requireNonNull; - import static manageezpz.commons.util.AppUtil.checkArgument; /** diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index dd834233d6a..0a69f43c78f 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -1,7 +1,6 @@ package manageezpz.model.person; import static java.util.Objects.requireNonNull; - import static manageezpz.commons.util.AppUtil.checkArgument; /** From 972aec906bd7b24cb7473586761312b1b18c909d Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 20:08:41 +0800 Subject: [PATCH 063/507] Update order of imports to adhere to Checkstyle --- .../manageezpz/commons/core/VersionTest.java | 2 +- .../commons/core/index/IndexTest.java | 2 +- .../manageezpz/commons/util/AppUtilTest.java | 2 +- .../commons/util/CollectionUtilTest.java | 4 +-- .../commons/util/ConfigUtilTest.java | 7 +++--- .../manageezpz/commons/util/FileUtilTest.java | 2 +- .../commons/util/StringUtilTest.java | 2 +- .../manageezpz/logic/LogicManagerTest.java | 4 +-- .../logic/commands/AddCommandTest.java | 2 +- .../logic/commands/CommandTestUtil.java | 4 +-- .../logic/commands/DeleteCommandTest.java | 4 +-- .../logic/commands/EditCommandTest.java | 9 ++++++- .../logic/commands/FindCommandTest.java | 6 ++--- .../logic/parser/AddCommandParserTest.java | 25 +++++++++++++++++-- .../logic/parser/AddressBookParserTest.java | 4 +-- .../logic/parser/ParserUtilTest.java | 4 +-- .../manageezpz/model/AddressBookTest.java | 6 ++--- .../manageezpz/model/ModelManagerTest.java | 6 ++--- .../manageezpz/model/person/AddressTest.java | 2 +- .../manageezpz/model/person/EmailTest.java | 2 +- .../manageezpz/model/person/NameTest.java | 2 +- .../manageezpz/model/person/PersonTest.java | 4 +-- .../model/person/UniquePersonListTest.java | 6 ++--- .../storage/JsonAdaptedPersonTest.java | 3 ++- .../storage/JsonAddressBookStorageTest.java | 5 ++-- .../JsonSerializableAddressBookTest.java | 3 ++- .../storage/JsonUserPrefsStorageTest.java | 7 +++--- .../storage/StorageManagerTest.java | 7 +++--- .../testutil/EditPersonDescriptorBuilder.java | 2 +- .../manageezpz/testutil/PersonBuilder.java | 4 +-- src/test/java/manageezpz/ui/UiPartTest.java | 2 +- 31 files changed, 89 insertions(+), 55 deletions(-) diff --git a/src/test/java/manageezpz/commons/core/VersionTest.java b/src/test/java/manageezpz/commons/core/VersionTest.java index 36fe5d6a211..d2de5aff3dd 100644 --- a/src/test/java/manageezpz/commons/core/VersionTest.java +++ b/src/test/java/manageezpz/commons/core/VersionTest.java @@ -1,8 +1,8 @@ package manageezpz.commons.core; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/commons/core/index/IndexTest.java b/src/test/java/manageezpz/commons/core/index/IndexTest.java index dd2d27de86e..d42653813f4 100644 --- a/src/test/java/manageezpz/commons/core/index/IndexTest.java +++ b/src/test/java/manageezpz/commons/core/index/IndexTest.java @@ -1,9 +1,9 @@ package manageezpz.commons.core.index; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/commons/util/AppUtilTest.java b/src/test/java/manageezpz/commons/util/AppUtilTest.java index 866e87a3db5..2af71c062dc 100644 --- a/src/test/java/manageezpz/commons/util/AppUtilTest.java +++ b/src/test/java/manageezpz/commons/util/AppUtilTest.java @@ -1,7 +1,7 @@ package manageezpz.commons.util; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/commons/util/CollectionUtilTest.java b/src/test/java/manageezpz/commons/util/CollectionUtilTest.java index 739f0708e4a..565cb08bf6d 100644 --- a/src/test/java/manageezpz/commons/util/CollectionUtilTest.java +++ b/src/test/java/manageezpz/commons/util/CollectionUtilTest.java @@ -1,9 +1,9 @@ package manageezpz.commons.util; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collection; diff --git a/src/test/java/manageezpz/commons/util/ConfigUtilTest.java b/src/test/java/manageezpz/commons/util/ConfigUtilTest.java index d7818e07e8b..93c7f42ce81 100644 --- a/src/test/java/manageezpz/commons/util/ConfigUtilTest.java +++ b/src/test/java/manageezpz/commons/util/ConfigUtilTest.java @@ -1,8 +1,8 @@ package manageezpz.commons.util; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static manageezpz.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -10,11 +10,12 @@ import java.util.Optional; import java.util.logging.Level; -import manageezpz.commons.core.Config; -import manageezpz.commons.exceptions.DataConversionException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import manageezpz.commons.core.Config; +import manageezpz.commons.exceptions.DataConversionException; + public class ConfigUtilTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "ConfigUtilTest"); diff --git a/src/test/java/manageezpz/commons/util/FileUtilTest.java b/src/test/java/manageezpz/commons/util/FileUtilTest.java index 0ac55254fcb..61877313fe7 100644 --- a/src/test/java/manageezpz/commons/util/FileUtilTest.java +++ b/src/test/java/manageezpz/commons/util/FileUtilTest.java @@ -1,8 +1,8 @@ package manageezpz.commons.util; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/commons/util/StringUtilTest.java b/src/test/java/manageezpz/commons/util/StringUtilTest.java index cbdb78d6bfe..5f2e38ae8f9 100644 --- a/src/test/java/manageezpz/commons/util/StringUtilTest.java +++ b/src/test/java/manageezpz/commons/util/StringUtilTest.java @@ -1,8 +1,8 @@ package manageezpz.commons.util; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import java.io.FileNotFoundException; diff --git a/src/test/java/manageezpz/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java index 35b253f9b78..9182e9928f5 100644 --- a/src/test/java/manageezpz/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -1,11 +1,11 @@ package manageezpz.logic; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; -import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.AMY; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/manageezpz/logic/commands/AddCommandTest.java b/src/test/java/manageezpz/logic/commands/AddCommandTest.java index 5088d5b0ac2..db41263e30e 100644 --- a/src/test/java/manageezpz/logic/commands/AddCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddCommandTest.java @@ -1,10 +1,10 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import java.nio.file.Path; import java.util.ArrayList; diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index d357188b7ea..554eee14337 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -1,13 +1,13 @@ package manageezpz.logic.commands; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.parser.CliSyntax.PREFIX_ADDRESS; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java index 9a765a3992f..1df818cae6c 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java @@ -1,13 +1,13 @@ package manageezpz.logic.commands; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/logic/commands/EditCommandTest.java b/src/test/java/manageezpz/logic/commands/EditCommandTest.java index caec7f17d87..f8b1c8187d7 100644 --- a/src/test/java/manageezpz/logic/commands/EditCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditCommandTest.java @@ -1,6 +1,13 @@ package manageezpz.logic.commands; -import static manageezpz.logic.commands.CommandTestUtil.*; +import static manageezpz.logic.commands.CommandTestUtil.DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; diff --git a/src/test/java/manageezpz/logic/commands/FindCommandTest.java b/src/test/java/manageezpz/logic/commands/FindCommandTest.java index 25e9182c1e3..151d05322df 100644 --- a/src/test/java/manageezpz/logic/commands/FindCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindCommandTest.java @@ -1,14 +1,14 @@ package manageezpz.logic.commands; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.commons.core.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.testutil.TypicalPersons.CARL; import static manageezpz.testutil.TypicalPersons.ELLE; import static manageezpz.testutil.TypicalPersons.FIONA; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collections; diff --git a/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java index 5aa25ea1963..ce873acbe65 100644 --- a/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java @@ -1,13 +1,34 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.commands.CommandTestUtil.*; +import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_NAME_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_TAG_DESC; +import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; +import static manageezpz.logic.commands.CommandTestUtil.PREAMBLE_WHITESPACE; +import static manageezpz.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; +import static manageezpz.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; +import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import static manageezpz.testutil.TypicalPersons.AMY; import static manageezpz.testutil.TypicalPersons.BOB; -import manageezpz.logic.commands.CommandTestUtil; import org.junit.jupiter.api.Test; import manageezpz.logic.commands.AddCommand; diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 91752a7f3a9..80270c0cafb 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -1,11 +1,11 @@ package manageezpz.logic.parser; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java index a0bb5755d1e..fa354cae786 100644 --- a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java +++ b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java @@ -1,10 +1,10 @@ package manageezpz.logic.parser; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collections; diff --git a/src/test/java/manageezpz/model/AddressBookTest.java b/src/test/java/manageezpz/model/AddressBookTest.java index c12690eabce..380f2d72b7e 100644 --- a/src/test/java/manageezpz/model/AddressBookTest.java +++ b/src/test/java/manageezpz/model/AddressBookTest.java @@ -1,13 +1,13 @@ package manageezpz.model; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collection; diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index 3d3c5101b64..a03e3028697 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -1,12 +1,12 @@ package manageezpz.model; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.BENSON; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.nio.file.Path; import java.nio.file.Paths; diff --git a/src/test/java/manageezpz/model/person/AddressTest.java b/src/test/java/manageezpz/model/person/AddressTest.java index 32a7cd9d549..045cfad3898 100644 --- a/src/test/java/manageezpz/model/person/AddressTest.java +++ b/src/test/java/manageezpz/model/person/AddressTest.java @@ -1,8 +1,8 @@ package manageezpz.model.person; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/model/person/EmailTest.java b/src/test/java/manageezpz/model/person/EmailTest.java index 52b6aaefea6..9f6b844661d 100644 --- a/src/test/java/manageezpz/model/person/EmailTest.java +++ b/src/test/java/manageezpz/model/person/EmailTest.java @@ -1,8 +1,8 @@ package manageezpz.model.person; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/model/person/NameTest.java b/src/test/java/manageezpz/model/person/NameTest.java index a5c67fc93ad..9376477913b 100644 --- a/src/test/java/manageezpz/model/person/NameTest.java +++ b/src/test/java/manageezpz/model/person/NameTest.java @@ -1,8 +1,8 @@ package manageezpz.model.person; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java index 1d2788494dd..59f39ee4455 100644 --- a/src/test/java/manageezpz/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -1,7 +1,5 @@ package manageezpz.model.person; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; @@ -10,6 +8,8 @@ import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.BOB; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; diff --git a/src/test/java/manageezpz/model/person/UniquePersonListTest.java b/src/test/java/manageezpz/model/person/UniquePersonListTest.java index e12b3f8689a..7ebc46a02bd 100644 --- a/src/test/java/manageezpz/model/person/UniquePersonListTest.java +++ b/src/test/java/manageezpz/model/person/UniquePersonListTest.java @@ -1,13 +1,13 @@ package manageezpz.model.person; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import static manageezpz.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static manageezpz.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.BOB; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collections; diff --git a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index 45dcba013d0..7731d320363 100644 --- a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -9,12 +9,13 @@ import java.util.List; import java.util.stream.Collectors; +import org.junit.jupiter.api.Test; + import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; -import org.junit.jupiter.api.Test; public class JsonAdaptedPersonTest { private static final String INVALID_NAME = "R@chel"; diff --git a/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java index beec161b920..d0158569b48 100644 --- a/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java @@ -12,11 +12,12 @@ import java.nio.file.Path; import java.nio.file.Paths; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import manageezpz.commons.exceptions.DataConversionException; import manageezpz.model.AddressBook; import manageezpz.model.ReadOnlyAddressBook; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; public class JsonAddressBookStorageTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); diff --git a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index b869318165a..16de904c2db 100644 --- a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -6,11 +6,12 @@ import java.nio.file.Path; import java.nio.file.Paths; +import org.junit.jupiter.api.Test; + import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.commons.util.JsonUtil; import manageezpz.model.AddressBook; import manageezpz.testutil.TypicalPersons; -import org.junit.jupiter.api.Test; public class JsonSerializableAddressBookTest { diff --git a/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java b/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java index 890c3ded0cc..468d1caf0df 100644 --- a/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/manageezpz/storage/JsonUserPrefsStorageTest.java @@ -1,19 +1,20 @@ package manageezpz.storage; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static manageezpz.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import manageezpz.commons.core.GuiSettings; import manageezpz.commons.exceptions.DataConversionException; import manageezpz.model.UserPrefs; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; public class JsonUserPrefsStorageTest { diff --git a/src/test/java/manageezpz/storage/StorageManagerTest.java b/src/test/java/manageezpz/storage/StorageManagerTest.java index dfddfe7fdd1..f3b24b2ca5f 100644 --- a/src/test/java/manageezpz/storage/StorageManagerTest.java +++ b/src/test/java/manageezpz/storage/StorageManagerTest.java @@ -6,13 +6,14 @@ import java.nio.file.Path; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + import manageezpz.commons.core.GuiSettings; import manageezpz.model.AddressBook; import manageezpz.model.ReadOnlyAddressBook; import manageezpz.model.UserPrefs; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; public class StorageManagerTest { diff --git a/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java index 20b65fa748d..98d18e82369 100644 --- a/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java @@ -5,12 +5,12 @@ import java.util.stream.Stream; import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; -import manageezpz.model.tag.Tag; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; /** * A utility class to help with building EditPersonDescriptor objects. diff --git a/src/test/java/manageezpz/testutil/PersonBuilder.java b/src/test/java/manageezpz/testutil/PersonBuilder.java index 061a43d4ea0..28e480921e3 100644 --- a/src/test/java/manageezpz/testutil/PersonBuilder.java +++ b/src/test/java/manageezpz/testutil/PersonBuilder.java @@ -3,13 +3,13 @@ import java.util.HashSet; import java.util.Set; -import manageezpz.model.tag.Tag; -import manageezpz.model.util.SampleDataUtil; import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; +import manageezpz.model.tag.Tag; +import manageezpz.model.util.SampleDataUtil; /** * A utility class to help with building Person objects. diff --git a/src/test/java/manageezpz/ui/UiPartTest.java b/src/test/java/manageezpz/ui/UiPartTest.java index 61c90bd8a75..b99d0a1f450 100644 --- a/src/test/java/manageezpz/ui/UiPartTest.java +++ b/src/test/java/manageezpz/ui/UiPartTest.java @@ -1,8 +1,8 @@ package manageezpz.ui; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static manageezpz.testutil.Assert.assertThrows; import java.net.URL; import java.nio.file.Path; From eb912475eb6eba58037bdfb486c55ff058f1719d Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 9 Mar 2022 20:17:59 +0800 Subject: [PATCH 064/507] Update order of imports to adhere to Checkstyle --- src/test/java/manageezpz/model/person/PhoneTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/manageezpz/model/person/PhoneTest.java b/src/test/java/manageezpz/model/person/PhoneTest.java index 82170a377b0..279bbce550c 100644 --- a/src/test/java/manageezpz/model/person/PhoneTest.java +++ b/src/test/java/manageezpz/model/person/PhoneTest.java @@ -1,8 +1,8 @@ package manageezpz.model.person; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static manageezpz.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; From d44be9f335acd85f4e38387da562bc1742c3f755 Mon Sep 17 00:00:00 2001 From: Chan Wei Jie Date: Wed, 9 Mar 2022 22:15:36 +0800 Subject: [PATCH 065/507] Change Person Model to not have tags and address --- .../logic/commands/EditCommand.java | 45 +--------- .../logic/parser/AddCommandParser.java | 7 +- .../logic/parser/EditCommandParser.java | 24 ------ .../manageezpz/logic/parser/ParserUtil.java | 47 ----------- .../java/manageezpz/model/person/Address.java | 57 ------------- .../java/manageezpz/model/person/Person.java | 43 ++-------- src/main/java/manageezpz/model/tag/Tag.java | 54 ------------ .../manageezpz/model/util/SampleDataUtil.java | 39 ++------- .../manageezpz/storage/JsonAdaptedPerson.java | 38 +-------- .../manageezpz/storage/JsonAdaptedTag.java | 48 ----------- src/main/java/manageezpz/ui/PersonCard.java | 11 --- src/main/resources/view/MainWindow.fxml | 2 +- src/main/resources/view/PersonListCard.fxml | 1 - .../manageezpz/logic/LogicManagerTest.java | 6 +- .../logic/commands/CommandTestUtil.java | 18 +--- .../logic/commands/EditCommandTest.java | 6 +- .../commands/EditPersonDescriptorTest.java | 6 +- .../logic/parser/AddCommandParserTest.java | 76 +++++++---------- .../logic/parser/EditCommandParserTest.java | 58 +++---------- .../logic/parser/ParserUtilTest.java | 82 ------------------- .../manageezpz/model/AddressBookTest.java | 8 +- .../manageezpz/model/person/AddressTest.java | 36 -------- .../NameContainsKeywordsPredicateTest.java | 2 +- .../manageezpz/model/person/PersonTest.java | 16 +--- .../model/person/UniquePersonListTest.java | 8 +- .../java/manageezpz/model/tag/TagTest.java | 26 ------ .../storage/JsonAdaptedPersonTest.java | 47 ++--------- .../testutil/EditPersonDescriptorBuilder.java | 25 ------ .../manageezpz/testutil/PersonBuilder.java | 32 +------- .../java/manageezpz/testutil/PersonUtil.java | 18 ---- .../manageezpz/testutil/TypicalPersons.java | 33 +++----- 31 files changed, 95 insertions(+), 824 deletions(-) delete mode 100644 src/main/java/manageezpz/model/person/Address.java delete mode 100644 src/main/java/manageezpz/model/tag/Tag.java delete mode 100644 src/main/java/manageezpz/storage/JsonAdaptedTag.java delete mode 100644 src/test/java/manageezpz/model/person/AddressTest.java delete mode 100644 src/test/java/manageezpz/model/tag/TagTest.java diff --git a/src/main/java/manageezpz/logic/commands/EditCommand.java b/src/main/java/manageezpz/logic/commands/EditCommand.java index 4afd7f01f4a..d3ef2e803f2 100644 --- a/src/main/java/manageezpz/logic/commands/EditCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditCommand.java @@ -8,23 +8,18 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Optional; -import java.util.Set; import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.commons.util.CollectionUtil; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; -import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.tag.Tag; /** * Edits the details of an existing person in the address book. @@ -96,10 +91,7 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript 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(updatedName, updatedPhone, updatedEmail); } @Override @@ -128,8 +120,6 @@ public static class EditPersonDescriptor { private Name name; private Phone phone; private Email email; - private Address address; - private Set tags; public EditPersonDescriptor() {} @@ -141,15 +131,13 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setName(toCopy.name); setPhone(toCopy.phone); setEmail(toCopy.email); - setAddress(toCopy.address); - setTags(toCopy.tags); } /** * Returns true if at least one field is edited. */ public boolean isAnyFieldEdited() { - return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); + return CollectionUtil.isAnyNonNull(name, phone, email); } public void setName(Name name) { @@ -176,31 +164,6 @@ public Optional getEmail() { return Optional.ofNullable(email); } - public void setAddress(Address address) { - this.address = address; - } - - public Optional
getAddress() { - return Optional.ofNullable(address); - } - - /** - * Sets {@code tags} to this object's {@code tags}. - * A defensive copy of {@code tags} is used internally. - */ - public void setTags(Set tags) { - this.tags = (tags != null) ? new HashSet<>(tags) : null; - } - - /** - * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - * Returns {@code Optional#empty()} if {@code tags} is null. - */ - public Optional> getTags() { - return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); - } - @Override public boolean equals(Object other) { // short circuit if same object @@ -218,9 +181,7 @@ public boolean equals(Object other) { return getName().equals(e.getName()) && getPhone().equals(e.getPhone()) - && getEmail().equals(e.getEmail()) - && getAddress().equals(e.getAddress()) - && getTags().equals(e.getTags()); + && getEmail().equals(e.getEmail()); } } } diff --git a/src/main/java/manageezpz/logic/parser/AddCommandParser.java b/src/main/java/manageezpz/logic/parser/AddCommandParser.java index 314aadfbe47..a5fe8d71af2 100644 --- a/src/main/java/manageezpz/logic/parser/AddCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddCommandParser.java @@ -7,17 +7,14 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; -import java.util.Set; import java.util.stream.Stream; import manageezpz.logic.commands.AddCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.tag.Tag; /** * Parses input arguments and creates a new AddCommand object @@ -41,10 +38,8 @@ public AddCommand parse(String args) throws ParseException { Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); - Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); - Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - Person person = new Person(name, phone, email, address, tagList); + Person person = new Person(name, phone, email); return new AddCommand(person); } diff --git a/src/main/java/manageezpz/logic/parser/EditCommandParser.java b/src/main/java/manageezpz/logic/parser/EditCommandParser.java index 2c105f8d505..9466d08825c 100644 --- a/src/main/java/manageezpz/logic/parser/EditCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditCommandParser.java @@ -8,16 +8,10 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; import static manageezpz.logic.parser.CliSyntax.PREFIX_TAG; -import java.util.Collection; -import java.util.Collections; -import java.util.Optional; -import java.util.Set; - import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.tag.Tag; /** * Parses input arguments and creates a new EditCommand object @@ -52,10 +46,6 @@ public EditCommand parse(String args) throws ParseException { if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); } - if (argMultimap.getValue(PREFIX_ADDRESS).isPresent()) { - editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); - } - parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); if (!editPersonDescriptor.isAnyFieldEdited()) { throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); @@ -64,19 +54,5 @@ public EditCommand parse(String args) throws ParseException { return new EditCommand(index, editPersonDescriptor); } - /** - * Parses {@code Collection tags} into a {@code Set} if {@code tags} is non-empty. - * If {@code tags} contain only one element which is an empty string, it will be parsed into a - * {@code Set} containing zero tags. - */ - private Optional> parseTagsForEdit(Collection tags) throws ParseException { - assert tags != null; - - if (tags.isEmpty()) { - return Optional.empty(); - } - Collection tagSet = tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags; - return Optional.of(ParserUtil.parseTags(tagSet)); - } } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index c2b6cc14cc4..6b07458d59e 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -2,18 +2,12 @@ import static java.util.Objects.requireNonNull; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; -import manageezpz.model.tag.Tag; /** * Contains utility methods used for parsing strings in the various *Parser classes. @@ -65,20 +59,6 @@ public static Phone parsePhone(String phone) throws ParseException { return new Phone(trimmedPhone); } - /** - * Parses a {@code String address} into an {@code Address}. - * Leading and trailing whitespaces will be trimmed. - * - * @throws ParseException if the given {@code address} is invalid. - */ - public static Address parseAddress(String address) throws ParseException { - requireNonNull(address); - String trimmedAddress = address.trim(); - if (!Address.isValidAddress(trimmedAddress)) { - throw new ParseException(Address.MESSAGE_CONSTRAINTS); - } - return new Address(trimmedAddress); - } /** * Parses a {@code String email} into an {@code Email}. @@ -94,31 +74,4 @@ public static Email parseEmail(String email) throws ParseException { } return new Email(trimmedEmail); } - - /** - * Parses a {@code String tag} into a {@code Tag}. - * Leading and trailing whitespaces will be trimmed. - * - * @throws ParseException if the given {@code tag} is invalid. - */ - public static Tag parseTag(String tag) throws ParseException { - requireNonNull(tag); - String trimmedTag = tag.trim(); - if (!Tag.isValidTagName(trimmedTag)) { - throw new ParseException(Tag.MESSAGE_CONSTRAINTS); - } - return new Tag(trimmedTag); - } - - /** - * Parses {@code Collection tags} into a {@code Set}. - */ - public static Set parseTags(Collection tags) throws ParseException { - requireNonNull(tags); - final Set tagSet = new HashSet<>(); - for (String tagName : tags) { - tagSet.add(parseTag(tagName)); - } - return tagSet; - } } diff --git a/src/main/java/manageezpz/model/person/Address.java b/src/main/java/manageezpz/model/person/Address.java deleted file mode 100644 index a9d7fbf035d..00000000000 --- a/src/main/java/manageezpz/model/person/Address.java +++ /dev/null @@ -1,57 +0,0 @@ -package manageezpz.model.person; - -import static java.util.Objects.requireNonNull; -import static manageezpz.commons.util.AppUtil.checkArgument; - -/** - * Represents a Person's address in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidAddress(String)} - */ -public class Address { - - public static final String MESSAGE_CONSTRAINTS = "Addresses can take any values, and it should not be blank"; - - /* - * The first character of the address must not be a whitespace, - * otherwise " " (a blank string) becomes a valid input. - */ - public static final String VALIDATION_REGEX = "[^\\s].*"; - - public final String value; - - /** - * Constructs an {@code Address}. - * - * @param address A valid address. - */ - public Address(String address) { - requireNonNull(address); - checkArgument(isValidAddress(address), MESSAGE_CONSTRAINTS); - value = address; - } - - /** - * Returns true if a given string is a valid email. - */ - public static boolean isValidAddress(String test) { - return test.matches(VALIDATION_REGEX); - } - - @Override - public String toString() { - return value; - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof Address // instanceof handles nulls - && value.equals(((Address) other).value)); // state check - } - - @Override - public int hashCode() { - return value.hashCode(); - } - -} diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index fd97fc93c38..9d878643190 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -2,12 +2,7 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; -import java.util.Collections; -import java.util.HashSet; import java.util.Objects; -import java.util.Set; - -import manageezpz.model.tag.Tag; /** * Represents a Person in the address book. @@ -20,20 +15,14 @@ public class Person { private final Phone phone; private final Email email; - // Data fields - private final Address address; - private final Set tags = new HashSet<>(); - /** * 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); + public Person(Name name, Phone phone, Email email) { + requireAllNonNull(name, phone, email); this.name = name; this.phone = phone; this.email = email; - this.address = address; - this.tags.addAll(tags); } public Name getName() { @@ -48,18 +37,6 @@ public Email getEmail() { return email; } - public Address getAddress() { - return address; - } - - /** - * Returns an immutable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - */ - public Set getTags() { - return Collections.unmodifiableSet(tags); - } - /** * Returns true if both persons have the same name. * This defines a weaker notion of equality between two persons. @@ -90,15 +67,13 @@ public boolean equals(Object other) { Person otherPerson = (Person) other; return otherPerson.getName().equals(getName()) && otherPerson.getPhone().equals(getPhone()) - && otherPerson.getEmail().equals(getEmail()) - && otherPerson.getAddress().equals(getAddress()) - && otherPerson.getTags().equals(getTags()); + && otherPerson.getEmail().equals(getEmail()); } @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, phone, email, address, tags); + return Objects.hash(name, phone, email); } @Override @@ -108,15 +83,7 @@ public String toString() { .append("; Phone: ") .append(getPhone()) .append("; Email: ") - .append(getEmail()) - .append("; Address: ") - .append(getAddress()); - - Set tags = getTags(); - if (!tags.isEmpty()) { - builder.append("; Tags: "); - tags.forEach(builder::append); - } + .append(getEmail()); return builder.toString(); } diff --git a/src/main/java/manageezpz/model/tag/Tag.java b/src/main/java/manageezpz/model/tag/Tag.java deleted file mode 100644 index 1ccfed15701..00000000000 --- a/src/main/java/manageezpz/model/tag/Tag.java +++ /dev/null @@ -1,54 +0,0 @@ -package manageezpz.model.tag; - -import static java.util.Objects.requireNonNull; -import static manageezpz.commons.util.AppUtil.checkArgument; - -/** - * Represents a Tag in the address book. - * Guarantees: immutable; name is valid as declared in {@link #isValidTagName(String)} - */ -public class Tag { - - public static final String MESSAGE_CONSTRAINTS = "Tags names should be alphanumeric"; - public static final String VALIDATION_REGEX = "\\p{Alnum}+"; - - public final String tagName; - - /** - * Constructs a {@code Tag}. - * - * @param tagName A valid tag name. - */ - public Tag(String tagName) { - requireNonNull(tagName); - checkArgument(isValidTagName(tagName), MESSAGE_CONSTRAINTS); - this.tagName = tagName; - } - - /** - * Returns true if a given string is a valid tag name. - */ - public static boolean isValidTagName(String test) { - return test.matches(VALIDATION_REGEX); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof Tag // instanceof handles nulls - && tagName.equals(((Tag) other).tagName)); // state check - } - - @Override - public int hashCode() { - return tagName.hashCode(); - } - - /** - * Format state as text for viewing. - */ - public String toString() { - return '[' + tagName + ']'; - } - -} diff --git a/src/main/java/manageezpz/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java index b4b40946bb4..74723182d31 100644 --- a/src/main/java/manageezpz/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -1,17 +1,11 @@ package manageezpz.model.util; -import java.util.Arrays; -import java.util.Set; -import java.util.stream.Collectors; - import manageezpz.model.AddressBook; import manageezpz.model.ReadOnlyAddressBook; -import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.tag.Tag; /** * Contains utility methods for populating {@code AddressBook} with sample data. @@ -19,24 +13,12 @@ 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 Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com")), + new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com")), + new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com")), + new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com")), + new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com")) }; } @@ -48,13 +30,4 @@ public static ReadOnlyAddressBook getSampleAddressBook() { return sampleAb; } - /** - * Returns a tag set containing the list of strings given. - */ - public static Set getTagSet(String... strings) { - return Arrays.stream(strings) - .map(Tag::new) - .collect(Collectors.toSet()); - } - } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java index d45aaf9b853..cc0352f7016 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -1,21 +1,13 @@ package manageezpz.storage; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import manageezpz.commons.exceptions.IllegalValueException; -import manageezpz.model.person.Address; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.tag.Tag; /** * Jackson-friendly version of {@link Person}. @@ -27,23 +19,16 @@ class JsonAdaptedPerson { private final String name; private final String phone; private final String email; - private final String address; - private final List tagged = new ArrayList<>(); /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, - @JsonProperty("email") String email, @JsonProperty("address") String address, - @JsonProperty("tagged") List tagged) { + @JsonProperty("email") String email) { this.name = name; this.phone = phone; this.email = email; - this.address = address; - if (tagged != null) { - this.tagged.addAll(tagged); - } } /** @@ -53,10 +38,6 @@ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; - address = source.getAddress().value; - tagged.addAll(source.getTags().stream() - .map(JsonAdaptedTag::new) - .collect(Collectors.toList())); } /** @@ -65,11 +46,6 @@ public JsonAdaptedPerson(Person source) { * @throws IllegalValueException if there were any data constraints violated in the adapted person. */ public Person toModelType() throws IllegalValueException { - final List personTags = new ArrayList<>(); - for (JsonAdaptedTag tag : tagged) { - personTags.add(tag.toModelType()); - } - if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); } @@ -93,17 +69,7 @@ public Person toModelType() throws IllegalValueException { throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); } final Email modelEmail = new Email(email); - - if (address == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName())); - } - if (!Address.isValidAddress(address)) { - throw new IllegalValueException(Address.MESSAGE_CONSTRAINTS); - } - final Address modelAddress = new Address(address); - - final Set modelTags = new HashSet<>(personTags); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); + return new Person(modelName, modelPhone, modelEmail); } } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTag.java b/src/main/java/manageezpz/storage/JsonAdaptedTag.java deleted file mode 100644 index 1d2f91e37a2..00000000000 --- a/src/main/java/manageezpz/storage/JsonAdaptedTag.java +++ /dev/null @@ -1,48 +0,0 @@ -package manageezpz.storage; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -import manageezpz.commons.exceptions.IllegalValueException; -import manageezpz.model.tag.Tag; - -/** - * Jackson-friendly version of {@link Tag}. - */ -class JsonAdaptedTag { - - private final String tagName; - - /** - * Constructs a {@code JsonAdaptedTag} with the given {@code tagName}. - */ - @JsonCreator - public JsonAdaptedTag(String tagName) { - this.tagName = tagName; - } - - /** - * Converts a given {@code Tag} into this class for Jackson use. - */ - public JsonAdaptedTag(Tag source) { - tagName = source.tagName; - } - - @JsonValue - public String getTagName() { - return tagName; - } - - /** - * Converts this Jackson-friendly adapted tag object into the model's {@code Tag} object. - * - * @throws IllegalValueException if there were any data constraints violated in the adapted tag. - */ - public Tag toModelType() throws IllegalValueException { - if (!Tag.isValidTagName(tagName)) { - throw new IllegalValueException(Tag.MESSAGE_CONSTRAINTS); - } - return new Tag(tagName); - } - -} diff --git a/src/main/java/manageezpz/ui/PersonCard.java b/src/main/java/manageezpz/ui/PersonCard.java index 743ffa63c0e..b901810ab8e 100644 --- a/src/main/java/manageezpz/ui/PersonCard.java +++ b/src/main/java/manageezpz/ui/PersonCard.java @@ -1,10 +1,7 @@ package manageezpz.ui; -import java.util.Comparator; - 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 manageezpz.model.person.Person; @@ -35,11 +32,7 @@ public class PersonCard extends UiPart { @FXML private Label phone; @FXML - private Label address; - @FXML private Label email; - @FXML - private FlowPane tags; /** * Creates a {@code PersonCode} with the given {@code Person} and index to display. @@ -50,11 +43,7 @@ public PersonCard(Person person, int displayedIndex) { id.setText(displayedIndex + ". "); name.setText(person.getName().fullName); phone.setText(person.getPhone().value); - address.setText(person.getAddress().value); email.setText(person.getEmail().value); - person.getTags().stream() - .sorted(Comparator.comparing(tag -> tag.tagName)) - .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); } @Override diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index a431648f6c0..b2e71452231 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -12,7 +12,7 @@ + title="ManageEZPZ" minWidth="450" minHeight="600" onCloseRequest="#handleExit"> diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index f08ea32ad55..2a8da41fae8 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -29,7 +29,6 @@
### Viewing help : `help` @@ -80,7 +77,7 @@ Format: `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL` Examples: * `addEmployee n/John Doe p/98765432 e/johnd@example.com` -* `addEmployee n/Betsy Crowe t/friend e/betsycrowe@example.com` +* `addEmployee p/98754123 n/Betsy Crowe e/betsycrowe@example.com` ### Adding a Task: `addTask` @@ -88,9 +85,9 @@ Adds a Task into the Task list. Format: -* `addTask /todo TASK_DESCRIPTION` -* `addTask /deadline TASK_DESCRIPTION /by DATETIME` -* `addTask /event TASK_DESCRIPTION /at DATE START_TIME END_TIME` +* `addTask todo/ desc/TASK_DESCRIPTION` +* `addTask deadline/ desc/TASK_DESCRIPTION by/DATE TIME` +* `addTask event/ desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
:bulb: **Take Note:** For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) @@ -102,11 +99,11 @@ View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for Format: -* `list /all` -* `list /todo` -* `list /deadline` -* `list /event` -* `list /today` +* `list all/` +* `list todo/` +* `list deadline/` +* `list event/` +* `list today/` ### Marking a task as done : `mark` Mark a task in the Task list as done : @@ -143,12 +140,12 @@ Examples: Find tasks based on the task description or date in the format of (DD-MM-YYYY). Format: -* `find /task TASK_DESCRIPTION` -* `find /date DD-MM-YYYY` +* `find task/ desc/TASK_DESCRIPTION` +* `find date/DD-MM-YYYY` Examples: -* `find /task homework` -* `find /date 02-02-2022` +* `find task/ desc/homework` +* `find date/02-02-2022` ### Clearing all entries : `clear` @@ -192,9 +189,9 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Add Task** | `addTask /TASK_TYPE TASK_DESCRIPTION`
e.g., `addTask /todo read book` +**Add Task** | `addTask TASK_TYPE/ desc/TASK_DESCRIPTION`
e.g., `addTask todo/ desc/read book` **Clear** | `clear` **Delete** | `delete INDEX`
e.g., `delete 3` -**Find** | `find /task TASK_DESCRIPTION`
e.g., `find /task homework` -**List** | `list`
e.g. `list /all` or `list /event` or `list /deadline` +**Find** | `find task/TASK_DESCRIPTION`
e.g., `find task/homework` +**List** | `list`
e.g. `list all/` or `list event/` or `list deadline/` **Help** | `help` From 50e33e98cbc77a10500282814dc57dc771686ed4 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sat, 12 Mar 2022 21:12:27 +0800 Subject: [PATCH 099/507] Fix Gradle check errors --- src/main/java/manageezpz/logic/parser/CliSyntax.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index 554cd57ff74..db0090d9af0 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -15,4 +15,5 @@ public class CliSyntax { public static final Prefix PREFIX_TODO = new Prefix("/todo"); public static final Prefix PREFIX_EVENT = new Prefix("/event"); public static final Prefix PREFIX_DEADLINE = new Prefix("/deadline"); + public static final Prefix PREFIX_TEST = new Prefix("////test"); } From bd7a691c2e0d98e986ed9e0591d659e41334dfbc Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 13:36:37 +0800 Subject: [PATCH 100/507] implement parseDate util function --- .../logic/parser/AddTaskCommandParser.java | 4 +++ .../manageezpz/logic/parser/CliSyntax.java | 6 ++-- .../manageezpz/logic/parser/ParserUtil.java | 34 ++++++++++++++++--- .../java/manageezpz/model/person/Date.java | 14 ++++++++ 4 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java create mode 100644 src/main/java/manageezpz/model/person/Date.java diff --git a/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java new file mode 100644 index 00000000000..22b6f027579 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java @@ -0,0 +1,4 @@ +package manageezpz.logic.parser; + +public class AddTaskCommandParser { +} diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index 2d141f3e31a..40980bebb1e 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -12,8 +12,8 @@ public class CliSyntax { public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); - public static final Prefix PREFIX_TODO = new Prefix("/todo"); - public static final Prefix PREFIX_EVENT = new Prefix("/event"); - public static final Prefix PREFIX_DEADLINE = new Prefix("/deadline"); + public static final Prefix PREFIX_TODO = new Prefix("todo/"); + public static final Prefix PREFIX_EVENT = new Prefix("event/"); + public static final Prefix PREFIX_DEADLINE = new Prefix("deadline/"); } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index c2b6cc14cc4..225e7187dbf 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -2,6 +2,8 @@ import static java.util.Objects.requireNonNull; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.Collection; import java.util.HashSet; import java.util.Set; @@ -9,10 +11,7 @@ import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Address; -import manageezpz.model.person.Email; -import manageezpz.model.person.Name; -import manageezpz.model.person.Phone; +import manageezpz.model.person.*; import manageezpz.model.tag.Tag; /** @@ -95,6 +94,33 @@ public static Email parseEmail(String email) throws ParseException { return new Email(trimmedEmail); } + /** + * Parses a {@code String date} into a {@code Date}. + * Supports multiple formatting patterns. + * @param date + * @return a {@code Date} object. + * @throws ParseException + */ + + public static Date parseDate(String date) throws ParseException { + requireNonNull(date); + //@@author vishandi-reused + //Reused from https://github.com/vishandi/ip/blob/master/src/main/java/parser/Parser.java + //with minor modifications + String[] patterns = {"yyyy-MM-dd", "yyyy/MM/dd", "yyyy MMM dd", "dd MMM yyyy", "dd-MM-yyyy", "dd/MM/yyyy"}; + for (String pattern : patterns) { + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + LocalDate parsedDate = LocalDate.parse(date, formatter); + return new Date(parsedDate); + } catch (Exception e) { + throw new ParseException(Date.MESSAGE_CONSTRAINTS); + } + } + throw new ParseException(Date.MESSAGE_CONSTRAINTS); + //@@author vishandi + } + /** * Parses a {@code String tag} into a {@code Tag}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/main/java/manageezpz/model/person/Date.java b/src/main/java/manageezpz/model/person/Date.java new file mode 100644 index 00000000000..d79040dbf67 --- /dev/null +++ b/src/main/java/manageezpz/model/person/Date.java @@ -0,0 +1,14 @@ +package manageezpz.model.person; + +import java.time.LocalDate; + +public class Date { + public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " + + "\"yyyy/MM/dd\", \"yyyy MMM dd\", \"dd MMM yyyy\", \"dd-MM-yyyy\", \"dd/MM/yyyy\""; + + public final LocalDate value; + + public Date(LocalDate date) { + value = date; + } +} From 2b7b0763835c07c0475345ab58d8e0afc344082c Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 13:45:25 +0800 Subject: [PATCH 101/507] edited CliSyntax format for TODO, EVENT and DEADLINE --- src/main/java/manageezpz/logic/parser/CliSyntax.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index f657dd2d5e9..fe6f29daef8 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -9,7 +9,7 @@ public class CliSyntax { 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_TODO = new Prefix("/todo"); - public static final Prefix PREFIX_EVENT = new Prefix("/event"); - public static final Prefix PREFIX_DEADLINE = new Prefix("/deadline"); + public static final Prefix PREFIX_TODO = new Prefix("todo/"); + public static final Prefix PREFIX_EVENT = new Prefix("event/"); + public static final Prefix PREFIX_DEADLINE = new Prefix("deadline/"); } From c19fbbacd46a0beacf99148b5b30344f29109d2f Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 15:57:30 +0800 Subject: [PATCH 102/507] implement add event task command in progress --- .../logic/commands/AddEventTaskCommand.java | 32 +++++++++++++++++ .../logic/commands/AddTaskCommand.java | 1 + .../parser/AddEventTaskCommandParser.java | 34 +++++++++++++++++++ .../logic/parser/AddTaskCommandParser.java | 4 --- .../manageezpz/logic/parser/CliSyntax.java | 3 ++ .../java/manageezpz/model/person/Date.java | 9 ++++- src/main/java/manageezpz/model/task/Task.java | 7 ++++ 7 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java delete mode 100644 src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java new file mode 100644 index 00000000000..bcaa82741ed --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -0,0 +1,32 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Event; + +public class AddEventTaskCommand extends Command { + public static final String COMMAND_WORD = "addEvent"; + public static final String MESSAGE_USAGE = "add message usage for addEvent here"; + public static final String MESSAGE_SUCCESS = "New Event task added: %1$s"; + public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; + + private final Event toAdd; + + public AddEventTaskCommand(Event event) { + toAdd = event; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + + if (model.hasTask(toAdd)) { + throw new CommandException(MESSAGE_DUPLICATE_TASK); + } + + model.addTask(toAdd); + return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); + } +} diff --git a/src/main/java/manageezpz/logic/commands/AddTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTaskCommand.java index f63e1a153b4..0d810b92801 100644 --- a/src/main/java/manageezpz/logic/commands/AddTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTaskCommand.java @@ -6,6 +6,7 @@ public class AddTaskCommand extends Command { public static final String COMMAND_WORD = "addTask"; public static final String MESSAGE_NOT_IMPLEMENTED_YET = "Add Task command not implemented yet"; + public static final String MESSAGE_USAGE = "add message usage for addTask here"; @Override public CommandResult execute(Model model) throws CommandException { diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java new file mode 100644 index 00000000000..0ff12051122 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -0,0 +1,34 @@ +package manageezpz.logic.parser; + +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.task.Description; +import manageezpz.model.task.Event; + +import java.util.stream.Stream; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; + +public class AddEventTaskCommandParser { + public AddEventTaskCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimapTodo = + ArgumentTokenizer.tokenize(args, PREFIX_EVENT, PREFIX_DESCRIPTION); + + if (!arePrefixesPresent(argMultimapTodo, PREFIX_EVENT, PREFIX_DESCRIPTION) + || !argMultimapTodo.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); + } + + return new AddEventTaskCommand(new Event(new Description("dummy"))); + } + + /** + * 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()); + } +} \ No newline at end of file diff --git a/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java deleted file mode 100644 index 22b6f027579..00000000000 --- a/src/main/java/manageezpz/logic/parser/AddTaskCommandParser.java +++ /dev/null @@ -1,4 +0,0 @@ -package manageezpz.logic.parser; - -public class AddTaskCommandParser { -} diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index fe6f29daef8..ce81bcbade9 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -9,6 +9,9 @@ public class CliSyntax { 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_DESCRIPTION = new Prefix("desc/"); + public static final Prefix PREFIX_DATETIME = new Prefix("by/"); + public static final Prefix PREFIX_TIME = new Prefix("at/"); public static final Prefix PREFIX_TODO = new Prefix("todo/"); public static final Prefix PREFIX_EVENT = new Prefix("event/"); public static final Prefix PREFIX_DEADLINE = new Prefix("deadline/"); diff --git a/src/main/java/manageezpz/model/person/Date.java b/src/main/java/manageezpz/model/person/Date.java index d79040dbf67..abe0ee5cf9e 100644 --- a/src/main/java/manageezpz/model/person/Date.java +++ b/src/main/java/manageezpz/model/person/Date.java @@ -6,9 +6,16 @@ public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " + "\"yyyy/MM/dd\", \"yyyy MMM dd\", \"dd MMM yyyy\", \"dd-MM-yyyy\", \"dd/MM/yyyy\""; - public final LocalDate value; + private LocalDate value; public Date(LocalDate date) { value = date; } + public LocalDate getValue() { + return value; + } + + public void setValue(LocalDate value) { + this.value = value; + } } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index d1021af81d5..e8f41946352 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,9 +2,11 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; +import java.time.LocalDate; import java.util.List; import java.util.Objects; +import manageezpz.model.person.Date; import manageezpz.model.person.Person; /** @@ -16,18 +18,23 @@ public class Task { // Identity fields private final Description taskDescription; + private final Date taskDate; // Data fields private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) /** * Constructor for the Task class. + * {@code Date taskDate} has a default value that will be changed if the object inheriting the Task object + * is a Deadline or Event object. If object is a Todo object, this field will be ignored. * @param taskDescription information about the task. */ public Task(Description taskDescription) { requireAllNonNull(taskDescription); this.taskDescription = taskDescription; this.isDone = false; + LocalDate defaultDate = LocalDate.parse("1977-01-01"); + taskDate = new Date(defaultDate); } /** From 143e057d1d39f6a79adb9eb023af5f5377e4c237 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 18:17:35 +0800 Subject: [PATCH 103/507] implement add event task done --- .../logic/commands/AddEventTaskCommand.java | 2 +- .../parser/AddEventTaskCommandParser.java | 30 ++++++++++++++----- .../logic/parser/AddressBookParser.java | 14 +++------ .../java/manageezpz/model/task/Event.java | 29 +++++++++++++++++- 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index bcaa82741ed..a41b538143c 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -12,7 +12,7 @@ public class AddEventTaskCommand extends Command { public static final String MESSAGE_SUCCESS = "New Event task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; - private final Event toAdd; + private Event toAdd; public AddEventTaskCommand(Event event) { toAdd = event; diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 0ff12051122..2e77b414bdf 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -2,26 +2,42 @@ import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Event; +import java.time.LocalDate; +import java.time.LocalTime; import java.util.stream.Stream; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.*; public class AddEventTaskCommandParser { + + /** + * Parses the given {@code String} of arguments in the context of the AddEventTaskCommand + * and returns an AddEventTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ public AddEventTaskCommand parse(String args) throws ParseException { - ArgumentMultimap argMultimapTodo = - ArgumentTokenizer.tokenize(args, PREFIX_EVENT, PREFIX_DESCRIPTION); + ArgumentMultimap argMultimapEvent = + ArgumentTokenizer.tokenize(args, PREFIX_EVENT, PREFIX_DESCRIPTION, PREFIX_TIME); - if (!arePrefixesPresent(argMultimapTodo, PREFIX_EVENT, PREFIX_DESCRIPTION) - || !argMultimapTodo.getPreamble().isEmpty()) { + if (!arePrefixesPresent(argMultimapEvent, PREFIX_EVENT, PREFIX_DESCRIPTION, PREFIX_TIME) + || !argMultimapEvent.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); } - return new AddEventTaskCommand(new Event(new Description("dummy"))); + Description desc = new Description(argMultimapEvent.getValue(PREFIX_DESCRIPTION).get()); + + String atDateTime = argMultimapEvent.getValue(PREFIX_TIME).get(); + String[] parseAtDateTime = atDateTime.split(" "); + Date date = ParserUtil.parseDate(parseAtDateTime[0]); + LocalTime startTime = LocalTime.parse(parseAtDateTime[1]); + LocalTime endTime = LocalTime.parse(parseAtDateTime[2]); + Event event = new Event(desc, date, startTime, endTime); + return new AddEventTaskCommand(event); } /** diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index c22adac7ce2..a016770ef3a 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,16 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.AddTaskCommand; -import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.*; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -72,6 +63,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddTaskCommand.COMMAND_WORD: return new AddTaskCommand(); + case AddEventTaskCommand.COMMAND_WORD: + return new AddEventTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index 5304faa3cb3..47fc60712f7 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -1,12 +1,39 @@ package manageezpz.model.task; +import manageezpz.model.person.Date; + +import java.time.LocalTime; + public class Event extends Task { + private Date date; + private LocalTime startTime; + private LocalTime endTime; + /** * Constructor for the Task class. * * @param taskDescription information about the task. */ - public Event(Description taskDescription) { + public Event(Description taskDescription, Date date, LocalTime startTime, LocalTime endTime) { super(taskDescription); + this.date = date; + this.startTime = startTime; + this.endTime = endTime; + } + + public LocalTime getStartTime() { + return startTime; + } + + public void setStartTime(LocalTime startTime) { + this.startTime = startTime; + } + + public LocalTime getEndTime() { + return endTime; + } + + public void setEndTime(LocalTime endTime) { + this.endTime = endTime; } } From 16b8b5e8f9e258678f3d48cc5150d135cf385716 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 18:38:20 +0800 Subject: [PATCH 104/507] checkstyle fux --- .../logic/parser/AddEventTaskCommandParser.java | 17 +++++++++-------- .../manageezpz/logic/parser/ParserUtil.java | 6 +++--- src/main/java/manageezpz/model/person/Date.java | 4 ++-- src/main/java/manageezpz/model/task/Event.java | 4 ++-- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 2e77b414bdf..7bb0462285d 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -1,18 +1,19 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; + +import java.time.LocalTime; +import java.util.stream.Stream; + import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.person.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Event; -import java.time.LocalDate; -import java.time.LocalTime; -import java.util.stream.Stream; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.*; - public class AddEventTaskCommandParser { /** @@ -47,4 +48,4 @@ public AddEventTaskCommand parse(String args) throws ParseException { private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); } -} \ No newline at end of file +} diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 4414649a8a5..e358f246fb9 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -2,6 +2,9 @@ import static java.util.Objects.requireNonNull; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; @@ -10,9 +13,6 @@ import manageezpz.model.person.Name; import manageezpz.model.person.Phone; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; - /** * Contains utility methods used for parsing strings in the various *Parser classes. */ diff --git a/src/main/java/manageezpz/model/person/Date.java b/src/main/java/manageezpz/model/person/Date.java index abe0ee5cf9e..b5db7b608ce 100644 --- a/src/main/java/manageezpz/model/person/Date.java +++ b/src/main/java/manageezpz/model/person/Date.java @@ -3,8 +3,8 @@ import java.time.LocalDate; public class Date { - public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " + - "\"yyyy/MM/dd\", \"yyyy MMM dd\", \"dd MMM yyyy\", \"dd-MM-yyyy\", \"dd/MM/yyyy\""; + public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " + + "\"yyyy/MM/dd\", \"yyyy MMM dd\", \"dd MMM yyyy\", \"dd-MM-yyyy\", \"dd/MM/yyyy\""; private LocalDate value; diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index 47fc60712f7..c44dda09dd7 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -1,9 +1,9 @@ package manageezpz.model.task; -import manageezpz.model.person.Date; - import java.time.LocalTime; +import manageezpz.model.person.Date; + public class Event extends Task { private Date date; private LocalTime startTime; From 9ea671fa14a326d968433aedd2397b2d52d38b40 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 20:38:16 +0800 Subject: [PATCH 105/507] implement add deadline object --- .../commands/AddDeadlineTaskCommand.java | 32 ++++++++++++ .../parser/AddDeadlineTaskCommandParser.java | 52 +++++++++++++++++++ .../parser/AddEventTaskCommandParser.java | 5 +- .../logic/parser/AddressBookParser.java | 3 ++ .../manageezpz/logic/parser/ParserUtil.java | 2 +- .../java/manageezpz/model/task/Deadline.java | 10 +++- 6 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java new file mode 100644 index 00000000000..80b7308d2e8 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -0,0 +1,32 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Deadline; + +public class AddDeadlineTaskCommand extends Command { + public static final String COMMAND_WORD = "addDeadline"; + public static final String MESSAGE_USAGE = "add message usage for addDeadline here"; + public static final String MESSAGE_SUCCESS = "New Deadline task added: %1$s"; + public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; + + private Deadline toAdd; + + public AddDeadlineTaskCommand(Deadline deadline) { + toAdd = deadline; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + + if (model.hasTask(toAdd)) { + throw new CommandException(MESSAGE_DUPLICATE_TASK); + } + + model.addTask(toAdd); + return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java new file mode 100644 index 00000000000..f2c7204facc --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -0,0 +1,52 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.*; + +import java.time.LocalTime; +import java.util.stream.Stream; + +import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.Date; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Description; + +public class AddDeadlineTaskCommandParser { + + /** + * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand + * and returns an AddDeadlineTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddDeadlineTaskCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimapDeadline = + ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_DATETIME); + + if (!arePrefixesPresent(argMultimapDeadline, PREFIX_DESCRIPTION, PREFIX_DATETIME) + || !argMultimapDeadline.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); + } + + Description desc = new Description(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); + String byDateTime = argMultimapDeadline.getValue(PREFIX_DATETIME).get(); + + String[] parseByDateTime = byDateTime.split(" "); + Date date = ParserUtil.parseDate(parseByDateTime[0]); + LocalTime time = LocalTime.parse(parseByDateTime[1]); + + Deadline deadline = new Deadline(desc, date, time); + + return new AddDeadlineTaskCommand(deadline); + } + + + /** + * 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/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 7bb0462285d..9e572eb6d71 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -2,7 +2,6 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import java.time.LocalTime; @@ -23,9 +22,9 @@ public class AddEventTaskCommandParser { */ public AddEventTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimapEvent = - ArgumentTokenizer.tokenize(args, PREFIX_EVENT, PREFIX_DESCRIPTION, PREFIX_TIME); + ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_TIME); - if (!arePrefixesPresent(argMultimapEvent, PREFIX_EVENT, PREFIX_DESCRIPTION, PREFIX_TIME) + if (!arePrefixesPresent(argMultimapEvent, PREFIX_DESCRIPTION, PREFIX_TIME) || !argMultimapEvent.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index a016770ef3a..dcac26d444e 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -66,6 +66,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddEventTaskCommand.COMMAND_WORD: return new AddEventTaskCommandParser().parse(arguments); + case AddDeadlineTaskCommand.COMMAND_WORD: + return new AddDeadlineTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index e358f246fb9..db3d12abd24 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -80,7 +80,7 @@ public static Email parseEmail(String email) throws ParseException { /** * Parses a {@code String date} into a {@code Date}. - * Supports multiple formatting patterns. + * Supports multiple formatted patterns. * @param date * @return a {@code Date} object. * @throws ParseException diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index a3988e0ffa4..1a572d2462d 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -1,12 +1,20 @@ package manageezpz.model.task; +import java.time.LocalTime; + +import manageezpz.model.person.Date; + public class Deadline extends Task { + private Date date; + private LocalTime time; /** * Constructor for the Task class. * * @param taskDescription information about the task. */ - public Deadline(Description taskDescription) { + public Deadline(Description taskDescription, Date date, LocalTime time) { super(taskDescription); + this.date = date; + this.time = time; } } From 629bfece846896f401e6f5594c468187be6bfcd5 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 20:52:40 +0800 Subject: [PATCH 106/507] fix minor bug in date parsing --- src/main/java/manageezpz/logic/parser/ParserUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index db3d12abd24..b3eb77be2f4 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -91,14 +91,14 @@ public static Date parseDate(String date) throws ParseException { //@@author vishandi-reused //Reused from https://github.com/vishandi/ip/blob/master/src/main/java/parser/Parser.java //with minor modifications - String[] patterns = {"yyyy-MM-dd", "yyyy/MM/dd", "yyyy MMM dd", "dd MMM yyyy", "dd-MM-yyyy", "dd/MM/yyyy"}; + String[] patterns = {"yyyy-MM-dd", "yyyy/MM/dd", "dd-MM-yyyy", "dd/MM/yyyy"}; for (String pattern : patterns) { try { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); LocalDate parsedDate = LocalDate.parse(date, formatter); return new Date(parsedDate); } catch (Exception e) { - throw new ParseException(Date.MESSAGE_CONSTRAINTS); + } } throw new ParseException(Date.MESSAGE_CONSTRAINTS); From 73a316a84c53c3aae70661ff444e5fdfc00c13d8 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 21:05:24 +0800 Subject: [PATCH 107/507] checkstyle fix --- .../logic/parser/AddDeadlineTaskCommandParser.java | 3 ++- .../manageezpz/logic/parser/AddressBookParser.java | 13 ++++++++++++- .../java/manageezpz/logic/parser/ParserUtil.java | 3 ++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index f2c7204facc..4fc6faa9c58 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -1,7 +1,8 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.*; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATETIME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import java.time.LocalTime; import java.util.stream.Stream; diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index dcac26d444e..c3199a818bf 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,7 +6,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.*; +import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEmployeeCommand; +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.commands.AddTaskCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; import manageezpz.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index b3eb77be2f4..90e2e3debec 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -98,7 +98,8 @@ public static Date parseDate(String date) throws ParseException { LocalDate parsedDate = LocalDate.parse(date, formatter); return new Date(parsedDate); } catch (Exception e) { - + System.out.println("Currently chosen pattern did not fit the given input pattern. " + + "Moving on to the next option..."); } } throw new ParseException(Date.MESSAGE_CONSTRAINTS); From 4c94cfbd98a06e796440affd5e70e9a871f4378b Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 21:56:08 +0800 Subject: [PATCH 108/507] changed model.addTask to model.addDeadline and model.addEvent rrespectively for the adding of Deadline and Event objects --- .../java/manageezpz/logic/commands/AddDeadlineTaskCommand.java | 2 +- .../java/manageezpz/logic/commands/AddEventTaskCommand.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 80b7308d2e8..22f85b8adb1 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -26,7 +26,7 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_TASK); } - model.addTask(toAdd); + model.addDeadline(toAdd); return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); } } diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index a41b538143c..f4cf42f6b33 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -26,7 +26,7 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_TASK); } - model.addTask(toAdd); + model.addEvent(toAdd); return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); } } From 1aa5d6a67c2997fc9c6806def33dace9eb8a59f8 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Sun, 13 Mar 2022 21:58:11 +0800 Subject: [PATCH 109/507] removed redundant date field in task --- src/main/java/manageezpz/model/task/Task.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index e8f41946352..d34d2fa955b 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,11 +2,9 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; -import java.time.LocalDate; import java.util.List; import java.util.Objects; -import manageezpz.model.person.Date; import manageezpz.model.person.Person; /** @@ -18,7 +16,6 @@ public class Task { // Identity fields private final Description taskDescription; - private final Date taskDate; // Data fields private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) @@ -33,8 +30,6 @@ public Task(Description taskDescription) { requireAllNonNull(taskDescription); this.taskDescription = taskDescription; this.isDone = false; - LocalDate defaultDate = LocalDate.parse("1977-01-01"); - taskDate = new Date(defaultDate); } /** From 08b127c66a733c46f9f0f08d0be4b2cea358a319 Mon Sep 17 00:00:00 2001 From: Alfred Koh <70746290+alfredkohhh@users.noreply.github.com> Date: Mon, 14 Mar 2022 01:16:34 +0800 Subject: [PATCH 110/507] Update ParserUtil.java --- src/main/java/manageezpz/logic/parser/ParserUtil.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 1d578692975..f20d6569e57 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -104,7 +104,6 @@ public static Date parseDate(String date) throws ParseException { } throw new ParseException(Date.MESSAGE_CONSTRAINTS); } - /** * Parses a {@code String email} into an {@code Email}. * Leading and trailing whitespaces will be trimmed. From 0f12427b5962323ac5bf0906d78eb356a64d7d37 Mon Sep 17 00:00:00 2001 From: Alfred Koh <70746290+alfredkohhh@users.noreply.github.com> Date: Mon, 14 Mar 2022 01:18:18 +0800 Subject: [PATCH 111/507] Update AddressBookParser.java --- src/main/java/manageezpz/logic/parser/AddressBookParser.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 536cc1a61aa..fdd40e98b52 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -10,7 +10,6 @@ import manageezpz.logic.commands.AddEmployeeCommand; import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.commands.AddTodoTaskCommand; - import manageezpz.logic.commands.ClearCommand; import manageezpz.logic.commands.Command; import manageezpz.logic.commands.DeleteCommand; From 4b5b55727518dbf3142ec17cc2c750adbc4da95b Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 02:32:48 +0800 Subject: [PATCH 112/507] Fixed all AddTask commands, Updated Storage function to take in "type". --- .../logic/commands/AddDeadlineTaskCommand.java | 11 ++++++++++- .../logic/commands/AddEventTaskCommand.java | 11 ++++++++++- .../manageezpz/logic/commands/AddTaskCommand.java | 15 --------------- .../logic/commands/AddTodoTaskCommand.java | 12 ++++-------- .../parser/AddDeadlineTaskCommandParser.java | 9 ++++----- .../logic/parser/AddEventTaskCommandParser.java | 6 +++--- .../logic/parser/AddTodoTaskCommandParser.java | 5 ++--- .../java/manageezpz/logic/parser/CliSyntax.java | 3 --- .../java/manageezpz/logic/parser/ParserUtil.java | 2 +- .../manageezpz/model/{person => task}/Date.java | 2 +- src/main/java/manageezpz/model/task/Deadline.java | 4 ++-- src/main/java/manageezpz/model/task/Event.java | 3 +-- src/main/java/manageezpz/model/task/Task.java | 9 +++++++++ src/main/java/manageezpz/model/task/Todo.java | 1 + .../java/manageezpz/storage/JsonAdaptedTask.java | 5 ++++- 15 files changed, 52 insertions(+), 46 deletions(-) delete mode 100644 src/main/java/manageezpz/logic/commands/AddTaskCommand.java rename src/main/java/manageezpz/model/{person => task}/Date.java (93%) diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 22f85b8adb1..76a1f3d2784 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -1,6 +1,8 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.*; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -8,7 +10,14 @@ public class AddDeadlineTaskCommand extends Command { public static final String COMMAND_WORD = "addDeadline"; - public static final String MESSAGE_USAGE = "add message usage for addDeadline here"; + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a Deadline Task to the address book. " + + "Parameters: " + + PREFIX_DESCRIPTION + "DESCRIPTION " + + PREFIX_DATETIME + "DATETIME " + + "\r\n" + + "Example: " + COMMAND_WORD + " " + + PREFIX_DESCRIPTION + "Do Daily Commissions " + + PREFIX_DATETIME + "2022-03-15 04:00"; public static final String MESSAGE_SUCCESS = "New Deadline task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index f4cf42f6b33..4d3d0e734b3 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -1,6 +1,8 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.*; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -8,7 +10,14 @@ public class AddEventTaskCommand extends Command { public static final String COMMAND_WORD = "addEvent"; - public static final String MESSAGE_USAGE = "add message usage for addEvent here"; + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an Event Task to the address book. " + + "Parameters: " + + PREFIX_DESCRIPTION + "DESCRIPTION " + + PREFIX_TIME + "[DATE] [START_TIME] [END_TIME] " + + "\r\n" + + "Example: " + COMMAND_WORD + " " + + PREFIX_DESCRIPTION + "Finish 160 Resins " + + PREFIX_TIME + "2022-03-15 18:00 20:00"; public static final String MESSAGE_SUCCESS = "New Event task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/commands/AddTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTaskCommand.java deleted file mode 100644 index 0d810b92801..00000000000 --- a/src/main/java/manageezpz/logic/commands/AddTaskCommand.java +++ /dev/null @@ -1,15 +0,0 @@ -package manageezpz.logic.commands; - -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; - -public class AddTaskCommand extends Command { - public static final String COMMAND_WORD = "addTask"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = "Add Task command not implemented yet"; - public static final String MESSAGE_USAGE = "add message usage for addTask here"; - - @Override - public CommandResult execute(Model model) throws CommandException { - return new CommandResult(MESSAGE_NOT_IMPLEMENTED_YET); - } -} diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index 9b686bdd9a3..ac953fdec74 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -1,8 +1,7 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; +import static manageezpz.logic.parser.CliSyntax.*; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -11,17 +10,14 @@ public class AddTodoTaskCommand extends Command { - public static final String COMMAND_WORD = "addTask"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = "Add Task command not implemented yet"; + public static final String COMMAND_WORD = "addTodo"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an Task to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a Todo Task to the address book. " + "Parameters: " - + PREFIX_TODO + " " + PREFIX_DESCRIPTION + "DESCRIPTION " + + "\r\n" + "Example: " + COMMAND_WORD + " " - + PREFIX_TODO + " " + PREFIX_DESCRIPTION + "Play Genshin Impact."; - public static final String MESSAGE_SUCCESS = "New Task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index 4fc6faa9c58..6b2bc670e04 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -8,13 +8,12 @@ import java.util.stream.Stream; import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Date; +import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; -public class AddDeadlineTaskCommandParser { +public class AddDeadlineTaskCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand @@ -27,10 +26,10 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimapDeadline, PREFIX_DESCRIPTION, PREFIX_DATETIME) || !argMultimapDeadline.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddDeadlineTaskCommand.MESSAGE_USAGE)); } - Description desc = new Description(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); + Description desc = ParserUtil.parseDescription(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); String byDateTime = argMultimapDeadline.getValue(PREFIX_DATETIME).get(); String[] parseByDateTime = byDateTime.split(" "); diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 9e572eb6d71..2f63d8dcb56 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -9,11 +9,11 @@ import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Date; +import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Event; -public class AddEventTaskCommandParser { +public class AddEventTaskCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the AddEventTaskCommand @@ -29,7 +29,7 @@ public AddEventTaskCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); } - Description desc = new Description(argMultimapEvent.getValue(PREFIX_DESCRIPTION).get()); + Description desc = ParserUtil.parseDescription(argMultimapEvent.getValue(PREFIX_DESCRIPTION).get()); String atDateTime = argMultimapEvent.getValue(PREFIX_TIME).get(); String[] parseAtDateTime = atDateTime.split(" "); diff --git a/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java index 1eb9236e51c..1dc28fc8320 100644 --- a/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java @@ -2,7 +2,6 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import java.util.stream.Stream; @@ -19,9 +18,9 @@ public class AddTodoTaskCommandParser implements Parser { */ public AddTodoTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimapTodo = - ArgumentTokenizer.tokenize(args, PREFIX_TODO, PREFIX_DESCRIPTION); + ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION); - if (!arePrefixesPresent(argMultimapTodo, PREFIX_TODO, PREFIX_DESCRIPTION) + if (!arePrefixesPresent(argMultimapTodo, PREFIX_DESCRIPTION) || !argMultimapTodo.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTodoTaskCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index ce81bcbade9..db318e7d1c1 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -12,7 +12,4 @@ public class CliSyntax { public static final Prefix PREFIX_DESCRIPTION = new Prefix("desc/"); public static final Prefix PREFIX_DATETIME = new Prefix("by/"); public static final Prefix PREFIX_TIME = new Prefix("at/"); - public static final Prefix PREFIX_TODO = new Prefix("todo/"); - public static final Prefix PREFIX_EVENT = new Prefix("event/"); - public static final Prefix PREFIX_DEADLINE = new Prefix("deadline/"); } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index f20d6569e57..bd0dfed61fb 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -8,7 +8,7 @@ import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.Date; +import manageezpz.model.task.Date; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; diff --git a/src/main/java/manageezpz/model/person/Date.java b/src/main/java/manageezpz/model/task/Date.java similarity index 93% rename from src/main/java/manageezpz/model/person/Date.java rename to src/main/java/manageezpz/model/task/Date.java index b5db7b608ce..26aecdd67cc 100644 --- a/src/main/java/manageezpz/model/person/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -1,4 +1,4 @@ -package manageezpz.model.person; +package manageezpz.model.task; import java.time.LocalDate; diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 1a572d2462d..00558068892 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -2,8 +2,6 @@ import java.time.LocalTime; -import manageezpz.model.person.Date; - public class Deadline extends Task { private Date date; private LocalTime time; @@ -16,5 +14,7 @@ public Deadline(Description taskDescription, Date date, LocalTime time) { super(taskDescription); this.date = date; this.time = time; + super.setType("deadline"); } + } diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index c44dda09dd7..c199e24a9b4 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -2,8 +2,6 @@ import java.time.LocalTime; -import manageezpz.model.person.Date; - public class Event extends Task { private Date date; private LocalTime startTime; @@ -19,6 +17,7 @@ public Event(Description taskDescription, Date date, LocalTime startTime, LocalT this.date = date; this.startTime = startTime; this.endTime = endTime; + super.setType("event"); } public LocalTime getStartTime() { diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index d34d2fa955b..7aa76f86749 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -13,6 +13,7 @@ */ public class Task { protected boolean isDone; + protected String type; // Identity fields private final Description taskDescription; @@ -30,6 +31,7 @@ public Task(Description taskDescription) { requireAllNonNull(taskDescription); this.taskDescription = taskDescription; this.isDone = false; + this.type = ""; } /** @@ -56,6 +58,13 @@ public Description getDescription() { return this.taskDescription; } + public void setType(String type) { + this.type = type; + } + + public String getType() { + return this.type; + } /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. diff --git a/src/main/java/manageezpz/model/task/Todo.java b/src/main/java/manageezpz/model/task/Todo.java index f30efcdfb71..e5f63f18a66 100644 --- a/src/main/java/manageezpz/model/task/Todo.java +++ b/src/main/java/manageezpz/model/task/Todo.java @@ -8,5 +8,6 @@ public class Todo extends Task { */ public Todo(Description taskDescription) { super(taskDescription); + super.setType("todo"); } } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 36666e2e2bf..1eebe26e691 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -14,13 +14,15 @@ class JsonAdaptedTask { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; private final String description; + private final String type; /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator - public JsonAdaptedTask(@JsonProperty("description") String description) { + public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("description") String description) { this.description = new Description(description).toString(); + this.type = type; } /** @@ -28,6 +30,7 @@ public JsonAdaptedTask(@JsonProperty("description") String description) { */ public JsonAdaptedTask(Task source) { description = source.getDescription().toString(); + type = source.getType(); } /** From 3dbe758d5f8b69ee4c27cec651c03293f0216053 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 02:39:25 +0800 Subject: [PATCH 113/507] Fix gradle check errors --- .../manageezpz/logic/commands/AddDeadlineTaskCommand.java | 4 ++-- .../java/manageezpz/logic/commands/AddEventTaskCommand.java | 2 +- .../java/manageezpz/logic/commands/AddTodoTaskCommand.java | 6 ++---- .../logic/parser/AddDeadlineTaskCommandParser.java | 3 ++- src/main/java/manageezpz/logic/parser/ParserUtil.java | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 76a1f3d2784..16061c3489d 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -1,8 +1,8 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.*; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATETIME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index 4d3d0e734b3..1a761168fb3 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -1,7 +1,7 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.*; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import manageezpz.logic.commands.exceptions.CommandException; diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index ac953fdec74..c12a32ccebe 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -1,14 +1,12 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.*; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.task.Task; - - public class AddTodoTaskCommand extends Command { public static final String COMMAND_WORD = "addTodo"; @@ -17,7 +15,7 @@ public class AddTodoTaskCommand extends Command { + PREFIX_DESCRIPTION + "DESCRIPTION " + "\r\n" + "Example: " + COMMAND_WORD + " " - + PREFIX_DESCRIPTION + "Play Genshin Impact."; + + PREFIX_DESCRIPTION + "Play Genshin Impact"; public static final String MESSAGE_SUCCESS = "New Task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index 6b2bc670e04..ca429e4ec92 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -26,7 +26,8 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimapDeadline, PREFIX_DESCRIPTION, PREFIX_DATETIME) || !argMultimapDeadline.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddDeadlineTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AddDeadlineTaskCommand.MESSAGE_USAGE)); } Description desc = ParserUtil.parseDescription(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index bd0dfed61fb..54c463d0e4b 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -8,10 +8,10 @@ import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.task.Date; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; +import manageezpz.model.task.Date; import manageezpz.model.task.Description; /** From e8053e4fd9d929a7e1ba4ab317572ad62c412946 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 04:30:29 +0800 Subject: [PATCH 114/507] Updated Json, to store all needed fields for Tasks --- .../manageezpz/storage/JsonAdaptedTask.java | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 1eebe26e691..4f4bbc57fd2 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -4,8 +4,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; +import manageezpz.model.task.Event; import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; + /** * Jackson-friendly version of {@link Task}. */ @@ -15,22 +19,37 @@ class JsonAdaptedTask { private final String description; private final String type; + private final String date; + private final String time; + private final String startTime; + private final String endTime; /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator - public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("description") String description) { + public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("description") String description, + @JsonProperty("date") String date, @JsonProperty("time") String time, + @JsonProperty("startTime") String startTime, @JsonProperty("endTime") String endTime) { this.description = new Description(description).toString(); this.type = type; + this.date = date; + this.time = time; + this.startTime = startTime; + this.endTime = endTime; } /** * Converts a given {@code Task} into this class for Jackson use. */ + // Note to self: Do I need to convert String to LocalTime, so that toModelType can be able to create the task? public JsonAdaptedTask(Task source) { - description = source.getDescription().toString(); - type = source.getType(); + description = source.getDescription().toString(); // Generally for all tasks + type = source.getType(); // Generally for all tasks + this.date = "Placeholder for source.getDate()"; // For Deadline + this.time = "Placeholder for source.getTime()"; // For Deadline + this.startTime = "Placeholder for source.getEndTime()"; // For Event + this.endTime = "Placeholder for source.getEndTime()"; // For Event } /** @@ -42,6 +61,14 @@ public Task toModelType() throws IllegalValueException { if (description == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); } - return new Task(new Description(description)); + Description desc = new Description(description); + if(type.equals("todo")) { + return new Todo(desc); + } else if(type.equals("deadline")) { + // return new Deadline(desc, datetime,datetime); + } else if(type.equals("event")) { +// return new Event(desc,startTime, endTime); + } + return new Todo(desc); } } From c0edd9ba1ad53dff922cc86752ad722676a5eec8 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 04:33:10 +0800 Subject: [PATCH 115/507] Updated Json, to store all needed fields for Tasks --- src/main/java/manageezpz/storage/JsonAdaptedTask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 4f4bbc57fd2..b2885352502 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -44,6 +44,7 @@ public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("descrip */ // Note to self: Do I need to convert String to LocalTime, so that toModelType can be able to create the task? public JsonAdaptedTask(Task source) { + // For future reference, this.marked = source.getMark()? description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks this.date = "Placeholder for source.getDate()"; // For Deadline From 59ae768c51ff37e7013269a0930ebc3a5c773fd1 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:00:41 +0800 Subject: [PATCH 116/507] Update Task Model --- .../parser/AddDeadlineTaskCommandParser.java | 5 ++- .../parser/AddEventTaskCommandParser.java | 6 +-- .../manageezpz/logic/parser/ParserUtil.java | 23 ++++++++++- src/main/java/manageezpz/model/task/Date.java | 5 +++ .../java/manageezpz/model/task/Deadline.java | 21 ++++++++-- .../manageezpz/model/task/Description.java | 3 +- .../java/manageezpz/model/task/Event.java | 25 ++++++++--- src/main/java/manageezpz/model/task/Task.java | 41 +++++++++++++++++++ src/main/java/manageezpz/model/task/Time.java | 38 +++++++++++++++++ 9 files changed, 150 insertions(+), 17 deletions(-) create mode 100644 src/main/java/manageezpz/model/task/Time.java diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index ca429e4ec92..bae083ea8c8 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -4,7 +4,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import java.time.LocalTime; import java.util.stream.Stream; import manageezpz.logic.commands.AddDeadlineTaskCommand; @@ -12,6 +11,7 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; +import manageezpz.model.task.Time; public class AddDeadlineTaskCommandParser implements Parser { @@ -35,7 +35,8 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { String[] parseByDateTime = byDateTime.split(" "); Date date = ParserUtil.parseDate(parseByDateTime[0]); - LocalTime time = LocalTime.parse(parseByDateTime[1]); + Time time = ParserUtil.parseTime(parseByDateTime[1]); + //LocalTime time = LocalTime.parse(parseByDateTime[1]); Deadline deadline = new Deadline(desc, date, time); diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 2f63d8dcb56..697167fc692 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -4,7 +4,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; -import java.time.LocalTime; import java.util.stream.Stream; import manageezpz.logic.commands.AddEventTaskCommand; @@ -12,6 +11,7 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Event; +import manageezpz.model.task.Time; public class AddEventTaskCommandParser implements Parser { @@ -34,8 +34,8 @@ public AddEventTaskCommand parse(String args) throws ParseException { String atDateTime = argMultimapEvent.getValue(PREFIX_TIME).get(); String[] parseAtDateTime = atDateTime.split(" "); Date date = ParserUtil.parseDate(parseAtDateTime[0]); - LocalTime startTime = LocalTime.parse(parseAtDateTime[1]); - LocalTime endTime = LocalTime.parse(parseAtDateTime[2]); + Time startTime = ParserUtil.parseTime(parseAtDateTime[1]); + Time endTime = ParserUtil.parseTime(parseAtDateTime[2]); Event event = new Event(desc, date, startTime, endTime); return new AddEventTaskCommand(event); } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 54c463d0e4b..7d9386cd470 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -3,6 +3,7 @@ import static java.util.Objects.requireNonNull; import java.time.LocalDate; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; import manageezpz.commons.core.index.Index; @@ -13,6 +14,7 @@ import manageezpz.model.person.Phone; import manageezpz.model.task.Date; import manageezpz.model.task.Description; +import manageezpz.model.task.Time; /** * Contains utility methods used for parsing strings in the various *Parser classes. @@ -104,11 +106,28 @@ public static Date parseDate(String date) throws ParseException { } throw new ParseException(Date.MESSAGE_CONSTRAINTS); } + /** - * Parses a {@code String email} into an {@code Email}. + * Parses a {@code String time} into a {@code Time}. + * @param time + * @return a {@code Time} object. + * @throws ParseException + */ + public static Time parseTime(String time) throws ParseException { + requireNonNull(time); + if (!Time.isValidTime(time)) { + throw new ParseException(Time.MESSAGE_CONSTRAINTS); + } + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HHmm"); + LocalTime parsedTime = LocalTime.parse(time, dtf); + return new Time(parsedTime); + } + + /** + * Parses a {@code String description} into an {@code Description}. * Leading and trailing whitespaces will be trimmed. * - * @throws ParseException if the given {@code email} is invalid. + * @throws ParseException if the given {@code description} is invalid. */ public static Description parseDescription(String description) throws ParseException { requireNonNull(description); diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 26aecdd67cc..e417919c116 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -1,6 +1,7 @@ package manageezpz.model.task; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " @@ -18,4 +19,8 @@ public LocalDate getValue() { public void setValue(LocalDate value) { this.value = value; } + + public String format(DateTimeFormatter dtf) { + return value.format(dtf); + } } diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 00558068892..27b3600077d 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -1,20 +1,33 @@ package manageezpz.model.task; -import java.time.LocalTime; +import java.time.format.DateTimeFormatter; public class Deadline extends Task { private Date date; - private LocalTime time; + private Time time; /** * Constructor for the Task class. * * @param taskDescription information about the task. */ - public Deadline(Description taskDescription, Date date, LocalTime time) { + public Deadline(Description taskDescription, Date date, Time time) { super(taskDescription); + super.setType("deadline"); + super.setDeadlineTime(time); + super.setTaskDate(date); this.date = date; this.time = time; - super.setType("deadline"); + } + + /** + * Returns the string representation of a deadline. + * @return a string representation of the deadline, consisting of its description + * and formatted date and time. + */ + @Override + public String toString() { + return "[D]" + super.toString() + " (by: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + + " " + time.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } } diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index 04dbfaf263c..b35958ace37 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -5,7 +5,8 @@ public class Description { public static final String MESSAGE_CONSTRAINTS = - "Description should only contain alphanumeric characters and spaces, and it should not be blank"; + "Description should only contain alphanumeric characters and spaces. It should not contain any symbols" + + "and it should not be blank"; public static final String VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index c199e24a9b4..d78e893b224 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -1,25 +1,40 @@ package manageezpz.model.task; -import java.time.LocalTime; +import java.time.format.DateTimeFormatter; public class Event extends Task { private Date date; - private LocalTime startTime; - private LocalTime endTime; + private Time startTime; + private Time endTime; /** * Constructor for the Task class. * * @param taskDescription information about the task. */ - public Event(Description taskDescription, Date date, LocalTime startTime, LocalTime endTime) { + public Event(Description taskDescription, Date date, Time startTime, Time endTime) { super(taskDescription); this.date = date; this.startTime = startTime; this.endTime = endTime; super.setType("event"); + super.setTaskDate(date); + super.setEventStartTime(startTime); + super.setEventEndTime(endTime); + } + /** + * Returns the string representation of an event. + * @return a string representation of the event, consisting of its description, formatted date, + * starting time and ending time. + */ + @Override + public String toString() { + return "[E]" + super.toString() + " (at: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + + " " + startTime.format(DateTimeFormatter.ofPattern("h:mm a")) + " to" + + " " + endTime.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } + /* public LocalTime getStartTime() { return startTime; } @@ -34,5 +49,5 @@ public LocalTime getEndTime() { public void setEndTime(LocalTime endTime) { this.endTime = endTime; - } + }*/ } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 7aa76f86749..86a607e051d 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -17,6 +17,10 @@ public class Task { // Identity fields private final Description taskDescription; + private Date taskDate; + private Time deadlineTime; + private Time eventStartTime; + private Time eventEndTime; // Data fields private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) @@ -32,6 +36,10 @@ public Task(Description taskDescription) { this.taskDescription = taskDescription; this.isDone = false; this.type = ""; + this.taskDate = null; + this.deadlineTime = null; + this.eventStartTime = null; + this.eventEndTime = null; } /** @@ -65,6 +73,39 @@ public void setType(String type) { public String getType() { return this.type; } + + public void setTaskDate(Date date) { + this.taskDate = date; + } + + public Date getTaskDate() { + return this.taskDate; + } + + public void setDeadlineTime(Time time) { + this.deadlineTime = time; + } + + public Time getDeadlineTime() { + return this.deadlineTime; + } + + public void setEventStartTime(Time time) { + this.eventEndTime = time; + } + + public Time getEventStartTime() { + return this.eventStartTime; + } + + public void setEventEndTime(Time time) { + this.eventEndTime = time; + } + + public Time getEventEndTime() { + return this.eventEndTime; + } + /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java new file mode 100644 index 00000000000..d8d16a58d58 --- /dev/null +++ b/src/main/java/manageezpz/model/task/Time.java @@ -0,0 +1,38 @@ +package manageezpz.model.task; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +public class Time { + public static final String MESSAGE_CONSTRAINTS = "Time should strictly be in the format of HHMM." + + " It should only contain numbers, 4 digits long and should not be blank"; + + public static final String VALIDATION_REGEX = "\\d{4}"; + + private LocalTime time; + + /** + * Constructs a {@code Time}. + * + * @param time A valid time. + */ + public Time(LocalTime time) { + this.time = time; + } + + public static boolean isValidTime(String time) { + return time.matches(VALIDATION_REGEX); + } + + public LocalTime getTime() { + return time; + } + + public void setTime(LocalTime time) { + this.time = time; + } + + public String format(DateTimeFormatter dtf) { + return time.format(dtf); + } +} From 2a14bd491564851a734d45d0c283c433d3afc07a Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:09:27 +0800 Subject: [PATCH 117/507] Update UG --- docs/UserGuide.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b688346f51f..ece2531dbed 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -30,7 +30,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`clear`** : Deletes all Tasks. - * **`addTask todo/ desc/read book`** : Adds a todo task with a description of `read book` to the Task list. + * **`addTodo desc/read book`** : Adds a todo task with a description of `read book` to the Task list. * **`exit`** : Exits the app. @@ -79,15 +79,15 @@ Examples: * `addEmployee n/John Doe p/98765432 e/johnd@example.com` * `addEmployee p/98754123 n/Betsy Crowe e/betsycrowe@example.com` -### Adding a Task: `addTask` +### Adding a Task: `addTodo`, `addEvent`, `addDeadline` Adds a Task into the Task list. Format: -* `addTask todo/ desc/TASK_DESCRIPTION` -* `addTask deadline/ desc/TASK_DESCRIPTION by/DATE TIME` -* `addTask event/ desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` +* `addTask desc/TASK_DESCRIPTION` +* `addTask desc/TASK_DESCRIPTION by/DATE TIME` +* `addTask desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
:bulb: **Take Note:** For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) @@ -189,7 +189,7 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Add Task** | `addTask TASK_TYPE/ desc/TASK_DESCRIPTION`
e.g., `addTask todo/ desc/read book` +**Add Task** | `TASK_TYPE desc/TASK_DESCRIPTION`
e.g., `addTask desc/read book` **Clear** | `clear` **Delete** | `delete INDEX`
e.g., `delete 3` **Find** | `find task/TASK_DESCRIPTION`
e.g., `find task/homework` From 7052a6256c9d0fa0b28c89c2f1b8fd1f4ea5dc2b Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:14:58 +0800 Subject: [PATCH 118/507] Update UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ece2531dbed..940d1ce95d4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -189,7 +189,7 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Add Task** | `TASK_TYPE desc/TASK_DESCRIPTION`
e.g., `addTask desc/read book` +**Add Task** | `TASK_TYPE desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book`
`addDeadline desc/Use up resin /by 2022-15-03 0400` **Clear** | `clear` **Delete** | `delete INDEX`
e.g., `delete 3` **Find** | `find task/TASK_DESCRIPTION`
e.g., `find task/homework` From 2f004e81985946489aa7afd78ed7a82f85f345ad Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 14 Mar 2022 16:17:44 +0800 Subject: [PATCH 119/507] Update Task Model --- .../commands/AddDeadlineTaskCommand.java | 2 +- .../logic/commands/AddEventTaskCommand.java | 2 +- .../manageezpz/logic/parser/ParserUtil.java | 25 ++---------- src/main/java/manageezpz/model/task/Date.java | 28 ++++++++----- .../java/manageezpz/model/task/Deadline.java | 10 ++++- .../java/manageezpz/model/task/Event.java | 17 +++----- src/main/java/manageezpz/model/task/Task.java | 40 ------------------- src/main/java/manageezpz/model/task/Time.java | 14 ++++--- src/main/java/manageezpz/model/task/Todo.java | 9 +++++ 9 files changed, 54 insertions(+), 93 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 16061c3489d..093358bf83a 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -17,7 +17,7 @@ public class AddDeadlineTaskCommand extends Command { + "\r\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Do Daily Commissions " - + PREFIX_DATETIME + "2022-03-15 04:00"; + + PREFIX_DATETIME + "2022-03-15 0400"; public static final String MESSAGE_SUCCESS = "New Deadline task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index 1a761168fb3..0c328214373 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -17,7 +17,7 @@ public class AddEventTaskCommand extends Command { + "\r\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Finish 160 Resins " - + PREFIX_TIME + "2022-03-15 18:00 20:00"; + + PREFIX_TIME + "2022-03-15 1800 2000"; public static final String MESSAGE_SUCCESS = "New Event task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 7d9386cd470..b44e1acf998 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -2,10 +2,6 @@ import static java.util.Objects.requireNonNull; -import java.time.LocalDate; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; - import manageezpz.commons.core.index.Index; import manageezpz.commons.util.StringUtil; import manageezpz.logic.parser.exceptions.ParseException; @@ -90,21 +86,10 @@ public static Email parseEmail(String email) throws ParseException { */ public static Date parseDate(String date) throws ParseException { requireNonNull(date); - //@@author vishandi-reused - //Reused from https://github.com/vishandi/ip/blob/master/src/main/java/parser/Parser.java - //with minor modifications - String[] patterns = {"yyyy-MM-dd", "yyyy/MM/dd", "dd-MM-yyyy", "dd/MM/yyyy"}; - for (String pattern : patterns) { - try { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); - LocalDate parsedDate = LocalDate.parse(date, formatter); - return new Date(parsedDate); - } catch (Exception e) { - System.out.println("Currently chosen pattern did not fit the given input pattern. " - + "Moving on to the next option..."); - } + if (!Date.isValidDate(date)) { + throw new ParseException(Date.MESSAGE_CONSTRAINTS); } - throw new ParseException(Date.MESSAGE_CONSTRAINTS); + return new Date(date); } /** @@ -118,9 +103,7 @@ public static Time parseTime(String time) throws ParseException { if (!Time.isValidTime(time)) { throw new ParseException(Time.MESSAGE_CONSTRAINTS); } - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HHmm"); - LocalTime parsedTime = LocalTime.parse(time, dtf); - return new Time(parsedTime); + return new Time(time); } /** diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index e417919c116..5ae3d6ca6a1 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -4,23 +4,31 @@ import java.time.format.DateTimeFormatter; public class Date { - public static final String MESSAGE_CONSTRAINTS = "Date should be in the following formats: \"yyyy-MM-dd\", " - + "\"yyyy/MM/dd\", \"yyyy MMM dd\", \"dd MMM yyyy\", \"dd-MM-yyyy\", \"dd/MM/yyyy\""; + public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format : yyyy-MM-dd"; - private LocalDate value; + public static final String VALIDATION_REGEX = "\\d{4}\\D\\d{2}\\D\\d{2}"; - public Date(LocalDate date) { - value = date; + private String date; + + public Date(String date) { + this.date = date; + } + + public String getDate() { + return date; } - public LocalDate getValue() { - return value; + + public static boolean isValidDate(String date) { + return date.matches(VALIDATION_REGEX); } - public void setValue(LocalDate value) { - this.value = value; + public LocalDate getParsedDate() { + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate parsedDate = LocalDate.parse(date, dtf); + return parsedDate; } public String format(DateTimeFormatter dtf) { - return value.format(dtf); + return getParsedDate().format(dtf); } } diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 27b3600077d..2704c320df0 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -13,12 +13,18 @@ public class Deadline extends Task { public Deadline(Description taskDescription, Date date, Time time) { super(taskDescription); super.setType("deadline"); - super.setDeadlineTime(time); - super.setTaskDate(date); this.date = date; this.time = time; } + public Time getTime() { + return this.time; + } + + public Date getDate() { + return this.date; + } + /** * Returns the string representation of a deadline. * @return a string representation of the deadline, consisting of its description diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index d78e893b224..48c15cb376e 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -18,9 +18,6 @@ public Event(Description taskDescription, Date date, Time startTime, Time endTim this.startTime = startTime; this.endTime = endTime; super.setType("event"); - super.setTaskDate(date); - super.setEventStartTime(startTime); - super.setEventEndTime(endTime); } /** * Returns the string representation of an event. @@ -34,20 +31,16 @@ public String toString() { + " " + endTime.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } - /* - public LocalTime getStartTime() { + public Time getStartTime() { return startTime; } - public void setStartTime(LocalTime startTime) { - this.startTime = startTime; + public Time getEndTime() { + return endTime; } - public LocalTime getEndTime() { - return endTime; + public Date getDate() { + return date; } - public void setEndTime(LocalTime endTime) { - this.endTime = endTime; - }*/ } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 86a607e051d..b213a48d09b 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -17,10 +17,6 @@ public class Task { // Identity fields private final Description taskDescription; - private Date taskDate; - private Time deadlineTime; - private Time eventStartTime; - private Time eventEndTime; // Data fields private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) @@ -36,10 +32,6 @@ public Task(Description taskDescription) { this.taskDescription = taskDescription; this.isDone = false; this.type = ""; - this.taskDate = null; - this.deadlineTime = null; - this.eventStartTime = null; - this.eventEndTime = null; } /** @@ -74,38 +66,6 @@ public String getType() { return this.type; } - public void setTaskDate(Date date) { - this.taskDate = date; - } - - public Date getTaskDate() { - return this.taskDate; - } - - public void setDeadlineTime(Time time) { - this.deadlineTime = time; - } - - public Time getDeadlineTime() { - return this.deadlineTime; - } - - public void setEventStartTime(Time time) { - this.eventEndTime = time; - } - - public Time getEventStartTime() { - return this.eventStartTime; - } - - public void setEventEndTime(Time time) { - this.eventEndTime = time; - } - - public Time getEventEndTime() { - return this.eventEndTime; - } - /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index d8d16a58d58..e441a6e94b8 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -9,14 +9,14 @@ public class Time { public static final String VALIDATION_REGEX = "\\d{4}"; - private LocalTime time; + private String time; /** * Constructs a {@code Time}. * * @param time A valid time. */ - public Time(LocalTime time) { + public Time(String time) { this.time = time; } @@ -24,15 +24,17 @@ public static boolean isValidTime(String time) { return time.matches(VALIDATION_REGEX); } - public LocalTime getTime() { + public String getTime() { return time; } - public void setTime(LocalTime time) { - this.time = time; + public LocalTime getParsedTime() { + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HHmm"); + LocalTime parsedTime = LocalTime.parse(time, dtf); + return parsedTime; } public String format(DateTimeFormatter dtf) { - return time.format(dtf); + return getParsedTime().format(dtf); } } diff --git a/src/main/java/manageezpz/model/task/Todo.java b/src/main/java/manageezpz/model/task/Todo.java index e5f63f18a66..537d2697497 100644 --- a/src/main/java/manageezpz/model/task/Todo.java +++ b/src/main/java/manageezpz/model/task/Todo.java @@ -10,4 +10,13 @@ public Todo(Description taskDescription) { super(taskDescription); super.setType("todo"); } + + /** + * Returns the string representation of a todo. + * @return a string representation of the todo, consisting of its description. + */ + @Override + public String toString() { + return "[T]" + super.toString(); + } } From 11c3c37094dcd875f6e19e4f87e15de838604d28 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 17:18:01 +0800 Subject: [PATCH 120/507] Completed Storage functionality for all Tasks --- src/main/java/manageezpz/MainApp.java | 1 + .../manageezpz/storage/JsonAdaptedTask.java | 61 +++++++++++++------ .../invalidAndValidPersonAddressBook.json | 35 +++++++++-- .../invalidPersonAddressBook.json | 28 ++++++++- .../duplicatePersonAddressBook.json | 30 ++++++++- .../invalidPersonAddressBook.json | 31 +++++++++- .../typicalPersonsAddressBook.json | 28 ++++++++- .../manageezpz/model/person/PersonTest.java | 2 - .../java/manageezpz/model/task/TaskTest.java | 2 - 9 files changed, 183 insertions(+), 35 deletions(-) diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index be241acbbc7..fa1d7c0fc40 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -66,6 +66,7 @@ public void init() throws Exception { logic = new LogicManager(model, storage); ui = new UiManager(logic); + // System.out.println(model.getAddressBook().getTaskList()); } /** diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index b2885352502..7181e9f5b47 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -4,39 +4,44 @@ import com.fasterxml.jackson.annotation.JsonProperty; import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; import manageezpz.model.task.Event; import manageezpz.model.task.Task; +import manageezpz.model.task.Time; import manageezpz.model.task.Todo; + + /** * Jackson-friendly version of {@link Task}. */ class JsonAdaptedTask { - public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; + public static final String MISSING_FIELD_MESSAGE_FORMAT = "Task's %s field is missing!"; private final String description; private final String type; private final String date; - private final String time; - private final String startTime; - private final String endTime; + private String deadlineTime; + private String eventStartTime; + private String eventEndTime; /** - * Constructs a {@code JsonAdaptedPerson} with the given person details. + * Constructs a {@code JsonAdaptedTask} with the given person details. */ @JsonCreator public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("description") String description, - @JsonProperty("date") String date, @JsonProperty("time") String time, - @JsonProperty("startTime") String startTime, @JsonProperty("endTime") String endTime) { + @JsonProperty("date") String date, @JsonProperty("deadlineTime") String deadlineTime, + @JsonProperty("eventStartTime") String eventStartTime, + @JsonProperty("eventEndTime") String eventEndTime) { this.description = new Description(description).toString(); this.type = type; this.date = date; - this.time = time; - this.startTime = startTime; - this.endTime = endTime; + this.deadlineTime = deadlineTime; + this.eventStartTime = eventStartTime; + this.eventEndTime = eventEndTime; } /** @@ -47,10 +52,20 @@ public JsonAdaptedTask(Task source) { // For future reference, this.marked = source.getMark()? description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks - this.date = "Placeholder for source.getDate()"; // For Deadline - this.time = "Placeholder for source.getTime()"; // For Deadline - this.startTime = "Placeholder for source.getEndTime()"; // For Event - this.endTime = "Placeholder for source.getEndTime()"; // For Event + + if (source instanceof Deadline) { + this.date = ((Deadline) source).getDate().getDate(); // For Deadline + this.deadlineTime = ((Deadline) source).getTime().getTime(); // For Deadline + } else if ((source instanceof Event)) { + this.date = ((Event) source).getDate().getDate(); // For Event + this.eventStartTime = ((Event) source).getStartTime().getTime(); // For Event + this.eventEndTime = ((Event) source).getEndTime().getTime(); // For Event + } else { + this.date = ""; + this.deadlineTime = ""; + this.eventStartTime = ""; + this.eventEndTime = ""; + } } /** @@ -62,13 +77,21 @@ public Task toModelType() throws IllegalValueException { if (description == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); } + if (type == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); + } Description desc = new Description(description); - if(type.equals("todo")) { + if (type.equals("todo")) { return new Todo(desc); - } else if(type.equals("deadline")) { - // return new Deadline(desc, datetime,datetime); - } else if(type.equals("event")) { -// return new Event(desc,startTime, endTime); + } else if (type.equals("deadline")) { + Date currDeadlineDate = new Date(date); + Time currDeadlineTime = new Time(deadlineTime); + return new Deadline(desc, currDeadlineDate, currDeadlineTime); + } else if (type.equals("event")) { + Date currEventDate = new Date(date); + Time currEventStartTime = new Time(eventStartTime); + Time currEventEndTime = new Time(eventEndTime); + return new Event(desc, currEventDate, currEventStartTime, currEventEndTime); } return new Todo(desc); } diff --git a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json index 9418ba6bac0..6b8f39f39b6 100644 --- a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json +++ b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json @@ -2,14 +2,39 @@ "persons": [ { "name": "Valid Person", "phone": "9482424", - "email": "hans@example.com", + "email": "hans@example.com" }, { "name": "Person With Invalid Phone Field", "phone": "948asdf2424", - "email": "hans@example.com", - "address": "4th street" + "email": "hans@example.com" } ], "tasks" : [ { - "description" : "Hello" + "type" : "todo", + "description" : "Play Genshin Impact", + "date" : "", + "deadlineTime" : "", + "eventStartTime" : "", + "eventEndTime" : "" + }, { + "type" : "deadline", + "description" : "Do Daily Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null + }, { + "type" : "event", + "description" : "Finish 160 Resins", + "date" : "2022-03-15", + "deadlineTime" : null, + "eventStartTime" : "1800", + "eventEndTime" : "2000" + }, { + "type" : "deadline", + "description" : "Do MY Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null } ] -} +} \ No newline at end of file diff --git a/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json b/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json index 3f0e3a82d62..9ce4d3fda99 100644 --- a/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json +++ b/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json @@ -6,6 +6,32 @@ "address": "4th street" } ], "tasks" : [ { - "description" : "Hello" + "type" : "todo", + "description" : "Play Genshin Impact", + "date" : "", + "deadlineTime" : "", + "eventStartTime" : "", + "eventEndTime" : "" + }, { + "type" : "deadline", + "description" : "Do Daily Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null + }, { + "type" : "event", + "description" : "Finish 160 Resins", + "date" : "2022-03-15", + "deadlineTime" : null, + "eventStartTime" : "1800", + "eventEndTime" : "2000" + }, { + "type" : "deadline", + "description" : "Do MY Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null } ] } diff --git a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json index d3518c238df..aef668b7dff 100644 --- a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json @@ -10,6 +10,32 @@ "address": "4th street" } ], "tasks" : [ { - "description" : "Hello" + "type" : "todo", + "description" : "Play Genshin Impact", + "date" : "", + "deadlineTime" : "", + "eventStartTime" : "", + "eventEndTime" : "" + }, { + "type" : "deadline", + "description" : "Do Daily Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null + }, { + "type" : "event", + "description" : "Finish 160 Resins", + "date" : "2022-03-15", + "deadlineTime" : null, + "eventStartTime" : "1800", + "eventEndTime" : "2000" + }, { + "type" : "deadline", + "description" : "Do MY Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null } ] -} +} \ No newline at end of file diff --git a/src/test/data/JsonSerializableAddressBookTest/invalidPersonAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/invalidPersonAddressBook.json index c16a0116107..b18be5dcdf1 100644 --- a/src/test/data/JsonSerializableAddressBookTest/invalidPersonAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/invalidPersonAddressBook.json @@ -2,10 +2,35 @@ "persons": [ { "name": "Hans Muster", "phone": "9482424", - "email": "invalid@email!3e", - "address": "4th street" + "email": "invalid@email!3e" } ], "tasks" : [ { - "description" : "Hello" + "type" : "todo", + "description" : "Play Genshin Impact", + "date" : "", + "deadlineTime" : "", + "eventStartTime" : "", + "eventEndTime" : "" + }, { + "type" : "deadline", + "description" : "Do Daily Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null + }, { + "type" : "event", + "description" : "Finish 160 Resins", + "date" : "2022-03-15", + "deadlineTime" : null, + "eventStartTime" : "1800", + "eventEndTime" : "2000" + }, { + "type" : "deadline", + "description" : "Do MY Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null } ] } diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index 77936b9073c..8adb0774cef 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -32,6 +32,32 @@ "tagged" : [ ] } ], "tasks" : [ { - "description" : "Hello" + "type" : "todo", + "description" : "Play Genshin Impact", + "date" : "", + "deadlineTime" : "", + "eventStartTime" : "", + "eventEndTime" : "" + }, { + "type" : "deadline", + "description" : "Do Daily Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null + }, { + "type" : "event", + "description" : "Finish 160 Resins", + "date" : "2022-03-15", + "deadlineTime" : null, + "eventStartTime" : "1800", + "eventEndTime" : "2000" + }, { + "type" : "deadline", + "description" : "Do MY Commissions", + "date" : "2022-03-15", + "deadlineTime" : "0400", + "eventStartTime" : null, + "eventEndTime" : null } ] } diff --git a/src/test/java/manageezpz/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java index 9b417d6ae98..465e27371bc 100644 --- a/src/test/java/manageezpz/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -44,8 +44,6 @@ public void isSamePerson() { public void equals() { // same values -> returns true Person aliceCopy = new PersonBuilder(ALICE).build(); - System.out.println(ALICE); - System.out.println(aliceCopy); assertTrue(ALICE.equals(aliceCopy)); // same object -> returns true diff --git a/src/test/java/manageezpz/model/task/TaskTest.java b/src/test/java/manageezpz/model/task/TaskTest.java index 82b5f7cfb0e..fdad981fe18 100644 --- a/src/test/java/manageezpz/model/task/TaskTest.java +++ b/src/test/java/manageezpz/model/task/TaskTest.java @@ -35,8 +35,6 @@ public void isSameTask() { public void equals() { // same values -> returns true Task readBookCopy = new TaskBuilder(READ_BOOK).build(); - System.out.println(readBookCopy); - System.out.println(READ_BOOK); assertTrue(READ_BOOK.equals(readBookCopy)); // same object -> returns true From dcefc94eecd030e9ca65434178fee0bf3348bf00 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 17:19:36 +0800 Subject: [PATCH 121/507] Fix Gradle Errors --- .../invalidAndValidPersonAddressBook.json | 2 +- .../duplicatePersonAddressBook.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json index 6b8f39f39b6..464a0dfd91c 100644 --- a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json +++ b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json @@ -37,4 +37,4 @@ "eventStartTime" : null, "eventEndTime" : null } ] -} \ No newline at end of file +} diff --git a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json index aef668b7dff..a40e196612f 100644 --- a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json @@ -38,4 +38,4 @@ "eventStartTime" : null, "eventEndTime" : null } ] -} \ No newline at end of file +} From 2a0a9246f74059cf7dd03add7132de3102c0181a Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 17:41:23 +0800 Subject: [PATCH 122/507] Completed Storage functionality for Mark Unmark Tasks --- src/main/java/manageezpz/model/task/Task.java | 4 +++ .../manageezpz/storage/JsonAdaptedTask.java | 31 ++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index b213a48d09b..afe95c1f601 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -66,6 +66,10 @@ public String getType() { return this.type; } + public boolean isDone() { + return isDone; + } + /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 7181e9f5b47..e0e885fad4c 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -27,16 +27,20 @@ class JsonAdaptedTask { private String deadlineTime; private String eventStartTime; private String eventEndTime; + private String status; // This status is for mark and unmark. + /** * Constructs a {@code JsonAdaptedTask} with the given person details. */ @JsonCreator - public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("description") String description, + public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("status") String status, + @JsonProperty("description") String description, @JsonProperty("date") String date, @JsonProperty("deadlineTime") String deadlineTime, @JsonProperty("eventStartTime") String eventStartTime, @JsonProperty("eventEndTime") String eventEndTime) { this.description = new Description(description).toString(); + this.status = status; this.type = type; this.date = date; this.deadlineTime = deadlineTime; @@ -52,7 +56,7 @@ public JsonAdaptedTask(Task source) { // For future reference, this.marked = source.getMark()? description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks - + status = source.getStatusIcon(); if (source instanceof Deadline) { this.date = ((Deadline) source).getDate().getDate(); // For Deadline this.deadlineTime = ((Deadline) source).getTime().getTime(); // For Deadline @@ -81,18 +85,31 @@ public Task toModelType() throws IllegalValueException { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); } Description desc = new Description(description); + boolean isDone = status.equals("X"); + if (type.equals("todo")) { - return new Todo(desc); + Todo newTodo = new Todo(desc); + if(isDone) { + newTodo.setTaskDone(); + } + return newTodo; } else if (type.equals("deadline")) { Date currDeadlineDate = new Date(date); Time currDeadlineTime = new Time(deadlineTime); - return new Deadline(desc, currDeadlineDate, currDeadlineTime); - } else if (type.equals("event")) { + Deadline newDeadline = new Deadline(desc, currDeadlineDate, currDeadlineTime); + if(isDone) { + newDeadline.setTaskDone(); + } + return newDeadline; + } else { Date currEventDate = new Date(date); Time currEventStartTime = new Time(eventStartTime); Time currEventEndTime = new Time(eventEndTime); - return new Event(desc, currEventDate, currEventStartTime, currEventEndTime); + Event newEvent = new Event(desc, currEventDate, currEventStartTime, currEventEndTime); + if(isDone) { + newEvent.setTaskDone(); + } + return newEvent; } - return new Todo(desc); } } From ef4ec753ccdc30a09e9a450f2c569156efb7d68c Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Mon, 14 Mar 2022 17:48:31 +0800 Subject: [PATCH 123/507] Solve the gradle error --- src/main/java/manageezpz/storage/JsonAdaptedTask.java | 9 ++++++--- .../typicalPersonsAddressBook.json | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index e0e885fad4c..cadcbf4d32e 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -84,12 +84,15 @@ public Task toModelType() throws IllegalValueException { if (type == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); } + if (status == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); + } Description desc = new Description(description); boolean isDone = status.equals("X"); if (type.equals("todo")) { Todo newTodo = new Todo(desc); - if(isDone) { + if (isDone) { newTodo.setTaskDone(); } return newTodo; @@ -97,7 +100,7 @@ public Task toModelType() throws IllegalValueException { Date currDeadlineDate = new Date(date); Time currDeadlineTime = new Time(deadlineTime); Deadline newDeadline = new Deadline(desc, currDeadlineDate, currDeadlineTime); - if(isDone) { + if (isDone) { newDeadline.setTaskDone(); } return newDeadline; @@ -106,7 +109,7 @@ public Task toModelType() throws IllegalValueException { Time currEventStartTime = new Time(eventStartTime); Time currEventEndTime = new Time(eventEndTime); Event newEvent = new Event(desc, currEventDate, currEventStartTime, currEventEndTime); - if(isDone) { + if (isDone) { newEvent.setTaskDone(); } return newEvent; diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index 8adb0774cef..7fd6e99493c 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -27,12 +27,11 @@ }, { "name" : "George Best", "phone" : "9482442", - "email" : "anna@example.com", - "address" : "4th street", - "tagged" : [ ] + "email" : "anna@example.com" } ], "tasks" : [ { "type" : "todo", + "status": "", "description" : "Play Genshin Impact", "date" : "", "deadlineTime" : "", @@ -40,6 +39,7 @@ "eventEndTime" : "" }, { "type" : "deadline", + "status": "", "description" : "Do Daily Commissions", "date" : "2022-03-15", "deadlineTime" : "0400", @@ -47,6 +47,7 @@ "eventEndTime" : null }, { "type" : "event", + "status": "", "description" : "Finish 160 Resins", "date" : "2022-03-15", "deadlineTime" : null, @@ -54,6 +55,7 @@ "eventEndTime" : "2000" }, { "type" : "deadline", + "status": "", "description" : "Do MY Commissions", "date" : "2022-03-15", "deadlineTime" : "0400", From debe2e844c760549ce565fbbe011f13d532843eb Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 02:20:33 +0800 Subject: [PATCH 124/507] Update build gradle settings --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index be2d2905dde..a19f7ac83f1 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -mainClassName = 'seedu.address.Main' +mainClassName = 'manageezpz.Main' sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 @@ -66,7 +66,7 @@ dependencies { } shadowJar { - archiveName = 'addressbook.jar' + archiveName = 'manageezpz.jar' } defaultTasks 'clean', 'test' From 6522c65fde0c5b5574989f88a25260b74e3cd885 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 15 Mar 2022 08:49:12 +0800 Subject: [PATCH 125/507] Update UG --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 940d1ce95d4..a0306fe0a0a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -85,9 +85,9 @@ Adds a Task into the Task list. Format: -* `addTask desc/TASK_DESCRIPTION` -* `addTask desc/TASK_DESCRIPTION by/DATE TIME` -* `addTask desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` +* `addTodo desc/TASK_DESCRIPTION` +* `addTDeadline desc/TASK_DESCRIPTION by/DATE TIME` +* `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
:bulb: **Take Note:** For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) From 460744ab84933986b57676cf3366f47ab0c88e5b Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 18:54:33 +0800 Subject: [PATCH 126/507] Add functionality for Mark and Unmark task --- .../manageezpz/commons/core/Messages.java | 1 + .../logic/commands/MarkTaskCommand.java | 53 +++++++++++++++++++ .../logic/commands/UnmarkTaskCommand.java | 53 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 19 +++---- .../logic/parser/MarkTaskCommandParser.java | 29 ++++++++++ .../logic/parser/UnmarkTaskCommandParser.java | 29 ++++++++++ .../java/manageezpz/model/AddressBook.java | 2 + 7 files changed, 174 insertions(+), 12 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/MarkTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java create mode 100644 src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 76877e25513..e3ae20103d4 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -8,6 +8,7 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java new file mode 100644 index 00000000000..053069fe8f8 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -0,0 +1,53 @@ +package manageezpz.logic.commands; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +import java.util.List; + +import static java.util.Objects.requireNonNull; + +/** + * Marks a task identified using its displayed index from the address book as done. + */ +public class MarkTaskCommand extends Command { + + public static final String COMMAND_WORD = "mark"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Marks the task identified by the index number used in the displayed task list as done.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_MARK_TASK_SUCCESS = "Task marked as done: %1$s"; + + private final Index targetIndex; + + public MarkTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); + model.markTask(taskToMark); + return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, taskToMark)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof MarkTaskCommand // instanceof handles nulls + && targetIndex.equals(((MarkTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java new file mode 100644 index 00000000000..df17c42acc8 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java @@ -0,0 +1,53 @@ +package manageezpz.logic.commands; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +import java.util.List; + +import static java.util.Objects.requireNonNull; + +/** + * Marks a task identified using its displayed index from the address book as not done yet. + */ +public class UnmarkTaskCommand extends Command { + + public static final String COMMAND_WORD = "unmark"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Marks the task identified by the index number used in the displayed task list as done yet.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_UNMARK_TASK_SUCCESS = "Task marked as not done yet: %1$s"; + + private final Index targetIndex; + + public UnmarkTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToUnmark = lastShownList.get(targetIndex.getZeroBased()); + model.unmarkTask(taskToUnmark); + return new CommandResult(String.format(MESSAGE_UNMARK_TASK_SUCCESS, taskToUnmark)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof UnmarkTaskCommand // instanceof handles nulls + && targetIndex.equals(((UnmarkTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index fdd40e98b52..fb3ad95a872 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,18 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.AddEventTaskCommand; -import manageezpz.logic.commands.AddTodoTaskCommand; -import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.*; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -80,6 +69,12 @@ public Command parseCommand(String userInput) throws ParseException { case AddDeadlineTaskCommand.COMMAND_WORD: return new AddDeadlineTaskCommandParser().parse(arguments); + case MarkTaskCommand.COMMAND_WORD: + return new MarkTaskCommandParser().parse(arguments); + + case UnmarkTaskCommand.COMMAND_WORD: + return new UnmarkTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java new file mode 100644 index 00000000000..91ddf7096ab --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -0,0 +1,29 @@ +package manageezpz.logic.parser; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class MarkTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the MarkTaskCommand + * and returns a MarkTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public MarkTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new MarkTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, MarkTaskCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java new file mode 100644 index 00000000000..6d55c9217ad --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java @@ -0,0 +1,29 @@ +package manageezpz.logic.parser; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.UnmarkTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class UnmarkTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the MarkTaskCommand + * and returns a MarkTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public UnmarkTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new UnmarkTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, UnmarkTaskCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index b43ae41d942..96117bd1550 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -138,9 +138,11 @@ public void addDeadline(Deadline deadline) { } public void markTask(Task task) { + task.setTaskDone(); } public void unmarkTask(Task task) { + task.setTaskNotDone(); } public void findTask(Task task) { From 8fff4a9386a7e1ad5042970847118dcd2fb2c54b Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:12:28 +0800 Subject: [PATCH 127/507] Fix gradle check errors --- .../logic/commands/MarkTaskCommand.java | 8 ++++---- .../logic/commands/UnmarkTaskCommand.java | 8 ++++---- .../logic/parser/AddressBookParser.java | 15 ++++++++++++++- .../logic/parser/MarkTaskCommandParser.java | 4 ++-- .../logic/parser/UnmarkTaskCommandParser.java | 4 ++-- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java index 053069fe8f8..f54b4fd752d 100644 --- a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -1,15 +1,15 @@ package manageezpz.logic.commands; +import static java.util.Objects.requireNonNull; + +import java.util.List; + import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.task.Task; -import java.util.List; - -import static java.util.Objects.requireNonNull; - /** * Marks a task identified using its displayed index from the address book as done. */ diff --git a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java index df17c42acc8..b22fdf88f6b 100644 --- a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java @@ -1,15 +1,15 @@ package manageezpz.logic.commands; +import static java.util.Objects.requireNonNull; + +import java.util.List; + import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.task.Task; -import java.util.List; - -import static java.util.Objects.requireNonNull; - /** * Marks a task identified using its displayed index from the address book as not done yet. */ diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index fb3ad95a872..1439d425074 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,7 +6,20 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.*; +import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEmployeeCommand; +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.commands.AddTodoTaskCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.commands.UnmarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java index 91ddf7096ab..0322748c8d3 100644 --- a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -1,11 +1,11 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - /** * Parses input arguments and creates a new DeleteCommand object */ diff --git a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java index 6d55c9217ad..924befb98e6 100644 --- a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java @@ -1,11 +1,11 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.UnmarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - /** * Parses input arguments and creates a new DeleteCommand object */ From 3af203087c8a9c4c7fd925ad80ebed8e91cf7aab Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:17:44 +0800 Subject: [PATCH 128/507] Fix gradle check errors --- .../logic/commands/MarkTaskCommand.java | 106 +++++++++--------- .../logic/commands/UnmarkTaskCommand.java | 106 +++++++++--------- .../logic/parser/MarkTaskCommandParser.java | 58 +++++----- .../logic/parser/UnmarkTaskCommandParser.java | 58 +++++----- 4 files changed, 164 insertions(+), 164 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java index f54b4fd752d..69833ffbad3 100644 --- a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -1,53 +1,53 @@ -package manageezpz.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; -import manageezpz.model.task.Task; - -/** - * Marks a task identified using its displayed index from the address book as done. - */ -public class MarkTaskCommand extends Command { - - public static final String COMMAND_WORD = "mark"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Marks the task identified by the index number used in the displayed task list as done.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; - - public static final String MESSAGE_MARK_TASK_SUCCESS = "Task marked as done: %1$s"; - - private final Index targetIndex; - - public MarkTaskCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); - } - - Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); - model.markTask(taskToMark); - return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, taskToMark)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof MarkTaskCommand // instanceof handles nulls - && targetIndex.equals(((MarkTaskCommand) other).targetIndex)); // state check - } -} +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +/** + * Marks a task identified using its displayed index from the address book as done. + */ +public class MarkTaskCommand extends Command { + + public static final String COMMAND_WORD = "mark"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Marks the task identified by the index number used in the displayed task list as done.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_MARK_TASK_SUCCESS = "Task marked as done: %1$s"; + + private final Index targetIndex; + + public MarkTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); + model.markTask(taskToMark); + return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, taskToMark)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof MarkTaskCommand // instanceof handles nulls + && targetIndex.equals(((MarkTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java index b22fdf88f6b..793b1c01485 100644 --- a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java @@ -1,53 +1,53 @@ -package manageezpz.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; -import manageezpz.model.task.Task; - -/** - * Marks a task identified using its displayed index from the address book as not done yet. - */ -public class UnmarkTaskCommand extends Command { - - public static final String COMMAND_WORD = "unmark"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Marks the task identified by the index number used in the displayed task list as done yet.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; - - public static final String MESSAGE_UNMARK_TASK_SUCCESS = "Task marked as not done yet: %1$s"; - - private final Index targetIndex; - - public UnmarkTaskCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); - } - - Task taskToUnmark = lastShownList.get(targetIndex.getZeroBased()); - model.unmarkTask(taskToUnmark); - return new CommandResult(String.format(MESSAGE_UNMARK_TASK_SUCCESS, taskToUnmark)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof UnmarkTaskCommand // instanceof handles nulls - && targetIndex.equals(((UnmarkTaskCommand) other).targetIndex)); // state check - } -} +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +/** + * Marks a task identified using its displayed index from the address book as not done yet. + */ +public class UnmarkTaskCommand extends Command { + + public static final String COMMAND_WORD = "unmark"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Marks the task identified by the index number used in the displayed task list as done yet.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_UNMARK_TASK_SUCCESS = "Task marked as not done yet: %1$s"; + + private final Index targetIndex; + + public UnmarkTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToUnmark = lastShownList.get(targetIndex.getZeroBased()); + model.unmarkTask(taskToUnmark); + return new CommandResult(String.format(MESSAGE_UNMARK_TASK_SUCCESS, taskToUnmark)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof UnmarkTaskCommand // instanceof handles nulls + && targetIndex.equals(((UnmarkTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java index 0322748c8d3..c59f038928f 100644 --- a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -1,29 +1,29 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.MarkTaskCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeleteCommand object - */ -public class MarkTaskCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the MarkTaskCommand - * and returns a MarkTaskCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public MarkTaskCommand parse(String args) throws ParseException { - try { - Index index = ParserUtil.parseIndex(args); - return new MarkTaskCommand(index); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, MarkTaskCommand.MESSAGE_USAGE), pe); - } - } - -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class MarkTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the MarkTaskCommand + * and returns a MarkTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public MarkTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new MarkTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, MarkTaskCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java index 924befb98e6..6831ac5de16 100644 --- a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java @@ -1,29 +1,29 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.UnmarkTaskCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeleteCommand object - */ -public class UnmarkTaskCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the MarkTaskCommand - * and returns a MarkTaskCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public UnmarkTaskCommand parse(String args) throws ParseException { - try { - Index index = ParserUtil.parseIndex(args); - return new UnmarkTaskCommand(index); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, UnmarkTaskCommand.MESSAGE_USAGE), pe); - } - } - -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.UnmarkTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class UnmarkTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the MarkTaskCommand + * and returns a MarkTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public UnmarkTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new UnmarkTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, UnmarkTaskCommand.MESSAGE_USAGE), pe); + } + } + +} From 34335728859009c524ad60fcf9e52410cd4610d4 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:39:08 +0800 Subject: [PATCH 129/507] Add functionality for Delete task --- .../manageezpz/commons/core/Messages.java | 1 + ...ommand.java => DeleteEmployeeCommand.java} | 106 ++++----- .../logic/commands/DeleteTaskCommand.java | 53 +++++ .../logic/parser/AddressBookParser.java | 6 +- ....java => DeleteEmployeeCommandParser.java} | 58 ++--- .../logic/parser/DeleteTaskCommandParser.java | 29 +++ ...st.java => DeleteEmployeeCommandTest.java} | 218 +++++++++--------- .../logic/parser/AddressBookParserTest.java | 8 +- ...a => DeleteEmployeeCommandParserTest.java} | 64 ++--- 9 files changed, 313 insertions(+), 230 deletions(-) rename src/main/java/manageezpz/logic/commands/{DeleteCommand.java => DeleteEmployeeCommand.java} (82%) create mode 100644 src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java rename src/main/java/manageezpz/logic/parser/{DeleteCommandParser.java => DeleteEmployeeCommandParser.java} (69%) create mode 100644 src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java rename src/test/java/manageezpz/logic/commands/{DeleteCommandTest.java => DeleteEmployeeCommandTest.java} (68%) rename src/test/java/manageezpz/logic/parser/{DeleteCommandParserTest.java => DeleteEmployeeCommandParserTest.java} (72%) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 76877e25513..e3ae20103d4 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -8,6 +8,7 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/manageezpz/logic/commands/DeleteCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java similarity index 82% rename from src/main/java/manageezpz/logic/commands/DeleteCommand.java rename to src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 33ae9aee1f3..08333bed518 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -1,53 +1,53 @@ -package manageezpz.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; -import manageezpz.model.person.Person; - -/** - * Deletes a person identified using it's displayed index from the address book. - */ -public class DeleteCommand extends Command { - - public static final String COMMAND_WORD = "delete"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; - - public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; - - private final Index targetIndex; - - public DeleteCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); - model.deletePerson(personToDelete); - return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof DeleteCommand // instanceof handles nulls - && targetIndex.equals(((DeleteCommand) other).targetIndex)); // state check - } -} +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; + +/** + * Deletes a person identified using it's displayed index from the address book. + */ +public class DeleteEmployeeCommand extends Command { + + public static final String COMMAND_WORD = "delete"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Deletes the person identified by the index number used in the displayed person list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; + + private final Index targetIndex; + + public DeleteEmployeeCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredPersonList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deletePerson(personToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteEmployeeCommand // instanceof handles nulls + && targetIndex.equals(((DeleteEmployeeCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java new file mode 100644 index 00000000000..5e97e8f9500 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -0,0 +1,53 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +/** + * Deletes a task identified using it's displayed index from the address book. + */ +public class DeleteTaskCommand extends Command { + + public static final String COMMAND_WORD = "delete"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Deletes the task identified by the index number used in the displayed task list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_DELETE_TASK_SUCCESS = "Deleted Task: %1$s"; + + private final Index targetIndex; + + public DeleteTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deleteTask(taskToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteTaskCommand // instanceof handles nulls + && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index fdd40e98b52..1d1ef44d801 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -12,7 +12,7 @@ import manageezpz.logic.commands.AddTodoTaskCommand; import manageezpz.logic.commands.ClearCommand; import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.DeleteTaskCommand; import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindCommand; @@ -53,8 +53,8 @@ public Command parseCommand(String userInput) throws ParseException { case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteTaskCommand.COMMAND_WORD: + return new DeleteTaskCommandParser().parse(arguments); case ClearCommand.COMMAND_WORD: return new ClearCommand(); diff --git a/src/main/java/manageezpz/logic/parser/DeleteCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java similarity index 69% rename from src/main/java/manageezpz/logic/parser/DeleteCommandParser.java rename to src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index a40b40394cd..ec53134ef2b 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -1,29 +1,29 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.DeleteCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeleteCommand object - */ -public class DeleteCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the DeleteCommand - * and returns a DeleteCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public DeleteCommand parse(String args) throws ParseException { - try { - Index index = ParserUtil.parseIndex(args); - return new DeleteCommand(index); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE), pe); - } - } - -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.DeleteEmployeeCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class DeleteEmployeeCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the DeleteCommand + * and returns a DeleteCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeleteEmployeeCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new DeleteEmployeeCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java new file mode 100644 index 00000000000..136abc33a2c --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java @@ -0,0 +1,29 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.DeleteTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteTaskCommand object + */ +public class DeleteTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the DeleteCommand + * and returns a DeleteCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeleteTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new DeleteTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java similarity index 68% rename from src/test/java/manageezpz/logic/commands/DeleteCommandTest.java rename to src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java index 1df818cae6c..c73ca3a206b 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java @@ -1,109 +1,109 @@ -package manageezpz.logic.commands; - -import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import org.junit.jupiter.api.Test; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.model.Model; -import manageezpz.model.ModelManager; -import manageezpz.model.UserPrefs; -import manageezpz.model.person.Person; - -/** - * Contains integration tests (interaction with the Model) and unit tests for - * {@code DeleteCommand}. - */ -public class DeleteCommandTest { - - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - - @Test - public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); - - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); - - ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); - - assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidIndexUnfilteredList_throwsCommandException() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - @Test - public void execute_validIndexFilteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); - - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); - - Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); - showNoPerson(expectedModel); - - assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidIndexFilteredList_throwsCommandException() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - - Index outOfBoundIndex = INDEX_SECOND_PERSON; - // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - @Test - public void equals() { - DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_PERSON); - DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_PERSON); - - // same object -> returns true - assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); - - // same values -> returns true - DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_PERSON); - assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); - - // different types -> returns false - assertFalse(deleteFirstCommand.equals(1)); - - // null -> returns false - assertFalse(deleteFirstCommand.equals(null)); - - // different person -> returns false - assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); - } - - /** - * Updates {@code model}'s filtered list to show no one. - */ - private void showNoPerson(Model model) { - model.updateFilteredPersonList(p -> false); - - assertTrue(model.getFilteredPersonList().isEmpty()); - } -} +package manageezpz.logic.commands; + +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) and unit tests for + * {@code DeleteCommand}. + */ +public class DeleteEmployeeCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + + @Test + public void execute_validIndexUnfilteredList_success() { + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + + String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); + expectedModel.deletePerson(personToDelete); + + assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidIndexUnfilteredList_throwsCommandException() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); + + assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void execute_validIndexFilteredList_success() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + + String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + + Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); + expectedModel.deletePerson(personToDelete); + showNoPerson(expectedModel); + + assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidIndexFilteredList_throwsCommandException() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); + + assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteEmployeeCommand deleteFirstCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + DeleteEmployeeCommand deleteSecondCommand = new DeleteEmployeeCommand(INDEX_SECOND_PERSON); + + // same object -> returns true + assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); + + // same values -> returns true + DeleteEmployeeCommand deleteFirstCommandCopy = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); + } + + /** + * Updates {@code model}'s filtered list to show no one. + */ + private void showNoPerson(Model model) { + model.updateFilteredPersonList(p -> false); + + assertTrue(model.getFilteredPersonList().isEmpty()); + } +} diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 49c0c3834db..9d5859fb686 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -15,7 +15,7 @@ import manageezpz.logic.commands.AddEmployeeCommand; import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.DeleteCommand; +import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; import manageezpz.logic.commands.ExitCommand; @@ -48,9 +48,9 @@ public void parseCommand_clear() throws Exception { @Test public void parseCommand_delete() throws Exception { - DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); - assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); + DeleteEmployeeCommand command = (DeleteEmployeeCommand) parser.parseCommand( + DeleteEmployeeCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); + assertEquals(new DeleteEmployeeCommand(INDEX_FIRST_PERSON), command); } @Test diff --git a/src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java similarity index 72% rename from src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index ec4d86230e9..26d7059afc0 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -1,32 +1,32 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; - -import org.junit.jupiter.api.Test; - -import manageezpz.logic.commands.DeleteCommand; - -/** - * As we are only doing white-box testing, our test cases do not cover path variations - * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the - * same path through the DeleteCommand, and therefore we test only one of them. - * The path variation for those two cases occur inside the ParserUtil, and - * therefore should be covered by the ParserUtilTest. - */ -public class DeleteCommandParserTest { - - private DeleteCommandParser parser = new DeleteCommandParser(); - - @Test - public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteCommand(INDEX_FIRST_PERSON)); - } - - @Test - public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); - } -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import manageezpz.logic.commands.DeleteEmployeeCommand; + +/** + * As we are only doing white-box testing, our test cases do not cover path variations + * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the + * same path through the DeleteCommand, and therefore we test only one of them. + * The path variation for those two cases occur inside the ParserUtil, and + * therefore should be covered by the ParserUtilTest. + */ +public class DeleteEmployeeCommandParserTest { + + private DeleteEmployeeCommandParser parser = new DeleteEmployeeCommandParser(); + + @Test + public void parse_validArgs_returnsDeleteCommand() { + assertParseSuccess(parser, "1", new DeleteEmployeeCommand(INDEX_FIRST_PERSON)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); + } +} From 69eaf7b82a9e5089e5ce5cbe24c91a8830dce338 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:44:51 +0800 Subject: [PATCH 130/507] Fix gradle check errors --- .../logic/commands/DeleteEmployeeCommand.java | 106 ++++----- .../logic/commands/DeleteTaskCommand.java | 106 ++++----- .../parser/DeleteEmployeeCommandParser.java | 58 ++--- .../logic/parser/DeleteTaskCommandParser.java | 58 ++--- .../commands/DeleteEmployeeCommandTest.java | 218 +++++++++--------- .../DeleteEmployeeCommandParserTest.java | 64 ++--- 6 files changed, 305 insertions(+), 305 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 08333bed518..66c07c9c194 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -1,53 +1,53 @@ -package manageezpz.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; -import manageezpz.model.person.Person; - -/** - * Deletes a person identified using it's displayed index from the address book. - */ -public class DeleteEmployeeCommand extends Command { - - public static final String COMMAND_WORD = "delete"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; - - public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; - - private final Index targetIndex; - - public DeleteEmployeeCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); - model.deletePerson(personToDelete); - return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof DeleteEmployeeCommand // instanceof handles nulls - && targetIndex.equals(((DeleteEmployeeCommand) other).targetIndex)); // state check - } -} +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; + +/** + * Deletes a person identified using it's displayed index from the address book. + */ +public class DeleteEmployeeCommand extends Command { + + public static final String COMMAND_WORD = "delete"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Deletes the person identified by the index number used in the displayed person list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; + + private final Index targetIndex; + + public DeleteEmployeeCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredPersonList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deletePerson(personToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteEmployeeCommand // instanceof handles nulls + && targetIndex.equals(((DeleteEmployeeCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index 5e97e8f9500..2b97ffbb492 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -1,53 +1,53 @@ -package manageezpz.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.exceptions.CommandException; -import manageezpz.model.Model; -import manageezpz.model.task.Task; - -/** - * Deletes a task identified using it's displayed index from the address book. - */ -public class DeleteTaskCommand extends Command { - - public static final String COMMAND_WORD = "delete"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the task identified by the index number used in the displayed task list.\n" - + "Parameters: INDEX (must be a positive integer)\n" - + "Example: " + COMMAND_WORD + " 1"; - - public static final String MESSAGE_DELETE_TASK_SUCCESS = "Deleted Task: %1$s"; - - private final Index targetIndex; - - public DeleteTaskCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); - } - - Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); - model.deleteTask(taskToDelete); - return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof DeleteTaskCommand // instanceof handles nulls - && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check - } -} +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +/** + * Deletes a task identified using it's displayed index from the address book. + */ +public class DeleteTaskCommand extends Command { + + public static final String COMMAND_WORD = "delete"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Deletes the task identified by the index number used in the displayed task list.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_DELETE_TASK_SUCCESS = "Deleted Task: %1$s"; + + private final Index targetIndex; + + public DeleteTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deleteTask(taskToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteTaskCommand // instanceof handles nulls + && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index ec53134ef2b..fb545d9470d 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -1,29 +1,29 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.DeleteEmployeeCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeleteCommand object - */ -public class DeleteEmployeeCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the DeleteCommand - * and returns a DeleteCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public DeleteEmployeeCommand parse(String args) throws ParseException { - try { - Index index = ParserUtil.parseIndex(args); - return new DeleteEmployeeCommand(index); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE), pe); - } - } - -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.DeleteEmployeeCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteCommand object + */ +public class DeleteEmployeeCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the DeleteCommand + * and returns a DeleteCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeleteEmployeeCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new DeleteEmployeeCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java index 136abc33a2c..df2be12d297 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java @@ -1,29 +1,29 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.DeleteTaskCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeleteTaskCommand object - */ -public class DeleteTaskCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the DeleteCommand - * and returns a DeleteCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public DeleteTaskCommand parse(String args) throws ParseException { - try { - Index index = ParserUtil.parseIndex(args); - return new DeleteTaskCommand(index); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskCommand.MESSAGE_USAGE), pe); - } - } - -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.DeleteTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeleteTaskCommand object + */ +public class DeleteTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the DeleteCommand + * and returns a DeleteCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeleteTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new DeleteTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java index c73ca3a206b..65f1948fa7f 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java @@ -1,109 +1,109 @@ -package manageezpz.logic.commands; - -import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import org.junit.jupiter.api.Test; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.model.Model; -import manageezpz.model.ModelManager; -import manageezpz.model.UserPrefs; -import manageezpz.model.person.Person; - -/** - * Contains integration tests (interaction with the Model) and unit tests for - * {@code DeleteCommand}. - */ -public class DeleteEmployeeCommandTest { - - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - - @Test - public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); - - String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); - - ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); - - assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidIndexUnfilteredList_throwsCommandException() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); - - assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - @Test - public void execute_validIndexFilteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); - - String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); - - Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); - showNoPerson(expectedModel); - - assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidIndexFilteredList_throwsCommandException() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - - Index outOfBoundIndex = INDEX_SECOND_PERSON; - // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); - - assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - @Test - public void equals() { - DeleteEmployeeCommand deleteFirstCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); - DeleteEmployeeCommand deleteSecondCommand = new DeleteEmployeeCommand(INDEX_SECOND_PERSON); - - // same object -> returns true - assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); - - // same values -> returns true - DeleteEmployeeCommand deleteFirstCommandCopy = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); - assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); - - // different types -> returns false - assertFalse(deleteFirstCommand.equals(1)); - - // null -> returns false - assertFalse(deleteFirstCommand.equals(null)); - - // different person -> returns false - assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); - } - - /** - * Updates {@code model}'s filtered list to show no one. - */ - private void showNoPerson(Model model) { - model.updateFilteredPersonList(p -> false); - - assertTrue(model.getFilteredPersonList().isEmpty()); - } -} +package manageezpz.logic.commands; + +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) and unit tests for + * {@code DeleteCommand}. + */ +public class DeleteEmployeeCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + + @Test + public void execute_validIndexUnfilteredList_success() { + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + + String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); + expectedModel.deletePerson(personToDelete); + + assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidIndexUnfilteredList_throwsCommandException() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); + + assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void execute_validIndexFilteredList_success() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + + String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + + Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); + expectedModel.deletePerson(personToDelete); + showNoPerson(expectedModel); + + assertCommandSuccess(deleteEmployeeCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidIndexFilteredList_throwsCommandException() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); + + assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteEmployeeCommand deleteFirstCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + DeleteEmployeeCommand deleteSecondCommand = new DeleteEmployeeCommand(INDEX_SECOND_PERSON); + + // same object -> returns true + assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); + + // same values -> returns true + DeleteEmployeeCommand deleteFirstCommandCopy = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); + } + + /** + * Updates {@code model}'s filtered list to show no one. + */ + private void showNoPerson(Model model) { + model.updateFilteredPersonList(p -> false); + + assertTrue(model.getFilteredPersonList().isEmpty()); + } +} diff --git a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index 26d7059afc0..2bb3234c6e5 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -1,32 +1,32 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; - -import org.junit.jupiter.api.Test; - -import manageezpz.logic.commands.DeleteEmployeeCommand; - -/** - * As we are only doing white-box testing, our test cases do not cover path variations - * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the - * same path through the DeleteCommand, and therefore we test only one of them. - * The path variation for those two cases occur inside the ParserUtil, and - * therefore should be covered by the ParserUtilTest. - */ -public class DeleteEmployeeCommandParserTest { - - private DeleteEmployeeCommandParser parser = new DeleteEmployeeCommandParser(); - - @Test - public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteEmployeeCommand(INDEX_FIRST_PERSON)); - } - - @Test - public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); - } -} +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import manageezpz.logic.commands.DeleteEmployeeCommand; + +/** + * As we are only doing white-box testing, our test cases do not cover path variations + * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the + * same path through the DeleteCommand, and therefore we test only one of them. + * The path variation for those two cases occur inside the ParserUtil, and + * therefore should be covered by the ParserUtilTest. + */ +public class DeleteEmployeeCommandParserTest { + + private DeleteEmployeeCommandParser parser = new DeleteEmployeeCommandParser(); + + @Test + public void parse_validArgs_returnsDeleteCommand() { + assertParseSuccess(parser, "1", new DeleteEmployeeCommand(INDEX_FIRST_PERSON)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); + } +} From a2e1ecbcac13380e1268da22fe743d1357192c9c Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:48:34 +0800 Subject: [PATCH 131/507] Fix gradle check errors --- .../logic/parser/DeleteEmployeeCommandParserTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index 2bb3234c6e5..5ddc601aa3b 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -27,6 +27,7 @@ public void parse_validArgs_returnsDeleteCommand() { @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); + assertParseFailure(parser, "a", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); } } From ebd0946e60a290c687e88f91e9197680b355cc08 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 19:55:56 +0800 Subject: [PATCH 132/507] Fix gradle check errors --- .../java/manageezpz/logic/commands/DeleteEmployeeCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 66c07c9c194..6e002625b48 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -15,7 +15,7 @@ */ public class DeleteEmployeeCommand extends Command { - public static final String COMMAND_WORD = "delete"; + public static final String COMMAND_WORD = "deleteEmployee"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Deletes the person identified by the index number used in the displayed person list.\n" From 32834442b9d70a828532fbab8d9e6fde0f0364ed Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 20:01:25 +0800 Subject: [PATCH 133/507] Fix gradle check errors --- .../logic/parser/AddressBookParser.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 1d1ef44d801..17bf696b5ed 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,18 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.AddEventTaskCommand; -import manageezpz.logic.commands.AddTodoTaskCommand; -import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteTaskCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.*; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -53,6 +42,9 @@ public Command parseCommand(String userInput) throws ParseException { case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); + case DeleteEmployeeCommand.COMMAND_WORD: + return new DeleteEmployeeCommandParser().parse(arguments); + case DeleteTaskCommand.COMMAND_WORD: return new DeleteTaskCommandParser().parse(arguments); From 0db82628b0e77090ac52449c5ee4173a8918037f Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 15 Mar 2022 20:13:58 +0800 Subject: [PATCH 134/507] Fix gradle check errors --- src/test/java/manageezpz/logic/LogicManagerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/manageezpz/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java index 3a6a46a47b0..5f8e7d0f218 100644 --- a/src/test/java/manageezpz/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -57,7 +57,7 @@ public void execute_invalidCommandFormat_throwsParseException() { @Test public void execute_commandExecutionError_throwsCommandException() { - String deleteCommand = "delete 9"; + String deleteCommand = "deleteEmployee 9"; assertCommandException(deleteCommand, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } From 1b10a89410e536dc111ede04c983f1cf73ba444f Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 15 Mar 2022 21:23:20 +0800 Subject: [PATCH 135/507] Update time to check for valid range --- src/main/java/manageezpz/model/task/Time.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index e441a6e94b8..586574aff65 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -21,7 +21,12 @@ public Time(String time) { } public static boolean isValidTime(String time) { - return time.matches(VALIDATION_REGEX); + return time.matches(VALIDATION_REGEX) && checkTimeRange(time); + } + + public static boolean checkTimeRange(String time) { + int timeInInt = Integer.parseInt(time); + return (timeInInt >= 0 && timeInInt <= 2359); } public String getTime() { From ddfa19e623bf2d6d096acaf104cbfa917077d359 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 15 Mar 2022 21:56:21 +0800 Subject: [PATCH 136/507] Add ListCommandParse.java Currently, list has no parse class. As the list command needs to have arguments like "todo/", "event/", "deadline/", and "today/", we need a parser to read the commands. Let's creates a Parse for List Command with the following features: * check the user input for any valid arguments * Check if the user has only one argument * Check if the argument has no value --- .../logic/commands/ListCommand.java | 14 ++++- .../logic/parser/AddressBookParser.java | 2 +- .../logic/parser/ArgumentMultimap.java | 12 ++++ .../manageezpz/logic/parser/CliSyntax.java | 4 ++ .../logic/parser/ListCommandParser.java | 59 +++++++++++++++++++ .../logic/commands/CommandTestUtil.java | 7 +++ .../logic/commands/ListCommandTest.java | 1 + .../logic/parser/ListCommandParserTest.java | 33 +++++++++++ 8 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 src/main/java/manageezpz/logic/parser/ListCommandParser.java create mode 100644 src/test/java/manageezpz/logic/parser/ListCommandParserTest.java diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 4e69bb03a2f..4a68e3e5ff4 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -3,18 +3,28 @@ import static java.util.Objects.requireNonNull; import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; /** * Lists all persons in the address book to the user. */ public class ListCommand extends Command { + private static final String LIST_USAGE_GUIDE = "list: List down all tasks."; + private static final String ONLY_ONE_ARGUMENT = "Only one argument allowed. No values after command"; + private static final String VALID_ARGUMENTS = "Valid Arguments: todo/, deadline/, event/, today/."; public static final String COMMAND_WORD = "list"; + public static final String MESSAGE_SUCCESS = "Listed all Tasks"; + public static final String MESSAGE_INVALID_ARGUMENTS + = String.join("\n", LIST_USAGE_GUIDE, ONLY_ONE_ARGUMENT,VALID_ARGUMENTS); + public static final String MESSAGE_MULTIPLE_ARGUMENTS = "Only one argument allowed for list"; - public static final String MESSAGE_SUCCESS = "Listed all persons"; - + private Prefix option; + /** + * {@inheritDoc} + */ @Override public CommandResult execute(Model model) { requireNonNull(model); diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index fdd40e98b52..fef4d6199a5 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -63,7 +63,7 @@ public Command parseCommand(String userInput) throws ParseException { return new FindCommandParser().parse(arguments); case ListCommand.COMMAND_WORD: - return new ListCommand(); + return new ListCommandParser().parse(arguments); case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java b/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java index 4f2a78d2b34..81f8f946d6a 100644 --- a/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java +++ b/src/main/java/manageezpz/logic/parser/ArgumentMultimap.java @@ -57,4 +57,16 @@ public List getAllValues(Prefix prefix) { public String getPreamble() { return getValue(new Prefix("")).orElse(""); } + + /** + * Returns the number of arguments including the preamble. + * @return The number of arguments including the preamble. + */ + public int numberOfArguments() { + return argMultimap.size(); + } + + public boolean isPrefixExist(Prefix prefix) { + return argMultimap.containsKey(prefix); + } } diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index db318e7d1c1..369282daa92 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -10,6 +10,10 @@ public class CliSyntax { public static final Prefix PREFIX_PHONE = new Prefix("p/"); public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_DESCRIPTION = new Prefix("desc/"); + public static final Prefix PREFIX_TODO = new Prefix("todo/"); + public static final Prefix PREFIX_DEADLINE = new Prefix("deadline/"); + public static final Prefix PREFIX_EVENT = new Prefix("event/"); + public static final Prefix PREFIX_TODAY = new Prefix("today/"); public static final Prefix PREFIX_DATETIME = new Prefix("by/"); public static final Prefix PREFIX_TIME = new Prefix("at/"); } diff --git a/src/main/java/manageezpz/logic/parser/ListCommandParser.java b/src/main/java/manageezpz/logic/parser/ListCommandParser.java new file mode 100644 index 00000000000..f7b49c65f44 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/ListCommandParser.java @@ -0,0 +1,59 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; + +import java.util.function.Consumer; +import java.util.stream.Stream; + +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * The parser for list command. + */ +public class ListCommandParser implements Parser { + private static final Prefix[] VALID_PREFIXES = { + PREFIX_TODO, + PREFIX_DEADLINE, + PREFIX_EVENT, + PREFIX_TODAY, + }; + + /** + * Parse the user input before executing the list command. + * @param userInput The input entered in the GUI by the user. + * @return The List Command with the appropriate prefix. + * @throws ParseException When there is more than one option, or no options. + */ + @Override + public ListCommand parse(String userInput) throws ParseException { + ArgumentMultimap argMultimapList = + ArgumentTokenizer.tokenize(userInput, VALID_PREFIXES); + + boolean hasMoreThanOneArgument = argMultimapList.numberOfArguments() > 2; + boolean hasInvalidArguments = argMultimapList.getPreamble().isEmpty(); + + if (hasMoreThanOneArgument || !hasInvalidArguments) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS)); + } + + for (Prefix prefix: VALID_PREFIXES) { + if (argMultimapList.isPrefixExist(prefix)) { + boolean hasValue = false; + String value = argMultimapList.getValue(prefix).orElse(null); + if (value != null) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS)); + } + return new ListCommand(); + } + } + + return new ListCommand(); + } +} diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index d58ebaf63b9..9d92aa74b55 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -1,8 +1,12 @@ package manageezpz.logic.commands; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -48,6 +52,9 @@ public class CommandTestUtil { public static final EditCommand.EditPersonDescriptor DESC_AMY; public static final EditCommand.EditPersonDescriptor DESC_BOB; + // Multiple arguments not allowed for list command + public static final String INVALID_LIST_MULTIPLE_ARGUMENTS = " " + PREFIX_TODO + " " + PREFIX_EVENT; + static { DESC_AMY = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_AMY).withEmail(VALID_EMAIL_AMY) diff --git a/src/test/java/manageezpz/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListCommandTest.java index 46e54a09407..70376e858f1 100644 --- a/src/test/java/manageezpz/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListCommandTest.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; import manageezpz.model.ModelManager; import manageezpz.model.UserPrefs; diff --git a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java new file mode 100644 index 00000000000..7d876c7d071 --- /dev/null +++ b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java @@ -0,0 +1,33 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.commands.CommandTestUtil.INVALID_LIST_MULTIPLE_ARGUMENTS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; + +import org.junit.jupiter.api.Test; + +import manageezpz.logic.commands.ListCommand; + +class ListCommandParserTest { + + private ListCommandParser parser = new ListCommandParser(); + private String expectedInvalidArgumentMessage + = String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS); + + @Test + void listCommandParser_multipleArguments_parseExceptionThrown() { + assertParseFailure(parser, INVALID_LIST_MULTIPLE_ARGUMENTS, expectedInvalidArgumentMessage); + } + + @Test + void listCommandParser_invalidArgument_parseExceptionThrown() { + assertParseFailure(parser, PREFIX_NAME.toString(), expectedInvalidArgumentMessage); + } + + @Test + void listCommandParser_argumentWithValues_parseExceptionThrown() { + assertParseFailure(parser, PREFIX_EVENT + "Some Value", expectedInvalidArgumentMessage); + } +} \ No newline at end of file From 6df8ad14f8b2d59d7c5c637aeda08ea36925f3c5 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 15 Mar 2022 22:04:57 +0800 Subject: [PATCH 137/507] Update Date and Time classes for validation checks --- src/main/java/manageezpz/model/task/Date.java | 18 ++++++++++++++++-- src/main/java/manageezpz/model/task/Time.java | 3 ++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 5ae3d6ca6a1..8fc8abeaf50 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -1,10 +1,13 @@ package manageezpz.model.task; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; public class Date { - public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format : yyyy-MM-dd"; + public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format : yyyy-MM-dd" + + " Month should be between 1 and 12 and Day should be between 1 and 31"; public static final String VALIDATION_REGEX = "\\d{4}\\D\\d{2}\\D\\d{2}"; @@ -19,7 +22,7 @@ public String getDate() { } public static boolean isValidDate(String date) { - return date.matches(VALIDATION_REGEX); + return date.matches(VALIDATION_REGEX) && validCheckDate(date); } public LocalDate getParsedDate() { @@ -28,6 +31,17 @@ public LocalDate getParsedDate() { return parsedDate; } + public static boolean validCheckDate(String date) { + SimpleDateFormat sdfrmt = new SimpleDateFormat("yyyy-MM-dd"); + sdfrmt.setLenient(false); + try { + LocalDate testDate = LocalDate.parse(date); + return true; + } catch (DateTimeParseException e) { + return false; + } + } + public String format(DateTimeFormatter dtf) { return getParsedDate().format(dtf); } diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index 586574aff65..bd5175f9822 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -5,7 +5,8 @@ public class Time { public static final String MESSAGE_CONSTRAINTS = "Time should strictly be in the format of HHMM." - + " It should only contain numbers, 4 digits long and should not be blank"; + + " It should only contain numbers, 4 digits long and should not be blank. " + + "Time should also be in the range of 0000 and 2359"; public static final String VALIDATION_REGEX = "\\d{4}"; From e5b049a512437d776e9f3380364e25e9dc65f93f Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 15 Mar 2022 22:09:06 +0800 Subject: [PATCH 138/507] Update checkstyle --- src/main/java/manageezpz/model/task/Date.java | 5 +++++ src/main/java/manageezpz/model/task/Time.java | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 8fc8abeaf50..75619bea2f4 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -31,6 +31,11 @@ public LocalDate getParsedDate() { return parsedDate; } + /** + * Validates the format of date provided. + * @param date String representation of date. + * @return true if date is in the correct parsable format, false otherwise. + * */ public static boolean validCheckDate(String date) { SimpleDateFormat sdfrmt = new SimpleDateFormat("yyyy-MM-dd"); sdfrmt.setLenient(false); diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index bd5175f9822..bf4d11c3e05 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -14,7 +14,6 @@ public class Time { /** * Constructs a {@code Time}. - * * @param time A valid time. */ public Time(String time) { @@ -25,6 +24,11 @@ public static boolean isValidTime(String time) { return time.matches(VALIDATION_REGEX) && checkTimeRange(time); } + /** + * Validates the range of time provided. + * @param time String representation of time. + * @return true if time is within the range specified, false otherwise. + */ public static boolean checkTimeRange(String time) { int timeInInt = Integer.parseInt(time); return (timeInInt >= 0 && timeInInt <= 2359); From 137b94df912886c38a56a9b7ebcf1a370967db02 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 15 Mar 2022 22:40:40 +0800 Subject: [PATCH 139/507] Update Regex testing for Time class --- src/main/java/manageezpz/model/task/Time.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index bf4d11c3e05..1ab8c75b83e 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -21,17 +21,7 @@ public Time(String time) { } public static boolean isValidTime(String time) { - return time.matches(VALIDATION_REGEX) && checkTimeRange(time); - } - - /** - * Validates the range of time provided. - * @param time String representation of time. - * @return true if time is within the range specified, false otherwise. - */ - public static boolean checkTimeRange(String time) { - int timeInInt = Integer.parseInt(time); - return (timeInInt >= 0 && timeInInt <= 2359); + return time.matches(VALIDATION_REGEX) && time.matches("([01]?[0-9]|2[0-3])[0-5][0-9]"); } public String getTime() { From 10e9c64ad0e7fdf98dbb19e0659a643110832711 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 15 Mar 2022 23:30:02 +0800 Subject: [PATCH 140/507] Fixed validation for creation of Deadline and Event Tasks, included 3 types of ask in sample data. --- .../logic/parser/AddDeadlineTaskCommandParser.java | 4 ++++ .../logic/parser/AddEventTaskCommandParser.java | 3 +++ .../java/manageezpz/model/util/SampleDataUtil.java | 11 ++++------- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index bae083ea8c8..ebc748ac1b3 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -7,6 +7,7 @@ import java.util.stream.Stream; import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; @@ -34,6 +35,9 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { String byDateTime = argMultimapDeadline.getValue(PREFIX_DATETIME).get(); String[] parseByDateTime = byDateTime.split(" "); + if (parseByDateTime.length != 2) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddDeadlineTaskCommand.MESSAGE_USAGE)); + } Date date = ParserUtil.parseDate(parseByDateTime[0]); Time time = ParserUtil.parseTime(parseByDateTime[1]); //LocalTime time = LocalTime.parse(parseByDateTime[1]); diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index 697167fc692..61a0440b270 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -33,6 +33,9 @@ public AddEventTaskCommand parse(String args) throws ParseException { String atDateTime = argMultimapEvent.getValue(PREFIX_TIME).get(); String[] parseAtDateTime = atDateTime.split(" "); + if (parseAtDateTime.length != 3) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); + } Date date = ParserUtil.parseDate(parseAtDateTime[0]); Time startTime = ParserUtil.parseTime(parseAtDateTime[1]); Time endTime = ParserUtil.parseTime(parseAtDateTime[2]); diff --git a/src/main/java/manageezpz/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java index e0aff8341d4..12cecffac0b 100644 --- a/src/main/java/manageezpz/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -6,9 +6,7 @@ import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.task.Description; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; +import manageezpz.model.task.*; /** * Contains utility methods for populating {@code AddressBook} with sample data. @@ -28,9 +26,9 @@ public static Person[] getSamplePersons() { public static Task[] getSampleTasks() { return new Task[] { new Todo(new Description("Read Book")), - new Todo(new Description("Return Book")), - new Todo(new Description("Read Genshin Guides")), - new Todo(new Description("Do Daily Commissions")), + new Deadline(new Description("Finish 160 Resins in Genshin"),new Date("2022-03-15"), new Time("1800")), + new Event(new Description("Watch Netflix"), new Date("2022-03-15"), + new Time("1200"), new Time("2359")) }; } public static ReadOnlyAddressBook getSampleAddressBook() { @@ -43,5 +41,4 @@ public static ReadOnlyAddressBook getSampleAddressBook() { } return sampleAb; } - } From cfaaceaca64bfd6a6dcef99100226ac0319b7fd0 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 15 Mar 2022 23:33:41 +0800 Subject: [PATCH 141/507] Fixed validation for creation of Deadline and Event Tasks, included 3 types of ask in sample data. --- .../logic/parser/AddDeadlineTaskCommandParser.java | 6 ++---- .../java/manageezpz/model/util/SampleDataUtil.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index ebc748ac1b3..0394e04b787 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -7,7 +7,6 @@ import java.util.stream.Stream; import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEventTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; @@ -36,12 +35,11 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { String[] parseByDateTime = byDateTime.split(" "); if (parseByDateTime.length != 2) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddDeadlineTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AddDeadlineTaskCommand.MESSAGE_USAGE)); } Date date = ParserUtil.parseDate(parseByDateTime[0]); Time time = ParserUtil.parseTime(parseByDateTime[1]); - //LocalTime time = LocalTime.parse(parseByDateTime[1]); - Deadline deadline = new Deadline(desc, date, time); return new AddDeadlineTaskCommand(deadline); diff --git a/src/main/java/manageezpz/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java index 12cecffac0b..6015bf856a6 100644 --- a/src/main/java/manageezpz/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -6,7 +6,13 @@ import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; -import manageezpz.model.task.*; +import manageezpz.model.task.Date; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Description; +import manageezpz.model.task.Event; +import manageezpz.model.task.Task; +import manageezpz.model.task.Time; +import manageezpz.model.task.Todo; /** * Contains utility methods for populating {@code AddressBook} with sample data. @@ -26,7 +32,8 @@ public static Person[] getSamplePersons() { public static Task[] getSampleTasks() { return new Task[] { new Todo(new Description("Read Book")), - new Deadline(new Description("Finish 160 Resins in Genshin"),new Date("2022-03-15"), new Time("1800")), + new Deadline(new Description("Finish 160 Resins in Genshin"), + new Date("2022-03-15"), new Time("1800")), new Event(new Description("Watch Netflix"), new Date("2022-03-15"), new Time("1200"), new Time("2359")) }; From 292bf62f05349aad501e63e36f0698b236b643b6 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 00:24:54 +0800 Subject: [PATCH 142/507] Amend List Command Currently, list command list down all person according to AB3. However, we want it to list all tasks. Lets, modify the list command such that: * It outputs all tasks according to the option --- .../logic/commands/ListCommand.java | 73 +++++++++++-- .../logic/parser/ListCommandParser.java | 18 +--- .../java/manageezpz/model/AddressBook.java | 102 +++++++++++++++++- src/main/java/manageezpz/model/Model.java | 11 ++ .../java/manageezpz/model/ModelManager.java | 17 +++ src/main/java/manageezpz/model/task/Date.java | 9 ++ .../manageezpz/logic/LogicManagerTest.java | 8 +- .../commands/AddEmployeeCommandTest.java | 11 ++ .../logic/commands/CommandTestUtil.java | 2 - .../logic/commands/ListCommandTest.java | 20 +--- .../logic/parser/AddressBookParserTest.java | 1 - .../logic/parser/ListCommandParserTest.java | 27 ++++- 12 files changed, 248 insertions(+), 51 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 4a68e3e5ff4..2378ce2a1dc 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -1,6 +1,10 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import manageezpz.logic.parser.Prefix; @@ -10,17 +14,43 @@ * Lists all persons in the address book to the user. */ public class ListCommand extends Command { - private static final String LIST_USAGE_GUIDE = "list: List down all tasks."; - private static final String ONLY_ONE_ARGUMENT = "Only one argument allowed. No values after command"; - private static final String VALID_ARGUMENTS = "Valid Arguments: todo/, deadline/, event/, today/."; - public static final String COMMAND_WORD = "list"; - public static final String MESSAGE_SUCCESS = "Listed all Tasks"; - public static final String MESSAGE_INVALID_ARGUMENTS - = String.join("\n", LIST_USAGE_GUIDE, ONLY_ONE_ARGUMENT,VALID_ARGUMENTS); - public static final String MESSAGE_MULTIPLE_ARGUMENTS = "Only one argument allowed for list"; - + public static final String MESSAGE_ALL_SUCCESS = "Listed all Tasks"; + public static final String MESSAGE_TODO_SUCCESS = "Listed all Todos"; + public static final String MESSAGE_DEADLINE_SUCCESS = "Listed all Deadlines"; + public static final String MESSAGE_EVENT_SUCCESS = "Listed all Events"; + public static final String MESSAGE_TODAY_SUCCESS = "Listed all Deadline/Events today"; + public static final String MESSAGE_INVALID_ARGUMENTS = + String.join("\n", + "list: List down all tasks.", + "Only one argument allowed. No values after command", + "Valid Arguments: todo/, deadline/, event/, today/."); private Prefix option; + private String messageSuccess; + + /** + * Constructor for List Command, without any arguments which shows all tasks in the task list. + */ + public ListCommand() { + messageSuccess = MESSAGE_ALL_SUCCESS; + } + + /** + * Constructor for List Command, with Arguments. + * @param option Arguments to show specific task. + */ + public ListCommand(Prefix option) { + this.option = option; + if (PREFIX_TODO.equals(option)) { + messageSuccess = MESSAGE_TODO_SUCCESS; + } else if (PREFIX_DEADLINE.equals(option)) { + messageSuccess = MESSAGE_DEADLINE_SUCCESS; + } else if (PREFIX_EVENT.equals(option)) { + messageSuccess = MESSAGE_EVENT_SUCCESS; + } else if (PREFIX_TODAY.equals(option)) { + messageSuccess = MESSAGE_TODAY_SUCCESS; + } + } /** * {@inheritDoc} @@ -28,7 +58,30 @@ public class ListCommand extends Command { @Override public CommandResult execute(Model model) { requireNonNull(model); + String list; + if (option == null) { + list = model.listTasks(); + } else { + list = model.listTasks(option); + } + String result = String.join("\n", messageSuccess, list); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - return new CommandResult(MESSAGE_SUCCESS); + return new CommandResult(result); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if (obj instanceof ListCommand) { + if (((ListCommand) obj).option == null) { + return option == null; + } else { + return ((ListCommand) obj).option.equals(option); + } + } else { + return false; + } } } diff --git a/src/main/java/manageezpz/logic/parser/ListCommandParser.java b/src/main/java/manageezpz/logic/parser/ListCommandParser.java index f7b49c65f44..41c6a3b26b9 100644 --- a/src/main/java/manageezpz/logic/parser/ListCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/ListCommandParser.java @@ -6,9 +6,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; -import java.util.function.Consumer; -import java.util.stream.Stream; - import manageezpz.logic.commands.ListCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -16,12 +13,7 @@ * The parser for list command. */ public class ListCommandParser implements Parser { - private static final Prefix[] VALID_PREFIXES = { - PREFIX_TODO, - PREFIX_DEADLINE, - PREFIX_EVENT, - PREFIX_TODAY, - }; + private static final Prefix[] VALID_PREFIXES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT, PREFIX_TODAY}; /** * Parse the user input before executing the list command. @@ -44,16 +36,14 @@ public ListCommand parse(String userInput) throws ParseException { for (Prefix prefix: VALID_PREFIXES) { if (argMultimapList.isPrefixExist(prefix)) { - boolean hasValue = false; - String value = argMultimapList.getValue(prefix).orElse(null); - if (value != null) { + String value = argMultimapList.getValue(prefix).get(); + if (!value.equals("")) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS)); } - return new ListCommand(); + return new ListCommand(prefix); } } - return new ListCommand(); } } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index b43ae41d942..6e2f2444c02 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -1,12 +1,19 @@ package manageezpz.model; import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; +import java.util.Iterator; import java.util.List; import javafx.collections.ObservableList; +import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; import manageezpz.model.person.UniquePersonList; +import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Event; import manageezpz.model.task.Task; @@ -44,6 +51,100 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { resetData(toBeCopied); } + /** + * Gets the list of all tasks. + * @return A string representing all tasks + */ + public String listTask() { + Iterator taskIterators = tasks.iterator(); + String result = taskIterators.next().toString(); + + while (taskIterators.hasNext()) { + result = String.join("\n", result, taskIterators.next().toString()); + } + return result; + } + + /** + * Gets the list of all tasks with the options + * @param option Option provided to filter list + * @return All tasks that satisfy the option given + */ + public String listTask(Prefix option) { + if (PREFIX_TODO.equals(option)) { + return listTodo(); + } else if (PREFIX_DEADLINE.equals(option)) { + return listDeadline(); + } else if (PREFIX_EVENT.equals(option)) { + return listEvent(); + } else if (PREFIX_TODAY.equals(option)) { + return listToday(); + } + assert true : "Invalid option, should be checked in list command parser"; + return null; + } + + /** + * Returns the list of all todos. + * @return List of all todos. + */ + private String listTodo() { + Iterator taskIterators = tasks.iterator(); + String result = ""; + + while (taskIterators.hasNext()) { + Task task = taskIterators.next(); + if (task instanceof Todo) { + result = String.join("\n", result, task.toString()); + } + } + + return result; + } + + private String listDeadline() { + Iterator taskIterators = tasks.iterator(); + String result = ""; + + while (taskIterators.hasNext()) { + Task task = taskIterators.next(); + if (task instanceof Deadline) { + result = String.join("\n", result, task.toString()); + } + } + + return result; + } + + private String listEvent() { + Iterator taskIterators = tasks.iterator(); + String result = ""; + + while (taskIterators.hasNext()) { + Task task = taskIterators.next(); + if (task instanceof Event) { + result = String.join("\n", result, task.toString()); + } + } + + return result; + } + + private String listToday() { + Iterator taskIterators = tasks.iterator(); + Date todayDate = Date.getTodayDate(); + String result = ""; + + while (taskIterators.hasNext()) { + Task task = taskIterators.next(); + if (task instanceof Deadline || task instanceof Event) { + result = String.join("\n", result, task.toString()); + } + } + + return result; + } + //// list overwrite operations /** @@ -213,5 +314,4 @@ public boolean equals(Object other) { public int hashCode() { return persons.hashCode(); } - } diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 37b50d125c3..5305671606a 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -5,6 +5,7 @@ import javafx.collections.ObservableList; import manageezpz.commons.core.GuiSettings; +import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; import manageezpz.model.task.Deadline; import manageezpz.model.task.Event; @@ -170,4 +171,14 @@ public interface Model { * Returns true if a task with the same identity as {@code deadline} exists in the task list. */ boolean hasTask(Task task); + + /** + * Returns a list of all tasks. + */ + String listTasks(); + + /** + * Returns a list of tasks that satisfy the option given. + */ + String listTasks(Prefix option); } diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 5ef0280e0a2..4673374a5c7 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -11,6 +11,7 @@ import javafx.collections.transformation.FilteredList; import manageezpz.commons.core.GuiSettings; import manageezpz.commons.core.LogsCenter; +import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; import manageezpz.model.task.Deadline; import manageezpz.model.task.Event; @@ -232,4 +233,20 @@ public boolean hasTask(Task task) { requireNonNull(task); return addressBook.hasTask(task); } + + /** + * {@inheritDoc} + */ + @Override + public String listTasks() { + return addressBook.listTask(); + } + + /** + * {@inheritDoc} + */ + @Override + public String listTasks(Prefix option) { + return addressBook.listTask(option); + } } diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 5ae3d6ca6a1..cac315bbc2d 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -28,6 +28,15 @@ public LocalDate getParsedDate() { return parsedDate; } + /** + * Gets today's date. + * @return Today's date + */ + public static Date getTodayDate() { + LocalDate todayDate = LocalDate.now(); + return new Date(todayDate.toString()); + } + public String format(DateTimeFormatter dtf) { return getParsedDate().format(dtf); } diff --git a/src/test/java/manageezpz/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java index 3a6a46a47b0..c4e448908be 100644 --- a/src/test/java/manageezpz/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -18,7 +18,6 @@ import manageezpz.logic.commands.AddEmployeeCommand; import manageezpz.logic.commands.CommandResult; -import manageezpz.logic.commands.ListCommand; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.Model; @@ -61,11 +60,12 @@ public void execute_commandExecutionError_throwsCommandException() { assertCommandException(deleteCommand, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - @Test + // TODO: Create test for this after GUI for tasks settled. + /*@Test public void execute_validCommand_success() throws Exception { String listCommand = ListCommand.COMMAND_WORD; - assertCommandSuccess(listCommand, ListCommand.MESSAGE_SUCCESS, model); - } + assertCommandSuccess(listCommand, ListCommand.MESSAGE_ALL_SUCCESS, model); + }*/ @Test public void execute_storageThrowsIoException_throwsCommandException() { diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index a8a7b4246ef..a11617d1e9f 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -16,6 +16,7 @@ import javafx.collections.ObservableList; import manageezpz.commons.core.GuiSettings; import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.Prefix; import manageezpz.model.AddressBook; import manageezpz.model.Model; import manageezpz.model.ReadOnlyAddressBook; @@ -203,6 +204,16 @@ public boolean hasTask(Task task) { throw new AssertionError("This method should not be called."); } + @Override + public String listTasks() { + return null; + } + + @Override + public String listTasks(Prefix option) { + return null; + } + @Override public void deleteTask(Task task) { throw new AssertionError("This method should not be called."); diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 9d92aa74b55..32227e79881 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -1,11 +1,9 @@ package manageezpz.logic.commands; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/manageezpz/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListCommandTest.java index 70376e858f1..a7d314ea981 100644 --- a/src/test/java/manageezpz/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListCommandTest.java @@ -1,18 +1,8 @@ package manageezpz.logic.commands; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; -import manageezpz.model.ModelManager; -import manageezpz.model.UserPrefs; +// TODO: Create test after GUI for task settled. /** * Contains integration tests (interaction with the Model) and unit tests for ListCommand. */ @@ -21,7 +11,7 @@ public class ListCommandTest { private Model model; private Model expectedModel; - @BeforeEach + /*@BeforeEach public void setUp() { model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); @@ -29,12 +19,12 @@ public void setUp() { @Test public void execute_listIsNotFiltered_showsSameList() { - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); + assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_ALL_SUCCESS, expectedModel); } @Test public void execute_listIsFiltered_showsEverything() { showPersonAtIndex(model, INDEX_FIRST_PERSON); - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); - } + assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_ALL_SUCCESS, expectedModel); + }*/ } diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 49c0c3834db..17dc43b244a 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -85,7 +85,6 @@ public void parseCommand_help() 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); } @Test diff --git a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java index 7d876c7d071..8d870371acf 100644 --- a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java @@ -2,9 +2,13 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.commands.CommandTestUtil.INVALID_LIST_MULTIPLE_ARGUMENTS; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import org.junit.jupiter.api.Test; @@ -13,8 +17,8 @@ class ListCommandParserTest { private ListCommandParser parser = new ListCommandParser(); - private String expectedInvalidArgumentMessage - = String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS); + private String expectedInvalidArgumentMessage = + String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS); @Test void listCommandParser_multipleArguments_parseExceptionThrown() { @@ -28,6 +32,21 @@ void listCommandParser_invalidArgument_parseExceptionThrown() { @Test void listCommandParser_argumentWithValues_parseExceptionThrown() { - assertParseFailure(parser, PREFIX_EVENT + "Some Value", expectedInvalidArgumentMessage); + assertParseFailure(parser, " " + PREFIX_EVENT + "Some Value", expectedInvalidArgumentMessage); } -} \ No newline at end of file + + @Test + void listCommandParser_validArguments_listCommand() { + ListCommand allListCommand = new ListCommand(); + ListCommand todoListCommand = new ListCommand(PREFIX_TODO); + ListCommand deadlineListCommand = new ListCommand(PREFIX_DEADLINE); + ListCommand eventListCommand = new ListCommand(PREFIX_EVENT); + ListCommand todayListCommand = new ListCommand(PREFIX_TODAY); + + assertParseSuccess(parser, "", allListCommand); + assertParseSuccess(parser, " " + PREFIX_TODO.toString(), todoListCommand); + assertParseSuccess(parser, " " + PREFIX_DEADLINE.toString(), deadlineListCommand); + assertParseSuccess(parser, " " + PREFIX_EVENT.toString(), eventListCommand); + assertParseSuccess(parser, " " + PREFIX_TODAY.toString(), todayListCommand); + } +} From c1b32f6a01565c84c6b761bb001d62e7ea5331ff Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 00:42:09 +0800 Subject: [PATCH 143/507] Remove model for person --- src/main/java/manageezpz/logic/commands/ListCommand.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 2378ce2a1dc..60cb7e369dc 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -5,7 +5,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; -import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; @@ -65,7 +64,6 @@ public CommandResult execute(Model model) { list = model.listTasks(option); } String result = String.join("\n", messageSuccess, list); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); return new CommandResult(result); } From d5348c095c7adb36ce445bc44cace7d76b369f5a Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 01:12:19 +0800 Subject: [PATCH 144/507] Address if empty task list --- src/main/java/manageezpz/model/AddressBook.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 9f9b250dca4..08579387976 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -57,11 +57,13 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { */ public String listTask() { Iterator taskIterators = tasks.iterator(); - String result = taskIterators.next().toString(); + String result = ""; while (taskIterators.hasNext()) { - result = String.join("\n", result, taskIterators.next().toString()); + Task task = taskIterators.next(); + result = String.join("\n", result, task.toString()); } + return result; } From 3fcdec5b14f4f6fda13568fa81f32e0ce6d85ce4 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 01:45:14 +0800 Subject: [PATCH 145/507] Fix list today command --- src/main/java/manageezpz/model/AddressBook.java | 13 ++++++++++++- src/main/java/manageezpz/model/task/Date.java | 12 ++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 08579387976..4201bceca50 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -139,7 +139,8 @@ private String listToday() { while (taskIterators.hasNext()) { Task task = taskIterators.next(); - if (task instanceof Deadline || task instanceof Event) { + Date date = getDateFromTask(task); + if (date != null && date.equals(todayDate)) { result = String.join("\n", result, task.toString()); } } @@ -147,6 +148,16 @@ private String listToday() { return result; } + private Date getDateFromTask(Task task) { + if (task instanceof Deadline) { + return ((Deadline) task).getDate(); + } else if (task instanceof Event) { + return ((Event) task).getDate(); + } else { + return null; + } + } + //// list overwrite operations /** diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index f0f46b2c01a..b17b3a98c6c 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -59,4 +59,16 @@ public static boolean validCheckDate(String date) { public String format(DateTimeFormatter dtf) { return getParsedDate().format(dtf); } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if (obj instanceof Date) { + return date.equals(((Date) obj).date); + } else { + return false; + } + } } From e3fe0fbe79039b103d95e42fbca2ad34bb52d01a Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 11:27:45 +0800 Subject: [PATCH 146/507] Modify Find Command Parser --- .../logic/commands/FindCommand.java | 13 +++-- .../manageezpz/logic/parser/CliSyntax.java | 2 + .../logic/parser/FindCommandParser.java | 37 +++++++++++--- .../task/TaskContainsKeywordsPredicate.java | 10 ++++ .../logic/parser/FindCommandParserTest.java | 51 +++++++++++++------ 5 files changed, 89 insertions(+), 24 deletions(-) create mode 100644 src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java diff --git a/src/main/java/manageezpz/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java index 65243391647..c72cc9fdee5 100644 --- a/src/main/java/manageezpz/logic/commands/FindCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindCommand.java @@ -5,6 +5,7 @@ import manageezpz.commons.core.Messages; import manageezpz.model.Model; import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.task.Date; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. @@ -19,18 +20,24 @@ public class FindCommand extends Command { + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" + "Example: " + COMMAND_WORD + " alice bob charlie"; - private final NameContainsKeywordsPredicate predicate; + private NameContainsKeywordsPredicate predicate; + private Date date; public FindCommand(NameContainsKeywordsPredicate predicate) { this.predicate = predicate; } + public FindCommand(Date date) { + this.date = date; + } + @Override public CommandResult execute(Model model) { - requireNonNull(model); + return new CommandResult("Find Successful"); + /*requireNonNull(model); model.updateFilteredPersonList(predicate); return new CommandResult( - String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); + String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size()));*/ } @Override diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index 369282daa92..df5185395f8 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -16,4 +16,6 @@ public class CliSyntax { public static final Prefix PREFIX_TODAY = new Prefix("today/"); public static final Prefix PREFIX_DATETIME = new Prefix("by/"); public static final Prefix PREFIX_TIME = new Prefix("at/"); + public static final Prefix PREFIX_TASK = new Prefix("task/"); + public static final Prefix PREFIX_DATE = new Prefix("date/"); } diff --git a/src/main/java/manageezpz/logic/parser/FindCommandParser.java b/src/main/java/manageezpz/logic/parser/FindCommandParser.java index 02986d091af..3e5cb892cbf 100644 --- a/src/main/java/manageezpz/logic/parser/FindCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindCommandParser.java @@ -1,17 +1,23 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import java.util.Arrays; +import java.util.List; import manageezpz.logic.commands.FindCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.task.Date; /** * Parses input arguments and creates a new FindCommand object */ public class FindCommandParser implements Parser { + private static final Prefix[] VALID_PREFIXES = {PREFIX_DESCRIPTION, PREFIX_DATE, PREFIX_TASK}; /** * Parses the given {@code String} of arguments in the context of the FindCommand @@ -19,15 +25,34 @@ public class FindCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public FindCommand parse(String args) throws ParseException { - String trimmedArgs = args.trim(); - if (trimmedArgs.isEmpty()) { + ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, VALID_PREFIXES); + + if (argMultiMap.isPrefixExist(PREFIX_TASK) && argMultiMap.isPrefixExist(PREFIX_DATE)) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + } else if (argMultiMap.isPrefixExist(PREFIX_TASK)) { + if (!argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + } + String trimmedArgs = argMultiMap.getValue(PREFIX_DESCRIPTION).get().trim(); + if (trimmedArgs.isEmpty()) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + } + String[] taskKeywords = trimmedArgs.split("\\s+"); + return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(taskKeywords))); + } else if (argMultiMap.isPrefixExist(PREFIX_DATE)) { + String dateString = argMultiMap.getValue(PREFIX_DATE).get(); + if (!Date.isValidDate(dateString)) { + throw new ParseException(Date.MESSAGE_CONSTRAINTS); + } + Date date = new Date(dateString); + return new FindCommand(date); + } else { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } - - String[] nameKeywords = trimmedArgs.split("\\s+"); - - return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(nameKeywords))); } } diff --git a/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java b/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java new file mode 100644 index 00000000000..49d4aee5bff --- /dev/null +++ b/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java @@ -0,0 +1,10 @@ +package manageezpz.model.task; + +import java.util.function.Predicate; + +public class TaskContainsKeywordsPredicate implements Predicate { + @Override + public boolean test(Task task) { + return false; + } +} diff --git a/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java index 6c252d77a60..3ec49e89000 100644 --- a/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java @@ -1,34 +1,55 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; - -import java.util.Arrays; import org.junit.jupiter.api.Test; import manageezpz.logic.commands.FindCommand; -import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.task.Date; public class FindCommandParserTest { - + private static String EXPECTED_ERROR_MESSAGE = + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE); private FindCommandParser parser = new FindCommandParser(); + + @Test + void findParser_emptyArguments_parserExceptionThrown() { + assertParseFailure(parser, "", EXPECTED_ERROR_MESSAGE); + } + + @Test + void findParser_invalidArguments_parserExceptionThrown() { + assertParseFailure(parser, " /someOtherArgument", EXPECTED_ERROR_MESSAGE); + } + @Test - public void parse_emptyArg_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + void findParser_noDesc_parserExceptionThrown() { + String userInput = String.join("", " ", PREFIX_TASK.toString()); + assertParseFailure(parser, userInput, EXPECTED_ERROR_MESSAGE); } @Test - public void parse_validArgs_returnsFindCommand() { - // no leading and trailing whitespaces - FindCommand expectedFindCommand = - new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList("Alice", "Bob"))); - assertParseSuccess(parser, "Alice Bob", expectedFindCommand); - - // multiple whitespaces between keywords - assertParseSuccess(parser, " \n Alice \n \t Bob \t", expectedFindCommand); + void findParser_emptyDesc_parserExceptionThrown() { + String userInput = + String.join(" ", "", PREFIX_TASK.toString(), " ", PREFIX_DESCRIPTION.toString()); + assertParseFailure(parser, userInput, EXPECTED_ERROR_MESSAGE); } + @Test + void findParser_emptyDate_parserExceptionThrown() { + String userInput = String.join(" ", "", PREFIX_DATE.toString()); + assertParseFailure(parser, userInput, Date.MESSAGE_CONSTRAINTS); + } + + @Test + void findParser_invalidDate_parserExceptionThrown() { + String userInput = + String.join(" ", "", PREFIX_DATE.toString(), "second january two zero two two"); + assertParseFailure(parser, userInput, Date.MESSAGE_CONSTRAINTS); + } } From 3cbc4cbe0d1dbecd47d01081ce198761f1349a29 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 16:14:35 +0800 Subject: [PATCH 147/507] Modify find command --- .../manageezpz/commons/core/Messages.java | 1 + .../logic/commands/FindCommand.java | 46 +++++++++------ .../logic/parser/FindCommandParser.java | 57 ++++++++++++------- .../java/manageezpz/model/ModelManager.java | 3 + .../model/task/TaskContainsDatePredicate.java | 56 ++++++++++++++++++ .../task/TaskContainsKeywordsPredicate.java | 32 ++++++++++- .../logic/commands/FindCommandTest.java | 15 +---- .../logic/parser/AddressBookParserTest.java | 10 +++- .../logic/parser/FindCommandParserTest.java | 32 ++++++++++- 9 files changed, 200 insertions(+), 52 deletions(-) create mode 100644 src/main/java/manageezpz/model/task/TaskContainsDatePredicate.java diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index e3ae20103d4..2130239f2ca 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -10,5 +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_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; + public static final String MESSAGE_TASK_LISTED_OVERVIEW = "%1$d tasks listed!"; } diff --git a/src/main/java/manageezpz/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java index c72cc9fdee5..45e6ab57785 100644 --- a/src/main/java/manageezpz/logic/commands/FindCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindCommand.java @@ -2,10 +2,12 @@ import static java.util.Objects.requireNonNull; +import java.util.function.Predicate; + +import javafx.collections.ObservableList; import manageezpz.commons.core.Messages; import manageezpz.model.Model; -import manageezpz.model.person.NameContainsKeywordsPredicate; -import manageezpz.model.task.Date; +import manageezpz.model.task.Task; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. @@ -15,35 +17,47 @@ public class FindCommand extends Command { public static final String COMMAND_WORD = "find"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all persons whose names contain any of " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all tasks whose description contain any of " + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" - + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" - + "Example: " + COMMAND_WORD + " alice bob charlie"; + + "Parameters: task/ desc/ KEYWORD [MORE_KEYWORDS]..." + + " or date/ YYYY-mm-dd\n" + + "Example: " + COMMAND_WORD + " task/ desc/ Play Genshin Impact" + + "or " + COMMAND_WORD + " date/ 2022-01-01"; - private NameContainsKeywordsPredicate predicate; - private Date date; + private Predicate predicate; - public FindCommand(NameContainsKeywordsPredicate predicate) { + public FindCommand(Predicate predicate) { this.predicate = predicate; } - public FindCommand(Date date) { - this.date = date; - } - + /** + * {@inheritDoc} + */ @Override public CommandResult execute(Model model) { - return new CommandResult("Find Successful"); - /*requireNonNull(model); - model.updateFilteredPersonList(predicate); + requireNonNull(model); + model.updateFilteredTaskList(predicate); + String result = printList(model.getFilteredTaskList()); return new CommandResult( - String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size()));*/ + String.format(Messages.MESSAGE_TASK_LISTED_OVERVIEW, model.getFilteredTaskList().size()) + + result); } + /** + * {@inheritDoc} + */ @Override public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof FindCommand // instanceof handles nulls && predicate.equals(((FindCommand) other).predicate)); // state check } + + private String printList(ObservableList filteredTaskList) { + String result = ""; + for (Task task : filteredTaskList) { + result = String.join("\n", result, task.toString()); + } + return result; + } } diff --git a/src/main/java/manageezpz/logic/parser/FindCommandParser.java b/src/main/java/manageezpz/logic/parser/FindCommandParser.java index 3e5cb892cbf..eaabc22fff0 100644 --- a/src/main/java/manageezpz/logic/parser/FindCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindCommandParser.java @@ -6,12 +6,12 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import java.util.Arrays; -import java.util.List; import manageezpz.logic.commands.FindCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.NameContainsKeywordsPredicate; import manageezpz.model.task.Date; +import manageezpz.model.task.TaskContainsDatePredicate; +import manageezpz.model.task.TaskContainsKeywordsPredicate; /** * Parses input arguments and creates a new FindCommand object @@ -31,28 +31,47 @@ public FindCommand parse(String args) throws ParseException { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } else if (argMultiMap.isPrefixExist(PREFIX_TASK)) { - if (!argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); - } - String trimmedArgs = argMultiMap.getValue(PREFIX_DESCRIPTION).get().trim(); - if (trimmedArgs.isEmpty()) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); - } - String[] taskKeywords = trimmedArgs.split("\\s+"); - return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(taskKeywords))); + return findCommandTask(argMultiMap); } else if (argMultiMap.isPrefixExist(PREFIX_DATE)) { - String dateString = argMultiMap.getValue(PREFIX_DATE).get(); - if (!Date.isValidDate(dateString)) { - throw new ParseException(Date.MESSAGE_CONSTRAINTS); - } - Date date = new Date(dateString); - return new FindCommand(date); + return findCommandDate(argMultiMap); } else { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } } + /** + * Find the tasks based on the given keywords. + * @param argMultiMap Argument-Value map + * @return The FindCommand which will show all tasks with the keywords. + * @throws ParseException When the description parameter is empty or there is no description parameter. + */ + private FindCommand findCommandTask(ArgumentMultimap argMultiMap) throws ParseException { + if (!argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + } + String trimmedArgs = argMultiMap.getValue(PREFIX_DESCRIPTION).get().trim(); + if (trimmedArgs.isEmpty()) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + } + String[] taskKeywords = trimmedArgs.split("\\s+"); + return new FindCommand(new TaskContainsKeywordsPredicate(Arrays.asList(taskKeywords))); + } + + /** + * Finds the tasks based on date. + * @param argMultiMap The argument-value pair that contains the date. + * @return The find command to find all tasks with date. + * @throws ParseException When the data argument is empty or invalid date. + */ + private FindCommand findCommandDate(ArgumentMultimap argMultiMap) throws ParseException { + String dateString = argMultiMap.getValue(PREFIX_DATE).get(); + if (!Date.isValidDate(dateString)) { + throw new ParseException(Date.MESSAGE_CONSTRAINTS); + } + Date date = new Date(dateString); + return new FindCommand(new TaskContainsDatePredicate(date)); + } } diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 4673374a5c7..7bbb66a4622 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -199,6 +199,9 @@ public void findTask(Task task) { addressBook.findTask(task); } + /** + * {@inheritDoc} + */ @Override public void updateFilteredTaskList(Predicate predicate) { requireNonNull(predicate); diff --git a/src/main/java/manageezpz/model/task/TaskContainsDatePredicate.java b/src/main/java/manageezpz/model/task/TaskContainsDatePredicate.java new file mode 100644 index 00000000000..15ccb85b60f --- /dev/null +++ b/src/main/java/manageezpz/model/task/TaskContainsDatePredicate.java @@ -0,0 +1,56 @@ +package manageezpz.model.task; + +import java.util.function.Predicate; + +/** + * A predicate to filter tasks with the given date. + */ +public class TaskContainsDatePredicate implements Predicate { + private final Date date; + + /** + * Constructor for TaskContainsDatePredicate. + * @param date The date as the search term + */ + public TaskContainsDatePredicate(Date date) { + this.date = date; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean test(Task task) { + if (task instanceof Deadline || task instanceof Event) { + Date taskDate = getDateFromTask(task); + return taskDate.equals(date); + } else { + return false; + } + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + return obj == this // short circuit if same object + || (obj instanceof TaskContainsDatePredicate // instanceof handles nulls + && date.equals(((TaskContainsDatePredicate) obj).date)); // state check + } + + /** + * Gets the date from either Deadline or Event. + * @param task Either Deadline or Event + * @return The Date of the task + */ + private Date getDateFromTask(Task task) { + if (task instanceof Deadline) { + return ((Deadline) task).getDate(); + } else if (task instanceof Event) { + return ((Event) task).getDate(); + } else { + return null; + } + } +} diff --git a/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java b/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java index 49d4aee5bff..5a8a78e92a9 100644 --- a/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java +++ b/src/main/java/manageezpz/model/task/TaskContainsKeywordsPredicate.java @@ -1,10 +1,40 @@ package manageezpz.model.task; +import java.util.List; import java.util.function.Predicate; +import manageezpz.commons.util.StringUtil; + +/** + * Finds tasks with the given keywords. The keywords are case-insensitive. + */ public class TaskContainsKeywordsPredicate implements Predicate { + private final List keywords; + + /** + * The constructor for the TaskContainsKeywordsPredicate. + * @param keywords The keywords as the search term. + */ + public TaskContainsKeywordsPredicate(List keywords) { + this.keywords = keywords; + } + + /** + * {@inheritDoc} + */ @Override public boolean test(Task task) { - return false; + return keywords.stream() + .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(task.getDescription().toString(), keyword)); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof TaskContainsKeywordsPredicate // instanceof handles nulls + && keywords.equals(((TaskContainsKeywordsPredicate) other).keywords)); // state check } } diff --git a/src/test/java/manageezpz/logic/commands/FindCommandTest.java b/src/test/java/manageezpz/logic/commands/FindCommandTest.java index 151d05322df..9f9ae9be4a0 100644 --- a/src/test/java/manageezpz/logic/commands/FindCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindCommandTest.java @@ -1,25 +1,15 @@ package manageezpz.logic.commands; -import static manageezpz.commons.core.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.testutil.TypicalPersons.CARL; -import static manageezpz.testutil.TypicalPersons.ELLE; -import static manageezpz.testutil.TypicalPersons.FIONA; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; -import java.util.Collections; - -import org.junit.jupiter.api.Test; import manageezpz.model.Model; import manageezpz.model.ModelManager; import manageezpz.model.UserPrefs; import manageezpz.model.person.NameContainsKeywordsPredicate; +// TODO: Do test for find command after GUI settled /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ @@ -27,6 +17,7 @@ public class FindCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); private Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + /* @Test public void equals() { NameContainsKeywordsPredicate firstPredicate = @@ -72,7 +63,7 @@ public void execute_multipleKeywords_multiplePersonsFound() { expectedModel.updateFilteredPersonList(predicate); assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(Arrays.asList(CARL, ELLE, FIONA), model.getFilteredPersonList()); - } + }*/ /** * Parses {@code userInput} into a {@code NameContainsKeywordsPredicate}. diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 48d9c2c1edb..a22ce591ae2 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -2,6 +2,8 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -23,8 +25,8 @@ import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; import manageezpz.logic.parser.exceptions.ParseException; -import manageezpz.model.person.NameContainsKeywordsPredicate; import manageezpz.model.person.Person; +import manageezpz.model.task.TaskContainsKeywordsPredicate; import manageezpz.testutil.EditPersonDescriptorBuilder; import manageezpz.testutil.PersonBuilder; import manageezpz.testutil.PersonUtil; @@ -72,8 +74,10 @@ public void parseCommand_exit() throws Exception { 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(" "))); - assertEquals(new FindCommand(new NameContainsKeywordsPredicate(keywords)), command); + FindCommand.COMMAND_WORD + + " " + PREFIX_TASK.toString() + " " + PREFIX_DESCRIPTION + + keywords.stream().collect(Collectors.joining(" "))); + assertEquals(new FindCommand(new TaskContainsKeywordsPredicate(keywords)), command); } @Test diff --git a/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java index 3ec49e89000..d889c66e161 100644 --- a/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindCommandParserTest.java @@ -5,14 +5,20 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; + +import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Test; import manageezpz.logic.commands.FindCommand; import manageezpz.model.task.Date; +import manageezpz.model.task.TaskContainsDatePredicate; +import manageezpz.model.task.TaskContainsKeywordsPredicate; public class FindCommandParserTest { - private static String EXPECTED_ERROR_MESSAGE = + private static final String EXPECTED_ERROR_MESSAGE = String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE); private FindCommandParser parser = new FindCommandParser(); @@ -40,6 +46,21 @@ void findParser_emptyDesc_parserExceptionThrown() { assertParseFailure(parser, userInput, EXPECTED_ERROR_MESSAGE); } + @Test + void findParser_taskWithValidDesc_findCommandWithKeywords() { + List sampleKeywords = Arrays.asList(new String[]{"Genshin", "Ganyu"}); + TaskContainsKeywordsPredicate expectedPredicate = new TaskContainsKeywordsPredicate(sampleKeywords); + String userInput = + String.join(" ", + "", + PREFIX_TASK.toString(), + PREFIX_DESCRIPTION.toString(), + sampleKeywords.get(0), + sampleKeywords.get(1) + ); + assertParseSuccess(parser, userInput, new FindCommand(expectedPredicate)); + } + @Test void findParser_emptyDate_parserExceptionThrown() { String userInput = String.join(" ", "", PREFIX_DATE.toString()); @@ -52,4 +73,13 @@ void findParser_invalidDate_parserExceptionThrown() { String.join(" ", "", PREFIX_DATE.toString(), "second january two zero two two"); assertParseFailure(parser, userInput, Date.MESSAGE_CONSTRAINTS); } + + @Test + void findParser_validDate_findCommandWithDate() { + Date expectedDate = new Date("2022-01-01"); + String userInput = + String.join(" ", "", PREFIX_DATE.toString(), expectedDate.getDate().toString()); + TaskContainsDatePredicate expectedPredicate = new TaskContainsDatePredicate(expectedDate); + assertParseSuccess(parser, userInput, new FindCommand(expectedPredicate)); + } } From 596c71167f273fdf91c41c07fed0443ba5c77d21 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 17:11:45 +0800 Subject: [PATCH 148/507] Fix find command message --- src/main/java/manageezpz/logic/commands/FindCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java index 45e6ab57785..e0bfddbd5b9 100644 --- a/src/main/java/manageezpz/logic/commands/FindCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindCommand.java @@ -21,8 +21,8 @@ public class FindCommand extends Command { + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" + "Parameters: task/ desc/ KEYWORD [MORE_KEYWORDS]..." + " or date/ YYYY-mm-dd\n" - + "Example: " + COMMAND_WORD + " task/ desc/ Play Genshin Impact" - + "or " + COMMAND_WORD + " date/ 2022-01-01"; + + "Example: " + COMMAND_WORD + " \"task/ desc/ Play Genshin Impact\"" + + " or " + COMMAND_WORD + " \"date/ 2022-01-01\""; private Predicate predicate; From b6226d42595f1b73e8bc6c4fec882e0adfd4d463 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Wed, 16 Mar 2022 17:38:26 +0800 Subject: [PATCH 149/507] Updating Use-Cases based on completed v1.2 --- docs/DeveloperGuide.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 59ab22e0adc..e30234ca405 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -304,16 +304,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. User uses one of the three `addTask` commands: - * 3a1. User uses `addTask /todo` command +* 3a. User uses one of the three `add` commands: + * 3a1. User uses `addTodo` command Use case resumes from step 4. - * 3a2. User uses `addTask /event` command + * 3a2. User uses `addEvent` command Use case resumes from step 4. - * 3a3. User uses `addTask /deadline` command + * 3a3. User uses `addDeadline` command Use case resumes from step 4. @@ -354,30 +354,30 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User enters the command to list Tasks. -4. ManageEZPZ displays the Tasks according. +4. ManageEZPZ displays the Tasks accordingly. Use case ends. **Extensions** * 3a. User uses one of the five `list` Task commands: - * 3a1. User uses `list /all` command + * 3a1. User uses `list` command Use case resumes from step 4. - * 3a2. User uses `list /todo` command + * 3a2. User uses `list todo/` command Use case resumes from step 4. - * 3a3. User uses `list /deadline` command + * 3a3. User uses `list deadline/` command Use case resumes from step 4. - * 3a2. User uses `list /event` command + * 3a2. User uses `list event/` command Use case resumes from step 4. - * 3a3. User uses `list /today` command + * 3a3. User uses `list today/` command Use case resumes from step 4. @@ -453,11 +453,11 @@ Preconditions: User is currently using ManageEZPZ. * 3a. User uses one of the two Find Task commands: - * 3a1. User uses `find /task TASK_DESCRIPTION` command + * 3a1. User uses `find task/ desc/TASK_DESCRIPTION` command Use case resumes from step 4. - * 3a2. User uses `find /date DD-MM-YYYY` command + * 3a2. User uses `find date/YYYY-MM-DD` command Use case resumes from step 4. @@ -492,13 +492,13 @@ Preconditions: User is currently using ManageEZPZ. **** -**Use Case 8 - Clear all Tasks** +**Use Case 8 - Deleting all Entries in ManageEZPZ** **MSS** -1. User enters the command to clear all Tasks +1. User enters the command to clear ManageEZPZ. 2. ManageEZPZ clears all Tasks & confirms with a successful -message that all Task are cleared. +message that ManageEZPZ entries are cleared. Use case ends. From 18e5f84eeea20e71e18c6356d7dc01c22d121206 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 17:40:54 +0800 Subject: [PATCH 150/507] Update UG for V1.2 --- docs/UserGuide.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a0306fe0a0a..3fa0dab0d1d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -33,7 +33,6 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`addTodo desc/read book`** : Adds a todo task with a description of `read book` to the Task list. * **`exit`** : Exits the app. - -------------------------------------------------------------------------------------------------------------------- ## Features @@ -58,6 +57,8 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * Task related parameters must be in sequence as shown in the instruction. +* Mark and unmark is interger based (cannot over 2^32) +
### Viewing help : `help` @@ -139,6 +140,11 @@ Examples: Find tasks based on the task description or date in the format of (DD-MM-YYYY). +
:bulb: **Take Note:** +Find works based on keywords, as such find would return all matches of the +and the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) +
+ Format: * `find task/ desc/TASK_DESCRIPTION` * `find date/DD-MM-YYYY` From da0566dd74c98756eb0d5c6e76a6a83a527e0966 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 17:45:05 +0800 Subject: [PATCH 151/507] Add index --- .../java/manageezpz/model/AddressBook.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 4201bceca50..8baa958985c 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -58,10 +58,14 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { public String listTask() { Iterator taskIterators = tasks.iterator(); String result = ""; + int index = 1; while (taskIterators.hasNext()) { Task task = taskIterators.next(); - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } return result; @@ -93,11 +97,15 @@ public String listTask(Prefix option) { private String listTodo() { Iterator taskIterators = tasks.iterator(); String result = ""; + int index = 1; while (taskIterators.hasNext()) { Task task = taskIterators.next(); if (task instanceof Todo) { - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } } @@ -107,11 +115,15 @@ private String listTodo() { private String listDeadline() { Iterator taskIterators = tasks.iterator(); String result = ""; + int index = 1; while (taskIterators.hasNext()) { Task task = taskIterators.next(); if (task instanceof Deadline) { - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } } @@ -121,11 +133,15 @@ private String listDeadline() { private String listEvent() { Iterator taskIterators = tasks.iterator(); String result = ""; + int index = 1; while (taskIterators.hasNext()) { Task task = taskIterators.next(); if (task instanceof Event) { - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } } @@ -136,12 +152,16 @@ private String listToday() { Iterator taskIterators = tasks.iterator(); Date todayDate = Date.getTodayDate(); String result = ""; + int index = 1; while (taskIterators.hasNext()) { Task task = taskIterators.next(); Date date = getDateFromTask(task); if (date != null && date.equals(todayDate)) { - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } } From c1ca7bfa638b872a55e6ce97a949c868748188a6 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 16 Mar 2022 17:48:25 +0800 Subject: [PATCH 152/507] Add index --- src/main/java/manageezpz/logic/commands/FindCommand.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java index e0bfddbd5b9..8f728b54390 100644 --- a/src/main/java/manageezpz/logic/commands/FindCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindCommand.java @@ -55,8 +55,12 @@ public boolean equals(Object other) { private String printList(ObservableList filteredTaskList) { String result = ""; + int index = 1; for (Task task : filteredTaskList) { - result = String.join("\n", result, task.toString()); + String curIndex = String.join("", String.valueOf(index), "."); + String curTask = String.join(" ", curIndex, task.toString()); + result = String.join("\n", result, curTask); + index++; } return result; } From fa814bc490e71be7c8f82de52ec5215bd07b4aa9 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 18:47:01 +0800 Subject: [PATCH 153/507] Update UG --- docs/UserGuide.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3fa0dab0d1d..a6ce024ff1f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -57,7 +57,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * Task related parameters must be in sequence as shown in the instruction. -* Mark and unmark is interger based (cannot over 2^32) +* All indexes are int based, as such the maximum value is 2147483647. (232)
@@ -140,11 +140,6 @@ Examples: Find tasks based on the task description or date in the format of (DD-MM-YYYY). -
:bulb: **Take Note:** -Find works based on keywords, as such find would return all matches of the -and the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) -
- Format: * `find task/ desc/TASK_DESCRIPTION` * `find date/DD-MM-YYYY` @@ -153,6 +148,11 @@ Examples: * `find task/ desc/homework` * `find date/02-02-2022` +
:bulb: **Take Note:** +Find works based on keywords, as such find would return all matches of the words found in description. +And the DATE must be in this format: DD-MM-YYYY HHmm (24 hr format) +
+ ### Clearing all entries : `clear` Clears all entries from the Task list. @@ -198,6 +198,6 @@ Action | Format, Examples **Add Task** | `TASK_TYPE desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book`
`addDeadline desc/Use up resin /by 2022-15-03 0400` **Clear** | `clear` **Delete** | `delete INDEX`
e.g., `delete 3` -**Find** | `find task/TASK_DESCRIPTION`
e.g., `find task/homework` +**Find** | `find task/ desc/TASK_DESCRIPTION`
e.g., `find task/ desc/homework` **List** | `list`
e.g. `list all/` or `list event/` or `list deadline/` **Help** | `help` From 2e8a43e6ece2e1380f6c254b075d7383aa134bef Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 19:26:25 +0800 Subject: [PATCH 154/507] Update descripton class, to validate only empty descriptions. --- src/main/java/manageezpz/model/task/Description.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index b35958ace37..eff6cb7e44d 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -4,11 +4,7 @@ import static manageezpz.commons.util.AppUtil.checkArgument; public class Description { - public static final String MESSAGE_CONSTRAINTS = - "Description should only contain alphanumeric characters and spaces. It should not contain any symbols" - + "and it should not be blank"; - - public static final String VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; + public static final String MESSAGE_CONSTRAINTS = "Description should should not be blank"; public final String description; @@ -27,7 +23,7 @@ public Description(String description) { * Returns true if a given string is a valid description. */ public static boolean isValidDescription(String test) { - return test.matches(VALIDATION_REGEX); + return !(test.isEmpty()); } @Override From dd8aec5955f4989b1679eac419c7ad98186c76fc Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 19:28:23 +0800 Subject: [PATCH 155/507] Change message constrain for Description class. --- src/main/java/manageezpz/model/task/Description.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index eff6cb7e44d..00f8d20c21a 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -4,7 +4,7 @@ import static manageezpz.commons.util.AppUtil.checkArgument; public class Description { - public static final String MESSAGE_CONSTRAINTS = "Description should should not be blank"; + public static final String MESSAGE_CONSTRAINTS = "Description should not be blank"; public final String description; From 77ff2abc5c4c2601a52417b526553c0d7ff99e10 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 19:34:02 +0800 Subject: [PATCH 156/507] Update test files. --- src/main/java/manageezpz/model/task/Description.java | 2 +- src/test/java/manageezpz/model/task/DescriptionTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index 00f8d20c21a..61167d0c99c 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -23,7 +23,7 @@ public Description(String description) { * Returns true if a given string is a valid description. */ public static boolean isValidDescription(String test) { - return !(test.isEmpty()); + return !(test.trim().isEmpty()); } @Override diff --git a/src/test/java/manageezpz/model/task/DescriptionTest.java b/src/test/java/manageezpz/model/task/DescriptionTest.java index f46de1d54ac..b5fef7e6d7c 100644 --- a/src/test/java/manageezpz/model/task/DescriptionTest.java +++ b/src/test/java/manageezpz/model/task/DescriptionTest.java @@ -27,8 +27,6 @@ public void isValidDescription() { // invalid description assertFalse(Description.isValidDescription("")); // empty string assertFalse(Description.isValidDescription(" ")); // spaces only - assertFalse(Description.isValidDescription("^")); // only non-alphanumeric characters - assertFalse(Description.isValidDescription("peter*")); // contains non-alphanumeric characters // valid description assertTrue(Description.isValidDescription("read book")); // alphabets only @@ -36,5 +34,7 @@ public void isValidDescription() { assertTrue(Description.isValidDescription("read 3 books")); // alphanumeric characters assertTrue(Description.isValidDescription("Go Run")); // with capital letters assertTrue(Description.isValidDescription("Read 50 books in the library non stop")); // long descriptions + assertTrue(Description.isValidDescription("^!@#$%%^%&^*&(*&(")); // only non-alphanumeric characters + assertTrue(Description.isValidDescription("peter*")); // contains non-alphanumeric characters } } From 6ae21306fba8aa3ea30a22ae3338055680bb3b44 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 16 Mar 2022 22:44:27 +0800 Subject: [PATCH 157/507] Update UG --- docs/UserGuide.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a6ce024ff1f..c992f843954 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -87,11 +87,11 @@ Adds a Task into the Task list. Format: * `addTodo desc/TASK_DESCRIPTION` -* `addTDeadline desc/TASK_DESCRIPTION by/DATE TIME` +* `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` * `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
:bulb: **Take Note:** -For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format) +For deadline and event, the DATE must be in this format: YYYY-MM-DD HHmm (in 24 hr format)
### Listing all Tasks : `list` @@ -100,7 +100,7 @@ View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for Format: -* `list all/` +* `list` * `list todo/` * `list deadline/` * `list event/` @@ -138,11 +138,11 @@ Examples: ### Locating Task by description or Date: `find` -Find tasks based on the task description or date in the format of (DD-MM-YYYY). +Find tasks based on the task description or date in the format of (YYYY-MM-DD). Format: * `find task/ desc/TASK_DESCRIPTION` -* `find date/DD-MM-YYYY` +* `find date/YYYY-MM-DD` Examples: * `find task/ desc/homework` @@ -150,7 +150,7 @@ Examples:
:bulb: **Take Note:** Find works based on keywords, as such find would return all matches of the words found in description. -And the DATE must be in this format: DD-MM-YYYY HHmm (24 hr format) +And the DATE must be in this format: YYYY-MM-DD (24 hr format)
### Clearing all entries : `clear` From 34be04349739cbb9fc595f2cff8a02303b3c00fa Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Thu, 17 Mar 2022 09:58:17 +0800 Subject: [PATCH 158/507] Update UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c992f843954..813472abdb2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -146,7 +146,7 @@ Format: Examples: * `find task/ desc/homework` -* `find date/02-02-2022` +* `find date/2022-02-02`
:bulb: **Take Note:** Find works based on keywords, as such find would return all matches of the words found in description. From afa8e5b93011276ba89a672125b2f5641e19c639 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 20 Mar 2022 10:12:16 +0800 Subject: [PATCH 159/507] Implement tag model for task --- docs/diagrams/ModelClassDiagram.puml | 14 +++++ .../logic/commands/AddTodoTaskCommand.java | 9 ++-- .../manageezpz/logic/parser/ParserUtil.java | 20 +++++++ .../java/manageezpz/model/AddressBook.java | 3 ++ src/main/java/manageezpz/model/Model.java | 7 +++ .../java/manageezpz/model/ModelManager.java | 5 ++ src/main/java/manageezpz/model/task/Task.java | 20 ++++++- .../java/manageezpz/model/tasktag/Tag.java | 54 +++++++++++++++++++ 8 files changed, 127 insertions(+), 5 deletions(-) create mode 100644 src/main/java/manageezpz/model/tasktag/Tag.java diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 4439108973a..5baf1edbb19 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -19,6 +19,11 @@ Class Email Class Name Class Phone Class Tag +Class Task +Class Date +Class Time +Class Description +Class UniqueTaskList } @@ -34,17 +39,26 @@ ModelManager -left-> "1" AddressBook ModelManager -right-> "1" UserPrefs UserPrefs .up.|> ReadOnlyUserPrefs + AddressBook *--> "1" UniquePersonList +AddressBook *--> "1" UniqueTaskList UniquePersonList --> "~* all" Person +UniqueTaskList --> "~* all" Task Person *--> Name Person *--> Phone Person *--> Email Person *--> Address Person *--> "*" Tag +Task *--> Description +Task *--> Time +Task *--> Date + + Name -[hidden]right-> Phone Phone -[hidden]right-> Address Address -[hidden]right-> Email ModelManager -->"~* filtered" Person +ModelManager -->"~* filtered" Task @enduml diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index c12a32ccebe..8019c4ab352 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -6,6 +6,7 @@ import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; public class AddTodoTaskCommand extends Command { public static final String COMMAND_WORD = "addTodo"; @@ -16,15 +17,15 @@ public class AddTodoTaskCommand extends Command { + "\r\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Play Genshin Impact"; - public static final String MESSAGE_SUCCESS = "New Task added: %1$s"; + public static final String MESSAGE_SUCCESS = "New Todo Task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; - private final Task toAdd; + private final Todo toAdd; /** * Creates an AddEmployeeCommand to add the specified {@code Person} */ - public AddTodoTaskCommand(Task task) { + public AddTodoTaskCommand(Todo task) { requireNonNull(task); toAdd = task; } @@ -37,7 +38,7 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_TASK); } - model.addTask(toAdd); + model.addTodo(toAdd); return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); } } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index b44e1acf998..2e4b69df572 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -11,6 +11,11 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Time; +import manageezpz.model.tasktag.Tag; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; /** * Contains utility methods used for parsing strings in the various *Parser classes. @@ -120,4 +125,19 @@ public static Description parseDescription(String description) throws ParseExcep } return new Description(trimmedDescription); } + + /** + * Parses a {@code String tag} into a {@code Tag}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code tag} is invalid. + */ + public static Tag parseTag(String tag) throws ParseException { + requireNonNull(tag); + String trimmedTag = tag.trim(); + if (!Tag.isValidTagName(trimmedTag)) { + throw new ParseException(Tag.MESSAGE_CONSTRAINTS); + } + return new Tag(trimmedTag); + } } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 8baa958985c..ca9920b3b3a 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -282,6 +282,9 @@ public void unmarkTask(Task task) { public void findTask(Task task) { } + public void tagTask(Task task, Person person) { + task.assignedTo(person); + } //// person-level operations diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 5305671606a..f311f27e90c 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -119,6 +119,13 @@ public interface Model { */ void findTask(Task task); + /** + * Tags the given task. + * The task must exist in the task list. + * @param task + */ + void tagTask(Task task, Person person); + /** * Adds the given task. * {@code task} must not already exist in the task list diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 7bbb66a4622..2c0486eb6bd 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -199,6 +199,11 @@ public void findTask(Task task) { addressBook.findTask(task); } + @Override + public void tagTask(Task task, Person person) { + addressBook.tagTask(task, person); + } + /** * {@inheritDoc} */ diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index afe95c1f601..e511c55a202 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,10 +2,14 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; +import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Objects; +import java.util.Set; import manageezpz.model.person.Person; +import manageezpz.model.tasktag.Tag; /** * Represents the Tasks a user could create. A Task object would correspond to a task @@ -20,6 +24,7 @@ public class Task { // Data fields private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) + //private final Set tags = new HashSet<>(); /** * Constructor for the Task class. @@ -39,13 +44,22 @@ public Task(Description taskDescription) { * @return the string representation of the status of the task. */ public String getStatusIcon() { - if (this.isDone) { + if (this.isDone()) { return "X"; } else { return " "; } } + /** + * Returns an immutable tag set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + //public Set getTags() { + // return Collections.unmodifiableSet(tags); + //} + + public void setTaskDone() { this.isDone = true; } @@ -92,6 +106,10 @@ public boolean isSameTask(Task otherTask) { && otherTask.getDescription().equals(getDescription()); } + public void assignedTo(Person person) { + assignees.add(person); + } + @Override public boolean equals(Object other) { if (other == this) { diff --git a/src/main/java/manageezpz/model/tasktag/Tag.java b/src/main/java/manageezpz/model/tasktag/Tag.java new file mode 100644 index 00000000000..e18de2423db --- /dev/null +++ b/src/main/java/manageezpz/model/tasktag/Tag.java @@ -0,0 +1,54 @@ +package manageezpz.model.tasktag; + +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + +/** + * Represents a Tag in the Task List. + * Guarantees: immutable; name is valid as declared in {@link #isValidTagName(String)} + */ +public class Tag { + + public static final String MESSAGE_CONSTRAINTS = "Tags names should be alphanumeric"; + public static final String VALIDATION_REGEX = "\\p{Alnum}+"; + + public final String tagName; + + /** + * Constructs a {@code Tag}. + * + * @param tagName A valid tag name. + */ + public Tag(String tagName) { + requireNonNull(tagName); + checkArgument(isValidTagName(tagName), MESSAGE_CONSTRAINTS); + this.tagName = tagName; + } + + /** + * Returns true if a given string is a valid tag name. + */ + public static boolean isValidTagName(String test) { + return test.matches(VALIDATION_REGEX); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Tag // instanceof handles nulls + && tagName.equals(((Tag) other).tagName)); // state check + } + + @Override + public int hashCode() { + return tagName.hashCode(); + } + + /** + * Format state as text for viewing. + */ + public String toString() { + return '[' + tagName + ']'; + } + +} From 55d7f6ceb280c2a70227ea036ff52d08c86f5aef Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 20 Mar 2022 10:18:55 +0800 Subject: [PATCH 160/507] Update checkstyle and test file for tag model --- .../logic/commands/AddTodoTaskCommand.java | 1 - .../manageezpz/logic/parser/ParserUtil.java | 3 -- src/main/java/manageezpz/model/task/Task.java | 13 ++++----- .../commands/AddEmployeeCommandTest.java | 5 ++++ .../java/manageezpz/model/tag/TagTest.java | 29 +++++++++++++++++++ 5 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 src/test/java/manageezpz/model/tag/TagTest.java diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index 8019c4ab352..7dcde0ff972 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -5,7 +5,6 @@ import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; -import manageezpz.model.task.Task; import manageezpz.model.task.Todo; public class AddTodoTaskCommand extends Command { diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 2e4b69df572..29562b976ff 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -13,9 +13,6 @@ import manageezpz.model.task.Time; import manageezpz.model.tasktag.Tag; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; /** * Contains utility methods used for parsing strings in the various *Parser classes. diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index e511c55a202..0c641950942 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,14 +2,10 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; -import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Objects; -import java.util.Set; import manageezpz.model.person.Person; -import manageezpz.model.tasktag.Tag; /** * Represents the Tasks a user could create. A Task object would correspond to a task @@ -55,9 +51,12 @@ public String getStatusIcon() { * Returns an immutable tag set, which throws {@code UnsupportedOperationException} * if modification is attempted. */ - //public Set getTags() { - // return Collections.unmodifiableSet(tags); - //} + /* + public Set getTags() { + return Collections.unmodifiableSet(tags); + } + + */ public void setTaskDone() { diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index a11617d1e9f..31d158a83e2 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -234,6 +234,11 @@ public void findTask(Task task) { throw new AssertionError("This method should not be called."); } + @Override + public void tagTask(Task task, Person person) { + throw new AssertionError("This method should not be called."); + } + } /** diff --git a/src/test/java/manageezpz/model/tag/TagTest.java b/src/test/java/manageezpz/model/tag/TagTest.java new file mode 100644 index 00000000000..71a9ca07c7f --- /dev/null +++ b/src/test/java/manageezpz/model/tag/TagTest.java @@ -0,0 +1,29 @@ +package manageezpz.model.tag; + +import static manageezpz.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + +import manageezpz.model.tasktag.Tag; + + +public class TagTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Tag(null)); + } + + @Test + public void constructor_invalidTagName_throwsIllegalArgumentException() { + String invalidTagName = ""; + assertThrows(IllegalArgumentException.class, () -> new Tag(invalidTagName)); + } + + @Test + public void isValidTagName() { + // null tag name + assertThrows(NullPointerException.class, () -> Tag.isValidTagName(null)); + } + +} From 4aa0b1a7dfd5c605df40c1362f63e01b75e67fc0 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sun, 20 Mar 2022 17:31:22 +0800 Subject: [PATCH 161/507] Complete Tag Command, Storage for Tag, Implement addAssignees in Task, isTagged in Model --- src/main/java/manageezpz/MainApp.java | 1 - .../logic/commands/TagTaskCommand.java | 62 +++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ .../logic/parser/TagTaskCommandParser.java | 42 ++++++++++++ .../java/manageezpz/model/AddressBook.java | 1 - src/main/java/manageezpz/model/Model.java | 18 ++--- .../java/manageezpz/model/ModelManager.java | 24 ++----- src/main/java/manageezpz/model/task/Task.java | 16 ++--- .../manageezpz/storage/JsonAdaptedTask.java | 68 ++++++++++++++++--- .../storage/JsonSerializableAddressBook.java | 2 +- .../typicalPersonsAddressBook.json | 12 ++-- .../commands/AddEmployeeCommandTest.java | 14 +--- .../JsonSerializableAddressBookTest.java | 2 +- 13 files changed, 197 insertions(+), 69 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/TagTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index fa1d7c0fc40..be241acbbc7 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -66,7 +66,6 @@ public void init() throws Exception { logic = new LogicManager(model, storage); ui = new UiManager(logic); - // System.out.println(model.getAddressBook().getTaskList()); } /** diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java new file mode 100644 index 00000000000..4de1e67055a --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -0,0 +1,62 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; + +import java.util.List; + +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; +import manageezpz.model.task.Task; + + +public class TagTaskCommand extends Command { + public static final String COMMAND_WORD = "tagTask"; + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Tag the Task to your specified Person. " + + "Parameters: INDEX (must be a positive integer) " + + PREFIX_NAME + "EMPLOYEE_NAME" + + "\r\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + PREFIX_NAME + "Alex Yeoh"; + public static final String MESSAGE_SUCCESS = "Task has been tagged! : %1$s"; + public static final String MESSAGE_DUPLICATE_TASK = "This Task has already been assigned to the same person!"; + + private int index; + private String name; + + /** + * Constructor for TagTaskCommand + * @param index index of the Task to be tagged. + * @param name Name of Employee to tag Task to. + */ + public TagTaskCommand(int index, String name) { + this.index = index; + this.name = name; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + + Task task = model.getFilteredTaskList().get(index); + List personList = model.getFilteredPersonList(); + + Person person = null; + for (int i = 0; i < personList.size(); i++) { + Person tempPerson = personList.get(i); + if (tempPerson.getName().toString().equals(name)) { + person = tempPerson; + break; + } + } + + if (model.isTagged(task, person)) { + throw new CommandException(MESSAGE_DUPLICATE_TASK); + } + model.tagTask(task, person); + return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + } + +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index b9627fa75cd..cf190f3fd93 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -20,6 +20,7 @@ import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.UnmarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -92,6 +93,9 @@ public Command parseCommand(String userInput) throws ParseException { case UnmarkTaskCommand.COMMAND_WORD: return new UnmarkTaskCommandParser().parse(arguments); + case TagTaskCommand.COMMAND_WORD: + return new TagTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java new file mode 100644 index 00000000000..5ae3dabd372 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -0,0 +1,42 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; + +import java.util.stream.Stream; + +import manageezpz.logic.commands.TagTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + + +public class TagTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand + * and returns an AddDeadlineTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public TagTaskCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimapDeadline = + ArgumentTokenizer.tokenize(args, PREFIX_NAME); + + if (!arePrefixesPresent(argMultimapDeadline, PREFIX_NAME) + || !argMultimapDeadline.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + TagTaskCommand.MESSAGE_USAGE)); + } + String name = argMultimapDeadline.getValue(PREFIX_NAME).get(); + String[] argsArr = args.trim().split(" "); + int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); + return new TagTaskCommand(index, name); + } + + + /** + * 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/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index ca9920b3b3a..84f41cd54e2 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -194,7 +194,6 @@ public void setPersons(List persons) { */ public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); - setPersons(newData.getPersonList()); setTasks(newData.getTaskList()); } diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index f311f27e90c..0d0e9fbcd51 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -160,24 +160,14 @@ public interface Model { ObservableList getFilteredTaskList(); /** - * Returns true if a todo with the same identity as {@code todo} exists in the task list. - */ - boolean hasTodo(Todo todo); - - /** - * Returns true if an event with the same identity as {@code event} exists in the task list. - */ - boolean hasEvent(Event event); - - /** - * Returns true if a deadline with the same identity as {@code deadline} exists in the task list. + * Returns true if a task with the same identity as {@code deadline} exists in the task list. */ - boolean hasDeadline(Deadline deadline); + boolean hasTask(Task task); /** - * Returns true if a task with the same identity as {@code deadline} exists in the task list. + * Returns true if a {@code Task} is tagged. */ - boolean hasTask(Task task); + boolean isTagged(Task task, Person p); /** * Returns a list of all tasks. diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 2c0486eb6bd..028282c0e92 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -219,29 +219,19 @@ public ObservableList getFilteredTaskList() { } @Override - public boolean hasEvent(Event event) { - requireNonNull(event); - return addressBook.hasEvent(event); - } - - @Override - public boolean hasDeadline(Deadline deadline) { - requireNonNull(deadline); - return addressBook.hasDeadline(deadline); - } - - @Override - public boolean hasTodo(Todo todo) { - requireNonNull(todo); - return addressBook.hasTodo(todo); + public boolean hasTask(Task task) { + requireNonNull(task); + return addressBook.hasTask(task); } @Override - public boolean hasTask(Task task) { + public boolean isTagged(Task task, Person person) { requireNonNull(task); - return addressBook.hasTask(task); + requireNonNull(person); + return task.getAssignees().contains(person); } + /** * {@inheritDoc} */ diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 0c641950942..5ff60e4536f 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,6 +2,7 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -33,6 +34,7 @@ public Task(Description taskDescription) { this.taskDescription = taskDescription; this.isDone = false; this.type = ""; + this.assignees = new ArrayList<>(); } /** @@ -47,17 +49,13 @@ public String getStatusIcon() { } } - /** - * Returns an immutable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - */ - /* - public Set getTags() { - return Collections.unmodifiableSet(tags); + public List getAssignees() { + return this.assignees; } - */ - + public void addAssignees(Person person) { + this.assignees.add(person); + } public void setTaskDone() { this.isDone = true; diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index cadcbf4d32e..8be6983d9a0 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -1,9 +1,14 @@ package manageezpz.storage; +import java.util.List; +import java.util.StringJoiner; + import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import javafx.collections.ObservableList; import manageezpz.commons.exceptions.IllegalValueException; +import manageezpz.model.person.Person; import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; @@ -11,8 +16,7 @@ import manageezpz.model.task.Task; import manageezpz.model.task.Time; import manageezpz.model.task.Todo; - - +import manageezpz.model.tasktag.Tag; /** * Jackson-friendly version of {@link Task}. @@ -27,7 +31,8 @@ class JsonAdaptedTask { private String deadlineTime; private String eventStartTime; private String eventEndTime; - private String status; // This status is for mark and unmark. + private String status; + private String tag; /** @@ -38,7 +43,8 @@ public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("status" @JsonProperty("description") String description, @JsonProperty("date") String date, @JsonProperty("deadlineTime") String deadlineTime, @JsonProperty("eventStartTime") String eventStartTime, - @JsonProperty("eventEndTime") String eventEndTime) { + @JsonProperty("eventEndTime") String eventEndTime, + @JsonProperty("tag") String tag) { this.description = new Description(description).toString(); this.status = status; this.type = type; @@ -46,17 +52,17 @@ public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("status" this.deadlineTime = deadlineTime; this.eventStartTime = eventStartTime; this.eventEndTime = eventEndTime; + this.tag = tag; } /** * Converts a given {@code Task} into this class for Jackson use. */ - // Note to self: Do I need to convert String to LocalTime, so that toModelType can be able to create the task? + public JsonAdaptedTask(Task source) { - // For future reference, this.marked = source.getMark()? description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks - status = source.getStatusIcon(); + status = source.getStatusIcon(); // Generally for all tasks if (source instanceof Deadline) { this.date = ((Deadline) source).getDate().getDate(); // For Deadline this.deadlineTime = ((Deadline) source).getTime().getTime(); // For Deadline @@ -70,6 +76,10 @@ public JsonAdaptedTask(Task source) { this.eventStartTime = ""; this.eventEndTime = ""; } + List personList = source.getAssignees(); + StringJoiner joiner = new StringJoiner(", "); + personList.forEach(item -> joiner.add(item.getName().toString())); + this.tag = joiner.toString(); } /** @@ -77,9 +87,10 @@ public JsonAdaptedTask(Task source) { * * @throws IllegalValueException if there were any data constraints violated in the adapted person. */ - public Task toModelType() throws IllegalValueException { + public Task toModelType(ObservableList persons) throws IllegalValueException { if (description == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + Description.class.getSimpleName())); } if (type == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); @@ -87,6 +98,10 @@ public Task toModelType() throws IllegalValueException { if (status == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); } + if (tag == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Tag.class.getSimpleName())); + } + Description desc = new Description(description); boolean isDone = status.equals("X"); @@ -95,6 +110,19 @@ public Task toModelType() throws IllegalValueException { if (isDone) { newTodo.setTaskDone(); } + + String[] tagList = tag.split(","); + for (int i = 0; i < tagList.length; i++) { + String currentTag = tagList[i].trim(); + for (int j = 0; j < persons.size(); j++) { + Person matchedPerson = null; + + if (persons.get(j).getName().toString().equals(currentTag)) { + matchedPerson = persons.get(j); + newTodo.addAssignees(matchedPerson); + } + } + } return newTodo; } else if (type.equals("deadline")) { Date currDeadlineDate = new Date(date); @@ -103,6 +131,17 @@ public Task toModelType() throws IllegalValueException { if (isDone) { newDeadline.setTaskDone(); } + String[] tagList = tag.split(","); + for (int i = 0; i < tagList.length; i++) { + String currentTag = tagList[i].trim(); + for (int j = 0; j < persons.size(); j++) { + Person matchedPerson = null; + if (persons.get(j).getName().toString().equals(currentTag)) { + matchedPerson = persons.get(j); + newDeadline.addAssignees(matchedPerson); + } + } + } return newDeadline; } else { Date currEventDate = new Date(date); @@ -112,6 +151,17 @@ public Task toModelType() throws IllegalValueException { if (isDone) { newEvent.setTaskDone(); } + String[] tagList = tag.split(","); + for (int i = 0; i < tagList.length; i++) { + String currentTag = tagList[i].trim(); + for (int j = 0; j < persons.size(); j++) { + Person matchedPerson = null; + if (persons.get(j).getName().toString().equals(currentTag)) { + matchedPerson = persons.get(j); + newEvent.addAssignees(matchedPerson); + } + } + } return newEvent; } } diff --git a/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java index 551fd88aaeb..46b6c87f167 100644 --- a/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java +++ b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java @@ -62,7 +62,7 @@ public AddressBook toModelType() throws IllegalValueException { } for (JsonAdaptedTask jsonAdaptedTask : tasks) { - Task task = jsonAdaptedTask.toModelType(); + Task task = jsonAdaptedTask.toModelType(addressBook.getPersonList()); if (addressBook.hasTask(task)) { throw new IllegalValueException(MESSAGE_DUPLICATE_TASKS); } diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index 7fd6e99493c..dbcb081d532 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -36,7 +36,8 @@ "date" : "", "deadlineTime" : "", "eventStartTime" : "", - "eventEndTime" : "" + "eventEndTime" : "", + "tag" : "" }, { "type" : "deadline", "status": "", @@ -44,7 +45,8 @@ "date" : "2022-03-15", "deadlineTime" : "0400", "eventStartTime" : null, - "eventEndTime" : null + "eventEndTime" : null, + "tag" : "" }, { "type" : "event", "status": "", @@ -52,7 +54,8 @@ "date" : "2022-03-15", "deadlineTime" : null, "eventStartTime" : "1800", - "eventEndTime" : "2000" + "eventEndTime" : "2000", + "tag" : "" }, { "type" : "deadline", "status": "", @@ -60,6 +63,7 @@ "date" : "2022-03-15", "deadlineTime" : "0400", "eventStartTime" : null, - "eventEndTime" : null + "eventEndTime" : null, + "tag" : "" } ] } diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index 31d158a83e2..9d40a28da82 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -185,22 +185,12 @@ public ObservableList getFilteredTaskList() { } @Override - public boolean hasTodo(Todo todo) { - 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 boolean hasDeadline(Deadline deadline) { + public boolean hasTask(Task task) { throw new AssertionError("This method should not be called."); } @Override - public boolean hasTask(Task task) { + public boolean isTagged(Task task, Person p) { throw new AssertionError("This method should not be called."); } diff --git a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index 16de904c2db..50d478b8b54 100644 --- a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -24,8 +24,8 @@ public class JsonSerializableAddressBookTest { public void toModelType_typicalPersonsFile_success() throws Exception { JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, JsonSerializableAddressBook.class).get(); - AddressBook addressBookFromFile = dataFromFile.toModelType(); AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); + AddressBook addressBookFromFile = dataFromFile.toModelType(); assertEquals(addressBookFromFile, typicalPersonsAddressBook); } From a19516e25b527c73f4e724a3b2f1c3f83e3a8552 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 17:44:18 +0800 Subject: [PATCH 162/507] Update test files for Task Model --- src/main/java/manageezpz/model/task/Date.java | 5 ++ .../java/manageezpz/model/task/Deadline.java | 1 - src/main/java/manageezpz/model/task/Time.java | 5 ++ .../manageezpz/model/ModelManagerTest.java | 42 ++++++++++++ .../java/manageezpz/model/task/DateTest.java | 42 ++++++++++++ .../manageezpz/model/task/DeadlineTest.java | 26 ++++++++ .../java/manageezpz/model/task/EventTest.java | 28 ++++++++ .../java/manageezpz/model/task/TimeTest.java | 42 ++++++++++++ .../manageezpz/testutil/DeadlineBuilder.java | 52 +++++++++++++++ .../manageezpz/testutil/EventBuilder.java | 64 +++++++++++++++++++ .../java/manageezpz/testutil/TaskBuilder.java | 4 +- .../java/manageezpz/testutil/TodoBuilder.java | 28 ++++++++ .../manageezpz/testutil/TypcialTasks.java | 8 +++ 13 files changed, 345 insertions(+), 2 deletions(-) create mode 100644 src/test/java/manageezpz/model/task/DateTest.java create mode 100644 src/test/java/manageezpz/model/task/DeadlineTest.java create mode 100644 src/test/java/manageezpz/model/task/EventTest.java create mode 100644 src/test/java/manageezpz/model/task/TimeTest.java create mode 100644 src/test/java/manageezpz/testutil/DeadlineBuilder.java create mode 100644 src/test/java/manageezpz/testutil/EventBuilder.java create mode 100644 src/test/java/manageezpz/testutil/TodoBuilder.java diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index b17b3a98c6c..cee7a4fdcc7 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -5,6 +5,9 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format : yyyy-MM-dd" + " Month should be between 1 and 12 and Day should be between 1 and 31"; @@ -14,6 +17,8 @@ public class Date { private String date; public Date(String date) { + requireNonNull(date); + checkArgument(isValidDate(date), MESSAGE_CONSTRAINTS); this.date = date; } diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 2704c320df0..ab3a717d64e 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -35,5 +35,4 @@ public String toString() { return "[D]" + super.toString() + " (by: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + " " + time.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } - } diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index 1ab8c75b83e..600a9d98fa8 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -3,6 +3,9 @@ import java.time.LocalTime; import java.time.format.DateTimeFormatter; +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + public class Time { public static final String MESSAGE_CONSTRAINTS = "Time should strictly be in the format of HHMM." + " It should only contain numbers, 4 digits long and should not be blank. " @@ -17,6 +20,8 @@ public class Time { * @param time A valid time. */ public Time(String time) { + requireNonNull(time); + checkArgument(isValidTime(time), MESSAGE_CONSTRAINTS); this.time = time; } diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index 7161e6be2eb..f06fd0fa4e3 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -2,8 +2,12 @@ import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import static manageezpz.testutil.Assert.assertThrows; +import static manageezpz.testutil.TypcialTasks.GET_A_DRINK; +import static manageezpz.testutil.TypcialTasks.GET_DRINK; +import static manageezpz.testutil.TypcialTasks.HOUSE_VISTING; import static manageezpz.testutil.TypcialTasks.READ_BOOK; import static manageezpz.testutil.TypcialTasks.RETURN_BOOK; +import static manageezpz.testutil.TypcialTasks.WEEKLY_QUIZ; import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.BENSON; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -155,5 +159,43 @@ public void getFilteredTaskList_modifyList_throwsUnsupportedOperationException() assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredTaskList().remove(0)); } + @Test + public void hasDeadline_nullTask_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> modelManager.hasDeadline(null)); + } + + @Test + public void hasEvent_nullTask_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> modelManager.hasEvent(null)); + } + @Test + public void hasTodo_nullTask_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> modelManager.hasTodo(null)); + } + + @Test + public void hasDeadline_taskInAddressBook_returnsTrue() { + modelManager.addDeadline(GET_DRINK); + assertTrue(modelManager.hasDeadline(GET_DRINK)); + } + + @Test + public void hasEvent_taskInAddressBook_returnsTrue() { + modelManager.addEvent(HOUSE_VISTING); + assertTrue(modelManager.hasEvent(HOUSE_VISTING)); + } + + @Test + public void hasTodo_taskInAddressBook_returnsTrue() { + modelManager.addTodo(WEEKLY_QUIZ); + assertTrue(modelManager.hasTodo(WEEKLY_QUIZ)); + } + + @Test + public void isDeleted_taskInAddressBook_returnsTrue() { + modelManager.addTask(READ_BOOK); + modelManager.deleteTask(READ_BOOK); + assertTrue(!modelManager.hasTask(READ_BOOK)); + } } diff --git a/src/test/java/manageezpz/model/task/DateTest.java b/src/test/java/manageezpz/model/task/DateTest.java new file mode 100644 index 00000000000..9125eafcafb --- /dev/null +++ b/src/test/java/manageezpz/model/task/DateTest.java @@ -0,0 +1,42 @@ +package manageezpz.model.task; + +import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +public class DateTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Date(null)); + } + + @Test + public void constructor_invalidDate_throwsIllegalArgumentException() { + String invalidDate1 = "2022-18-09"; + String invalidDate2 = "2022-11-60"; + assertThrows(IllegalArgumentException.class, () -> new Date(invalidDate1)); + assertThrows(IllegalArgumentException.class, () -> new Date(invalidDate2)); + } + + @Test + public void isValidDate() { + // null date + assertThrows(NullPointerException.class, () -> Date.isValidDate(null)); + + // invalid date + assertFalse(Date.isValidDate("2022-25-90")); //both month and date wrong + assertFalse(Date.isValidDate("2022-25-02")); //month is wrong + assertFalse(Date.isValidDate("2022-02-99")); //day is wrong + assertFalse(Date.isValidDate("")); //empty String given + assertFalse(Date.isValidDate("1254055")); //random numbers + assertFalse(Date.isValidDate("2022/02/20")); // "/" used instead of "-" + assertFalse(Date.isValidDate("!@##$#%^&")); //empty String given + + // valid date + assertTrue(Date.isValidDate("2022-05-09")); + assertTrue(Date.isValidDate("2024-05-09")); + } +} diff --git a/src/test/java/manageezpz/model/task/DeadlineTest.java b/src/test/java/manageezpz/model/task/DeadlineTest.java new file mode 100644 index 00000000000..86a2b873b0c --- /dev/null +++ b/src/test/java/manageezpz/model/task/DeadlineTest.java @@ -0,0 +1,26 @@ +package manageezpz.model.task; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class DeadlineTest { + + private final Deadline testDealine = new Deadline(new Description("testing") + , new Date("2022-11-08"), new Time("1800")); + @Test + public void testGetters() { + assertEquals("testing", testDealine.getDescription().toString()); + assertEquals("2022-11-08", testDealine.getDate().getParsedDate().toString()); + assertEquals("18:00", testDealine.getTime().getParsedTime().toString()); + assertEquals("deadline", testDealine.getType()); + } + + @Test + public void testSetters() { + assertEquals(" ", testDealine.getStatusIcon()); + testDealine.setTaskDone(); + assertEquals("X", testDealine.getStatusIcon()); + } + +} diff --git a/src/test/java/manageezpz/model/task/EventTest.java b/src/test/java/manageezpz/model/task/EventTest.java new file mode 100644 index 00000000000..d566296e6a9 --- /dev/null +++ b/src/test/java/manageezpz/model/task/EventTest.java @@ -0,0 +1,28 @@ +package manageezpz.model.task; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class EventTest { + + private final Event testEvent = new Event(new Description("testing"), new Date("2022-11-08") + , new Time("1800"), new Time("2000")); + + @Test + public void testGetters() { + assertEquals("testing", testEvent.getDescription().toString()); + assertEquals("2022-11-08", testEvent.getDate().getParsedDate().toString()); + assertEquals("18:00", testEvent.getStartTime().getParsedTime().toString()); + assertEquals("20:00", testEvent.getEndTime().getParsedTime().toString()); + assertEquals("event", testEvent.getType()); + } + + @Test + public void testSetters() { + assertEquals(" ", testEvent.getStatusIcon()); + testEvent.setTaskDone(); + assertEquals("X", testEvent.getStatusIcon()); + } + +} diff --git a/src/test/java/manageezpz/model/task/TimeTest.java b/src/test/java/manageezpz/model/task/TimeTest.java new file mode 100644 index 00000000000..c445abd1a0b --- /dev/null +++ b/src/test/java/manageezpz/model/task/TimeTest.java @@ -0,0 +1,42 @@ +package manageezpz.model.task; + +import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +public class TimeTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Time(null)); + } + + @Test + public void constructor_invalidTime_throwsIllegalArgumentException() { + String invalidTime1 = "9999"; + String invalidTime2 = "2459"; + assertThrows(IllegalArgumentException.class, () -> new Time(invalidTime1)); + assertThrows(IllegalArgumentException.class, () -> new Time(invalidTime2)); + } + + @Test + public void isValidTime() { + // null date + assertThrows(NullPointerException.class, () -> Time.isValidTime(null)); + + // invalid Time + assertFalse(Time.isValidTime("6500")); //greater than 24hr format + assertFalse(Time.isValidTime("1290")); //greater than 24hr format + assertFalse(Time.isValidTime("23-00")); //"-" used" + assertFalse(Time.isValidTime("")); //empty String given + assertFalse(Time.isValidTime("1254055")); //random numbers + assertFalse(Time.isValidTime("23:00")); // ":" used + assertFalse(Time.isValidTime("!!@#$#%#%^")); // random symbols + + // valid date + assertTrue(Time.isValidTime("2000")); + assertTrue(Time.isValidTime("1423")); + } +} diff --git a/src/test/java/manageezpz/testutil/DeadlineBuilder.java b/src/test/java/manageezpz/testutil/DeadlineBuilder.java new file mode 100644 index 00000000000..8347b2f5be8 --- /dev/null +++ b/src/test/java/manageezpz/testutil/DeadlineBuilder.java @@ -0,0 +1,52 @@ +package manageezpz.testutil; + +import manageezpz.model.task.Date; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Description; +import manageezpz.model.task.Task; +import manageezpz.model.task.Time; + +public class DeadlineBuilder { + public static final String TASK_DESCRIPTION = "read book"; + public static final String TASK_DATE = "2022-03-20"; + public static final String TASK_TIME = "2000"; + + private Description description; + private Date date; + private Time time; + + public DeadlineBuilder() { + description = new Description(TASK_DESCRIPTION); + date = new Date(TASK_DATE); + time = new Time(TASK_TIME); + } + + /** + * Sets the {@code Description} of the {@code Task} that we are building. + */ + public DeadlineBuilder withDescription(String description) { + this.description = new Description(description); + return this; + } + + /** + * Sets the {@code Date} of the {@code Task} that we are building. + */ + public DeadlineBuilder withDate(String date) { + this.date = new Date(date); + return this; + } + + + /** + * Sets the {@code Time} of the {@code Task} that we are building. + */ + public DeadlineBuilder withTime(String time) { + this.time = new Time(time); + return this; + } + + public Deadline build() { + return new Deadline(description, date, time); + } +} diff --git a/src/test/java/manageezpz/testutil/EventBuilder.java b/src/test/java/manageezpz/testutil/EventBuilder.java new file mode 100644 index 00000000000..416aa715139 --- /dev/null +++ b/src/test/java/manageezpz/testutil/EventBuilder.java @@ -0,0 +1,64 @@ +package manageezpz.testutil; + +import manageezpz.model.task.Date; +import manageezpz.model.task.Description; +import manageezpz.model.task.Event; +import manageezpz.model.task.Task; +import manageezpz.model.task.Time; + + +public class EventBuilder { + + public static final String TASK_DESCRIPTION = "read book"; + public static final String TASK_DATE = "2022-03-20"; + public static final String TASK_START_TIME = "1800"; + public static final String TASK_END_TIME = "2100"; + + private Description description; + private Date date; + private Time startTime; + private Time endTime; + + public EventBuilder() { + description = new Description(TASK_DESCRIPTION); + date = new Date(TASK_DATE); + startTime = new Time(TASK_START_TIME); + endTime = new Time(TASK_END_TIME); + } + + /** + * Sets the {@code Description} of the {@code Task} that we are building. + */ + public EventBuilder withDescription(String description) { + this.description = new Description(description); + return this; + } + + /** + * Sets the {@code Date} of the {@code Task} that we are building. + */ + public EventBuilder withDate(String date) { + this.date = new Date(date); + return this; + } + + /** + * Sets the {@code Name} of the {@code Task} that we are building. + */ + public EventBuilder withStartTime(String startTime) { + this.startTime = new Time(startTime); + return this; + } + + /** + * Sets the {@code Name} of the {@code Task} that we are building. + */ + public EventBuilder withEndTime(String endTime) { + this.endTime = new Time(endTime); + return this; + } + + public Event build() { + return new Event(description, date, startTime, endTime); + } +} diff --git a/src/test/java/manageezpz/testutil/TaskBuilder.java b/src/test/java/manageezpz/testutil/TaskBuilder.java index 1c0da40b996..d42b694ec58 100644 --- a/src/test/java/manageezpz/testutil/TaskBuilder.java +++ b/src/test/java/manageezpz/testutil/TaskBuilder.java @@ -1,7 +1,9 @@ package manageezpz.testutil; +import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Task; +import manageezpz.model.task.Time; /** * A utility class to help with building Person objects. @@ -26,7 +28,7 @@ public TaskBuilder(Task taskToCopy) { } /** - * Sets the {@code Name} of the {@code Task} that we are building. + * Sets the {@code Description} of the {@code Task} that we are building. */ public TaskBuilder withDescription(String description) { this.description = new Description(description); diff --git a/src/test/java/manageezpz/testutil/TodoBuilder.java b/src/test/java/manageezpz/testutil/TodoBuilder.java new file mode 100644 index 00000000000..a37810d8e5c --- /dev/null +++ b/src/test/java/manageezpz/testutil/TodoBuilder.java @@ -0,0 +1,28 @@ +package manageezpz.testutil; + +import manageezpz.model.task.Description; +import manageezpz.model.task.Todo; + +public class TodoBuilder { + + public static final String TASK_DESCRIPTION = "read book"; + private Description description; + /** + * Creates a {@code TaskBuilder} with the default details. + */ + public TodoBuilder() { + description = new Description(TASK_DESCRIPTION); + } + + /** + * Sets the {@code Description} of the {@code Task} that we are building. + */ + public TodoBuilder withDescription(String description) { + this.description = new Description(description); + return this; + } + + public Todo build() { + return new Todo(description); + } +} diff --git a/src/test/java/manageezpz/testutil/TypcialTasks.java b/src/test/java/manageezpz/testutil/TypcialTasks.java index ca68a0bd989..bf256d70cca 100644 --- a/src/test/java/manageezpz/testutil/TypcialTasks.java +++ b/src/test/java/manageezpz/testutil/TypcialTasks.java @@ -7,7 +7,10 @@ import java.util.List; import manageezpz.model.AddressBook; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Event; import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; public class TypcialTasks { @@ -15,6 +18,11 @@ public class TypcialTasks { public static final Task RETURN_BOOK = new TaskBuilder().withDescription("Return Book").build(); public static final Task GO_FOR_RUN = new TaskBuilder().withDescription("Go for run").build(); public static final Task GET_HAIRCUT = new TaskBuilder().withDescription("Get Haircut").build(); + public static final Deadline GET_DRINK = new DeadlineBuilder().withDescription("Get Drink") + .withDate("2022-05-13").withTime("1800").build(); + public static final Event HOUSE_VISTING = new EventBuilder().withDescription("House Visiting").withDate("2022-09-15") + .withStartTime("1800").withEndTime("2000").build(); + public static final Todo WEEKLY_QUIZ = new TodoBuilder().withDescription("Weekly Quiz").build(); // Manually added - Task's details found in {@code CommandTestUtil} public static final Task GET_A_DRINK = new TaskBuilder().withDescription(VALID_TASK_DESCRIPTION).build(); From 4f275b32b51bbc70895e7e725837a03183cdc370 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 17:51:24 +0800 Subject: [PATCH 163/507] Update CheckStyle --- src/main/java/manageezpz/model/task/Date.java | 9 +++++++-- src/main/java/manageezpz/model/task/Time.java | 6 +++--- src/test/java/manageezpz/model/ModelManagerTest.java | 1 - src/test/java/manageezpz/model/task/DeadlineTest.java | 4 ++-- src/test/java/manageezpz/model/task/EventTest.java | 4 ++-- src/test/java/manageezpz/testutil/DeadlineBuilder.java | 4 +++- src/test/java/manageezpz/testutil/EventBuilder.java | 4 +++- src/test/java/manageezpz/testutil/TaskBuilder.java | 2 -- src/test/java/manageezpz/testutil/TypcialTasks.java | 4 ++-- 9 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index cee7a4fdcc7..1427b939de6 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -1,12 +1,13 @@ package manageezpz.model.task; +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.AppUtil.checkArgument; + import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; -import static java.util.Objects.requireNonNull; -import static manageezpz.commons.util.AppUtil.checkArgument; public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format : yyyy-MM-dd" @@ -16,6 +17,10 @@ public class Date { private String date; + /** + * Constructs a {@code Date}. + * @param date A valid date. + */ public Date(String date) { requireNonNull(date); checkArgument(isValidDate(date), MESSAGE_CONSTRAINTS); diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index 600a9d98fa8..35785a5e13a 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -1,11 +1,11 @@ package manageezpz.model.task; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; - import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + public class Time { public static final String MESSAGE_CONSTRAINTS = "Time should strictly be in the format of HHMM." + " It should only contain numbers, 4 digits long and should not be blank. " diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index f06fd0fa4e3..efac52632e3 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -2,7 +2,6 @@ import static manageezpz.model.Model.PREDICATE_SHOW_ALL_PERSONS; import static manageezpz.testutil.Assert.assertThrows; -import static manageezpz.testutil.TypcialTasks.GET_A_DRINK; import static manageezpz.testutil.TypcialTasks.GET_DRINK; import static manageezpz.testutil.TypcialTasks.HOUSE_VISTING; import static manageezpz.testutil.TypcialTasks.READ_BOOK; diff --git a/src/test/java/manageezpz/model/task/DeadlineTest.java b/src/test/java/manageezpz/model/task/DeadlineTest.java index 86a2b873b0c..72bae2ce7f7 100644 --- a/src/test/java/manageezpz/model/task/DeadlineTest.java +++ b/src/test/java/manageezpz/model/task/DeadlineTest.java @@ -6,8 +6,8 @@ public class DeadlineTest { - private final Deadline testDealine = new Deadline(new Description("testing") - , new Date("2022-11-08"), new Time("1800")); + private final Deadline testDealine = new Deadline(new Description("testing"), + new Date("2022-11-08"), new Time("1800")); @Test public void testGetters() { assertEquals("testing", testDealine.getDescription().toString()); diff --git a/src/test/java/manageezpz/model/task/EventTest.java b/src/test/java/manageezpz/model/task/EventTest.java index d566296e6a9..61958bf1734 100644 --- a/src/test/java/manageezpz/model/task/EventTest.java +++ b/src/test/java/manageezpz/model/task/EventTest.java @@ -6,8 +6,8 @@ public class EventTest { - private final Event testEvent = new Event(new Description("testing"), new Date("2022-11-08") - , new Time("1800"), new Time("2000")); + private final Event testEvent = new Event(new Description("testing"), new Date("2022-11-08"), new Time("1800"), + new Time("2000")); @Test public void testGetters() { diff --git a/src/test/java/manageezpz/testutil/DeadlineBuilder.java b/src/test/java/manageezpz/testutil/DeadlineBuilder.java index 8347b2f5be8..7cb6d45f9ae 100644 --- a/src/test/java/manageezpz/testutil/DeadlineBuilder.java +++ b/src/test/java/manageezpz/testutil/DeadlineBuilder.java @@ -3,7 +3,6 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Deadline; import manageezpz.model.task.Description; -import manageezpz.model.task.Task; import manageezpz.model.task.Time; public class DeadlineBuilder { @@ -15,6 +14,9 @@ public class DeadlineBuilder { private Date date; private Time time; + /** + * Creates a {@code DeadlineBuilder} with the default details. + */ public DeadlineBuilder() { description = new Description(TASK_DESCRIPTION); date = new Date(TASK_DATE); diff --git a/src/test/java/manageezpz/testutil/EventBuilder.java b/src/test/java/manageezpz/testutil/EventBuilder.java index 416aa715139..66c587854dc 100644 --- a/src/test/java/manageezpz/testutil/EventBuilder.java +++ b/src/test/java/manageezpz/testutil/EventBuilder.java @@ -3,7 +3,6 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Event; -import manageezpz.model.task.Task; import manageezpz.model.task.Time; @@ -19,6 +18,9 @@ public class EventBuilder { private Time startTime; private Time endTime; + /** + * Creates a {@code EventBuilder} with the default details. + */ public EventBuilder() { description = new Description(TASK_DESCRIPTION); date = new Date(TASK_DATE); diff --git a/src/test/java/manageezpz/testutil/TaskBuilder.java b/src/test/java/manageezpz/testutil/TaskBuilder.java index d42b694ec58..9a11f3bbaa4 100644 --- a/src/test/java/manageezpz/testutil/TaskBuilder.java +++ b/src/test/java/manageezpz/testutil/TaskBuilder.java @@ -1,9 +1,7 @@ package manageezpz.testutil; -import manageezpz.model.task.Date; import manageezpz.model.task.Description; import manageezpz.model.task.Task; -import manageezpz.model.task.Time; /** * A utility class to help with building Person objects. diff --git a/src/test/java/manageezpz/testutil/TypcialTasks.java b/src/test/java/manageezpz/testutil/TypcialTasks.java index bf256d70cca..3c25e50c191 100644 --- a/src/test/java/manageezpz/testutil/TypcialTasks.java +++ b/src/test/java/manageezpz/testutil/TypcialTasks.java @@ -20,8 +20,8 @@ public class TypcialTasks { public static final Task GET_HAIRCUT = new TaskBuilder().withDescription("Get Haircut").build(); public static final Deadline GET_DRINK = new DeadlineBuilder().withDescription("Get Drink") .withDate("2022-05-13").withTime("1800").build(); - public static final Event HOUSE_VISTING = new EventBuilder().withDescription("House Visiting").withDate("2022-09-15") - .withStartTime("1800").withEndTime("2000").build(); + public static final Event HOUSE_VISTING = new EventBuilder().withDescription("House Visiting") + .withDate("2022-09-15").withStartTime("1800").withEndTime("2000").build(); public static final Todo WEEKLY_QUIZ = new TodoBuilder().withDescription("Weekly Quiz").build(); // Manually added - Task's details found in {@code CommandTestUtil} From 4858bacdc835a92c4f5b2b2b291822608cdb6209 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 18:15:45 +0800 Subject: [PATCH 164/507] Update javadocs for Model classes. --- .../java/manageezpz/model/AddressBook.java | 51 +++++++++++++++---- .../java/manageezpz/model/task/Deadline.java | 1 + .../manageezpz/model/task/Description.java | 3 +- src/main/java/manageezpz/model/task/Task.java | 22 ++------ src/main/java/manageezpz/model/task/Time.java | 4 ++ 5 files changed, 53 insertions(+), 28 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index ca9920b3b3a..07691f19640 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -204,27 +204,41 @@ public void resetData(ReadOnlyAddressBook newData) { /** * Returns true if a task with the same identity as {@code task} exists in the task list. * @param task the task to be checked. - * @return true if same identity otherwise false + * @return true if same identity otherwise false. */ public boolean hasTask(Task task) { requireNonNull(task); return tasks.contains(task); } + /** + * Adds a Task to the task list. + * The task must not already exist in the task list. + */ public void addTask(Task t) { tasks.add(t); } + /** + * Replaces the contents of the task list with {@code task}. + * {@code task} must not contain duplicate tasks. + */ public void setTasks(List task) { this.tasks.setTasks(task); } + /** + * Removes {@code key} from this {@code AddressBook}. + * {@code key} must exist in the address book. + */ public void removeTask(Task key) { tasks.remove(key); } /** - * Returns true if a todo with the same identity as {@code todo} exists in the task list. + * Checks if a todo with the same identity as {@code todo} exists in the task list. + * @param todo a valid Todo task. + * @return true if a todo with the same identity as {@code todo} exists in the task list, false otherwise. */ public boolean hasTodo(Todo todo) { requireNonNull(todo); @@ -232,15 +246,17 @@ public boolean hasTodo(Todo todo) { } /** - * Adds a todo to the task list. - * The todo must not already exist in the task list. + * Adds a Todo to the task list. + * @param todo a valid Todo task. */ public void addTodo(Todo todo) { this.tasks.add(todo); } /** - * Returns true if a event with the same identity as {@code event} exists in the task list. + * Check if an event with the same identity as {@code event} exists in the task list. + * @param event an event in the task list. + * @return true if event has same identity as {@code event} exists in the task list, false otherwise. */ public boolean hasEvent(Event event) { requireNonNull(event); @@ -248,15 +264,17 @@ public boolean hasEvent(Event event) { } /** - * Adds an event to the task list. - * The event must not already exist in the task list. + * Adds a Event to the task list. + * @param event a valid Event task. */ public void addEvent(Event event) { this.tasks.add(event); } /** - * Returns true if a deadline with the same identity as {@code deadline} exists in the task list. + * Checks if a deadline with the same identity as {@code deadline} exists in the task list. + * @param deadline a valid deadline in the task list. + * @return true if deadline has same identity as {@code deadline} exists in the task list, false otherwise. */ public boolean hasDeadline(Deadline deadline) { requireNonNull(deadline); @@ -264,17 +282,25 @@ public boolean hasDeadline(Deadline deadline) { } /** - * Adds a deadline to the task list. - * The deadline must not already exist in the task list. + * Adds a Deadline to the task list. + * @param deadline a valid deadline task. */ public void addDeadline(Deadline deadline) { this.tasks.add(deadline); } + /** + * Marks the task in the task list. + * @param task the task to be marked. + */ public void markTask(Task task) { task.setTaskDone(); } + /** + * UnMarks the task in the task list. + * @param task the task to be unmarked. + */ public void unmarkTask(Task task) { task.setTaskNotDone(); } @@ -282,6 +308,11 @@ public void unmarkTask(Task task) { public void findTask(Task task) { } + /** + * Tags the task in the task list to a person in the address book. + * @param task the task to be tagged. + * @param person the person to be tagged to the task. + */ public void tagTask(Task task, Person person) { task.assignedTo(person); } diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index ab3a717d64e..773df3566a1 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -5,6 +5,7 @@ public class Deadline extends Task { private Date date; private Time time; + /** * Constructor for the Task class. * diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index b35958ace37..b5b5d334cf9 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -24,7 +24,8 @@ public Description(String description) { } /** - * Returns true if a given string is a valid description. + * Checks if a given string is a valid description. + * @return true if a given string is a valid description, false otherwise */ public static boolean isValidDescription(String test) { return test.matches(VALIDATION_REGEX); diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 0c641950942..8059bbc893d 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -35,10 +35,6 @@ public Task(Description taskDescription) { this.type = ""; } - /** - * Returns X if the task is done, otherwise blank. - * @return the string representation of the status of the task. - */ public String getStatusIcon() { if (this.isDone()) { return "X"; @@ -47,18 +43,6 @@ public String getStatusIcon() { } } - /** - * Returns an immutable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - */ - /* - public Set getTags() { - return Collections.unmodifiableSet(tags); - } - - */ - - public void setTaskDone() { this.isDone = true; } @@ -79,6 +63,10 @@ public String getType() { return this.type; } + /** + * Checks if the task is done or not. + * @return true if task is done, false otherwise. + */ public boolean isDone() { return isDone; } @@ -93,7 +81,7 @@ public String toString() { } /** - * Returns true if both Task have the same name. + * Returns true if both Task have the same Description. * This defines a weaker notion of equality between two Task. */ public boolean isSameTask(Task otherTask) { diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index 35785a5e13a..cb34e098793 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -25,6 +25,10 @@ public Time(String time) { this.time = time; } + /** + * Checks if a given string is a valid time. + * @return true if a given string is a valid time, false otherwise + */ public static boolean isValidTime(String time) { return time.matches(VALIDATION_REGEX) && time.matches("([01]?[0-9]|2[0-3])[0-5][0-9]"); } From b950def278ac12fa28b937eff113e7a07dc4e410 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 22:46:55 +0800 Subject: [PATCH 165/507] Add more test cases for Model test classes. --- .../java/manageezpz/model/ModelManagerTest.java | 17 ++++++++++++++++- .../java/manageezpz/model/task/DateTest.java | 9 +++++++++ .../manageezpz/model/task/DeadlineTest.java | 6 ++++++ .../java/manageezpz/model/task/EventTest.java | 6 ++++++ .../java/manageezpz/model/task/TaskTest.java | 2 +- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index efac52632e3..18bd395bd7a 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -192,9 +192,24 @@ public void hasTodo_taskInAddressBook_returnsTrue() { } @Test - public void isDeleted_taskInAddressBook_returnsTrue() { + public void deleteTask_taskInAddressBook_returnsTrue() { modelManager.addTask(READ_BOOK); modelManager.deleteTask(READ_BOOK); assertTrue(!modelManager.hasTask(READ_BOOK)); } + + @Test + public void markTask_taskInaddressBook_returnsTrue() { + modelManager.markTask(READ_BOOK); + assertTrue(READ_BOOK.isDone()); + } + + @Test + public void unmarkTask_taskInaddressBook_returnsTrue() { + modelManager.unmarkTask(READ_BOOK); + assertTrue(!READ_BOOK.isDone()); + } + + + } diff --git a/src/test/java/manageezpz/model/task/DateTest.java b/src/test/java/manageezpz/model/task/DateTest.java index 9125eafcafb..946dc83f862 100644 --- a/src/test/java/manageezpz/model/task/DateTest.java +++ b/src/test/java/manageezpz/model/task/DateTest.java @@ -1,6 +1,9 @@ package manageezpz.model.task; +import java.time.LocalDate; + import static manageezpz.testutil.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -39,4 +42,10 @@ public void isValidDate() { assertTrue(Date.isValidDate("2022-05-09")); assertTrue(Date.isValidDate("2024-05-09")); } + + @Test + public void testGetters() { + Date testDate = new Date(LocalDate.now().toString()); + assertEquals(testDate, Date.getTodayDate()); + } } diff --git a/src/test/java/manageezpz/model/task/DeadlineTest.java b/src/test/java/manageezpz/model/task/DeadlineTest.java index 72bae2ce7f7..15edef42c92 100644 --- a/src/test/java/manageezpz/model/task/DeadlineTest.java +++ b/src/test/java/manageezpz/model/task/DeadlineTest.java @@ -23,4 +23,10 @@ public void testSetters() { assertEquals("X", testDealine.getStatusIcon()); } + @Test + public void testToString() { + String expected = "[D][ ] testing (by: Nov 08 2022 6:00 PM)"; + assertEquals(expected, testDealine.toString()); + } + } diff --git a/src/test/java/manageezpz/model/task/EventTest.java b/src/test/java/manageezpz/model/task/EventTest.java index 61958bf1734..4ad5749809a 100644 --- a/src/test/java/manageezpz/model/task/EventTest.java +++ b/src/test/java/manageezpz/model/task/EventTest.java @@ -25,4 +25,10 @@ public void testSetters() { assertEquals("X", testEvent.getStatusIcon()); } + @Test + public void testToString() { + String expected = "[E][ ] testing (at: Nov 08 2022 6:00 PM to 8:00 PM)"; + assertEquals(expected, testEvent.toString()); + } + } diff --git a/src/test/java/manageezpz/model/task/TaskTest.java b/src/test/java/manageezpz/model/task/TaskTest.java index fdad981fe18..1029a5e09c9 100644 --- a/src/test/java/manageezpz/model/task/TaskTest.java +++ b/src/test/java/manageezpz/model/task/TaskTest.java @@ -4,6 +4,7 @@ import static manageezpz.testutil.TypcialTasks.GET_A_DRINK; import static manageezpz.testutil.TypcialTasks.READ_BOOK; import static manageezpz.testutil.TypcialTasks.RETURN_BOOK; +import static manageezpz.testutil.TypicalPersons.ALICE; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -68,5 +69,4 @@ public void isNotDone() { GET_A_DRINK.setTaskNotDone(); assertFalse(GET_A_DRINK.isDone); } - } From e2fab29a418d9530d7e6971cdd5f79282f4daad0 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 22:48:58 +0800 Subject: [PATCH 166/507] Update checkstyle. --- src/test/java/manageezpz/model/ModelManagerTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index 18bd395bd7a..d26a1868925 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -209,7 +209,4 @@ public void unmarkTask_taskInaddressBook_returnsTrue() { modelManager.unmarkTask(READ_BOOK); assertTrue(!READ_BOOK.isDone()); } - - - } From 1ca291edfac42ed5424f3ef5ba9825d0bf59c8ee Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 21 Mar 2022 22:51:48 +0800 Subject: [PATCH 167/507] Update Checkstyle for test classes. --- src/test/java/manageezpz/model/task/DateTest.java | 4 ++-- src/test/java/manageezpz/model/task/TaskTest.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/test/java/manageezpz/model/task/DateTest.java b/src/test/java/manageezpz/model/task/DateTest.java index 946dc83f862..4e75886662e 100644 --- a/src/test/java/manageezpz/model/task/DateTest.java +++ b/src/test/java/manageezpz/model/task/DateTest.java @@ -1,12 +1,12 @@ package manageezpz.model.task; -import java.time.LocalDate; - import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.time.LocalDate; + import org.junit.jupiter.api.Test; public class DateTest { diff --git a/src/test/java/manageezpz/model/task/TaskTest.java b/src/test/java/manageezpz/model/task/TaskTest.java index 1029a5e09c9..d74708dec6c 100644 --- a/src/test/java/manageezpz/model/task/TaskTest.java +++ b/src/test/java/manageezpz/model/task/TaskTest.java @@ -4,7 +4,6 @@ import static manageezpz.testutil.TypcialTasks.GET_A_DRINK; import static manageezpz.testutil.TypcialTasks.READ_BOOK; import static manageezpz.testutil.TypcialTasks.RETURN_BOOK; -import static manageezpz.testutil.TypicalPersons.ALICE; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; From cf3bcdbb9f4fb2d08b1d6bf562c191da0b553391 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 22 Mar 2022 16:01:31 +0800 Subject: [PATCH 168/507] Handle and Fix errors made by current previous validation, added manual validation. --- .../manageezpz/commons/core/Messages.java | 2 ++ .../logic/commands/TagTaskCommand.java | 16 ++++++++++++---- .../logic/parser/TagTaskCommandParser.java | 19 +++++++++++++------ 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 2130239f2ca..cc56934272d 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -7,6 +7,8 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; + public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty \n%1$s"; + public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task Number field cannot be empty \n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index 4de1e67055a..2ed60e239e7 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -39,10 +39,15 @@ public TagTaskCommand(int index, String name) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + Task task; + try { + task = model.getFilteredTaskList().get(index); + } catch (IndexOutOfBoundsException e) { + throw new CommandException("This Task Number is invalid. \r\n" + + MESSAGE_USAGE); + } - Task task = model.getFilteredTaskList().get(index); List personList = model.getFilteredPersonList(); - Person person = null; for (int i = 0; i < personList.size(); i++) { Person tempPerson = personList.get(i); @@ -51,10 +56,13 @@ public CommandResult execute(Model model) throws CommandException { break; } } - - if (model.isTagged(task, person)) { + if (person == null) { + throw new CommandException("Sorry, the person does not exist within our database. \r\n" + + MESSAGE_USAGE); + } else if (model.isTagged(task, person)) { throw new CommandException(MESSAGE_DUPLICATE_TASK); } + model.tagTask(task, person); return new CommandResult(String.format(MESSAGE_SUCCESS, task)); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index 5ae3dabd372..e60b4ae8f2c 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -1,5 +1,7 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; @@ -8,7 +10,6 @@ import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; - public class TagTaskCommandParser implements Parser { /** @@ -17,15 +18,21 @@ public class TagTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public TagTaskCommand parse(String args) throws ParseException { - ArgumentMultimap argMultimapDeadline = + ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); - - if (!arePrefixesPresent(argMultimapDeadline, PREFIX_NAME) - || !argMultimapDeadline.getPreamble().isEmpty()) { + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, TagTaskCommand.MESSAGE_USAGE)); } - String name = argMultimapDeadline.getValue(PREFIX_NAME).get(); + if (argMultimapTag.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, + TagTaskCommand.MESSAGE_USAGE)); + } + String name = argMultimapTag.getValue(PREFIX_NAME).get(); + if (name.isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_NAME, + TagTaskCommand.MESSAGE_USAGE)); + } String[] argsArr = args.trim().split(" "); int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); return new TagTaskCommand(index, name); From 65f2d63cdacaf6ed95a8bd6e8c9e5c4d7d1dbf53 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Wed, 23 Mar 2022 01:54:08 +0800 Subject: [PATCH 169/507] Complete untagTask command, opposite of tagTask. Finish Logic, Command, Parser. --- .../logic/commands/UntagTaskCommand.java | 69 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ .../logic/parser/UntagTaskCommandParser.java | 50 ++++++++++++++ .../java/manageezpz/model/AddressBook.java | 4 ++ src/main/java/manageezpz/model/Model.java | 9 +++ .../java/manageezpz/model/ModelManager.java | 5 ++ src/main/java/manageezpz/model/task/Task.java | 4 ++ 7 files changed, 145 insertions(+) create mode 100644 src/main/java/manageezpz/logic/commands/UntagTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java diff --git a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java new file mode 100644 index 00000000000..4097d94178a --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java @@ -0,0 +1,69 @@ +package manageezpz.logic.commands; + +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.Person; +import manageezpz.model.task.Task; + +import java.util.List; + +import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; + + +public class UntagTaskCommand extends Command { + public static final String COMMAND_WORD = "untagTask"; + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Untag the Task to your specified Person. " + + "Parameters: INDEX (must be a positive integer) " + + PREFIX_NAME + "EMPLOYEE_NAME" + + "\r\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + PREFIX_NAME + "Alex Yeoh"; + public static final String MESSAGE_SUCCESS = "Task has been untagged! : %1$s"; + + private int index; + private String name; + + /** + * Constructor for TagTaskCommand + * @param index index of the Task to be tagged. + * @param name Name of Employee to tag Task to. + */ + public UntagTaskCommand(int index, String name) { + this.index = index; + this.name = name; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + Task task; + try { + task = model.getFilteredTaskList().get(index); + } catch (IndexOutOfBoundsException e) { + throw new CommandException("This Task Number is invalid. \r\n" + + MESSAGE_USAGE); + } + + List personList = model.getFilteredPersonList(); + Person person = null; + for (int i = 0; i < personList.size(); i++) { + Person tempPerson = personList.get(i); + if (tempPerson.getName().toString().equals(name)) { + person = tempPerson; + break; + } + } + if (person == null) { + throw new CommandException("Sorry, the person does not exist within our database. \r\n" + + MESSAGE_USAGE); + } else if (!model.isTagged(task, person)) { + throw new CommandException("Person is not tagged to the task!"); + } + + model.untagTask(task, person); + return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + } + +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index cf190f3fd93..645c519353d 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -22,6 +22,7 @@ import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.UnmarkTaskCommand; +import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -96,6 +97,9 @@ public Command parseCommand(String userInput) throws ParseException { case TagTaskCommand.COMMAND_WORD: return new TagTaskCommandParser().parse(arguments); + case UntagTaskCommand.COMMAND_WORD: + return new UntagTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java new file mode 100644 index 00000000000..b308c5b386c --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -0,0 +1,50 @@ +package manageezpz.logic.parser; + +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; + + +import manageezpz.logic.commands.UntagTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +import java.util.stream.Stream; + +public class UntagTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand + * and returns an AddDeadlineTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public UntagTaskCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimapTag = + ArgumentTokenizer.tokenize(args, PREFIX_NAME); + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + UntagTaskCommand.MESSAGE_USAGE)); + } + if (argMultimapTag.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, + UntagTaskCommand.MESSAGE_USAGE)); + } + String name = argMultimapTag.getValue(PREFIX_NAME).get(); + if (name.isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_NAME, + UntagTaskCommand.MESSAGE_USAGE)); + } + String[] argsArr = args.trim().split(" "); + int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); + return new UntagTaskCommand(index, name); + } + + + /** + * 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/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 84f41cd54e2..7d3bc45266e 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -285,6 +285,10 @@ public void tagTask(Task task, Person person) { task.assignedTo(person); } + public void untagTask(Task task, Person person) { + task.removeAssigned(person); + } + //// person-level operations /** diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 0d0e9fbcd51..f3b5a178842 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -123,9 +123,18 @@ public interface Model { * Tags the given task. * The task must exist in the task list. * @param task + * @param person */ void tagTask(Task task, Person person); + /** + * Untags the given task. + * The task must exist in the task list. + * @param task + * @param person + */ + void untagTask(Task task, Person person); + /** * Adds the given task. * {@code task} must not already exist in the task list diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 028282c0e92..202b3e69a67 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -204,6 +204,11 @@ public void tagTask(Task task, Person person) { addressBook.tagTask(task, person); } + @Override + public void untagTask(Task task, Person person) { + addressBook.untagTask(task, person); + } + /** * {@inheritDoc} */ diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 5ff60e4536f..3a18b0ebbdb 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -107,6 +107,10 @@ public void assignedTo(Person person) { assignees.add(person); } + public void removeAssigned(Person person) { + assignees.remove(person); + } + @Override public boolean equals(Object other) { if (other == this) { From 4ae0aa7f3abac41ac5772059d6ff8b8d7ad03671 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Wed, 23 Mar 2022 01:56:08 +0800 Subject: [PATCH 170/507] Fix gradle check errors --- .../manageezpz/logic/commands/UntagTaskCommand.java | 11 +++++------ .../logic/parser/UntagTaskCommandParser.java | 3 +-- .../logic/commands/AddEmployeeCommandTest.java | 5 +++++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java index 4097d94178a..3cd233bb86a 100644 --- a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java @@ -1,16 +1,15 @@ package manageezpz.logic.commands; +import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; + +import java.util.List; + import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.person.Person; import manageezpz.model.task.Task; -import java.util.List; - -import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; - - public class UntagTaskCommand extends Command { public static final String COMMAND_WORD = "untagTask"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Untag the Task to your specified Person. " diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index b308c5b386c..1a8732892f7 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -5,12 +5,11 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import java.util.stream.Stream; import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import java.util.stream.Stream; - public class UntagTaskCommandParser implements Parser { /** diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index 9d40a28da82..7ebdef4e285 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -229,6 +229,11 @@ public void tagTask(Task task, Person person) { throw new AssertionError("This method should not be called."); } + @Override + public void untagTask(Task task, Person person) { + throw new AssertionError("This method should not be called."); + } + } /** From 4ea8905e1b89d5bd2b6b27a217f344e5245e6922 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Wed, 23 Mar 2022 16:27:32 +0800 Subject: [PATCH 171/507] Update storage class diagram --- docs/diagrams/StorageClassDiagram.puml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index 760305e0e58..625b05043dc 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -19,7 +19,7 @@ Class "<>\nAddressBookStorage" as AddressBookStorage Class JsonAddressBookStorage Class JsonSerializableAddressBook Class JsonAdaptedPerson -Class JsonAdaptedTag +Class JsonAdaptedTask } } @@ -38,6 +38,6 @@ JsonUserPrefsStorage .up.|> UserPrefsStorage JsonAddressBookStorage .up.|> AddressBookStorage JsonAddressBookStorage ..> JsonSerializableAddressBook JsonSerializableAddressBook --> "*" JsonAdaptedPerson -JsonAdaptedPerson --> "*" JsonAdaptedTag +JsonSerializableAddressBook --> "*" JsonAdaptedTask @enduml From 25c08534c2e30a5590e6fd404f67ffca74b0bbaf Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:34:11 +0800 Subject: [PATCH 172/507] Update model for priority and edit commands --- .../java/manageezpz/model/AddressBook.java | 17 ++++++++++++++++ src/main/java/manageezpz/model/Model.java | 15 ++++++++++++++ .../java/manageezpz/model/ModelManager.java | 20 ++++++++++++------- src/main/java/manageezpz/model/task/Task.java | 13 ++++++++++++ 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 84f41cd54e2..b8b6134dcb9 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -285,6 +285,22 @@ public void tagTask(Task task, Person person) { task.assignedTo(person); } + public boolean hasPriority(Task task) { + requireNonNull(task); + boolean returnValue; + if (task.getPriority() != null) { + returnValue = true; + } else { + returnValue = false; + } + return returnValue; + } + public void setTask(Task target, Task editedTask) { + requireNonNull(editedTask); + + tasks.setTask(target, editedTask); + } + //// person-level operations /** @@ -351,4 +367,5 @@ public boolean equals(Object other) { public int hashCode() { return persons.hashCode(); } + } diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 0d0e9fbcd51..312881185b0 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -178,4 +178,19 @@ public interface Model { * Returns a list of tasks that satisfy the option given. */ String listTasks(Prefix option); + + /** + * Returns true if a {@code Task} is allocated with a priority. + */ + boolean hasPriority(Task task); + + /** + * Replaces the given task {@code target} with {@code editedTask}. + * {@code target} must exist in the task list. + * The task identity of {@code editedTask} must not be the same as another existing task in the task list. + */ + void setTask(Task target, Task editedTask); + + + } diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 028282c0e92..e2c2a233b1a 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -231,20 +231,26 @@ public boolean isTagged(Task task, Person person) { return task.getAssignees().contains(person); } - - /** - * {@inheritDoc} - */ @Override public String listTasks() { return addressBook.listTask(); } - /** - * {@inheritDoc} - */ @Override public String listTasks(Prefix option) { return addressBook.listTask(option); } + + @Override + public boolean hasPriority(Task task) { + return addressBook.hasPriority(task); + } + + @Override + public void setTask(Task target, Task editedTask) { + requireAllNonNull(target, editedTask); + + addressBook.setTask(target, editedTask); + + } } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 5ff60e4536f..ff4c217e9d6 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -15,6 +15,11 @@ public class Task { protected boolean isDone; protected String type; + protected Priority priority; + + enum Priority { + LOW, MEDIUM, HIGH; + } // Identity fields private final Description taskDescription; @@ -81,6 +86,14 @@ public boolean isDone() { return isDone; } + public void setPriority(String priority) { + this.priority = Priority.valueOf(priority); + } + + public Priority getPriority() { + return this.priority; + } + /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. From 40508ec405f6cac9d82a8a10c246150a5a5f71d1 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:38:05 +0800 Subject: [PATCH 173/507] Update AddressBook.java --- src/main/java/manageezpz/model/AddressBook.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 006702f944f..46a2bce4f86 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -295,13 +295,13 @@ public boolean hasPriority(Task task) { } return returnValue; } - + public void setTask(Task target, Task editedTask) { requireNonNull(editedTask); tasks.setTask(target, editedTask); } - + public void untagTask(Task task, Person person) { task.removeAssigned(person); } From 61f12d5ef59c56e79ceb1950a35275bbc371d633 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:39:50 +0800 Subject: [PATCH 174/507] Update AddressBook.java --- src/main/java/manageezpz/model/AddressBook.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 46a2bce4f86..27f2ff8d150 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -295,13 +295,11 @@ public boolean hasPriority(Task task) { } return returnValue; } - public void setTask(Task target, Task editedTask) { requireNonNull(editedTask); tasks.setTask(target, editedTask); } - public void untagTask(Task task, Person person) { task.removeAssigned(person); } From 6967d7e3b81e3e35ac2645837b83d507f3e86ee8 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:44:09 +0800 Subject: [PATCH 175/507] Update checkstyle --- src/main/java/manageezpz/model/AddressBook.java | 5 +++++ .../logic/commands/AddEmployeeCommandTest.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index b8b6134dcb9..9dfaee2c4ab 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -285,6 +285,11 @@ public void tagTask(Task task, Person person) { task.assignedTo(person); } + /** + * Checks if a given task has a priority tagged to it. + * @param task the task to be checked. + * @return true if the task is tagged with a prioirity, false otherwise. + */ public boolean hasPriority(Task task) { requireNonNull(task); boolean returnValue; diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index 9d40a28da82..e5cdf81923e 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -204,6 +204,16 @@ public String listTasks(Prefix option) { return null; } + @Override + public boolean hasPriority(Task task) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setTask(Task target, Task editedTask) { + throw new AssertionError("This method should not be called."); + } + @Override public void deleteTask(Task task) { throw new AssertionError("This method should not be called."); From 7b3bc4c450ed5a658b93003fd9982e1c1515eecc Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:45:37 +0800 Subject: [PATCH 176/507] Update AddressBook.java --- src/main/java/manageezpz/model/AddressBook.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 27f2ff8d150..73adac1acdf 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -285,6 +285,11 @@ public void tagTask(Task task, Person person) { task.assignedTo(person); } + /** + * Checks if a given task has a priority tagged to it. + * @param task the task to be checked. + * @return true if the task is tagged with a prioirity, false otherwise. + */ public boolean hasPriority(Task task) { requireNonNull(task); boolean returnValue; From 7e3c1e7e5e61fc7c1e72c3d61fa3aba098529bc1 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:47:11 +0800 Subject: [PATCH 177/507] Update AddressBook.java --- src/main/java/manageezpz/model/AddressBook.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 73adac1acdf..96b5da6ab95 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -285,11 +285,11 @@ public void tagTask(Task task, Person person) { task.assignedTo(person); } - /** - * Checks if a given task has a priority tagged to it. - * @param task the task to be checked. - * @return true if the task is tagged with a prioirity, false otherwise. - */ + /** + * Checks if a given task has a priority tagged to it. + * @param task the task to be checked. + * @return true if the task is tagged with a prioirity, false otherwise. + */ public boolean hasPriority(Task task) { requireNonNull(task); boolean returnValue; From ce246c4d18d15062e891c0a51862cfd009d44174 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Wed, 23 Mar 2022 18:10:50 +0800 Subject: [PATCH 178/507] Implement Storage for Priority Tagging --- .../manageezpz/storage/JsonAdaptedTask.java | 17 +++++++++++++++-- .../typicalPersonsAddressBook.json | 12 ++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 8be6983d9a0..0853d5e4b30 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -33,6 +33,7 @@ class JsonAdaptedTask { private String eventEndTime; private String status; private String tag; + private String priority; /** @@ -44,7 +45,8 @@ public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("status" @JsonProperty("date") String date, @JsonProperty("deadlineTime") String deadlineTime, @JsonProperty("eventStartTime") String eventStartTime, @JsonProperty("eventEndTime") String eventEndTime, - @JsonProperty("tag") String tag) { + @JsonProperty("tag") String tag, + @JsonProperty("priority") String priority) { this.description = new Description(description).toString(); this.status = status; this.type = type; @@ -53,6 +55,7 @@ public JsonAdaptedTask(@JsonProperty("type") String type, @JsonProperty("status" this.eventStartTime = eventStartTime; this.eventEndTime = eventEndTime; this.tag = tag; + this.priority = priority; } /** @@ -63,6 +66,7 @@ public JsonAdaptedTask(Task source) { description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks status = source.getStatusIcon(); // Generally for all tasks + this.priority = String.valueOf(source.getPriority()); // Generally for all tasks if (source instanceof Deadline) { this.date = ((Deadline) source).getDate().getDate(); // For Deadline this.deadlineTime = ((Deadline) source).getTime().getTime(); // For Deadline @@ -80,6 +84,7 @@ public JsonAdaptedTask(Task source) { StringJoiner joiner = new StringJoiner(", "); personList.forEach(item -> joiner.add(item.getName().toString())); this.tag = joiner.toString(); + } /** @@ -110,7 +115,9 @@ public Task toModelType(ObservableList persons) throws IllegalValueExcep if (isDone) { newTodo.setTaskDone(); } - + if (priority != null && !priority.isEmpty()) { + newTodo.setPriority(priority); + } String[] tagList = tag.split(","); for (int i = 0; i < tagList.length; i++) { String currentTag = tagList[i].trim(); @@ -131,6 +138,9 @@ public Task toModelType(ObservableList persons) throws IllegalValueExcep if (isDone) { newDeadline.setTaskDone(); } + if (priority != null && !priority.isEmpty()) { + newDeadline.setPriority(priority); + } String[] tagList = tag.split(","); for (int i = 0; i < tagList.length; i++) { String currentTag = tagList[i].trim(); @@ -151,6 +161,9 @@ public Task toModelType(ObservableList persons) throws IllegalValueExcep if (isDone) { newEvent.setTaskDone(); } + if (priority != null && !priority.isEmpty()) { + newEvent.setPriority(priority); + } String[] tagList = tag.split(","); for (int i = 0; i < tagList.length; i++) { String currentTag = tagList[i].trim(); diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index dbcb081d532..ebfd442e387 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -37,7 +37,8 @@ "deadlineTime" : "", "eventStartTime" : "", "eventEndTime" : "", - "tag" : "" + "tag" : "", + "priority" : "" }, { "type" : "deadline", "status": "", @@ -46,7 +47,8 @@ "deadlineTime" : "0400", "eventStartTime" : null, "eventEndTime" : null, - "tag" : "" + "tag" : "", + "priority" : "" }, { "type" : "event", "status": "", @@ -55,7 +57,8 @@ "deadlineTime" : null, "eventStartTime" : "1800", "eventEndTime" : "2000", - "tag" : "" + "tag" : "", + "priority" : "" }, { "type" : "deadline", "status": "", @@ -64,6 +67,7 @@ "deadlineTime" : "0400", "eventStartTime" : null, "eventEndTime" : null, - "tag" : "" + "tag" : "", + "priority" : "" } ] } From b97bb99bc06c1500e8e78f242ebafa3bff51e0b2 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 23 Mar 2022 18:59:26 +0800 Subject: [PATCH 179/507] implement skeleton edit task command --- .../logic/commands/EditTaskCommand.java | 24 +++++++++++++++++ .../logic/parser/AddressBookParser.java | 22 +++------------ .../logic/parser/EditTaskCommandParser.java | 27 +++++++++++++++++++ 3 files changed, 55 insertions(+), 18 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/EditTaskCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java new file mode 100644 index 00000000000..6fa556c4346 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -0,0 +1,24 @@ +package manageezpz.logic.commands; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; + +public class EditTaskCommand extends Command { + public static final String COMMAND_WORD = "editTask"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + + "by the index number used in the displayed task list. " + + "Existing values will be overwritten by the input values.\n"; + + private final Index index; + + public EditTaskCommand(Index index) { + this.index = index; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + return null; + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 645c519353d..6ae8f9e0d7a 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,23 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.AddEventTaskCommand; -import manageezpz.logic.commands.AddTodoTaskCommand; -import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteEmployeeCommand; -import manageezpz.logic.commands.DeleteTaskCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; -import manageezpz.logic.commands.MarkTaskCommand; -import manageezpz.logic.commands.TagTaskCommand; -import manageezpz.logic.commands.UnmarkTaskCommand; -import manageezpz.logic.commands.UntagTaskCommand; +import manageezpz.logic.commands.*; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -58,6 +42,9 @@ public Command parseCommand(String userInput) throws ParseException { case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); + case EditTaskCommand.COMMAND_WORD: + return new EditTaskCommandParser().parse(arguments); + case DeleteEmployeeCommand.COMMAND_WORD: return new DeleteEmployeeCommandParser().parse(arguments); @@ -104,5 +91,4 @@ public Command parseCommand(String userInput) throws ParseException { throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } - } diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java new file mode 100644 index 00000000000..2d574c98cb0 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -0,0 +1,27 @@ +package manageezpz.logic.parser; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditTaskCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.*; + +public class EditTaskCommandParser implements Parser{ + + @Override + public EditTaskCommand parse(String args) throws ParseException { + requireNonNull(args); + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_TIME, PREFIX_DATE); + Index index; + try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE), pe); + } + return null; + } +} From 6103e5c017c7bbcd2ce6a3d9b66a455ff143455b Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 19:56:56 +0800 Subject: [PATCH 180/507] Updated DG --- docs/DeveloperGuide.md | 10 ++++++- docs/diagrams/ModelClassDiagram.puml | 26 +++-------------- docs/diagrams/ModelTaskClassDiagram.puml | 35 +++++++++++++++++++++++ docs/images/ModelClassDiagramUpdated.PNG | Bin 0 -> 102291 bytes docs/images/ModelTaskClassDiagram.png | Bin 0 -> 51246 bytes 5 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 docs/diagrams/ModelTaskClassDiagram.puml create mode 100644 docs/images/ModelClassDiagramUpdated.PNG create mode 100644 docs/images/ModelTaskClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f162ab2f028..dedf0c8b547 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -116,13 +116,15 @@ How the parsing works: ### Model component **API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) - + The `Model` component, * stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). +* stores the task list data i.e., all `Task` objects (which are contained in a `UniqueTaskList` object). * stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as 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. +* stores the currently 'selected' `Task` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as 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. * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) @@ -154,6 +156,12 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. +### **Task Components** +- Added Task Classes to encapsulate an API Task. + +#### **Implementation** + + ### \[Proposed\] Undo/redo feature #### Proposed Implementation diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 5baf1edbb19..f6cd9052898 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -18,20 +18,15 @@ Class Address Class Email Class Name Class Phone -Class Tag -Class Task -Class Date -Class Time -Class Description -Class UniqueTaskList +Package TaskModel { +} } Class HiddenOutside #FFFFFF HiddenOutside ..> Model AddressBook .up.|> ReadOnlyAddressBook - ModelManager .up.|> Model Model .right.> ReadOnlyUserPrefs Model .left.> ReadOnlyAddressBook @@ -39,26 +34,13 @@ ModelManager -left-> "1" AddressBook ModelManager -right-> "1" UserPrefs UserPrefs .up.|> ReadOnlyUserPrefs - -AddressBook *--> "1" UniquePersonList -AddressBook *--> "1" UniqueTaskList UniquePersonList --> "~* all" Person -UniqueTaskList --> "~* all" Task +AddressBook *--> "1" UniquePersonList Person *--> Name Person *--> Phone Person *--> Email Person *--> Address -Person *--> "*" Tag -Task *--> Description -Task *--> Time -Task *--> Date - - - -Name -[hidden]right-> Phone -Phone -[hidden]right-> Address -Address -[hidden]right-> Email ModelManager -->"~* filtered" Person -ModelManager -->"~* filtered" Task +ModelManager -->"~* filtered" TaskModel @enduml diff --git a/docs/diagrams/ModelTaskClassDiagram.puml b/docs/diagrams/ModelTaskClassDiagram.puml new file mode 100644 index 00000000000..1eee5fbe475 --- /dev/null +++ b/docs/diagrams/ModelTaskClassDiagram.puml @@ -0,0 +1,35 @@ +@startuml +!include style.puml +skinparam arrowThickness 1.1 +skinparam arrowColor MODEL_COLOR +skinparam classBackgroundColor MODEL_COLOR + +Package TaskModel <>{ +Class Task +Class Todo +Class Event +Class Deadline +Class Date +Class Time +Class Description +Class UniqueTaskList + +} + +UniqueTaskList --> "~* all" Task +AddressBook *--> "1" UniqueTaskList +Task *-> Description +Todo .up.|> Task +Event .up.|> Task +Deadline .up.|> Task +Event *--> "2" Time +Event *--> Date +Deadline *--> Date +Deadline *--> Time +Todo *--> Description +Event *--> Description +Deadline *--> Description + +ModelManager -->"~* filtered" Task +Task -->"~* assigned" Person +@enduml \ No newline at end of file diff --git a/docs/images/ModelClassDiagramUpdated.PNG b/docs/images/ModelClassDiagramUpdated.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5c098d601824718d2092464920520bf277944bf6 GIT binary patch literal 102291 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 - -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. + -![UndoRedoState3](images/UndoRedoState3.png) +A `Task`, +- is stored in `uniqueTaskList` of the Model +- can be represented by a `Todo`, `Event`, or `Deadline` -
:information_source: **Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook 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: - -![UndoSequenceDiagram](images/UndoSequenceDiagram.png) - -
:information_source: **Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. - -
- -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. - -
:information_source: **Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook 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. - -![UndoRedoState4](images/UndoRedoState4.png) - -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. Reason: It no longer makes sense to redo the `add n/David …​` command. This is the behavior that most modern desktop applications follow. - -![UndoRedoState5](images/UndoRedoState5.png) - -The following activity diagram summarizes what happens when a user executes a new command: - - +A `Task` contains the following attributes, +1. a `Description`, which represent the details of the Task to be stored in the `uniqueTaskList` +2. a `Date`, which represent the day, month and year as specified by a number of the Task +3. a `Time`, which represent the period during the Task exists or happens +4. can be assigned/Tagged to multiple different `Person` +5. a type, to differentiate between the different types of task +6. can be marked/unmarked based on whether the task is done or not. +7. [Proposed] can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" #### 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. +#### Aspect: How the components within Task are added or changed +- **Current Choice**: [Proposed] Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. + * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed + * Cons: Less flexible, more steps needed in editing Task objects +- Alternative 1: Allow certain components within Task, like Time and Date to be mutable + * Pros: Less overhead as fewer objects are created + * Cons: Prone to error as a Component might not be correctly changed + +#### Aspect : How the `Task` class is created +- **Current Choice**: The Task class is implemented not as an abstract class. This is because there are no common methods required to be overridden by the sub classes `Todo`, `Event`, `Deadline`. + * Pros: + * Cons: +- Alternative 1: Implement `Task` class as a abstract class + * Pros: Enhances code usability & allows writing of shorter codes + * Cons: -* **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. _{more aspects and alternatives to be added}_ From b7b73740852ba3b55c9d545d307c1e4c0c478dbb Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:10:01 +0800 Subject: [PATCH 184/507] Update DG for v1.3 --- docs/DeveloperGuide.md | 16 ++++--------- .../BetterModelClassDiagramUpdated.puml | 21 ++++++++++++++++++ .../images/BetterModelClassDiagramUpdated.png | Bin 0 -> 30580 bytes 3 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 docs/diagrams/BetterModelClassDiagramUpdated.puml create mode 100644 docs/images/BetterModelClassDiagramUpdated.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8c6fdaabae4..60c02a58394 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,7 +8,7 @@ title: Developer Guide -------------------------------------------------------------------------------------------------------------------- ## **Acknowledgements** -* https://ay2021s2-cs2103t-t12-4.github.io/tp/DeveloperGuide.html#endpoint-components {Documentation idea of splitting the Model component into 2} +* https://ay2021s2-cs2103t-t12-4.github.io/tp/DeveloperGuide.html#endpoint-components {Documentation idea of splitting the Model component into 2, to prevent cramping of image} * {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -------------------------------------------------------------------------------------------------------------------- @@ -114,7 +114,7 @@ How the parsing works: * All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing. ### Model component -**API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) +**API** : [`Model.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/model/Model.java) @@ -128,9 +128,9 @@ The `Model` component, * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) -
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
+
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `TaskList`, which `Task` references. This allows `TaskList` to only require one `Tag` object per unique tag, instead of each `Task` needing their own `Tag` objects.
- +
@@ -185,14 +185,6 @@ A `Task` contains the following attributes, * Pros: Less overhead as fewer objects are created * Cons: Prone to error as a Component might not be correctly changed -#### Aspect : How the `Task` class is created -- **Current Choice**: The Task class is implemented not as an abstract class. This is because there are no common methods required to be overridden by the sub classes `Todo`, `Event`, `Deadline`. - * Pros: - * Cons: -- Alternative 1: Implement `Task` class as a abstract class - * Pros: Enhances code usability & allows writing of shorter codes - * Cons: - _{more aspects and alternatives to be added}_ diff --git a/docs/diagrams/BetterModelClassDiagramUpdated.puml b/docs/diagrams/BetterModelClassDiagramUpdated.puml new file mode 100644 index 00000000000..810930b0b06 --- /dev/null +++ b/docs/diagrams/BetterModelClassDiagramUpdated.puml @@ -0,0 +1,21 @@ +@startuml +!include style.puml +skinparam arrowThickness 1.1 +skinparam arrowColor MODEL_COLOR +skinparam classBackgroundColor MODEL_COLOR + +AddressBook *-right-> "1" UniqueTaskList +AddressBook *-right-> "1" UniqueTagList +UniqueTagList -[hidden]down- UniqueTaskList +UniqueTagList -[hidden]down- UniqueTaskList + +UniqueTagList *-right-> "*" Tag +UniqueTaskList -right-> Person + +Task -up-> "* Assigned" Person + +Task -up-> Description +Todo .up.|> Task +Event .up.|> Task +Deadline .up.|> Task +@enduml diff --git a/docs/images/BetterModelClassDiagramUpdated.png b/docs/images/BetterModelClassDiagramUpdated.png new file mode 100644 index 0000000000000000000000000000000000000000..877be2444f07f0b6376b274cb9122383fbab3cf8 GIT binary patch literal 30580 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 literal 0 HcmV?d00001 From dd02db89ece8e58fecd1da6a82e855b73956b779 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:12:44 +0800 Subject: [PATCH 185/507] Update puml checkstyle --- docs/diagrams/ModelTaskClassDiagram.puml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/diagrams/ModelTaskClassDiagram.puml b/docs/diagrams/ModelTaskClassDiagram.puml index 1eee5fbe475..f1c82981ab4 100644 --- a/docs/diagrams/ModelTaskClassDiagram.puml +++ b/docs/diagrams/ModelTaskClassDiagram.puml @@ -32,4 +32,5 @@ Deadline *--> Description ModelManager -->"~* filtered" Task Task -->"~* assigned" Person + @enduml \ No newline at end of file From 9f3ab00a74513fe115255c1c1af3d483ecbc0fff Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:14:00 +0800 Subject: [PATCH 186/507] Add newline at EOF of puml file --- docs/diagrams/ModelTaskClassDiagram.puml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/diagrams/ModelTaskClassDiagram.puml b/docs/diagrams/ModelTaskClassDiagram.puml index f1c82981ab4..895fa975e5e 100644 --- a/docs/diagrams/ModelTaskClassDiagram.puml +++ b/docs/diagrams/ModelTaskClassDiagram.puml @@ -32,5 +32,4 @@ Deadline *--> Description ModelManager -->"~* filtered" Task Task -->"~* assigned" Person - -@enduml \ No newline at end of file +@enduml From 309649f6cc0b4b158ab2fdb4665c740b529a3cb4 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:27:00 +0800 Subject: [PATCH 187/507] Update DG --- docs/DeveloperGuide.md | 4 +--- .../images/BetterModelClassDiagramUpdated.png | Bin 30580 -> 30581 bytes docs/images/ModelClassDiagramUpdated.PNG | Bin 102291 -> 0 bytes docs/images/ModelClassDiagramUpdated.png | Bin 0 -> 62051 bytes 4 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 docs/images/ModelClassDiagramUpdated.PNG create mode 100644 docs/images/ModelClassDiagramUpdated.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 60c02a58394..7871e269807 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -116,7 +116,7 @@ How the parsing works: ### Model component **API** : [`Model.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/model/Model.java) - + The `Model` component, @@ -129,9 +129,7 @@ The `Model` component, * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components)
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `TaskList`, which `Task` references. This allows `TaskList` to only require one `Tag` object per unique tag, instead of each `Task` needing their own `Tag` objects.
- -
diff --git a/docs/images/BetterModelClassDiagramUpdated.png b/docs/images/BetterModelClassDiagramUpdated.png index 877be2444f07f0b6376b274cb9122383fbab3cf8..5d8e16eef3a40d6402547e7f5a72ec52cecf2f94 100644 GIT binary patch literal 30581 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 Xf3e&eBOYj#iy-;#{o7&@UElu!>KnA2 literal 30580 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 diff --git a/docs/images/ModelClassDiagramUpdated.PNG b/docs/images/ModelClassDiagramUpdated.PNG deleted file mode 100644 index 5c098d601824718d2092464920520bf277944bf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102291 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

b09qr(zZ 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 Date: Wed, 23 Mar 2022 22:07:15 +0800 Subject: [PATCH 189/507] can edit task desc of different tasks --- .../manageezpz/commons/core/Messages.java | 2 + .../logic/commands/EditTaskCommand.java | 84 ++++++++++++++++++- .../logic/parser/AddressBookParser.java | 19 ++++- .../logic/parser/EditTaskCommandParser.java | 27 ++++-- 4 files changed, 120 insertions(+), 12 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index cc56934272d..e923def375a 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -13,5 +13,7 @@ public class Messages { public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASK_LISTED_OVERVIEW = "%1$d tasks listed!"; + public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: \n%1$s"; + public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred."; } diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 294c20175b5..017e95a2974 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -1,8 +1,23 @@ package manageezpz.logic.commands; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; +import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.logic.parser.ParserUtil; +import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.Model; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Description; +import manageezpz.model.task.Event; +import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; + +/** + * Edits the details of an existing task in the address book. + */ public class EditTaskCommand extends Command { public static final String COMMAND_WORD = "editTask"; @@ -10,11 +25,16 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + "by the index number used in the displayed task list. " + "Existing values will be overwritten by the input values.\n"; + private final Index index; private final String desc; private final String time; private final String date; + /** + * A constructor to store information that is used in editing a task. + */ + public EditTaskCommand(Index index, String desc, String time, String date) { this.index = index; this.desc = desc; @@ -24,9 +44,65 @@ public EditTaskCommand(Index index, String desc, String time, String date) { @Override public CommandResult execute(Model model) throws CommandException { - System.out.println(this.desc); - System.out.println(this.time); - System.out.println(this.date); - throw new CommandException(MESSAGE_USAGE); + try { + Task currentTask = model.getFilteredTaskList().get(index.getZeroBased()); + if (currentTask.getType().equalsIgnoreCase("todo")) { + return handleTodo((Todo) currentTask, model, this.desc); + } else if (currentTask.getType().equalsIgnoreCase("deadline")) { + return handleDeadline((Deadline) currentTask, model, this.desc, this.date, this.time); + } else if (currentTask.getType().equalsIgnoreCase("event")) { + return handleEvent((Event) currentTask, model, this.desc, this.date, this.time); + } else { + throw new CommandException(MESSAGE_UNEXPECTED_ERROR); + } + } catch (Exception e) { + throw new CommandException(MESSAGE_USAGE); + } + } + + private CommandResult handleTodo(Todo currentTask, Model model, String desc) throws ParseException { + try { + Description taskDesc = ParserUtil.parseDescription(desc); + Todo newTask = new Todo(taskDesc); + model.setTask(currentTask, newTask); + return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, newTask)); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE), pe); + } + } + + private CommandResult handleDeadline(Deadline currentTask, Model model, String desc, String time, String date) + throws ParseException { + if (!desc.isEmpty() && time.isEmpty() && date.isEmpty()) { + try { + Description taskDesc = ParserUtil.parseDescription(desc); + Deadline newTask = new Deadline(taskDesc, currentTask.getDate(), currentTask.getTime()); + model.setTask(currentTask, newTask); + return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, newTask)); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskCommand.MESSAGE_USAGE), pe); + } + } else { + throw new ParseException("time and date update not supported yet."); + } + } + + private CommandResult handleEvent(Event currentTask, Model model, String desc, String time, String date) + throws ParseException { + if (!desc.isEmpty() && time.isEmpty() && date.isEmpty()) { + try { + Description taskDesc = ParserUtil.parseDescription(desc); + Event newTask = new Event(taskDesc, currentTask.getDate(), + currentTask.getStartTime(), currentTask.getEndTime()); + model.setTask(currentTask, newTask); + return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, newTask)); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskCommand.MESSAGE_USAGE), pe); + } + } else { + throw new ParseException("time and date update not supported yet."); + } } } diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 6ae8f9e0d7a..bf0c6bfe266 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,7 +6,24 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.*; +import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEmployeeCommand; +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.commands.AddTodoTaskCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.DeleteEmployeeCommand; +import manageezpz.logic.commands.DeleteTaskCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditTaskCommand; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.commands.TagTaskCommand; +import manageezpz.logic.commands.UnmarkTaskCommand; +import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index 393e5e7ebe2..6cfb818da76 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -1,22 +1,32 @@ package manageezpz.logic.parser; +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; -import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.*; +/** + * Parses input arguments and creates a new EditTaskCommand object. + */ -public class EditTaskCommandParser implements Parser{ +public class EditTaskCommandParser implements Parser { + /** + * Parses {@code String args} which is the inputs given by the user + * @throws ParseException if the given task index is not in the address book, + * or if either description or time or date is not provided. + */ @Override public EditTaskCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_TIME, PREFIX_DATE); Index index; - EditTaskRequest editTaskRequest; try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { @@ -27,10 +37,13 @@ public EditTaskCommand parse(String args) throws ParseException { && argMultimap.getValue(PREFIX_DATE).isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE)); } else { - return new EditTaskCommand(index, argMultimap.getValue(PREFIX_DESCRIPTION).get(), - argMultimap.getValue(PREFIX_TIME).get(), argMultimap.getValue(PREFIX_DATE).get()); + return new EditTaskCommand(index, argMultimap.getValue(PREFIX_DESCRIPTION).orElse(""), + argMultimap.getValue(PREFIX_TIME).orElse(""), + argMultimap.getValue(PREFIX_DATE).orElse("")); } } } + + From f5f7dfc139c402e471c8edcdf792a086ed8903e5 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 23 Mar 2022 22:13:55 +0800 Subject: [PATCH 190/507] can edit task desc of different tasks --- .../java/manageezpz/logic/commands/EditTaskCommand.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 017e95a2974..ed782a07a32 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -3,6 +3,7 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; @@ -23,8 +24,11 @@ public class EditTaskCommand extends Command { public static final String COMMAND_WORD = "editTask"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " - + "by the index number used in the displayed task list. " - + "Existing values will be overwritten by the input values.\n"; + + "by the index number used in the displayed task list.\n" + + "Parameters: INDEX (must exist in the Address Book) " + + "[" + PREFIX_DESCRIPTION + " NAME] \n" + + "Example: " + COMMAND_WORD + " 1 " + + PREFIX_DESCRIPTION + " Eat bananas "; private final Index index; private final String desc; From ff9a6c896a9958f85a0e47ddd780870f98c95f9a Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Thu, 24 Mar 2022 00:53:27 +0800 Subject: [PATCH 191/507] can edit desc, time, date for deadline --- .../logic/commands/EditTaskCommand.java | 77 +++++++++++++++---- 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index ed782a07a32..0d47f8ded79 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -10,11 +10,7 @@ import manageezpz.logic.parser.ParserUtil; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.Model; -import manageezpz.model.task.Deadline; -import manageezpz.model.task.Description; -import manageezpz.model.task.Event; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; +import manageezpz.model.task.*; /** * Edits the details of an existing task in the address book. @@ -64,6 +60,39 @@ public CommandResult execute(Model model) throws CommandException { } } + private Description parseDesc(String desc) throws ParseException { + Description parseDescResult; + try { + parseDescResult = ParserUtil.parseDescription(desc); + return parseDescResult; + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskCommand.MESSAGE_USAGE), pe); + } + } + + private Time parseTime (String time) throws ParseException { + Time parseTimeResult; + try { + parseTimeResult = ParserUtil.parseTime(time); + return parseTimeResult; + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskCommand.MESSAGE_USAGE), pe); + } + } + + private Date parseDate(String date) throws ParseException { + Date parseDateResult; + try { + parseDateResult = ParserUtil.parseDate(date); + return parseDateResult; + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditTaskCommand.MESSAGE_USAGE), pe); + } + } + private CommandResult handleTodo(Todo currentTask, Model model, String desc) throws ParseException { try { Description taskDesc = ParserUtil.parseDescription(desc); @@ -75,21 +104,35 @@ private CommandResult handleTodo(Todo currentTask, Model model, String desc) thr } } - private CommandResult handleDeadline(Deadline currentTask, Model model, String desc, String time, String date) + + private CommandResult handleDeadline(Deadline currentTask, Model model, String desc, String date, String time) throws ParseException { - if (!desc.isEmpty() && time.isEmpty() && date.isEmpty()) { - try { - Description taskDesc = ParserUtil.parseDescription(desc); - Deadline newTask = new Deadline(taskDesc, currentTask.getDate(), currentTask.getTime()); - model.setTask(currentTask, newTask); - return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, newTask)); - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - EditTaskCommand.MESSAGE_USAGE), pe); - } + + Description dl_description; + Time dl_time; + Date dl_date; + + if (desc.isEmpty()) { + dl_description = currentTask.getDescription(); } else { - throw new ParseException("time and date update not supported yet."); + dl_description = parseDesc(desc); + } + + if (time.isEmpty()) { + dl_time = currentTask.getTime(); + } else { + dl_time = parseTime(time); } + + if (date.isEmpty()) { + dl_date = currentTask.getDate(); + } else { + dl_date = parseDate(date); + } + + Deadline newTask = new Deadline(dl_description, dl_date, dl_time); + model.setTask(currentTask, newTask); + return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, newTask)); } private CommandResult handleEvent(Event currentTask, Model model, String desc, String time, String date) From 0703dd54b1d65144ea70240ab7a2190a9477a4e6 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Thu, 24 Mar 2022 01:19:41 +0800 Subject: [PATCH 192/507] can edit desc, time, date for event --- .../manageezpz/commons/core/Messages.java | 1 + .../logic/commands/EditTaskCommand.java | 63 ++++++++++++++----- 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index e923def375a..215c7db830c 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -15,5 +15,6 @@ public class Messages { public static final String MESSAGE_TASK_LISTED_OVERVIEW = "%1$d tasks listed!"; public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: \n%1$s"; public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred."; + public static final String MESSAGE_INVAlID_TIME_RANGE = "The time range you provided is invalid."; } diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 0d47f8ded79..f4f6587e2d2 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -1,8 +1,6 @@ package manageezpz.logic.commands; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; -import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; +import static manageezpz.commons.core.Messages.*; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.commons.core.index.Index; @@ -12,6 +10,8 @@ import manageezpz.model.Model; import manageezpz.model.task.*; +import java.util.ArrayList; + /** * Edits the details of an existing task in the address book. */ @@ -93,6 +93,19 @@ private Date parseDate(String date) throws ParseException { } } + private ArrayListThe issue on AddressBook level 4 + */ + + public final Task task; + + @FXML + private HBox cardPane; + @FXML + private GridPane detailsPane; + @FXML + private Label id; + @FXML + private Label description; + @FXML + private Label typeLabel; + @FXML + private Label type; + @FXML + private Label dateTimeLabel; + @FXML + private Label dateTime; + @FXML + private Label employeesTagLabel; + @FXML + private Label employeesTag; + @FXML + private Label statusIsDone; + + /** + * Creates a {@code TaskCard} with the given {@code Task} and index to display. + */ + public TaskCard(Task task, int displayedIndex) { + super(FXML); + this.task = task; + + id.setText(displayedIndex + "."); + description.setText(task.getDescription().description); + type.setText(task.getType()); + + if (task instanceof Deadline || task instanceof Event) { + dateTime.setText(task.getDateTime()); + } + + if (!task.getAssignees().isEmpty()) { + String assigneesNames = task.getAssignees() + .stream() + .flatMap(person -> Stream.of(person.getName().fullName)) + .collect(Collectors.joining(", ")); + + employeesTag.setText(assigneesNames); + } + + // Remove row for 'date/time' if it is a Todo task + if (task instanceof Todo) { + removeRow(detailsPane, GridPane.getRowIndex(dateTimeLabel)); + } + + // Remove row for 'assigned to' if there are no employees assigned to the task + if (task.getAssignees().isEmpty()) { + removeRow(detailsPane, GridPane.getRowIndex(employeesTagLabel)); + } + + if (task.isDone()) { + statusIsDone.setText("Done"); + statusIsDone.getStyleClass().add("cell_status_done_label"); + } else { + statusIsDone.setText("Not Done"); + statusIsDone.getStyleClass().add("cell_status_not_done_label"); + } + } + + /** + * Gets row index constrain for given node, forcefully as integer: 0 as null. + * @param node Node to look up the constraint for + * @return The row index as primitive integer + */ + public int getRowIndexAsInteger(Node node) { + return GridPane.getRowIndex(node) == null ? 0 : GridPane.getRowIndex(node); + } + + /** + * Removes row from grid pane by index. + * @param grid Grid pane to be affected + * @param targetRowIndexIntegerObject Target row index to be removed. Integer object type, + * because for some reason `getRowIndex` returns null + * for children at 0th row. + */ + public void removeRow(GridPane grid, Integer targetRowIndexIntegerObject) { + int targetRowIndex = targetRowIndexIntegerObject == null ? 0 : targetRowIndexIntegerObject; + + // Remove children from row + grid.getChildren().removeIf(node -> (getRowIndexAsInteger(node) == targetRowIndex)); + + // Update indexes of other rows, i.e., shift rows up + grid.getChildren().forEach(node -> { + int rowIndex = getRowIndexAsInteger(node); + + if (targetRowIndex < rowIndex) { + GridPane.setRowIndex(node, rowIndex - 1); + } + }); + + // Remove row constraints + grid.getRowConstraints().remove(targetRowIndex); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof TaskCard)) { + return false; + } + + // state check + TaskCard card = (TaskCard) other; + return id.getText().equals(card.id.getText()) + && task.equals(card.task); + } +} diff --git a/src/main/java/manageezpz/ui/TaskListPanel.java b/src/main/java/manageezpz/ui/TaskListPanel.java new file mode 100644 index 00000000000..2d74958c7ab --- /dev/null +++ b/src/main/java/manageezpz/ui/TaskListPanel.java @@ -0,0 +1,50 @@ +package manageezpz.ui; + +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.layout.Region; +import manageezpz.commons.core.LogsCenter; +import manageezpz.model.person.Person; +import manageezpz.model.task.Task; + +import java.util.logging.Logger; + +/** + * Panel containing the list of tasks. + */ +public class TaskListPanel extends UiPart { + private static final String FXML = "TaskListPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(TaskListPanel.class); + + @FXML + private ListView taskListView; + + /** + * Creates a {@code TaskListPanel} with the given {@code ObservableList}. + */ + public TaskListPanel(ObservableList taskList) { + super(FXML); + taskListView.setItems(taskList); + taskListView.setCellFactory(listView -> new TaskListViewCell()); + } + + /** + * Custom {@code ListCell} that displays the graphics of a {@code Task} using a {@code TaskCard}. + */ + class TaskListViewCell extends ListCell { + @Override + protected void updateItem(Task task, boolean empty) { + super.updateItem(task, empty); + + if (empty || task == null) { + setGraphic(null); + setText(null); + } else { + setGraphic(new TaskCard(task, getIndex() + 1).getRoot()); + } + } + } + +} diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 36e6b001cd8..eb956bdb191 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -132,6 +132,30 @@ -fx-text-fill: #010504; } +.cell_status_done_label { + -fx-background-color: #34a853; + -fx-background-radius: 5; + -fx-font-family: "Segoe UI"; + -fx-font-size: 13px; + -fx-text-fill: #eaeaea; +} + +.cell_status_not_done_label { + -fx-background-color: #ea4335; + -fx-background-radius: 5; + -fx-font-family: "Segoe UI"; + -fx-font-size: 13px; + -fx-text-fill: #eaeaea; +} + +.cell_priority_label { + -fx-background-color: #4285f4; + -fx-background-radius: 5; + -fx-font-family: "Segoe UI"; + -fx-font-size: 13px; + -fx-text-fill: #eaeaea; +} + .stack-pane { -fx-background-color: derive(#1d1d1d, 20%); } diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index b2e71452231..aa0c77d636b 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -46,11 +46,18 @@ - + + + + + + + diff --git a/src/main/resources/view/TaskListCard.fxml b/src/main/resources/view/TaskListCard.fxml new file mode 100644 index 00000000000..185362effec --- /dev/null +++ b/src/main/resources/view/TaskListCard.fxml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/view/TaskListPanel.fxml b/src/main/resources/view/TaskListPanel.fxml new file mode 100644 index 00000000000..9c4917370a7 --- /dev/null +++ b/src/main/resources/view/TaskListPanel.fxml @@ -0,0 +1,8 @@ + + + + + + + + From 5e07abf20b94ded1123107ba36671e13d80a6c86 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 19:38:25 +0800 Subject: [PATCH 195/507] Update GUI implementation of displaying tasks --- .../logic/commands/ListCommand.java | 15 ++++++++++++++ .../logic/commands/MarkTaskCommand.java | 1 + .../java/manageezpz/model/AddressBook.java | 6 +++--- src/main/java/manageezpz/model/Model.java | 6 ++++++ .../java/manageezpz/model/ModelManager.java | 5 ++++- .../manageezpz/model/task/UniqueTaskList.java | 20 +++++++++++++++++++ src/main/java/manageezpz/ui/MainWindow.java | 4 ++++ 7 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 60cb7e369dc..7d791c56992 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -8,6 +8,10 @@ import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; +import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; + +import java.util.function.Predicate; /** * Lists all persons in the address book to the user. @@ -57,13 +61,24 @@ public ListCommand(Prefix option) { @Override public CommandResult execute(Model model) { requireNonNull(model); + String list; if (option == null) { list = model.listTasks(); + model.updateFilteredTaskList(model.PREDICATE_SHOW_ALL_TASKS); } else { list = model.listTasks(option); + + /*if (option.toString().equals("todo/")) { + model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_TODOS); + } else if (option.toString().equals("deadline/")) { + model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_DEADLINES); + } else if (option.toString().equals("event/")) { + model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_EVENTS); + }*/ } String result = String.join("\n", messageSuccess, list); + return new CommandResult(result); } diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java index 69833ffbad3..97885b50097 100644 --- a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -41,6 +41,7 @@ public CommandResult execute(Model model) throws CommandException { Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); model.markTask(taskToMark); + return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, taskToMark)); } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 5c502491174..984a88a8a0c 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -271,11 +271,11 @@ public void addDeadline(Deadline deadline) { } public void markTask(Task task) { - task.setTaskDone(); + tasks.markTask(task); } public void unmarkTask(Task task) { - task.setTaskNotDone(); + tasks.unmarkTask(task); } public void findTask(Task task) { @@ -344,7 +344,7 @@ public ObservableList getTaskList() { 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) && tasks.equals(((AddressBook) other).tasks)); } diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 0d0e9fbcd51..1642e47b445 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -18,6 +18,12 @@ public interface Model { /** {@code Predicate} that always evaluate to true to show all tasks */ Predicate PREDICATE_SHOW_ALL_TASKS = unused -> true; + /** {@code Predicate} that always evaluate to true to show all tasks */ + Predicate PREDICATE_SHOW_ALL_TODOS = unused -> true; + /** {@code Predicate} that always evaluate to true to show all tasks */ + Predicate PREDICATE_SHOW_ALL_DEADLINES = unused -> true; + /** {@code Predicate} that always evaluate to true to show all tasks */ + Predicate PREDICATE_SHOW_ALL_EVENTS = unused -> true; /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 7195302d617..92a2f0fc3c7 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -153,16 +153,19 @@ public void addTask(Task task) { @Override public void addTodo(Todo todo) { addressBook.addTodo(todo); + updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @Override public void addEvent(Event event) { addressBook.addEvent(event); + updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @Override public void addDeadline(Deadline deadline) { addressBook.addDeadline(deadline); + updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @Override @@ -250,7 +253,7 @@ public boolean equals(Object obj) { ModelManager other = (ModelManager) obj; return addressBook.equals(other.addressBook) && userPrefs.equals(other.userPrefs) - /*&& filteredPersons.equals(other.filteredPersons)*/ + && filteredPersons.equals(other.filteredPersons) && filteredTasks.equals(other.filteredTasks); } } diff --git a/src/main/java/manageezpz/model/task/UniqueTaskList.java b/src/main/java/manageezpz/model/task/UniqueTaskList.java index 20cc13ec3e9..9069e39d391 100644 --- a/src/main/java/manageezpz/model/task/UniqueTaskList.java +++ b/src/main/java/manageezpz/model/task/UniqueTaskList.java @@ -57,6 +57,26 @@ public void setTask(Task target, Task editedTask) { internalList.set(index, editedTask); } + public void markTask(Task toMark) { + requireNonNull(toMark); + + for (Task value : internalList) { + if (value.equals(toMark)) { + value.setTaskDone(); + } + } + } + + public void unmarkTask(Task toUnmark) { + requireNonNull(toUnmark); + + for (Task value : internalList) { + if (value.equals(toUnmark)) { + value.setTaskNotDone(); + } + } + } + /** * Removes the equivalent task from the list. * The task must exist in the list. diff --git a/src/main/java/manageezpz/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java index 209e8a10035..5a78455c8e4 100644 --- a/src/main/java/manageezpz/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -189,6 +189,10 @@ private CommandResult executeCommand(String commandText) throws CommandException logger.info("Result: " + commandResult.getFeedbackToUser()); resultDisplay.setFeedbackToUser(commandResult.getFeedbackToUser()); + // TAKE NOTE + taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); + taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); + if (commandResult.isShowHelp()) { handleHelp(); } From ce79f85e3063913760f42bb97d98c3d192a5a12b Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 19:49:43 +0800 Subject: [PATCH 196/507] Fix gradle check errors --- .../java/manageezpz/logic/commands/ListCommand.java | 4 ---- src/main/java/manageezpz/model/task/Task.java | 1 - .../java/manageezpz/model/task/UniqueTaskList.java | 10 ++++++++-- src/main/java/manageezpz/ui/TaskCard.java | 6 +++--- src/main/java/manageezpz/ui/TaskListPanel.java | 5 ++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 7d791c56992..3b271598412 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -8,10 +8,6 @@ import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; - -import java.util.function.Predicate; /** * Lists all persons in the address book to the user. diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 5e0adf2e63e..664fbe1368d 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -2,7 +2,6 @@ import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Objects; diff --git a/src/main/java/manageezpz/model/task/UniqueTaskList.java b/src/main/java/manageezpz/model/task/UniqueTaskList.java index 9069e39d391..17e177c7563 100644 --- a/src/main/java/manageezpz/model/task/UniqueTaskList.java +++ b/src/main/java/manageezpz/model/task/UniqueTaskList.java @@ -11,8 +11,6 @@ import manageezpz.model.task.exceptions.DuplicateTaskException; import manageezpz.model.task.exceptions.TaskNotFoundException; - - public class UniqueTaskList implements Iterable { private final ObservableList internalList = FXCollections.observableArrayList(); private final ObservableList internalUnmodifiableList = @@ -57,6 +55,10 @@ public void setTask(Task target, Task editedTask) { internalList.set(index, editedTask); } + /** + * Marks a task in the list as done. + * The task must not already exist in the list. + */ public void markTask(Task toMark) { requireNonNull(toMark); @@ -67,6 +69,10 @@ public void markTask(Task toMark) { } } + /** + * Unmarks a task in the list as not done yet. + * The task must not already exist in the list. + */ public void unmarkTask(Task toUnmark) { requireNonNull(toUnmark); diff --git a/src/main/java/manageezpz/ui/TaskCard.java b/src/main/java/manageezpz/ui/TaskCard.java index a8dc935f7f4..521b265aa93 100644 --- a/src/main/java/manageezpz/ui/TaskCard.java +++ b/src/main/java/manageezpz/ui/TaskCard.java @@ -1,5 +1,8 @@ package manageezpz.ui; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import javafx.fxml.FXML; import javafx.scene.Node; import javafx.scene.control.Label; @@ -11,9 +14,6 @@ import manageezpz.model.task.Task; import manageezpz.model.task.Todo; -import java.util.stream.Collectors; -import java.util.stream.Stream; - /** * An UI component that displays information of a {@code Task}. */ diff --git a/src/main/java/manageezpz/ui/TaskListPanel.java b/src/main/java/manageezpz/ui/TaskListPanel.java index 2d74958c7ab..5611c53ce6a 100644 --- a/src/main/java/manageezpz/ui/TaskListPanel.java +++ b/src/main/java/manageezpz/ui/TaskListPanel.java @@ -1,16 +1,15 @@ package manageezpz.ui; +import java.util.logging.Logger; + import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import javafx.scene.layout.Region; import manageezpz.commons.core.LogsCenter; -import manageezpz.model.person.Person; import manageezpz.model.task.Task; -import java.util.logging.Logger; - /** * Panel containing the list of tasks. */ From 086300df5b0ced425bb2999a838e555532e240cd Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 20:12:36 +0800 Subject: [PATCH 197/507] Fix gradle check errors --- .../java/manageezpz/model/ModelManager.java | 26 ++----------------- src/main/java/manageezpz/model/task/Task.java | 2 +- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 6d127e6316c..4d660c1acc5 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -145,7 +145,7 @@ public boolean hasTask(Task task) { @Override public void addTask(Task task) { - // requireNonNull(task); + requireNonNull(task); addressBook.addTask(task); updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @@ -176,13 +176,11 @@ public void deleteTask(Task task) { @Override public void markTask(Task task) { addressBook.markTask(task); - // updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @Override public void unmarkTask(Task task) { addressBook.unmarkTask(task); - // updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); } @Override @@ -200,26 +198,6 @@ public void untagTask(Task task, Person person) { addressBook.untagTask(task, person); } - /** - * {@inheritDoc} - */ - @Override - public void updateFilteredTaskList(Predicate predicate) { - requireNonNull(predicate); - filteredTasks.setPredicate(predicate); - } - - @Override - public ObservableList getFilteredTaskList() { - return filteredTasks; - } - - @Override - public boolean hasTask(Task task) { - requireNonNull(task); - return addressBook.hasTask(task); - } - @Override public boolean isTagged(Task task, Person person) { requireNonNull(task); @@ -273,7 +251,7 @@ public boolean equals(Object obj) { && filteredPersons.equals(other.filteredPersons) && filteredTasks.equals(other.filteredTasks); } - + @Override public boolean hasPriority(Task task) { return addressBook.hasPriority(task); diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index e4be7319a1a..e8d7a47b604 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -89,7 +89,7 @@ public boolean isDone() { public String getDateTime() { return ""; } - + public void setPriority(String priority) { this.priority = Priority.valueOf(priority); } From 3a61e5e096eafa6131a46001acb56926f9a1b883 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 20:23:38 +0800 Subject: [PATCH 198/507] Fix gradle check errors --- .../typicalPersonsAddressBook.json | 38 +------------------ .../JsonSerializableAddressBookTest.java | 4 ++ 2 files changed, 5 insertions(+), 37 deletions(-) diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index dbcb081d532..2dc059c12d6 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -29,41 +29,5 @@ "phone" : "9482442", "email" : "anna@example.com" } ], - "tasks" : [ { - "type" : "todo", - "status": "", - "description" : "Play Genshin Impact", - "date" : "", - "deadlineTime" : "", - "eventStartTime" : "", - "eventEndTime" : "", - "tag" : "" - }, { - "type" : "deadline", - "status": "", - "description" : "Do Daily Commissions", - "date" : "2022-03-15", - "deadlineTime" : "0400", - "eventStartTime" : null, - "eventEndTime" : null, - "tag" : "" - }, { - "type" : "event", - "status": "", - "description" : "Finish 160 Resins", - "date" : "2022-03-15", - "deadlineTime" : null, - "eventStartTime" : "1800", - "eventEndTime" : "2000", - "tag" : "" - }, { - "type" : "deadline", - "status": "", - "description" : "Do MY Commissions", - "date" : "2022-03-15", - "deadlineTime" : "0400", - "eventStartTime" : null, - "eventEndTime" : null, - "tag" : "" - } ] + "tasks" : [ ] } diff --git a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index 50d478b8b54..1fcc28605c1 100644 --- a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -26,6 +26,10 @@ public void toModelType_typicalPersonsFile_success() throws Exception { JsonSerializableAddressBook.class).get(); AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); AddressBook addressBookFromFile = dataFromFile.toModelType(); + System.out.println(typicalPersonsAddressBook.getPersonList()); + System.out.println(typicalPersonsAddressBook.getTaskList()); + System.out.println(addressBookFromFile.getPersonList()); + System.out.println(addressBookFromFile.getTaskList()); assertEquals(addressBookFromFile, typicalPersonsAddressBook); } From 2d4cc8ad76a78e56aefa62300f1217edaf0c36f6 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Thu, 24 Mar 2022 20:59:39 +0800 Subject: [PATCH 199/507] update DG --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7871e269807..57acfecd280 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -176,7 +176,7 @@ A `Task` contains the following attributes, #### Design considerations: #### Aspect: How the components within Task are added or changed -- **Current Choice**: [Proposed] Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. +- **Current Choice**: Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed * Cons: Less flexible, more steps needed in editing Task objects - Alternative 1: Allow certain components within Task, like Time and Date to be mutable From 234588b1f91cca4ffe307ac7e7fe9eb7e743dcbd Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Thu, 24 Mar 2022 21:21:24 +0800 Subject: [PATCH 200/507] Update DG, change puml diagram to remove address from Person --- docs/DeveloperGuide.md | 2 +- docs/diagrams/ModelClassDiagram.puml | 2 -- docs/diagrams/ModelTaskClassDiagram.puml | 1 - docs/images/ModelClassDiagramUpdated.png | Bin 60750 -> 57248 bytes docs/images/ModelTaskClassDiagram.png | Bin 51246 -> 24795 bytes 5 files changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 57acfecd280..848440338ac 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -171,7 +171,7 @@ A `Task` contains the following attributes, 4. can be assigned/Tagged to multiple different `Person` 5. a type, to differentiate between the different types of task 6. can be marked/unmarked based on whether the task is done or not. -7. [Proposed] can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" +7. can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" #### Design considerations: diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index bb1acebc483..40357a5a194 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -14,7 +14,6 @@ Class UserPrefs Class UniquePersonList Class Person -Class Address Class Email Class Name Class Phone @@ -39,7 +38,6 @@ AddressBook *--> "1" UniquePersonList Person *--> Name Person *--> Phone Person *--> Email -Person *--> Address ModelManager -->"~* filtered" Person ModelManager --> TaskModel diff --git a/docs/diagrams/ModelTaskClassDiagram.puml b/docs/diagrams/ModelTaskClassDiagram.puml index 895fa975e5e..ffc3359afd4 100644 --- a/docs/diagrams/ModelTaskClassDiagram.puml +++ b/docs/diagrams/ModelTaskClassDiagram.puml @@ -13,7 +13,6 @@ Class Date Class Time Class Description Class UniqueTaskList - } UniqueTaskList --> "~* all" Task diff --git a/docs/images/ModelClassDiagramUpdated.png b/docs/images/ModelClassDiagramUpdated.png index 51d25b6d21e7136fd0f6c1b7380ec671a4188624..c2d76f85383f96db787b10ff9924f363ecb55f6e 100644 GIT binary patch literal 57248 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 literal 60750 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

b09qr(zZ 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 Date: Thu, 24 Mar 2022 21:30:16 +0800 Subject: [PATCH 201/507] done with dev guide --- docs/DeveloperGuide.md | 239 +++++++++++++----------- docs/images/EditTaskSequenceDiagram.png | Bin 0 -> 25628 bytes 2 files changed, 128 insertions(+), 111 deletions(-) create mode 100644 docs/images/EditTaskSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f162ab2f028..72014e47e32 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -154,90 +154,107 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. -### \[Proposed\] Undo/redo feature +### **Task Components** +- Added Classes into the model Component to encapsulate a Task. -#### Proposed Implementation +#### **Implementation** + -The proposed 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: +A `Task`, +- is stored in `uniqueTaskList` of the Model +- can be represented by a `Todo`, `Event`, or `Deadline` -* `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. +A `Task` contains the following attributes, +1. a `Description`, which represent the details of the Task to be stored in the `uniqueTaskList` +2. a `Date`, which represent the day, month and year as specified by a number of the Task +3. a `Time`, which represent the period during the Task exists or happens +4. can be assigned/Tagged to multiple different `Person` +5. a type, to differentiate between the different types of task +6. can be marked/unmarked based on whether the task is done or not. +7. [Proposed] can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" -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. - -![UndoRedoState0](images/UndoRedoState0.png) - -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. - -![UndoRedoState1](images/UndoRedoState1.png) - -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`. - -![UndoRedoState2](images/UndoRedoState2.png) - -

:information_source: **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. - -![UndoRedoState3](images/UndoRedoState3.png) +#### Design considerations: -
:information_source: **Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook 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. +#### Aspect: How the components within Task are added or changed +- **Current Choice**: [Proposed] Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. + * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed + * Cons: Less flexible, more steps needed in editing Task objects +- Alternative 1: Allow certain components within Task, like Time and Date to be mutable + * Pros: Less overhead as fewer objects are created + * Cons: Prone to error as a Component might not be correctly changed -
-The following sequence diagram shows how the undo operation works: +_{more aspects and alternatives to be added}_ -![UndoSequenceDiagram](images/UndoSequenceDiagram.png) +### \[Proposed\] Data archiving -
:information_source: **Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. +_{Explain here how the data archiving feature will be implemented}_ -
+### \[Proposed\] Editing details of a task -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. +The proposed edit mechanism is facilitated by `EditTaskCommandParser` and `EditTaskCommand`.
+`EditTaskCommandParser.parse()` - parses the input by the user and returns a `EditTaskCommand` object.
+`EditTaskCommand.execute()` - creates a new `Task` object based on the parsed user input and calls `Model.setTask()` +to replace the old `Task` object with the new `Task` object. -
:information_source: **Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook 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. +The command is as follows: taskEdit [TASK_INDEX] desc/ [DESC] at/ [TIME] date/ [DATE] -
+- [TASK_INDEX] must not be empty. +- At least one of [DESC], [TIME] and [DATE] should not be empty. +- desc/ [DESC], at/ [TIME] or date/ [DATE] may be omitted but all of them cannot be omitted at the same time. -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. -![UndoRedoState4](images/UndoRedoState4.png) +Below is a sequence diagram of the editing of a task. -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. Reason: It no longer makes sense to redo the `add n/David …​` command. This is the behavior that most modern desktop applications follow. +![EditTaskSequenceDiagram](images/EditTaskSequenceDiagram.png) -![UndoRedoState5](images/UndoRedoState5.png) +Step 1. The user executes a `editTask 1 desc/ eat` to edit the 1st task in the address book. The `editTask` command +in `AddressBookParser` calls `EditTaskCommandParser.parse()` +and parses the task index which is given as 1 and the task description that the +user wants to edit his task with is parsed as a String with value eat. -The following activity diagram summarizes what happens when a user executes a new command: +If either the description or the date or time was not provided by the user, then the default value +would be an empty String. Otherwise, it would be parsed as a String with value provided by the user. +It is not the responsibility of `EditTaskCommandParser.parse()` to ensure that the input provided by the user is valid. +It will however ensure that a `Task` index is provided and +at least the description or date or time has a corresponding value. - +Step 2. +In `LogicManager`, `EditTaskCommand.execute()` is called. This `EditTaskCommand` object is the one that was returned +by `EditTaskCommandParser.parse()`. Within the `execute()` method, there are 3 cases to consider. -#### Design considerations: +1. The task is of type Todo. +2. The task is of type Deadline. +3. The task is of type Event. -**Aspect: How undo & redo executes:** +Each case is being handled separately by its corresponding handler method. -* **Alternative 1 (current choice):** Saves the entire address book. - * Pros: Easy to implement. - * Cons: May have performance issues in terms of memory usage. +In general, what each handler method will do is to ensure that the input provided +by the user is valid and if so, create a new `Task` object with the given input and +call `model.setTask()` to replace the old `Task` object +with the new `Task` object. If there are some input which is not provided, then the default value would be the +same value as the old `Task` object. If any input is not valid, a `ParseException` is thrown. -* **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. +For `editTask 1 desc/ eat`, in step 1, we have obtained the task index which is given as 1. +Using `model.getFilteredTaskList().get(index)` we obtain a copy of the task that the user wants to edit. +Next, depending on what type the obtained task is, the corresponding handler method is called. -_{more aspects and alternatives to be added}_ +If the task is of type Todo, then the handler method will create a new `Todo` object with the description value as +"eat", call `model.setTask()` and return a CommandResult showing that the update has been successful. -### \[Proposed\] Data archiving +If the task is of type Deadline, then the handler method will create a new `Deadline` object with the description +value as "eat", and the date and time values set to be the same +values from the copy obtained using `model.getFilteredTaskList().get(index)`. Then, `model.setTask()` is called and +return a CommandResult showing that the update has been successful. -_{Explain here how the data archiving feature will be implemented}_ +If the task is of type Event, then the handler method will create a new `Event` object with the description +value as "eat", and the date and time values set to be the same +value from the copy obtained using `model.getFilteredTaskList().get(index)`. Then, `model.setTask()` is called and +return a CommandResult showing that the update has been successful. +Note: For the Event type, a String value with two time values corresponding to be the start and end time +separated with an **empty space** must be provided. Other than the time values being valid, +the range between the start and end time must be valid as well. For example, 1700 2000 is valid while 2000 1700 is not. -------------------------------------------------------------------------------------------------------------------- @@ -262,7 +279,7 @@ _{Explain here how the data archiving feature will be implemented}_ * Prefers typing commands instead of clicking buttons * Needs a local database to store all tasks -**Value proposition**: +**Value proposition**: * An application to show all the tasks assigned to the employees * Tasks should be assigned to the employees as well @@ -308,27 +325,27 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 3. User uses the appropriate command to add Task. 4. ManageEZPZ adds the task & confirms with a successful message that the task is added. - Use case ends. + Use case ends. **Extensions** -* 3a. User uses one of the three `addTask` commands: - * 3a1. User uses `addTask /todo` command +* 3a. User uses one of the three `addTask` commands: + * 3a1. User uses `addTask /todo` command + + Use case resumes from step 4. - Use case resumes from step 4. + * 3a2. User uses `addTask /event` command - * 3a2. User uses `addTask /event` command + Use case resumes from step 4. - Use case resumes from step 4. + * 3a3. User uses `addTask /deadline` command - * 3a3. User uses `addTask /deadline` command + Use case resumes from step 4. - Use case resumes from step 4. - -* 3b. User uses Add Task Commands with the wrong syntax +* 3b. User uses Add Task Commands with the wrong syntax * 3b1. ManageEZPZ sends an error message to User, indicating the - format for adding Task is incorrect, attached with the correct syntax format. + format for adding Task is incorrect, attached with the correct syntax format. Use case ends. @@ -341,15 +358,15 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User uses the appropriate command to delete a Task -4. ManageEZPZ deletes the Task & confirms with a successful message that the Task is deleted. +4. ManageEZPZ deletes the Task & confirms with a successful message that the Task is deleted. Use case ends. **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. (Invalid index) +* 3a. ManageEZPZ detects an error in the entered data. (Invalid index) * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for the delete - command is incorrect, attached with the correct syntax format. + command is incorrect, attached with the correct syntax format. Use case ends. @@ -368,30 +385,30 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. User uses one of the five `list` Task commands: - * 3a1. User uses `list /all` command +* 3a. User uses one of the five `list` Task commands: + * 3a1. User uses `list /all` command - Use case resumes from step 4. + Use case resumes from step 4. - * 3a2. User uses `list /todo` command + * 3a2. User uses `list /todo` command - Use case resumes from step 4. + Use case resumes from step 4. - * 3a3. User uses `list /deadline` command + * 3a3. User uses `list /deadline` command - Use case resumes from step 4. + Use case resumes from step 4. - * 3a2. User uses `list /event` command + * 3a2. User uses `list /event` command - Use case resumes from step 4. + Use case resumes from step 4. - * 3a3. User uses `list /today` command + * 3a3. User uses `list /today` command - Use case resumes from step 4. - -* 3b. User uses list Task commands with the wrong syntax. + Use case resumes from step 4. + +* 3b. User uses list Task commands with the wrong syntax. * 3b1. ManageEZPZ sends an error message to User, that the list - command is incorrect, attached with the correct syntax format. + command is incorrect, attached with the correct syntax format. Use case ends. @@ -412,11 +429,11 @@ Preconditions: User is currently using ManageEZPZ. **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. (Invalid Index) +* 3a. ManageEZPZ detects an error in the entered data. (Invalid Index) * 3a1. ManageEZPZ sends an error message to User, indicating the Index used for - the Mark command is incorrect, attached with the correct syntax format. - + the Mark command is incorrect, attached with the correct syntax format. + Use Case ends. **** @@ -431,17 +448,17 @@ Preconditions: User is currently using ManageEZPZ. 2. ManageEZPZ displays the Tasks. 3. User realises that Task is marked as done, but is actually not done. 4. User enters command to unmark Task for the specific Task Number. -5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked. +5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked. Use case ends. **Extensions** -* 4a. ManageEZPZ detects an error in the entered data. (Invalid Index) +* 4a. ManageEZPZ detects an error in the entered data. (Invalid Index) * 4a1. ManageEZPZ sends an error message to User, indicating the Index used for - the unmark command is incorrect, attached with the correct syntax format. - + the unmark command is incorrect, attached with the correct syntax format. + Use Case ends. **** @@ -453,27 +470,27 @@ Preconditions: User is currently using ManageEZPZ. 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User enters the command to find Tasks. -4. ManageEZPZ displays the Task(s) which matches the search keyword. +4. ManageEZPZ displays the Task(s) which matches the search keyword. Use case ends. **Extensions** -* 3a. User uses one of the two Find Task commands: +* 3a. User uses one of the two Find Task commands: - * 3a1. User uses `find /task TASK_DESCRIPTION` command + * 3a1. User uses `find /task TASK_DESCRIPTION` command - Use case resumes from step 4. + Use case resumes from step 4. - * 3a2. User uses `find /date DD-MM-YYYY` command + * 3a2. User uses `find /date DD-MM-YYYY` command - Use case resumes from step 4. + Use case resumes from step 4. -* 3b. User uses find Task commands with the wrong syntax +* 3b. User uses find Task commands with the wrong syntax * 3b1. ManageEZPZ sends an error message to User, indicating syntax used for - the find Task command is incorrect, attached with the correct syntax format. - + the find Task command is incorrect, attached with the correct syntax format. + Use Case ends. **** @@ -484,18 +501,18 @@ Preconditions: User is currently using ManageEZPZ. 1. User starts up ManageEZPZ. 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User wants to add a new Employee, enters command to add Employee. -4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked +4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked Use case ends. **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. +* 3a. ManageEZPZ detects an error in the entered data. * 3a1. ManageEZPZ sends an error message to User, indicating the format for the add Employee command is incorrect, attached with the - correct syntax format. - + correct syntax format. + Use Case ends. **** @@ -505,8 +522,8 @@ Preconditions: User is currently using ManageEZPZ. **MSS** 1. User enters the command to clear all Tasks -2. ManageEZPZ clears all Tasks & confirms with a successful -message that all Task are cleared. +2. ManageEZPZ clears all Tasks & confirms with a successful + message that all Task are cleared. Use case ends. @@ -518,7 +535,7 @@ message that all Task are cleared. 1. User enters a command to exit ManageEZPZ. 2. ManageEZPZ confirms with a successful exit message. -3. ManageEZPZ saves all changes to disk. +3. ManageEZPZ saves all changes to disk. Use case ends. @@ -538,8 +555,8 @@ message that all Task are cleared. #### Performance Requirements 1. ManageEZPZ should respond within two seconds for any queries. - * ManageEZPZ should be closed/terminated within 2 seconds. -2. ManageEZPZ should work well under both normal and high workloads. + * ManageEZPZ should be closed/terminated within 2 seconds. +2. ManageEZPZ should work well under both normal and high workloads. 3. ManageEZPZ should be scalable. 4. ManageEZPZ should be able to load huge amounts of data in a short amount of time. diff --git a/docs/images/EditTaskSequenceDiagram.png b/docs/images/EditTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..11c9229b6df1570142cd47b1e2cb124cae6d5855 GIT binary patch literal 25628 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 z literal 0 HcmV?d00001 From f8c6cc7df9e572197d6e4f172c7420a4010bae49 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Thu, 24 Mar 2022 21:34:42 +0800 Subject: [PATCH 202/507] Storage Diagram Update, and edits to Storage Component text. --- docs/DeveloperGuide.md | 3 ++- docs/images/StorageClassDiagram.png | Bin 28454 -> 25192 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f162ab2f028..708f73beb82 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -135,7 +135,7 @@ The `Model` component, ### Storage component -**API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) +**API** : [`Storage.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/storage/Storage.java) @@ -143,6 +143,7 @@ The `Storage` component, * can save both address book data and user preference data in json format, and read them back into corresponding objects. * inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed). * depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`) +* `JsonAddressBookStorage` has a `JsonSerializableAddressBook`, which have `JsonAdaptedPerson` and `JsonAdaptedTask` to store and load both Persons and Tasks. ### Common classes diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index 2533a5c1af0edb20b54f5782e8c2ff2fd2f4c2ec..9d68fddfb1447bb5ec0d23202e88b415269c3975 100644 GIT binary patch literal 25192 zcmdqJby(Eh`!33>B8UP8h=_zB-3?OG-6ajuE#06Xq9EPfT}n5C(%m_L)~=Ujy%i zHCp}yUdU|)U)t(gzIHOxH?Tzz*0<2N*0I&sBY5RRU}S6i`Z+D_Ycm}STRU?z8eL2C zdvxqi5D>24FjjbJ`|Ev#i)9?+))l8M$La362Y!dYPNiLcCc`H_l#GIDwESJ0fNvsF zG*lGrGqSw_$6iYr+)YY^;O&bME-6&x`RYyX35Uqdf;2)t#M_11u1THS*RXhV4ADE> z^}=l0T?t#SeYksS#gy6|mmH=Yo{wwk=c4|GYXu#roON35%)%q8nGG+vNHp$9Ve3t0 zCDikWDMB>isPFAFIHNh`lqkmaw-2H#{9X@ondy+R&|HZEL zxu?h|3rPcRo5MAf=FP1;M{CCY)CG=XL=te{PUgo2l(zR{<9gudgxN`Z1=Wjt`e-iZ z7-5ck-k-Q6o)+Kut_($!feHrb3e0nM%TP!rX0H;iB8kaCWQ5nD^v_udyF7MAcx9WnA7Q$-u?^bP@Ft%1{@NT~WAAA=)!oNB?`O}a z%&@f}x|fR$38NJSR(#i_ z{kKE~qg9~a^NNe#Hiek^5TU<^k~L;%4yqT+q>#kr(tG$S-&X&$AA7Ix3B?n1xUm2p zvlOkAu`CY-1GsKNE$($cU8|cD8iHGUMwFzNac^X@%|rq+qcZnlh)@WTKBI{ekR7` z?0=DJGd+RO-6JNMvnO)z_}S}e##dv5_t4N0%WqOo=O|DLDc{yj3RS(XCnPQ&cE5+& zjcE?urWln#IXlz{0YP&`RDf5(QFAT+mMiAa7+e-Z_67!)x>hMozG`*Nc#e7LcuxM% zxLe;w?D)8nx%qT?{!pFA!>4aNseH+NRV)r(@F9y|d-s|6**n~#`$a)qm1A$7y*uJ* z3!Y=^nT+MIS(@SqJ#yozm*!sLUh0fqk6U65<$z7eUU)Ww**7xti&uo;>&T#-uSXYLA?CJ{}oML zeG6CD!qRdYDD?*+DaUU)m>p|1mm8lqOHd2_gYcr_kxMrjgTe9bH>P71R;ji+iOrl2 z8cRT5*r2RTHLeOF->*Gft*NbpOZ* zX^s)vl*6VIhbDc0RkGJV&XPtJn5fk%W6DVnGYm4S|+Np(2 zi3j`o`ugBG8#TVWwUpqpvBV9lJUw+Cb38vi!qRfx-XGDbH=kg!TN03v=#*rIFd1}4 zNxScaQYz&IS%JOJB;3}$Nf4s$ezd>@IX@n$A08UYp2L5%V@y_L&=tej&Bia3RpYd4 zFm?FD2S1}#!vT_x7SiV%vAn#@;J81e?B|)KT5X@7M<^7CS8F^#B8!NCj5}$g(}^Gu zl9}Kv=KRAOOY;zDsT~$2C{uR26Im}o>#^;pRZ>!Nx|hk5zH=R&Gs)s;K2+Mdc4}qC zq_Xwv*B3fEPZj$l%Rab*52i(y^alh4B*IUZRun&+bK&)Td_WpOt0lEy>9(p?M2Ya? z!__XBn3!s|8gGwiy5w((%vLTXJWw zI+*rbIRphNQq2ga{2w;E&V2oc0%*EvC88w|KhhtIT2-+!nf86sX<-Vwd{<{O#n#L~MM#q&|a)Eb)|VM(o_dfxYul zI<1@WU~hfVa{8h2!ARW!bD!K{)>>%AjOT4KIT@LtpdbPhq?7Y<3?QK`IwXyU&?~J_qH_)9jBG87o!c^4f6#B z4n$o~=kOz`oAN(9R+zPg5Hq-UP?vx3eEE!>T}9~@p4*<4Vy0~TCk->_` z&U~A#TkjY)N#;BHE1!MicUL;de7q#Pyc~80o6cl#sxOlr1;OU0OTY0u>~^RlvM3~$ z<~b|*_g{?6%uf3P-EI2>vHbD4oWbJK+(&w&=UVGXuIeZi*c+8}1|ZxJy!yA}gSS3B zx-@YFgcsj0Z4bOfc=Iw;fIvh4D}LZdUbA?A5h_3g+(IP!6+j5@e8Rq3{KdQ9g8q+V z&)2B8KP?c%*8ex;ddjqTaBzT%@aFT(zH=#KFZ-uwxyh$X18#$&Nn|{HXUAJHYGqt2{sTCRAJB|YHejSnCD_`&H4EO3AJgr zwMRF2pUMrd3`IzcA~WoK!glIGEizfL0`mZG0z3NTnGee-tGv+v437(+evWI8ycJg?)jd;up?&;f$ATp9 z{i0h~|Kq(!{hpkQuuoRX_UoQn*p48HQAaoXQk*cJ)4P!sllgSS+zdQm9mP6LO)VV_>!KnvsP6=>Yo@!Z1&16s4MX*#>7bb_gx=ospbmqMFr3JeAfamCAmB~RId*mJZr6FZz z{x0QkGQ$E@yXEvq_ib^l`wb2eG_^mPaaulM+W;qj_Kdhq%GZ9QX7l`H`FW({Rs#|Y zpA*VcpeZY?th}YSFWS?TJ+OQf{2B~Y98XhoTUjI zu!L)s)k48xYW+kz;E_r=?i=D8p)e+XanbYg5RWa%Dak zDmEhDt~Zzavw#1OLc54q>My>f*A!W=jeb$c_>h%SZD_SIbVn^cfOD^xA49aKRR&2I zWGZ{e^S(pI#G_ADE4zvC8hC{xdHXsp?kfh@pQr({w3HwJU zC2Zc5`IjkuAF2YUo7I(==vJ1O!iO7)i*ijR_{9_Kaay||gD@lV9lx2J+=BavvI|Q; zw?c@_O+%c9SH(GN8gqg@zfut;kTRJshCIh((z()H=d6SzjJm&QIx+az$++RdQLviL zB(N!!`=#8@R<$yBhypqJ7Q&;WQ&ze;Hq#>O&-V*)9^-gycWC*_bDM>e$q)6tf6t$u zj`4IZt<|L?qO`2Mg_K0@s81Ll)881SucL-qjY(~RlIFQGzt_udlrJfXAn^{Bmh!lt zT2V~H!wc`I5g#9okJJfy81_V`s-*T>y6@st3RT%3ePirtWepXODSKisxI#oUI0lh) z5mU5vdPe8~abvAb3m;}>;@l2R%u@dGd$)Dk0wP?tPTxnEV2rIzvn!&{2u;KJqoDkQEayS?-PB&q*G8a>l>KRE32&OlpZDW>Pc8wxU5spRBeh9 z6*N;UOl^F8UiEuvW=wJSb8&@Ir&{>wNd3lnBbL!4+0(j{O&C6wpP#jj>FP;eU#e7n z;egvQH9q~ZpZ!MKjv$r>lUX=azVj_DD47VM;w8l;I)fnrZ=9{hv_~k%d?eqn3;bZ97>6^(K&K%-Mpq3AFAe>gAVJg1j#& zgoKyWn3G4<#S&CddoV7`4<}F2NUC0u&4GRSt|n}YNmVf5qY+%CwjGG{e0&zg3%a(E zacIbMGA5e|H{Ab*ev4pgz>y`?d2?;dawU7Hc zrNgVJFmSM7eeYB8+z)kR?UpngvgdY+29?!u!%o+hc(6)myD;0L4HL-mjrQb;2^C&O z#&e17lSQl2!k2hfnuJj$(Paf;tAvD8gSYeqJ9#@K>Vy(fWDIL>mcUpYJ@x)%o&RNK<7uR5dXBQ>4L{WXr>ONy#sqpDZ& z#nI_Bves>*9<6y5RzTHX533kzIR5bFIsAb>l*o~0+N@?-8?Gd9U3oY9A1%cd)Vif9 zmu!ht`C4sQuh%1{TRiq>`z43-ZJ`&wT-hHrI!aksa}khX?nfPO3q_31n*9?`=ShuK zs#K;+oEV3=j|SyaOg2^vFUn}puSBP_k&<&DRgO9IiB$byPA?dlJ>3t1qIB{dI*{HI;jgzpqX6#psTvC z3GVSS`G2j1o_1ms!VM*jtH@02wBOAtoao34zpYuqQ~6mKJZ&8VT6`C6v3alOlT~Bv zP_x86U-^9de|+Bj$A=P2H>Ytp-0rY{VKSg-k>H@D-ESGs=>Ds$x{`|Lq`dnX4~b>L z^Pm@q$2g33Oqi-GJEfBG*Z*r#cGq1h{_zJFeY2HQ(>cQg9%%1C^Y<<`hkX~V!7>|+ z|Eef{fzg<4)1rC*kJArf?H_Guo?FuiPPEDrY*q?ioi4I<*~LjFZ@yzS7?0L#dj_^; z3v*o=6g4OM&y5TC+VyGOYmVcDwR;`elnzN<|5GDgm7Ey3)JU!2x)}ihfiVO;?Q7~m zut}nyMcdB<^+67)gFc{_?4RY<8VE#NbJ#3b2b8QMkSWI*d)-^uw?SQ3(f;n%I`&xqhDUEytBdam zTD79w9jS+=`WN9TmyyPa$R_GhQV?o7f$2Nt|F3^xl)?176h|zQ@Ouoe%I2Ikf|-d2 zHEXU#B`5eyBs&TBW4_^iSaUVG7X0dU(M!t9BZ;?a!-@X(9l_g-jF?a58{E0J%S#Ij z^8*WsyWx!9=6SwsO?!geoyEtwMP6?#r3rTGlj5Z#?BQO`0#ov*c(nuz^)?)dF)z{{ z#Ze8nUsPPmhUz;)i*)oap5lmYb9^C6|5|RMofK#-);WmoPTp|-XR$4mnu)DMs`Yau z|Bp49H(Xt*lxK3$;MunXd>h(c~wN^xGaX|3*SDw zvEZC7Q*m%qaL}GSxMhCto(wy;Nn@}Vxf^NCkWc@tVL+tc+W6Kh(=#c%j=XdSmLaqC z%~kGUJKGN5M8Aj*tf|qdl1)eH0p}hf!jy@p=9uQOhEPMVbX%_mar!7z;1$>ExQI^l z+QL=6fq+olgBMIi(vk%Ky#YmaJ+5kZJvr!4X$r$dd)TRVG;DZ!A>->T?K;EeipjK1 zIjO!uyw1efFNb9n%FT=E+%)hWq0*yV_e8qYYj)z6yKljVWIOV)>$&>|s64|se1~g; z9>7Yw%dB~D`<432>`E1T?fZw1Z{4JA(k}Qy!GS!emg1sm>t)T`WK6nB#9@gD&iR$A z?{WenBxz0EYW#nsOpG~|Z-H6mzK~5PgE%Y^nTH{owP8qt$rEarjO%&OhD6fmp^IgS zf@!ZZSzmB|kzThKisziH$Doa4!A4*Cx46Z20oioOQcP(kt3 zAcARpZbjUq>oZBZQo@>HlJi{N>-(SOT;qUPR9kaYx2uHZ9PVYy{IVRB<~xECz75&4 zTDF4fWxLcdSxCEDK!ceVr#yu7)r(X*A&B2%Mz1jE;ErU+_c5&X@hw7)@d0Y@I|+}W zfzi)Z4>oi8$0^2H#`(sjhQjNl=p2EBsQNy;%>nHahly)ZNJd(orwao65zquINRqk? zQtc znN9ipTt$4-H`@82I51H4#}QUMu6w&}`X6h&mOzz!_fn){6(W(g{T$X85lAy4K5{!YH`pmncw*QS8HYx2=1~G+6&KINV`X;iGuOh(S-D-1*r3*+}jbf=aZmy7|g!U&fyrR{7~f?>#_?jwGWi9?)CaE1KS?c^3)sz)fS0>unPCR zyzi#EO&XPpO>-#7W}?wBts_&-tXvu>s1qh07yp)vVY6>6*+#(7w;L;-`MJaCI}~yQ zbQgk<_}me~4ts8JlG|J=jRe1Bx*OSO?GMMWMAEe{C^@l2(a?<`6@gicQ8&5yKq$z~ zir&f78IZk_3u11hT(B)L&f}4(I8Vp)vp9fD%RaK9>))s+KgB5yT0}*DUTo`5-{cu~ zO_#;D@E;U*ag-t8m@fTlTGwkz)Nkmhi4F+9{VompJ6Z)3)^|kD#VGVJUd6@{to2M$6c8BFqqb(?CFcve(I0=y=8>k#@aKv8!~#Z@BgaImz;nxVSwP z6}js-<&Iuaoyul%Y5j>GQ0#Dfxa5!ND1Ywoe5Y(2`e&7FkdDPd=c;UHM$1%6cs-fE z&p`g?w);{IQOO@fkDyFMSZiEU5u7mJsk!wXHKzwl>gpbBnVSMFWuK;752|<<_BMwE zP7cqa8~pa()`gz67>^gK*as#iIe)uvpdmteoW$uOXKsA6Hji8~vm!BR?XBzC*8_Hi zB*oU-@QUT7-uyR4BwGW4ljM-;DbYALS^lB-z+#V7Jc1~PAZ~p)Jh%C($fvlQ&3sY~ z6|8qXc}Jqow4}1rZZ4OkmaQ2Yy>Tud01jue&YysSu(A)XM^}|w%xz^a}P!_ zqhY6B<3$n_gW-k?BpzBfI((;TTAkmMpkwN}K$239Yac_V6O)gmQD0>QWOQ?=b)4SN zPYlDbH-N`K)5IJ9qTRB>Bi~M@e!{8IdUDGb51LbN;!$%br5$rX?Cn>U0XJz%3G`!$ zu{&B3-U!>U+zfk2ouP+;&-}%8q`HU_0>P@?E>4O-tv?cPMHBAH;;w>`$l@Q(fZuoJ zaQotst91mHRKMCd_PCs9dPv}mVRe6Ki%3wqd&()y)Y6XW_#sp|bRSr=T)RlLL+J+*Sw3=2 zc;G=ZS5Z3LeO_w$`~a;K!&uOb%+^6`uerw)U*CIeBwd2i6X;xzw4v8GNL&r~omp18sBjT4MP|-rC2`HIV^FIz%Nqau^v4%y zvY-0)1jGDmAh!%8c4M;#Ie6Mq?MSVwMTCjhPTBS;?S`s|Ude1et?J44#!VjHK7QU| zM$GEz2f;Plz(96@n0PS(RQ!pW{e&hcpWQ7TqxxW+`^`RD;29NfH>m@+_CZb~j9> z+^;+X-p{D3{$qS8eQxEZAi6EPG}g&1%rtv!swNv4Tzc%A+StsI@WO}GNZhCQ@Dk6E zf$F;(Je`_W;i5jC4>OtEokMNyf1Uy8V{ce9N?aQLRV}^K_pOfRn9>#+L0c1iKy&6F zYucgIzLalE>ba3D1Iu34V%?~JfWPX0`tvmYqu+>2p!+h=Vp|rTTc7@+AgOwslKejK zwgOH+nsj5lb`X|SJ{)YHFoN7~VmfMPlH{QcO?~X{X`Qwo4^2vYaf|Oe2xJl@km(Ug zUW$`j?fz{6Zd*o8k12W)-N(9#Yg<&M5AbuzC8gcht@~b_BL~9WQ`}Aux_iAcaHRK` zHec?>9WPteUHZmpD`*yiVs-c~ydxa~PXcWfhW+Sne?n3;^XsDW-27MaJLr1q4unuV z6uZP44?NiP$4l?P^a^cKz3jYJK8a7YJ|VeDrpHgtZNRLj@MWNz=H*#tYWS*Sxa#lL z>dVJ#oPVBygMT1G{&gV#zwI7)hmlnmnl|_FEK_lknpbKTZd=Zv4*uyMzUxCTv%zIA zV&*hTM9iP5c2S^(UrZwkx+~`WJ9S>Y;bRH&%)6&~QLieF@qR5g)Dy3U^Xd|Al5cRV zDT)67_6r9!<5Bz^4~_UEtY=?}2WdHC6P!{VUW{Oi)+QMEajZ!|uTbVkkhCqDs(@4K zdC|{5b@>`-IQk0)68aFJwD}>PyLn>jYi^#LFSE|qJh(Km6N5Rb5< zgQd_V&4p+y&CbETF9SUpvh9&5a_j3}q*=)ptcBLaS0lJy5gBFak#=GS0cmVSwbJkr z)htM?p_4&Cp!`{LfY7p~JB3G=mMOaB^4i9XpAVmsz7MkXXKl^BUI%&;$|oXZJDNV_ z*=Cmg5#iFAG+VIBsS4%p)a^DbbWI=h{FHMW&cJO7){dW0!5#k_>+P{$T>H8xr;j&7 zW?@eGrS03UjC1)tt!B_@b_?@8uWFWB>qG5~5uC;oJFUx&g4Qx$#h&(TNQo`za;rm_ zl_zDjbx)UlZWYshOgL_!WhSn-NA#DNn!1mB`swug81?~fuK7LPRY$D z+z9^ynaXJ>)U?d)RpRj9ny-y%m!yP>*|x1u6enQ9+R1kdGJ@OGR8#gpPLo^?r+`P2>Ug)t8!MNt+q5>WKs=!|ALlxMWq=YTd5;pZzz2@&n zSB*j6ZB7Po;ZwP_uGlL2Z4QN`dWB)|T(EIV;f^vzkAPSw_w9^j4K5AJhtopMPfps| zlO0V}DC`>cfx=gyCem(aG5j3UbEuQ#S3{wBvtV+$qAhzS`O37zv(9vfU6$nDjjrPR zOX_@6HReN!P<_*mV1M$!fex+-P4r!A?+XF+YMe}m-U?9kYEhWx#tVt;Y624+Ji=Go z--vv?dSH(pP?ZBEH~cPviMimzX~tlR%ZD&0czPv9QtU_EG5A*JqsaQj!l{6V zbzut^CigC$9bT;8)UzN?Auph~$;lTCYlmeL_tcu0@9}r}r>{5;7ts!E-G-=j@HJHq z43oNR)p5#I1r)rWP&IWFFK@dtcXq|}>Q|wf@sm?ZnP_qeDEr{qk6nwMj@eIj*4~fL zDsH-y@9&#ZqERi0t55=D;~87{@iDXAg31naI62=odMq2N=`J4XrhgkxK%(7`x47a= ziuu%vR)ukD@?U~!_4B`nYONq^+_h9Wa+&Hk{{>A4U=UMT>+cvya@s6IbPm6VsaCW0 zJeR9`+ah|hJDn6J=0u%_?hUeTqqO|~Vj6p7++%3uJqr1EvpGs=-x_O_izwgIFxlL% z zh|P}qWA4!^=c;eJXNCA~JFEPqrNc8PLRWz<=-d3d5kM(p+>ZPl6&)(L=@qAYw`RQ1 z`?nSq>oBT(8iB{_G{Yv^##s~M1?ij$vy=5eJZiHkl;erfe)U;}tSeN@QTFk1{b7y z$DqG-5u~7F4=OP`pwpJ<^7pRio=?YJ79IHws72db3{}4Ml^lExm+~sBPF1X&wUP!9Bb&J z9~0wJBF0fB9*9h>u53_^Z+Y;Oo>~5Ljz1dGV4&a*MDHm5OLU?t3Z9pT-OXWOV523F za;37Lhapu&?sMjUl(Fk$P0`JTJ-x8LS1rGO4$8pyY4 zRx59jU?D%X)4@diz+7QQgJq-dttJBk?mganDH(A9O6W@ z{ke#P->K*`1savK+UwLsmMZP_>2F&fvp0I@+angg*~Z@IS#3N!vfNVDxUht8UkZ++ zvQx<`kqAvh*Gn}5NZ(jQ{V}Z-W6v~5r=!AH>qJ$VBk=;Fg;E9VHPI~^WWNkWJKr7d4k<)1 zHO&XJz6C3!wuwHzu}MbV$$&MFV-N1jrG-AzD@QJ*QCHA|a7eUBiVt<(mg%eJ-1wcM zGJP$$fy<2`ZSxYH?TQ{1j+CgU$aIlPq3=MQi$MJ`k zpGJDK!)L9qF6Z)q>BFvQCtTJdtTD4>BTvL1HUKko>teKN%qU4LEgjmqc~Lt75)nI> zu>ol33N-DtbkF{AZ-0_MJ86s);@&z(^ZS%?4lH8JS&pCL;Rl--=d^x=+c&QHp{>14 z$-XR!0F`OAn9*Z@G%IR(?tR^Wqzj(#oAv_|eX8?2fz`iLU$#lsgoZ|N#~jg1{gV*+ zMGY=T{EXwyEMU-{pC0KJP-XZPT2%%ciz3RoRyvYOy^wV_POC;4xnB#-hKCoLAOYc zVR4R2lHmiu3mc-IBKKqI`}9DbQ&=oEv0G_vniLLp^WVJ|U^fIFZ4V?+#upnsHo$7`LQd4`<8`pWGVv){U}o81_e{oVL3$UtB#ZLJE6E}n||WXc02FiwKzY| zDYdh2Y;Ja4k!e`nW^BRAJD2y+Dld~mkDRZSH0Gi0bP8_KAm)+pxqG?Lx53Gm4>{J& zGT}L?-aCo7&Vl9TYDd*zkO5Ez4!f1KvT?l8fhZ0&@sS!>I%qS^^126xkD7^{EDbjl zPQ$$6*;s5pS5lCBQfu9Y%ekS77=qiX+CN>PKQ!S`GK^)sYW4>5DY`)Wz%q6r+R44I z3QOt$e?aM^iP#C9N52nubny0#OEg`F;^he}Ke}hD!W2{6{?Q}oL?~<1<*=fD4`y$i zOXQpXX>6i~$8U|Z2DMIKpu;5tvjlAW{3yRv)rR>z)cq9!<{;}lZ zQd^BZWjU?-j4~#EH7s_sSDl$Rk70|F#P#G;TeJg#AF7{i+SxfYOW_X;$~5Lq67kFT zpkHk1?z~xaD;j2XByo2o8|%?Y%k$L|yWp>A_>m^2WZmjJW58N6O5HQdx{){9Toj2- zYjCMKH}ImPoU1OFoEMlc4M!Z?a1rxaB}uSobg02%d=;iu*W+CGVx9{BVEu_+tmt)k$7)4fp2Q@&f0j-F3;661$8Sz>Pek zolPz`+d78Az!Ask^lGFz66$Vc*bU!F1S}N5k0XBflG3EzD ze@Q254>e-1Fc{+kW1n0~t^9nPk4#ES)LM>nF|fM9G1Z*>+h`XUb4Ye3)ajxV`&6@z zidtIjIC)WP-_>ujB<)NHi#$FA!!UD*NOFC7uJ(Q+Ko@xwww%eP)P;eRziK#L+s|9^ zisJQO=V(Ay=6zjLZDlhq4Ti`sRZCvVN*U+kO1bIVkDsm%H@Py~@~Hd&MHy%@vN_(| zQHFcBXwU$#H6|6)G?KQ$9RT}#ESn?4-f!q!)pIuAIY4toNiW9mYKG(m?JjCc-0O>p zMW3%op8>MRv56Fr&?^DHwVmsNffoItInFBFsR&+CHZI3^hDcPJjt$yE)lH|g%v2#Y zL*|Qx7!umGcCQ6i3;Zgbv3HztbTi_I#^suF)h|S%0mq_Lf8q@sgiW8_54Vy($BQ?@C3P~T z;wS6PBMcXhyiMV+LbYZtJnUa0c_tUQ+Kqb#<~wbQE1fyMA}C?qP}%QZVwkEaO{dWU zk>x+g90d2KF(T+zJs-5Fme@UgGt9R-Ub>zB_AR%$hQLK4yjs6I;vnfdQloV4Q?PTY zrFIB-P#1R(es z+fgCk;3Ff86)SMt;}g%-z)=AuqvTuqBhedG43W5p5id-P1C_r5x(AAsk9pdo=)lDc zJRdL*Je>PE4-`t*7UNL=-)i|G-*|f#^!HMKgi?+|_s&n_(){OQQ290<&4HrRONO2S zze|z}4W=Hy-SU&R@ky*Nw!ezkrd`~{)44<3ElyeR5yaPIIuZEAI8 zx{UO8&G0198!8}O@Fq2fOl&m$4%6x;=+dH_w1EejreNt@%}3u$Y8y*7?o|f^FNbp zuzhBRc;&@(+xZ+5bcCu}_{IYR=^W}VC`X^Hd`tq}Dqp1tKoY=+-iM^8Trf!eGt5y9 z48}kiA+K`dC!FZ>a5`cer;-ptfN5{;_@&gHG#oTaLDjJMEhT(0zeM(_p2g*xL)D@a z5&%!kE2pjE9lL&X{C3?Y>qTym@`BYsPx7j5pTtZiex*E^`J3g8jZcrb<*h;^FnO?0 z?;C0j%9Q?abl`U%#-A6nbI`JH1+Em`fwp4);V?OA{F{sJh)W%>{;^sq4{zDXx=J5T zK@~Nsxz{A_cK?$L@=v=;CkJeL_cM|( z4!HiZMZyJE#%OPNFfBTpzEKCgfNVrHOL@4R+p+t+;CDnQ$<<4k&y*=2x~Z4+<#j0Y zSZ6|;xd2n3L|%>2-7O_kg^7$>RU(>@+vL?zfrGwsRW&WgeCAM4r#{j?i@>SO9lQO# zx8}v!5+0zCmHne3i*HEPM4B<*fD!Sr`#CM0yWkznv^E(FG9^F$4P)NJe^G|JwDfX9_0{kf4Q z4@uD{5{?x1W?bB*@u!yV@m4*?93U`1w<}5q5S(FoIfcQvio%CzX9Hz5Z{(E=WiaR6 z9Q(4!es2VV1)1rU>nUShCpN{pR~42aDn2rvDTUe_25K{vv3?Jrh)a%6HagIbjG3R=jPcf@-s8bghy_r*Ick$aM%PQgN@7yWT2`qwfnS)1v%_~;hPNQJ ze%82)Lx57n_-d4q5Nj#^WYcNXiwL$i-}b=Phhkb+seF6rBN?=Sb=FG;m|hTVbgc7} zjmqb9fvgNZAOAtY4sSGwf25Z3f~aU)WaDew)Op=TXSpR7Z;aHeIbPMPq1wEM`c-jj zo9iKl#f9aegcv-`z0$Yko&uU*Wf(wE=^QO7lqjlG*6;B`x&~0&xwGN>3Bmz(!)+Ev zz#hVrJtF#Dr7khkJ~P_CF;iKJWIro0dX4pPYjP9v#hPOo=tkXIP@)n)$OeNG1en?U zPph6!4V1Y4@ULx|Fwy|`a>x7uEN0 zQ)R<%qoEI?Dv2{4f2dxlkajZ}EK8vEvyA;KxGn6-q?*34>JgjU)Pq~?%MkHH%67_I zs#coB8A!J^(fsEC9l#poY?3ob)K>m+yBYQs8r#ssVQS1v5%jGMu+CPvv)>j5av8Bm zvu17h78EU0@P^sJ1X;BP{5Z*QytCb9G&>d-d!dv|Zg^#*+U#x_4GSxr%I^sj-GrM3oIBVJP?Da{F4B zhR;2z>Ssuwo$b8q>&@DB=qs2=ARk7X>eTZM_lez@a;y%=M}t-WLxM2eod@&c|B+3z zGVnDFntPsTeLj{3>qH|hNx>U^q( z#sGy2`nI5SSuCzhfN3I@mD&8f)YiMsVRx@;XDEd@pJ{oh?fm543dfK1Rk!vufFrgZ z{(*Ou!{jqrMGe6voYRuWA(d-MQ|~|EqkItoT^m&C{Xwszkehbpi*&)T zuz}n%*N36Qf*#&d&>e5q{_~7_D;x7Mv7?&szyu$5wv{5)l?u3&YaVOk|HwnEolpDN zO!H||IwX!MKao0b(KmtC$3Ffs6#vn2k|#1rcV*P4{QAP!_uSzNuNBZGtF$-GC^PFB zL?X+9bz^)Cj1hq`*~W{93ecqED8QoWT;%N9c0ec}ui0a@xN;ocA%_$%mRN(r533t~ z7BUtR_G@0kl*0n(Zd93OOCg|M2OZN;SO#gmeWj61DNkK}q2Z{z2q>Lbjo1a0r^Cqg zIIXtGd;LkBV;u6Fq|Wx(rrpM#^5nnQyGp`*R3W8%QWSYA_Jx1j(oa{4(=075ei;Fv z<43LvCwi93YE2pQ_^lNdJ>T%2*r`z4O?r@4{ZEYPFzT5M;5x0FRV}ltRt6{=r~R($ z-if@$_w8-_&SLblyc2sQ?Zbh2h#>Q+Q}{n}7hSq}#?Gt*$kBZeQC+(!aAsRKACn8+ ze_H@jLLG5L2Q(SkTf)-os=j%*U|S(Cg!JZ>9(T-t4Q-y}>#zTOGe~uO4wDX~RL=n& z9CD$>)XMCZAAn1I?)Z~SEK45Mj~035eKTs;veU1sI5ym};Q#%XH%5Q{n&84KE-nRn zg5bD*O#tH}_gyt0V+vrx%~1p&8iO?C5|o1J`2}nLH^W;`zLZJvy98J9$xHM?&kHCR zLHw^aBS>;crn-X>z^?p{K_l>n_^*DYH6w?;hJCrT!|6#s7>xew{vkh$;!tv4i8t#u zTN;3{|9xH2ET_NrBW2`d_gs+Bf4whIl#TYVuK4)uvQ8oGX{O~zgLK*usgRCZZG<^3*PzKXjxfX&7@%J z=N%CeKksQ|h()>e0hAIf5QeB*_JDBnAK2Z~pI17~az>2}S(%^AT8R)nD$d_>uElv9 zo5Wavd*kNCjqLYpSpnU{Q1VnTEO)|8y9e&s3SVC1ACsl-@&V)XJ}^|yCGZFTe1Pro zFw4(MD#;I z1oy}LF2_6e3R0)#Ff*s{e+w~O0}sE>5wXSg{jZM>0_ZhtLvr5g0~k@hNxj-Muqegw zyv2XNnWjuSqGUez?>7N&z?`!x@ZV3eU+98vv26eSprGPE5B-1gbD8`?Lpajy=^s`i z%HZns6V!_<(Rv)~lZSA?5NMwZD)@62_F$w~PEG02^Y3@ZL$(zf#_M<4(kTBNQ9Sr| zkyl2x7hNl%2aBu!TD*8YjVoXy zwTwz0#~RyJ;qbQ;nt?&k18E-K4L~Zs`Bn15^e3cHK8-=-z{V;M?R*JnsBoY0&Uv3bn`yoWG(VaeQf!Q;AKKHQ)#;xS8>lIHk>K@vb1zUbktAlgCC zx%$Ha-a>7M7%hGtTfR*T$^TodKJnqYkcwN(BNnu(uxm$FpdpG_d-+oC@TR3M-y(~& z134r~^%o&H#|YnV^`=+Y+5qER&FnsWiv@qi{8Zc_7Xv8N!V_FzAG4R+3n_j65nvCV#|E+`dmo>GYBvuTSV`)Z&So3zrBGmy&=rSO@bX?s73UFOaxJM%?FRNCtdJwE>UPSA8u* zXZU|#E~)b{4O@FV91iZ5?BDFo*Rkk_Wi1SU(n^FHM^G~(KDBNDt;2~*&MO$hcw=0J z&rmEiN>ywL`4Lj7ezZasWlstbfhQP$V*!eUkT_yxg@sJ5aMjr=o+h|j5?WySlUux! za2r(O$wrXdiYIdmn;H~<+1MS!PEdLFyG>O^6}F!U$|;}dSm6sf7;xb-TL-5p(+*K3 zu$`oU3p2JIBCJJv5z*q@l(T@%6lH8Eh<;u)5UpX3>Fyi^W@BY{cKG&sH5ec$@;>en zVzC~$n6sMf<(a9f16~^>!9M0auD&Q>WXfIBL*!|TMN<>u911LH$R%x}e&fdwDh0lN zOU#mhI!qmU^EY|8N{yT16!~W|$d#n=)g-d{8r3DLb56QjO7^U)GVNcTY(priG%`H3 z`ni)$-iEJ(IJa!gIsUr8iyr#Ur0h~oI(JRz1H>ZxDs+<66_dg+Ud<1Q>|iFV3(Vq- zR**HXkAK(^OyDz+>O==C0EzhKi8DvjEI?_DTe9zRxP1a9!=`Yk9q0(}<3=m|7k9X$ z$J-*vnXQI3!u7fS)DR(|=bz}{KzG|{#=r9)T^3Tog(O>X(v2gseevo0g#6>bdQh>A z*?8TZdeDP1H02J|k^w?x=q5ct?}8u)w!{6kd1jlLKL6?@vFE*uX3Lf9UCPxbN92Hi z;c)GB(_@!i2#@oiPEjkGT8l-&d^Bh)%1D$$3elQvf0i?AifF1nY;kMl=8#6;!GNMC z+3HW*AXtqC_l(*K{&r%8?IRosMQ@1vJ+zdB zr-O@Ajio&uRD~O25!nk@Jalu_K4i^Vz&ieYi&sbf#@zTCMb5hB8c80a|g{f^xHFo~6C&IZ+@R`|_FW#L_li zR<1&XrT|A_^WG-UcndI{_JZ#&owMPZ*@_YSOE)sbGqMUYBNlS| z<0x=P?3mId)yG0-nLCycAaSeh#Zb+NPHC{2FvO{P>gSXIbM>adkTQXH~BsT;$-g&}+K(<$s^DcIQUK z|M`?<9GJSxZj~p9gAxU9YK#Znp7|3Z!R?#074q)*hxm59E^4^Bk2OoefNd;hSZgAR z{;mRKvIhGVzAT;<0y4#ygRO^v-D5qAM|}YYKmAjepnMdAk&txOky#$m*5Y>6u)J1$ z@-l&8a|OWqnuxc4uNKs_V_#w>3O9EhL`<)qbIg~u+qVUTOv$4C zJ*&V!d13{s9UO64E-=rsO_?quf}yAuIt&>2qa=ekuh%=c0FYx@E5F2x^#ByutsXzdzM zO;hT}`xP2Ysg?VVBS)IJJLkY{va2EwTS-|OYb*_DTEmI4`hql?d>8MZUE<&M4MRrr zu~%+{yAGh;tmNEwG#3ef0H@}>*8Hc;y9q#1+@8)`YRc!ysm1;y?^Q98`T_YDNW}Ep zf0Ew}PHEOZT}Bcu)Ks$4Ml3`P+(M4}Q{oyqf-+qcfND~cspk32H7s$BMB2YAC&qc{ zcnI#1>G?`DyZhz=VhzjbzyBr{NLF9gZMceN~qL7?2l@nE7{ae9yr@>f|P5sQJzwX(r(` z3Fy+M=7gtr(^P+zc8q&(0d5{U;DH4={%MD9nx>SXP5wWcJM(a;_dSkJltf5EH5B2T zWJ?R#(qbz~St4SnOG%6+*_XpnvSeSP6vn=ttYM7oWnW{+TE;F}$2Q&1IA%`gK0VL9 z&%OWL|K^$JH{aiP|9(F2&+Ge{-EuUhc=fX~e?4|8rKeKAjiWy-f2#hf2B1z4F3jk!RMPQmr^`)%`awb6e-Ct8kCp~qjCC$Fx6fR|ffv z)JCv%+SKkcNKOms1p6nak`uL4tcS4}O|aJ4MRBbj1xuI66lA;g14@V@T`-(f2>+^% zblTn^-kjlmfzmCx`dTQ>us6hZaNb*W3nROvwJrvF7^p2Z0HHvcV|ezS+>y?=&qsl^ zd(wv^N;|LIO=?&Z z>pDwAM{yGZ&vj}M0BSP^w#NFyU6&H4Vhw_UfwhrTwv89X+aRzCyUFwIN

4emYny0yevNgpfjoN)%d^3J*z-IG%TX@e*pJm`v7#g1gDg2-KfFW0#Dtu%4pJzo zxU+CcS0RZy=Bk}wQw9u*;g}5p9gAEqOFzq5b^g%{O5dB-rnsOk55G{g(Ttrfket<1 zxi`l8hmgS{{eEhHAsl7&B<{){*jkc|W?E76&{dYy?eBqo=M4*e$W?IjYhUjt-8yq# z(Qov+s1Ez0QOU;j9ieg&?EW%j^_*qdBg9V8>Xo4x;x{3K_Iwb4ZV9z_7|0} zfVb{OY&m9!Au`XiDR#Guwj#9mqs#2iCbM^Mr*E+ zIskkJW%2pK#6QS&kKL^MxwSdYAoUEt4W&YdCZP$>#__UApeaRo*`%-KoigpYcj7bL zC{TsdVQAI8R_!n(7({fl!C^|UO3zO`20nQ!IoZT_oBlZzock#c(0kEzI}%)17{}>D z4}{9qHWwd<5FD%#4>|G?%UlS^yyQ~&8_*N@n@eqAk(b*V^0whTC4ZMxg?WsS_#J#v zsf;w)AXb?Lw06j^_bYnFo)l!Rvi0?A>wIx4C7Ln#*%{U9i)%JRc0I%tIrpV4v7;3q zePVf{JI*~lWH{j${-z>+(;j@AR8D`%U3U`F>K>!r>oJS*MsiJV;UfuBVMMh{ z$P!UEip`oFCUbjpNw*xW1lG?eNbBZlIh=$EZFG_B+Xk;h^QeicWXSl3~Mr`Z*Om%mTR-GNDok=aqGUwJFUm3re@~kjtZ2xuS5K{ zu(kVUP5a-(4Ka9M@GZxn_0EJRnJjQo*YQlq?c?Jy99I*~4#-h=;@lF<{wu3V-kN55 zO3l=*cS=-{E)-`rq!k^}YD-<(C8|Fw_PpSY#YLWHLFB?CK3_G-vuH}9{>aWle3GtF zP;7eFgvh1{VR2uvpFk^{B7`rJJxfdLs&-l*V3lx5=9l}tE)C?la9=@Lv-uM7VaXay z=qcsmX?CyCtwTFK^cL8;-7Qh+EQuk{xULLowh-U#!Hx6f`Eli=0wdb66v`6#Aet&z^>LQu(_&|E=h&9V-Igc(xZ4!^GNpW!z1 ziT8oYhqs1SzCn2}=n)aflOy>*)gq>zJDwex3E^h^PlEq@#Uc0)bd^mgjuVc9t?U+S z8QrDAXYUU`JKY@4S;prTZ*|<=vSzsVUNE+!b{QQo*Ip#tLIASwH~(^VmX4@LQpO*5 zw4VQp%NTwlx35hu{5Guu@B6+tAMhQ*V|N3J*MvAQ#t_ajB&j4)XA5@&%|RGqV8b?b zhz7C_A;Z6^LzpW{>XUT{R%;~2@P*9)IFKnpWfS9-YqCcm%2u(|MnKhe9fCmA0Zau1 zj}%xk$8>c{ljbea+6^tuO4ShJNYAWLADtrtmFPK>{>8bWST4n$|9xMi*orZWH?h3q zf%;}=r{28Aw|LNQIr2Wl)8O7R8g$N%^KP;mTk~)&PMz#I#|y}+Ww?Hf(njXWOq+sT2!ssc^8djMMs20Y5w zspDam|l#ivjgIj&L{Z7Nf`Xe(}kM4pQp4H?O=2@7zo{6oG!w`UW zUAQJ8+uz5d86(};IuNjHAT7HgqWp0h6LRk%4j?TQOoa;F}<#fs^ooX(Mfq0M))YEM2WYN|97#gN4WOhp_wYj*qCs z1TRc{87pse_`3w*tJl}m*_#w$$udz>K80Hqke`YRaw_E`KB(*O5VIq9bbN$mRWEY6 z<)BH>Pg-GmStD~%@u9t_E{`i-hCgTL0WG>$Oe9rzw2s{eo4TeW zx|@;TU!BG>FZ*hWSXe>o4WA#Xo@9?I<)}7llN8w;fw0n4)I`>Gdv_CyKf}rId44uS zB*I=6idb!K_4suwyyLuoEY*ycx`ub`rHS0!OdDAuUrIKQ!I*6YiTVUK-}T~h`w6FK z6br}H{*rjqf*NCTTiy@l;0-i(|Ki$Sk$OrbfwGe`-gy+cx!qeGQ>*_s#TJ}2-E*G^ z3pCGshtgneJ4J+DIstgSKLf=UgB+-T#fkoJKO=4K#2#Q*d`j#2de76OC;>JO#2(hS zqmMsD39+0hTLr1=qnM31$o82D!$vL-(a|ePjQpfWGyC&Zqs>4 zEZ!2QJs0DY6}9cPnw(Apq9rMIZNIGo7vkNkngSFw?W4m}sgvpmqj2%BrL+8|h}V8m f+l=_&rvbN67i^iPOs)?@6A_mbuPS6+F!KB-U2s%a literal 28454 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 Date: Thu, 24 Mar 2022 21:58:53 +0800 Subject: [PATCH 203/507] Edit Ui puml class diagram --- docs/diagrams/UiClassDiagram.puml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/diagrams/UiClassDiagram.puml b/docs/diagrams/UiClassDiagram.puml index 95473d5aa19..169213adb03 100644 --- a/docs/diagrams/UiClassDiagram.puml +++ b/docs/diagrams/UiClassDiagram.puml @@ -13,6 +13,8 @@ Class HelpWindow Class ResultDisplay Class PersonListPanel Class PersonCard +Class TaskListPanel +Class TaskCard Class StatusBarFooter Class CommandBox } @@ -30,13 +32,15 @@ HiddenOutside ..> Ui UiManager .left.|> Ui UiManager -down-> "1" MainWindow -MainWindow *-down-> "1" CommandBox +MainWindow *-down-> "1" CommandBox MainWindow *-down-> "1" ResultDisplay MainWindow *-down-> "1" PersonListPanel +MainWindow *-down-> "1" TaskListPanel MainWindow *-down-> "1" StatusBarFooter MainWindow --> "0..1" HelpWindow PersonListPanel -down-> "*" PersonCard +TaskListPanel -down-> "*" TaskCard MainWindow -left-|> UiPart @@ -44,10 +48,13 @@ ResultDisplay --|> UiPart CommandBox --|> UiPart PersonListPanel --|> UiPart PersonCard --|> UiPart +TaskListPanel --|> UiPart +TaskCard --|> UiPart StatusBarFooter --|> UiPart HelpWindow --|> UiPart PersonCard ..> Model +TaskCard ..> Model UiManager -right-> Logic MainWindow -left-> Logic From 9dc4e3ac3f26be89773935e38bf4fcdd293f6e4b Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 21:59:06 +0800 Subject: [PATCH 204/507] Update Developer Guide for UI component --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 73cc6282e00..8c476eb3a9f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -73,7 +73,7 @@ The **API** of this component is specified in [`Ui.java`](https://github.com/se- ![Structure of the UI Component](images/UiClassDiagram.png) -The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI. +The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `TaskListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI. 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`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/resources/view/MainWindow.fxml) From 82b15ffeb9aa511c06ca86485f41d5e14a9efe75 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 24 Mar 2022 22:06:01 +0800 Subject: [PATCH 205/507] Update Developer Guide and replace the Ui puml class diagram --- docs/DeveloperGuide.md | 4 ++-- docs/images/UiClassDiagram.png | Bin 46833 -> 53932 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8c476eb3a9f..04d5ee42e37 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -69,7 +69,7 @@ The sections below give more details of each component. ### UI component -The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java) +The **API** of this component is specified in [`Ui.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/ui/Ui.java)) ![Structure of the UI Component](images/UiClassDiagram.png) @@ -82,7 +82,7 @@ The `UI` component, * executes user commands using the `Logic` component. * listens for changes to `Model` data so that the UI can be updated with the modified data. * keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. -* depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. +* depends on some classes in the `Model` component, as it displays `Task` object residing in the `Model`. ### Logic component diff --git a/docs/images/UiClassDiagram.png b/docs/images/UiClassDiagram.png index 785e04dbab40ede401c3da7ad992eff33e625d83..d4aa9cea14b7fdc5d119aad528ae08a579321af5 100644 GIT binary patch literal 53932 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

Cw+#+RLP<*b01tDn2zTO*}tJdZZaO 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 literal 46833 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 From 0be20dfa53ef1555878f50798e43840bc44e2422 Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Thu, 24 Mar 2022 22:33:34 +0800 Subject: [PATCH 206/507] removed redundant parse function in EditTaskCommand --- .../logic/commands/EditTaskCommand.java | 47 +++---------------- 1 file changed, 7 insertions(+), 40 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index c22ea518287..24f2509d1e0 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -69,42 +69,9 @@ public CommandResult execute(Model model) throws CommandException { } } - private Description parseDesc(String desc) throws ParseException { - Description parseDescResult; - try { - parseDescResult = ParserUtil.parseDescription(desc); - return parseDescResult; - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - EditTaskCommand.MESSAGE_USAGE), pe); - } - } - - private Time parseTime (String time) throws ParseException { - Time parseTimeResult; - try { - parseTimeResult = ParserUtil.parseTime(time); - return parseTimeResult; - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - EditTaskCommand.MESSAGE_USAGE), pe); - } - } - - private Date parseDate(String date) throws ParseException { - Date parseDateResult; - try { - parseDateResult = ParserUtil.parseDate(date); - return parseDateResult; - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - EditTaskCommand.MESSAGE_USAGE), pe); - } - } - private ArrayList

- -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. - -![UndoRedoState3](images/UndoRedoState3.png) - -
:information_source: **Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook 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. - -
+#### Design considerations: +- The Task adding commands are straight-to-the-point and efficient for users to add Tasks to ManageEZPZ. +- The prefixes allow users to understand what the different types of Task need in order to be created. -The following sequence diagram shows how the undo operation works: +#### UML Diagram for Adding Todo Task -![UndoSequenceDiagram](images/UndoSequenceDiagram.png) +The following activity diagram summarizes what happens when a user executes a new `addTodo` command: -
:information_source: **Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. + -
+### Tagging Task to Employee feature -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. +#### What is Tagging Task to Employee feature about? -
:information_source: **Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook 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. +The Add Task mechanism is facilitated by `AddressBook`. +This feature enhances `AddressBook` by allowing to Additionally, the feature implements the following operations: -
+* `AddressBook#tagTask(Task,Person)` —  Assign `Person` to `Task` +* `AddressBook#unTagTask(Task,Person)` —  Deallocate the `Person` from `Task` -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. +For the command, the feature extends `command`, and is implemented as such: +* `tagTask INDEX name/PERSON_NAME` +* `untagTask INDEX name/PERSON_NAME` -![UndoRedoState4](images/UndoRedoState4.png) +#### Implementation Flow of Task Adding feature -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. Reason: It no longer makes sense to redo the `add n/David …​` command. This is the behavior that most modern desktop applications follow. +Given below is an example usage scenario and how the Tagging Task to Employee mechanism behaves at each step. -![UndoRedoState5](images/UndoRedoState5.png) +Note: ManageEZPZ comes with preloaded data, and can be started on a fresh state with the `clear` command. -The following activity diagram summarizes what happens when a user executes a new command: +Step 1. The user launches the application for the first time. ManageEZPZ will be initialized with the preloaded data. - +Step 2. The user executes `tagTask 4 n/Alex Yeoh` command to assign `Alex Yeoh` to the 4th `Task`. +![AddTodo1](images/TagTask.png) #### Design considerations: +- The Tagging commands are efficient for users to assign a `Person` to be in-charge of a `Task`. +- The Prefix allow users to simply input the name of the `Person` from ManageEZPZ. +- At one glance, users will be able to see the `Task` assigned with the `Person` immediately after tagging. -**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. - -_{more aspects and alternatives to be added}_ - -### \[Proposed\] Data archiving +#### UML Diagram for Adding Todo Task -_{Explain here how the data archiving feature will be implemented}_ +The following activity diagram summarizes what happens when a user executes a new `addTodo` command: + -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/diagrams/AddTaskActivityDiagram.puml b/docs/diagrams/AddTaskActivityDiagram.puml new file mode 100644 index 00000000000..183bd639161 --- /dev/null +++ b/docs/diagrams/AddTaskActivityDiagram.puml @@ -0,0 +1,12 @@ +@startuml +start +:User executes addTodo command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. +if (Command is Valid) + :ManageEZPZ saves the [Task]; +else ([else]) +endif +stop +@enduml diff --git a/docs/diagrams/TagTaskActivityDiagram.puml b/docs/diagrams/TagTaskActivityDiagram.puml new file mode 100644 index 00000000000..0442fa7efe9 --- /dev/null +++ b/docs/diagrams/TagTaskActivityDiagram.puml @@ -0,0 +1,12 @@ +@startuml +start +:User executes tagTask command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. +if (Command is Valid) + :ManageEZPZ assigns [Person] to [Task]; +else ([else]) +endif +stop +@enduml diff --git a/docs/images/AddTaskActivityDiagram.png b/docs/images/AddTaskActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..49c344d8163f2894199319f99028f75e870d19a2 GIT binary patch literal 11205 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

#&Mk8dl*UQ3Y(ei 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 W8|onPCIkevNQ$y*GSyP1q5lQQhb4Ic literal 0 HcmV?d00001 diff --git a/docs/images/AddTodo.png b/docs/images/AddTodo.png new file mode 100644 index 0000000000000000000000000000000000000000..ed346a51f3fc131613e7e223956e7908f183ebe8 GIT binary patch literal 58181 zcmYg11z3|^+q|y8a)HVpcx=Jk&+lljb?z-CEYEI z8Y4GGZ2v>}e*dn^%k6NU``qX5dOm7vs$4pM?K}kq#U(XWMKA@$8666W(~eaC0xQ@5 zMEC>$oqMTj;7UP3=XUt-p9yPrPYQ|~6l#hObUhPS#(jKs`>WT;B?HOEWeqnJA5cxl z*!F$4Wr&%23wD?9=N7f?aT?1}6GVO=@uJOh)$YeF%3J=AP zObWorm9dT-0m7F@QI!=^vL;D#h`}Lc7J*iIZ*{B^Tcu{3piLaJf<*sKocXObC&$ukZ%qrG8-_%Z?zNosn(|zZKxP^8I z7Bf_D1F6hTo=#%`^Uh8-22*)FzL8zKO!D`@p8?3Jz{C?E40dxSy%7|zSDjYmNkTR- zaUM9dqFvyT%FDm+-vOAw%Oz`KqR!h^7%Xf!8dI1SDTnB?GEnESac6=QiwMTfod!tt z=1V2?mW|}8N+g{0xY$L)rCpJv<;lY$bg|nR^r>vgJC|rDpQ}avNG%LF{9=z^$@jiKsJTddy=N0%>BvBTQWBH1z|dq(R9YTMW%K zq6D1)*L@TAsrF(e;~1JQqb9Q7QS%rfq4UWP)hbTMnL<3h0MnQP2zRsR9SK|p-BRXpEAWLX(4rz2kAHQUd zF04S$zeNUYeeUg&8^t*O1Ouex4*0>}hR!)Z-L7y}-x$g*p>k{5Er&)~EsK9HcW+9( z2wq>vj|@R!rxH&^ovGOmKF21W$odN`Xc0V!p;x%WlXR)}L+wA^OdRP&W9mG#GU^hn z-vZmxi$&@lCc3tAC{D>+x-~~UJR7!8>ZcnDPRt5fXU|C746lvNKpD3(S*XpOrjY@y zcXbc<1{Rf`wR7e)U3IeFWuUczGp>gsmGeRMX%g&q#-i8nQqV@8^Vwk44{MNk7^UL%Ltwn(sdwJB#>TcIPw zr^MBTE6Kuo%JXLRgkUURn?Vp*Z4_04EGjH=L|{*2K&f|?&v8XFfTa@RHe-qgnaq7n z5#(QdI}J;T(XFejB0r)v(k-9o6QIwYm&S}I;Xp0)fQj1A%m6p976sNmsT)>)t8y_b zEwXhuAo1=^jsQR|ZO-lWTy&HnmF{B{#)Ui(dS}J1Fz=x5E8NLad>%g~nXs9@xUx7h zP%mlMJwg?gl!Sy}H;Hg7HJ-#Mu5>uIC`5Q%I)hf7hy36sjrPl^m!Zy`XQzIxBw9-} zxnj_DG49Q3pEs{8Q9o73taKaTS_>1|O8MI`o98+BV>Q(6_I&G!t@L1tO!m$eq=?*T z47ehDgcri^z2OX-bJUR9Im38y4E9ndW@(}-1oe&^-zc%?_!29@r?lsK zhb+e;ktk6_|0ep*I~7pMzr(6KXYCAPN^{x2Qks` z1v|ik)(N!2F7qo~=BpFDcaBZ8&>t-Vy{XL2MU(7=?8?bGe=)A&dUY#l$P0YCY2TGr8(gYsfE`-I5CT z%^ssrN;eSh6Ylt|DdjoGBsn7u*x5gzj+de0;MV7FnPp696{uzt-E*d#xYCOu(rwXJ z4x>!w2Au|0!rORu@P5-h<{{(s_SRMxtGPRE(MeGWQ3=b5N=y)Vq~LVgwGmtMimGIK zR&1(@i8gq@yud=}ny9C?o?Z;#pn;E#NdBPD%%7~EDxm`d_pi(1Kf;Ly!;*ksQs)ft z^%(c&2oRb7rA7#^8;&*eXu$}gb>AO^9y)mniq3xw69}N8Qo_56D7MM396!^dxdLAf z%Lxd)no(3CdA+ll+?Y#w7?dWhd9?pGyLt;xY_#Tev*LBHxqH#ITq zt-z#AE#Can9NV!WH_Bs>k&d1uFO#ICR$DVYJ-v!|e>c1QdWj4XMX||vYX5I>W`Ejn zRM4trs8?Wb5;TT(?!vS=msK?`0BKm;S`q5xho9Fgl~XP6(%1kDx7g+x*d0N1ROek}NR-$vMfOz5N=#vHNuU$%NNe z-g6h+te5mngnk;Mv*qe@IB=3F1W$oZm1Ck8Ted_}virVtWuTVZnTq7n=wY?^a)=H= z;Mv+rQP;Nr@~{n}(z)&}jD&${&a4=#H!x$JgJHsGh7r6w&mx_ngN2L<9+&M=j7s|A zvs_}Kg2?wn0fs<<3R`3m%sE8b-`!REd^@N{7rm5;(@OBj_#DZ9LF@}RZ@rmeaR>kT z18Dy#7yMpW{yF}J;-+PkKsod|bFf(5 z##|evVEkzb{XLw~j~hFsKh^dS#??|IFJF_M$RSvL&O`PY*GjPN292ZchNC75dnjz~ z-dDV;!}7<;{K>`T4W>~CUlSB|+an3D?Cd&HY&XhCmf4^2KiI{TBG%tt{F+T^ou7PF z*sjAVSF7r=fI060)sT>59!} z)YGcm9GD5`SsKJu7j-gO1ZVje^9x>98`SSg78+o(Xn%iZl(CC?Oo!dd+vasOIVlL= zX*wob_|?CEyP=Cxu6TOmhu1H-Djm#AZK(3k!68DOk`d=)x8bWycOM87wVsUNKDb7q zshF`s!H^X}3+S+E7~VUt+)dX>GlpiSN9~LHUf__Q@B8&%NI3^>pl7*y8l%0v*>Lj@ zlKuUqhtFiC?Uiag)qML;HGD1=Dy#lReZ;cYMd51l6&8vLX>i`v5z%_Hysp8yZqqPP z)6wNuJO|w>D$=s19Exq-7B!ukl{q@h`Q!a|PT^flGO$4HUg%vwn2bsd0 zG-2lv_ys{3Sa@X5=oO1%G>wAp{@Oa?D!IzOo7w@v7?!^nv7;}0!zMo&@0m0#HcTAU zvJk&&wOdgw(sow)`xLvgSdqS#Pn95;jy)HP*g4jG#H(r?7H5J5F$eRJZoOG1$mKT; z85js|gYsFgDoEL(Y3jk*y%rNla&eo(amQOkr3~{SSXp{_cC&4H{w?m;mDkSTS&sI`1DOO zi#C?cgyIL4FPNX>fZtPwy1Re$a?OhYGOJ<{usT-&t%7>Q@>0((T%>WicimdntNY=F zM2+nTx>>@3o!3D&@pI{CJE-!PTdP}9&eg6XGYy;i<4gN@w6|+l`W5)8I(^qyW+>J7 zV-J?~Wq*(cxL>3#91H17d}~L?c%hX>F|^ciI5HtYI(+@t6=WpLJ`%RrBV`)H#=n+X zt-#0AP?o~Z!xas0q%v}71B1_}hJ-8Z1&fGUL&&c`jWSZb^1-!xZhX5R1~N0|XS~3X zA!}M{{@~S0H|a?xU^0x7$|lI6&wiw=t`j~J&RUZKhHw0FTogJlj9sr#synMsY33nk z;{-Fu+jIPS0n>QUeU|vS7I)Eam+DYJzQWjiRtmT@V))H!WM(SM%ge)L@k6!B3{CH- z<(QC>=*<~w*v?N&E0X#-B73x!FOL1HVuFIhLBB!KMvx^n2)5Jyc{KCUj{q9*`PfK> zLl2dvvu}1j1->hy|~+Ul$I~W(x;Z!+)_H9vp7n_~joT{+ZUNXt!aH zTnAF7X3{nHZY6=omojBca7GYT#7H9(x0KDD*O6cri{NmuM3-w{&JqW2_Dk?Bp^evI8}H1$%+myfyt(piNyl zz$R_!&2O83@#SAYhfh&pWGsven*Lzs=R?^+H9vm*(CRRZaTl{BUD0CNRIGS+wCRRl zu$Z90i++48xWX8S+(|#lN9(o2jaCM&3ldt}$8iMa4x|`7F#Pn*k?Ewk^%+~#Ka5|I zJ=z@3udX(S-N=x>c>I$NOl2i9aiqZ)P19QYa{<#;k(1P4k7u z&5wS*hHHb%0%)wPtQJF0AFbS)oP;f#^6nqGi|~Rp+O#7ZNnyzk36AVhhcX@Qy1^AJ z+^T(YRD1gA6LfFrFsBp`ES`jQX#sEryN>&?qbEe8bU$V89z$(`>-OP~QM;?g2~Q~l z9c^J&=Sfe4FJ3;rc^Z&v$`a-m5I4K^9jy1gb5!Qz6gOGDOtXVald{3!UcBkg_QmreU%Hd zq&*y?!v5|cnr*1;2m#eA$P$h0TVoj5?$+Yd9KCe$f+H*`WNpojPiap(&o+jzh&w&n zHa^-e@2u|dmr!xR!g>FE$HKPz^@X1On92klEY`iFOnqGBOWerGuNfgqKf5vI_;RyD z97f)ogp!;b9QL}y{23rT8=IT3jVOfU&<}F}e9GtE-@n&p0YR&-_IrKv?BPK-YN=9# zC40}qY`*{av9_3rkn`PH(?1nJlcR@h?dsBUey;Fgt}V7JS$5B8ayN#4=x&$H=8#3$ z8J*n^%AwbZTfJI?eSN1HGm%IvBYH>4+OAvzjVkZ^d$+hQ;%n+DowRZ%TD-+rZWLJDmMz_r+*CAf@9d`~K|T6=&OGg`90| z%K$>_ToX71N)gfg=KC7syQm5DdLxUhX?|7~4+e|@0#5vigpk}S7i{0D0MvhEBPi`^sOa3YUYR8(wi zFlQKzX#|1*d=?L83M`ru#afQV{8S6mth)Le^boWAMT^GZ^4+BzOnY4K9ukE@-BKJd z<5UT)+Un7O?Tt<<`;=-S-QC=@r;kj8@LDjfAV<%>E*eHAz_fP1lhPz|*hG#nmIpC$ z>UwiZ0L&_THQU4TP_Ywxw#B=q_J{dT7gyIL5%STti`U~;+tKCa#Emu~5DVMX;7w{(hS+qb0Th)XK7DIjVQck`< ziHLEoA;%*DW;M2N2VY5Xl10tq3-P&5V1uI;GYsE8lWKH4AKt%@dOV2d{v-=OxkpAgZi9R`H0XW1R&zQKeW)vH$(mY>VxA+Xs?NwD~7Z`mowe zL7~8ub-MJ#!ld}hu@g?d7r?C|{u&;JzZTQ7Qt;qK5_BE!rU$8V-pwIjDpw&XaJ%15B|^X zM*v^9rzReMqp-Ze6U|_G0`5OkSRVZ3*2$XiU-MWO+%u9UedK>B!s)>3(W}Q+T7HR1 z6n1pF=oeiSs+aZH#H*g;NvG4@Il|$_Lpunc)AsSjbnGB-k^fm{9=LGuUo*`!2Sz;( zJie$X9R7FR0(d%w346pDdFw)mk=g^u$%#=6VCK|b)*}l>p?a>Zu&nF&hQVCXV1@7# z0>=f5w6=Es&#k1LSjF!-aul>xOU-7lgGfP zqau*Y#wO9mO8fAJomZ7Do9`X~TNGon(+(1!78F`rDFwR~ys-KMRlk~-V_*<5GPHYB zvoQfa=>RMk>1^p50H5Kp))6*mL1X>96s(c)<+pZR>xNOChqASmB%{+hSx5_NW>ksj*a9Oyzo7gv_7w4e1#46n7O zvy+o%Px~Pq(t_YO@8%IXpB$cyOt256c>&XL4LFUqeDTE9-Q5+J_~XU=mNl8X>t;f1 zo^5>T`}Ku`CnhGc2diI7HO5SeJsjv64^`{6YXV$hT^rpM`Dt(dzU&;@tlFb@VB(yA zOD^+^83o-6&mu@QTOpYz;fn^=;%?Xc&2S8>1{#`!Br%?K%i&75`d_vAd7;r_Gl*mqe zkjf7?K;~w>GBwrHDazGnDB!%fj5xigt1Dn4Qe-{c`YC%yM`gKsLL}cd9)oc4Zho<4 zk6q0my7DlVK(A)UQyBt6gtE(>_gDc+sJ1IcU@hFd$LzimG8oaiVha4Mp`qo z9qLP8uM)cwO%M8d3=2f9;pP$Vw^}j`#tTkAJa27SK{Y*zY z2mw9#F+4cka=POFX1pFe`pm}bPto_6S97j@| zO~C9+Xz6@=*X_be#u(jglGn`Yw-RdobKQsn1|!z$0Txkd8M$K5I(J`@wg`Ng*E*58v_ zF(0o?YbEC(b1$Ove4$Umq_$;q_8;?}XZYv)h%u|->8~~hWC@4+k)E`n3F4e9*zc57V3Zo#7yZ0K z70A;0yfYtQHfb;r4$CBN5+HRk9>)5A?>zegTdWik%zw+e50ph{r?QCg6SRCQAX%-C7*vAR6 z@A0K~;-2-DQr^L%H|_ZlOVRICMjPobWvDDXO~_Gl?F!;tbyj~ddFU2CG~BV+s%_7H zVHILVNE-NfOTtg{?aeM(@6~JV{`B!WH!p3+sP;ZF%o{I$x?_a&c7b#ks&={Y#XV!d zz44)?C$F6b$-F*zT(=7oi4QB*br2}`7D-8@S_JAGtMz#Uxa z>e%c5y0>KO!=nW*Rf+a`IfJ_;X!AWiZ}#3&Igf!q@9jNEAN963T^_q?Y9v|e*jw*@ z|9)FNU)p2dYlFp-*49s7O;%-Ow%&YHh|cng)0ss!CC!bOrmB2jWpqU<(}C(OzatYX zzkRpvXnjv59^SM(n)dS3B{Afk&r#y~kUUed-tv63Ic?*qp%KWi^lJ&4wV$(}2H# zHga>{%T&C!Bml(7KSR0zmDM{TYv1}dGp>|!}b9m z!d|^BrkX}!#reE0Ww42fuqLm;=v_?6p{)d;6-?ig39!cBC@;@}ApWPko=OxLGrqXD@J2kXg znd`tIhC{L+?}j`pb5fqnP?PWPDa@wJlrxpz{#5wm#s9yO)!xI*a}H&w4W1{xvb{@J ztXy;Ih)$3#68F!mll)QR_Waz$n9csUHKYtr!CubPI z^W@OfGKU2SXyn#}Ty=eM7@p}Bd-yMmuLI_>+UM~f!*_3nAtSu=9aLQ#Ibz}hmC`fu zstWLRUD)wnZzBGHgxMv3R6-yXBO+(4B^+Q#t9o9I{MMlH2jQ0@H58q!b;O84( zzd;0I#P%^6iW2N0B`9oIM^Vm|%M)+VUF@fLTHmc4r4@)vjZD!a-6YkVFVQ1MD{)<_ zi|WveswsfZy7saj2hSmC@K1av(YRo0@omC!9DSGB0*-XA_<3{y1<%cB8qx6wM?YRO zh_q^t9>>8Ktpc>)JDfayhlgwMI2mnz26j2gXP86&{#i77^%$6ZD^u#llia6S8_X2D z(&k6v;^KN3bosG~{L!8pw3Setrln{qP|J|BBmqfRyp+2=EcLk8*75{s*)?0L8whsC zo`+pv6kKsuJ$mf2 z;t0ZPOCSNDnswpbclYqfkY+nt47Y4#vig3KAdF)SEdu2~v|!Sm!vpy0Y@<<%_H|4T4n}+RESrVB$mg z)Jd_-l9v;{&}IueI{oEkk@`EM3vNM2bf5q$ol8E>E#=?$jC^-%I@&}5ZeUVALA^Xp z_b;U^)Og_F{}L-Z_W{Z0jBS7Zu0ZTMy0d#@{CM^^kMFX_@|L6e=s2`DykW-Z|sHC zSk@ib;Y%voX)BjD^|i9G$l{EYLH*)29QFFLw*|>k;}5Sch))C8U00Wb-vvo62>A4b@3p@)#+OwL9x1S zrVC>_#fN#_8X&$+j>%)i*hL1a!p0(DJ0)P(q&7v(%~S20NmkK$y^tE^<9a* z!hFG+ovPXZStC2?af{olenzCRi9Ma^%ZOsZ8qy~}=RsCG*{e0;a7_WktMRm$T~66a zW*wJ)ZKBHJvLxD#`L%4t^Hz68=zY>$wK()X$|sP95&xx*D>iKBo*^~2+Nb$Q@rs=h z7D3zbQMamX?XAR`twtm3N7A^C$N4o8eQ|(&4PK;v(Pk@qb}BC-anIXLw`Lo z|5|3Wgh!nwiFl0Z+l+*;uX_35ri-{zq(*0@2a_ZWO9|EEmzn};zO6oUotkTw_3QC_ zL>1u*QHc=p=9Bd_WFeF&lXS%ip{3MguXJ8LAxS@Os;ArU$g)Y4BgSNg8cz-M=X5DPJb*tbHX~$7|Yocc0bK|z^+Jy}G zW$BH1K4-R8W|0?b;o#G^ zltdX?3{C9O1p_q#`5vZOx|`8gNY__m^kI9YJ(MYCbfgHE>O_a;6gt)GQDVW|a@!V{IxTcbG*3FyLQ)m5${ z?%-=EOf4-r37FAT4`R&%(Zuhl81SXLUWHZfZ?p-rh<6j-rlR!{TsSNU5`Rm&$Z z0xHipg#HN0XcQHfwZP56j z*qe^Iev-b4&{Q<`L2nIXfz95y7dO7T%Cuq$@&VX> z`%Pv_mXh&(@2x2g_Fes8&^pN9ZSu{4b7xK39auh^O1=)x$Gwanl+xU#Co?(Bt#xjr zo%g>UO!#~P8KPeqnP{j$pELs!g*FvSE0Rox9rPUK5eUa6nC8BN!!g*@1v;U=H#AMBg1 zBFz%Nno+|Fd~kra*4hN5!!>yLNC9e7PQ%0|Mh!HX0PU1x!}gWAbq=<@zn-=GbJEmn zIove}a?t(YVU3SXgFAboub1=BJXsTHpedce7ngK5DEtxswV1&hBjXAHkG4PchQK5T zCI<2oUTa{+?k?AdmFhzLx04>$N&6;*AzEt)4p#>I5pEj^RP_Dq*s|$PSOxE%rJmWf zC2B&A08Gx>keXfAzb7@2MzTY18Z_>|zOxCE>G5vYkt*@s;TEc{@)=D|WfKVa?(8(c zDywq?HiBM+nNE~|mO6S0Fujv+lutO$_b%VgNvw$)_JLbx?cv5TON_V$J1_dgS{UtsvCxfC_ZK!G$P48lK3(l9c zG)QR5mBR(NX85?JeOWdPVA30S^5?Qau-cPTp4;UDQL$q$AExR!{`k5dI@)-BVhb~l zyS^c0ubNL-UlU33xgFtye8+W;6qdb*1-`Qy^@3+lb(va8xf+edPQLt! zX$-z@T-OQK{~87b6xxw8PnloP7Us_ohX)G(N!u@y6^ZNtjd4nLJpe9rfW z11j62lR2_93%1a<9O(pIy@S!wNiP_T@Y&~b*``Y1U?kwyYi(XfsxwFJ?(LtFLE>uG z>Ye=N9-D=R^T0K$XWV9!AF}(=#ngFS^S~~)w&;|<3jl1JyXQKWQfIjjV8-UAD;^3t zJ6#i%>5_~V_yU${KWOI)>ZgGZ8~XZvWd;_;14zSfLIduahfb!yL>_oYJ0OC+!1mM zFi>Fbn&LG{#z3x}be(*O@t&P5SM$kn&$Yg^p3j?`n~6*QO<^S}Bk`Ph2UO>8KkAh1 z9@;37UK()%=??bz-zE-g+VKmw)-WU;r=5|vULqU*9N?Eb67M=U zi=9UO*1kC?*zZeo9!%Ox3@!hNuoVtL1O%?iy{h-|oUE}hr&if=^Aga<*N#mCvBK-3 zAb5{eyL^T=AX#QR+ZmON^$~?n|u-U9iayHpuy&&l@_@dmi%bpoNe{oCDxf&hz;V+L_(!jVt6YU z{81!Tu#da)reVK6q7T4^T5{J;dt02idX-O;%<9Zuw*Bdw zx!0vL4V`g534~q(KBw}wDI87EP0_g{kgg@)*3zmzd8PHZwE6=i56-`W)$ zxsO{9-X1Xc1ezsxc4}rle+#n;t7oVi?FJ#&bCKZ7TQZgG=LS6N zpRM%|pu{*r`v+Htp|_Tz)qu9I0img4kKi28qelS|GZ0}USgRy zeInszTP-oMY+w|{J#2E{WJ0ieWI)V%CXI?dL7h4sY5QRvd|7Z{4_0b}k$${7 zC3-bj0>mx7m7Ski^2#iSrlU#9n6R%iywy_;L6jK<(wIOx@*Rw#p(R5ov2TrMwi6`CJa{XZ0%W1^@PjHeyq7UKn=)>gZ^dTS-&_QOr~}j zKOnN+&7~$i8V#fAK9uk;SbZD{IkQ+r&V_5)VYc@W!~;L)(d!C81dW^5` z4p?OVN+ICOn;6X!5r{#H$VL5NHpxd^6WX9Z7g@4pGG*nQo9SXEBp@zzAI7LOdcgz_ z>?;RV4-Z0b?U+DGLNa-qWu{^emv|-ps{GAOwKQtF_}dfbwbCM7;jX=221>(UI@zEx zJ`=;E_p;a8%yz2$zNb{?!W10Hvs$4(6$&t2sjXI2;}d=5A-br1w2xcCqM zgeETm7Qp@&oaYSWQeCf`*2Ad1{lda?-0{?iZZ2s;sErw<(y?>qOwq%h86ZGqoYZmg z+(h|pBRq@O?p19yB@Oqk5=~XZkIDkrDor!}seimb-s_`ghm}pbt_N>Kc9WQal!QDf zK39TRLnWQx-&^i&qMU!GO-gs@l76+d&=UHa?~uL)jte4`Tm*@ly&+6TKvDkE=aji~{v3f){d7a85SS^2pLElQ zhG)j34j`NJ7v58M_4?U<#{qaB4B}jBWHIde?Hyt$SWW)!ANN5?sCOlSmG9a9I3@ai z`^I?=moat{ks6kpg^kt%su5zcWDM4b*_D3kdR+ zD$=e#!~+K$!Uyw_Q_Fdbk?0WvaK>9D?s@ntPs7rK?IfNWR7XhAH!|CT-8lZy+?3Y^ z@*p*d$kH>LyO$k;v+|pE?beV1M4y5qP1mKt0`0vjj%E_I{9t8Jkm*r5{_)Y(+qiEt zzLODQqu=0BUCfgHk3#oS2k@(zA(-InAah;Plq2jK^yag6{y%r=JH?SfVQe^(_JmRc z<1>g#D67^=$||ij%Y=VBg}3IROR9~CdZ!$=x*WO1S@T=0GE|&h!e#852+z<@FUBij ztdjhL{SN-syG?c~?D=7I;1%MnF-pJW+au@0`c(m_7MoQ~m)Sm|@J$n>S(OYi@~94M zV*I7dbn?}i3QAt|A5w=a%K_q3w|cNv1C3v52wro)gl_EL#L@!<^{8NlkHm%}P!~f8 z=WhP)*1GAO(=wUr(;!pa#9u#qk<=#cXqj_jNKopk-8q1u)qQtc6Q8Ip zRV79+CJpxE7eDrLU=_azy0LlyX8z?b=tNmnI4c?|9AR^Hwi&3bzjply8RgbWZg2Yx z;_pXcrO6~|7b1FpgGk;l)wLqYk8ph{BEXl9=Vx}awBpEv^ZrJ|a_@ryT>;uqamBQG zK%w^HYc+8p|L?i8TR|-BFcj44-OIz;X8Bz9tDh>yx-PyC>yam8XK4}ep6D20Zt)am zc5q-nccQ#||5tbTi-;#>1PIY}Pny)?5axDkKpn1iSQeI#x3e%7H7PlG^Jdx(G8SuF zx3dt{WS1Ux_wcW;|M>ffJhRykzf;7it7knr86*YT3xQAK_f9J3x?tY67sbcr@;DygtxDz5|K=$_ zfx#JntLJpe=dINK9th0f{H;w}*p0rdJ38cbFju4qTAdTj46NW$i zKQ3yhtIeNC4OpiC7^jQY7ymv~7yP90i<`+rV#6u744jV>XQXJF#b6AvCxTNuWFi8?Ncs+L2Bp$hD_EiY_WD!f_m} zzux*ig6T2jmT)&UHC0bN-rEu#os=Ft^|$d7HBdo)!kpUj2BuU?v(@9NKMKs%^t4CN z<4NlqTxoDYj1b%4QNK_AeF4Nsby~EM>hHpBFqnt;gnz)hlY$sQ^4OR$pdHsQA6-?I zZ4?zUK91xKFnru|PZ3ViiMm*dpb8~)CK#}s~F zIhKw2!jdPq|7(h_@A|4cB>mNBd)5C*P>il=zW9GVNr`bU^Fpzd%db${@H0IL#Ary4}_aLkRo(qK#~woyko~pK&{t`Qz(QGoL@*D$>%@ zfi$IKF0Lag=%BOsHZxg{fab0)G%=%SmHTMEwALnkpz(hArYqg-1m~YUd%|id3BS>1 zR=zzjO(X){VTiM{ma?1L+I%Q00BAFAzxGJ}AEuy%1*c()W&$FDg2ya! zJ4W2+wPrWHDviOdw|-seS{--xn@!jZplP{=fORV|p5qu98P!UZp!I#V)R*I5W~t`n zlt=TesAv-tCX4bR7|~8%iEwJBPMVUpn5EBwjSqf*f0^;ve~-Jib~>DQAgF~Eo2*3s9s=`!X@X2kl;ncj$NU)%u3m1h=wN`Dp?EWvf4U`9l2 zFT*www}LI6sPER1xm;E0S}GF3 z1tA&tsCp?IkH^Cf&|wH!sMI0lRKEc{4JqzrJ=24`W;e(;*;YX=T|$UE{P*GsPaLs=&?>?JNP zPI!Cad;m>sOpFvK=3Tj)kI&wSP4dSCJmIQ0(tm~AHBsH9@^t(HnY=0+)lT!$THywF z_r==^#lkn}{y|0-f7kV|=Sg+ zTU+TOqG3d5*NHd0;2SsD!kXq>lw2Qq?tu=}CVrix_m!J0yu!C|#6WLe>god;TH43I z=trf$_A$iXXINs(k7z%K&93w(Re4!cm$%KSYieGN0Jx$U9LE^p&vVd@W}K+L;rsZ( z-2!Ok-LxnDuO9~0Y!iKvmv^WUcFvk;^en!dFiw`Yw}(}ZuWk}AvrAt0Z(R)o)vWYr zJoT!#4HYqaW@%-ez42x`|43iAWSILlAHHK^fB)PMLRj8}%@0Rcdf-r_*g<1I_brWG zfhwOmzU9Hd%!81pdU}l#o;A6-D-HJ@lzv@z_+68oo!vKj{(j@34$EsPalyX4@MZEI z&ef}~e6&SfWVbob@s85Q%371u0F&8VX$AJTwzlTBx39&Kr(Il>FEYzKtIwwR-sx2Y zGK-!O&pgNp$rhK3k?8;aPi)&2xm9^ZHRYIK@m+tBcG32!p`-SwMTc2Hl7kn(x?M*Bk7W4=CAJXb#C3kbmt<)ZG~n zX58HWBKwnk``Ls_fI_)FI0N)<`bcC%ga|i?YdBwLeu(7}dlOd3Td@8G3zA5;O-fmp=zva^>$ zy~yRSdNbB6+Rxwt*2Ey6nGbA^miUy$15J4V@rxk8*^I{_VIP%S>fRMuPd>Mv1>VvE zzI-*6|B~#v(KUVHlA`OQ(@$6A6`g7p2e-NR1aM4eA!^+|Q?SFn{}RV>5SCcA;a(!$wcu`)X*tWqmy;osrGe zGt{CJy~p!h+>Z>)lJgSfnkd`w@IU;iX9TxHEcd^4?ij>FLP)jT3UX(wtB&n{GReg zhrjw~xYPQdZ=PhV9PGx%O%8{Dm-mj$4z5S;OLXR8c)-ECk-SvfmkzTb# zgQQCcV!5{OrK?2GUwrhl=;{bY25PrcxKeFFne230bF^H39U(Nf_Z=$*l@?63__fV< z9`j3Tb^cRxEoFhC+TFnF?Z4gCeOP zqMyyGApTZ;Q9)3j9f?e4crm^X*Ml-z4?|(Ute;0kRctGr$FQ3UVd;JGaNmBVy89{K zEfq5h4m#`!FT7X&&6O&US`zkpwk@M(HZ_bVx94HDW(7}V%LRRXPMg5|AW}Oi^ijt0 z_GwhpOLjnk-(Szq7f63S1$*>Orh)Xi);(f;60oL66@mS7`N znjLjiYug@LrQU=p$d2Xisd9K@+k}9G(@I4TZY8^FBKPJ3P-SCIQqN?f28O$(RE1>S z3e-6s^zKkiPGlzDHVzR*{n=qk1T?m@12_Aa=N~-gFgv&XWlS7u{D7X`K4#+mbnZ4v zOmpoH$)|=7_dn{NMe4#zM=P0YF=w1IkA#)A{`c|Q4EUqCr{bOL^E}zO44hA&KN?3)>kfiPS3qV*MO)eqh+R!OsCAB zpO4#2%G7S8azW7u*xzT!*7Y?*=cftBo3JEcA;<~>5`*qJ4h60d!eFw18&j)?_Yv*N zzdnF2oq78AiMfm3Xec8)+S)3yQ!ZK>B`8E8yr6u3KJa^ZBHZkkKQNdDF&u8A{&#G5 zb~Ra}e9b0GSE3D-W0tz>-G_la9-NkadT2P**jPjHkcnxU10gDe&b5Eh~!kV9x z!|8%)V$$YzRCW`Y#-5n#+1}t4A;nFx_tL0&xlGK`bljqQ(f=yR@kMg03OtRs`A%-21BMNs25_>AleqE0!-W)4C4&s~Mb9zb-jGQ$f z*};F9LW0S?dChR@*J z-GVF~78S5+7<_C2cqKGPfWA>$Y6h%hfTW2D_G6Uk%%@8;8|!0TchBY9)^OE7dVH-A zwZDQvmx*WtXNEKzdDt0ChxQvJ#tG1vW~dHThF2R#$M-f>q>5Tr7XRSuGPJs!qN1XL zLfYjM+*X8$96gG8TU?y8N`gh+6kr0s^Pn|WZxfUx4C?>1O?=V1eBg%}p{ky-&cbg) z`%pQTOM?c5Xf$$ue%`iQ!0_)+&l*uoWmOZ{-8~9MMtYm&-io?)6mV!9bpwUPjg3{C zZ=%6p`^Do!fBZj2v78j3q*e^OcP$Ua!C(X%EDv`?AFTO!Gj2AOlCpWX`FJnDo)1%o zqXuEee3L1y+-6Cd-y$M_TNPZh{+{%3HsF?RO~*ntaN=@)V0&7EI;c2iKa)5}zR>)c zYw(tjtS{G~v#p)#0X;ZaTU%kGzh;E&6n#Rd$w_&>Yl}O$9_Z*RMmQ^TadHB|M{hVz z0lusJ!mZAl9Ea$QQY&5R`a9sgtgb)e+ryH*)gXIw(A*0r%acKiSRe48DuKfyx;>w$cupW4I1NoCjs>oZ#>hU6YFY73*xv>( zM>ZAI@_VH9$mS%FnSpi=N5UG14NOYfN3gStIqtwK{fQu-nq1Wc2MY?Mi0iO0C&y$4 zzfv?09_|>l9c9=>G~bwfceJuHw)2Y4<)lXzwK+MiYh1TG9b>eXBu7u4XljEaG7%8S zod@1R$hFI#;k89#Aue8`5?wP)?RXR+{oTRAz3JJ_CS|9=~%v2p;KrF`t5_; z{q6w?4b~CxGVu}7ht1)zDWI2JPs?-4Wa=6IAs)dgD@vzka5;rrQxwfvhhWbSQO|RmrMV#}^*779lzVS-s+Z5wm(;(E zN4jEFP#%v>C3WF&{z6kTo<_Dj_g*F^?7>gm zjw8mRJuWX@OKc3b+HVIzo|jsjr%XK8baV3RyHf^nH92~(qZE@mOLJ*fc1`q+D7qLN ztXz^+?`Nk7k7mG>BPA|o>9eat{7|`j)$4in%TqsRS+`VV)5*u9fWE~iSwyZ!=pk-$ z%h0TO5_vO{&!pE^U#_#@4lX!?tgkDKs#~n^CYb=rdd3TdvP+YA{mb9%`B<9cM#M87JQ24aU3>jvK@y5s>`5JUX{Zne|{xQHD2WkCl{*Ad&m1O8_3eXte&e5H=2WD# zFyySfr^fw?P^vLjqzJ6Uj9)5xTJ-*(8hSaEgy1qefUzAalIHJ279 zxiGn7Ql*ShF2SrSE3sC<{q3)v$|Mb<^^}i7{`q9lz;5^1?{w`WFJde6EDX~h zq^`4dz3wC&-$sW12;8w+Htp+{H2pd?jW& z+MJ3?y614FcZ4Z$gMzff>w+w`$j!2_{WVA8(s@6JzWbxw&Zdx$>M!3|9TG}+U*+dW z`v|GK(P#I%;e*)7UcqiTo}kcMHm^y_TMO52oF|jt3!U3gri=Y!S!G)*L3~kt&7LCk zZwK979i}%^cl;PwF0j4g`cvQkh+=Y*%~gI2eIb&Ntu#1N$>f+vaMC7IU<_-8KDxkZ zQ+p`gK~1PKmBBN2{iVnwu7Xu$*pbzJv%Y%rh+0IA z)OtX{Do^{^j^ChWqB=_ z8fGRtv#3^;qTEnqc~=9Y`!_HbD!Ef=9P@AFV{m6gnuVOSBYtF=jgLb{%-MA1V%rTov^^&ZFhEWZhw8BZG}ivv;xNa-7yq2zUl)U0gwESh z6$ul0`?98#DdW|ohl36^B*^jVGBbd16c%Mqxj%N0WCZH^!k-89FCPIzq;mI%$`dF% zrCFg9e$);6y{>yL6?82^*P9c!H++&Ur+m{d<^D1`Q>S(UFCRHs)k%o2iTYQsXFg*1 z=z6TP_4i2S70f7RNOy(`j|Q-|W<4fZhiMenzeNbWU7I5}O>}zorTZ4Y2{q(~TLm8& zV}oO*>Br^IZ)tFmfCp>)Rj+!C%kmn$RfyP5k366t;N=t+lLTO-k-g@NrnOCH8$eH)HIjd3%?Y3x%@=bEj62Wlm|^j_S@nPK_^1Z* z?*ESOn|$T7=UH@3ASiC$Me=s%)R_VH?=$q#?ZC6tT+)j@;1Zei$)=3MVQSD;3A|?l zkP*yKgAwt7U4Vu34+pDLvv*(QLQO@2^3og*~s%NOxU-J<5R%x3Qc zZs`%8AUsBa;csKf2uyABD}HEZcnqHXo~OHv}!maJ6pyR)yt}_j>nC&v*|g1Zpg?= z1#sq@G(9$FuecBM7@y=H4LA@arAmdeBx6`15SNdmHiaYOjf~#JNO7~LqvPXo^Y!h# zv0Vlw`i3MX`!$1`L45UhHtgwiN0J?H;Y1)N%{V6E!$w*khATt5&RnKG8Wqsio18Gs zc97pRV-$sAA*Q(%TKGmPwI_Sb>dhWCaVvu21hv9MXBiist0`UoOKy>TKGqoSTRBO! z|Kz|Nsy6oe61!d2(u@R2{JLt8qPz0S{&C&V)a-1Jo>|U|dx;$8CgF}kLN2}RvhyvK z%e_K)P*=L2yGRY$9lJy~<(Lnxo!kuE^-ff;L~ktL+g5UkrG8Skm>wnT@W}n1jNkj_ zW$&va+K&0-@iY6!iLR?FbrKS!F1t3ZL^P`$`#BlZGOe;ZHtNB=wYKUvsC*amlr|vD zzu_Aw6}9CrEnN?8k%ss*%~T$?VDGpbZ=}3H;GIA2*JMQ|@nt#M;+Vtj1lg9wg{n!a z%*;$j8G?93m13^M!xT%{_tx-u;jF5C3Su8UGpz()GuVT0@}i5g*Uc|IIi^M zrVvOc&<7o@-jn@7BAVoNZQcN3p|$zlSCh8qW^7kEI^Hq1bH;^rSn8lsGmJGx&46QG7Ud<@c7bgu#KyF%}EzXIY@Y=M(^Bl8=IIk zLdtm4ITQ!IYNHa-(A3?H98s&|BGu+P(SOF>6BwuR=~)bPvUlP|KPw(u&I}%uLs!P+ z=pcE79~!35`^ot+?p zTrTTTVY(&bp#8xN!>i5`0FTe^AJWLYvYDQL#K!IR`=bxn&W-2dzfDR;En>q9`^WZ5 zOAjl0?D=I=7M~M3rVa^FNzIY=5Au39M&03w{!;OC#%==EgXj$Dx)G~v#ybv2BH&vI$G=&aJM((xsQM357TI06t~v5k z!@uwCZs`?YxuM`(JZkAG<4_I`BF_wWwB|OcU(uU3y|*ZEzMrD!=N4OiS>0?UYezrl zYh4WN>Ns}lVG?ccu;-_l5#CkC95+X@jZ9453{^sW%uRt0t!n!Dy2@)=SOm89C_bE# zjemn2Vn}{N5W|<_W%#md@G88h>1l$ep?(=;M@0r0EwPY&J?wsytn@?%LUzkVh|-J)_O((Tw^{Nes=z*x~m zH)G>btk%Kt76rA5KoG18?cP={C)#u#n|!cG;jII`;4j@(yn+j z#p5XxMj;ouX8BCoYY~5Z=td{FQZH+Np@UasEf2xX137kr4~oGSE^l@ld=(WJ7bg=C zDt8o9d-RcqTgv6q?Hjf~onx7}Dkj?L8W8(H42|9MKy7XocdRD7Y9oJr{h5VhOB2jB ztG)4f#&&V&x;YaahGT~6V9b8)O68;pJItvR0*h)Hgzy{(StiPVaQG`kO`JLKm_ACA zlh^epJZyq*^hu@Dc$}-T$tF|}G7*H^9NpTX#nd}fhlM7ubF%1zNnliija>3t?~3M9 zLk5Kdvu=_~&2JoNfGtUCl_VK%6}o75heL$Ok34|(s=bz*B-aK^Z>^kFrRi#a`(rN7tbwvpp2aArZN+pht)UiYq$z1Va|Jo zlgEGQXf?~9r^l<_v;YaB(>nsdTcdy?PtQ!3aE5-7sSM9xlaeB#Ia0cNna8e_hpo=F zH6H#L0txqyx*8O~kMoR*Qo}^wf|pYY_@$;yVN__Oma!OJk$03ND6PN>4T7q|(y$j{bh50$m5`B`w!?@A@)b z0{lDI$|s@=IUP#IruQC)>p4FgNOtU>M?$fR8tV>*rO<0UsmWD}mt|J{_eBn_7*onw zEj0W6`jz-f;40q56jZ%`vv=)NgG}Z7IsMgpvFcy3d*LBH-+9Z(W{o>%tU4iWd@fZ1 z0iyd#j*@O=d=+&I`^SngIptY`CqBe($NI+Ezx5c+#<1)mOh8H>R*xYwy41B;Adr$# zv#4Nn_E@oL4=pKZcw98&HV6(=EM~-vG@8Rar>d?tWj1$Ni-S9RU^DHtn<{D5=4$jz zPl!P4gQvGDgyxRc3d~u@BBLv$-c{hcwpDXV59Bq-87drbnU3)#7#19T0Gd3zY;;y- zXkx|AyYTLP`YDq_=B?pig}%z<7s4Z&!UK6*i2Y;i(duPnKA)xYM%=oY?eDr<3%bZw zhJ9$o9dd8S@>s6Jra~6_ocbhRaZvxtIo@3r-g<8zN~c<`p~z=c{MA#J*vnVt;!K*> zTcUe{+$S2OhdHI+i1B{7rqZXOlzTC>2zK$tqiES2!y20C_>By3Y&R>{_-H~0A)58G zz*L54SC1Y4gh4oco@X`88$4&Fw=|n{KzxSrkB;vE+o~XY5JAS2k(r)tFf`#3u4;(0 zOIwXLQznQ;mrc|0zbDymH*Em`Rq$BCED;GG0M3{j*67UZR%OMq?XRlx2;`*Jv;TecHyzSzrGF~JRIHRYG|7UgZ@0%q z)EZ40SE<9NSq&IJG31g^2Uu-9U+HUyJ)%r%qQhM(QtiWivCwiQjHBW5J3iV+=CjO773%$LcK^%WxhGEF z<$j(|hYza7N;)~P0fKv+;9Cv_e)b>TOZ6{7uWE7&-%dHLZ@d``2HBlo^M+i36NwY2 z!5>#0 z?zs@Y==eM5%Qo5dK~neduGCv zy29W!U{Jw7E0bb>yO%-m^bX}LQJjk@JHgoUskz2sj&8Zf*JF7RxB6@@qC-@G3`;jS&?4JNn5IAM@ zJ1xWJrdrU^r;aTkZ>q_ugho%~4CQ!%H?TE-lB07sj7uue$CWZUJ*n(J*I8$%f zek7+iW)WzjwIAR=ZTc<9|J(XMCNvOe!6XWoA`k zdjr-@5R0l>wa{iang6|%pv*`K0>f$kV<^wF7n7@HYs0Y!)rrkO*d2IOGOnX zHBEm@h~zyw+0~w`d^g#&J7W&wV+6)m)s#T5eM?;cZp~~3uzP#E> zV9Ya{`h*_87H6e79sm(+SLX@vb=e@0fPca^5Vg5?iLga#2RMMoLtdkb@xj!Cq+H)^ zonHH*ySI8oV5En|rGtolLqihg!YuxQjq*`5@J_j!?upo~P=>|O>2FaXB3M__m8h^; zJ3$bf&`ovMyXBGI%+`M6--F;o7=9TT7yz-b5B5MV+@rVw&weFQmKM^=3$GsvvZXAuQw_P)x zrMWt5X8F9|rF=lwIJuy{Kxz<$eKq5dIUul=SJF+*o&-$zB5?(+GEm8;3b1V1;m{IkI8}zWWH5GV#hPQ@TckL z1L2upB4}*n;C|vYl*#1#LgN!h{}bhWbxiaJtor+D5D$u`wW@7D8?ev)M^ksPtw7kN zpa!~Vo2%rr&jt3;MdYwK&X=}+e!PEy1$S0JcsSS!Tq!N|c#BMMmHJiqJKzri#S#MZeV_ElszP&5OwA_e7H#~`9HYJEkQy|O=LVmUKzxfCQ2xte4>DgV3m-2{)w!rYiByu6r29JhEIF%v zerBzOZ|YPpf7>Y}E{DElr>sSey{;~B^b>*c_#{3&Re%l(YrAX7awjY&H+G#sa{-a z`L)1U?LTC*(V*h26K${F%FAApzDK9?Z+oh|5ryy+a!WXk_3?^zssC(#3-o~Kra)B6~vRk6T?dYqf%5I~ZG% zk76t~N_~t@4Fa!gN4=W_P*=-I9SaM=RIyRYpuMPF7L#riFbO-^nIv=q{m-H{bp}cH zPi={St};-1C*w;>E_ESK)Hjh(z1pw%Rc`&YV87NE6#@Y!E5OkEZ)8Q)fHMKQ&B#^_2C$#MAaiM?X``yt3~UfH|F?P|3CQ1;=)scl-w5B>jz^A>@drX#!`({pl6EDeEQ6 zS}nxHr;~ez+J&^AfnGNidBE&~&8XFIdn#(!d;wb~xv&Iq&UpLDvY8cVC3t^us4Whu zELaJU`Hrr8eE_png5l!9swb0g|0-tD>(Z)fZXlh!xry%^9&C|Y+yyhOuKbWl*Edc= z+9ytkIt*?8dU)mYIZdKe8a@Ank+r)02GQFTFiZdolK{1JrmML_#<+ROsDFT{<+OpU z{)Gvur5mDrt^v@xVoPlnOY;;Cx8L&sV5OL{O{@^yVSKJ;Vv?H~rL1tWa7ZyYtySo# zt}{bWAtVfu76-1+g^5jgef6`t5|tW@x`7!v?KFT7F9sx^n!DKS9qj~IL+36)N;Jib zORn(LTLAeuu%1(+A??*50O(LY3JO9)X*VxrJ_~9$%pvnS`TBn*)CZeu>^cjgTOOXW z($c(zVKCiZ{YxA9Cy5VaXh2j?u32&SR$`~Nv+cNgNkI+jZH4-R%wm!esk6n9NyK;I z+T{mB_f9}i9Xkn!kQCM1t;>pzRus0&sD-cUyV=jR0Fhi;2(Gf3ZEmcXPT-%pZcG_# z_3NNxh+xOJZ%$fEuoheHX8Ep0?gE_AY#n+qqTC8_CId~!4d7H*#E zeXxrB-M|K?cHac$eA1Xt^gCNAKG&z+g)BQMV<(6C6?qXl;SI{vCN4aLA%>D=Be($m z=m20MWg{+7C^YsS(SCTX27KC**Wx;iGKLUH9B?quz*g>7<(w3}7e7i*D?OR;Z{u57 z0JtvP@qL)!e#z`C*A=3+Zra=KDXm=dazy*Me(=_>P78^jR2vM<33`Z2m&@YDN-|C&3-(Z&$U1;CLvF|}GT01W1^po$ zQHAaTopT)F4oK)iO%C(!_eJ+-Wqg*M-xpgtD}Jun5!0-`EBui1gea8D^*}j2ef2rW zEDQ||88~bpp}D!a_d*yXWu@-@b%0k}>&*=-Si-{RUiH712l$FB+J1yrz-RhtMmqt3 z?F49oEq`}(F*IQzrR$)K3wV$|F?W%DOZ%2APpD&~_Cb(8=mm~yH;v%luQE1GK~!cw zKE0ci$z|6!8-19|Du>*kN=Z@1Iy^x#vtlL?yL?fXaNiRWIg(8OwzzCzivTD-360>O z$%e;OUj7X3tcsJqmX)#H^E+i51u9AdVkfB14bZCiQtnR?t9rrxD7j&8gXeIH$NEMq~pd z8ah~*-NT~PH8nN0-jQ;gtM}4ouZ7jz0Kl@+Y2Pe z%h64|L0%5ViTdo=(li_6uciImFSZuXz+I9_TdK>DxIY>q877%Lo3-YzAeo;geMi>N z%GO19w-DPz#$}w1VA}zT_`92S?}c<%^o7f27`Qq;F@Lu954Y?NH$^olK#HzTYgsRU zW%f2Kcr;@t2qZ8Mm9uk28j}P}7=T&{5mkj%E-6#VUo3I1=JZkse_j>AU1jR!s4)5) zCFpym_SW^V+ZJ%J5i7>VtJ4ZT7&35933`K6$Zp}X&i2keP1`_AXMd5GF4d~BaLax1 zO|fNY!e3vY$;U@o+Eg2&U9B#+?>v$qygDa(y+SCy+tV=K9wa0rBofP^M?koawl7hf z9DM3?Ph^{o^2bn^aq&2cb@_x;mgZ!QR8C`JcWh1r2)Fh4Zy!rW2l*5ut^$}frM(nq zv3CE`skz^I59T?r!fm?F7hTOqAvWiKq1`Q9J*%WQ2Sh0#Ucx?P+wU(Dbwhk65nN8h z&B4QhiIUTfK_>SINFZhn;{wjEqO5^9#WH|Jo0J_xB#Rt2M!A6Fz~&e@Iv9Z!d3RTd zGvK@HRDDd19WV$@0kknds9QCwyFf1CyQg#_r)uNsP{jWnYw>W~96k52*l{O%w+{G+ zSoG?c=^!0gNt{z1xk(rmFWja<%huTHB9e`Q4pk_rFBZVzHoU`K;@qi-N9@ z16+X6WDWFt`V7x7&^RWwpAXqfZ~g>p2ev;gff2c(mQ`{yC?!R<2OM;RiUE9S*U$O= z5!GK;?Z=QHWW)tOO=akr+#2V)DPa6&fT+raNAp>XQEQbVz!7+r2&>PjfZH7w$&9TP zBxEb)$ny-P>oAt^ehUrIvW?pOjoM&&BPH#2)ZUt&eY6Y0gLe#5sqF%FS_l_9S9V^u z!fn$}k+23{A;)F8J5}7GvuL2xwqCKEd;p_1RZsdM3!SAe>Z_?oFdEPe2 zNxImL`iqJdr8pv{$OF=c$oj8*bZ}KL#|5ZMk+Iqu$F~@}WZ!^LhJ{JStO@FZ+j7C~ zebFPfKC)RF3I4Sc)3T_#vBCHwhpsn+e)NV&ZeIf91b7WJ{Y^Y zKzFoQKjN%6RTC^8+hy_vD!DlQtRr*Z3>dR>7W=>shn$v8SLc+FjRZ$6gbZmq<)e0X zk(+cC)(;y|(mduY?GBB8HyS|t%+P*7G?xs7xIgSN^jl4)SDVbMtz>8Hs`K2aH{`r; zOa}koAfYn^_g1}e6K1A|KJ^|t@g&T=52p$E?Mx_q!UFT>a;JQI_;#$t?v<1`o+ESi?2cu z59ThNN1n^=(WdyfP;U@5E7ow(Tt;>t6sTp-GPE+aN5-tgii;;Y=ezZl-BP;rQ|+rJ zAG#=}#ZVvf2b8**sc5F|tWI2e9bhrk7`BxmJ5ir)aEvcd`>OKQJfbJKPP(nLJWcuX zv^j@z&q)ymxf=89#t5Wx_>o&Z=5Nv0=N)vr<`nNNuk@$;+`e>`>Vfdh^#{ABWX=sl zN%cy|&<3>;O>`Xlersqv7HsI<>WLS*SW7qO;)N9V#qM5jlJor+*9PAmbwgTf1}ZFb z#vcz8_E;dBCC5dx*yysBXphshxh1C$pRo*GA*ok(JgNS5?)C6Q>kCe8;fv&j1#F;9 zZS!Y}`d-Y~*uNZ$-{%A9a>rGv!rr0ED*jpY-Z(gtRB1iXnKSL{SvGYij^G_dPss|s zIFEpl*FWCEoD*R9<(l8y=@&#pyqRU@q~F`aDJYOKnt@v<)NmSj2u-3zuehY}D|X7k z&keMk9{9MhH}sPf80hhEdk_>e$F#S(lpH#$MB3h2-sa;u97*z{8_r|gm-JUNWaup{ z&)_IB>m|9JBdG2`dVV;I5A6s&_er?nyJl`5xrLW}f(m6R$JywI39lsZyWTgsGEKNn zowele4ocSEO{ftXt}!tFI63^s@M0Y0d+pPbHSoA=*Zj`vntCM`WUk(unr744@q2vK zwvCEz{RgGK6jJfqQ_i$*lm3>|VUye+zc8T()*toJ9eqUQ*zU8EwZG^K!-Oz1DoFky z%G9pfzW)DPvi5-C;|;2_D@VA^U5fJRc(TRB#b0(4MPE9Mh*v*v*!fm1SA_bidTF7= zmFe9{MwA3s_&?E1B6O2KkDHKdBoA+QzKywEet#M-s$b&OO^9DwAN7+!Zj9V`GJT6u z0P`ndBi7{O^Y;z;!{^IP?a@?Rkau2#3sl}Z`Gum4|M21tCBfJ%kgUWZKb0lz+`5To z{==WMtub$yMRQ}_b?GqR)Xy}XBd%YH#Q>FSy3*_$Vn8X~$;q!Fx?gnUYfd^cN$W6t z4YDuweL}%*GBm@ux(9KVwjd~dXW{Uzgh=MOK{+VQ^k2C!=~=K+Jv3%(z=j`M@Z|^V z0k7@Zd{7hUnS6t;S@65CW8-%91sjLi6d=ST)${x27o_uI3VxkkP$Ls5va5ES_Hndo z;YJa$BBxYPS^ZyG(F39vcA;|rK@k#Ba(NxJ zcuZw1iu~w5l#sg*jX7XFEyeQvxUJZX&+Cd3dDC9MG|mK)umBbnDxyYbK6uhV%+dUV z8g2L%LYZ=9?ey-YB-7VOz|CAnxN|P0Z)2 z7m+5>KWDXEpfrrMfA;KlpXEo@GbF$MeQVq<3(dF|gCHo2ILm2&a_Rq;I^;n58ISG5t)NQ`_+c521X7F6av`nc?OE%N`$ zt$S&;;Qv;5t(w*Q-?DQtA9kWX`J;bYg#tI3m<*er)Rk!dTMH17tL0=pL?|G@FiRsv zW}q#)7J*#TQiX5MFv4uAG)UME2LS1|tKMDdU-L??-f5AJO>lNtcpa~sa3fUHONz7%Qx-Hz+`KP z8=7D;D#K5)#3{=gw^wQj*Vw_3CT7rAJ`cf3uEUsh0|IhcBv1yA6 z@cASiY+}N%=V=Y+Q8Hdvcvy6?6Pacr4?%-xp&2?p^QosFxBf26ibD5{0Li9f;d;-O z4-xIUO%Wq>XwBiTxw!ntHeo$VL_8QpB_;fH-7d-LY^q*;rG;$<;O7d58rP6h3BA zF&-sctsoQUQ@DERyAF3kO5ybzfGZrGt_{{+L4n)4@e3dpVePP(NS_HGJ}sNAzi#`Y zfJTL5^#K-oj@S#p6fVru&iqZSVT&AEq|m7R@GQJ9#yn^EAMC8C!m+`;!7oqE8pmnu z&(9DT1#Z`9m^2B|8YF>(pIU8rZ(-$MYI7W!w6H_CB?-~8ZE6QF$rJ4_i8mr z0G^yCc(6kaj;`eAUVaG3>Zn6k5E~iBN2K4~c6ut3i0H~!hd+88>P>O3pS>MkT>QT7 zep_3cQ`&<%z6&_=pIX9DVa}{iCfa5;?mTHUr*m<1bU<64Hkvc$+Q}OB=nbGQvqqT? z7rKw`3^m>B`Q7RIu|09D;#LD!Pr(G>I{OCF!Kz|}lKvsZ5vt8V@oDW%FcXjPlz3dZ?I09ipv>J3wxFXP+45j?@{8#sSCOcWA-42HZlV=HRX>;w z2qO{s6UwFgrFHJzN^Z=2q5pa2GQj`$X1HP8lpiB%sYR%VS-L%MsBaLXN7l(f z2!we8%%gU7)l^}`&8g=E+&Za9Nq?)T{~4hYW&z#B}w;uARB!m+2=q8Mz?C%ovZ`aqdE(oRf^6S@iV;mXbHh`~=8LhPLqXRdH zXB?pvqw4SW7Yd>Pe7?SW7^Ybu;&zn9cOFph0GH4*!AZ*9Gx{20tW14_v-K)>B$(3T zY`{YExm`dfWTA!8pZuU0$y2nv-pR{w`4YDw;2>Jo9%lGz@aRG3EL;_P64X zw1Ga;?=Yp;t)Dbv1HZL|?*`-c=@7ywg2M)(nkHYh-^9<3eQGg~FEYhRkc5IRZ|BY2_#ZYK}1Gz6;GlU#ZhZiW_Xh{z3Y(2S6RjR5KU*jH?7nxr>Tqr0V>Z>IiCfKb&wICH zAl-mxDagXovHnLHi4||&=#~>cl#q}xfS#0C&jCBYdQ=Lx&EmiU;V+hA6VBEr7NidY z+sKc%jrY$-oap#(>#!3Qp#-}6wEFDMmsn!gOG+37QBqPJ;`1lFJrto^_0Xse9`}<4 z`dcE5?lY5wYMY56S&w_44SvUhZU`FA3u$VJJ=D#G1*}Y5nxf>OApk4rIRMhpr0u^u z<4yvwMz!={DxgpJA3b<`lUMzF0=Pp`S#!#M&Q_Pu2Yeh6~uQTrY>tdh~-A z-hVbwTfyj4#SGM;6wrt^ML)r%jxW*4wD zw_85qmM-zPScwY=y31oTHu#wIp5w-pIV%GUGzQ{U_+hF;TeCW@>|A`LE^w;7-+Tt@ zghOgCH+fw(I+~2>tz5u-1UUHEL@f15DqZwajPQwxR$b0&rvDTm=mNW0CLk}C?>Q3O zDTsBb5q3S!=!!kn{*l7f+^)xDvKWCA5gqKVo9lF-zOdGYkC925BagOgbawC_wYZZNqms+f`dOt$H zLm4O~BU;oJgOsVMX%opK78V!lt}$Oi&@#9y#_feu4r2F^*L-SXHA+}@v6_JNo@F;1 zdy`V*$TQGXval6%_jx`IC8iF11sqslPk{1h{lkx2yZf5}yu(yu(rYND22QKJx?%sn zx-?{?Y z8P9n9^;Qpgn`pHTpUx|pw|t{2*fG|U8($6Fb%~{Vys!Rml~;AXeDQWzgd)DmYlX}9 z1CvHRQy+I1bMn6-g`JdrK$OaG_ZnBpkI@;lGhC`2{`b%H!dlK!0g-PTRu3^Xmzst6 zg@rG1g`3^73bzuvNVY(pe_5h&h%hdd=O@XD@Q+{DXVWEIRUi#1)TNoeWo0Nyfl_Ku z6SRpyE8(Xo=B2CftNsw*-@pEP8Qme}_S}+SmumjVS0l80tk=drU)^rNrQUzOEkjE(wR`9~MHk97oF{dMG*;9K{PL_cN1VC*#@I@9Y712^>ZO|5goU=! z1Sxu^i7A69&d&cCmDE~ANBP`<`@qqxQzqv?;N7#9dZi;7mP#7KwkTmL%W1We!WqMs zz*f#o$qlxD#_0|h3p+Hz4GqVp-^Q-T!V7AezwajA%+C7y*tuFV?N^I=b_pUI{cAq; zSp0HlC)8+)YL3^fL^bZs#aGH3!lW}X#}Bi^VI9TadQThm8C7(_1*SlU2$ufLIMs^T z8m9BfphLt*yVXkmZbdCE?bLc?OR6bF{DIx{@3HtW!K3S>q1Gdr9fYlGuO5jj|Ch-bt>!V!g$iS zFm7puM+$59lsGZNW4y%qc?SI98k9Vj*_^aS?QQ$eIspG{SseIQ4suVh5E3xjU zLM?aB1yO|{U6*5)9m$T>jcZk7r}M)5CYQ9|Vcq3gPGnRgdZl8vn^p#-U`V0DIs6%j zTV3bCrpE7wDpt^jw{p^{MOnb7fj~@17sx7)NJmFiEygT*Pp`?-ZVIGhq!$QVGu$eS zv~zGfXgQ+?M^OZSu6a01p4c<5%(BdW};gCUdXkpr|swLt}#PWV@J+v3c%&D zQmV{DYp3iZvF9q0S-$Dc|6aU$Q;J5!b#U!IemY{$jbb>Vd+mqtD=4O;w}c2yIes&h z&p{0ztU$n$o?dgy%>n;K8Ch^?bITzGG2%-n)^l3K2>#uExAW7dPt#Ag#>MV`T@Ftf z2xMcfwm2&Ff>*;+QX1D(@IRc+zHvFi$a_Qw|Ch&?tCv5&c%amC#YTar6s z_NTIM>b(lTS@-&Ahf?11P|1k>Kql}#bix0?#U?wytL6~`@!Ac+jm(Kom@At zCq3Zi<;!~r1g0(echS0N)aCQ%pctH@N?MbPF&Ok}qJ1g%?%noby<6(55F1Xc4uz(| zovW^x!+I@Y7vTJKMGKF2KisfW5MQ64?p84Du4cS>m7h)^=x5)&*U|D^hy<|t-6isS zV0s;_b$g>jrfHb=08Q8f7M8VouYJ~9N6+vR*&3AEF+)xEwuHnzUJKX16(pQ^p4+lY zDx`4D)XrnZ-@7ixlSfDa0Rhmtj6MuBDUg$sd%u&TdFehS5vzJpqs%{2 zQjT?~qqR$yF42d@#tMO(nllrfTc+|$?M7bF!Jb0*9+5hO5&CBkMw`zCNHo?byG0RC zvtiWi&i!e86&7V3te4MwhJ`6#A*TGxeK59GI8IkpC;-;PgIKxYXf2Cksq4dXwT>!n zCI;jr*eHp{&^;Hf5KBr)mB`DH0`9*L32b3qRZGiyG(E~+GEtTHYX`W%iqPkVt-%#v-x_i~X93M4FtC{6 zqmn&B?(lWGNXh8*)`3s`JWXq?uxl63gDpUL;C5wivj)+^sawl@^I#G#+WconiN`TH z?g}eC2sukE(9k7@Ok6``0)oO?ox7iTY}3e*f;XMaGSlHYEsEbo?-H|UhOEsz^Kr6o zYFS@jx9t&j1ows4Ot}5_ledR zMqD}XNh9P?;5uu4obPh`=mOl$YNn1b620{P*nFixv!_67vYjLGmRhA8>Oz#~h0FY2 zchcP5zKmNQuWVGH!O>7WQWKUkUMc9=-%zjoa4r|$WrwEiw(}&nR#fF>m$}kRV=hDN zcsbv&!`d(;QV07ohwYgsw-$M@*DP++2#jRXSO-@{`ix2~6Q`_6?k(R(QM-q^;y)Ao zmO&rtJMv6YXXXbOy|SYNH)8^i1Jx9&j1~RtHqdM0n0!ho35I<|i?%ghVI^U}`y%%b zRU(b}rUbE*d?U^xr|29(Gi!@8rp^T&ert&Fti`Gav7u_De@w=IN{byLulf+5=^}Xe zSejeE|FpVGEUcef+V2kX)HD)&rHpyhv14;a?ffd|{S|+uw%AD8;~~VGp}F(1l>@i~$B{1e{hI?&7M$cVi*A+xKk>mNRU~ZH!%!l2=RYgJQF- zr!GXQc>h0LeFa$4>-RWc^_mE_C<2NiA_x*ngCZ!6v$x$0p8!*`Z@5bQX-+#}&k8Jzwjnn5n=RK!ebnbpE5ZKu_Ra|U2P$dgMgn#+k z6T)*lR>)oo5a;;!7bhja6<1ImNZ4~D`%r?&v2z#b;((Joo%9F+gn!Y1kV_b=VSA~eKY5i^$;WoIydrHf1AZ2y)6;m zfU<0XocG35)8jE?OP)3RNP-elwEJ^CCU`h?k0M7AsZ*L6(}TLtUN0RWl)n1g=iunb zva!Ac^g#E7K_g4lwx46vVfL-sFw*ZiWLXoeq55jBcfO0&wy4NUlvt4g!duBZ;qXNz zWnw}6iM|cIGi<=C><50a6$#9PueF)p+Ll#M+?oEV%vfj6{0OmN9_++kh)_!q8AjMA zuP^eeG_FW40YQE0^B~Jv6H`;Ac%hnv$hHc%mk%F4^f_cWlcPJldN1riowcSLR0Ux->k~ z*YBFDw@0IGcuT3OkKYV+=I9}^sK^sV50|B(7UOiwB$lHiaSJ+v9j~|*T+h5FNV85X z>YP7H3!hDHfT{z%W;t$Dx~|fi`(dn04yE8)vL=Xa$DtZUE@ss%A>W81VSrLVtt4Sv z(eeAh&y_s|XxE)^jWwC0Z}Q!1K4_1CCdkY<;(HGM;Hup~C3FYqJ=-6|tp+)b_``Hp zK1D_0x*AzrUlnDtX z#kpfu1l(?09;J;k{ql0e`M~6No1HD;A~R8O2W9%C9~J-8mRSCg&{w%OaiaZ{IsVjG z!(=kMN-SB)m5vxMV%L}rKzM1*g7JQ}3nn!0^H#wzb?C-Hk7qwTzDYS|xVR3wEV2cL z!+nM?>0+I_N4=3Mwg^my67EOfZ{Lvo5GD^DP>$7+4HPRpe*C!0;-Ik0qG`Jg)_xs3 z_6z&?!e^jQF4OY?*8Se77tCYHnvi|`&_@=@(dv9LyFYIhb8;X{Rp?j3um65cU=+kg z*c?G$47G>it9TcagR&01?T{QZgF0<*EN4Bq%EL2I{T(Pd<@ZlMGN1k|;pJZD$rvQ- z=2mYStv_7l;Yt_;C85kgStp=Q6A3@bCYH|7E7eaoNp&Nx$|rm1moX1Sqb` z9e3t4Kp@Pk6n{iLe-khiv)ft+nK;0wtbC6BchcZ4k=WsNpUeRv3sU@0(M2Ae74W7t z-dVxLr8L|mP}auAMp^lz=yH&ZmRA3t8Xxbw>#+d)aS4$nD*=s!^#ycg!d5NIAiTtL zp4)uUG#VJKzpArfOGwv&1V;dDK)B|vI%G13f}hSD-iEHsv4i6R>_;uQ>oDp=Tx6tk zyYMDpV`Eo@>XsHn zP~A>OS7BwP9^NNxcz76?eeBBde}WJEZfgU6!A8aULY!4nlVm}C5VO1Ef)=4&XVZXG zWmog=CakM2Qw25(Eb^@6 zRlqb^fY5|}QImH=qHXbR!})+w#o_KHJ6kECl5~fC+S0_s*_Fss!D~A&6=6I@02=}7 z(am=G=fK-Y()t*y8ZgLb`g2c?UO0EI*wYe@F3NV^2>M-=tt}dD1U9O4^XHwxQfs)! zjZJWJC@-(SgG1UTFdcaNbLBj=P<;p--UE5y=vsyawHgQ?nXE%L0}wgIXO#&S^#>8v zi0LWBce}w>*!BjnN_8>Ju5m#At#*j!+e^d)`~Xa5A9(8`J!*2|Sd}2Kx*+%59ORm^ zvE#HXUfTuY1|V<`gSc=kf9$&vVk$mw%Ood#Y10B>OgtI0lLd+ma@ zQsOI8dW~Txx5+HAI5~L&rxB_?t_)jLjrUhD^t2C+;Hd0pkBIJ=%lr)tu@zhgo%4gbufS$qWwug_ru@qC%*@A7iP2n@c5HZGJ%c7=TF2U$Ap1q{F!$Rt^9|vcxP49vA<_(lYR1S244fbgBM|Kj*0g0 z*{zG8uezLmipKo%xcH;-FTCWb?@x=YX|hd0BWsj?NfXsBRGZyn25ft~o%MFoFW^jl zUqKMzeY{P$-r1SM%%RNU&5)b9#$-|PJ8_5TC&?Xxe)npu;JUcD7oY&Lb@8y56?o&{ zfX8}9uq|o%&}+Y{d1S&WvE(7b3*2%6%v`i|JY!IQlFrTS+RxYBL@izOr}kex@K|7h zkbM_>NCogy%dP%bstKG99i5@~%QAqywvc1Q(R9YIO$5)iSyf=}VNTq1abbGjfW)Yg ztnZAD_pex!PZDnM!gw?<`HnZ01HVGN(8vu0pb`Y`&#uOAhO@vG+?d2(cS1(20MC7> z^%buFd7R>XRP^#dqB=?ag0AyGwF4Q2<+d3(FH|+AhS-W-Rh?9xnK^XeEl`*GUh5G+ zI5eD{LrE$vh8O7GCzzFq?i2u_Y@Er1Lcbiachd55EK=at6ZDEj`B#<37cIhy9P|$Y z96MY%@Cr8b+-{5!Q2DpxhZcEEp`vDoi9lj?0DqRyUkJ@PT!cqj4tOk`WRVaP7Z;DB zBOQhsx!i5v5v%_8tts{>hHQ@xnI)DkxPIih?LdrOBs6jay+*CgxrhO4+VN$F%e+;w zO3N-q)>Ut>C|tjiw@|z~^be@ReDd%taFl@^@e)MjaEsGukdzK7Ug|r^$OB*N2K%<* z5q^o!9Omqn+c9!hLpbS3k#xsKGU4gKzO%JKS*pCHJ9Gf3@cY%X@`URi+pEA^5{Qyp z0n{c0-1eIudIsAI3c!(XH(8|1j2;EMHYJt!dZVU_t?m2XyV^SS8x*s!4}}O>T?(}7 zqrt1@=jh@m3=AywYLfbRr)-q^-+b4#%jf%}XaEHQdTL7M6cD$-TsI-FIQKj$H4H2z zGW<3W&I~P+J^(t(cX0#2mf$2c6ZV2dhR zXtP08%vFre|L<{D{@GuaFo13YB9ez0IuY=i(o~h^E2r!w!jDTP@(j$KV#3d<(vJOaAfZ6ByPPinx7h2N(>j7s9X5vvGMZ_uSL*fOIB8++&cjuW51l6 z{6|``M?fm+E7d8j_}1o;Tz^&_7IzNCp+w8T!pjShx6Fs|unw;arrxP|sHaJ@HnCk{ z6@9NDeuOew^RSr}rqX>Rbxp=mK>N(-+S|B+0UHUoVv?vwnvg-XID6tvT8137hRm2H zuQtow$C7_vVU`v;bUh!*Z}yCPu}kqS==Os(#`g5$!3FTBG|%cAnY*={W?y@NU22s% zev)8Cei40a_4mc}M?F;^+VQINNKozVh|P$FIrwq~N)-t6X$2C2ScAPkzX&sNh8? z5yGDw*S6Y6XCzw(p44?ade@2Bbq{)>0DyZ>B?_Mn(v4yfg&& zm{LM+c2$&X;4Pnx+Pr_(@6`g@()_~PGSll0l#R3SH!!eK((!(Hm+=piWH;)o_>7WQ zl^`r^|I`X7iv6A6Wo|0PuagUkQcI_Yy>a6TuCwdt5N@7;k6&I- zgtskNnX0)j2iRVQ5MNETE`+gf4%i@8u?WPLe3=c(scPNUG<8el+D-C8gxb=Az4X?& zBcXGyV_y>`-Qu@Vj@@agIDF#822r<6#K$hqY03PaGD$|yn+?x>j-CHMV#T~8u}U*g z?U+9$6YNdup8Vvr8jz( z%oVg-g@EP;dr$Cf)ZI#IdG#CbEuPCuukM{Por-#Pd%s9pQ`24ANTbx(yQlkqOg>NQ zKY7D_y*jR@kn8-twvWdtRM>efXL4GfTo-f{e4!z91@qOA3}YIm+U>1J1+(cN{7qvG zpbRPpW79eM*T~0dZ}J+%He%QN=<-wE;B)d_z8o9bBYopd)tAMoFR{hxE`5o%H9`nxsHY0msA z-taHrq6+s4maeGD4^&ZGAl(S$qt-6H>c+u;dFePsq|DVjGRSi|d7>%a46)XVYAuHK{Z zSDlU~7>|G~zQo_MyN~&Cna2D(a+I7sl=694_|2$p=RJk=Ai0w|M|YvL1_aW%xBPeJ zR6@UMp_80x2TAz%WHa}hypr7h3FawZwcDsC)MAAW-2$o{j|2Cg-N3~e&(lI(^J^({ z(;PdUdm_{35^A4L>-yC5_=)khd>fK zKanT>Q|!?H=Amz1Tw**@87GzWbTMXiWMb%%?>P;YZ2j%Vv`9a?lHuMT1<@#{o!|z7 z$8X|s)`=VAALFaN&||^_usK^{Ih!7x*q$;K7LZ`a!;@h<_Fg~6=F+7YZ-oCjI;P9$ zXv?4FdaT_e*J%lJ!5wI;9%~8@HBFg2%l7qp_H44Z&mmoV|BhRWXRYnvW$L157W#@Z zJm3k9Tb|YL-mRjLC;aHnf97dvF;=ueU+5s#Ci^*T;jFC;F?Vs@3f#BMIfO%Hl*g)} z&(=D@>QCNJjErVy&9`=+j6!+ijiofow=)_&h+(KJ+Y zE5qKHXW?7XVCdb;wj|;-X<~I#WS)x*9lP7dA1h8W@*LJCt^O!*v9*p{99q>`FR+BB zBfkFe%pmp4Ii(R#zi9)v_g}u0_liPhoj87cW%Y>PyQI>`eG(wag%C|rh_C8o=QiGy zWAs>GoKsl+AeB^D7#b^Tx9->>$YB5JD!5yR@c!$Hy#p>&t=LbB;JAp2B*{=ljNbNvJ zd&@#khHJ~Q@7m2RoP0aPYmbgMgjD4iH~xhAx-4-s@}>S6+4e+?Eit1EB`*xE4viMA zIEd4duUPy0ohcVuYZD%ijW-vnU3r;)U&J6J{q}lQYPOMWFECN|Srq_m=9D_qM-#RyX4Tb&TmuU?aSoT<6Ra^ zixvzlcu-5^sTSho$p=R?X6R{Q<6GO_r1H(pq^GmtDiRi-Hc2nK9#sp#JcbcFg!?~A zSyyI_Loc3-U*e8<27zFzFHPkCCZnwQYv?8JtYdno^13QN9!lWq349sbs8a!)90aX zE18EywV6eF|A>g*+g@zsRg-M3W=gpO>fgu1P}uFqfKYRbY)X-@Y6jl^#JP@@n5hUc zVotMw2&VJ*!krJaBZyb}`q%`=K&ZpyNo?G;hB30~WqyQBP2=p3PsJpG^Z-4EJdUhm z-!_K3B45tlZht&%I5ODcOUp4>1%Cxtq>RTD#Ny0vF|3$v6?vEhan=x$D=UGZNKhSP zHBwn|y%=@ESBf(__q&HX#v5W5{4<|rJE4m09BnxvhFvM%kUd$s!wo>{Y+#<#FzDDo z>V@Nf5uoaB;6fe!5;w>|1Vzjd)s;9PUM*g*btE@EQs7)&Bt~FvXXi{(}_M%gs9c#A12AqqB2~I8sVFUf&ho`DQ0YK*$BG zUo?g0vg;T8Tn{)^C^Q(wb7rzcc7A0?2%DO+gjB7a!Ryh(OUD@F1PA&{9lPZ5JXS}- zqoWtzqtbUlDCU4k8hFv01zbj#m!dXztQ-eX1Q*#t0GB#vzvPQK%_0)rhpUi)n~lukl;ci};t5=#b7IEM% z;n-lMj&ytmBU9Q+XA)+qnv*p;l+m^4~gr3Lxqz|v<1H&IxwchaHJ{%7N_qtD z%J&de>9n*;@A(?{^|dceYd8i^KOn^XRvPH|;W_dHKT7(U2q@H52ZaAlUU(CnK!|pJ zXHS34V!@W|n-|L|quW~^YhOUOeJAYTX&*T^_}nnNglKSE>_E4cX7|(!Sq{%RR-4a$ zz~(_f-at>t64u2=y?x9go|k0IQCpJt0rYsQWN7{)I#6ym+nJT04Nj7G0JL#j z!L6;WKxYG~Jh^0R%jr?y2;vCPrFh51Zu)%0a#=ei@n!az#){wd_PFto0RzEeb?ZX` zJ!rA-P^gDQd5`KV_Ku5mmsnY`)$V2|HyhT`xE8%6~cbu{6CMbWrQLn z;KimD-eQYqXn_=9V|8;Y55K7lGA`fLCThcCVuUO0zU=fTe)tTNe7*MjwAa>}jdRUA zIy04LKfowFq-dy%yre*xqmSI7JFOc4HXs8Dl1`$nElf_ZOYiFtAG;dyaNkZ3Ee6Dxy{;MMKwO{=pgk z&#WGPOh)_umw6U;ysSrKKoLF17q^}eY_d;J{!Uj-v%IUd82+*!#yHv#v;yeJb5oXH z@Ec1EHPl`&3K|6*g_~H#CE_l>X8L_;6{JOuAPu0Cwzzw4e~5$;B+T<= zBtc|qdYU+nr!TQ+cptZ`nt`0gqD*n)9yrhYCbBg^HLl2jT0omcs~W#xb5QFZMw|qo z4PYKz?v*g#Hbo)8*YzyXcWkX%l^hQH6pIb~^nPVxAmGsg#<>$p@!#L5$D}J3Wt$LP zLcO>aej+^rWqq!6Fw+?#Tq^L^WSz0H5_lHQlVF91~^LaXSro z;VihZZ~#@|+~Zu;chI4I9=7p~Oj3WG@W`Lh98uHG=Vs6RigmH=*9j@p_AW>C8K-o8 zQ_GYe&}eMjEjV65(<2ah33Hp8YWJYA+c~XR-9|@}JPysN>n(g-FXqW*kU&?g;7g&V z%ECQ*9#8tRs`A==_@X2hk)wvj9wuCnXzvxZKh7=e&?2^WEtMxxrX19sTg5@K4l0jH zF3bxcK@q*p`FyZO&!e%+B3xw~j{Ya*HKZerKg1;wQ=IOUu-6qU+cU`p9W&=B%EmZ` zD6||V=jXM5;r({DJxYN`{Qh{pNirop}BKl zNBy?Zt{+uAuAZAL6ThdEZu*StG=;#;GnB@-5XEN8AP*Duya=(MhbbP83H4kZFwJW! z;m6pfE8*G<1|UYQn<_x6wnXSbZh%=zdnY_Bmts7f5VEA0p`e)rUY8z0-MUO^JEy+U zv#0ZPZpkHV$7yNEB)_0~OYw!JVs@2tyd>>Z72zVAO;?peQlK1O)0f@?`}pk2WN*k; zKcnCPx5)AwG4h@$n{(@VR#s!P)Rq%ty`fM2bDlHV%0dz?Vttd;cPlq`dV@?(HI?8^ zS8EKk^x9HyyhaFA9o6o3$<0T4Sa(yBN4tLHb!ufm5rdms82?SjwtLtRXH4)+#EbXy zVMI!GEt)gUmsSzCk}`N#R!q?Iub<2`KG(YHcFVvrmYPhcY|q}X9U6XcT^9#EZ6WlD z7}$GS$+f;QmDI|gE{j=>o3Id5)91dfw zTY`~1SK@G}WUt)&qiUaerh@OSy6451A@X%4gu7QxXGmZQgZ#X`xJJnNmjk*eQFIP5 zfSy7j%C3l$o-x19EP@2g@9C&GXRS$0qyg4;eb8LsGToDi&tcum_7vuQ!(F2W;v4HC z6uzSQbSn!lIZaJv1?dw?>)0I?eQGb_GcxsRgY+30!1E%0pG^Y)RPJW)bb2=sd2p`3 zEM_irF!QCpIB@Cs2WGFuW%`z8k!uu~(kQDmfYMf?;{u?X(su(z1nvoX22HXbS^*ZJ zvJemOnHJ}>^Pcbe!EQ{H6R4jDvnsZJ?B#|^^9rb_z)o5#e81Iu`=8*wPizonaOTkodR-;F_D3-7S0V^77>j zFkT@U(8#>sF(%7Dckr4l*)HxxR5(v8JS*v``J`38;DF)eK?;;0;V<0Wx0*p26D}T} zD0Y5d}i34MH$rTQ;%OoLg(1UjX#I;2$Mc@==|%}33Y zOhwLlvgEWBIB#~MIoREkpDeI}u@T-=mhZo@Lv&nS1?J&U-horcKWIs8MkEw^Khr8T zUC;&a4Uz@MIItvE2BHUs;a=c#U`m4mYJtDOa%TV9*2p~KX#oslXM=a2h77w@diC!ew1$d(tcUpUpNSqJ53U^??etojxY zFwi$QeKpRC{wmRF5}5>VKU-wq?LJ@t6rHR#U3V;^AzC8$RjU4i60WudDbl?O;X6koWiiL!MH}Q{h zFt6N|oSav8r6nbycCj61p}D_X*Wme<0QY8z(3T_Q!?M|D>A!)WNw3CN@u16xKo=d3wQH70It*KkKcL_3)pc1YM=cREN`UgaZ(nD_eCe)@Z6Ie<@}`l%TkxqE zvI_s={L&4mQV(s*!f|M6H+~E;w{=NHqNthss#&HB`pvJDKLA=`vBg0#up%6Z2i zGf6v=7Y+%IzVwM>+9JX;>c9LU&LAWvP$}_nJK1F^a z-&+hCPgsgqkB^QfOz~#}e{A(GrQZTgSlE51+3$8jQ=8P59H-z6=*=grFVZUZx^!JV z?a7hZT*$S5c=&mIm7}GHdg6W6zFS>=uQ6A*{5>br$0_>HNeS57`JFR3c_ z_d6FYf5~Ecg3=0EQANK{9U(7i|9Y)w9cTKOeXm7>={)7O?bllK+r1uAb&?Uqq~f%I z3(NE;*AuTk*NcI7pWkhQM=E*W} zC{N-A)|c;hd!bjvgSF;AdZ2w8WK|!dR^wZL+Qjlv$o4Q~j(U0L#+{y2>h19<)5mwH z&AGz9?DawK=DV}CTNy)Ezw0QqvC577Z_-r^Apz;Y_QWms$BHKAy`wKDMgy8ZmIXBvoSg@NL&a=xS>hZ=uAX zKt2H_Y6RkewzKklY(U}mcm=PZWryVXcDPWQSKBKc?IJef!37^seM@B_-Rn6!Yd5Fq z9IY22>rd8ojEH@q|MMt$1rQjcxNZ+F-n&2cZRE5)ALfoNr8ifyQ>_p>-q8g+IO9yY z&-8}-cE*#Q^Aj^;pRcjqTbeREM}OwDum$TIl&}G7{n?Y5$5lLTi@7*FF6dR#z4)0N zU=3$MzBOitfdDJh;{xe)@mKAL>zeYG7og8so+>76H*AZlJ&AwKWKYjB3$-6k{)`j6 zHxMQLL`gAh`9N%Uu!`iS-+p}cjt7`TeL(T!V#LkBx{xnlz#@A31N>v{jfayN>ox!R zd8<7?4riw{nX+XNUuvG31JN`__ZhRBaaBBWWE)pv`C$raiwb{2Kokj<2#tMGQ4v#` zh2>M@t4q)Vk?&bA?RVUQY>S&=$Co5ehm~)S{{eb!?!m_!a;h|(mo-ajo>LjdNfXwu zebrdnrFkTX(S@juJ=*VD9+yo-*qN4k%kiKeIburv1!^|BWJ@R!);kOHE`hu= z@mln+%v(zBrmx<^)rmSc8J0Nea)zJAAs~2^8(#W`ZVQ3?2D%COPHTC*gC4mEK2)snJ55TmDix z`|Cmwx7QDw3FR5&JFB~4R$kJ_U~-sMOphNk9&5qI8^R^j$Dsrw zJ8QcH1tP60iUF zp~=@g+WOs5GB;MX>3W>M1}DUeB;VflhX8ZLa&Kk`|Xi zSfKTvozH)RJk$ftOccqHS5uYL*GA3lVX-^BSE`--^r54_SHgb#2e3;F73Mv@X?AYx z#W^HP?s1s#b-6Ipv;f==XQLLg*f8bd(T?tPe4pg9Dp}wEoWsT~?ZCgC%TKZ6pBeim z4qXx2+;laOm1{HVI5C+}*=x`^8(HY&TkWN3rx{#w_-r#RY&jHaRaw5$vXjevIppyU zs#{ZNq%JI&qFmz7G|V&#wR}Cfg3bm z668c~x1`I8tMiem_+FXoeeKqe6+&r3dVngfi=C<#9_VIX5=>WWib`O+w;bBULwX*V zP;rn|6#k3LmoC}L=nF{0{GRaK1}S8%)GeVR|FqWtBTqQ{i{abRr^c*{93V#{zrmu(bdf8VsXH;ht`?8DZ zjik@d*R{4SpuNGDD_%IsnvlnRL-#T!(*VI?fS7Z>BJ?39JyW2oYCj;Iw~)mRU_g=N z00#2vx37SJC?!rtBYPCwKUCAF_9s45dqzQ~b}#%WJXevocPaqF+)C1E8Jqjz!}sYH zx6dT)1z8n1fWp}wkql%tY6GvUIyzAzMC*{f_-S3IfGN1Cu@_AR(EV^-b>GN%p%XP9 z^%=W|xoZ)58ZYs*dtV2<2ykCrvfYp59t9^SNz^u+Z>B&Ksn63(L`~D2BO2c2l5fW; z;C@4wCZNQ$Isbh>EDCPhS%6UQe>R_P@h|15%j-}T@u$>?bdCaQx&EudAbo~v#?agd zyqT=nLzQCyoE0x_HSAV$`Bb+T+U_n?4BzdxKy%|x+Jd}##r^`0`qkcM$XVXQ#;q(5 z-;M=xVj?gRrEaBZ%2%Hl$5+f(w;r>K#HLvFS+a6{`$U4N2GUA1Je$L zit2L}|3QeFd{5=a-7xtLUyA@frKokXYeaJuD0=zXHA*b~s+^7y$LT#IC_HK5_L&#d zTQ*_g7CQ1h5&LubKW6=}k(m_1x@Qmp%8Tg!mx4`oZeO9JN?saSe^~)}x7`z{uqZY8 zfd81AX%Q=%p8Eij;z)Z}0s`C=(L!^E^-RDmC9|yEU&=KXYCLxL-KWK;6?xUUoBjK+ z{*s=V{P|z7fOb_F1()Dy8k#Xi2vGYvoOr_+EZ z(*HA2z_;EAjsMQe*Y+=3fCPz2pWEA>YD79O)eyg7szW9%DszxINv(n^_i3(PTXZAt z!B5U2Hc)!EniY+#GB`MGF`>3JY--|DN?X`ZJ^`0+)14qxgP1Hv2hIoWHl+Vlrx7u{ zn|*eJ14tz~YE#894S~y=@_Q?qGMTLi+`o%<-0ylbNaL#AW!_^i0@9oy`(nwzw^u`p z%2^f`tb4-L0!Sh0JuVZD0dMxf6z~Et)~@RWb^-E&&Oj+6hef_%XcpK@W^o97oU*rX z3mGMKw>_+!tG&DTWBn)@YDP(SA-I`*fm+iKfX2UDpkjx@O0sHEX##C~w~~!+L9}Uc zyS%Tnw_B6+g$lkqJ^SqR4E*9n@-FK&WpbZWc73xqQzo(L|DrhHg&8rGiUf9mggs)E4tSgrXhHpg6V{Otk-Xb%8t9A# zk-gnLPcr29azH>sxkxks%6N^DXY)Xm6o)bHK~qzQ}Z-WR|! zDW^>fa#$!xkZUgH+LMP-;vKNPt+7Km_OKj7EfoK$7{u#ijf!{2mQy&kw?H*AWu{X5 zb2iBd(o&0;eJXA>kJw9TdJc3E8G9QfB;4ne@JG1nAI-j^Y>1>NV?6^G?i44xu|(@( zCx80Ker*1y9&ytNi51=8u}?k}?07flq{N1y|34CS8-{Gl^}jw{k@|h@;h_|t<(i8h zxPCD}-o0WDTD%y)KBGR-hjr=`?NziY4l|v8G`T!5w&eQhCETNe1n!xk?m;w9(mYT( ziN_U_Y2uB9f-qXAkqigLdPAFb-5v1P*RtX9r;2^TWT*OpZ5l%fWhPK(IefS@fg%jZ z-`5HV3JOwa>P@CUZ+iS{4u#v&QzFhK7m)G$6?WLsv0?YO!$_n;&2`E;GQrIHl)NzU zdxDa%WQxLA)38Bm1kRA@s8faQ5OwN$2K9Eg{ukgwnjTg8s+xk;srIc^9+YCRcS-zwgBzMpAHfYEvQa4as`+|=`2Wy(` zLr2Lg>onj^S8L8mAy1di>ia2qcR2_ z%eG|6@@DjQTI$WrZSra)OKM*P-rijfZ~7GF#AHoFgRG0+NN}>%3sE@zO{N_68MgNV zulCRsb*?$*5oJNwWtPafh;NvKc+Yo`G4nOUp*_Q*IYKk|ox0!#O47U#+PJQ|T&~A!T5lD?5(Q3W0Amq+RGu+clUM4YZdAlbfMV*eY0=i~u1?nj07B^1-U#Ip#ovG2-TNf~ zMeX<=#mRA;?AxUW`J)!grN}*E7e+g|nVIeGPhHgkr$xbJ?hEGhgC};E>kVkM3ROj= zAQ>BEgj)Q++##PCv-_qvwMsm9m!W57(CWcdM7Nzh%<+D2GrxrwC@`w(OO0@_*;{p5 zghpWhE>CkD+8v_IfupH&mlx8e1g_BSJ?c}Vcbu7Q=L30ks%Lv-gu1Em} zx~4RfS~3efumv=G*r#R>pcb*kWo3Jk?YD5o{W9vvQBH=$pE<^0LLeW|VYC!V+0opc zYg9gSnF?Yxhrj|V>@;X&AKp&dBWL-enR1B~_A`jo2sGP;OxpY2nSEqNgvCC#+TARJ z50wA|IWSo49;wAX443lX+o{W7dN1uBzS$xk9%FmoS>=0h^++Nh`Hh;P$B+zx)1s zQ4#;bYw+0{-JJJ)gGfeh9-a;n@@e&-{vh6Ty_b~i-MdU2>F3_J2+nYYc6u_5GW$J4DYr%9j&dU^^$T#&wm$$Q~-(@85wnTb^YjBsz1b4 zHZ}H|wZ{uP&2}n!JI%&~goLn=HX6YrMdWznn@hKnQc*3Ug3l&G1V@G3*JjNwJT-H4 zT%D*7dh+qg=As}u&!9(58NV%MP{mJ;M$(+>Jl0Rt5qdopfFv7qe_AZ=)SSG)}sR5Y%!p_=83T~ zAk3zOCVF7Y+uGWi=0rtBd8#*ztYfPS3hdWryTCPBuRDEK(6=8xd^iPq8dc$oU^}lo zJmBraWmyJ0^V)(es{kG|Gc%vBKbgOv5-(I>tBb0$^zy25NnCQ73cu-lDk?e}1{zQB zcrOPHG+dDanT|U(^xjV;mk1NpOTMS{-KHb?&D!5v^?HpB5699LDoc8AZ&>A5xlA5~ z&kdk@#&)ovq9PG*^-G_TEK6Xzymb#j*$VyH?afsHCY|TcV{;aBb92G{NUz3Fmi)5= z0|QId1Z>`Aog=NJcGqfklAeKq0cd#RIMb@GB3@Eh=m7S1(ZI7nx6c(pK#gtB2$r}b z0Ax2NLrEB0Xm++c0aLbwAQ78lNh>QW1;&luTRpITOkQ3dv!r*Wmbz6RKEZX=Z9X$& zK1@Yob85OJ+LmwT)UQYM;%m`}?X>JQ@TkQ0-&#qrpQ&akz$ z1(_bA1@7Y?E>=jAX|$w7)9>yxz+rlN@xhkH#*<};9SlH%B`v+g#vhZdSGKl@wQdDG zz<4$B;=;m$8MtX;UqT9J)q_C17IMpOh7Op#zxEzbt>pGNJ%lzN+*AY8nRWk<%yv+1 zj`1GYrr)v<6oOhJ5|*H=ZG!A^G~{7d+eHc0_lEp;)ElEtM6ys?fO0Ocf1zJ3_@65y4=YWg^IXLoPpr4 zg>)o&4}h>&(H*Wu+>naml9KgIBsi$~v-&kc>=tb0x8(a%+w2S9NFZ~kjL7r}-8 z?X3YsVmv4WwA#RE`~DP=S*zoIEW~ZJB7lg2Mdw>`|}{-X1_f#555iP5nGN!Ib8KQC4~yYU@#{xa$ga9{e9t(DtW6S zPP4X9g0A3nZ>IW19(^Es5cb~&LcXW#GJUouGl5N^7g#L~%#63eDLlvpf_-!pZ0f{` z6Of{9kw2i+_Gp?yG##_pUV z*+>9;2BnEt1K1O1T`U1ZEQ7&z)(7yKEw+U#P}I>5Kt4YY(kr?YeuLQ-9wFNWFsn3L zHOGWzs8`=eb>1IsS%uHh+hhx*uK?q2#zscOoaZ&lQ20@grL<^$_qDDk3r2BqaXgiO zr36>T$QldCSZ7DuE33}VRTEY|AGRW&>kl0@L z5kMCcSNKP5=s`}7DM(d$XB{?^9fK0G=HG6@vDY+83Z^==1Dt7{u1D`!%Bg?>EomNz)h(EZ)wV&g{#FO zH5~MX?n*8gf)C#4zUoYMvE_kOR~CJvoGVoo-IXjW^AH9H1az%!D0}2Y&LkP_HZk>^ z<(+hrM08p)FkeK9P;m4O_0X*Nwm4RwY20zQ9ggOI2%rTmPX(ucyv#poRw&TCpzrNKVGs;Hkj; z90An;@6fug+VM1;lDafv-^c`q!-df(sJ^9RHRdDFl`o`U*ipN|(r8z_LqAXlG&B+e z05msG0ymDaRnWo~4a3+yb2z4C?kKv^0o}fyeol&k_Ap3Kg0qmaFVS9@Is76|c;kbp z(NVUDQ%1qs{S1#T@36@CwE@2-!YJ4p+23*P{i(^jq0})uiMLBF;#~9!>2vG!8CzT9D&NV~~n-Y!_}|kUw^< zEcM`leK{F)5oHxjk&J%8a$deDvx+7?|R1}qnL9-eNLMy=sWs>!%V>!# zl>-j2fX_qPBx^@xY55eu(H1K96VS$<0>(>}=Le!=u;GBe^c;MI3xWMonKl+x`mpewaufWN|wVTAL(Usjt$R%iWWk2tZ5NOS)vRLN3w7JHlNmp zR)-x=BdQ;6yPDo5$J@+sR@lsd6?jiZ!5kRTqQ~QXT#zE;VCPM*ITrTb)Nf;L!WmzT z0@jjszI9?okKYWx&d~F1kRjtC2iyD0wHq3j(_Y@u zlM;WpBF%>l%C+G|$0J7sl%lnta0oZ+X-gPH=F120rhkz-S{|%i_55)N-GWfB-b&vQ zbEgYV3$UZxSveBid{Re~9&3iSe7!WqciSi^R0qBk&wJs z&hZBq+|}eK)u9^A_mtGxUF4#XVq5F?eFfT8?cfA=_V3XG}7@pA(Nh{nu zpK@cKPEVX$7@*5I7$U3flBsC&F*{V_Bq7U6Nin=7*wNt@TO)(IWrOMZt$UUYA9*9= z9h-R5?PW7BWb)SEM?dUo1tuSOb#$;iBfq}D;uPAxA{~xh`}oMxF@{!1PuQUQ9@^%| zd<2sjjKP?}!0A_AUmCXWN5sj=lne9!<>^<)<+o8rcEusWtvW^ zSdQr4=&({Ix#J=^;ZNm-?f(3<6KWN1{Gygqzj6y)(!yZD{}>EpwA|Cp)y&n^7BF8$ zSn#!o&eGagZFT%65*LvtWSPWqvSTVacZF#4&K zrCN2Eg!cLMa%*F7j3K}gsmAXXr(n@AFm}o~Ff+>3=b?JT#m(3%cxv82^cS^ChtvkY zmFAk;+Q-N34`Z8~ES*L}PWXWqA^fH*YHA(RHf$(wr7NhefS&X1+GorruJ)_LgOx5A zY1i|Aj#&T)Cn(q24GFWm3=#2;?Q9@AYIIZ>kX3m1ck3q~9vwwhX;rmk$)PaHC$FQ$ z+`7u|6PqL#B}* z3eMN^93NW(^0?;d)I-XZZ4N7mzA|>b$oLpPm{P?sz0@^*LzyTj@lW#x4nE2kf*pTy zEtJS1+!*nANT?w~?Gmcz{<@P@Y`TqW{HE1~TiPt}Y%H{bPz>t#V3gB!wY}@Jmrlxa zhhNHq3+9bksLh9&M}%=i#={T%h&YpXZaVzQT=UyFv1K?M>kiY&n2NX31FU>0LT$d} zUfrh#?at@Jb?1;H4R=K*eQRIvn^&|rMW1!x=BR&xY&c^?YaM6Bo9HN~)LK$3#}RQ# zJ?9A`M#znQIt<<`8(!aX%fq0_;-1_@-D!GMC8u`iCr6I7VD9IWK7*P^Dw+pCkK)P) z=>j74!{a|j{CT6ptUj2=cUb-8t;6OZ!dA}C@i#x8tUcXuH?*!fvu%IV3d_%N*OLyW?}_Zq_A6;ChZE^yZ$^tT(8_BETt=h4KInfD zVqB<6&`WR7IuRb=sb68(EEHxp{n54ZX*=5zWOOL^!>FB5FmK&ClH`!|{e;8a2X2tH OiJXkGbe@#qyZ;9Pz3-kTi-Cc~d;i}**r&Yy3=EeUG*s>y_-8DQ2l*$?WNy>C zLzK?5+-Y$Se{rrWLQV9#lgq77&QYAsh0Ct3rBxsjZ$m#V#GON!=pzH&R)8!E&KYOtSXBjw?t~d^4?aPq-5$f$<%)&IJj|T_(j8v zy16=~Zjaf7xhAE!-R5;D0>f!z0VxqL#aACaBKmyx!7cVvZxUH%WcjS4#WCUG`rpm+ z5?PobaD-7yq(0WX6jEhm2C;!(guqQ~0;gx+{C5}9Iwx!7EX2;j4C|ib%uNgrmzv-= zfy8(u>1#R?p=dJ*T>pFTNWEHOi@v6CUI{y-MChTW@Iy4GxRFZL6fhER#;oorSiz^@ z$t^Q&20<9{P1dUk=ONy$^ufbTMn|F$Mi7^1W@b2|rcNbs%E2aDC@*O(xg^n(yG_dV zHgd?p5&|#BzH1h7g_j$F6h*FA46PL8n2)kgx%^XZ9o-wtDuOo4Gw`2^5_)LGensY^ z%1*E%Kg+3r(czO&5WhQ{ij@wIC5VsQG#x!Uz*6 zaxGS06JirRC5wI)U9Je5Y9+4k{FnW zQhUeh+0eGt2r2B7SvbOvK{ocPwdIst?34qKrzO0~*L#0dRgFiqAzbkFMG;LA(eGxE zR;Rqi%I`k+Fzj%I(2UDJ>L4S&F!1zz^s*(KXRy|~8Kf9&8yTrKcDokP2ppr^Ui&@Lk0Oo^9E@3s#h3}t)R*dC4`f#nQ?Z8Y$6InM`k2+g5Jm>I zjce7`+VWlS{$NXqoWxv24WbdsWn;sn?FI_hN1s7h?Z6E+A?i`#QW&XH7LQ;> z2;46R*hX%nYR000?WX;{l`1vq=bPSy3qf=?N>1~te{b*(QZE$BvmoYhdQsvUO@>yE zsU>2tz7CDiYE74rZeLbr+5;h+jb>&8^@}d0i&ld1aY6)#fk4x!EKDythll5m&owd+ zD^>0!*eeHOuY)&|K-Z!Tb9jjOf%hw;6BjY?6VV7XCzrydt6C4tIEXyN+6Zp7*zUPZ z7i`1zievY#7(;l5Ik1M>(Filg!7~vUO@mwP2AX#i+iG27yV-`9)I@kFC6Ug2Gd!b! zO@4jQv%2#l`)v&m5>c&LcV%$(4o1aDad!87(CRK>UBK;3`wzMk>-qT5YNbClO(B*xDlNUS%n%Ek=+)3bM>srb#Wy_osyfQH z8PDbA6HUGvtQ`gTw;K{;1t=L1QLvQGga@E<|z?*VKg4aGUsWCEO)d@Xk284bqqvB zV?*Z6V1u7HlUs3n*~EM{i^9(;Oz#mf&kGSw3g?@RGw;(TaPn5?1S*J)-GShHXsHR6 zFMAyVIakHgSBM=eCpkjK&zLfo`4Jy`A>joGUrXZL^8u`$eV)qjgIgCUs-;&?nB!-@ zMPB5hMjBYdea7E*&#i~vGPhAtMLk0DKE&#}Q5INEakQ`iHt^I>z+nGj1@B&^79NzQwF3Ol#y6MP3_*0w5~_iK_yiR!~h%}z(yGzQIB1!^qJ-4u24 zlRWr1gA$D}uMVy9G4EVe7AmuM>s8E4>gFPPuT8Hu9cvVE-L)oS8zp!I>7-tijVl>!>PcdTz8O)xMh5(2jt0|;!T%Lyq{Nqzn3 z_vhOvDOR4nU!Kp|$w|}4^c*{$1@`xF)OcjmD5VCI4+viQ{oF>;Pa{8fADJ*PSU&y9 z&vtQBL>99VarQQhTfs>sf9im7OXv3A&!5jG$X#%{d7U$3;W7OKWj3y!GT11~FN~Ce zr>6wZX?p9tHD&K2`;-$r&%WF1|Jz8C!fdM;%n_c_elYntkFM>k;l+5K?vcthQn*eZ z-&)?C=Y1+auIfSO=2^d8t9|qWva@tC&MYl`5KcB&Ql_n+9FJ8U6&klB>9~Lk>9P6gA{%Wr|(! z1i3wN@xO&)nR;VZwH6_c9#M|k+bcRlI@6Xv=1F>cm!jQ15Nl+lqTNogJ^rCI=J`=(DGgY!+FGu6KUkwdlHJ7&O??^k($R@yf z);+LFSO2$O^cmb28P}ecxMte0J@5V`d@4?tF(s zn>_f+V+svV-&wDg*{Tr>aUD-BRrf2ZhxUE*@JQJ1m1OPYs#&hf<8fUQr2f0l&2Pzh zKw(o6uNiHKQ<7;`BNt64Wwjy+IzZclqGG~_(? zxLt?*@3T?fG#S?k#_~ewK)3yOWSDDQ0Kf02VEpzrux!IEV^v%fhb%9u@&3{SGGxxU z6D95Y-`$^Kx{jx*j@MSFDRgmcS|`wM=TWk*C6HBH-eZEO0>AiNA87ZavBJ)xN|R(K z>%TsgVSgZu2(+(*jrR6)ron?BO( zg!~RZ2;5RSWc;UN{2kKCk)R_>%|!VspT3`%_+z7UU~{s?^t~T9UHa7v^fe~ML><>} z1}N>TM=#U=^^cJs-qFLC)5ry41Y-bRoyWo0;@|gDtu67@CN-^Rj%(j?A80+Y?&+m6 zJ^Ao8rpm#i^(f*@eYUdDkSXC=ujHk)OFYb|5UL)VF7%U&k$fP!j87~&YqiIF=Y!m? z{R@ZVmaEMHQy3TcLP^K~WBEzH*0N-sxXlNo^;DL14Abc8dnU5NPgI+1HG&5yt&)Q} zD8%H2gUxP#CH;kVTlj^->0Ao@)eq8Zv;PUO_ejqlKceVzmPc-g``^g><6oPzXP?&O znT~!K?OUq8UGqv#>3`QMwF^AcIM*&{ zN=4JhRH%0qDmO;z`G<0%0dGi6e)i@UaX1h2a7E>lt>-%YsykEY48Ks6SC#(PWL>qr zsBio~`#)zkD8Qebyv%3wtg(@F1Z z(VEOfP#)0^H*o3H7&Uf)+MR)zl*~^MTzSnE@ZZ;GK3<-|yJBTTwue?DVtlcf&VTl> zn|fw1mU+P3)+L0G)zG1Nb5~xO_1AlL*<)7yH^s14l;_%D){c)g#?Z^29`;e1znZou zJ=QEpzJ=j8P$a#7c(9twx8M1%(a#a(|MB!wRpNF*ULBH9o0#ycd}gK)Gcz;W#c7cw z7D%f}abh2zk&1A~I)dHnn;F+>e$#xJE4T(jUNLd%<&0!En3Bt^9EV>}hJeOsT+_^^ zhorr3Iy7oa{dv)zpy-9vON8LrkCS^^-)bl|-6-gSC~EPVsvuqN&nk_rtguCf#Vm~t zP6I`NCti*gEL2G%_s5eVqKYsv(*T;obEWeaa+BU=H!?ZGtMoCEkmxCgycSLoP3?BG zVmUa0_n`;gJKh}h6rF2-BW=sVqdZNR4-oy0bgQu)2ihxwdbf%B)xkHo_=O)%vmpE%=@B2$_Almzzrv-^bW~4J^wuJM4UMbl7b{U;=qp-u%xY zFB*Y~)Sp!7?lpm|zsZpG$nhg$$3LGfq&v-pA2%HLodPgpy(oc=xg0aNlNr$FLG6x% zj`j5XuJ4H4Yz?*z#x=!Gd8sS{%m2oB&+FDjZG0cBSA9vX+ICiQszw#$ocxD|y)8Lxcqx6pY$Z|Ev+)`09-PjoF zBe^_D!$!|}>7Cve;Ynw!k4o|!r@!83(z+dH!V@-`3o6Sf#aZ?_e70fiJDe6qb! zVdQ;_{ku0iz3Z}Q6^p>m!54@`jAC1_ot<53>;Y}>Moa$M70KmBA~Uvf2dL#O zt5HdH;wGJ`%R!D4g$KaORzzfkJz+tJKDV-&5dR4K^5N{6iI@=&AtKX$molbL^U)}s zp=V1UOB}R34rwG}%tZ1e{w{|gJGOp6BHeM&N0NumC&PV48@M#u+pBDA+z*#=$E&`s z|8_^d4;^~h^4dh}El6h0fej2chHTf-@p{S&?2AP}m1@yIslYBH@qY?!5x?oC5l@SW`=J|Ge z?GX{OD7YzjXKiL-`53*m%BEHSa7iV0t-B>UL9bCFWk}E6jRhsjg5K8hc>1SKfZI~! znkEs~`@eteU+y#1fTNUd5#PLd!%LZ0kHF-7`0!g$X{V#Y?nkm1_)>!$$Zwgv3T(BZ zp&=b+`ufjJaQ0eCbkpd}lYTwg+al65UxojKDWN`mxLo->q8*?jpp&){;}+b^xU^6J z3k6ItS2)Dt$nn$ui-iT4GBB@YCO{HQo@7&1RUKzNK)lS?n^U28?|x+pU3m$7Bv+k7 z1!m&pr4jUS(wP}m>bx8yM($l*^M5M|c z@-7JvYVzM+dE%C8OWkMr*|IHsTc!Roi721D-17VD%QEEJ_l^WXzu@BR?1`U8KrVm~ zYquw(pj!<%{=luoWX!K$DzBCHzg6B^m!O^A>!y*rZ}JY{_`8bK4~)fKE^+?n@y}2i zHTz!JQ|ULg$c5vUq~Pa@A-mHvGXXYK`nu*7H67!%F`Kwb`|i9Ht3YY_FJ+m{VN7fn zE<|%mEgC4XZ!vMOfrHD#Z%aw}+_l{&$?);Ubp430Mg*#V#*oy#eS|DG(%?r#$8dq5 z&%hSv1$6=TMQp&r*RR*FcY#tw&Cv#QQ&X1ls_I&CprO&|f~>$rKxYx~V(3hgvEtU4 zm&~~LqvJ=;$Kz3j9YlYfpH`$nns~r0`7W$!U2{7bFpB7f+%$YL)ME|~hWQCK9%l_wk4_wGrtI@We zS=>r)oZ@ajjCyFWGOcm+wY?Q66<@^7QP%40+3e)rIX`&tU?l-YwjHjpo8H+U@vO2X z#SNA`5kOZR!{v}feU7X-x`$!tYm1zZ?mqAy435?@y=wOcQi%wqz$SosM&!O6|eC%A5L{=2{U411b_A77|eU6cx#s zSWH^P0VB48@Qdr@18QbQErOU`3RPSEAZo17lE4%svcw~i@@*axJO|9qO8^&{_hr}p zxWj%PQp`;>`tM*{F;paP9y-xyH*Dbos|Ox2%A@;W=#8fcaq0fMbT*z9^4ZG;#)J6KUaq)xClLV7oyBjmq zi(Z3*$*Z>Iz#x*BNPTFwM{;U%shqKX-L(k;0mFSkJ*$k>SLBB^{X{K3uPB;_CK}uf zFu0Ue@j>q8KdnNANC>h$trR?;CdlhR^K5s6f#|1A*KIvW&2pv>`*QBM?xqC!WL(u9qY;;UI^PD%vXI3)`#SkD ztSb!H+0xr6v$~acL)x#{YGuXRu@Pb^KKNtEW(`$z;(J!&>b-`~DUl~#i2BB&;R)Jr z`l%mf)&OB-EXvZdAC(oybgma)de2(sYNat_**qDYQ&#KewDgnq(T^fB+jXhBwo?Ee z_;_UUN##|Up5jaXAAJ{d<=<6V$*i)SCeziUp&Ut zCMre`lkT@TL3Hw8o-4$fg1m=>h&Y1R+Gk*65*NN%y<6|wnRbLmMtBDCV9Enq7ZsY- zs&#NvgPRF}{CXxXP~UizfkL_e&{9hRTHPlj_pSRvRH?ZFArZgZ3U2d-zP~TE zs`qZUt?a_(0TClDZKxrWygrD8{r+f2Qf=UTRG3c8qtIK9VJA6NFdwCg4oO|U0^9`J z{?3B7T8NzluirNvJ`!&%;7^R%Y1eioiCI@{h?rwSuS z!J5w#4X{$q-C5aw0X}fxs*tz$TSPhF(G zBlW2b9I=Zl;eZ<3?G1iRSYY6rq|987RmZfasecFlx~}c$JQywexK?`f$V{l1(4idhtd|@^+fea8!R{RdZ1iWHM|~$8LUP_|iV%71R7ghxjUm0X-GuKNB4W zV<4%t0pl{0#sZxf89iXDPR;ym+3dr{j>OI!d8A40=l^mpDcnKe|L=7 zl2$}!ZvsZ&40zJP9VO8YP>ETcK$mXvHq(CM7jRY5HmY3dvjw||h6r$@HKIiz8Sn@g zJ(HdGG|X|vOI9}?v57`>Fz!1K&gxwQr#(S@-bYUjZ8fm|&b)zXW6qSdL^2tsHi;Xy zq!pdG6hDklsnS4*%$CNLngE`%nN^8fqqgDlmL4X1uq~(Byc+N_ss*cw^iW6HTC++o zZzl_7Am;Dc8CZrL1yq-Rh<-)%A_eW{AqVugd1vO$8Sf}aS+607yukSuL(RZ`?Y5Nj(e zA52mnjvdljyr@{h5@DYIc`>5ZPt@$T-yBDYry!3SmqC(0KkNAe5bb@8M5BzpXr)zt zFfOx-owAjCubZ@gisfsYzFm;5zuP)SI&Y+Zg?@0mKeZUll%HANh}$Ic0p|&qS%YN% zL+>cvEMI#6m%`7QK0z+Degohn(tTQMpKw(502j&nXbR(o{n}8?CR_XNE&r_Ldb_>N zS%1LRr^=FJISs;j2Ph?8N?LdXsA@FV~;L!IrAbqi)qAJo` z9rLR`?j1&lmu*U_Vedu`K++${Qc|!$<4ml?v#at z&{^3`HWp*8_oRw`)-r5g5Jx+~0PP$G$O6(96Wu=J+F^&d?;XA#V+NB_Qvsq6$v?O+ zaAZU~j82B3?;a5OXDz0rq|Du#I7D`nI)p7pxJru$_aB%UjmSyz>pwtZwmf+%_HqZI z|J$1f@e6~k)L#sT(dSEZJP`cu5LK>b`Gc2=1kBGvlo%ASPR{&` z3jY)CO+IA8wvd}3J0&n?LHU}0Ng?nW&kpauNA(>sI+}vrDi6Pq-`*)%N}v3_iJ1yskM=+< zg$Tt*eMr&oRs9vSBkgFypabTVnT*-T9o3Crna>?1PjwsUI%#ErU{ zksop(eO!A(=-MlXb$csDKkkOafc31x!b1GVg!zJz>zVTFS^->Efl^&{599(y!bc3< zTp%=Ewh|~`fzPyW#VI~MV1ce&pGjq9D8J+O4HuI2_PT1lfD27>+%J)UYTjJCxBce!B6a%~b1VR({A?04p!q!%2>rrN5vwbRKkQT(Db^FCIqw z0fv@g_MVS=dUwa?KTZo&GXmB|&Y6(&w9VY)3%nFq=VYlf{`}<$&JZmoByKo9(4Z`E zwWmQL$YL!il`U&@#A8YSEVqLLE&@7Q#Kr{*ErL_pG8xMnoku}ZCl;A%bSRo_$zZ?E zPxXWoBPhw*=}7Eiz(u)$T|6#t?ZicJ2t{?X{ki=hAv&R{n%3O8AjIv}`C7DrMy8sl z`^p?wohA>ZFV-D-1NL^L>2=LNyMI%sahmCR)9&v2Vh!dJ9G4l`zmzh^;gIW} z!tZxZD8#2s@fNmG!c?zqE#^PTZqafSe1Hlv4;YqP&;v zUUs22GIFvSyO2fw^q$`0+Z(HD`eano>$fEACJfp#yf^rQ?;|Fo(N&Hf3GJY=ciTKji=) z^Tj?%7d#SIX|Vikg6$0N``NwR`c(=NPTL;1e}vRf6Y{xn zd8nf*_KFiuYtUsl6LdCa_nTqs+?o5gREs~8wOUE)>Cvdv1XjSH3);*?ttEMmt#DKm zDJ~?o(=I8$*aEc(zk_H37)Dbrsorau=KLEEUyHfXQpy zSM0O)plELBoEz_axs4c?3A^8qB&_@T=UK}WoawskR9!}3%l2EtS2K?xc1IKcw`8(g z);XG)thqPB4@0hL7x*0M7J>Py*Up=b+4)@3jEui#Vll>a%_Y9}?nh}8!dvs@=#ocs zug?p1XPAaM4)fpJi%z}sv1GyaR=&@>ke+-C%c{lkZAHSVn!G-t1x`Pcc2LI;!|H^- za`) z-=lV|%q;o_Gw%fcXDgbqsl{mAA%ZNlX+#3v%MU!&L~TnMJUV-sD3kiZ?|EuKnI~qd5YAmCpY-2o-K}rCr_dFk89@MWb1b1nB zk|xiqqrC6e%~X3MQjFzmw%i}pwi523LS0q0U2z&O$#+|GgXYFo#h`=rx_L6t_01qp zk{fl!Xe`=qsxPlW>Gsx`Ww67-8bZoPXF?*XWAi!SBOCULuj-Z3oumyPU+#Ce^tG8w zY{}g6+q-XuBKJBt`7Nhv8F%#Ko=}*Y;vLG+2}+-8H*(@|JBjj^S3Xx(>z1~()p`d2XH74`>v9R^Re9i!uswXK9j4!=GAQ2YQA`O zXO!}l0GKmTbhJ*UKsNu=lNUJ=J1--{cAD3j0FNAZQ;rCN4k96r+qS3N=C;;dcN&;y zW2(ifvz`OHrdm5YTfFjt@{d)n`NcijpqPtsV~M#(NMT3x<*Jdy zHZfF103rG1KUeuix0b|p2+(g~{nU%l0K5L!mV}T!tAL$V!>Hskvj)PU}km!pQRc%bqBt8IUx4}M)q}b(wq8Fq1iIMVZ*b}hIK)o;lL z^FWpD|9?TjO@(Zs}u2bt`NugUXSD5$hhZX75mp=`g z`Bi+hY$x%}B}<)IZ$sX`{)C}Sp}}dR1Yd?DT;#fO14Sr)xmD)xvEH!vt(enhF5gAe zuO;>qaD3LS$s|Q{V+5fEw|7-lG~29vJ-1*?GSWxwRJ6rbzscvu%;8pQw%lsnmh9X@ zyk)DOES!;Hf`o37?x|CbfOg#f7b3Pun~+2W`OM^7w&@;Mt>)#HnEtAP6JuH;j}vJX z62XOIq3-Q(PlzG?mA_`!zakymKXVHUk}#O3-dWHOpkKMVs-NgnY=vC z&f(5k*9!Ew^JK>4KQ6-uWlCtbo~|EV#B&`1s$Mm^6LgO);)0$mBxjV%;I`|&u3pFF zc^bf&q2rM5(lu}(g#_c0e|&$(1hd^$qkt-=%^On=|mj+K-uM|70`vD;_T;twXQ=&n1MiYUh{unc(67qXo3A<3n3SY|tc8OYDY!(AFjBa(MRQd{E44)*KscW8sr~%lw!Pae!x4P~N<2 zU<}6Ca?d# zK0&mnZ*n`>%&~(w4sjpeIPs$idvj&%pJp%V#wIeHM}zBQwXX1jbL$Bvc^vKmF1VuK zzI`9;oXP~P1bZR*FKFT`hr5i#Pf~wl{+Z?D+r#2!Q8`drR--4Q*iC}hV|B~)xgDR- zUGKzTz04i)i=Uvx*Wj{R2pT|X}o7FwF}|eT!g4GEj?<)KjWc;sS|Mpn+&S)l4Je^HF8bthEk^_pX)84 zhU`VyRRHl`F5WQ^Aa3p-<96*6F=D8I&#O}}2ZG|bK^zx4>gpX$g!=dZa6Vd}l6B{E z_J_GoV%j^)83}G=i8OCs+|GAt@M=n_$f(cCPeud&GkKNw^_M?FQRmyX5J$~bRL(Xw zcvEK6>hm{a%wm^^gKqn~RveeusKQj*XaoKN0LDQQy$Qdr>N_PmzrNYop|N`RJa5x& zqVoKg__IHDZbu1hr_|_>8@VR^qS=S$+V7Vwfgz@}=>okI!pnt{7e3)A-)W^c0^Ivj z+T2!AxXs3E>OO<*Ja?Rx%dD;j#Vw6`RVF8#97V(;gl=rI(BAwOBocf4qLCjS<0Eo5 zx#T;^qgH0ddp-PCF|@B%I<$W7h5cKKme1(jDt!(-%KfJlTN)1vSFt*72Hlu*c|r@V zQy3YmI{k}?H4>|sb59^H6H{Wu#z$7lQC2EuoSVq{z|P+gB9iEPr+@KR;cFI|ceOIY zdz(Bxx$31=T5@K@T8zx?aBi$squuE9ZJ9d>((`;BM#!e@CoAm_8-v_Za$RJI&q71I zf~N0(kI^@snpTJi4@Z>>;EUo_S;!BYBe@{Stz9>mmP+76bEBck+E4SgA%Ij8^R;h;MT10YHP#V1j`^2Q9fwwLx8tZT9Y*D1YMWZ%-3Vi4hu7T3n-c zn(H0aJ=(ZHlgYw!h3d!%Qu&_mBA_8#MP(M!!CIedE90r^ii#tZ*HDyW0v)BmEyWl6 z6i9T}bWit~Vx!M*+shZCPiAkt@yKP|n`?C>lobaQ?0)JmR*%CJnC{?-KT#YA;o*jT%+v18LanVgxwa_Oy?-QhD zbqI`8g669sM7MP&8o73IeWXQVur{|6bFqwoypUd~(I{&JY5Mz1A7)JI!n5oJ@rxRL2oxB_;WH-iiBR zLyK26JTPeQALxT?4^W$RQq@c8{lr>de~6X7T)^zoo**0eE$qLS{TDug43s`O7!a{L zg>e7Jb3eM>oH^DJd(?6t%ToYl`?0#t?Bx9U@Qvx1cV(+xDKOlS&Dc0D!m%g2pxvI@ zU1OcnXSK#^pZ%r59I|KO-w|+TZ?yZy77)(U-fD@RUMhBcWT&{WaFxf;??Wh|zbrJk zV>-28u$5aiZ)PU5E%%G@>3g))WCB5J_+Rty=LZ8=XWHwnts3X`QX*WIjJ}9uK z{FpLs&HOMv?KZyU7cJYio%ZOa#{QAqeJ;;iO?~f#ZxeYGHy7%)wsk4BueqL2&}oqB zG6T8d(CBkl>!f#A{;p*_{hmUaI>-AcdNE6IH*e{Xl(^e3z^K@N?3XcAU!eiE*r=d zX|ooszPvFh`>pgWhh+OVWpXz+`W-xl3w6$xcAsNmmd&WFG1aSX#)+*L7#I{ zrbJ6a`zH%(r1G+>tUpj2*^-+Ap4^2waP(e?U5vdlSTF+KsVcK1I`8$Tn>QDv0w?js=FPw>8Q_Mf9C+YTD~{cyr!tH+J~=nYmq&JSgV*q!ocqU# zp^gvtsmEIH9pC6!j|gusci@nWCo@KNdvTuSR^&AOP;=SKJE%${`Yb$`ccC9i{N08< zA;-l3+&E@Lhjwnu_)Jg9TT zmpK2$*8}ET>eRFGnz@h6rw-T%?fP)HyiIqXfwh-mTfSo%<&YuAs4F$p?cVYr>Qo1t z3{ie$8U9MWDBQw}_CjnIy1ulwQXprlDF|CsAzO|NgEVwu?P!O}hL|c)nc3DiN1jJJ zY!_+><#1W9+rxKzu1sSI^$uM2cqoa(Y^+;)Ny)#;60AsDrkv~^1Tc*HMkUEb@uK}b z@8Ckq_qw!)mX)iXCoJ4uwVDOnbkR2ibsL64hJahk(j(bkVY6)(rEFV_9_y9}0YYUs;o~d{C^R@1dDW!{Ml%dIRnb8B&^V@7+DtaDcx+`W1+57jxHF}&6)<@Z@i7^*4vLzyQ>vSpgD01NNtV}g;L>HSbF!xkDJ}R_&Jl!F5>G9f&i2c~yIap>4xvTsrBad6Q z=j~*{{+u5`9D}5~H}OOB(Lk^>Ucn!Pjl{f+GKSyEQ?rj#rYyS%vqkF-$#>}MmebR| z_Zjno&*oC%_lH9)Q*P4}9^N8(iL8Ha|KTMAe=qGtL{5|Fse;RpJF$K81N6koGv~a- zzQ08*w;x&~o*dTW3~LG#WTOuY4M8*8!6Te9e+ovtd(8^}<{It^6NLWI%Z!%#b@&N{ zW6-ntAe~Z@m+0{Hup$Pibwo>G589We>r18oFml5VK5%yGuvExu#3SP`fp1bqd)(ju zQm3s z_Z`E>*Lcpwy?qzU@D`D%|3|MSc?eAMpZY9eh{fN92X1rE{@oP+9+rLqlKG=VKz{Lm z`fvYPeU#~sKZ&aMh!L~&KNYWOCOoI={&EtQhdf|#_=j0B2mT<1SnXN$H&OY+gIn}Z z-cA_Ee*NEWc@uOfH(~zC{>2MUdkr_^80e|$%L%%|GBRiqhmAf>*~@FaFpS>JAaS)I ztlOS{pqIL{v*Q?Zu$R0=ZGH+L+8YDxCdLe|YjW9I&;zPT1AKpG6NLwq z(&+=GdVduYEk5#hXM#+xn*Hg>TU%QT?kbGl+#fN#?$yR4d>tbDyQkhBa>!Ysrd z2+CGPS2q^(heqM7aug==uoQ3UfjaJ#*;p6fc#s3KbC&YWKdezsP5LG0Ix)gOo-^a!;IE zEc@z8+}zS=jabsAjBdturW+2o+zOO_{z`c(;BjP>yg3?2-6)T4p8EFZ z?AS3HbsI%lh=Z~Rsj`jzCnhAc9k;XYnjyRTlWhQjw(@9ogRZx{y>d^2hknp8SVt4` ztDs9mBB6D^mDEr3hK^`CI6ITE(Wy0*W+m(<6K#9mCQeF5CaS$t2A8scKYr{h^3d@HUm|tj8yMzf&=|C}Z2sUfU(i;yu(EsiIBs`Mv_^#{=_>lnU_|8% zhs1O*?5D7hkSy0C&pv1O!|s09#$*>Kay6N2P0~_(^_-RLlnQ=2*ioH>Pjop~HR+kd z8yt~P<9d%tl`@kr$)e^tGGrp4Y$n>gdT)!Om>6+_mm;(q_J&JPH#)>vWnUZ3OcWvC z)bcZGr+KNrk0?dEz#`qorQjbvJRV#gcXJu~-8g9|6Rrbfh4%Tnwm8368LB+8@0VQdi0+qRv2R zi)A84_orER0S#5b9-&#tZ zR$~=dC7I@GVOoLh!Wvyl{ik?tF!onBmOHt9Q`BPvSF^^1h#V(2&sc8aq zlUGlnv7)}dzNqLrNJPYY7W!#yjQQSirsTKR8H&8HOWnqK+ntUyr`*MuI00QLr!NcM zZ(>2`;+f|%?JI|`Ul$oT_ws)1!=j>MaOh0Z3v<^F9&u~T8Od}?#r{GV-d7`cl3kD5 zkOeeI=XGV$!@Ba!6wK7F4$fZ3-8DVBkSw{L2n>k!XQ z8LBDsp8?Yf7ECWq-$#iV)$LN4aym5NM1qlvP~oc2YLT^aIIkvIe7g)K`EUmpM&zP50BCOhDDlic z$w8|c9c)NH&6VS9GFM;O^l>~V)fkq^ovR3Vy!I|H0`yI~T7B(ZOrwPEkUq-#o1f~# z>cH!LB}U`t4j`;@kcq%}QpR|fSHi4|cBY?($cdvEoUiT3D;pXm5T5tgX7ODr#@CAQ z>*DR(nJsk6J(n&*@V;5S_|2OgXf0zSJ#!0~cwTq(b4z!GKg;dYB8Nbn@CfBlZr3@c zC>d$SjfK%hf4yLgrC63%Kkd>)g@fAHlO-8a1!4a4ooI{r>p=__(g;xvX=} zK5MVN;$G`s$H@-T`JQpD5Vhf`#b_t`VzN`MAT~C_;k|L!x1P}5wU8`xxn)Gzitt(E zVJ~M3ieq)4Lz9QcbaBN(c0pEK{kGB$B0jI>G(nMsyV-R5)_VQ_UQtmp@9+;Z zd4+}zw#eu#B`eempgLn)GRI>!wdJ?7+bpdYvWjB!#fKr^r|r=p^y`r`-eblJG3>sm zEzm=$^C+5Mx%ghvD`Q5Spl|cjE95Acc=1b1XXr=j(0cMstV8T;W**-rT}l?09R76e z^vpG8L)zP&CmBz&G15vxDU!>vXC0qj(CM_`rLz`4yXpx$z5efu;S2K%VVZ{nk=50A zU!R7QDTxK@`GcI$v|-<06G$i7Pxrs*L)?02nrd9v)<2x=I-cOAOGL|QomdP$y{c~~ z)F^9wt$qW8pO>FsGYvgxt8&m#POg}C+y535(;|%PO#;+}erYQ8vs6}TG$NwlN8(~~ zY^(>iZojtJvkMqMJ=?Y}IIWR2hz(AFNU_B{0BEk_E!j)}EA6;zZqi8W`1{6BBdPtJ!)!V1H>sg0At|VgP z8`;5uPk537JLvs#u5MIEM~4IlTix`BUb6*>nOY=pO%mAJG6O4#?0%t|6v_E~Ad`iz zL{`R!j(?94Oq9xFI%W12r z)IM27U%$w8)P{dh6>%RIVJ~UQ5*0# z?;S@aa3!9DrFD<696?y$`5(j=xhndLZHTnfE$^&NVH7KuUe<{&kwVbu-EZH%0ji_< z^w0MoZpz7QV6QUVSprhh&vWd*QZIfxw72fDZK;!@8l#K(E6cfQKI%h znd^XfV(>4Z6-W~;P<^Fi@Oq)9XFECA+1Z(&tvrs|8wYpK)BWI~G00w;sIC<9s}d(Y zrE?U1n5p-TgTFq76QOl_SNQ(IROVpzGRGr58u;WGkuRD?((x7M2}xwf9+>vyjg6}L z1q00C7A)tyqr8jDEDA830e`SRKZ4@}TkU0DnJt>AG0?1o1{<%Fxvq_& zJuH_$93s2a(CanW_fzauHC;8@dV1*JD|}|#26}oE?SZ&05te!}*OjuX7-&^2pyU8j zvY}`;j~%!&DiaX8DHX;WFol875^uGsI{fHwxc$rog_Owb0reulog=BE3s(YW!HLfRf-8=yDd(cJyPmE*bLuW?^ER zO|1|S{mp9mZPB`*$eTBbFLlTijs5OG$uds4f6hE{c5QJ5nR=3AzAJssY-{HghUOk5 zzd!POXGeXCo%GZ#WgBGeGEg8MkiON%zC2ovk?DWJNj<;51ZDt||UuT|?BC9Ai@m{BhdD z-qWS!<6`^7^~U0&K`)}owY+DY+#$qB^NbK_p{O(yJj=$&?O36fhjJ4eesL2KpxsYx z`#p%Hwi4#{aL)_>yidNvLmvm+%Sf6yUN^YK(GfFf;9iL7b0R7tARilk-kSwYTT-?m z%qq{4U&)RR2#|w)l7&>Py8k*x{dLt7)W1jsE8;nQg`N+nTMAA1L}pofJNoGsI{-)JjWj#1rxeI>~6_l%79pI>~Dh>XvCQ!A5)Qc1RMg{5hv4k%CD z_%e&n8`c)S+K6He)603|3VCw%xgO=g;HosZxFw?b9plPeCCbWmrq$RN|A{||iGhWV zpu9^cEkXeQX?S?#*7-Qi0>V>3y(}Y#>4l*9Ruk)ak<8c~hq(j&l4`q^dt|*u)k77V z+E;VW8?tofCPNGAm$gQz#wf!gb~y%eYlX2v`UK|Icb>T;?^D|5u?jnsVc+6saJDcq zw@ltMAt^CYy)?^B4`w!lI#8>BI(l zhlgoX|JhR3&$swh^2b?l#vMG4msH*ub)3!2hQZ@uj*|G=pYj5` zl@e%f{N0;cJ^h!?`{?!8!0k@}&86=18*~;P=3%BLOk#`v9}N;YD-5I`Q4xze97s0G zPg#!$^+a%t$$T_vF}E%MVobyGejd&za(BA%%d4^wSLuE>8o$T>C+Sd%%%R37!i|j> z&cntV-gEBbd@c9(bbRl_81_vA^a8hI?V+NS>#kQ^mR9cOiM6!=lS66+Ycx^=0zzuX zI0?2{MFa#A99$q&gZ>xp1n-sS?TBsYz1DGefjnCXgv;=6VsLjF`knt)@tW2b2u>>} zp-xVEh;sD6vVwRquf9OBmy_Y#f$`fQ{=qhix@+Oy{Xe&N3q908Or+RPZh_1!Ti9DZuW3-C21q2Lc2hu z2g!GE0Xnr2{x9#1w1662G^RVP8Z6z4%R)fu5f5+=!jsIta+y$%_n+B}l$aj=_}J<+ zaUo46B-4{V%bwqnABHyzpLeG16(f9z%s#bPP%7YO3Zx|6$mSaie`xMV-tKwXdvaf4 zY2bc-Kd~VtyGxC7wdW<$WK%z707+JoqmGDX<4IoAU3v{aSok@^lS-TE_ z<;n$jpJ;3`@P$QRf=$q(jzX92duu*|s`37NuF1uZ257N^!6{=pd{0ije&>diiW7au z+j=%EbM{K_+)aC3{)r>H>2+`D?Xx^NK=~@A-ah_6zPwi-Z?DT)m5MZ*mkelw@mW1@ z=?0V?O8u_{BEAgGx_?jee}8$-_oH3;8Bw1!`8s(4G>hxZi5-|I$oKJ`QKd+;ZJq^s za>|`W1~ZX&{OGS7{O>+4? zSp3xI33ex>JNUE!BAqkS@$u`e1>}+Q(9Q|$a$A2;;G*+KwUZfLcmXO`uLeS!UI+eD zBNdCdBI}!HmC^uZA|KdfPtSjkTk8vto#T&jlP^2Cpbei zTTWC2Pxv#4ithZUc){LcF0w>wlxL5IZeIL6Q+}e}6 zKGlT{ov_>Zvd2n7cl|3zM>``tcg#V4Zq@a8V*$I+*1}*N7n!fuRp0bt;RfY*OIQGS z?fp)y;#1F~XO}pgbB_OhCP`e?QdINS0n>#<`H~_c;Au8_DzwSsyLo0Cu1ei0M(dlQ zT)nw&C#1)?%s|a@cHKdavJLHB_Zr>UMIwnxi}Afy+N}ZiIJ!r5K%Ppj4}3(F0$+?Q z`Ed&9`X+WnEh7)B9YC6bSwP(d0DH($Kl&Z?Qs4wCmkZ1fVl$xH8ytk zDs-5I_R@#ut~=L_!u==gVDnknka{%nzZGa3YPu|^1!9a27iHgy)5j-oIGQFUeeLBt z=Uiu=WWda56Sl{FnA-kPIl*N?!lJg$M}q|>20D*z%?0}HN6Xogkq~E zv?P%tURBV>tS(5ohxzY%v!#v?a!E8oKQ4ac-G`=T`e#U;=(G}@T8e&xaXKCtS8y|G2+vvUo@APTUZ$VyTt3O;Q?=2s9SVox`E4HVgs93^$ zSXor{ZsXEG)}=qn92QcF8FxyS3b^nPswK zFLM+atBvgCrN4Jq%==vjGb8pPi)H4Ov_5CbX0V@%$_fM>WjY>aaco&5^{webIQ-W^ znTke3$J{uZEh& z{djcq;@sTG+8#f-QsgKFLo{{%C((8j`=uBAk>L_%K7@!q0sqE$v5^&-pCc$#_?{Oi z)QHwJ(2w!>&cl>#(2i^qM1TmWRKc>XQ#ctF&^k;(vCv$M(v`V>G?1%mAa*_PVv0w) zwujlk^Uxkzk?>`pN^4yH6kj<_nxXtbk?rX>G|+@qURAE zwF;A8^@JNXxkfeVaEAx(x;L*sQT(`$YD7o3z$#BbWOrhA3p5S|1jN>RiYCFtk995f z%Iyt)w8x6k!-vus$s9)3fO?Kojqt!B(5(d>``W`H@8cjDrj40k;o^(lT3Ux#t<9Pq zs#{iaC|aG0xC_JBmt|clv(FR|zF8faeP+9rW5+8~{AHL|S(!CtZHYE2Et6Kv_sw67 zsASV$jT-T%AMN8wzijY{9#&a(FbJ~^;NI>&z*St9mb=ZqfTU2GTu21!CK*T>Jjk%x z_mFJi9nw|V%&sm{A_Tsee^k+q()3vBd11*_iPqFvhit zY*quKA^E5E3U8zEMQ18d^imI&fk5`%RC#T=`!NC)Hfw%-ovK>(;8#)2LYq$42!!{p zPYn+Z@h%?`Pq-Ioj7AS|@C}OoywyX0HM|AcsG|JVN|aq=fnt^;998g^0fkQQP|qnt zmMAof*KVeU?Ce}oCh5QA*0&?0HJU0lB{!Sm*IfZj@j7Y{($U_YxyAgXpAk2DMRF%+ zjzk6I(Ni0hL-^*|sUOGln>zAx zSP1Vb#fj3xVe;}|H~2YH&3Mbo+J8RN+nU7pT7!%mfcmfgY0KS$Bq4TI@!K7{~60~V$4hlIM0>)Pnu^9n`E|9Sx!WAwQB z%fdask9#A1yRUx*hKsvWLsi{}W|Y;>%w;r@Hw95AT9H{#3#B{)K)t2EJDtzt=qGBT-&YYWdYJ&2%yJdOv9 zM&ryuofX#Wb6d?~NwU#w8iPb}Y$hq+rSANud@PttMc&{?OeCfuUH^zR{iIz-vU0HJ z1?0HKqS%+V(`O-aWprKA%)G{Os(wafoHA2(3MJR#aSKu zCAbwF;K}3Z4duNGud+qsL2{q@#z30o$xq~kFGK^W_X z$&!o|;>N8h{aLLyaPNhS{y>#(xOP6H2;sH9_B{y%M*;VK!D$426 z)|WwNL_2=hqpew==Dtm?f%xAVTU^DiM4JsNbN>`SD)Sd#E}AQFO^WBWH(se#&=$H~ zg{ipPfA7}uMp60D@6cQYGwpGYa+MhNG+df=8c>V9Xc~hin(xH*Gmjqpic;&R95#P0 zWZV3cy-Hj3$34x0n`ecjwO6NAyMD79<$|>m_K&Uper~}OY3lHpXBtRLE9sPSy_7bw zTZyYK0fibF9mcA$Xy|S~T{^NbpZGw>R=1p^!=B)|zNbz5&#N)i-)l1*YHHn_$I$gx zV7BlZgansc+u6Qiz&3(sC{Valzs{xBBBYoBhcnAKhei|4;% zIoT|J-Kg6)1Xl3;o~gDps*t~kiE>iSZTQn&e3=rntVaoNwI`!DDgw0vr(5$bv@q(H zO3nx$N~j)U5q@X!xCO*^pTX9r6U$t8FYzS|bwGP=Dy?bP(df1Qjp2u^Bv1dizd`>t zeoInRFu@W?rO(J1A&?$ZfG%?Q^uc#<#X@Rj&r3g<&+y{7I4N#l-%%b=vMGu3FG!eJ z55=l`K=wXap>$TD8f^M&4?~9 zpKhge!!0DNScSvbrP}2GDB3A0^?g2_7xC@^9W64M!+_6D=m0d#-bOPA-i_Y~3YQz| z><2|V1)Vg@KL+ae?s6zunO_up)nfp${+;J@vOtSNO12{S_de^4Y9ob-Bgl1vWVvqP zJt5151FASqHZdVjbNGL&Y!O1IX}C-+!0qgW2Q=?k18FlBIl zZ}F*FWzp)&s;X0g;7#99Jx0H@?pX?o#Q@v&!WZ0ZP)JB9{E^Q3mOFGB8bE=hIsuFt zU-k5a-Y!2y0t1w@cb9F6nw`~Pz)gC%b$Ylo_@&v74@Mi=?RO#|I)|O5EZ!=>6FJQD zz`JWP!Zi)-jAxl)r&G3a-3susc`%UTMOhhvbvOL2+W$4>cBrvj-$@H{CVk)8t{y!Q z>xPYfX4l9HaJLc-rq_D)Qi~-N77SfW9hU)u@J1>M++$`AY~8DzvRqEH`VCt-^mYF$ z1*zL={+uqGPp~$waZ8vnWps)RCybsu&cK8Xfl+}v;6{h0T3YLyf6eL_T}g7c-0L5( zDlEspb{jF*_f3=+QTxrp`0!Ap^fJ!Zi_wQy2WR}q1&-_{NO4XB*H`n%XBAB43YlmS zG{5AK&r+_lnxu0Yn5Z`#XpMr4=F4+-vOKD?93ry%;0GPF9xCFQDg}8WF2v>uNmfco zu@cUq1j%j=RTA!i-n=w?}(Ls2cEn`F^kDRnVdi-+f_Dqr3 z+gq-0H|9*ps-0KE739T15i&d3qXPK;2)T+nbeI+APK(vN8!neta-fL*r0M@|ow42j z*Oi+?n)fl=GFq|l#f~-_)t6cxSshW|zNx<2jvbpv9uYGLy{12Ok!b=8qWbESn@jAE z1~Fmk+Uj`A&2xW2dgkdZj`Z;p61&?l-|lq~PQq6s;7nSd-Fz1aVdC!_8}PXyStbJw zRbEW(;H{C^XdvpOav3`ePW87Sc z#a>1+)O^&~H*8L>jM1jOF74i>0e4X=QXikm?|{(0nt^w=Cw1}8+8}lN<2R;>|ABfu z{tL>k&$72HB`}MYt8grS0CKmlIqd7C( zh1g$g=V|7SBG=-fuii_ppYyMfkDlbtCcCdJn`!71(uGcm2#p$5R*LZZ$bxrCVSfB| z81R_yGqs2tNrg}|f?vUsRzpf^^!r`(B1gg*a&rm_a&y~i4j9P}(+WEO*tw0^$GLo* zu%r5ls^yaMhq{4~EY#&3BtfvZQyYTX4{Z2jM;5E1xmj}v3;gA_6g|-CfqZJ3k?p@X znXiS{pY>dwVa@fJqo`)cu2REWhnW%mN~J+*%Ux6_I0yhLi;JNzb+Qy=3s$g|%B&|6 ze<$Vno51@B%T~Q1L2knb&3xQ{uyNxM^0X4g^J}kiuAXCO*;g*SV&b+Z4b+t-}^8S7z(In;;llDXNw~cRx)&P!3%j zB%_m9Wrp#o3hkYW?0q--@D`_y zk1%^z4FGhRiJju1J;b}`0GfFM3gRt2^1j95d7C=mKOAtt6H)WOdL;^zLO*`i{*i)Y z8jUy`9~GbjCF^0kDRWY##0yYA0aS9MhR%R^kvQS+*Lftl05ZIag5q4Qmn!v|? zOIj_X5jMb@(VSvhaX^}{pEdQ6PK2z;=0Oo_{HeP`c+e@E#4mxRQfE^Fw< z3)L>m>^I@Qz`!&RFvNk>LKDBQ8X#l9{sp+;GHE=eh^*rygY`<1`)d-WmT8A;4c=&u zn5BEm!vY6|dV4n%f!6_m1JOi@y}?$*Jge}sBgmDS7Z!&H1^})_JPup}4(kFKhjU-% zY{=2y$&nJ5-C&N-YXBDnct*m_@WrpD9b)v#->6DXz??tYs;XtSZ$}2Z!r8=lQvJb* zG5;o>>|#l=%SkukX|mC(s_JnuP5|=ZN;P=%pEG$j+g}3QV`i}wi5*L=*@Z97v=(k7 zIzk%KJ_1+)vjn45j2*_lukT2J)(992pwYdnB)~zwTZf3xr(Hg-W7+q zUn2IO?KVJ<&2F8!ofR%Y`-AEQ^0bnD2)aeM!(_W6&`U`H zswLzF&ts67Tf7&S`0{|;H@FDl=d8ED&_28M2jn@xSsaf>MXv5GsMNcP^v}!7%Rgi} zEHI82iz0esnk0bw)5Es1+g|T&TU#F3SjG|wd&H^((wwBY&6q0y@wH9T2QGTpJXyu} zttc*YyP#VXvg1q!5M^-O^nG0FJk5WYtqJ>26xGXtv$GJK3UE+n=H%GiZG&X*?oK4Y zN))9X9WV3M*#X5oaF`vtMb`5QPof>3zvT`xSViy88Ui-dz@I-{RbORep9F{@K$|{c z@-01QI4eci*g%e3yE_E5x5xI9jV&tqjuIU}9VqomSGc@GcNT^!&GdaIV%cNb6FVRG zGH!!IuKIcp#Ad4Yn>cvN6Pta^=_x5D!nS=ut=pd0fY|52GEmGge;I=8FX4kF(e1baLXm>r0u_`8g)MUy!8 zykkYY+?NEsc0K2(sSF4u_77;^oB2K_^8nEgxb0#%O{9r}Rouh){o>JSR+4g9+~;wz zjOJP3EuMR$>MJUmXMt}`pCIx(dg+q{U*w?`_$*GycFC}E9NyM;sPQcDP#1vLCvHH; z*G^^*5fs$Bm<;@sR^qYcv$og^m*?gPuZi`p(K|i}ItC?;ci+<^B%Z&NAoNo!(=@|a zm3Yff-N0=Z18RmK>SEsG0f1`)B)T41WZ)mVry-Ole|vCg9q8@CBnTnP%E~~XpXd(%Nj*N>q>UFh3axm7m_CA?SE00kjE2-{Io(qkh2 zNS3H{ZOzRLJ+lZL9gn33M5Dg2h(FwNnM(C7vL(dQveS$87I8~Ys@?9jd%u5^RyX+j zYN=SD>&dSPK7W@F#a*lmCpO&B3R&jSvK*WbhjBU+;nHfOtdZkVW zUB+=lDQ=D>4R%;)+HXXaq-Cvk*W*sO9E$kSfp8 z)jP2;$uPf2C+wWlHFnMj)DZyA7APlUIv++NL3r%0q@;w1Dat9R1u}Jm6JtwCwn2EN zj;^yrT7zD#SyvLWuczT-mgkrn)ecx%^tD}Yr-Mx}7kwa*G2&|yKvD+e+*J^;X>d!? zQP91=?!CD$FzJN|6_|noEaGyNu5FPDClEM5|CCnh!hur*F)bfG9MlPj$N4(fk^m}I z`gMHG)xW`El-U@B9_fszl7iJNEdc=CDtS}m3OcTBBgF=J0F}zf$l#&HQUL9-YLPf` zm=0}e*6M6o-k7|_eiXIvmwM)hv)sq;DV%(&Vt+lQ(X>dm`V_NXp}n$$0kO^^GWX@o zSJkKP0FTsAjz0o1D@9Zk?o@;6eK`e$@px119Mog531aZatjQj(3%kRg!$huR`WXtY zx|RwWFsc3oW`d7SF=dG0N@8ix0EjpiCUMFKvI(4FQV+AQ>|m$KPZCas?=O{57`dgS zm2A&?AG6aP8}r?eiK<-PJZU@HkskVVF~3N*oYU~zX~-J&rkmwaYa7iCVS>6Sa-H@T z)wQy$#7erHUDaZI5KR3Sh1#k=1vs(Sa;g-ND$pD;r=RZ>v2IQy=kD(kxIS{J21O^_ zMx>5|64a}v%}xqtpuPa{8_-w7q>M5+D;fR5i?RMCwqNe7JRtI|hs{6y)|Q92k$?FO z$^M`VAbQJmsPI*>W$)ex5)$Zw-nlELhmKzv@I6U{J-x6o~Hujg^;wHKnS? z=e5w?&e?!5KDVvqaS9pr7#2Gt^mYLm8;z8XI3r z*=D8PH~B#*YwTx5@eNHjJz;P*L6r^!9%_qv&ADUPD3fdB6^)5Dw3yFm!6{&oQ0w-_kl|Fm$Bs2 zPW~iQz?mpcspMSyx*+UTcp%%$??2%Kj9BIt-%yOHsa5UAL(a16KjU?#+S_O{l9+eb zv~x>I1A$1p>4bUP%ueCPcPylYuFImnF|5eH65<&c{+JjQ22efdfE2+FvuFoR7Knh| zrd&Ig?X3XT8M3m*q2*H$xp!o3mJ_w2s_0^=+g3nlI>$H+2C|ic+CqPSUy>J!%d!ZA z0=eBlz`mTL5=6~UNc2p+5_BBaqkbX*lS{=?vdq$@v%cNx) ztI`WgpLV#YNJ&Y)bza_viDER*BJlerAOc6_jIn@1)Lvm_ZSjJPd|dK3kj(%|kA&^+ z;Y_D<(uU6_elPiJI++KET0~h)lC9v#BocX#iE7Wb3Nfc+u^+f~cjV2O1Xj7fi^723 z200*k`%Byy-0Grnb)EtKsk5`*=UrA&2f2S2aVielcxT+Lq{}n;knyg)!k0X|onq57f0HhM*KZ`iHTKawT}$6egC?Q zDZu%wd`7yzUK!^fs(>(!U%k(NxnEl)c}V%VOkX;~;CBQ~G+lmeK5-@D_f}d(#gG-X zo&cO-0#}p$FIo7`fU}G#%pO8Rpxtd;8umh3x}t8JboSkw2o#Y|{;&oEf|K+DefT1P z{25N0Np|pPym!qi;Wcbp{KNGzk-CB}q~|^b0(y>5>5Z^Td9{WzbJ}enDtUBSsE?43 z`@`DyNRrR7PJn%%f&&01qGW`j=dQRk2LY+RSx zye4q?lB__STEHSkabN4xuC+GoWNIUNYJZN#&q&O3fc&g%BB*r~g0P8vWwN+HE>BXXJX-n6Vu+4(w7S~$ zB@+ey+w(xKlmusp?tR+dsV`_8*>cKAfp5l7_F2|O2|Lb{*yXP6i!*`~E z@48P)G-t!PvpETSWj>rW_u@HI>V-%aoSq20M9}6lv4|EwyG|+PQrp0r=K~~CFG$Xc z3GddMW(q@Gt}L+w0wST*j^u^2c4?02bS!Tp01*PjqzF5DeV_J!$g(_gW@-EEiVr0EX*UG3A9Lv%{+ORSj z31ExY(&bFaMge@)8XIBPz+hXD<-K&CO4TYZKNm3uxldi4|Z2*IAx<;-M;0GHEo|gv~rU6zvi(X-d^%Y(f{>j1?wv(pW;He;(#*%hE9rl zcuTy{B*V~uj|1IdS;P2%8*!pcc+S_QHjLexg-==HJuDv{OHqA1o5s+{Dkbni`@b54 zjDXj#|Mi3!1=uN+ooPE>&ojb_=x;avb--u$@G1@$4*j>X&j2HWyG_aX{1%9!NTedd z2@!9}!q4uRT!70-r3o)Z<>E&_b|~{dl~GEyOgr`>`fr)n8c6kq%l~&rBWh??i}2|u z3VMVH8+!h02K<&~>G>+{KiyMGMZ~c`{bvk;Dq6oc{7>49por3VQK6vWWJNgrla|m{ z`FAWNvwK|hs2ctUs8RbZ<$9~U{;z$|k8Hq}U#Fm9$-~h}wssTc#372+1*8PcmOdQA z$IEnL3~*|_-M5kxlolI;u{-V1@>09+G*CCdm@=ki!aX%b!D7g;7-4nHQT5hmJzzF> z+b@(h+0%3WS)z`fUfn4cxD~tr)_D7y$Rb7qkab1^4Sdn%37v^2D!rrYXXLDx>}#vH zh9)65;MM)t3m|Uc+L2$h42U<23t?B*^6lI1AMa~uXow_sd|XG;j{v_H@V&4%w;o(d6wlt$H3KQ2Y|HfDx5et zILIH*=6rCZ1zs&9yD|x{MSl6$M;0Y>z}uCe5nykBf6|6I6VJ}AzF$)=nPs-qs~NMV z>M+pLPECUM{5YqgS-{Gg|WNb)mpK2df^lF8VQQGd|@b zvOT&0$X2b0U9*hrWEb@ctHw3gw{;++wgKv;deh*d+$<9o5XW~v+y?cdugyD?gwvR} z8oU>y0}Bo!GS03P+|HU*vg9o(DTm!Ue$U1u=OLJRI%Fs7IN zRCe)I^?==6OHTNcZ~P%hQWJaFHuOWnd5IP>jBpkP#IMNaJ7@qGB>URNq_m{-$JK@JpMgHF=Voi@dv}%R zA;infeTIuB9uksW)mcuVIHQQ0o12Ex^R0l5#xdcC5#E6P7ax5YS8nSuZC=5A)xJIS z^7h_StM_ncZ2V(u(45BGtDTIIw2)wWWh>{wjdy72{ z`kHl5>sUC)32ATiL;&&?Y-=H&(Q$XjQn6-BZT<;lxCU?w2Ymp~46qmj0}fr&(}5i9 zeUEK%JGHH2Up>0)Tn{dKsm_3V1ybh!Mkwrx+(z_nSP3)5$)Uh!n!7NzgQj9gDhUZN z0%6W0Yh_$R1+9jG2=C!2nrS86BCHB(L}jBkV9#X3>50SyY#JXU7+E4V0PUYa$i@eC zgn%?ev)N2QV+Ch};p<*?+QHAsF9tn`o+rH(-zm(_^$zS;OrpueKIf5;u66g z;@APCRQdyk%MGM;aLc{0poNSanguKGnpXHL?_-emr^|*4vxgoeIQ zZa0Dte=9$~qwV={c(ZbIXa^lvT3X2~X`op5u&WYrMW;T0DUesOU#8OeR}^qkgZ

Yg4?6Zjfe^ZLYKsP+ZS7PwDo1Tf39dcK#{+a= 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 literal 0 HcmV?d00001 diff --git a/docs/images/TagTaskActivityDiagram.png b/docs/images/TagTaskActivityDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf347f3610e7a8558611af3fab21087543dce36 GIT binary patch literal 12126 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 literal 0 HcmV?d00001 From f1d1fc58a5ccf7fc2fd6ba29e2a4766aa2617f2a Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Thu, 24 Mar 2022 23:25:54 +0800 Subject: [PATCH 208/507] Update DG for TagTask section --- docs/DeveloperGuide.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index bde984879ff..95ad32d70c3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -194,17 +194,17 @@ The following activity diagram summarizes what happens when a user executes a ne #### What is Tagging Task to Employee feature about? -The Add Task mechanism is facilitated by `AddressBook`. -This feature enhances `AddressBook` by allowing to Additionally, the feature implements the following operations: +The Tag Task mechanism is facilitated by `AddressBook`. +This feature enhances `AddressBook` by allowing users to assign multiple `Person` to a `Task`. Additionally, the feature implements the following operations: * `AddressBook#tagTask(Task,Person)` —  Assign `Person` to `Task` -* `AddressBook#unTagTask(Task,Person)` —  Deallocate the `Person` from `Task` +* `AddressBook#untagTask(Task,Person)` —  Deallocate the `Person` from `Task` For the command, the feature extends `command`, and is implemented as such: * `tagTask INDEX name/PERSON_NAME` * `untagTask INDEX name/PERSON_NAME` -#### Implementation Flow of Task Adding feature +#### Implementation Flow of Tagging Task to Employee feature Given below is an example usage scenario and how the Tagging Task to Employee mechanism behaves at each step. @@ -218,9 +218,9 @@ Step 2. The user executes `tagTask 4 n/Alex Yeoh` command to assign `Alex Yeoh` #### Design considerations: - The Tagging commands are efficient for users to assign a `Person` to be in-charge of a `Task`. - The Prefix allow users to simply input the name of the `Person` from ManageEZPZ. -- At one glance, users will be able to see the `Task` assigned with the `Person` immediately after tagging. +- Users will be able to see the `Task` assigned to `Person` immediately after tagging. -#### UML Diagram for Adding Todo Task +#### UML Diagram for tagTask Command The following activity diagram summarizes what happens when a user executes a new `addTodo` command: From ceb34d12d47a2d5c40759cd1fe06c7165b858872 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 00:22:33 +0800 Subject: [PATCH 209/507] Implement Priority Tag Command --- .../manageezpz/commons/core/Messages.java | 1 + .../commands/TagTaskPriorityCommand.java | 62 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 21 ++----- .../manageezpz/logic/parser/CliSyntax.java | 1 + .../parser/TagTaskPriorityCommandParser.java | 49 +++++++++++++++ src/main/java/manageezpz/model/task/Task.java | 5 +- 6 files changed, 120 insertions(+), 19 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index cc56934272d..bba1d2129f1 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -8,6 +8,7 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty \n%1$s"; + public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty \n%1$s"; public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task Number field cannot be empty \n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java new file mode 100644 index 00000000000..c4dd8b10fb2 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -0,0 +1,62 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; + +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.task.Task; + +public class TagTaskPriorityCommand extends Command { + public static final String COMMAND_WORD = "tagPriority"; + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Tag the Task to your specified Priority " + + "Parameters: INDEX (must be a positive integer) " + + PREFIX_PRIORITY + "LOW/MEDIUM/HIGH" + " (This must be strictly followed!)" + + "\r\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + PREFIX_PRIORITY + "HIGH"; + public static final String MESSAGE_SUCCESS = "Task has been tagged with the appropriate priority!"; + public static final String MESSAGE_DUPLICATE_TASK = "This Task has already been assigned to the same person!"; + + private int index; + private String priority; + + /** + * Constructor for TagTaskCommand + * @param index index of the Task to be tagged. + * @param priority Priority level to be set for the Task. + */ + public TagTaskPriorityCommand(int index, String priority) { + this.index = index; + this.priority = priority; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + Task task; + try { + task = model.getFilteredTaskList().get(index); + } catch (IndexOutOfBoundsException e) { + throw new CommandException("This Task Number is invalid. \r\n" + + MESSAGE_USAGE); + } + + String currTaskPriority = task.getPriority().name(); + if(currTaskPriority.equals(Task.Priority.NONE.name())) { + try { + task.setPriority(priority); + return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + } catch(NullPointerException e) { + throw new CommandException("Priority cannot be NULL! \r\n" + + MESSAGE_USAGE); + } catch(IllegalArgumentException e) { + throw new CommandException("Priority is invalid, Please use one of the three Priority! \r\n" + + MESSAGE_USAGE); + } + } + return new CommandResult("Tag Priority Command did not go through, try again :( \r\n" + MESSAGE_USAGE); + } + +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 645c519353d..bb0a11df82e 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,23 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.AddDeadlineTaskCommand; -import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.AddEventTaskCommand; -import manageezpz.logic.commands.AddTodoTaskCommand; -import manageezpz.logic.commands.ClearCommand; -import manageezpz.logic.commands.Command; -import manageezpz.logic.commands.DeleteEmployeeCommand; -import manageezpz.logic.commands.DeleteTaskCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; -import manageezpz.logic.commands.MarkTaskCommand; -import manageezpz.logic.commands.TagTaskCommand; -import manageezpz.logic.commands.UnmarkTaskCommand; -import manageezpz.logic.commands.UntagTaskCommand; +import manageezpz.logic.commands.*; import manageezpz.logic.parser.exceptions.ParseException; /** @@ -100,6 +84,9 @@ public Command parseCommand(String userInput) throws ParseException { case UntagTaskCommand.COMMAND_WORD: return new UntagTaskCommandParser().parse(arguments); + case TagTaskPriorityCommand.COMMAND_WORD: + return new TagTaskPriorityCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index df5185395f8..5582bbc2bb6 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -18,4 +18,5 @@ public class CliSyntax { public static final Prefix PREFIX_TIME = new Prefix("at/"); public static final Prefix PREFIX_TASK = new Prefix("task/"); public static final Prefix PREFIX_DATE = new Prefix("date/"); + public static final Prefix PREFIX_PRIORITY = new Prefix("priority/"); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java new file mode 100644 index 00000000000..6e3e9700907 --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -0,0 +1,49 @@ +package manageezpz.logic.parser; + +import manageezpz.logic.commands.TagTaskPriorityCommand; +import manageezpz.logic.parser.exceptions.ParseException; + +import java.util.stream.Stream; + +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; + +public class TagTaskPriorityCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand + * and returns an AddDeadlineTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public TagTaskPriorityCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimapPriority = + ArgumentTokenizer.tokenize(args, PREFIX_PRIORITY); + if (!arePrefixesPresent(argMultimapPriority, PREFIX_PRIORITY)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + TagTaskPriorityCommand.MESSAGE_USAGE)); + } + if (argMultimapPriority.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, + TagTaskPriorityCommand.MESSAGE_USAGE)); + } + String enumString = argMultimapPriority.getValue(PREFIX_PRIORITY).get(); + if (enumString.isEmpty()) { + throw new ParseException(String.format(MESSAGE_EMPTY_PRIORITY, + TagTaskPriorityCommand.MESSAGE_USAGE)); + } + String[] argsArr = args.trim().split(" "); + int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); + return new TagTaskPriorityCommand(index, enumString); + } + + + /** + * 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/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 1b0a16862cd..0bef3e42063 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -17,8 +17,8 @@ public class Task { protected String type; protected Priority priority; - enum Priority { - LOW, MEDIUM, HIGH; + public enum Priority { + NONE, LOW, MEDIUM, HIGH; } // Identity fields @@ -40,6 +40,7 @@ public Task(Description taskDescription) { this.isDone = false; this.type = ""; this.assignees = new ArrayList<>(); + this.priority = Priority.NONE; } /** From ea8806d2f45d0138d173f09a27eacd47a11a8c65 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 00:49:19 +0800 Subject: [PATCH 210/507] Implement Priority Tag Command, Logic, Parser, Storage --- .../commands/TagTaskPriorityCommand.java | 27 +++++++------------ .../logic/parser/AddressBookParser.java | 19 ++++++++++++- .../parser/TagTaskPriorityCommandParser.java | 2 +- .../manageezpz/storage/JsonAdaptedTask.java | 3 +-- 4 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java index c4dd8b10fb2..0c7bca127e2 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -11,13 +11,12 @@ public class TagTaskPriorityCommand extends Command { public static final String COMMAND_WORD = "tagPriority"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Tag the Task to your specified Priority " + "Parameters: INDEX (must be a positive integer) " - + PREFIX_PRIORITY + "LOW/MEDIUM/HIGH" + " (This must be strictly followed!)" + + PREFIX_PRIORITY + "NONE/LOW/MEDIUM/HIGH" + "\r\n" + "Example: " + COMMAND_WORD + " " + "1 " + PREFIX_PRIORITY + "HIGH"; public static final String MESSAGE_SUCCESS = "Task has been tagged with the appropriate priority!"; - public static final String MESSAGE_DUPLICATE_TASK = "This Task has already been assigned to the same person!"; private int index; private String priority; @@ -42,21 +41,15 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException("This Task Number is invalid. \r\n" + MESSAGE_USAGE); } - - String currTaskPriority = task.getPriority().name(); - if(currTaskPriority.equals(Task.Priority.NONE.name())) { - try { - task.setPriority(priority); - return new CommandResult(String.format(MESSAGE_SUCCESS, task)); - } catch(NullPointerException e) { - throw new CommandException("Priority cannot be NULL! \r\n" - + MESSAGE_USAGE); - } catch(IllegalArgumentException e) { - throw new CommandException("Priority is invalid, Please use one of the three Priority! \r\n" - + MESSAGE_USAGE); - } + try { + task.setPriority(priority); + return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + } catch(NullPointerException e) { + throw new CommandException("Priority cannot be NULL! \r\n" + + MESSAGE_USAGE); + } catch(IllegalArgumentException e) { + throw new CommandException("Priority is invalid, Valid Priorities are: NONE/LOW/MEDIUM/HIGH \r\n" + + MESSAGE_USAGE); } - return new CommandResult("Tag Priority Command did not go through, try again :( \r\n" + MESSAGE_USAGE); } - } diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index bb0a11df82e..28043a07dd7 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -6,7 +6,24 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import manageezpz.logic.commands.*; +import manageezpz.logic.commands.AddDeadlineTaskCommand; +import manageezpz.logic.commands.AddEmployeeCommand; +import manageezpz.logic.commands.AddEventTaskCommand; +import manageezpz.logic.commands.AddTodoTaskCommand; +import manageezpz.logic.commands.ClearCommand; +import manageezpz.logic.commands.Command; +import manageezpz.logic.commands.DeleteEmployeeCommand; +import manageezpz.logic.commands.DeleteTaskCommand; +import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.HelpCommand; +import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.MarkTaskCommand; +import manageezpz.logic.commands.TagTaskCommand; +import manageezpz.logic.commands.TagTaskPriorityCommand; +import manageezpz.logic.commands.UnmarkTaskCommand; +import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 6e3e9700907..c03e3883954 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -35,7 +35,7 @@ public TagTaskPriorityCommand parse(String args) throws ParseException { } String[] argsArr = args.trim().split(" "); int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); - return new TagTaskPriorityCommand(index, enumString); + return new TagTaskPriorityCommand(index, enumString.toUpperCase()); } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 0853d5e4b30..fee80fb42e5 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -35,7 +35,6 @@ class JsonAdaptedTask { private String tag; private String priority; - /** * Constructs a {@code JsonAdaptedTask} with the given person details. */ @@ -66,7 +65,7 @@ public JsonAdaptedTask(Task source) { description = source.getDescription().toString(); // Generally for all tasks type = source.getType(); // Generally for all tasks status = source.getStatusIcon(); // Generally for all tasks - this.priority = String.valueOf(source.getPriority()); // Generally for all tasks + this.priority = source.getPriority().name(); // Generally for all tasks if (source instanceof Deadline) { this.date = ((Deadline) source).getDate().getDate(); // For Deadline this.deadlineTime = ((Deadline) source).getTime().getTime(); // For Deadline From e0a69aa89a6e75b195c2c2f1ca7b3f4dee36743c Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 25 Mar 2022 01:07:09 +0800 Subject: [PATCH 211/507] Update the Developer Guide The current Developer Guide only reflects the implementation of the previous AB3. It needs to be updated to better reflect our product. Lets: * Add additional implementations that we've added/modified to our product --- docs/DeveloperGuide.md | 45 ++++++++++++++++++++++++ docs/diagrams/FindTask.puml | 66 ++++++++++++++++++++++++++++++++++++ docs/diagrams/List.puml | 61 +++++++++++++++++++++++++++++++++ docs/images/FindTask.png | Bin 0 -> 49759 bytes docs/images/List.png | Bin 0 -> 42228 bytes 5 files changed, 172 insertions(+) create mode 100644 docs/diagrams/FindTask.puml create mode 100644 docs/diagrams/List.puml create mode 100644 docs/images/FindTask.png create mode 100644 docs/images/List.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 57acfecd280..22c952b921f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -184,6 +184,51 @@ A `Task` contains the following attributes, * Cons: Prone to error as a Component might not be correctly changed +### **The `Find` command** +- The ``Find`` command has two seperate arguments `task/` and `day/` +- The `task/` argument has an additional `desc/` as a keyword which is the search term to search for all the tasks that +contains the keyword +- `day/` arguments searches for either the deadline or the event that has this date as the deadline/ event that will +be held + +#### How it is implemented +1. When the user enters the find command, the FindCommandParser searches for either the `task/` or the `day/` argument +2. Then, the FindCommandParser will self invoke either the `findCommandTask()` or `findCommandDate()` respectively. +3. `findCommandTask()` will return the FindCommand that searches for all the task which contains the given keyword whereas `findCommandDate()` searches for deadline/event with the given date +4. The FindCommand will execute and update the Model with the updateFilteredTaskList where the filtered task list will be updated with the tasks that statisfy the predicate +5. After execution, the FindCommand will return the CommandResult that contains a string of the outcome of the command. + +#### Sequence diagram when a user enters the command `find task/ desc/ Genshin` + + + +#### Improvements needed +* As we are also listing employees as well, we also need an argument that searches for the number of people instead +* In v1.3, as priority tagging is implemented for all tasks, we also need an argument to find all tasks. +* For employee searching, we can also implement more arguments to search for an employee using the employee's components +as the search term. + + +### **The `List` command** +- The `List` command shows all the tasks in the list. +- It has arguments such as `todo/`, `deadline/` and `event/` which searches for all todos, deadlines and events respectively. + +#### How it is implemented +1. When the user enters `List`, the ListCommandParser will simply return a ListCommand +2. If the user enters additional options such as `todo/`, `deadline/` and `events/`, ListCommandParse will then check if the user enters a valid option. ListCommandParse will throw an ParseException if the user enters an invalid option, or more than 1 option. +3. When the ListCommand is executed, it will update the model to show all the task in the task list +4. If options are provided, the command will update the model with all tasks with the specified task type. +5. After execution, ListCommand will return a CommandResult that contains the message of the outcome of the command + + +#### Sequence diagram when the user enters `list todo/` + + + +#### Improvements to be added +* We feel that the options may be better suited for the find option +* The tasks needs to be updated into the UI. + _{more aspects and alternatives to be added}_ ### \[Proposed\] Data archiving diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml new file mode 100644 index 00000000000..37154ea41be --- /dev/null +++ b/docs/diagrams/FindTask.puml @@ -0,0 +1,66 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR +participant ":FindCommandParser" as FindCommandParser LOGIC_COLOR +participant ":FindCommand" as FindCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("find task/ desc/ Genshin") +activate LogicManager + +LogicManager -> AddressBookParser : parseCommand("find task/ desc/ Genshin") +activate AddressBookParser + +create FindCommandParser +AddressBookParser -> FindCommandParser +activate FindCommandParser +FindCommandParser --> AddressBookParser : :FindCommandParser +deactivate FindCommandParser + +AddressBookParser -> FindCommandParser : parse(" task/ desc/ Genshin") +activate FindCommandParser +FindCommandParser -> FindCommandParser : findCommandTask() +activate FindCommandParser + +create FindCommand +FindCommandParser -> FindCommand +activate FindCommand +FindCommand -> FindCommandParser : :FindCommand +deactivate FindCommand + +FindCommandParser --> FindCommandParser : :FindCommand +deactivate FindCommandParser + +FindCommandParser --> AddressBookParser : :FindCommand +deactivate FindCommandParser + +AddressBookParser --> LogicManager : :FindCommand +deactivate AddressBookParser + +LogicManager -> FindCommand : execute() +activate FindCommand + +FindCommand -> Model : updateFilteredTaskList() +activate Model + +Model --> FindCommand +deactivate Model + +create CommandResult +FindCommand -> CommandResult +activate CommandResult + +CommandResult --> FindCommand : :CommandResult +deactivate CommandResult + +FindCommand --> LogicManager : :CommandResult + +@enduml \ No newline at end of file diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml new file mode 100644 index 00000000000..8c93e50ae74 --- /dev/null +++ b/docs/diagrams/List.puml @@ -0,0 +1,61 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR +participant ":ListCommandParser" as ListCommandParser LOGIC_COLOR +participant ":ListCommand" as ListCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("list todos/") +activate LogicManager + +LogicManager -> AddressBookParser : parseCommand("list todos/") +activate AddressBookParser + +create ListCommandParser +AddressBookParser -> ListCommandParser +activate ListCommandParser +ListCommandParser --> AddressBookParser : :ListCommandParser +deactivate ListCommandParser + +AddressBookParser -> ListCommandParser : parse(" todos/") +activate ListCommandParser + +create ListCommand +ListCommandParser -> ListCommand +activate ListCommand +ListCommand -> ListCommandParser : :ListCommand +deactivate ListCommand + +ListCommandParser --> AddressBookParser : :ListCommand +deactivate ListCommandParser + +AddressBookParser --> LogicManager : :ListCommand +deactivate AddressBookParser + +LogicManager -> ListCommand : execute() +activate ListCommand + +ListCommand -> Model : updateFilteredTaskList() +activate Model + +Model --> ListCommand +deactivate Model + +create CommandResult +ListCommand -> CommandResult +activate CommandResult + +CommandResult --> ListCommand : :CommandResult +deactivate CommandResult + +ListCommand --> LogicManager : :CommandResult + +@enduml \ No newline at end of file diff --git a/docs/images/FindTask.png b/docs/images/FindTask.png new file mode 100644 index 0000000000000000000000000000000000000000..c70dde39b7eaa730b1764484b1c05994a98242f0 GIT binary patch literal 49759 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 literal 0 HcmV?d00001 diff --git a/docs/images/List.png b/docs/images/List.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe5f2e9445b1cc4a75b034f409a750a8540cf45 GIT binary patch literal 42228 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 Date: Fri, 25 Mar 2022 01:10:55 +0800 Subject: [PATCH 212/507] Fix Gradle Errors --- .../logic/commands/TagTaskPriorityCommand.java | 4 ++-- .../logic/parser/TagTaskPriorityCommandParser.java | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java index 0c7bca127e2..9025cbfde48 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -44,10 +44,10 @@ public CommandResult execute(Model model) throws CommandException { try { task.setPriority(priority); return new CommandResult(String.format(MESSAGE_SUCCESS, task)); - } catch(NullPointerException e) { + } catch (NullPointerException e) { throw new CommandException("Priority cannot be NULL! \r\n" + MESSAGE_USAGE); - } catch(IllegalArgumentException e) { + } catch (IllegalArgumentException e) { throw new CommandException("Priority is invalid, Valid Priorities are: NONE/LOW/MEDIUM/HIGH \r\n" + MESSAGE_USAGE); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index c03e3883954..78067517c1d 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -1,15 +1,15 @@ package manageezpz.logic.parser; -import manageezpz.logic.commands.TagTaskPriorityCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -import java.util.stream.Stream; - import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; +import java.util.stream.Stream; + +import manageezpz.logic.commands.TagTaskPriorityCommand; +import manageezpz.logic.parser.exceptions.ParseException; + public class TagTaskPriorityCommandParser implements Parser { /** From eb22f6d2201f1fcbe2bebc317d0ee1580b626be2 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 25 Mar 2022 01:14:04 +0800 Subject: [PATCH 213/507] Update Developer Guide and add PUML class diagrams and PNG images * Edit Developer Guide to include implementation for Mark, Unmark and Delete of tasks * Add PUML class diagrams and PNG images for Mark, Unmark and Delete of tasks --- docs/DeveloperGuide.md | 76 ++++++++++++++++++++++++++ docs/diagrams/DeleteClassDiagram.puml | 13 +++++ docs/diagrams/MarkClassDiagram.puml | 13 +++++ docs/diagrams/UnmarkClassDiagram.puml | 13 +++++ docs/images/DeleteClassDiagram.png | Bin 0 -> 11069 bytes docs/images/MarkClassDiagram.png | Bin 0 -> 12102 bytes docs/images/UnmarkClassDiagram.png | Bin 0 -> 12189 bytes 7 files changed, 115 insertions(+) create mode 100644 docs/diagrams/DeleteClassDiagram.puml create mode 100644 docs/diagrams/MarkClassDiagram.puml create mode 100644 docs/diagrams/UnmarkClassDiagram.puml create mode 100644 docs/images/DeleteClassDiagram.png create mode 100644 docs/images/MarkClassDiagram.png create mode 100644 docs/images/UnmarkClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 04d5ee42e37..b28a56273bc 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -155,6 +155,82 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. +### Task Marking feature + +#### What is Task Marking feature about? + +The Mark Task mechanism is facilitated by `AddressBook`. This feature allows the user to mark a task as done. + +For the command, the feature extends `command`, and is implemented as such: +* `mark INDEX` + +#### Implementation Flow of Task Marking feature + +Given below is an example usage scenario and how the Mark Task mechanism behaves at each step. + +Step 1. The user lists all the task by listing the task with the 'list' command. + +Step 2. The user executes `mark 4` command to mark the task `Watch Netflix with Mum` as done. + +#### Design considerations + +- The user is able to mark a task as done through the index specified in the list view. + +#### UML Diagram for Task Marking + +![](images/MarkClassDiagram.png) + +### Task Unmarking feature + +#### What is Task Unmarking feature about? + +The Unmark Task mechanism is facilitated by `AddressBook`. This feature allows the user to mark a task as not done yet. + +For the command, the feature extends `command`, and is implemented as such: +* `unmark INDEX` + +#### Implementation Flow of Task Unmarking feature + +Given below is an example usage scenario and how the Unmark Task mechanism behaves at each step. + +Step 1. The user lists all the task by listing the task with the 'list' command. + +Step 2. The user executes `unmark 4` command to mark the task `Watch Netflix with Mum` as not done yet. + +#### Design considerations + +- The user is able to mark a task as not done yet through the index specified in the list view. + +#### UML Diagram for Task Unmarking + +![](images/UnmarkClassDiagram.png) + +### Task Deleting feature + +#### What is Task Deleting feature about? + +The Delete Task mechanism is facilitated by `AddressBook`. This feature allows the user to delete a task. + +For the command, the feature extends `command`, and is implemented as such: +* `delete INDEX` + +#### Implementation Flow of Task Deleting feature + +Given below is an example usage scenario and how the Delete Task mechanism behaves at each step. + +Step 1. The user lists all the task by listing the task with the 'list' command. + +Step 2. The user executes `delete 4` command to delete the task `Watch Netflix with Mum`. + +#### Design considerations + +- The user is able to delete a task as through the index specified in the list view. + +#### UML Diagram for Task Deleting + +![](images/DeleteClassDiagram.png) + + ### **Task Components** - Added Classes into the model Component to encapsulate a Task. diff --git a/docs/diagrams/DeleteClassDiagram.puml b/docs/diagrams/DeleteClassDiagram.puml new file mode 100644 index 00000000000..bb22f41e00d --- /dev/null +++ b/docs/diagrams/DeleteClassDiagram.puml @@ -0,0 +1,13 @@ +@startuml +start +:User executes Delete command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. + +if (Command is Valid) + :ManageEZPZ deletes the [Task]; +else ([else]) +endif +stop +@enduml diff --git a/docs/diagrams/MarkClassDiagram.puml b/docs/diagrams/MarkClassDiagram.puml new file mode 100644 index 00000000000..f11e3ed1886 --- /dev/null +++ b/docs/diagrams/MarkClassDiagram.puml @@ -0,0 +1,13 @@ +@startuml +start +:User executes Mark command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. + +if (Command is Valid) + :ManageEZPZ marks the [Task] as done; +else ([else]) +endif +stop +@enduml diff --git a/docs/diagrams/UnmarkClassDiagram.puml b/docs/diagrams/UnmarkClassDiagram.puml new file mode 100644 index 00000000000..04a1446b8c1 --- /dev/null +++ b/docs/diagrams/UnmarkClassDiagram.puml @@ -0,0 +1,13 @@ +@startuml +start +:User executes Unmark command; + +'Since the beta syntax does not support placing the condition outside the +'diamond we place it as the true branch instead. + +if (Command is Valid) + :ManageEZPZ marks the [Task] as not done; +else ([else]) +endif +stop +@enduml diff --git a/docs/images/DeleteClassDiagram.png b/docs/images/DeleteClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9247a1136da3f4ffed920fde1994f4e3c3e02ac0 GIT binary patch literal 11069 zcma)iWk4Ly@-1#5xDy}&g1bwQz~T!eSa4a~3GNcyA-D(I1a}D@+--xq1ef3rZ}{DN z|MI@P_o;WMx~qG7YNk(}I^iFbWL{#BVZgz`y_Ay$sQ~Q>92`6)8Upa^_pnJT&@ehn zX*wI*J9yZbnmNPCnA({-8abPqyoPwZws3ZK5MpO{urac8cCoc#Gq$(If=O1rcr|0+>rcAy&`FyMV9 zLhJv-ED$4Mfoki~5WIY?gVl&;U7C4lj^a${WU@Fh1zShAp}!ZNIz#MjASP5+r`-{0 z=!&E$x zU1`+N;|$KW(cY6kk`$El<-qRXKt#0V_j^{xA9$K$BSH14Odq9p%SK!LKXVT&J90}dzqM_JgK%G_3wRSTjd;Uf zqzpj{?S`y?C-zYe^j^(f|1b;Hoj`r24>1?LC6^dJ32(2DSrI*#-Wg5rL~!nx%TZ3 z8pEaN={%Myj*eV?+PaJb)6~$B4+(UN-5u%Q(s`|=Wn`R6i%LfAabZv(G!8JlG`xr)@TyUXxmzw+H7>l+CTJdb=ed zxUwlL%P5QIq0F?j1y)nV5Z|}J1`k%74v~zLMThtf)c}vN#^v_hG6+XsUmw_6!oW=W zO)oDm`=uuJ6#7iWFrghW;^y#FKAo^vDk>`D8*Bz`-m4t}M@L6>Olo%P>l!7HB$StA zn50}LQ^o30X5z#CTUk60{C23ov@cp&ZncAYCMG6+{ra`a>%K)@reJ+&<5TdfM*<6l zXK{y;?jPT;@!&c8$W~ECG|`}eW-Mqp{bI_pz$CnN-+>?sS`9Fc4wDe}5=@;Q)+S*1 z@ZkfFg|z)kR8P8&Y-%Vg?yYtVuf*oH>5BhumXopNDR z?pi4k=kjc^(dnmcN6$Rx)HB+-Bx zTgjICP>%3~TXv7%QhIheTSgA_N6qKVT=h*IQD{sE^PY&CnVI<-+akaO1@D&Ku{n8y zUzrdsv_=V(S!XchoG>yn-bB}ZhT3;iNz?mqy64yCnwUU!=8+6+KgOm;KmKEciDr_k z=Q>@&HYPQ`#;4iE+Ec>8as%lP=j)hRSy`W!gDo?6XVXPgmr3busY%m*5*-Wj)JkJt zj;=>VMR|LAeZz(3Ec^X<`f2?3Ve!2gqVVO-J6qh?Z}ty!-soZCr}-s(o#%m0#J|o9 z$44eF}Xt>N(J*LF}ihK#-C{TT0439+3E9V&h&gG>&3U&DVFUqQYR(o0a~wpA1k9+C#JuTgt^ySs>qKg6 zgnTAXipEGpWlXg2}9VmbnD{GN=tj?*Ve#? zx7E?a>YXn&yV43xtv4PgRq|Qa=$6V2{FaV4V82GnFfV)U+bLG}=j(0l{tW&x;^bs@ zJJx?X9ZCu&#?Qx+iAC}7Y}1DhEA(TdrS_$0SFOW@T&yreju+)lFMaV}&Q_b&Tja== zad1RO182`xjd@>JXL3_>dnXsYGNtRO$?Qg7(Lw`zCZ8>>0aEtW(c2gM@t)a&_;W2D zlAA4$o)2f+`KCUG9gy8gMgg^py(v6ixzsK6Ie8Ou_A*d9jZOw{;bOr8ukU@FdI?m- z+nuB~nw&pqhR;e(EECT{uqj;7Ni-zzZz=blzb3;wZ_@NCm;F}`V=3tzYgsa}F=!%v zQKXfwhnSfWva(m<{TPU_rKY-HMzXTA=Y3R+E$4MJ`o6bnPyBah+kN}fWdp=NUG{}P zid1LMmL1OXK5Zsk5qLY0*sUlLXcP|D+5j7xqCq_pUpA7iVmEnMtk;aPpFLqTQ>-36 z)9XrCEI}sqZUuyDN75png6Ek>V=gi=CUzXh##W8c#Z&&F(@5AA-%*nc^_y{D@>_WV znb9ia1ue6IuWxnr(WF@LcMoh%Ud~l#H$JZKv$r3p{bke`CVVKVWFnS=nli`Rw$$QT z#@N_SCpsqB5#PTT!|Nw@?eaE1O%Jxr$8tM9l3@r_C5sPnU@W4ypG=@%c|l=P*1-|2 zpAZZ`JenPifFXgZ+sSADSnYWse_%b5u3jjnH*kcdrF;%MT;R{)GEM!WJXK8iSuIGg z#kbpUGLTjWo%`d)&v3HgFZRjFWr`kpgU`<+xQ*0EQi(Ens`$Z=#&iuIYRVmKd0>P@ zOH%t9M@1jwrI})rw@1UldjjnMqub`=w%v&?{H1LJze4KeL)dpjs*k*uDxXU9zGUmT z_lrHcJ4lBRjgs^G#sr`ZB`#5@DF2SVj_rYMk4g>PcA#J%Rog8^A)?lwHsV{$kmE>o z9H zn%euCFoh0@kji`9z=IL#L?Ib0{qAAqsg2bOCs@NUHN=wVg+qL29p0O7N)18V-wTlV ztf%2p=tBsGK@nhS(kQ(mEfzwG3vCeL$gj-5ts+Q zoKTcy(@NlQNb*lxLiKxE`O;7`dn~0SZA~ym&O=>&m`ul3S&RwUWcwGBYmnt# zfB$gZQkKk){t+$?&Z;3)Rc1J%Xqs2%bc2&LO)J^uDXhHld-)SmAGeR7bA@keDh{>n zThg>$SI+^6e}PVI?+Mu4TqN47(CzDtgC+AoKe(3O4Li8m<#)aJr|&SqY)b~GGA#4i zx>-0&9l%-@Xdeq}s-L*A{cTnE`1lyp;+KxDchSZlBBOqKyD=zc_w5Z0caQJAC;Tnw zuu^$KE;J~}-%>_&yYph_d&!!q@X_N{M;||yEV-hzS-;XqMnz71=>`K_v=SLlAkZ(C zLCw>lwA?wgalZA~v|BDiNt&*jzMWEt$0V~Y6lHut60TM{9~Xr(#=}mRL6=TN64J%w z`rgplCXd}^)+B^w|1q9hfoLB!xZGB=|Cc{je?s8O@f!jqM$matIBK3ZokgT)hie1H zW!K_OJCa??TaVUy)w#Mx|1;mA-K@RWYoQfe#}{Np%tu8}bLD@UwcB4xeDnCdwtB_! zc`Z@mJa8Xb;x1JY9ysZO)sD;CtK;I)%e38={KK21tVu@vQ+vh@$#xqX1^U|Al^Nbl z3oMMUf3tmrSNOD_W0zC)f!q4zax5jtyGl*i>!;l)27Prrw*!kyzIV@!lG!}($_~#0 zY2Qw20M~wo7G|_JN5YEucKVQWIh?hwC=TJ9S#x@bq2X(55&X!^OpriM-R;5`;;JP-;bYH(JK7b9R;wmryiIXQ6^Wom@~9 zdfK5QdT-bq!j=*cAR@!j&ZI{Z!LGENVxZZ!P9?msl8g< z{}Y!s>&6Pk-6=!k1HBU?h+oesbl3h7x?N5Y`lKvAoF+{s*iYR2^?(5~@3?EQquMR` zY545m-q!H;;EV15f~7}+wNl#qx(hqUR~_c@)Bg*bmMurFd=24o>{g<^i%6}PCwU>A zxZ9s5oh}`UMf?vE#q^Vlb#dQ~;So{`470Qj#x*L)AWn^8*_QebIJLfzRWPBa*L(yVp=CR zH`njs;*+eb>`b|y2d)LBi0Ap)_E=X}*V59GsYvj}57lD3%s05>(uzdZqYxnJ)Y8OE zVpI(wF4L+(k)rawUMo`l?&#=f@}It?XcqX25xnMAx<4J=juvr`)b$hN;{Hy3GRRF> zuC+`kHD}|r)xjM%OGC3B&5Mm4JKu#-iTPqWh=_;)(LY}xho7Z%buh;*Ce|*W#5CaP zXg&q38h?Oc+Yx!m{X-Qw-K5zSI zvXFOD&;!Y4j_c0giK)i-0W8)&HkjxU{>GHyX=mcK^4QGD#h(;rRHR|!?6d9IKIB~Y z6Ugv(ih*nAcio@WLQ8mazCv7%$e9XBOlxZsJc2hmxm|NLAAN3}R}EIYDz3uuZ|9aw zXNJTGrx~m<_vzT|Du+`GtnX9`-J()0O7Se)cwK$^a$hjl`RV_BEBcqH2#&*tm5#K} zSo!SNq~zP$6n!R-WBqCdCjbI#)%4y!-sO^VOJ5zY2-3%fD`vC_xY~Gih17L*rAUET zP;D`8qRD4|&6Jk%5U7{yW_yfgKTPEKQT`G2KOJHh>%K6$J&&&j2X0N|--&p+zGJZ| zYQAI6lfJ!nZgjRJ#=APE0;QV{mZ$hJl}^M-wO?MH3GCGlPvx!~+s9+T!G7NQ&MRA& z=9GW<^>VFQEUEvSs`cJgdtqtoMz0h3a>@DntrRNkoFgjjm?2dn}Mi~yGvW7Z?da+xK!=Q|DOEgbQ?J*vM@*O zMP+KR^;HG7P;U6c%51?tdXXDeLCG(+(#bpz{&nm~>=r2|67Y7q|HXp6n}YoOaC@Ft zm-)@<69jDBABIM|jf_7TlzV@9m|;K5@xtgR_ys4ma<=q{jci1MeDZGQJBRI2iby5T zjoz_ftYOb9yI6hi&HlDbcgcO;Ch4NL(YHv=O0Wkp_#3g52-7B3kN6~BCJyj6S=VhJ zRo6nD^&?DKcs!h%FBL%dTz8j;VY7&WZEg9U=YNOeUk~AjoGvX6uAVmnfEv^kk}4f^ zHfK)5@vh9^NnHz?!BbQ+#pZE)J{v)pqfxA;w9{d;Q2#Su`a)8C%n7q>W`|5Fna8U5 zad6p-CBt7Lf1nfj_l*lx+EE9af@JpEQ}nHZ!nG-Cr*6@(04>kp-=%w%FnLgZ093 z0EJ@XC7b!7eklOpf%0y8Z5ej4YNh}48=_74&oziP>vQ||zgwy2|I`re|GU)#u9p#W zma$EEZ%ju5kHMntGjpLdwB|^}JJsV){bp;Y62vOiesK*2E_>OJfv$^ZNdp}Q&@b$v zM{*RL%ur7^QCVsy$H=ld=0mYFfR@1B$Ybc^&U!f4+S0aNWNw{^Nwv~bl>rO2Tir;F z(Cu~&|Ch(n3f*ijXK$06Q8;7!lC=iBHsX9^aV)djiLsf>))P_fxJ};sEzt+z?1BEE zyP{qMn)+mwY?9mzI~eoSg9??I8}4~dFeI4d>Y-S{5xTV$!v zpxIOX<|lb5r_b@VAYAMAMS!2KT%sK!Y1(g`M1<*}i5jUfnFuJ&SJU}*#z?R!ndE%x zo`~D@;o0`Z!z45zp0s*n<9p!Drpx=ZFWa+EE#BP5drV3xiI$0-p?G~8Bm z%CRzu`viL;X23BHFp6PioF>B_*%Yc}^j+!PBmUB&@;wCUED5R0Q`d(NdeX8B^3rB` z6r@~AIui;!8N;zP?GsxMs!rFe4?N8>r=mvv#55K$QQQyr6)XU~!~KFtp8R=4mO;@I zJgqw{xxc@EbJGO$dZ(BZ<2T`j;VUP}n4Ww|x(%?{?Jm=_GpEHr{1e?gKm&baFw8ZO zl|`e*ah?h*e*ej_VqiXxvWeQW+C@s6Ci)fU7qdYDm>c$k{{_JQ#PcOa4TG9*^cWa0 zGJkRi2nYxXkp)TxQGJVyCI~hg*@+tvfU)?tClw^|B@RP|2IUjX(k-T0_8AbxJfS|s zNXW=le-UY<#(QKUhD%>jaLq;S&KOhx)I9i+&~j6D>2yk$_Ui~0M~6bH7Qi0W+h#mm z8#jKbDg8;3Ek12wxzX!VkVZ#lpy5GSO*b!;TQG`2cgnAgXe?wA@<_O3WMmW`9*$N- zYIqwDiGK%;)D#vnsV0TZ7Bsn7ivkphrFYw{mCK*#VQlWEUSYSdaNTv*UcsX~mp~>8 zR2rO+&9zkZvv>;!dsFJZ;W0+4P^p5OzVXOdV1V~!B3QE7=H~||-XyT5QSz0}jAmKK z^=`+#S-O^{6d~K(z41)rVsE{7{NwNMvFO(mp}haQDBO;VY47R#YVt*kmz&@AsJ&W= zhUHQdY0Kz}pBRrtoZC-F(}`G7cZaZybk*-|>}B#M7+^_s%KVQJ%J6Q*kg>2_# z_379nH<{P8Nfp!{=$pkJ=9ke)mtk zqZo5vErSY1GWbDFQjya1NmIAS~Yuz3%A1XevclgW8Q~#DFEmU z=>`Za+_S%)pmjq1_O^tyI{N+YU{VgR?cU>zLD8T(r>fbl#`@>PWhEiH z)lo-ad6^aJ#cGWXZ=e#${0AS};?XF_Cm`*wCvhmT*QznHcj#x|d!BB3WuxQh>Hh$Q zuTKg|O*gxF`MT71r0G;a%6F<9hb^O!3k5=jU2VcE&=6xN@WtGJrTjt9CzM|@X&*fD zo9k`d3{J1JQf~&BBpY>VRWof*gKXaFx3KGjnF`p>#DnLh&5)DfGjYYey#bJ+jdZ8r zHMS3z-3|#CFaQsnft{Bpb80aUr$;i{UvYN!k(t|RvSYo&6G*1x>;0l)76w0_x;Mp4 zs;%Kl#iYid4Z2l#ed5OF4N0QLBp0l%0A^+G0Mm3xh;jNox@RMHxg&4$v&}uTM>p>M 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 literal 0 HcmV?d00001 diff --git a/docs/images/MarkClassDiagram.png b/docs/images/MarkClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2740b483b5728f28d780966e6a73f15c7f4e312c GIT binary patch literal 12102 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 literal 0 HcmV?d00001 diff --git a/docs/images/UnmarkClassDiagram.png b/docs/images/UnmarkClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c729b3a46b7af452732077c9a031a22f8fc4ddf6 GIT binary patch literal 12189 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%0A!%9hgvJ1C>$*4P z>gf1`nfC1X_$#k{hB8KD&NqXfg1Hp$ES~|=-z@G<4lJQTKrUB^_~X~Xf)m!%4W|e7 zD-Nukg3c#%aTcUrJ8nA|UG?gSFcL66w~r6k?)zwS_7)R3PQ~bEG>s{QS9t(B>yCs% z1D%j?JR&6q#gG6gD1hA6k#jrZ*m-#gY{}%sw{U;bMYikG8sWeC)k*NAQdLckvpA$A snQO86+lv~t2I2p&cmAKU=szL^nMF0)Xukphq5QLVl8O>#Vjlwk7bf?_MgRZ+ literal 0 HcmV?d00001 From 0ab336c2f01747bb3c0f2f040fe03ae6f47f1ec3 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 25 Mar 2022 01:17:26 +0800 Subject: [PATCH 214/507] Change URL of logic API to our project --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index fd120fe5dd8..87d079e50d7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -69,7 +69,7 @@ The sections below give more details of each component. ### UI component -The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java) +The **API** of this component is specified in [`Ui.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/ui/Ui.java) ![Structure of the UI Component](images/UiClassDiagram.png) @@ -86,7 +86,7 @@ The `UI` component, ### Logic component -**API** : [`Logic.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/logic/Logic.java) +**API** : [`Logic.java`](https://github.com/AY2122S2-CS2103-F11-1/tp/blob/master/src/main/java/manageezpz/logic/Logic.java) Here's a (partial) class diagram of the `Logic` component: From 61ea20094c3a3cba8cb36c7cf67b5daf50db98d1 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 25 Mar 2022 01:26:46 +0800 Subject: [PATCH 215/507] Update Developer Guide with screenshots --- docs/DeveloperGuide.md | 6 ++++++ docs/images/DeleteTask.png | Bin 0 -> 41060 bytes docs/images/MarkTask.png | Bin 0 -> 47963 bytes docs/images/UnmarkTask.png | Bin 0 -> 48246 bytes 4 files changed, 6 insertions(+) create mode 100644 docs/images/DeleteTask.png create mode 100644 docs/images/MarkTask.png create mode 100644 docs/images/UnmarkTask.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b28a56273bc..b071c492ee4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -172,6 +172,8 @@ Step 1. The user lists all the task by listing the task with the 'list' command. Step 2. The user executes `mark 4` command to mark the task `Watch Netflix with Mum` as done. +![](images/MarkTask.png) + #### Design considerations - The user is able to mark a task as done through the index specified in the list view. @@ -197,6 +199,8 @@ Step 1. The user lists all the task by listing the task with the 'list' command. Step 2. The user executes `unmark 4` command to mark the task `Watch Netflix with Mum` as not done yet. +![](images/UnmarkTask.png) + #### Design considerations - The user is able to mark a task as not done yet through the index specified in the list view. @@ -222,6 +226,8 @@ Step 1. The user lists all the task by listing the task with the 'list' command. Step 2. The user executes `delete 4` command to delete the task `Watch Netflix with Mum`. +![](images/DeleteTask.png) + #### Design considerations - The user is able to delete a task as through the index specified in the list view. diff --git a/docs/images/DeleteTask.png b/docs/images/DeleteTask.png new file mode 100644 index 0000000000000000000000000000000000000000..87ec51c46667f3db81341b22a7ab989ec889e63b GIT binary patch literal 41060 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

<^5-zgOp(q1GWTR3vd^qJ*WR9I%Y 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 Z%s#h#_ivA@gS*(Kte}1^NB;Js{{er{VUGX+ literal 0 HcmV?d00001 diff --git a/docs/images/MarkTask.png b/docs/images/MarkTask.png new file mode 100644 index 0000000000000000000000000000000000000000..12ade2740ebcadc6e3ff377152a234741a70713f GIT binary patch literal 47963 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ⅆ9y-JsNgI?^7|<)PzH4EG%+PoU~FG zoJwCeX1W10sny=70!z=8UQ~Z?Z))hqjBuPoJr2BHhY{}%gh4FgY0v%ViE<1Mrg~4*jQj-*cv@tvRnh^X!X+1dfnFdy3 zsv{jrj(IfKk5Fwx513BHER^@>BvzA1x&fbGba0?isVVmC_xHp{M<9e&=GskS#uKtm z5P?ZaZg_)6Z|G;1L0nhfEC?MCEKI--gSB$#x?1gG!?Np-%>DWK`69?)t;%k^b9#iR zXv2OUfw|%l(Ha-wk`|!Ad%v=>qDA%4w;p?Se~(a<`0quKKi<4?PfmAAAiTn`VG*B%$(f43a8V8Zohf@ zZ7V^oZn^7@FFz?MDM8sP)*jQFXO1SVUuUv@*#^Z4OHIo)CMG7xwR-WBiEq{2#N^A$ z%Cd5&y{bV*C0CEd z$!9#TI-2LB2qXrH1G)XU9`&Hr`36pRU!UJxVPzU{dh3+K>C>kRK-NDFkcpzxlvK{! zQyqIl9U>$nB@~RGEdrTyG^nt3N1TGm@i$)x&jVkrPvdYQh{*4n$8;Ge7TQ*qcx?YS z8=K*1HPV^)1r6WL2ie+?Jj&KnF{6px$9R_3*WLTX?wG}fsp9hU@@hDANErYH?6L9tJtjMj|3;@eqNwQ(#g9k*uyW@JMtA_lhOE-WwieI(ot z{7Q_p1v3m92YR6F>=0kq(@kU7Q3U(cU2A4PtTE{CkFaPUbFEvL8yg!9b#8qH+PvlN zZp-9r;K$ee@G|p!bmXNjT_7*#-J{UURoSJbEGhEZ`R$H?N>Ef+J(H8nU(Q8lBUXvj zDkEW;-BpQK74E}&+h?xbt+%$ZQ8Y_S*|*+hq_$gemEj(dfC8NRwXrBxATh_?Z2^6P zHhso7I;SY9$&_=n?9b-7K*@lagKO*|fVrLhhox)TnXXvBYR{rpC>%>U zMImbU_jzXme&c4{HsW8V~V6K7enIvnfgm(gSsMKKYQi~KF0rIV+ zq!gFVu9$KpQPdL?kiXS_CX;KDY%ySZG6;E}4#P-91o@5W{Y^f6@={rOIq0Grh>@Y< zcSiurKoo>1;nUWYZIqmxEOX#Mq^d7YQh}{v^`yA7z^XJ-n*?}$=fv%*R%EJ|oStP} z;7a(8Jzb9Lt-r8ltOH?~$){Z}*67-Xgz!L9b#!#Pa}-RHo?ah;ZGpIh={&2iVjzb= zinJIZ#J;VnbvJwSd|c~b6xUXW5_+JxRxYXWhsal(qSjf{x!TouJRQxSLU(C!Bk=)6 z*Pb;xn-bl@TzW8CC(SO9Fmb}!|vx}ti}MUO%W?S4F>yKI~r5I z1CG3uuAF3i_3Jo7A?ikQ*o|CICHf!L&cHYMIM`$ zPGLC!RcZrRx5>QK$q*(ed)m1GrWSd2%>+ef#ZjqpMkwO8BbGqDVW_Z!BwkT!ABO61#2=ro^?0M{2=R zS8n1YH8nKsLRNbFZM{uup4T^uBj>Y2VBGJHC2D(5^}M)*4Ol*kvt@Sbi!TT~-}mbuDIm+hAdEY~lPJ5&5Lb^Z9Mj{q^sDpgV5+Surhc2$xzz!uPZmbzAaSzeZe~V?{Qhr# zt{R69ZDHsiRZR0Ahc3a1-nR!JI4+FrEiczDHOpip5C|TR*Q6@khFsbiasc2$Hk!=y zL!nT`(GXGF@`II`nc0O47hG*@Y;@Dr{7%5Nm&d>a3IxDr#w>#by!)w?*s* zd=p)_(wAeBJTx? Date: Fri, 25 Mar 2022 01:28:07 +0800 Subject: [PATCH 216/507] Update DeveloperGuide.md Remove duplicated text. --- docs/DeveloperGuide.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 971f7d07045..46bb6df48db 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -176,14 +176,6 @@ A `Task` contains the following attributes, #### Design considerations: -#### Aspect: How the components within Task are added or changed -- **Current Choice**: [Proposed] Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. - * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed - * Cons: Less flexible, more steps needed in editing Task objects -- Alternative 1: Allow certain components within Task, like Time and Date to be mutable - * Pros: Less overhead as fewer objects are created - * Cons: Prone to error as a Component might not be correctly changed - #### Aspect: How the components within Task are added or changed - **Current Choice**: Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed From 58379e1c85019979ed79523a98b4bb9da08e2ce9 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 02:03:26 +0800 Subject: [PATCH 217/507] Fix Gradle Errors --- docs/diagrams/FindTask.puml | 2 +- docs/diagrams/List.puml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml index 37154ea41be..48c31e3c2fc 100644 --- a/docs/diagrams/FindTask.puml +++ b/docs/diagrams/FindTask.puml @@ -63,4 +63,4 @@ deactivate CommandResult FindCommand --> LogicManager : :CommandResult -@enduml \ No newline at end of file +@enduml diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml index 8c93e50ae74..a833d3afd68 100644 --- a/docs/diagrams/List.puml +++ b/docs/diagrams/List.puml @@ -58,4 +58,4 @@ deactivate CommandResult ListCommand --> LogicManager : :CommandResult -@enduml \ No newline at end of file +@enduml From 27a96cfb1f2134e326cf95c41db196cd135ea7e1 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 02:10:48 +0800 Subject: [PATCH 218/507] Fix Gradle Errors --- docs/diagrams/FindTask.puml | 1 - docs/diagrams/List.puml | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml index 48c31e3c2fc..a8e2d1d4c15 100644 --- a/docs/diagrams/FindTask.puml +++ b/docs/diagrams/FindTask.puml @@ -62,5 +62,4 @@ CommandResult --> FindCommand : :CommandResult deactivate CommandResult FindCommand --> LogicManager : :CommandResult - @enduml diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml index a833d3afd68..96e70c3c109 100644 --- a/docs/diagrams/List.puml +++ b/docs/diagrams/List.puml @@ -57,5 +57,4 @@ CommandResult --> ListCommand : :CommandResult deactivate CommandResult ListCommand --> LogicManager : :CommandResult - @enduml From 0377b22a9d0c55c0b6df8624f0b552d2a9a9a6e2 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 02:11:33 +0800 Subject: [PATCH 219/507] Fix Gradle Errors --- docs/diagrams/FindTask.puml | 2 +- docs/diagrams/List.puml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml index a8e2d1d4c15..23373574725 100644 --- a/docs/diagrams/FindTask.puml +++ b/docs/diagrams/FindTask.puml @@ -62,4 +62,4 @@ CommandResult --> FindCommand : :CommandResult deactivate CommandResult FindCommand --> LogicManager : :CommandResult -@enduml +@enduml \ No newline at end of file diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml index 96e70c3c109..3bbf6d8944b 100644 --- a/docs/diagrams/List.puml +++ b/docs/diagrams/List.puml @@ -57,4 +57,4 @@ CommandResult --> ListCommand : :CommandResult deactivate CommandResult ListCommand --> LogicManager : :CommandResult -@enduml +@enduml \ No newline at end of file From 651189600db28db749969d6ecaddc59c46f70578 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 02:13:34 +0800 Subject: [PATCH 220/507] Fix Gradle Errors --- docs/diagrams/FindTask.puml | 2 +- docs/diagrams/List.puml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml index 23373574725..a8e2d1d4c15 100644 --- a/docs/diagrams/FindTask.puml +++ b/docs/diagrams/FindTask.puml @@ -62,4 +62,4 @@ CommandResult --> FindCommand : :CommandResult deactivate CommandResult FindCommand --> LogicManager : :CommandResult -@enduml \ No newline at end of file +@enduml diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml index 3bbf6d8944b..96e70c3c109 100644 --- a/docs/diagrams/List.puml +++ b/docs/diagrams/List.puml @@ -57,4 +57,4 @@ CommandResult --> ListCommand : :CommandResult deactivate CommandResult ListCommand --> LogicManager : :CommandResult -@enduml \ No newline at end of file +@enduml From 894e344d85ab771bb2b89177a9c576c6a9044fdc Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Fri, 25 Mar 2022 02:43:49 +0800 Subject: [PATCH 221/507] Fix Gradle Errors --- docs/diagrams/FindTask.puml | 1 + docs/diagrams/List.puml | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/diagrams/FindTask.puml b/docs/diagrams/FindTask.puml index a8e2d1d4c15..4fe1d9555c2 100644 --- a/docs/diagrams/FindTask.puml +++ b/docs/diagrams/FindTask.puml @@ -63,3 +63,4 @@ deactivate CommandResult FindCommand --> LogicManager : :CommandResult @enduml + diff --git a/docs/diagrams/List.puml b/docs/diagrams/List.puml index 96e70c3c109..0a54643980e 100644 --- a/docs/diagrams/List.puml +++ b/docs/diagrams/List.puml @@ -58,3 +58,4 @@ deactivate CommandResult ListCommand --> LogicManager : :CommandResult @enduml + From ce9faad9163f7a881d7741b122569cdbd3aa8f1f Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 25 Mar 2022 11:56:46 +0800 Subject: [PATCH 222/507] Remove extra print statements --- .../manageezpz/storage/JsonSerializableAddressBookTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index 1fcc28605c1..50d478b8b54 100644 --- a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -26,10 +26,6 @@ public void toModelType_typicalPersonsFile_success() throws Exception { JsonSerializableAddressBook.class).get(); AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); AddressBook addressBookFromFile = dataFromFile.toModelType(); - System.out.println(typicalPersonsAddressBook.getPersonList()); - System.out.println(typicalPersonsAddressBook.getTaskList()); - System.out.println(addressBookFromFile.getPersonList()); - System.out.println(addressBookFromFile.getTaskList()); assertEquals(addressBookFromFile, typicalPersonsAddressBook); } From 39a6a0a6dd8ed6b42139cf55caff130e5bb4e2d1 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 25 Mar 2022 17:46:28 +0800 Subject: [PATCH 223/507] Modify list command Currently, list command has options to filter out the type of tasks which is better suited for the find command. The options are currently optional and hence, there no need for the parser to check for the options. Lets only make the parser to return list command, regardless of the user option. --- .../logic/commands/ListCommand.java | 66 +------------------ .../logic/parser/ListCommandParser.java | 37 +---------- .../logic/commands/CommandTestUtil.java | 17 +++++ .../commands/DeleteEmployeeCommandTest.java | 24 +++---- .../logic/commands/EditCommandTest.java | 38 +++++------ .../logic/commands/ListCommandTest.java | 16 ++++- .../logic/parser/AddressBookParserTest.java | 10 +-- .../DeleteEmployeeCommandParserTest.java | 4 +- .../logic/parser/EditCommandParserTest.java | 16 ++--- .../logic/parser/ListCommandParserTest.java | 39 ++--------- .../logic/parser/ParserUtilTest.java | 6 +- .../manageezpz/testutil/TypicalIndexes.java | 6 +- 12 files changed, 93 insertions(+), 186 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListCommand.java index 3b271598412..e9ab5580d74 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListCommand.java @@ -1,12 +1,7 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; -import manageezpz.logic.parser.Prefix; import manageezpz.model.Model; /** @@ -15,41 +10,6 @@ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; public static final String MESSAGE_ALL_SUCCESS = "Listed all Tasks"; - public static final String MESSAGE_TODO_SUCCESS = "Listed all Todos"; - public static final String MESSAGE_DEADLINE_SUCCESS = "Listed all Deadlines"; - public static final String MESSAGE_EVENT_SUCCESS = "Listed all Events"; - public static final String MESSAGE_TODAY_SUCCESS = "Listed all Deadline/Events today"; - public static final String MESSAGE_INVALID_ARGUMENTS = - String.join("\n", - "list: List down all tasks.", - "Only one argument allowed. No values after command", - "Valid Arguments: todo/, deadline/, event/, today/."); - private Prefix option; - private String messageSuccess; - - /** - * Constructor for List Command, without any arguments which shows all tasks in the task list. - */ - public ListCommand() { - messageSuccess = MESSAGE_ALL_SUCCESS; - } - - /** - * Constructor for List Command, with Arguments. - * @param option Arguments to show specific task. - */ - public ListCommand(Prefix option) { - this.option = option; - if (PREFIX_TODO.equals(option)) { - messageSuccess = MESSAGE_TODO_SUCCESS; - } else if (PREFIX_DEADLINE.equals(option)) { - messageSuccess = MESSAGE_DEADLINE_SUCCESS; - } else if (PREFIX_EVENT.equals(option)) { - messageSuccess = MESSAGE_EVENT_SUCCESS; - } else if (PREFIX_TODAY.equals(option)) { - messageSuccess = MESSAGE_TODAY_SUCCESS; - } - } /** * {@inheritDoc} @@ -57,25 +17,9 @@ public ListCommand(Prefix option) { @Override public CommandResult execute(Model model) { requireNonNull(model); + model.updateFilteredTaskList(model.PREDICATE_SHOW_ALL_TASKS); - String list; - if (option == null) { - list = model.listTasks(); - model.updateFilteredTaskList(model.PREDICATE_SHOW_ALL_TASKS); - } else { - list = model.listTasks(option); - - /*if (option.toString().equals("todo/")) { - model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_TODOS); - } else if (option.toString().equals("deadline/")) { - model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_DEADLINES); - } else if (option.toString().equals("event/")) { - model.updateFilteredTaskList(Model.PREDICATE_SHOW_ALL_EVENTS); - }*/ - } - String result = String.join("\n", messageSuccess, list); - - return new CommandResult(result); + return new CommandResult(MESSAGE_ALL_SUCCESS); } /** @@ -84,11 +28,7 @@ public CommandResult execute(Model model) { @Override public boolean equals(Object obj) { if (obj instanceof ListCommand) { - if (((ListCommand) obj).option == null) { - return option == null; - } else { - return ((ListCommand) obj).option.equals(option); - } + return true; } else { return false; } diff --git a/src/main/java/manageezpz/logic/parser/ListCommandParser.java b/src/main/java/manageezpz/logic/parser/ListCommandParser.java index 41c6a3b26b9..61d575d1fe0 100644 --- a/src/main/java/manageezpz/logic/parser/ListCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/ListCommandParser.java @@ -1,49 +1,18 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; - import manageezpz.logic.commands.ListCommand; -import manageezpz.logic.parser.exceptions.ParseException; /** * The parser for list command. */ public class ListCommandParser implements Parser { - private static final Prefix[] VALID_PREFIXES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT, PREFIX_TODAY}; - /** * Parse the user input before executing the list command. - * @param userInput The input entered in the GUI by the user. - * @return The List Command with the appropriate prefix. - * @throws ParseException When there is more than one option, or no options. + * @param userInput The input entered in the GUI by the user (Will be ignored). + * @return The List Command. */ @Override - public ListCommand parse(String userInput) throws ParseException { - ArgumentMultimap argMultimapList = - ArgumentTokenizer.tokenize(userInput, VALID_PREFIXES); - - boolean hasMoreThanOneArgument = argMultimapList.numberOfArguments() > 2; - boolean hasInvalidArguments = argMultimapList.getPreamble().isEmpty(); - - if (hasMoreThanOneArgument || !hasInvalidArguments) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS)); - } - - for (Prefix prefix: VALID_PREFIXES) { - if (argMultimapList.isPrefixExist(prefix)) { - String value = argMultimapList.getValue(prefix).get(); - if (!value.equals("")) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS)); - } - return new ListCommand(prefix); - } - } + public ListCommand parse(String userInput) { return new ListCommand(); } } diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 32227e79881..5686ed4942b 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -19,6 +19,8 @@ import manageezpz.model.Model; import manageezpz.model.person.NameContainsKeywordsPredicate; import manageezpz.model.person.Person; +import manageezpz.model.task.Task; +import manageezpz.model.task.TaskContainsKeywordsPredicate; import manageezpz.testutil.EditPersonDescriptorBuilder; /** @@ -104,6 +106,7 @@ public static void assertCommandFailure(Command command, Model actualModel, Stri assertEquals(expectedAddressBook, actualModel.getAddressBook()); assertEquals(expectedFilteredList, actualModel.getFilteredPersonList()); } + /** * Updates {@code model}'s filtered list to show only the person at the given {@code targetIndex} in the * {@code model}'s address book. @@ -118,4 +121,18 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { assertEquals(1, model.getFilteredPersonList().size()); } + /** + * Updates {@code model}'s filtered list to show only the task at the given {@code targetIndex} in the + * {@code model}'s address book. + */ + public static void showTaskAtIndex(Model model, Index targetIndex) { + assertTrue(targetIndex.getZeroBased() < model.getFilteredTaskList().size()); + + Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); + final String[] splitName = task.getDescription().toString().split("\\s+"); + model.updateFilteredTaskList(new TaskContainsKeywordsPredicate(Arrays.asList(splitName[0]))); + + assertEquals(1, model.getFilteredTaskList().size()); + } + } diff --git a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java index 65f1948fa7f..7c63911f270 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java @@ -3,8 +3,8 @@ import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -28,8 +28,8 @@ public class DeleteEmployeeCommandTest { @Test public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST); String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); @@ -49,10 +49,10 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { @Test public void execute_validIndexFilteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showPersonAtIndex(model, INDEX_FIRST); - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); + DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(INDEX_FIRST); String expectedMessage = String.format(DeleteEmployeeCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); @@ -65,9 +65,9 @@ public void execute_validIndexFilteredList_success() { @Test public void execute_invalidIndexFilteredList_throwsCommandException() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showPersonAtIndex(model, INDEX_FIRST); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + Index outOfBoundIndex = INDEX_SECOND; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); @@ -78,14 +78,14 @@ public void execute_invalidIndexFilteredList_throwsCommandException() { @Test public void equals() { - DeleteEmployeeCommand deleteFirstCommand = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); - DeleteEmployeeCommand deleteSecondCommand = new DeleteEmployeeCommand(INDEX_SECOND_PERSON); + DeleteEmployeeCommand deleteFirstCommand = new DeleteEmployeeCommand(INDEX_FIRST); + DeleteEmployeeCommand deleteSecondCommand = new DeleteEmployeeCommand(INDEX_SECOND); // same object -> returns true assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); // same values -> returns true - DeleteEmployeeCommand deleteFirstCommandCopy = new DeleteEmployeeCommand(INDEX_FIRST_PERSON); + DeleteEmployeeCommand deleteFirstCommandCopy = new DeleteEmployeeCommand(INDEX_FIRST); assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); // different types -> returns false diff --git a/src/test/java/manageezpz/logic/commands/EditCommandTest.java b/src/test/java/manageezpz/logic/commands/EditCommandTest.java index 4b08bed148d..6ea039f7c54 100644 --- a/src/test/java/manageezpz/logic/commands/EditCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditCommandTest.java @@ -7,8 +7,8 @@ import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -37,7 +37,7 @@ public class EditCommandTest { public void execute_allFieldsSpecifiedUnfilteredList_success() { Person editedPerson = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); + EditCommand editCommand = new EditCommand(INDEX_FIRST, descriptor); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); @@ -69,8 +69,8 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); - Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + EditCommand editCommand = new EditCommand(INDEX_FIRST, new EditPersonDescriptor()); + Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); @@ -81,11 +81,11 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { @Test public void execute_filteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showPersonAtIndex(model, INDEX_FIRST); - Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, + EditCommand editCommand = new EditCommand(INDEX_FIRST, new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); @@ -98,20 +98,20 @@ public void execute_filteredList_success() { @Test public void execute_duplicatePersonUnfilteredList_failure() { - Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_SECOND_PERSON, descriptor); + EditCommand editCommand = new EditCommand(INDEX_SECOND, descriptor); assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); } @Test public void execute_duplicatePersonFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showPersonAtIndex(model, INDEX_FIRST); // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, + Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND.getZeroBased()); + EditCommand editCommand = new EditCommand(INDEX_FIRST, new EditPersonDescriptorBuilder(personInList).build()); assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); @@ -132,8 +132,8 @@ public void execute_invalidPersonIndexUnfilteredList_failure() { */ @Test public void execute_invalidPersonIndexFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + showPersonAtIndex(model, INDEX_FIRST); + Index outOfBoundIndex = INDEX_SECOND; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); @@ -145,11 +145,11 @@ public void execute_invalidPersonIndexFilteredList_failure() { @Test public void equals() { - final EditCommand standardCommand = new EditCommand(INDEX_FIRST_PERSON, DESC_AMY); + final EditCommand standardCommand = new EditCommand(INDEX_FIRST, DESC_AMY); // same values -> returns true EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST_PERSON, copyDescriptor); + EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); // same object -> returns true @@ -162,10 +162,10 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND_PERSON, DESC_AMY))); + assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND, DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_PERSON, DESC_BOB))); + assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST, DESC_BOB))); } } diff --git a/src/test/java/manageezpz/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListCommandTest.java index a7d314ea981..bf7e0d1ec1b 100644 --- a/src/test/java/manageezpz/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListCommandTest.java @@ -1,6 +1,16 @@ package manageezpz.logic.commands; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showTaskAtIndex; +import static manageezpz.testutil.TypcialTasks.getTypicalAddressBook; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; // TODO: Create test after GUI for task settled. /** @@ -11,7 +21,7 @@ public class ListCommandTest { private Model model; private Model expectedModel; - /*@BeforeEach + @BeforeEach public void setUp() { model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); @@ -24,7 +34,7 @@ public void execute_listIsNotFiltered_showsSameList() { @Test public void execute_listIsFiltered_showsEverything() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showTaskAtIndex(model, INDEX_FIRST); assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_ALL_SUCCESS, expectedModel); - }*/ + } } diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index a22ce591ae2..41d030f6c37 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -5,7 +5,7 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.testutil.Assert.assertThrows; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -51,8 +51,8 @@ public void parseCommand_clear() throws Exception { @Test public void parseCommand_delete() throws Exception { DeleteEmployeeCommand command = (DeleteEmployeeCommand) parser.parseCommand( - DeleteEmployeeCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); - assertEquals(new DeleteEmployeeCommand(INDEX_FIRST_PERSON), command); + DeleteEmployeeCommand.COMMAND_WORD + " " + INDEX_FIRST.getOneBased()); + assertEquals(new DeleteEmployeeCommand(INDEX_FIRST), command); } @Test @@ -60,8 +60,8 @@ 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)); - assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); + + INDEX_FIRST.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + assertEquals(new EditCommand(INDEX_FIRST, descriptor), command); } @Test diff --git a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index 5ddc601aa3b..6f4c1b79af7 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -3,7 +3,7 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import org.junit.jupiter.api.Test; @@ -22,7 +22,7 @@ public class DeleteEmployeeCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteEmployeeCommand(INDEX_FIRST_PERSON)); + assertParseSuccess(parser, "1", new DeleteEmployeeCommand(INDEX_FIRST)); } @Test diff --git a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java index 982184fd533..3e2548ad96b 100644 --- a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java @@ -16,9 +16,9 @@ import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static manageezpz.testutil.TypicalIndexes.INDEX_THIRD_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; +import static manageezpz.testutil.TypicalIndexes.INDEX_THIRD; import org.junit.jupiter.api.Test; @@ -83,7 +83,7 @@ public void parse_invalidValue_failure() { @Test public void parse_allFieldsSpecified_success() { - Index targetIndex = INDEX_SECOND_PERSON; + Index targetIndex = INDEX_SECOND; String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + EMAIL_DESC_AMY + NAME_DESC_AMY; @@ -96,7 +96,7 @@ public void parse_allFieldsSpecified_success() { @Test public void parse_someFieldsSpecified_success() { - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST; String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + EMAIL_DESC_AMY; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) @@ -109,7 +109,7 @@ public void parse_someFieldsSpecified_success() { @Test public void parse_oneFieldSpecified_success() { // name - Index targetIndex = INDEX_THIRD_PERSON; + Index targetIndex = INDEX_THIRD; String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); @@ -130,7 +130,7 @@ public void parse_oneFieldSpecified_success() { @Test public void parse_multipleRepeatedFields_acceptsLast() { - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST; String userInput = targetIndex.getOneBased() + PHONE_DESC_AMY + EMAIL_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + PHONE_DESC_BOB + EMAIL_DESC_BOB; @@ -145,7 +145,7 @@ public void parse_multipleRepeatedFields_acceptsLast() { @Test public void parse_invalidValueFollowedByValidValue_success() { // no other valid values specified - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST; String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); diff --git a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java index 8d870371acf..be332f23846 100644 --- a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java @@ -1,13 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.commands.CommandTestUtil.INVALID_LIST_MULTIPLE_ARGUMENTS; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import org.junit.jupiter.api.Test; @@ -17,36 +9,15 @@ class ListCommandParserTest { private ListCommandParser parser = new ListCommandParser(); - private String expectedInvalidArgumentMessage = - String.format(MESSAGE_INVALID_COMMAND_FORMAT, ListCommand.MESSAGE_INVALID_ARGUMENTS); + private ListCommand listCommand = new ListCommand(); @Test - void listCommandParser_multipleArguments_parseExceptionThrown() { - assertParseFailure(parser, INVALID_LIST_MULTIPLE_ARGUMENTS, expectedInvalidArgumentMessage); + void listCommandParser_noOptions_listCommand() { + assertParseSuccess(parser, "", listCommand); } @Test - void listCommandParser_invalidArgument_parseExceptionThrown() { - assertParseFailure(parser, PREFIX_NAME.toString(), expectedInvalidArgumentMessage); - } - - @Test - void listCommandParser_argumentWithValues_parseExceptionThrown() { - assertParseFailure(parser, " " + PREFIX_EVENT + "Some Value", expectedInvalidArgumentMessage); - } - - @Test - void listCommandParser_validArguments_listCommand() { - ListCommand allListCommand = new ListCommand(); - ListCommand todoListCommand = new ListCommand(PREFIX_TODO); - ListCommand deadlineListCommand = new ListCommand(PREFIX_DEADLINE); - ListCommand eventListCommand = new ListCommand(PREFIX_EVENT); - ListCommand todayListCommand = new ListCommand(PREFIX_TODAY); - - assertParseSuccess(parser, "", allListCommand); - assertParseSuccess(parser, " " + PREFIX_TODO.toString(), todoListCommand); - assertParseSuccess(parser, " " + PREFIX_DEADLINE.toString(), deadlineListCommand); - assertParseSuccess(parser, " " + PREFIX_EVENT.toString(), eventListCommand); - assertParseSuccess(parser, " " + PREFIX_TODAY.toString(), todayListCommand); + void listCommandParser_haveOptions_listCommand() { + assertParseSuccess(parser, "1", listCommand); } } diff --git a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java index b92192d9b51..ba290a48915 100644 --- a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java +++ b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java @@ -2,7 +2,7 @@ import static manageezpz.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; import static manageezpz.testutil.Assert.assertThrows; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; @@ -37,10 +37,10 @@ public void parseIndex_outOfRangeInput_throwsParseException() { @Test public void parseIndex_validInput_success() throws Exception { // No whitespaces - assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex("1")); + assertEquals(INDEX_FIRST, ParserUtil.parseIndex("1")); // Leading and trailing whitespaces - assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex(" 1 ")); + assertEquals(INDEX_FIRST, ParserUtil.parseIndex(" 1 ")); } @Test diff --git a/src/test/java/manageezpz/testutil/TypicalIndexes.java b/src/test/java/manageezpz/testutil/TypicalIndexes.java index 0f1c9ced77c..d100edb8c8f 100644 --- a/src/test/java/manageezpz/testutil/TypicalIndexes.java +++ b/src/test/java/manageezpz/testutil/TypicalIndexes.java @@ -6,7 +6,7 @@ * A utility class containing a list of {@code Index} objects to be used in tests. */ public class TypicalIndexes { - public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); - public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); - public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); + public static final Index INDEX_FIRST = Index.fromOneBased(1); + public static final Index INDEX_SECOND = Index.fromOneBased(2); + public static final Index INDEX_THIRD = Index.fromOneBased(3); } From 178a69ff415636dd0f72c0e1b8ec40339fee097f Mon Sep 17 00:00:00 2001 From: denniszedead Date: Fri, 25 Mar 2022 17:49:51 +0800 Subject: [PATCH 224/507] Update ug --- docs/UserGuide.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a0306fe0a0a..b67f6da3908 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -99,11 +99,7 @@ View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for Format: -* `list all/` -* `list todo/` -* `list deadline/` -* `list event/` -* `list today/` +* `list` ### Marking a task as done : `mark` Mark a task in the Task list as done : @@ -193,5 +189,5 @@ Action | Format, Examples **Clear** | `clear` **Delete** | `delete INDEX`
e.g., `delete 3` **Find** | `find task/TASK_DESCRIPTION`
e.g., `find task/homework` -**List** | `list`
e.g. `list all/` or `list event/` or `list deadline/` +**List** | `list` **Help** | `help` From 7245fc3b4273daf732018b57cd8dee0e055088e5 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Fri, 25 Mar 2022 18:13:59 +0800 Subject: [PATCH 225/507] Implement sorting of tasks based on priority. --- .../java/manageezpz/model/AddressBook.java | 1 - src/main/java/manageezpz/model/Model.java | 9 ------- .../java/manageezpz/model/ModelManager.java | 2 ++ src/main/java/manageezpz/model/task/Task.java | 27 +++++++++++++++++-- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 4581188da5b..201a1521b9f 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -376,5 +376,4 @@ public boolean equals(Object other) { public int hashCode() { return persons.hashCode(); } - } diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 3db29ca8e21..9b2ead9ef87 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -18,12 +18,6 @@ public interface Model { /** {@code Predicate} that always evaluate to true to show all tasks */ Predicate PREDICATE_SHOW_ALL_TASKS = unused -> true; - /** {@code Predicate} that always evaluate to true to show all tasks */ - Predicate PREDICATE_SHOW_ALL_TODOS = unused -> true; - /** {@code Predicate} that always evaluate to true to show all tasks */ - Predicate PREDICATE_SHOW_ALL_DEADLINES = unused -> true; - /** {@code Predicate} that always evaluate to true to show all tasks */ - Predicate PREDICATE_SHOW_ALL_EVENTS = unused -> true; /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; @@ -205,7 +199,4 @@ public interface Model { * The task identity of {@code editedTask} must not be the same as another existing task in the task list. */ void setTask(Task target, Task editedTask); - - - } diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 4d660c1acc5..9ecb2212ae7 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -232,6 +232,7 @@ public void updateFilteredTaskList(Predicate predicate) { filteredTasks.setPredicate(predicate); } + @Override public boolean equals(Object obj) { // short circuit if same object @@ -263,4 +264,5 @@ public void setTask(Task target, Task editedTask) { addressBook.setTask(target, editedTask); } + } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 6f7e4a28608..5c60b63b6ed 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -12,13 +12,13 @@ * Represents the Tasks a user could create. A Task object would correspond to a task * inputted by a user either a Todo, Deadline or Event. */ -public class Task { +public class Task implements Comparable { protected boolean isDone; protected String type; protected Priority priority; public enum Priority { - NONE, LOW, MEDIUM, HIGH; + HIGH, LOW, MEDIUM, NONE; } // Identity fields @@ -99,6 +99,29 @@ public Priority getPriority() { return this.priority; } + + int getAssignedValue(String s) { + switch (s) { + case "NONE": + return 3; + case "LOW": + return 2; + case "MEDIUM": + return 1; + case "HIGH": + return 0; + default: + return Integer.MAX_VALUE; + } + } + + @Override + public int compareTo(Task o) { + String first = this.getPriority().name(); + String second = o.getPriority().name(); + return Integer.compare(getAssignedValue(first), getAssignedValue(second)); + } + /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. From 4fe1aa656c606f89de998f697e575a2634d5b5c6 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sat, 26 Mar 2022 02:58:13 +0800 Subject: [PATCH 226/507] Fix AddressBookParser not using editTask command --- src/main/java/manageezpz/logic/parser/AddressBookParser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 28043a07dd7..1fad87b56b5 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -15,6 +15,7 @@ import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.commands.DeleteTaskCommand; import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.HelpCommand; @@ -104,6 +105,9 @@ public Command parseCommand(String userInput) throws ParseException { case TagTaskPriorityCommand.COMMAND_WORD: return new TagTaskPriorityCommandParser().parse(arguments); + case EditTaskCommand.COMMAND_WORD: + return new EditTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } From 9bec687f236cc02a83d51adc4a5a98c0ad7c6531 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sat, 26 Mar 2022 04:18:00 +0800 Subject: [PATCH 227/507] Logic Enhancement on Delete Employee Command, to deal with Deleting Employee, but does not unassign deleted employee. --- .../logic/commands/DeleteEmployeeCommand.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 6e002625b48..ee0eb60c2bd 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; +import java.util.ArrayList; import java.util.List; import manageezpz.commons.core.Messages; @@ -9,6 +10,7 @@ import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.person.Person; +import manageezpz.model.task.Task; /** * Deletes a person identified using it's displayed index from the address book. @@ -33,13 +35,28 @@ public DeleteEmployeeCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownPersonList = model.getFilteredPersonList(); + List lastShownTaskList = model.getFilteredTaskList(); - if (targetIndex.getZeroBased() >= lastShownList.size()) { + if (targetIndex.getZeroBased() >= lastShownPersonList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); + Person personToDelete = lastShownPersonList.get(targetIndex.getZeroBased()); + List taskList = new ArrayList<>(); + for (int i = 0; i < lastShownTaskList.size(); i++) { + Task currentTask = lastShownTaskList.get(i); + List assigneeList = currentTask.getAssignees(); + for(int j = 0; j < assigneeList.size(); j++) { + if (assigneeList.get(j).equals(personToDelete)) { + taskList.add(currentTask); + } + } + } + + for (int j = 0; j < taskList.size(); j++) { + model.untagTask(taskList.get(j), personToDelete); + } model.deletePerson(personToDelete); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); } From f822b06943b8a6b428922f75c709594a78155c2c Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sat, 26 Mar 2022 04:25:24 +0800 Subject: [PATCH 228/507] Fix gradle errors --- .../java/manageezpz/logic/commands/DeleteEmployeeCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index ee0eb60c2bd..3d83e008f2e 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -47,7 +47,7 @@ public CommandResult execute(Model model) throws CommandException { for (int i = 0; i < lastShownTaskList.size(); i++) { Task currentTask = lastShownTaskList.get(i); List assigneeList = currentTask.getAssignees(); - for(int j = 0; j < assigneeList.size(); j++) { + for (int j = 0; j < assigneeList.size(); j++) { if (assigneeList.get(j).equals(personToDelete)) { taskList.add(currentTask); } From 01a6c95665a622a2c59fdeaa154c4c807e4715cb Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Sat, 26 Mar 2022 05:14:41 +0800 Subject: [PATCH 229/507] Modify GUI to display persons list and priority tagging of tasks --- .../logic/parser/AddressBookParser.java | 4 ++ src/main/java/manageezpz/ui/MainWindow.java | 4 +- src/main/java/manageezpz/ui/TaskCard.java | 8 ++++ src/main/resources/view/MainWindow.fxml | 37 ++++++++++++++----- src/main/resources/view/PersonListCard.fxml | 6 +-- src/main/resources/view/TaskListCard.fxml | 16 +++++--- 6 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 28043a07dd7..1fad87b56b5 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -15,6 +15,7 @@ import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.commands.DeleteTaskCommand; import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.HelpCommand; @@ -104,6 +105,9 @@ public Command parseCommand(String userInput) throws ParseException { case TagTaskPriorityCommand.COMMAND_WORD: return new TagTaskPriorityCommandParser().parse(arguments); + case EditTaskCommand.COMMAND_WORD: + return new EditTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/manageezpz/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java index 5a78455c8e4..54cb73597a1 100644 --- a/src/main/java/manageezpz/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -114,8 +114,8 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { * Fills up all the placeholders of this window. */ void fillInnerParts() { - /*personListPanel = new PersonListPanel(logic.getFilteredPersonList()); - personListPanelPlaceholder.getChildren().add(personListPanel.getRoot());*/ + personListPanel = new PersonListPanel(logic.getFilteredPersonList()); + personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); diff --git a/src/main/java/manageezpz/ui/TaskCard.java b/src/main/java/manageezpz/ui/TaskCard.java index 521b265aa93..bc3098d3dee 100644 --- a/src/main/java/manageezpz/ui/TaskCard.java +++ b/src/main/java/manageezpz/ui/TaskCard.java @@ -53,6 +53,8 @@ public class TaskCard extends UiPart { private Label employeesTag; @FXML private Label statusIsDone; + @FXML + private Label priorityTag; /** * Creates a {@code TaskCard} with the given {@code Task} and index to display. @@ -95,6 +97,12 @@ public TaskCard(Task task, int displayedIndex) { statusIsDone.setText("Not Done"); statusIsDone.getStyleClass().add("cell_status_not_done_label"); } + + if (task.getPriority().name().equals("NONE")) { + priorityTag.setVisible(false); + } else { + priorityTag.setText(task.getPriority().name()); + } } /** diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index aa0c77d636b..1f8a72ec5db 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -8,11 +8,12 @@ + + - + @@ -33,32 +34,50 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + - + --> diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 2a8da41fae8..13331d3328c 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -25,11 +25,11 @@ -

:bulb: **Take Note:** -For deadline and event, the DATE must be in this format: YYYY-MM-DD HHmm (in 24 hr format) +For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format)
### Listing all Tasks : `list` -View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for today +View all tasks. Format: * `list` -* `list todo/` -* `list deadline/` -* `list event/` -* `list today/` ### Marking a task as done : `mark` Mark a task in the Task list as done : From 357867352d6fb5c610a49c0572a817dc8c9e0e47 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 27 Mar 2022 23:36:07 +0800 Subject: [PATCH 239/507] Update Task and Enum for Task. --- .../java/manageezpz/model/task/Priority.java | 19 +++++++++++++++ src/main/java/manageezpz/model/task/Task.java | 24 +------------------ 2 files changed, 20 insertions(+), 23 deletions(-) create mode 100644 src/main/java/manageezpz/model/task/Priority.java diff --git a/src/main/java/manageezpz/model/task/Priority.java b/src/main/java/manageezpz/model/task/Priority.java new file mode 100644 index 00000000000..79dad3d64c2 --- /dev/null +++ b/src/main/java/manageezpz/model/task/Priority.java @@ -0,0 +1,19 @@ +package manageezpz.model.task; + +public enum Priority { + + HIGH(0), LOW(1), MEDIUM(2), NONE(3); + private final int value; + + /** + * Constructor to initialize an instance of TaskType enumeration with abbreviation field. + * @param value + */ + Priority(int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 5c60b63b6ed..4114dd2340d 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -17,10 +17,6 @@ public class Task implements Comparable { protected String type; protected Priority priority; - public enum Priority { - HIGH, LOW, MEDIUM, NONE; - } - // Identity fields private final Description taskDescription; @@ -99,27 +95,9 @@ public Priority getPriority() { return this.priority; } - - int getAssignedValue(String s) { - switch (s) { - case "NONE": - return 3; - case "LOW": - return 2; - case "MEDIUM": - return 1; - case "HIGH": - return 0; - default: - return Integer.MAX_VALUE; - } - } - @Override public int compareTo(Task o) { - String first = this.getPriority().name(); - String second = o.getPriority().name(); - return Integer.compare(getAssignedValue(first), getAssignedValue(second)); + return Integer.compare(this.getPriority().getValue(), o.getPriority().getValue()); } /** From cb0eb4b679228b80ee303f92814a68e03e766b75 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Sun, 27 Mar 2022 23:46:50 +0800 Subject: [PATCH 240/507] Update GUI implementation and handle wrap text issues --- src/main/java/manageezpz/ui/PersonCard.java | 10 ++ .../java/manageezpz/ui/PersonListPanel.java | 6 + src/main/java/manageezpz/ui/TaskCard.java | 66 +++++++--- src/main/java/manageezpz/ui/UiManager.java | 1 - src/main/resources/images/email_icon.png | Bin 0 -> 4923 bytes src/main/resources/images/phone_icon.png | Bin 0 -> 5461 bytes src/main/resources/images/priorities_high.png | Bin 0 -> 665 bytes src/main/resources/images/priorities_low.png | Bin 0 -> 668 bytes .../resources/images/priorities_medium.png | Bin 0 -> 654 bytes .../resources/images/priorities_urgent.png | Bin 0 -> 2306 bytes src/main/resources/images/task_icon.png | Bin 0 -> 6285 bytes src/main/resources/view/DarkTheme.css | 14 +-- src/main/resources/view/MainWindow.fxml | 18 +-- src/main/resources/view/PersonListCard.fxml | 74 ++++++++--- src/main/resources/view/PersonListPanel.fxml | 2 +- src/main/resources/view/TaskListCard.fxml | 117 ++++++++++-------- 16 files changed, 201 insertions(+), 107 deletions(-) create mode 100644 src/main/resources/images/email_icon.png create mode 100644 src/main/resources/images/phone_icon.png create mode 100644 src/main/resources/images/priorities_high.png create mode 100644 src/main/resources/images/priorities_low.png create mode 100644 src/main/resources/images/priorities_medium.png create mode 100644 src/main/resources/images/priorities_urgent.png create mode 100644 src/main/resources/images/task_icon.png diff --git a/src/main/java/manageezpz/ui/PersonCard.java b/src/main/java/manageezpz/ui/PersonCard.java index b901810ab8e..5c93f28a0c9 100644 --- a/src/main/java/manageezpz/ui/PersonCard.java +++ b/src/main/java/manageezpz/ui/PersonCard.java @@ -33,6 +33,8 @@ public class PersonCard extends UiPart { private Label phone; @FXML private Label email; + @FXML + private Label numOfTasks; /** * Creates a {@code PersonCode} with the given {@code Person} and index to display. @@ -40,10 +42,18 @@ public class PersonCard extends UiPart { public PersonCard(Person person, int displayedIndex) { super(FXML); this.person = person; + id.setText(displayedIndex + ". "); name.setText(person.getName().fullName); phone.setText(person.getPhone().value); email.setText(person.getEmail().value); + + /*List tasks = model.getFilteredTaskList(); + + List personTasks = tasks.stream() + .filter(task -> task.getAssignees().contains(person)).collect(Collectors.toList()); + + numOfTasks.setText(personTasks.size() + " Assigned Tasks");*/ } @Override diff --git a/src/main/java/manageezpz/ui/PersonListPanel.java b/src/main/java/manageezpz/ui/PersonListPanel.java index 1ac763b7d5e..c0c97a95867 100644 --- a/src/main/java/manageezpz/ui/PersonListPanel.java +++ b/src/main/java/manageezpz/ui/PersonListPanel.java @@ -6,6 +6,7 @@ import javafx.fxml.FXML; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.Region; import manageezpz.commons.core.LogsCenter; import manageezpz.model.person.Person; @@ -29,6 +30,11 @@ public PersonListPanel(ObservableList personList) { personListView.setCellFactory(listView -> new PersonListViewCell()); } + @FXML + public void handleMouseClick(MouseEvent arg) { + System.out.println("clicked on " + personListView.getSelectionModel().getSelectedItem()); + } + /** * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}. */ diff --git a/src/main/java/manageezpz/ui/TaskCard.java b/src/main/java/manageezpz/ui/TaskCard.java index bc3098d3dee..5b96ad08fd5 100644 --- a/src/main/java/manageezpz/ui/TaskCard.java +++ b/src/main/java/manageezpz/ui/TaskCard.java @@ -1,11 +1,14 @@ package manageezpz.ui; +import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; import javafx.fxml.FXML; import javafx.scene.Node; import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; @@ -40,8 +43,6 @@ public class TaskCard extends UiPart { @FXML private Label description; @FXML - private Label typeLabel; - @FXML private Label type; @FXML private Label dateTimeLabel; @@ -52,9 +53,15 @@ public class TaskCard extends UiPart { @FXML private Label employeesTag; @FXML - private Label statusIsDone; + private Label priorityTagLabel; + @FXML + private ImageView priorityTagIcon; @FXML private Label priorityTag; + @FXML + private Label statusIsDoneLabel; + @FXML + private Label statusIsDone; /** * Creates a {@code TaskCard} with the given {@code Task} and index to display. @@ -63,7 +70,7 @@ public TaskCard(Task task, int displayedIndex) { super(FXML); this.task = task; - id.setText(displayedIndex + "."); + id.setText(displayedIndex + ". "); description.setText(task.getDescription().description); type.setText(task.getType()); @@ -80,28 +87,55 @@ public TaskCard(Task task, int displayedIndex) { employeesTag.setText(assigneesNames); } - // Remove row for 'date/time' if it is a Todo task - if (task instanceof Todo) { - removeRow(detailsPane, GridPane.getRowIndex(dateTimeLabel)); - } + Image priorityIcon; - // Remove row for 'assigned to' if there are no employees assigned to the task - if (task.getAssignees().isEmpty()) { - removeRow(detailsPane, GridPane.getRowIndex(employeesTagLabel)); + switch (task.getPriority().name()) { + case "LOW": + priorityIcon = new Image(Objects.requireNonNull( + getClass().getResourceAsStream("/images/priorities_low.png"))); + priorityTagIcon.setImage(priorityIcon); + priorityTag.setText(task.getPriority().name()); + break; + case "MEDIUM": + priorityIcon = new Image(Objects.requireNonNull( + getClass().getResourceAsStream("/images/priorities_medium.png"))); + priorityTagIcon.setImage(priorityIcon); + priorityTag.setText(task.getPriority().name()); + break; + case "HIGH": + priorityIcon = new Image(Objects.requireNonNull( + getClass().getResourceAsStream("/images/priorities_high.png"))); + priorityTagIcon.setImage(priorityIcon); + priorityTag.setText(task.getPriority().name()); + break; + case "NONE": + break; + default: + throw new RuntimeException("Invalid Task Priority"); } if (task.isDone()) { statusIsDone.setText("Done"); - statusIsDone.getStyleClass().add("cell_status_done_label"); + statusIsDone.getStyleClass().add("cell_completion_done_label"); } else { statusIsDone.setText("Not Done"); - statusIsDone.getStyleClass().add("cell_status_not_done_label"); + statusIsDone.getStyleClass().add("cell_completion_not_done_label"); + } + + // Remove date/time row if it is a Todo task + if (task instanceof Todo) { + removeRow(detailsPane, GridPane.getRowIndex(dateTimeLabel)); } + // Remove assignees row if there are no employees assigned to the task + if (task.getAssignees().isEmpty()) { + removeRow(detailsPane, GridPane.getRowIndex(employeesTagLabel)); + } + + // Remove priority row if there are no priority tagged to the task if (task.getPriority().name().equals("NONE")) { - priorityTag.setVisible(false); - } else { - priorityTag.setText(task.getPriority().name()); + // Remove 'priority' row if there are no priority tagged to the task + removeRow(detailsPane, GridPane.getRowIndex(priorityTagLabel)); } } diff --git a/src/main/java/manageezpz/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java index e364491a55a..9dc8389bed2 100644 --- a/src/main/java/manageezpz/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -43,7 +43,6 @@ public void start(Stage primaryStage) { mainWindow = new MainWindow(primaryStage, logic); mainWindow.show(); //This should be called before creating other UI parts mainWindow.fillInnerParts(); - } catch (Throwable e) { logger.severe(StringUtil.getDetails(e)); showFatalErrorDialogAndShutdown("Fatal error during initializing", e); diff --git a/src/main/resources/images/email_icon.png b/src/main/resources/images/email_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcc54c9b4477592e5de306e99f096300cdc8f56 GIT binary patch literal 4923 zcmbVQ2|QG5|5pjQw-Q)0F1P$5gRVKSRpLXj3ivLs8FQj|nO3qp;u zq%3iDQ-B4TT|~2m}N`K)9hy9x(*MrdBT%Ofoz>Mz>`Aam{EtE}#5~y4jpF^fv z9R}1?S+RzVvE)#RJQl}|#iIX+lr@b*4Q6oyxgbkd6i8z~jY(kzb2a~jr{ah_Di#a` z4F-WBATXpG42?k=U=T2Em>~uR`vZz+QD}alt55)^2SK3R5HJi3jzJp!8x%+x3Xw45B|3%4Yh5L91TGShDCW4j>rNPVdk2c9xdT9F`xA4lHm9HWnZ| zD@zm{jY2^Xy6|u6;_(OE{#UP7#gBsD6# z`%~`)V)<$v-3TTvt{;-y4xc2 zyET$fkrVP8zHLYI^WKVO^l;X!>2N}u=Pd2ym;34^zu(6%>}z1ulw+7Of|u{}Rp{d45D4UP zwn*V9`D3$QD_ucOj`o|Uk%fel<{OdU%do=5W1%3gYbi>{JGwn?Jo8M`chQh-Y{5mD z1;$IQ)y&<#DH=M}S2dsa;sNsY8p$iArKKs;NQEn60T0HCs+KfT?I&JU1w#c>fCZj` z3JvC(QG_$Jfsm|dskO>=7C}~l@g4F_cbx5s9@{(v!}=TU=v+%NOsKs>ZL(E6ukLi& z~)$D>kJdflNDX2xAe1}pFVI_78SBX8V{8*p4*|V z>@@4!+SSLxB zZ8bGzC2ci>ytnty$Kt?TpW+k}kN06Gz@$GTj(v>HE;&@Rb6xvz#GrCaos^FfBoA_c z{dmKveOJPgI=n1E@owAy)imG zeqX{Wa3S8{RU5&6%l)E`Zc*(Ep6UZ5i3|Ah`N7xv>Zll(0Y&H*$taOMX0zeD`seY^ z4!MNU*ICj+;i5pYCR}O*mZg=`Q-=S#5bZARJ22ThT0f+(E?;3$-?MBn;k-RzaL1UV zqhm(lmT9(kFiKc8B{;Bl_b1-RcQ4g!HFDcLUnEtFMEjB*1pYyC+lVT)bw&b*@V7q$ zz8@m@&*v8vp?o|PeqASfz^6C7MFG~E{yk>MKUrzN&g}9(`KJ&7TOGeId3%2tfcaa>!TN=tCt-jW8gO|_H zHC&RD-`#!qw6?gU%c$y#Xxy)$C+_V_;L>!*jF|CIrSx&hap?G4#k_>Gcck=AZimU8 zg}Ec+Wzd%H7*Jb@GT2D2_)7sncQ_V@*_^`*>k3an``jFg&&%!O9ZN5mH8rTIDPw&8iWt9c z<9{wH-wY|^8K_d?Ck8?9g7gaMkNQia-8%H-jTAQBMZJg)A6Yb@;#a5-3!a|2YXg|1 z_jqRfT3y9Fag!VK;oFCLXbEM%Dx_=V)>+)qkxi1Dm)GUM1cX`L+`Ib(jYw$0{F9&GB@@+R34;s2b)*c;##CIoTQqt3RuICp?J!T$BDNkory&7E)%hLA0s8eqP~FO0YEt!0eg|8PF>qSNh)lm3CXHVOx}C2BBhpNsd*OkMRodOD*~ z($%!8sL9M*hO<}Y$cWC(%6`;ZYAtS;%JN5@&1tDZ!%d^Sj1Xg{+Hk1S_Kx1@8_eUk z9STFH8h~b-LMYr&@nP2| z!Pzyk}0_Irvx6 zhRdJ$1=4SxFuXc*O??t0mIrwr`XUdY$=5QKhAm$DJ$dqEkBYKi(>H>Sjb79Tn))C?6(IDild?>~67;aNWG~r}DD0 zM$!hcgJWGYM*@XEXYVp`qSk5ABIniRr!$u$&u5qJ?u-DXx%Pj_`#tZ_bfSRyK)vKR z;moi2YVw1e9pPH113n{oj|xr`pUc44mHd>-OTy=jq3l9!3iAiMK}+ChDM<%_%l!5VQ4w->W`+~ipJ$y{@%xfwPo}JR+A#sI+v=#}i&^Ap zovs7zo^i=bPA+wV)~T!GE!*9-yzix{$lo}yoPBWtkLH&i=Z zOAPOny?NUW#dnAkh1R)phF_-WthDPKPNbNqg%^aFn{xMNF0h}qoN<#wztp&I;|uyc z7y&jfqR8A-uiV66o=j9ds@IlB@_IG5_4%#d=Aof$U1kTYPS>1B?=qR&B%&hlPR_V~ z3tOd>wa-Qmqja*hQCsy@Sk?st<{bN4%7?mlE_mMo+zn=Sh5UyC!~Gf6&7X$+FI>Ec z?7{BE;Dv44Vb8Iaxo_~0?cVJY7cNETef5_0uCp`^&wBjWT(aQ!#a9|HJYOi@vh17J zXs8|A9uN4lRP<|9_3^L$l!>R}h6$$_J%!DQIm?S4lOCmKv`3Qn=9F&IgJi}>r4len zC)XS~dbDNIQp&sPD*wjO>V?}$`m=-}>#}7z|8!Iam1|s^!vdE ze%rWYM}Vp{JaC`A-F$MqYg#-~2lMQgk&X@4Wf4)Ya)Z<8&&5?wDOGl4unmo?2H!tb zNtDpc{aNc0>859z6)Mw;75bW7I=+WDCfVNNlrl1B)+%1;nffFYQsg z6lUU!2r$FQN^Y^|bBjmT)0DsDKgxqN(20`$Rr$GI@JNvq#NbbBJlC~@<>Te|@;`po zbdgDHh^;5RO&l;*C@3h9ADNoE{HFMEu&lniufe+YTL{fDF|+1DR;d2Plf!^6+0L+* zkmEJ?Y@RDPNSJ$jE2=wQ)EMtB4csQISy)&wp!X~d54_%cZ@T5m<4N3m-Fgxz#HVD| z#cN1(HZwFF@ynN{qM{;nlVvcSJ|5B7)MOBvH9wp+{EH&GA?WGwZ0BB#uG-qB%A!Dd z@iK<1hsUQD0FOE&FQV5}y9BiD;p6+u>0L8!TB+Sw6v|rdJRD!@q;;>Ojs(}z(gMz* z6W-q5%NOi(9oJZTIXLK*-U`{W!}##HyZZD3w-vkJ2!rW%2ad(35?f7Z7nUA8j%yh7 zpBwLbVE}_2gy*(}`|(Ki>RpF^I^on;o>so0|J~|2+=L&wysKTfA+xbbN_FM$Ejuem KT#?1Wlm7w|tZrQZ literal 0 HcmV?d00001 diff --git a/src/main/resources/images/phone_icon.png b/src/main/resources/images/phone_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf419e7a195da0beae1208963620157b88a4d906 GIT binary patch literal 5461 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/images/priorities_medium.png b/src/main/resources/images/priorities_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..59d96906ea8ff2d100639a250b9d900b49a8c90f GIT binary patch literal 654 zcmeAS@N?(olHy`uVBq!ia0vp^-awqp!3HERZ~VIvNO2Z;L>4nJ=qZCRW5rVYG6n`F z2TvErkcv5P@4nBy<-pMP@%t*i2YClLTs|>GE|hNJwQ@3Ybn~!wyrCfbV3h&W+y(a@ z{Avt3lW4JD;iLNZKTB#3h@Ges+21AN;pF8h@%-{q{RhjIObLq*ye#r{-lCwcUy~Qf z>DA_5SNpS{x4yO9^YXo&dRu-KHD>RM`g^-z*4*r%D}R6LJ^i&Yk}XNnPW+sIu+8bx zJ1zeXd}a=3+`h0ef-R}{yUUuwXA7??Z#*S7DNSg5qNjSMSX8OdMz6GmSCjrWMEtgG z4g36$F^P9}dszQZ$E3GWFYYgR-m!IUaQ=njBe%AhzOYQneZy1L7opwUJWu&rqvQFj za;qrS)~qhm ziC?NtabFSfp7bvG%IA&#>vX57)LMVrn{Ik+(vs&Q<@b_8L$cSnUCQptnxlSI%G)aG zLw29)%;xxNos$wZNo#wgfP{&Z;g2J?W~?v(l4S)SI=5!Oe;}NF;{lL}SloC}{aT%{ zXZ~O2BUU-H7R6oT?+E?2L9WIw(eR$^{m93A1+(|GMYLUVf3eT|S8dzt9h^%e?47D_ zy}xBAl;_O6k>`k!z-b2^sxrPL>uxTVecyQhTL0J3*$LjVKg&PbZ8~7zEYpA1=nrds Xd+lC{{e||x1jgX$>gTe~DWM4fh0rMc literal 0 HcmV?d00001 diff --git a/src/main/resources/images/priorities_urgent.png b/src/main/resources/images/priorities_urgent.png new file mode 100644 index 0000000000000000000000000000000000000000..5746b319289d3cf0a9a18794ac38b6c36bce7201 GIT binary patch literal 2306 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 W;$xpe>(>wdFfcK&(67{Uj{G0K%Hn+h literal 0 HcmV?d00001 diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index eb956bdb191..1694b15aa81 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -128,31 +128,29 @@ .cell_small_label { -fx-font-family: "Segoe UI"; - -fx-font-size: 13px; + -fx-font-size: 14px; -fx-text-fill: #010504; } -.cell_status_done_label { +.cell_completion_done_label { -fx-background-color: #34a853; -fx-background-radius: 5; -fx-font-family: "Segoe UI"; - -fx-font-size: 13px; + -fx-font-size: 14px; -fx-text-fill: #eaeaea; } -.cell_status_not_done_label { +.cell_completion_not_done_label { -fx-background-color: #ea4335; -fx-background-radius: 5; -fx-font-family: "Segoe UI"; - -fx-font-size: 13px; + -fx-font-size: 14px; -fx-text-fill: #eaeaea; } .cell_priority_label { - -fx-background-color: #4285f4; - -fx-background-radius: 5; -fx-font-family: "Segoe UI"; - -fx-font-size: 13px; + -fx-font-size: 14px; -fx-text-fill: #eaeaea; } diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 1f8a72ec5db..3322684be06 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -6,14 +6,13 @@ - - + @@ -36,27 +35,28 @@ - + - + - - - + + + - - + + + diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 13331d3328c..ff989de6210 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -2,34 +2,72 @@ + + - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + diff --git a/src/main/resources/view/PersonListPanel.fxml b/src/main/resources/view/PersonListPanel.fxml index 8836d323cc5..45ebe859256 100644 --- a/src/main/resources/view/PersonListPanel.fxml +++ b/src/main/resources/view/PersonListPanel.fxml @@ -4,5 +4,5 @@ - + diff --git a/src/main/resources/view/TaskListCard.fxml b/src/main/resources/view/TaskListCard.fxml index 1f2dd95e2d4..4777ae45982 100644 --- a/src/main/resources/view/TaskListCard.fxml +++ b/src/main/resources/view/TaskListCard.fxml @@ -2,95 +2,104 @@ + - - + - - + - + - - - - - - - - - - - - - - From ef8a319bc23e8932a2fd1560e6f25ad5c3df53c9 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Sun, 27 Mar 2022 23:50:07 +0800 Subject: [PATCH 241/507] Remove commented out codes --- src/main/java/manageezpz/ui/PersonCard.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/manageezpz/ui/PersonCard.java b/src/main/java/manageezpz/ui/PersonCard.java index 5c93f28a0c9..7b3ad6ad43a 100644 --- a/src/main/java/manageezpz/ui/PersonCard.java +++ b/src/main/java/manageezpz/ui/PersonCard.java @@ -42,18 +42,10 @@ public class PersonCard extends UiPart { public PersonCard(Person person, int displayedIndex) { super(FXML); this.person = person; - id.setText(displayedIndex + ". "); name.setText(person.getName().fullName); phone.setText(person.getPhone().value); email.setText(person.getEmail().value); - - /*List tasks = model.getFilteredTaskList(); - - List personTasks = tasks.stream() - .filter(task -> task.getAssignees().contains(person)).collect(Collectors.toList()); - - numOfTasks.setText(personTasks.size() + " Assigned Tasks");*/ } @Override From ebc02a028c21baa6e50d617cc34cd83ed7374146 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Sun, 27 Mar 2022 23:54:19 +0800 Subject: [PATCH 242/507] Implement storing number of task in JSON, and affected classes that will implement task decreasing / task increasing. --- .../logic/commands/DeleteTaskCommand.java | 4 ++++ .../logic/commands/TagTaskCommand.java | 1 + .../java/manageezpz/model/AddressBook.java | 6 ++++++ .../java/manageezpz/model/person/Person.java | 13 ++++++++++++ .../manageezpz/storage/JsonAdaptedPerson.java | 8 ++++++- .../storage/JsonAdaptedPersonTest.java | 21 +++++++++++++------ 6 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index 2b97ffbb492..9e24f944445 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -8,6 +8,7 @@ import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; +import manageezpz.model.person.Person; import manageezpz.model.task.Task; /** @@ -41,6 +42,9 @@ public CommandResult execute(Model model) throws CommandException { Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); model.deleteTask(taskToDelete); + List affectedPersonList = taskToDelete.getAssignees(); + affectedPersonList.forEach(Person::decreaseTaskCount); + return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); } diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index 2ed60e239e7..fc6e572668c 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -64,6 +64,7 @@ public CommandResult execute(Model model) throws CommandException { } model.tagTask(task, person); + person.increaseTaskCount(); return new CommandResult(String.format(MESSAGE_SUCCESS, task)); } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 201a1521b9f..b465827c613 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -305,7 +305,13 @@ public void setTask(Task target, Task editedTask) { tasks.setTask(target, editedTask); } + /** + * Remove the Person from the Task, also decreasing the person's task count. + * @param task the task affected + * @param person the person to be untagged from task + */ public void untagTask(Task task, Person person) { + person.decreaseTaskCount(); task.removeAssigned(person); } diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index 9d878643190..b1193186160 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -14,6 +14,7 @@ public class Person { private final Name name; private final Phone phone; private final Email email; + private int numOfTask; /** * Every field must be present and not null. @@ -23,6 +24,7 @@ public Person(Name name, Phone phone, Email email) { this.name = name; this.phone = phone; this.email = email; + this.numOfTask = 0; } public Name getName() { @@ -50,6 +52,17 @@ public boolean isSamePerson(Person otherPerson) { && otherPerson.getName().equals(getName()); } + public void increaseTaskCount() { + this.numOfTask = numOfTask + 1; + } + + public void decreaseTaskCount() { + this.numOfTask = numOfTask - 1; + } + + public int getNumOfTask() { + return numOfTask; + } /** * Returns true if both persons have the same identity and data fields. * This defines a stronger notion of equality between two persons. diff --git a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java index cc0352f7016..aad954a2b6a 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -19,16 +19,18 @@ class JsonAdaptedPerson { private final String name; private final String phone; private final String email; + private final int numOfTask; /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, - @JsonProperty("email") String email) { + @JsonProperty("email") String email, @JsonProperty("Task Amount") int numOfTask) { this.name = name; this.phone = phone; this.email = email; + this.numOfTask = numOfTask; } /** @@ -38,6 +40,7 @@ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; + numOfTask = source.getNumOfTask(); } /** @@ -65,6 +68,9 @@ public Person toModelType() throws IllegalValueException { if (email == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName())); } + if (numOfTask < 0) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Person.class.getSimpleName())); + } if (!Email.isValidEmail(email)) { throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); } diff --git a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index d111560359e..ca57eb76a6e 100644 --- a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -10,6 +10,7 @@ import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.model.person.Email; import manageezpz.model.person.Name; +import manageezpz.model.person.Person; import manageezpz.model.person.Phone; public class JsonAdaptedPersonTest { @@ -20,6 +21,7 @@ public class JsonAdaptedPersonTest { 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(); + private static final int VALID_NUMOFTASK = BENSON.getNumOfTask(); @Test public void toModelType_validPersonDetails_returnsPerson() throws Exception { @@ -30,14 +32,14 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL); + new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); String expectedMessage = Name.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL); + JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -45,14 +47,14 @@ public void toModelType_nullName_throwsIllegalValueException() { @Test public void toModelType_invalidPhone_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL); + new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL); + JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_NUMOFTASK); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -60,16 +62,23 @@ public void toModelType_nullPhone_throwsIllegalValueException() { @Test public void toModelType_invalidEmail_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL); + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_NUMOFTASK); String expectedMessage = Email.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } + @Test public void toModelType_nullEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null); + JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_NUMOFTASK); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } + @Test + public void toModelType_invalidNumOfTask_throwsIllegalValueException() { + JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, -1); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Person.class.getSimpleName()); + assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } } From 402de50395b532ca7aec6bfaccaef67025ef903b Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 27 Mar 2022 23:55:32 +0800 Subject: [PATCH 243/507] Update enum indexes. --- src/main/java/manageezpz/model/task/Priority.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/task/Priority.java b/src/main/java/manageezpz/model/task/Priority.java index 79dad3d64c2..f1b810e05e7 100644 --- a/src/main/java/manageezpz/model/task/Priority.java +++ b/src/main/java/manageezpz/model/task/Priority.java @@ -2,7 +2,7 @@ public enum Priority { - HIGH(0), LOW(1), MEDIUM(2), NONE(3); + HIGH(0), LOW(2), MEDIUM(1), NONE(3); private final int value; /** From cf7e24f2f91f53ba3177f8e43a5c3f6454a4267d Mon Sep 17 00:00:00 2001 From: Ng Wen Hao Dennis <36025582+Denniszedead@users.noreply.github.com> Date: Mon, 28 Mar 2022 00:25:37 +0800 Subject: [PATCH 244/507] =?UTF-8?q?Revert=20"Implement=20storing=20number?= =?UTF-8?q?=20of=20task=20in=20JSON,=20and=20affected=20classes=20that=20w?= =?UTF-8?q?=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/commands/DeleteTaskCommand.java | 4 ---- .../logic/commands/TagTaskCommand.java | 1 - .../java/manageezpz/model/AddressBook.java | 6 ------ .../java/manageezpz/model/person/Person.java | 13 ------------ .../manageezpz/storage/JsonAdaptedPerson.java | 8 +------ .../storage/JsonAdaptedPersonTest.java | 21 ++++++------------- 6 files changed, 7 insertions(+), 46 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index 9e24f944445..2b97ffbb492 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -8,7 +8,6 @@ import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; -import manageezpz.model.person.Person; import manageezpz.model.task.Task; /** @@ -42,9 +41,6 @@ public CommandResult execute(Model model) throws CommandException { Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); model.deleteTask(taskToDelete); - List affectedPersonList = taskToDelete.getAssignees(); - affectedPersonList.forEach(Person::decreaseTaskCount); - return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); } diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index fc6e572668c..2ed60e239e7 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -64,7 +64,6 @@ public CommandResult execute(Model model) throws CommandException { } model.tagTask(task, person); - person.increaseTaskCount(); return new CommandResult(String.format(MESSAGE_SUCCESS, task)); } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index b465827c613..201a1521b9f 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -305,13 +305,7 @@ public void setTask(Task target, Task editedTask) { tasks.setTask(target, editedTask); } - /** - * Remove the Person from the Task, also decreasing the person's task count. - * @param task the task affected - * @param person the person to be untagged from task - */ public void untagTask(Task task, Person person) { - person.decreaseTaskCount(); task.removeAssigned(person); } diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index b1193186160..9d878643190 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -14,7 +14,6 @@ public class Person { private final Name name; private final Phone phone; private final Email email; - private int numOfTask; /** * Every field must be present and not null. @@ -24,7 +23,6 @@ public Person(Name name, Phone phone, Email email) { this.name = name; this.phone = phone; this.email = email; - this.numOfTask = 0; } public Name getName() { @@ -52,17 +50,6 @@ public boolean isSamePerson(Person otherPerson) { && otherPerson.getName().equals(getName()); } - public void increaseTaskCount() { - this.numOfTask = numOfTask + 1; - } - - public void decreaseTaskCount() { - this.numOfTask = numOfTask - 1; - } - - public int getNumOfTask() { - return numOfTask; - } /** * Returns true if both persons have the same identity and data fields. * This defines a stronger notion of equality between two persons. diff --git a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java index aad954a2b6a..cc0352f7016 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -19,18 +19,16 @@ class JsonAdaptedPerson { private final String name; private final String phone; private final String email; - private final int numOfTask; /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, - @JsonProperty("email") String email, @JsonProperty("Task Amount") int numOfTask) { + @JsonProperty("email") String email) { this.name = name; this.phone = phone; this.email = email; - this.numOfTask = numOfTask; } /** @@ -40,7 +38,6 @@ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; - numOfTask = source.getNumOfTask(); } /** @@ -68,9 +65,6 @@ public Person toModelType() throws IllegalValueException { if (email == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName())); } - if (numOfTask < 0) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Person.class.getSimpleName())); - } if (!Email.isValidEmail(email)) { throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); } diff --git a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index ca57eb76a6e..d111560359e 100644 --- a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -10,7 +10,6 @@ import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.model.person.Email; import manageezpz.model.person.Name; -import manageezpz.model.person.Person; import manageezpz.model.person.Phone; public class JsonAdaptedPersonTest { @@ -21,7 +20,6 @@ public class JsonAdaptedPersonTest { 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(); - private static final int VALID_NUMOFTASK = BENSON.getNumOfTask(); @Test public void toModelType_validPersonDetails_returnsPerson() throws Exception { @@ -32,14 +30,14 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); + new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL); String expectedMessage = Name.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); + JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -47,14 +45,14 @@ public void toModelType_nullName_throwsIllegalValueException() { @Test public void toModelType_invalidPhone_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_NUMOFTASK); + new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_NUMOFTASK); + JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -62,23 +60,16 @@ public void toModelType_nullPhone_throwsIllegalValueException() { @Test public void toModelType_invalidEmail_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_NUMOFTASK); + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL); String expectedMessage = Email.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } - @Test public void toModelType_nullEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_NUMOFTASK); + JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } - @Test - public void toModelType_invalidNumOfTask_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, -1); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Person.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); - } } From 430a26657d588d5c313e6e057319112c285c0cee Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 00:56:48 +0800 Subject: [PATCH 245/507] update test cases & refractor base on change in Enum. --- .../manageezpz/logic/parser/FindTaskCommandParser.java | 10 +++++----- .../manageezpz/model/task/TaskMultiplePredicate.java | 8 ++++---- .../logic/parser/FindTaskCommandParserTest.java | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 4771e3a2ed0..1ab4549b5b0 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -18,7 +18,7 @@ import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.task.Date; -import manageezpz.model.task.Task; +import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; /** @@ -45,7 +45,7 @@ public FindCommand parse(String args) throws ParseException { Prefix taskType = getPrefix(argMultiMapTaskType); List descriptions = getDescriptions(argMultiMapProperties); Date date = getTaskDate(argMultiMapProperties); - Task.Priority priority = getTaskPriority(argMultiMapProperties); + Priority priority = getTaskPriority(argMultiMapProperties); String assignee = getAssignee(argMultiMapProperties); Boolean isMarked = getIsMarked(argMultiMapProperties); @@ -130,12 +130,12 @@ private boolean checkIfDateIsValid(String dateString) { return true; } - private Task.Priority getTaskPriority(ArgumentMultimap argMultiMap) { - Task.Priority priority = null; + private Priority getTaskPriority(ArgumentMultimap argMultiMap) { + Priority priority = null; if (argMultiMap.isPrefixExist(PREFIX_PRIORITY)) { String priorityString = argMultiMap.getValue(PREFIX_PRIORITY).get().trim().toUpperCase(); try { - priority = Task.Priority.valueOf(priorityString); + priority = Priority.valueOf(priorityString); } catch (IllegalArgumentException e) { addErrorMessage(FindTaskCommand.INVALID_PRIORITY); } diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index eb81dde8f53..44f4fa063f1 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -18,7 +18,7 @@ public class TaskMultiplePredicate implements Predicate { private final Prefix taskType; private final List description; private final Date date; - private final Task.Priority priority; + private final Priority priority; private final String assignee; private final Boolean isMarked; @@ -32,7 +32,7 @@ public class TaskMultiplePredicate implements Predicate { * @param isMarked Whether the task is marked */ public TaskMultiplePredicate( - Prefix taskType, List description, Date date, Task.Priority priority, String assignee, + Prefix taskType, List description, Date date, Priority priority, String assignee, Boolean isMarked) { this.taskType = taskType; this.description = description; @@ -88,7 +88,7 @@ private Date getDateFromTask(Task task) { } } - private boolean checkIfHasPriority(Task task, Task.Priority priority) { + private boolean checkIfHasPriority(Task task, Priority priority) { return task.getPriority().equals(priority); } @@ -136,7 +136,7 @@ private boolean isSameDate(Date date) { return this.date == null; } - private boolean isSamePriority(Task.Priority priority) { + private boolean isSamePriority(Priority priority) { if (priority != null) { return priority.equals(this.priority); } diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 928f52132c9..80040673c70 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -26,7 +26,7 @@ import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.model.task.Date; -import manageezpz.model.task.Task; +import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; class FindTaskCommandParserTest { @@ -129,7 +129,7 @@ void findTaskCommandParser_validPriority_findTaskCommand() { String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_PRIORITY.toString(), VALID_PRIORITY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, - null, Task.Priority.valueOf(VALID_PRIORITY), null, null); + null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); assertParseSuccess(parser, userInput, expectedCommand); @@ -188,7 +188,7 @@ void findTaskCommandParser_multipleArguments_findCommand() { PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_DEADLINE, LIST_DESCRIPTIONS, - new Date(VALID_DATE), Task.Priority.valueOf(VALID_PRIORITY), VALID_NAME_AMY, + new Date(VALID_DATE), Priority.valueOf(VALID_PRIORITY), VALID_NAME_AMY, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); From 1cb424dfe13c4cc4b2fdaadadd7b28cfb73276f1 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 03:19:29 +0800 Subject: [PATCH 246/507] Delete all files pertaining to FindCommands --- .../logic/commands/FindCommand.java | 61 ------------------- .../logic/commands/FindTaskCommand.java | 45 +++++++++++++- .../logic/parser/AddressBookParser.java | 6 +- .../logic/parser/FindCommandParser.java | 45 -------------- .../logic/parser/FindTaskCommandParser.java | 11 +--- .../logic/parser/AddressBookParserTest.java | 5 +- .../logic/parser/FindCommandParseTest.java | 46 -------------- .../parser/FindTaskCommandParserTest.java | 54 ++++++++-------- 8 files changed, 78 insertions(+), 195 deletions(-) delete mode 100644 src/main/java/manageezpz/logic/commands/FindCommand.java delete mode 100644 src/main/java/manageezpz/logic/parser/FindCommandParser.java delete mode 100644 src/test/java/manageezpz/logic/parser/FindCommandParseTest.java diff --git a/src/main/java/manageezpz/logic/commands/FindCommand.java b/src/main/java/manageezpz/logic/commands/FindCommand.java deleted file mode 100644 index 2894434dc22..00000000000 --- a/src/main/java/manageezpz/logic/commands/FindCommand.java +++ /dev/null @@ -1,61 +0,0 @@ -package manageezpz.logic.commands; - -import static manageezpz.logic.parser.CliSyntax.PREFIX_ASSIGNEES; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_IS_MARKED; -import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; - -import java.util.function.Predicate; - -import manageezpz.model.task.Task; - -/** - * Finds and lists all persons or task in address book whose name contains any properties. - */ -public abstract class FindCommand extends Command { - public static final String COMMAND_WORD = "find"; - - private static final String TASK_OPTIONS = String.join(", ", PREFIX_TASK.toString(), - PREFIX_TODO.toString(), PREFIX_DEADLINE.toString(), PREFIX_EVENT.toString()); - private static final String TASK_PROPERTIES = String.join(", ", PREFIX_DESCRIPTION.toString(), - PREFIX_DATE.toString(), PREFIX_PRIORITY.toString(), PREFIX_ASSIGNEES.toString(), - PREFIX_IS_MARKED.toString()); - private static final String NOTE = "NOTE: All task properties option must be filled"; - private static final String EXAMPLE = String.join(" ", COMMAND_WORD, - PREFIX_DEADLINE.toString(), "Finish TP", PREFIX_DATE.toString(), "2022-01-01"); - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Finds all tasks that contains the properties specified.\n" - + "Task type options: " + TASK_OPTIONS + "\n" - + "Task properties " + TASK_PROPERTIES + "\n" - + NOTE + "\n" - + EXAMPLE; - - protected Predicate predicate; - - /** - * The constructor for find command - * @param predicate The search terms to search for the tasks - */ - public FindCommand(Predicate predicate) { - this.predicate = predicate; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (obj == this) { - return true; - } else if (obj instanceof FindCommand) { - FindCommand findCommand = (FindCommand) obj; - return predicate.equals(findCommand.predicate); - } - return false; - } -} diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index 2531ccd094a..61195829773 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -1,6 +1,17 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_ASSIGNEES; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_IS_MARKED; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; + +import java.util.function.Predicate; import manageezpz.commons.core.Messages; import manageezpz.logic.commands.exceptions.CommandException; @@ -12,7 +23,24 @@ /** * A subclass for find command to find all the tasks. */ -public class FindTaskCommand extends FindCommand { +public class FindTaskCommand extends Command { + public static final String COMMAND_WORD = "findTask"; + + private static final String TASK_OPTIONS = String.join(", ", PREFIX_TODO.toString(), + PREFIX_DEADLINE.toString(), PREFIX_EVENT.toString()); + private static final String TASK_PROPERTIES = String.join(", ", PREFIX_DESCRIPTION.toString(), + PREFIX_DATE.toString(), PREFIX_PRIORITY.toString(), PREFIX_ASSIGNEES.toString(), + PREFIX_IS_MARKED.toString()); + private static final String NOTE = "NOTE: All task properties option must be filled"; + private static final String EXAMPLE = String.join(" ", COMMAND_WORD, + PREFIX_DEADLINE.toString(), "Finish TP", PREFIX_DATE.toString(), "2022-01-01"); + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds all tasks that contains the properties specified.\n" + + "Task type options: " + TASK_OPTIONS + "\n" + + "Task properties " + TASK_PROPERTIES + "\n" + + NOTE + "\n" + + EXAMPLE; + public static final String EMPTY_KEYWORD = "Keyword is empty\n"; public static final String INVALID_DATE = Date.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_PRIORITY = "Property should be NONE, LOW, MEDIUM, HIGH\n"; @@ -20,13 +48,15 @@ public class FindTaskCommand extends FindCommand { public static final String INVALID_BOOLEAN = "Boolean should be true or false\n"; public static final String EMPTY_ASSIGNEE = "Assignee is empty\n"; + private TaskMultiplePredicate predicate; + /** * The constructor for find task command. * @param taskContainsDescriptionKeywordsTagPredicate The predicate as search terms to find task */ public FindTaskCommand( TaskMultiplePredicate taskContainsDescriptionKeywordsTagPredicate) { - super(taskContainsDescriptionKeywordsTagPredicate); + this.predicate = taskContainsDescriptionKeywordsTagPredicate; } /** @@ -39,4 +69,15 @@ public CommandResult execute(Model model) throws CommandException { return new CommandResult( String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, model.getFilteredTaskList().size())); } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } else if (obj instanceof FindTaskCommand) { + Predicate otherPredicate = ((FindTaskCommand) obj).predicate; + return predicate.equals(otherPredicate); + } + return false; + } } diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 1fad87b56b5..bfe256b2ef7 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -17,7 +17,7 @@ import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; import manageezpz.logic.commands.MarkTaskCommand; @@ -69,8 +69,8 @@ public Command parseCommand(String userInput) throws ParseException { case ClearCommand.COMMAND_WORD: return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindTaskCommand.COMMAND_WORD: + return new FindTaskCommandParser().parse(arguments); case ListCommand.COMMAND_WORD: return new ListCommandParser().parse(arguments); diff --git a/src/main/java/manageezpz/logic/parser/FindCommandParser.java b/src/main/java/manageezpz/logic/parser/FindCommandParser.java deleted file mode 100644 index d83919ca44a..00000000000 --- a/src/main/java/manageezpz/logic/parser/FindCommandParser.java +++ /dev/null @@ -1,45 +0,0 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; - -import java.util.Arrays; - -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new FindCommand object - */ -public class FindCommandParser implements Parser { - private static final Prefix[] TASK_PREFIXES = {PREFIX_TASK, PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; - - /** - * Parses the given {@code String} of arguments in the context of the FindCommand - * and returns a FindCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public FindCommand parse(String args) throws ParseException { - ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, TASK_PREFIXES); - - boolean hasAnyTaskTypeOption = checkForTaskTypeOption(argMultiMap); - - if (hasAnyTaskTypeOption) { - return new FindTaskCommandParser().parse(args); - } else { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); - } - } - - /** - * Private method to check any prefixes for task type present - * @param argMultiMap The mapping from the user input - * @return True if the user enters a task type option, false otherwise. - */ - private boolean checkForTaskTypeOption(ArgumentMultimap argMultiMap) { - return Arrays.stream(TASK_PREFIXES).anyMatch(prefix -> argMultiMap.isPrefixExist(prefix)); - } -} diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 1ab4549b5b0..4b319791803 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -14,7 +14,6 @@ import java.util.Arrays; import java.util.List; -import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.task.Date; @@ -24,7 +23,7 @@ /** * Subclass of FindCommandParser which check if the options are valid for finding tasks. */ -class FindTaskCommandParser extends FindCommandParser { +class FindTaskCommandParser implements Parser { private static final Prefix[] TASK_TYPES = {PREFIX_TASK, PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; private static final Prefix[] TASK_PROPERTIES = {PREFIX_DATE, PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; @@ -34,11 +33,7 @@ class FindTaskCommandParser extends FindCommandParser { protected FindTaskCommandParser() {} - /** - * {@inheritDoc} - */ - @Override - public FindCommand parse(String args) throws ParseException { + public FindTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultiMapTaskType = ArgumentTokenizer.tokenize(args, TASK_TYPES); ArgumentMultimap argMultiMapProperties = ArgumentTokenizer.tokenize(args, TASK_PROPERTIES); @@ -54,7 +49,7 @@ public FindCommand parse(String args) throws ParseException { } if (hasError) { - errorMessage = errorMessage + FindCommand.MESSAGE_USAGE; + errorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); } else { return new FindTaskCommand(new TaskMultiplePredicate( diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index f0cd7dbd135..841ad34a765 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -21,7 +21,6 @@ import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; import manageezpz.logic.commands.ExitCommand; -import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; @@ -74,8 +73,8 @@ public void parseCommand_exit() throws Exception { @Test public void parseCommand_find() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); - FindCommand command = (FindCommand) parser.parseCommand( - FindCommand.COMMAND_WORD + FindTaskCommand command = (FindTaskCommand) parser.parseCommand( + FindTaskCommand.COMMAND_WORD + " " + PREFIX_TASK.toString() + " " + PREFIX_DESCRIPTION + keywords.stream().collect(Collectors.joining(" "))); assertEquals(new FindTaskCommand( diff --git a/src/test/java/manageezpz/logic/parser/FindCommandParseTest.java b/src/test/java/manageezpz/logic/parser/FindCommandParseTest.java deleted file mode 100644 index ff79857de48..00000000000 --- a/src/test/java/manageezpz/logic/parser/FindCommandParseTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package manageezpz.logic.parser; - -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.commands.CommandTestUtil.LIST_DESCRIPTIONS; -import static manageezpz.logic.commands.CommandTestUtil.VALID_TASK_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; - -import org.junit.jupiter.api.Test; - -import manageezpz.logic.commands.FindCommand; -import manageezpz.logic.commands.FindTaskCommand; -import manageezpz.model.task.TaskMultiplePredicate; - -public class FindCommandParseTest { - private static final String EXPECTED_ERROR_MESSAGE = String.format(MESSAGE_INVALID_COMMAND_FORMAT, - FindCommand.MESSAGE_USAGE); - private FindCommandParser parser = new FindCommandParser(); - - @Test - void findParse_noArguments_parseExceptionThrown() { - assertParseFailure(parser, "", - EXPECTED_ERROR_MESSAGE); - } - - @Test - void findParse_invalidArguments_parserExceptionThrown() { - assertParseFailure(parser, " /someOtherArgument", EXPECTED_ERROR_MESSAGE); - } - - /** - * The rest of the task checking correctness will be done at FindTestCommandParserTest.java - */ - @Test - void findParser_withTaskOption_findTaskCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TODO.toString(), - PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, LIST_DESCRIPTIONS, null, - null, null, null); - FindCommand expectedCommand = new FindTaskCommand(expectedPredicate); - - assertParseSuccess(parser, userInput, expectedCommand); - } -} diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 80040673c70..d0a9ab24e01 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; import manageezpz.commons.core.Messages; -import manageezpz.logic.commands.FindCommand; +import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.model.task.Date; import manageezpz.model.task.Priority; @@ -31,23 +31,23 @@ class FindTaskCommandParserTest { static final String EMPTY_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.EMPTY_KEYWORD + FindCommand.MESSAGE_USAGE); + FindTaskCommand.EMPTY_KEYWORD + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.INVALID_DATE + FindCommand.MESSAGE_USAGE); + FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.INVALID_PRIORITY + FindCommand.MESSAGE_USAGE); + FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); static final String EMPTY_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.EMPTY_ASSIGNEE + FindCommand.MESSAGE_USAGE); + FindTaskCommand.EMPTY_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.INVALID_BOOLEAN + FindCommand.MESSAGE_USAGE); + FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindCommand.MESSAGE_USAGE); + FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindTaskCommand.MESSAGE_USAGE); private FindTaskCommandParser parser = new FindTaskCommandParser(); @Test void findTaskCommandParserTest_noArgumentsAfterTaskType_findTaskCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString()); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -57,25 +57,25 @@ void findTaskCommandParserTest_noArgumentsAfterTaskType_findTaskCommand() { @Test void findTaskCommandParserTest_emptyDescription_throwsParseError() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_DESCRIPTION.toString()); assertParseFailure(parser, userInput, EMPTY_DESCRIPTION_ERROR_MESSAGE); } @Test void findTaskCommandParserTest_withDescription_findTaskCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, LIST_DESCRIPTIONS, null, null, null, null); - FindCommand expectedCommand = new FindTaskCommand(expectedPredicate); + FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); assertParseSuccess(parser, userInput, expectedCommand); } @Test void findTaskCommandParserTest_noDate_throwsParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_DATE.toString()); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); @@ -83,7 +83,7 @@ void findTaskCommandParserTest_noDate_throwsParseException() { @Test void findTaskCommandParserTest_invalidDate_throwsParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_DATE.toString(), INVALID_DATE); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); @@ -91,7 +91,7 @@ void findTaskCommandParserTest_invalidDate_throwsParseException() { @Test void findTaskCommandParserTest_todoWithDateOption_throwParseError() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TODO.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), PREFIX_DATE.toString(), VALID_DATE); assertParseFailure(parser, userInput, TODO_DATE_ERROR_MESSAGE); @@ -99,7 +99,7 @@ void findTaskCommandParserTest_todoWithDateOption_throwParseError() { @Test void findTaskCommandParserTest_validDate_findTaskCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_DATE.toString(), VALID_DATE); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, new Date(VALID_DATE), null, null, null); @@ -110,7 +110,7 @@ void findTaskCommandParserTest_validDate_findTaskCommand() { @Test void findTaskCommandPaeser_emptyPriority_throwParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_PRIORITY.toString()); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); @@ -118,7 +118,7 @@ void findTaskCommandPaeser_emptyPriority_throwParseException() { @Test void findTaskCommandParser_invalidPriority_throwParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_PRIORITY.toString(), INVALID_PRIORITY); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); @@ -126,7 +126,7 @@ void findTaskCommandParser_invalidPriority_throwParseException() { @Test void findTaskCommandParser_validPriority_findTaskCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_PRIORITY.toString(), VALID_PRIORITY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, Priority.valueOf(VALID_PRIORITY), null, null); @@ -137,15 +137,15 @@ void findTaskCommandParser_validPriority_findTaskCommand() { @Test void findTaskCommandParser_emptyAssignee_throwParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_ASSIGNEES.toString()); assertParseFailure(parser, userInput, EMPTY_ASSIGNEE_COMMAND_MESSAGE); } @Test - void findTaskCommandParser_haveAssignee_findCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + void findTaskCommandParser_haveAssignee_FindTaskCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, null, VALID_NAME_AMY, null); @@ -156,7 +156,7 @@ void findTaskCommandParser_haveAssignee_findCommand() { @Test void findTaskCommandParser_emptyBoolean_throwParseError() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_IS_MARKED.toString()); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); @@ -164,15 +164,15 @@ void findTaskCommandParser_emptyBoolean_throwParseError() { @Test void findTaskCommandParser_invalidBoolean_throwParseException() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_IS_MARKED.toString(), INVALID_BOOLEAN); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test - void findTaskCommandParser_validBoolean_findCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_TASK.toString(), + void findTaskCommandParser_validBoolean_FindTaskCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); @@ -182,8 +182,8 @@ void findTaskCommandParser_validBoolean_findCommand() { } @Test - void findTaskCommandParser_multipleArguments_findCommand() { - String userInput = String.join(" ", FindCommand.COMMAND_WORD, PREFIX_DEADLINE.toString(), + void findTaskCommandParser_multipleArguments_FindTaskCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DEADLINE.toString(), PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION, PREFIX_DATE.toString(), VALID_DATE, PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); From e54ce1b866a8ce5189495441fc1561a54aa2b279 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 03:53:57 +0800 Subject: [PATCH 247/507] Removed finding for Task_Prefix --- .../logic/parser/FindTaskCommandParser.java | 16 +++-- .../model/task/TaskMultiplePredicate.java | 11 ++- .../logic/commands/CommandTestUtil.java | 2 +- .../logic/commands/FindTaskCommandTest.java | 4 +- .../logic/parser/AddressBookParserTest.java | 4 +- .../parser/FindTaskCommandParserTest.java | 71 ++++++++++--------- 6 files changed, 60 insertions(+), 48 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 4b319791803..0f76ff78c01 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -19,12 +19,13 @@ import manageezpz.model.task.Date; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; +import manageezpz.model.task.Todo; /** * Subclass of FindCommandParser which check if the options are valid for finding tasks. */ class FindTaskCommandParser implements Parser { - private static final Prefix[] TASK_TYPES = {PREFIX_TASK, PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; + private static final Prefix[] TASK_TYPES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; private static final Prefix[] TASK_PROPERTIES = {PREFIX_DATE, PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; @@ -44,9 +45,7 @@ public FindTaskCommand parse(String args) throws ParseException { String assignee = getAssignee(argMultiMapProperties); Boolean isMarked = getIsMarked(argMultiMapProperties); - if (taskType.equals(PREFIX_TODO) && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { - addErrorMessage(FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER); - } + checkIfTodoAndDateTogether(argMultiMapProperties, taskType); if (hasError) { errorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; @@ -57,11 +56,16 @@ public FindTaskCommand parse(String args) throws ParseException { } } + private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, Prefix taskType) { + if (PREFIX_TODO.equals(taskType) && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { + addErrorMessage(FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER); + } + } + private Prefix getPrefix(ArgumentMultimap argMultiMap) { Prefix currentPrefix = Arrays.stream(TASK_TYPES) .filter(prefix -> argMultiMap.isPrefixExist(prefix)) - .findFirst().orElseGet(null); - assert currentPrefix != null : "getPrefix should not return a null"; + .findFirst().orElse(null); return currentPrefix; } diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 44f4fa063f1..84c5df0c3e7 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -47,7 +47,7 @@ public TaskMultiplePredicate( */ @Override public boolean test(Task task) { - boolean hasTaskType = !taskType.equals(PREFIX_TASK) ? checkIfHasSpecificTaskType(task, taskType) : true; + boolean hasTaskType = taskType != null ? checkIfHasSpecificTaskType(task, taskType) : true; boolean hasKeyword = description != null ? checkIfHasKeywords(task, description) : true; boolean hasDate = date != null ? checkIfHasDate(task, date) : true; boolean hasPriority = priority != null ? checkIfHasPriority(task, priority) : true; @@ -109,7 +109,7 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof TaskMultiplePredicate) { TaskMultiplePredicate pre = (TaskMultiplePredicate) obj; - boolean isSameTaskType = pre.taskType.equals(taskType); + boolean isSameTaskType = isSameTaskType(pre.taskType); boolean isSameDescription = isSameDescription(pre.description); boolean isSameDate = isSameDate(pre.date); boolean isSamePriority = isSamePriority(pre.priority); @@ -122,6 +122,13 @@ public boolean equals(Object obj) { return false; } + private boolean isSameTaskType(Prefix taskType) { + if (taskType != null) { + return taskType.equals(this.taskType); + } + return this.taskType == null; + } + private boolean isSameDescription(List description) { if (description != null) { return description.equals(this.description); diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index ca889d26511..e3234a3c8e9 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -143,7 +143,7 @@ public static void showTaskAtIndex(Model model, Index targetIndex) { Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); final String[] splitName = task.getDescription().toString().split("\\s+"); TaskMultiplePredicate predicate = new TaskMultiplePredicate( - PREFIX_TASK, + null, Arrays.asList(splitName[0]), null, null, diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 44fa7f36361..ed24c0b7d0e 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -57,7 +57,7 @@ void equals() { @Test void findAllTasks() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, @@ -70,7 +70,7 @@ void findAllTasks() { @Test void findTaskWithDescription() { List keywords = List.of("Book"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(PREFIX_TASK, keywords, null, null, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, keywords, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 841ad34a765..f952d5accd9 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -75,10 +75,10 @@ public void parseCommand_find() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); FindTaskCommand command = (FindTaskCommand) parser.parseCommand( FindTaskCommand.COMMAND_WORD - + " " + PREFIX_TASK.toString() + " " + PREFIX_DESCRIPTION + + " " + PREFIX_DESCRIPTION + keywords.stream().collect(Collectors.joining(" "))); assertEquals(new FindTaskCommand( - new TaskMultiplePredicate(PREFIX_TASK, keywords, null, null, null, null)), + new TaskMultiplePredicate(null, keywords, null, null, null, null)), command); } diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index d0a9ab24e01..c2afd0ad9f6 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -24,7 +24,6 @@ import manageezpz.commons.core.Messages; import manageezpz.logic.commands.FindTaskCommand; -import manageezpz.logic.commands.FindTaskCommand; import manageezpz.model.task.Date; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; @@ -46,9 +45,19 @@ class FindTaskCommandParserTest { private FindTaskCommandParser parser = new FindTaskCommandParser(); @Test - void findTaskCommandParserTest_noArgumentsAfterTaskType_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString()); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, + void findTaskCommandParserTest_noArguments_findTaskCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, + null, null, null); + FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); + + assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + void findTaskCommandParserTest_specificTaskType_findCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -57,16 +66,15 @@ void findTaskCommandParserTest_noArgumentsAfterTaskType_findTaskCommand() { @Test void findTaskCommandParserTest_emptyDescription_throwsParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_DESCRIPTION.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); assertParseFailure(parser, userInput, EMPTY_DESCRIPTION_ERROR_MESSAGE); } @Test void findTaskCommandParserTest_withDescription_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, LIST_DESCRIPTIONS, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString(), + VALID_TASK_DESCRIPTION); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, LIST_DESCRIPTIONS, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -75,16 +83,15 @@ void findTaskCommandParserTest_withDescription_findTaskCommand() { @Test void findTaskCommandParserTest_noDate_throwsParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_DATE.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString()); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @Test void findTaskCommandParserTest_invalidDate_throwsParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_DATE.toString(), INVALID_DATE); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), + INVALID_DATE); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @@ -99,9 +106,8 @@ void findTaskCommandParserTest_todoWithDateOption_throwParseError() { @Test void findTaskCommandParserTest_validDate_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_DATE.toString(), VALID_DATE); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), VALID_DATE); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, new Date(VALID_DATE), null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -110,25 +116,23 @@ void findTaskCommandParserTest_validDate_findTaskCommand() { @Test void findTaskCommandPaeser_emptyPriority_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_PRIORITY.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString()); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @Test void findTaskCommandParser_invalidPriority_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_PRIORITY.toString(), INVALID_PRIORITY); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), + INVALID_PRIORITY); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @Test void findTaskCommandParser_validPriority_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_PRIORITY.toString(), VALID_PRIORITY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), VALID_PRIORITY); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -137,17 +141,16 @@ void findTaskCommandParser_validPriority_findTaskCommand() { @Test void findTaskCommandParser_emptyAssignee_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_ASSIGNEES.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString()); assertParseFailure(parser, userInput, EMPTY_ASSIGNEE_COMMAND_MESSAGE); } @Test void findTaskCommandParser_haveAssignee_FindTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), + VALID_NAME_AMY); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, VALID_NAME_AMY, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -156,25 +159,23 @@ void findTaskCommandParser_haveAssignee_FindTaskCommand() { @Test void findTaskCommandParser_emptyBoolean_throwParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_IS_MARKED.toString()); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString()); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test void findTaskCommandParser_invalidBoolean_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_IS_MARKED.toString(), INVALID_BOOLEAN); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), + INVALID_BOOLEAN); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test void findTaskCommandParser_validBoolean_FindTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TASK.toString(), - PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TASK, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); From 9122593f9c5474d4ebf690fb2bf79dfcad174ad8 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 11:18:40 +0800 Subject: [PATCH 248/507] Enhance find command to find multiple task types --- build.gradle | 1 + src/main/java/manageezpz/MainApp.java | 2 +- .../logic/parser/FindTaskCommandParser.java | 43 ++++++------- .../model/task/TaskMultiplePredicate.java | 63 +++++++++++-------- .../logic/commands/CommandTestUtil.java | 2 +- .../logic/commands/FindTaskCommandTest.java | 8 +-- .../logic/parser/AddressBookParserTest.java | 5 +- .../parser/FindTaskCommandParserTest.java | 38 ++++++----- 8 files changed, 89 insertions(+), 73 deletions(-) diff --git a/build.gradle b/build.gradle index c2b7a02071d..4473abeeeb3 100644 --- a/build.gradle +++ b/build.gradle @@ -67,6 +67,7 @@ dependencies { shadowJar { archiveName = 'manageezpz.jar' + archiveVersion = "v1.3" } run { diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index be241acbbc7..8c64e66ddbd 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -36,7 +36,7 @@ */ public class MainApp extends Application { - public static final Version VERSION = new Version(0, 2, 0, true); + public static final Version VERSION = new Version(1, 3, 0, true); private static final Logger logger = LogsCenter.getLogger(MainApp.class); diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 0f76ff78c01..e3efcd61b3d 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -8,26 +8,26 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_IS_MARKED; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.Name; import manageezpz.model.task.Date; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; -import manageezpz.model.task.Todo; /** * Subclass of FindCommandParser which check if the options are valid for finding tasks. */ class FindTaskCommandParser implements Parser { private static final Prefix[] TASK_TYPES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; - private static final Prefix[] TASK_PROPERTIES = {PREFIX_DATE, PREFIX_DESCRIPTION, PREFIX_PRIORITY, - PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; + private static final Prefix[] VALID_OPTIONS = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT, PREFIX_DATE, + PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; private String errorMessage = ""; private boolean hasError = false; @@ -35,38 +35,37 @@ class FindTaskCommandParser implements Parser { protected FindTaskCommandParser() {} public FindTaskCommand parse(String args) throws ParseException { - ArgumentMultimap argMultiMapTaskType = ArgumentTokenizer.tokenize(args, TASK_TYPES); - ArgumentMultimap argMultiMapProperties = ArgumentTokenizer.tokenize(args, TASK_PROPERTIES); + ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, VALID_OPTIONS); - Prefix taskType = getPrefix(argMultiMapTaskType); - List descriptions = getDescriptions(argMultiMapProperties); - Date date = getTaskDate(argMultiMapProperties); - Priority priority = getTaskPriority(argMultiMapProperties); - String assignee = getAssignee(argMultiMapProperties); - Boolean isMarked = getIsMarked(argMultiMapProperties); + List taskTypes = getPrefix(argMultiMap); + List descriptions = getDescriptions(argMultiMap); + Date date = getTaskDate(argMultiMap); + Priority priority = getTaskPriority(argMultiMap); + String assignee = getAssignee(argMultiMap); + Boolean isMarked = getIsMarked(argMultiMap); - checkIfTodoAndDateTogether(argMultiMapProperties, taskType); + checkIfTodoAndDateTogether(argMultiMap, taskTypes); if (hasError) { errorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); } else { return new FindTaskCommand(new TaskMultiplePredicate( - taskType, descriptions, date, priority, assignee, isMarked)); + taskTypes, descriptions, date, priority, assignee, isMarked)); } } - private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, Prefix taskType) { - if (PREFIX_TODO.equals(taskType) && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { + private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, List taskTypes) { + boolean isContainsTodo = taskTypes.contains(PREFIX_TODO); + if (isContainsTodo && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { addErrorMessage(FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER); } } - private Prefix getPrefix(ArgumentMultimap argMultiMap) { - Prefix currentPrefix = Arrays.stream(TASK_TYPES) - .filter(prefix -> argMultiMap.isPrefixExist(prefix)) - .findFirst().orElse(null); - return currentPrefix; + private List getPrefix(ArgumentMultimap argMultiMap) { + List currentPrefixes = Arrays.stream(TASK_TYPES) + .filter(prefix -> argMultiMap.isPrefixExist(prefix)).collect(Collectors.toList()); + return currentPrefixes; } private List getDescriptions(ArgumentMultimap argMultiMap) { @@ -88,6 +87,8 @@ private String getAssignee(ArgumentMultimap argMultiMap) { assignee = argMultiMap.getValue(PREFIX_ASSIGNEES).get().trim(); if (assignee.isEmpty()) { addErrorMessage(FindTaskCommand.EMPTY_ASSIGNEE); + } else if (!Name.isValidName(assignee)) { + addErrorMessage(Name.MESSAGE_CONSTRAINTS); } } return assignee; diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 84c5df0c3e7..a56d2e740d9 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -15,7 +15,7 @@ * The predicate to search tasks based on the properties given. */ public class TaskMultiplePredicate implements Predicate { - private final Prefix taskType; + private final List taskTypes; private final List description; private final Date date; private final Priority priority; @@ -24,7 +24,7 @@ public class TaskMultiplePredicate implements Predicate { /** * The constructor for predicate. - * @param taskType The task type to search + * @param taskTypes All the task type to search * @param description The description to search * @param date The date of either the deadline or event * @param priority The priority of the task @@ -32,9 +32,9 @@ public class TaskMultiplePredicate implements Predicate { * @param isMarked Whether the task is marked */ public TaskMultiplePredicate( - Prefix taskType, List description, Date date, Priority priority, String assignee, + List taskTypes, List description, Date date, Priority priority, String assignee, Boolean isMarked) { - this.taskType = taskType; + this.taskTypes = taskTypes; this.description = description; this.date = date; this.priority = priority; @@ -47,29 +47,40 @@ public TaskMultiplePredicate( */ @Override public boolean test(Task task) { - boolean hasTaskType = taskType != null ? checkIfHasSpecificTaskType(task, taskType) : true; - boolean hasKeyword = description != null ? checkIfHasKeywords(task, description) : true; - boolean hasDate = date != null ? checkIfHasDate(task, date) : true; - boolean hasPriority = priority != null ? checkIfHasPriority(task, priority) : true; - boolean hasAssignee = assignee != null ? checkIfHasAssignee(task, assignee) : true; - boolean hasIsMarked = isMarked != null ? checkedIfIsMarked(task, isMarked.booleanValue()) : true; + boolean hasTaskType = !taskTypes.equals(List.of()) ? checkIfHasSpecificTaskType(task) : true; + boolean hasKeyword = description != null ? checkIfHasKeywords(task) : true; + boolean hasDate = date != null ? checkIfHasDate(task) : true; + boolean hasPriority = priority != null ? checkIfHasPriority(task) : true; + boolean hasAssignee = assignee != null ? checkIfHasAssignee(task) : true; + boolean hasIsMarked = isMarked != null ? checkedIfIsMarked(task) : true; return hasTaskType && hasKeyword && hasDate && hasPriority && hasAssignee && hasIsMarked; } - private boolean checkIfHasSpecificTaskType(Task task, Prefix taskType) { - boolean isTaskTodo = taskType.equals(PREFIX_TODO) && (task instanceof Todo); - boolean isTaskDeadline = taskType.equals(PREFIX_DEADLINE) && (task instanceof Deadline); - boolean isTaskEvent = taskType.equals(PREFIX_EVENT) && (task instanceof Event); + private boolean checkIfHasSpecificTaskType(Task task) { + boolean isTaskTodo = false; + boolean isTaskDeadline = false; + boolean isTaskEvent = false; + + for (Prefix prefix : taskTypes) { + if (PREFIX_TODO.equals(prefix)) { + isTaskTodo = task instanceof Todo; + } else if (PREFIX_DEADLINE.equals(prefix)) { + isTaskDeadline = task instanceof Deadline; + } else if (PREFIX_EVENT.equals(prefix)) { + isTaskEvent = task instanceof Event; + } + } + return isTaskTodo || isTaskDeadline || isTaskEvent; } - private boolean checkIfHasKeywords(Task task, List description) { + private boolean checkIfHasKeywords(Task task) { return description.stream() .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(task.getDescription().toString(), keyword)); } - private boolean checkIfHasDate(Task task, Date date) { + private boolean checkIfHasDate(Task task) { if (task instanceof Todo) { return false; } else { @@ -88,16 +99,16 @@ private Date getDateFromTask(Task task) { } } - private boolean checkIfHasPriority(Task task, Priority priority) { + private boolean checkIfHasPriority(Task task) { return task.getPriority().equals(priority); } - private boolean checkIfHasAssignee(Task task, String assignees) { + private boolean checkIfHasAssignee(Task task) { return task.haveAssignees(assignee); } - private boolean checkedIfIsMarked(Task task, boolean booleanValue) { - return task.isDone == booleanValue; + private boolean checkedIfIsMarked(Task task) { + return task.isDone == isMarked.booleanValue(); } /** @@ -109,24 +120,24 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof TaskMultiplePredicate) { TaskMultiplePredicate pre = (TaskMultiplePredicate) obj; - boolean isSameTaskType = isSameTaskType(pre.taskType); + boolean isSameTaskTypes = isSameTaskTypes(pre.taskTypes); boolean isSameDescription = isSameDescription(pre.description); boolean isSameDate = isSameDate(pre.date); boolean isSamePriority = isSamePriority(pre.priority); boolean isSameAssignee = isSameAssignee(pre.assignee); boolean isSameIsMarked = isSameIsMarked(pre.isMarked); - return isSameTaskType + return isSameTaskTypes && isSameDescription && isSameDate && isSamePriority && isSameAssignee && isSameIsMarked; } return false; } - private boolean isSameTaskType(Prefix taskType) { - if (taskType != null) { - return taskType.equals(this.taskType); + private boolean isSameTaskTypes(List taskTypes) { + if (taskTypes != null) { + return taskTypes.equals(this.taskTypes); } - return this.taskType == null; + return this.taskTypes == null; } private boolean isSameDescription(List description) { diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index e3234a3c8e9..a6199a59566 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -143,7 +143,7 @@ public static void showTaskAtIndex(Model model, Index targetIndex) { Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); final String[] splitName = task.getDescription().toString().split("\\s+"); TaskMultiplePredicate predicate = new TaskMultiplePredicate( - null, + List.of(), Arrays.asList(splitName[0]), null, null, diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index ed24c0b7d0e..c816bd1a09e 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -29,10 +29,10 @@ class FindTaskCommandTest { @Test void equals() { TaskMultiplePredicate firstPredicate = - new TaskMultiplePredicate(PREFIX_TASK, Collections.singletonList("Genshin"), + new TaskMultiplePredicate(List.of(), Collections.singletonList("Genshin"), null, null, null, null); TaskMultiplePredicate secondPredicate = - new TaskMultiplePredicate(PREFIX_TASK, Collections.singletonList("Impact"), + new TaskMultiplePredicate(List.of(), Collections.singletonList("Impact"), null, null, null, null); FindTaskCommand firstFindTaskCommand = new FindTaskCommand(firstPredicate); @@ -57,7 +57,7 @@ void equals() { @Test void findAllTasks() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(), null, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, @@ -70,7 +70,7 @@ void findAllTasks() { @Test void findTaskWithDescription() { List keywords = List.of("Book"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, keywords, null, null, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(), keywords, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index f952d5accd9..ddf153eb3d2 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -3,7 +3,6 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -71,14 +70,14 @@ public void parseCommand_exit() throws Exception { } @Test - public void parseCommand_find() throws Exception { + public void parseCommand_findTask() throws Exception { List keywords = Arrays.asList("foo", "bar", "baz"); FindTaskCommand command = (FindTaskCommand) parser.parseCommand( FindTaskCommand.COMMAND_WORD + " " + PREFIX_DESCRIPTION + keywords.stream().collect(Collectors.joining(" "))); assertEquals(new FindTaskCommand( - new TaskMultiplePredicate(null, keywords, null, null, null, null)), + new TaskMultiplePredicate(List.of(), keywords, null, null, null, null)), command); } diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index c2afd0ad9f6..d9e1364928f 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -20,6 +20,8 @@ import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import java.util.List; + import org.junit.jupiter.api.Test; import manageezpz.commons.core.Messages; @@ -45,9 +47,9 @@ class FindTaskCommandParserTest { private FindTaskCommandParser parser = new FindTaskCommandParser(); @Test - void findTaskCommandParserTest_noArguments_findTaskCommand() { + void FindTaskCommandParser_noArguments_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -55,9 +57,9 @@ void findTaskCommandParserTest_noArguments_findTaskCommand() { } @Test - void findTaskCommandParserTest_specificTaskType_findCommand() { + void FindTaskCommandParser_specificTaskType_findCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -65,16 +67,17 @@ void findTaskCommandParserTest_specificTaskType_findCommand() { } @Test - void findTaskCommandParserTest_emptyDescription_throwsParseError() { + void FindTaskCommandParser_emptyDescription_throwsParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); + assertParseFailure(parser, userInput, EMPTY_DESCRIPTION_ERROR_MESSAGE); } @Test - void findTaskCommandParserTest_withDescription_findTaskCommand() { + void FindTaskCommandParser_withDescription_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, LIST_DESCRIPTIONS, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), LIST_DESCRIPTIONS, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -82,14 +85,14 @@ void findTaskCommandParserTest_withDescription_findTaskCommand() { } @Test - void findTaskCommandParserTest_noDate_throwsParseException() { + void FindTaskCommandParser_noDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString()); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @Test - void findTaskCommandParserTest_invalidDate_throwsParseException() { + void FindTaskCommandParser_invalidDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), INVALID_DATE); @@ -97,7 +100,7 @@ void findTaskCommandParserTest_invalidDate_throwsParseException() { } @Test - void findTaskCommandParserTest_todoWithDateOption_throwParseError() { + void FindTaskCommandParser_todoWithDateOption_throwParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), PREFIX_DATE.toString(), VALID_DATE); @@ -105,9 +108,9 @@ void findTaskCommandParserTest_todoWithDateOption_throwParseError() { } @Test - void findTaskCommandParserTest_validDate_findTaskCommand() { + void FindTaskCommandParser_validDate_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), VALID_DATE); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, new Date(VALID_DATE), null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -131,8 +134,9 @@ void findTaskCommandParser_invalidPriority_throwParseException() { @Test void findTaskCommandParser_validPriority_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), VALID_PRIORITY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), + VALID_PRIORITY); + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -150,7 +154,7 @@ void findTaskCommandParser_emptyAssignee_throwParseException() { void findTaskCommandParser_haveAssignee_FindTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, null, VALID_NAME_AMY, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -175,7 +179,7 @@ void findTaskCommandParser_invalidBoolean_throwParseException() { @Test void findTaskCommandParser_validBoolean_FindTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -188,7 +192,7 @@ void findTaskCommandParser_multipleArguments_FindTaskCommand() { PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION, PREFIX_DATE.toString(), VALID_DATE, PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_DEADLINE, LIST_DESCRIPTIONS, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), LIST_DESCRIPTIONS, new Date(VALID_DATE), Priority.valueOf(VALID_PRIORITY), VALID_NAME_AMY, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); From 4e4b3c91665940fcfd580121257727087409a9bc Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 11:27:23 +0800 Subject: [PATCH 249/507] Change list command to list task Current list command only list out all tasks. As we start to implement listing employees, we need to separate the list commands for tasks and employees. Let's modify the list command to listTask --- ...{ListCommand.java => ListTaskCommand.java} | 6 ++--- .../logic/parser/AddressBookParser.java | 6 ++--- .../logic/parser/ListCommandParser.java | 18 --------------- .../manageezpz/logic/LogicManagerTest.java | 6 ++--- ...mandTest.java => ListTaskCommandTest.java} | 8 +++---- .../logic/parser/AddressBookParserTest.java | 4 ++-- .../logic/parser/ListCommandParserTest.java | 23 ------------------- 7 files changed, 15 insertions(+), 56 deletions(-) rename src/main/java/manageezpz/logic/commands/{ListCommand.java => ListTaskCommand.java} (82%) delete mode 100644 src/main/java/manageezpz/logic/parser/ListCommandParser.java rename src/test/java/manageezpz/logic/commands/{ListCommandTest.java => ListTaskCommandTest.java} (78%) delete mode 100644 src/test/java/manageezpz/logic/parser/ListCommandParserTest.java diff --git a/src/main/java/manageezpz/logic/commands/ListCommand.java b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java similarity index 82% rename from src/main/java/manageezpz/logic/commands/ListCommand.java rename to src/main/java/manageezpz/logic/commands/ListTaskCommand.java index e9ab5580d74..4c7b76fb2a9 100644 --- a/src/main/java/manageezpz/logic/commands/ListCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java @@ -7,8 +7,8 @@ /** * Lists all persons in the address book to the user. */ -public class ListCommand extends Command { - public static final String COMMAND_WORD = "list"; +public class ListTaskCommand extends Command { + public static final String COMMAND_WORD = "listTask"; public static final String MESSAGE_ALL_SUCCESS = "Listed all Tasks"; /** @@ -27,7 +27,7 @@ public CommandResult execute(Model model) { */ @Override public boolean equals(Object obj) { - if (obj instanceof ListCommand) { + if (obj instanceof ListTaskCommand) { return true; } else { return false; diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 1fad87b56b5..680281fa7e3 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -19,7 +19,7 @@ import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.TagTaskPriorityCommand; @@ -72,8 +72,8 @@ public Command parseCommand(String userInput) throws ParseException { case FindCommand.COMMAND_WORD: return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommandParser().parse(arguments); + case ListTaskCommand.COMMAND_WORD: + return new ListTaskCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/manageezpz/logic/parser/ListCommandParser.java b/src/main/java/manageezpz/logic/parser/ListCommandParser.java deleted file mode 100644 index 61d575d1fe0..00000000000 --- a/src/main/java/manageezpz/logic/parser/ListCommandParser.java +++ /dev/null @@ -1,18 +0,0 @@ -package manageezpz.logic.parser; - -import manageezpz.logic.commands.ListCommand; - -/** - * The parser for list command. - */ -public class ListCommandParser implements Parser { - /** - * Parse the user input before executing the list command. - * @param userInput The input entered in the GUI by the user (Will be ignored). - * @return The List Command. - */ - @Override - public ListCommand parse(String userInput) { - return new ListCommand(); - } -} diff --git a/src/test/java/manageezpz/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java index 3a8db9dddc5..5f05e26f193 100644 --- a/src/test/java/manageezpz/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -18,7 +18,7 @@ import manageezpz.logic.commands.AddEmployeeCommand; import manageezpz.logic.commands.CommandResult; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.Model; @@ -63,8 +63,8 @@ public void execute_commandExecutionError_throwsCommandException() { @Test public void execute_validCommand_success() throws Exception { - String listCommand = ListCommand.COMMAND_WORD; - assertCommandSuccess(listCommand, ListCommand.MESSAGE_ALL_SUCCESS, model); + String listTaskCommand = ListTaskCommand.COMMAND_WORD; + assertCommandSuccess(listTaskCommand, ListTaskCommand.MESSAGE_ALL_SUCCESS, model); } @Test diff --git a/src/test/java/manageezpz/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListTaskCommandTest.java similarity index 78% rename from src/test/java/manageezpz/logic/commands/ListCommandTest.java rename to src/test/java/manageezpz/logic/commands/ListTaskCommandTest.java index 61fdf262e41..563c4182769 100644 --- a/src/test/java/manageezpz/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListTaskCommandTest.java @@ -13,9 +13,9 @@ import manageezpz.model.UserPrefs; /** - * Contains integration tests (interaction with the Model) and unit tests for ListCommand. + * Contains integration tests (interaction with the Model) and unit tests for ListTaskCommand. */ -public class ListCommandTest { +public class ListTaskCommandTest { private Model model; private Model expectedModel; @@ -28,12 +28,12 @@ public void setUp() { @Test public void execute_listIsNotFiltered_showsSameList() { - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_ALL_SUCCESS, expectedModel); + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_ALL_SUCCESS, expectedModel); } @Test public void execute_listIsFiltered_showsEverything() { showTaskAtIndex(model, INDEX_FIRST); - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_ALL_SUCCESS, expectedModel); + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_ALL_SUCCESS, expectedModel); } } diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index f0cd7dbd135..de66277d2df 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -24,7 +24,7 @@ import manageezpz.logic.commands.FindCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.person.Person; import manageezpz.model.task.TaskMultiplePredicate; @@ -91,7 +91,7 @@ public void parseCommand_help() throws Exception { @Test public void parseCommand_list() throws Exception { - assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD) instanceof ListCommand); + assertTrue(parser.parseCommand(ListTaskCommand.COMMAND_WORD) instanceof ListTaskCommand); } @Test diff --git a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java b/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java deleted file mode 100644 index be332f23846..00000000000 --- a/src/test/java/manageezpz/logic/parser/ListCommandParserTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package manageezpz.logic.parser; - -import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; - -import org.junit.jupiter.api.Test; - -import manageezpz.logic.commands.ListCommand; - -class ListCommandParserTest { - - private ListCommandParser parser = new ListCommandParser(); - private ListCommand listCommand = new ListCommand(); - - @Test - void listCommandParser_noOptions_listCommand() { - assertParseSuccess(parser, "", listCommand); - } - - @Test - void listCommandParser_haveOptions_listCommand() { - assertParseSuccess(parser, "1", listCommand); - } -} From e0e980b740026efa4f1fd8dd46152a95175b802a Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 11:39:46 +0800 Subject: [PATCH 250/507] Update UG with listTask command --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cfa8a6aaeaf..abc500b9f65 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -93,13 +93,13 @@ Format: For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format)

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 diff --git a/docs/images/ModelClassDiagramUpdated.png b/docs/images/ModelClassDiagramUpdated.png new file mode 100644 index 0000000000000000000000000000000000000000..5df4c4e3904500274ab629f0dba39bc7345be430 GIT binary patch literal 62051 zcmbTdbx@p5(>IzBba8ig_uy`eySqb3aCdiGAb8M4a$~{W2_7_o;BLWnfkn>de%`mf z@A>CcokP{m)?SSCboX@k{JO6=4K)RH014pDn>Xl+Kv}IfZ{V0=A8TYp*po4hFg)1T zTMsP-={L1gWJji4o5L(=En(OCYK#gXfZ zp&Byh#gV&D2V(64&I5>WAJcxE`4t|BrmjHNnR|si?Dk)WxX=c<&}h-PK~_Z3mPGOf zRy5za5~b;brYV+sd~;3=GEY8nqYWY_$Keff0X~x}r_pUS5A!^)sdur%`uG1GCtuv~ zsoyHDPE(&@(P{Vp>W+`g9BsKv__xJlVbDSw9OeAmGU=#*iK0Q~e_PGUY#=upZSUW< zRO8>-g8z5UEu0*KV=qPDXEB!q7-_Em>3?F_X_oo4Y?$eFw)cP5g6(1e=kG$WT}0CV zT?Mu=WaYm@V2`jf|IYt+qip}RQP`uzZ$q;2mPAoX!(s0lTqg9EdOvlxeuwoG{12&f z3ofa5y?^`+Up)>8xjQ zxAFR-uO@ma>$mq=-{$%8wt(j0i;V2J#LFcnvta``@a5s)e`iLpn-;xJ%=iEE^?{JN zBHuke@S-1SUGFdZxe~*R_3O;szvJuwFZ;W={!7ok(F7D^$SHTjR7sZgFTaslTR06F zw9SI_%X^{qFgYYT{AH7@P^Zs%rf!wq*BaAKJ@2#Cqtmf)#SA90C+n7vOWUU?{5|qLWm1 zL)HUuNJ)=Re^{+|`OSe9(@(5BypH!_QzFN=wF!2=WYzUDKTn8x{G{32?2q8F9Dwg0 z);A9-oBl*3e>wb@IPRmPqpRb(-tpJxjn}Wwr!FDsuqpna&A+^;eGxu-0-n4MQoc~} zJ1zVSDz;f^`E<2pUw9;T)_$mU{DZ+A zS%Ds5 z>3-V0Xm^gvpmq3JliiN?T?)c%LP(l_=C4Nz~>b>&msxIVNc|41=?jZ2_cF}zhU7!+a ze=o~?!I@+;xH|xn=`kgwaIXDTi$2LuswqF{Zpn~lZ+iml@%1Y0;t@*nJ7HwE91G#-d+ay(WeX5?J@$!2(HRvC0Gs^?Dx7HFzGKHxAt$%`0@;b97xu z!?Y>M*|^=k%->P4M{p6&(R|B?60Y4A=Ggv0bfP2$-zC=-CsviohJ#@MMf z{qIQ^g*gCuJX|KNi^$1B33JxRzY0V`8_o!pPa;Xn$N;<1w#xzP8B}hDy@$TTPQNF# zCkVQGP#BWg`}%zD{)2zfLF!%4NaPNTL&1tb;LK^_T|aG_G1xU|oHUt{!)`c{xZ{g2 zaWtp4!|76^LTe68(4&L@nuRbL1a;(s1ZtV+N=U>fUup5@8|^O>kxLF933!oj-DvFd z-JS7D8rzOmHv;_+`4I|~8K?Aoa zL-cp>=Tk5WYe%jV(L5L^z7xv-RrRaCrd3m=2*|8on?D@NWs`l6*MglQ{ZVlf>m?JHxhn5YlJeyL@9%*xHLT50|C^}L|)kLaiG-v;g_c;#y|v>sr(U_%>(QxIAMU` zCY!GYP&q4okS=8jF}Znt9nU(BIZpNdFP)Ayv_e87q7v8$Y(%W2kzc4bETuqg`Sp*k zvK(Bg*I|z(X+3Qi7G{IPEY0aKv+h3`09;x40=zD^V4p-xE356HI2La##>6Yj0YNyc zxCFn;?}WCnN!Di#r?a!OE9;qI2D(oC-Qq$1*;=PPCtd8Ol`k)pn3>OcRdCH2W`h6q z58TLT<=^aUaYe~IN2q9Gu`O5fg*^CrB0s@*HzaKh^lzFZ6H5el4d=qMY6P}%_BUu( zsC^zwXRP9~ntT6}LS^ayyvmg%&dn<-^X=F}wRSMLOUh&#<}Z@|I_80RG{)GwPwO<$ z7U#b%7`x`LKclS%8W*xCn)**%t-t#(7shVDcFBKC-T-K@B$|!+cLu=U*yR2{!~XSw zDgQqn$HU?STf2Eq+q0~V0AsYlSiOHkBCrj(Vxm6?+TANV=W`A^O~@QgE>m1508QRR z7>?N3`Ty;T_-|Jmo0ARBJo_mSeh}i=S;nvRg?uj6m&|t5n{0CBU_uU<9~S@XhnaXV zPFCr!jhjI0gllxX>#t8(#o>}mqE59czFWG)zRy7o)!OPVDX{&8{@qACnjVK4KCkqn zS#aKsDD;Ek)22`HHfqMDT9M}?bO}fQ(Q!$b^Byn>TY%x;1+=_tOz5@$2&COH=F^Bx zx64P3Pl5NAC^C{mM3g%U0^=q>UPTR;!#XCsk!@lxlj#JoO95 zJU#MaM>mj0ovxu(V?8ZKI$wL(0QP?ej4rjf#tlgr8zU%ozKSTmp1N*-eRRnRDda?{ z>t#F&nCmJKz8%%*gootY@zg&g}G6(P)rlJ~Z0gzcQ0I z_~tmwMy%Q5-XefdKX>F}KM_f2o*tCf>Z?E;jjj5xblHCQ2E|N5_mPfnQap5uHsy|d z_Q+w(!aPSFvC)?PuEEz{z1Eh0lu{%XHR<%r?)o%w z@*tJMs;9TQKOLk6pfPSlfBi zS+m!6e2|*H{Q~C3 z!)pgF@i-Nrh1`#w_+d{@4)pt*x<;@$+$z`OGCL_Gr}yZuW8Vnm;P)i`qhadJVSW_! zW&3SG;nEKy_-8RYJB5a~i)&T9z&s!~FRLUk$cg~)xA|m8^L?@!Yf?7ekm+yJloN-? z+bGS2%WPNtx0$tL(3+eC^s9igqXuA&TprA_^RmMKzfF)~W%K1FIQgdYk)zoH8bO>; zbt?${;P|TGLjT*kY3fy2J*&-rVJb`@YqI{SdkOSIR!QyHd%R58M=^!B4$vXdTA${Y z^=itrrrs-h`0_-ucoaO0kK+*{6c==XauhV1B$a}y&kNGJSh(c0R|?S|zU$pT3(WF> zt=i%#a;x<$@EbO2?I( zm7r^xqx;szaEf%wW7lm*VQRhcKFbDSJFtq&&l||z`Hw4G1}*pHP|~w`MMA~G{=0*g zT1Hd4QWkMW>#8n1&ye7n<5!M3(V=srg|8KfZ078TZd)H1v;gZsT3n}Y4qWr#LH;u} zbbl3RYwU?j&YwOdkn$qvwUf*_d+Cw;kJx&i+ayTYienan7)S1;tP-|Sj6@;zntG>6 z#}j0r2wI;Ua+&-vjWBmvXRmmk;NqRhOS?&L88YorJBzko^*Z$`ZeHH?SX&)On%->E z9n!V3aYT9W=dwvf6_oCSd$9=telieNpHE=g4o}E4LgNB2+6=;8tTa_hI3DvfW%v z?Cen#$uIig3i8k^GVQaYlHxY~dy8wtfGo4xZ|7F#^z8vF%a`D=~y4>nZyl|K9v?%ir*tb&Pnpoxi}t**Jcv^ zPjsM_6j`Egb$mxHZvLNw>+e2)_=y8oB67ctaw&^=X0dzhPmH?jnotMU6V$eGkHLHN zJelF-1#SU)>~*nR&3SlgRzNBG={b}^)V%9Z9fqE(XgZ&B);!z;hY4Je?0)Gj*Iu)a zZEYvUFhA5h{j=hjtck}@-03kDAIyTJEMkx7OybY##qOxA#aba1$O2 zfNh0e9v)fzvEgLS0%hm99LWhG7YZzjCOH-Kf3NWsOFl3UWqK5}m6Us?Aa+?@O)PGt zcSBlzpeg0~aE`!p5;pRyQNf7eG~N4Ix-AQr%*~di(^E&;F61$ZuIr^h#pwq0!mw~n ztk=*b9^%7TqL5j~GEW-9;?e6|NdEXxj9Fj*aYI*H3qWX_z$vALI+bQrzWN3I2iKtYPNvL4ZUoh@)G# z7oWyz)HDTAX#e9;z|yDMOI;a;#USN*=7U*$p^Ne~qvTuR*T<7HsaoC&Kjo}_@j1`Y zdS7*d=2I$C2K9Nqa1F_uyUuNloO`WzS(&D}j*n%Td&p#G%F9J$l+QNkS!d$2?wJi- zUzIt#r@+F7G*KN^Ge78Wmqu|tdOwyOMG6lR4)DQ!MY3zVncz-8Zhzcf4)BzCNI9s; zr!$>?c{1)+FI09O8_%n)mmKs^diK$2ny0c0*c2&Qr;@l>88ctygm5D`!c5SFiB(0j z>_AFLOY-FNKh3rFQV0d7#9KraFyP>F`qwYGbZe$2=ISxDYvU)nYojL69mm@=*Sl)N zDp&-W>3zcS6}NoUz2XpR;@+6Z1Wo*Co<;|4`S|&}gwM|bOyi&BU#dxYr82!vwx&*L ztD=V-2N(v?J09K|^7E-JBz<9G^~d}<5O`YYy98=7xpQ8w9!X)-*WJ<9yCL7LI z>4FO*>lz&glzZaH@e}|s#Vrax+|dBVC$Y)|z>B*#LZb+#!m2FtTf}n)SJ-|D824q= zy1yfnd8;__$zW`xS;O>ad3P`)0LWqi2%I}{VEoD4cF^85HBbbmuWc@wrdr~%?U?j^ zeqcXozV6qEf~a35u;^ALi?Q2U*FJVst20&JRLf^2Ez)$ zZKtcOwib!|DPm3wj{XIZADBj(umEhO>_=Qf!>fkjlau}FoC>*w+&t$ZOuK6QPyDkO zGrj&4L#WqiCr5elRwslZTG-7^K>~(nS3lx|WppxT2Ix1`LLk;ZM0Oq5-#)O-L?{J+ zxm>qD%U-Yj=s*vPFE#ac?;3J}LJc6qufKKjJD^ve?1Vt$Eo38tmZG)GthH}{@f;KB zQ&1BqwxSxfcs<_@H(gXo?+7U$T_xr`d59a=c!O_qyKLp`^HyPpfm$a3sQj|&{a{^gxqrS_b3D}*_w+=g2U|D-wz?UeD!bc* zeVj5>n>4uSmN5w_GP8%(2XhE-x}W!&)Qa+-%7+C)rGNFg|H5o0T-sLq4T$J|rt9gB z(XJiM4dJf$&RPG0e`ZM4QgH%J?xYhxA|bA zmK>%Yrc+il2Y(*@hkEdrvCNiY2vc0nq^zwZD<~jM^U=gVp+(g3HqF6N_2MHkYQZ~w z`Wm%bnev?HrPebN!VkrgWm2|L0uDcSe%%V)qx%MpvYk}S6<=-Tic)g80-z7Wg3GgeU6;wn{r6FfLp(>^Q&yvTO~e_;hiVzQADwY$9k%w=I|*N ze_a<~ynvbocZy>=R$uo{E#5?4NCCfgu9neXAw+d--oXOIFsvIQN9w`Wqv&7w>qZ%$;E$9?5@T0%tl>CM zk66;QqSv}sJq@mULJ1YI0apRH zL|L_$COdB1%VdKAJFPRid*&5Xu;`1LDDKm^Q&MvuxKB^Osy0)6jTm0()0a-k{SZhx zfiKJxGH5aV9*cb8jzt9Ax#>DN4kITj7HjM;H{H9sK;_@ij-+nsn6$~N!rjyzp<+d% zovGs^+MAW-*u*-?Y1LEV5Ip~sdasiE4^8B!SS+6S5ON-xT3w?zHhf0#o_-J0VIrUf z4pWU6p$~XZ9PiX>q28JH!@5++#WKlmHPO}LYs||MDyV`Z+;R>e8ZD;HOYe(Q9Fndq z8Q=TzwZz&@@MqxT@e#}E>Im7kq8kEbjcjiTRnk^Y@vo6qc^jl*@K6R5Bde*ARF_@F z-bj_>WBGR_+Z3Q7uN4eQ8F_@14JeFmFKxQ8kQsH0s!s-`IF?C6Sk`5_0`TTyvEj9f zxXLvc?WBx5$UCY8xS&G$n#CaVN}H#E!Q{z z`$!=fF>x7PNrECB!2+saMi@79#vUJ^Vka`9gsMuwv5X1nc>y zlP58C^~Ig$aN0h$Ff!UJ37;tT$WM`sQ{QJS;EM-UvOYTb*4&|h(DsLhGoN4(Pyq79F17<9L~T_|F^fh5DHJwu!5o`45% zfEOmnjs_n48Y7zcq{QR3%<>S1;QfrW|DL1@1avvhD_2B?A_k+?ua@40=a>Z8+r<;ls!ux28-`q#|T$mG9x%o10h_Z&6XoVQEfr@7f z`V;mr-qvnnE977J6akO+=Frx=U`UWV7-ihBi__N)i#cE2bkiIc6^}XAa_Idfi>HES zEo~ohpCpOgo1NkzYlUDy7e@4E;lpfJL%=T*LlLW!^Jyuc9$XF-m#&I+k<%V8Kkv!_ zPT%D?N-&z-@0p@qBf}As;%&BLqV;-_;W+7VKaUNO3_F@Ktfa(nn)2{+_mQ<&E~+pa z%Imsoy1TFu{x>Yg*_rts5b}HxgT;FF=?dzJFns!3XW%i@`)boV&yd=!(TRz!;c$Nn1L`*0bX88?M5)ny{$r# zE{1Fep?=CW>hzVWsZ|JD3)-m{fbtL=vk&? zn0APNl(9)|Ouxx&Oa{JV9zbz@bIoCDR`Za09rvk!B~HQ3uP}@QQ?$hI?KFd_eBvLf zQ;!f9sddZ}WY9j0I^TfG-=pVG62G|(1YMBdi+bZv?j@9;7;uqn={% z#_dFTU_e4Hz4vsR)-ifl_VI}Nf@suY?wS6Ou$f>%5SUc~dyP+{U82BwuGAdEgW>@_ zOlB!rATk=>md8ry!jH>JjiG%*=4D><)7zv!1F$QgoI{)IQOhWX8ojBDm#%eeZaV*Pu!H&M0v+;O7MO0BKN19P=%F6LNWtN$)!_jkus)y5#<-~E*A!&@ z*1}&E%5vyWA&i-v>Ly~BtwJDVm{#epUpPH5?{FMdY5TpTPDs4=F4#PfYeG2M?R86n zb!ST!aOAy_`Kf{0vcp?<=8ya?HCaL~Z5-Z4EK<=M(bd+OOf<3CGlFup%DLAQh9uz`(2UbvW>HG8x#*bhrXw4#QaF%ik( zYc*q)xR;{7)8~(RyB11Xp#n)}6TV{AN?t%T38^a=0ch>(S*qblAkPYPL?3>T8q&z- zIRVAL?N0=5iEWK-cJmm$bqnRX6#Kvp$<&=jcU#k>HG%!Y?t~vzxEV2e7gXHPk(I&b|_!y zakV0zq_eQ{P1_~L`K4U@TLz(y3xb-vQ_zIq^ne-JIeYbDUCtT*6qO)Uz zzFFysjx|FL-@_R*?+^hd-zVEAGr?o5TfgQKnPG`aWZXWf5-W;RuUYz@jxvJfdJ6{U zrTqH)5XN_w)G9R)TOr%M+1ueaDn)ewe@1W5T56Y&w!AnP25du=!8^Qxht)Lq`;0Q; z>ip^a+Pxz|%o6nMvw0Wl!7a8Cha+J?I2a%;wYsDW2pf5XJ~`QZ3Fsks5=usOFC_B@ zKVw_KQg#qQXLqChCK#rAb>@q?MW<0zBnzOBR<-B&lJ*|kKDgs9DX1%j%rT-VO@tk3 zWk2!yh-A*^_*1FHzIeNscs`|Xp~Zn6CE>1F54q#(rBT}um`aDpv`jk6(0$EiKZyGN z!ncN8%loN<)}eShMQ}cI>lr=ZesJ?fBn)e2F&flt%bPm zec1G7w_odauWKgoMHkEJN)~r@y-~cVb2_!p*d<=%&=irCWRw%O)&2P;&wYfKc_^oC^QflE&>IR(5aTD~e zs9tDGwm5(eCsxOxdfHHywg_gP;cg44fFo1t+2ph!Ju!iclC&J#zyiVOGM;#*-w!?5 zfpMv0sN=?VwG2I#^BYs{Rw8`~q54}X6(7DanD)T8AiZGlHa_M4C#le}Md0=u)cbgf*8n%tkONv zpus^9WS)A1e`Z)O$dFM^lx&57W0tzCe+rVsAD>+!#(6kSUBmU7Ftw9LD`xN2&z+Wl zt%~*o{RvhZ^uQ0xW!OboctSR>7#gwL#=71uQQ+6P9=O;An2?JYv4SL5KurV9AAEe7 z#RS_nd}@F~yQ`Ac&!kt1X5U;k_F*W^)E=|ZQVtM>vb58FK5^+UGgj)^3_G7OkW6Db zwe*n0Hd@!J77@sk_6K{Kt%sd1nCkJCKgA*K$ubyp86AY@%--V~ihayb1OAUpXw1M^ zObU_Wvy)-N8m1wDojyV>4f!`kEhVoYkDQOg1HAu4FuBOHTzpgz!T3VOI%NqjeJ0sU zOZ?VAw%jR-*e1l8Hg?kdn(lXS;>I|j=!x`Wh!m-_oxJGY(>ms{*1NFAg6JWW;>j7g z=&>v3aEcu^F4w!hDbtQn+SwPhMZ1hx%B%q{9r@2EM(xYWzvPsq5T+=`?xWed`&z9R z_Et9%sZ_hvhQ!HSD9Xdjj0Y%dJm_dE^UsL|g$yhW+u*0tk`1S$Yso|-z~=iQR>?$m zd3KrW?2Y?M!!OTL@9ZzXrBZtAYBH`8=TNOGN*jj-T}n*S)6bKTw3OSPAi$k%mlC+GAQDv#HT%X56oJj_}LNV zk~wee{V`fUrz5p^Iq?m;w@Q&*7qA$|PPDyNW4Sm0qx97*W&?4OS4(5q=HqhjIl$z_ zu3WMbv6v6|;zu*)~=aN_M~_|X81l46UI-S_a6 zGMfeoOfc^HF%#XH=nTeThYQEZpD>X>R%~a%seM<#DpKT zSjeQtz5eF0@4+zLgKGBCnhYvd;(Z2M?!uMk8wllbFh-LhomEI%7vM+F%=2TnojWAC zq+dJ+{P_-Ok!aP_oT(Z1eC@v@1V=>xHN$x3ahYn#N+&Jdw8pWneoyUw7V7fqmj&?3 zr89mFgqyI@d$d(0j`rmB=f23-AoZBn$mEWw>g9WjjkCP_$^^lKH0HKe`qp=3gJcb!nlI@&cDdS&)5wLSuNAo?*ew4)^0p@*0!s@--@H@8V3Cs z9M-rqxa+Lj5aS9%a!yk%TBOhfyzuD&_)-Ja)z!R%8S6|wG~4=^sZnQ zB)tZvkYL>FPo856b{FWjqDP+vn))nXQ1G0;?Qj{j$X?910lTChp(u1gw#rRkx z;UWvMU>2-&SIDe4;wp97Pob_BbenH%5&x0K=qNmRR9@iH3n694VIgP8mR7lRKD5d? z8=~Zm;4#EmFC|-aJMj227)My}R*J}%GueLJQ7>6M--kIHcvd-{-slE#bIG>Kzv%o(G1v2i}|L$~bsa7$domCm|fk7f4x(5+zA&iE}b*a}Y4}*93T2@H@1P7g69v*=<8)(^0 zc7^6Qz?q)Y{F!6+7ax;|_hL@XyXpRWvp@BdrEd=ob_U5yH`exyjV?P1a#@`eS#^q3 zsDKfmgOXyIh-iyDKlWf))Pr5oFFF(~gm2KJDR2=`d3e1;u8<8nVC=eCriMP6x^>1Q z?U#?&r?~&>#tr#YA)^B6Jg~~Xx7<)zc$k!)kS%2M*$N@-;k12Op1l;7P_~dUIHvUp zJ_{^=m^LP4at(NOI-B#e)n1J?TzM*|T9%>i6IY*7Rh-0az_*SlEE96=Z8 zhi2P8kBfr&z%d41?K|hyYF_E7kIN=vPI9WSy9JBQ6$-mbZz_HFmTB=;|4D8bP1I8a zYtE;pG)H`GF2wQxlVu(89jApwPt_MWsz;irbESkF1JvmFMiSoZuzMQuWx4S%auF{* zGZqyRKTmUtGUCn0S-T<68;Je!cD_TFODLO$ncA{Dk<2ImAkM zT-==PGB97=a71J<0T|TxdZ~65@N{fplI0(MgzIb8gS01{9YgxUznd3T=oTHFyH>fi*1S%0((Zp<)esf7d4(NnYH!2C4V+Q8DhD&E0Hx#192;0AxmmM$4 zqnyb^YScm$Pj?y8KJ=%mrMf^hT}@J6^C*(`tNnSYZPPx%MK>u4ntM)UZ9Wc-+^BvK^FWOBLAOXm!)6XwDiH;~i5f`86 zZanc0BF3CzARTr-%I}Ex{d2I=1lpD0{IA9Z45?8TSZ%>xPoO=^*oi%WYuuP$)FTm(k!mt7onw@jS;X$x%&|fpj+O6x zV|orP?960Q&HTn?YR5#1&5lCW#CUcwvRu}nw9i-T52qOi%aykUpkFy(?STh9gbW{K z0YR@%u89C-eO&D}ZDei1OX*Rx>OT`P3dIdLbY}24-1X=>zB(UtG^&q7t%jZYFJ`+fdNQ*MQAXf+Kd&p)-?3+~|Un3^A!x)0Rt5Nk9^VPi4N7!>n8TBGkX?OJLk0Y1y>Ha z0IeAgj;IIMHvrQj{rsfMk{&AJnKEm3bNGFMuLhQ-%Ja16d=GFdNV{Hx>XCwY{oTAW z@5eOhNCM<@J^dF?NdHcR0gcQx2Un(N#S9%gSB)^cOR#kbYbX{d7Ow}PmlO8hg#TIO zfw?X<(S1*f5;zh?4u+Ix-)H)MuB02Sur73?8N^T4c>}Y9p~|KeL+biXe5M^zld0y4 zgeDOlK;>8uBafRTZC5P}D&etKlL!vW9ti|y)~rS&9y48BW(5T^nkZ4e9bk$|L$r<)DhaOyaYzW9$3dS?vsxx+vy z*MmQC)psfEJ1zkdFNH^*cu z3&`=_S1@28nyt8*SN>y?fEiw};eApFx?LsR7LLzOul<6dlq)qB)YPxSS;jQI z|HzE`ayuDZvSn6X0K-+tcoHRyP|ssHwdS-09I6uJ_8l}`+&A)2W=HdH6pmZn@zKx6 zLW0-3y;0gdTn!soSRA9_eue}OvGu!lNtjH<;?0rcQ-<3cm8R%)-H%wq>WZcULE(Kw zruEU~+^fq?aLgA#iP$(v(7-omc&3M6y%-z#ZsQQTH8+esNed@pDHUNUu!isS$46c7 zh(7hgj`2?+i#T3>YqI0Bpe*3h;dpEk%KU8rxC7uaz3kOM>)0NT*s;ST!Cb|Z&a}d$ z|8y?Z3UG{&^i3{)i?6@$_&glp94vXwHIU(y&cQ?rBn^A;4Ru=626;$~zZ-X9ndk~P zx%A$wk(1ogRKNnGQ53KXbB!02&xm>wD0&< zV=RqIACr>a_<()Xi1_E%K%?!OjfcguS1fGF@23G;hXodnKCju5r6uIhn*>8vvd)xP zU@<+V;A3B%g`4dG0kaK;5!ACibt$g7&+C*?p2g54bF#aCJO@_WQprNTC=9E?>+$-` zUxU|Dy!{L<$tG-hk&^?MCA6ErZce>22S^MJp5^yBX?~;Ox_@b!!FmeTXOgD|evbh5 zYY)@7tq`zHf!=?e#NvsCy>Rxg73A?+UQy+9N&c#%JrTEC@Z10oW(^TcZa~wF_m#?i z+=y@{JuUH|33V3lsqoh}74A14ujjKmbS`R;)zJ8wF8^e2!9h4)|4}`@s;hZ!${HTC zs&~GRI*99^IH&!yh5=<2BP;%$RT_kT(dI3v(H0F078$I5ZN4GQ<6$ip?+@dvf6tcg zc1Lyfj}2soagiauB=cU7Nul9NRWlj|n{mw2g#DZX9Hd85gw)kYbV`@-$XTYuus1sVtj zcm$)K3CSX({FuJ~Gv;a)X-`%BC|@EwJ1l0zJdvk;M~sgWro4umq#C~Ck4$fxyN*I` zetX3!bI2qa2$CMAoqt^H`##dSxKRIEuy)Oh=Q>_>-sa<*Zbt^gjIE?xHHfz!q?fM6 zv5jm@MAhO{bDh2qiYbU0(i(%mCA~r+-zy{eN;YiOSV+4l+n~=r5t@~-V&yt+89d2A z7r5J}XPcjKwUWC6n^DqWu9GxrIJa@19a89jEE`O{*4`t_UlDEK_e*85TS;huX8coL#ntvK+(fxU zLaluBT9Z)j^;e&Ss2SXrjVb?Z454bhT&-YD@$vX6ymVSyAabYP;Mr7IE*{EU%(`C7 z0c>#=ug(Vp00il2EBEAqRegwW9n%rXdpCL+-~Zs}7)uvjq^9})xs0#i;f^c<0;{u; z?MAd^9g!^q_FoiX)u_tJOyqo`TlU*{p;F}7x(opb;vK_k0QfEM1feX%#t#VO4I;Z! zG5p0^IVDugKlxamGL)N})uay93014#;altZs4pB+z++g&Vup6kg>V4uAMM@LwJjS@ z4P*f*uxrRT?jm`?yOwlfH{No=w>wC#55pc)UW>bi*v@oJdctL))1cTrt=yY8T;DIIh>1`Caz1NarB9XdhrNH#=!0GE^vLQq3t;4|BR7 z+W(vqkWPS85*g3V2?}p3mM)>ne*Hx1<>!u>JP&ODu3P?WMbZ#q4pA##tkzo_OP(*MsiPDn3gIt9%<3d86@pP`49$C zxe(e&4@^wmC!IrATI%Cx78QBD7G*C&i5xkW@1XBi@vU@6Fev@LYry zs|jC`3ML>4RiV=Bkp>S1&BT`GgK_3|G4{;WKR?E*(L3>hX%02YHHkqU@| zF7Gt<9}cvFH_Nu#Q37vUuLCM^+kCu56QIxO$NXBDoKQdUshux#8VnAZMS63nrY}YX zBG^MBwCw2>((GDo;=P}Tg{NiOYu2_nyZ$lt%J>XRf1`(t8(-1;)l7s;E&9j@jntFj zHq%5!Dnv<3U$UCqerrpSjpSZIp3>>xV&N9W(fMGK2bTmF&w+3B+H~ToP?G$W3niAm zwAfjZ4UMtP7%nOnxJ49Qc}1O#89JoKnsP>Gboj9XN0#}zdW1%6)HBh-l3sgTl*wS} z43)v;AZ#0X2ck`-A+^Ijo2VG-bix#b8SE)QoCuK-ARx}Or~Qx@UMQ(Ai`FXu6FkiC zT$)_>IMxJ#n&R6qd3CSYD?{(aY<$CKG%J3chRkvNyx*pyBE;0Z#qC5vO5n-9)ag!JUcv&CbPqeGTpSGr2fI%PS8Vp zuLOJ!BsnYjTz&6g`rL|U?~tt(NZp5D-wk`M_(uZ#uRQ|hK%X8=eB948?7Z?zppaiq zM_1$}QG$r86B(#@%M$^Zu8#io@p!c|W%9+b6)EF$>JXhbd=4sLGICgQJ6oawcLJ`$)o)ok7g*orW9N8hHLSpg+GdX z*r`!L8tk?)`Bg=cG=q_LTyMb{iN!{gV%M*BOCT^=4y<9eiD0GcA<7c$$~Ans%&+cu zJZ@T$XCT@Y?P;l5h!rqc@7bLye~E!TIB=*Ui#DzJptuMqAUW$7AGc!|r}YdIuBL*$ zzR0r?V~geRO*`a@vlwxgfBYHdCEtc~fibpPt#=*&ybZbc9ZJA6Lo0n-sq_4)XSNP# zD<_H5pZl>?PF;GhOp_aQ;TT8l@OwJj8KB-W->_4v?O41WM{q!Nrbs97Tpmaz4j_&g zN>B*3cD3Ht+kNN8UNXguOiawPVv9xdMF>OY)6~liDLUG9>#T&5yo~6~+>Xx$X?tr3 z8oQK9@aje#o8oR0Uigm>u^=ksr(ZsYkz^bK02dyC9Ky2c##BS0g2X5ysgIZ9_vCbw z4;#&zZgN@Z9}2(Qq}b{4g$J-DBYQPK~AOsJ9l!K#un5aZLzp-YYoKRh5?~2g~IAq+y^l9d8dJI zrTatgX9?m1>V`;X7jp zsF8ez)enQ#wnvbY%PbX^eO>I{hlZ~r~I)-u)F9U$92oMLU)vU)to^*^e)07Buk_WV`Sp}dubhb#D{BBrenBw z6A{Fgm`}BRM3jl{Q!Z`SCO_@FJl4ga*tQuvqDUdv>$(?$Z}&n(dg97ar_=E-X`44u0J?q$Cn6U-ey#id+by39H8@6=!O{WmU?(34*;AoUf3FR4M|U{- zv9>^2fWUKYkM>4|1hHB2^O?Xkxo7X9&vD+XNgz^}cyP%AWUD8Ek}F{=p0160#ekdnFYR z;6{dBxf5i1Vt9?Jz%ml17eVhJ)?kl0?xT27DY6WSarGZTG6450xB}d>y>r?SnzV=V zr4hn3Se2a=+Qlgo?K{|UroCc0U+0|W8lMtB>rPkq3dZB?wazFDRH#+V0q)Rts<@*I zzY5l>8cw$!_`b*y!Ixu?lkay7RE0uvnduq|=qnC#8uE^z>rN_#vt@*HEQ>=EgY96& zyY%GCrvHbvw~DLk3HwJCDGBLrknZk~l9UkXlue1GbV`GCmvjhH(hUOANQrbK9h>er zv-S7B=l?ku=i+?MjTgA~thHul%{=ow-%#I1M9e@W-hQSQOrKPay=u#IOSydUR^Mos zF?l$ZEr5rtfg0n{&gOjQ$ClxvwNz%?YTTQGSN^wU0O)9wy}((oa(Qs$89_peF| zC})!3Bs7%!^Iz5aziTnSZzLP>I<}I%}og< zfraT&Z4G*QOT}vufd;$wS37un7t$r1<00;4Dac&YKGjQ+G7PD=Y}|L*$+=O{fbkcX zTFm(3+)zXclV*fC?T_EgJWt91-NaVS|*n#8#ifnpxigpA)k6D zt$V;)rKoZ;s-f;?!0gi~ebKQO=A?t$EIA(fPW#EH)OSZkd%Cf!HoOtJCUgEWLcWRR z8sa>|bMJ8R!C1wB16P$+C1l~LrY2v+>Z42~&3SWOPlKZBsYigpiYtcn>wHJjPw8RU zi*ZQA8kY_Bo5@^d9BuS8vvwUr@7}8QMXX?~!iJi` zufHSC)9(*@n-m1YYi*2LhJ?R!phTb6@aO<~#*ZWq$qk>YR;8~eg>3gtu3fTFfW-`|FY!;=d1Iaky9|J!!pZ%Xv7)V{k||hC`?69EdE*cHo%7uIvxN!f z3@-bWdmG$mpzk680a?K-vPnpv%{tVzsg#^gVN*Hv#*BGag|`!1HoE|gyxf5ye75G7 zP3WFZmQNnulQP{d1{S`N&&&X(87E)ClK>bb+k8#bNBJ!8?@Ios-N>ihHLCRF-4+*L zdAat>=w_$de})luA@iTx&9Qw*t4~;o)`4&4WbW`q%=cPBT z>hslXZvZJVs<2no8l#LQ(!T?C2UO!D_6&{uKQ7Tw!&c2g{&!ywoUZTDY4j9@`R@nqplEoZtCRL^t!&G==O2j0h<#7 zcRgPV=OH<~sfK0rJjxj!o5FH&?nWOPvcQ;hz!&NV=}inQ4%rS9YFhvAQe5R8HZXpm zo#HD@PHtk~udI`0C-@$E=y{eiJPU8oV9e!F?RhqS_y8Q_VN$#w<%F^??7#nZIBC06 zLpU0E%n2CgrDU9%$=1gHN_qBR62IVJN3nI_(&ex(sb(AahP`f}g`&!(5YehXTeZw+=R~BAhgP2cT{cjFQR09Fi%&&~E4L$isp3a5F5^L2a!C>*} zPa9)E!&DIRA>vNK%kz-ufEiJLriu)oe$=tKqddbk7wk+d6F$6qviOCoO8?DFCCkj5 z2Sbf<>Tbv-uIwG5ECUsT=fPB&*`*Yo!By&o2!kj8`?zAemWmgP&95~*^&D zPVaKfuBq)uU65i+S%^Qs*+RgRpQ>OOu}{$`y%jXDiJ`*l;7dYB=l0(nzImPzr(SP_a8-G|agL^l zsyQo;yIdh)(n$IJi{leq6A8f8=e%A5!T-b@F=>*g_C#I4aB3BuZ3O6`C<=3a^9g{x zC<*Ry*E^wW)H6cQR6a=M#VJ$!mLeC1i5y6#w@#a?-X2>|YnP&8cGnO#yDl{qeO5*+ z^SEmjYZ4H9zYOw|hMk$x4}|t+j_Fw1kTKC{EMpO!{rJFDyMk0@cY<$cy;w>jYAE~0 zO|v;9!XIFi0%L?sKB0Zc4S3Xb8XZX#9%$e_GREnEG6P2 zR}m@cyW#=#H8P1ta5rvDm zTJjuk-+HX6tS>LN0yaE@+p~iO`f%Uf_63;QaM`@y8}0yXTyPILY(C#+nxR_kN|)YkPJnl8 z?j0e*$nZL|8DJOIWMlAIX&UCQrnx4fEF|zz=*->&e(0Qb*A#EA*v6uKq&vG9USNKtP- zGo+qvPYGQN&&IB`lwBeD1*mGq+MJx@GJpm95!cYSxOFqN^z+4}t}dp&)Aj@1Mg@dn z|H*c_c4p{AEIvN6IWEs!^7H;5$xEZZAt&5v)ch@B&p`4qOUZz^wnN% zaVc0VY`H1NTkWbl$4=hDJJ=buD6Lvg{O0v}MrtyEw06l6t3LF?zI2OQF2MW_|8Xi> zWe0L5P!Dk4b_gb|AQsV&YdRa#WT9aKVq*E$cN}w@pimui#P$muVRNTABH%jSV3wG^ zlpks}bMB+xKCz5!z@0n}V}3pJ24Aril|=U5n0L(#sB**zlY=FEU}pjy$MAi2$G0KN zmOu4ux`pL{gxfj@(1qi%WxJJ z&zh3r9SX9>$4uP{LmE%z=bw_dgAF%t{ZA*~zEdQlY_hUPK@Ry#uS7Nb6gkEXOc8^5EKXa7H!g^E%wTW>8CnB7p5pqm8p)2T<~K0h%I9$r?CSPGVZ4Hg15un?da+hpN+ zBlR!qDUzN2(Fs6FmmESynl#Y$A>%Av4DVekbiUxcoh21n@q;O<0Qt24?}By;xUs33Y+&1& zB*Fs`M!)^G(?i{UmG8|n@MyTtkX-iuMpzyevTnxIw4bt{cVLvT+|C3!I4%in#knA0OQ^JUf@!|U#xY!*&l`vDnreZbTqi25&2QikLIm3i zCyR<9HU=)>c+o0nlLs*%f%n z=3u*uOHJJdTihWK98<&1M~g~?i4)MayPVe%u6zW;9bnQI?tAbY>@5TOX|mc?-0lTK z@2?An?v6cS10e#VZ8+82?n&E)V?6^ih>PnPX-tiCG4b=H)YuhR%PSw5t?Py|>A`XZ zd(V!pE%E^wx>lY}B$$%S{}-`Cg&J^llZw%C8U-SUY5h#7Hj72}AiCjMg&&AA8>9sx z*i1&%?3^XxN{3%YGvvc6sexiQ2MX~<)GUX4S}8HtJU%{}6qp87Ffke~22I3;^X$?n zGT3H+_~@}Hh(?{yRX|vLZZq>W9HpvZxg3viQIkd=#ApS8GjI4-AtAnitO+O>(TIGj z^^E8YG$W*InUJ9S?eiMQ4uKx+1e^o4fu2AjE)eLZ0+|S)hKP&-zPzA*a14PctrM8Z zuBq4*$8dlLPpEP}kR;MNGn2O*ot}G32>X8WICS`3{3E_zeum9z(7Ufd@2b1dRmAi= zFHZPqTZaf>^t8rMb%G3%(xybaOV>z3(%EqqL&r220 zz?hFoX+hMJ7pqz>Bw&*Ujpznr>xUmu=23@MVfnyBhyGuLE#2}93i{J{tsy5HKVg!R z&qxI*!@|P2JWefVsx6{H)QAF`Nh{fuujJ%nM#LZVd!op8!ANcedvV&#@)YaVeieDR zJ&8+u_u^c3XW zhlZT2pxLDJ_2OI29H`>LNvArvkfxfTmkwK_IqIz*&Vt+d@%g&7?_RR1YdeT`jc=;y z1mgtvKvU$NJ_fMzL9l~D&MlVG@N#~F4+a3p^TDlOEW1#agC%N5!4gWrU3<1mK6MiX3)0g_Aj2OzDqXKzlut_o-m zk8l`QV0oy{1<(rFFsMI#3QNGW7l<8S8Tq1k@rym#_KQBT(*xCcNPNMdFI$Y^rV%^Y zy_4>!snBh|!LNmi-c&8b1tY@A`{*wU^{?3zeY6&?ngIa!R0JvnQ^xYo{2zV0U z=5)X5{^G*)C9^s#qQ9w!9^QXKiyglYe4W25Pq2HjFRN_l+c_P!R>OkLLstte!i&~hzU1MG_$Xgd?%qnWd#~VA zfn6q;rb${4+y$O1a}>4NuR>)Y_=)4bU62g9ORJ4*v#x(dnL^uPI&IROY@6_H_`TsLDCx8S^GJ8 zDiG)3g6>Xooo0>;o|8qYbpU-W`8zs;dry;5Q@FB=ZvIA*!=}uxr2so$xun~1d9dLp zioK39HIU)l-;ahk%spd^lu1f168MB`4k71#mv9PQGMXGpp+)t*R0eu54C(U^7<=>U zWO$#Asm(5F5^EwPp2OSr2G5@rDV0yjAxIr~=kScbzy070u?jg59H>Aj^NA&j6d&8% zI!xyF&rCOx%KkC0rMbcLU^v*l5)CQ1>q-qvkm8KRhC9Y)d_LYVt}^&He*Tilr0qx% zKPS`_!CBsPLs*VoP>Z!k*uwIm?L95XGod!MbD-q}#?00kS3dWdRGt1c)?`kM_LtdmVmT??M-Nc-4NTwnHt^NBR=9md5NB zL@CHy!FiSeCIJ<{+n(nO(?^omOJ+(pSd?giCs(BHfzH;7bbFVuJMJ+bXp+h(P^K4- zB!G-vqn%G;1cTO_4WHi%KwO5>6AaH9@uNl{$WYjFUS7H-tbMKT_#tY4y5VcBhHr0{-YEW4Mtc-G=o}+mlnH4gxk(5&|J29x$Qqdf~g25io|TRfG?fD zoU~ZUBOm8^`fI>*S($bMb@VE0v&q#^W-{v2)b@Hf4H$5k&<)^->R)?`ds47!1^#)Z zbyeX64VKW;MNb_bGd#Vb`1Ix8&!h0S0X+%~Z8|HQofOB`Z@Tyg*{b+fPJdTsi;9291+8s%(F67v1lUMYm^#OP*zwl|ZctBZS^ zM)P|Rx~7c22$A-K4{x8(EcgORu(aY6Y(|l2^Wl!J+U{;Xrpo>^lEz&NQKXTEAELW3 z+@~8_^20p4p4Ccr?n<;V6-gp<@&mCiU5QIP{cJfP*R2Oj319SZzjhc~ z2tGnD5}Ay0fuoh%t!Mz7DD247RFT{S-RwnH6J)oV>aN9oDW^WQI73|kL~LAxe0gtF09 zB2_%77FH+eBP|IEJhcXe&Q!;m=I`*!UtDO3)BD_tbPzLr?uAa+eyk&_I!?IB(D2dF zaFaa~)YqkDjRsi;?~(lKz^SFd;c&3>^EQX0G9OSQR0R%Dvbr*$&Su$H_29*Z^l$dF zp}#k((I7$YWmaeC#Wu7qUHW8K=O_{3lC^c=c!M>CY|-XtG<>vgg?YWO-trJsUiy6B ze(2OyeDah~Dc=~Ge4M{``>I?7Rm68zSh-dan@T0Qaw8R>np;O1XwhkstWu82LAS?l zL%m8zL?*)GWNc=4oo_c~>~GvB{tJviCVta5>q{aHf_UO1Rt%IsDK|c@rqqZ<$diq5 zskR{|v;%|S@RtCR+~(m4K>IY`fI;KXO*NE1o7rsYQv#4z;F{i|x3<(mB#OGj-FQ;o zu7!G4K-OHM{XLv>t#w30WBElko`kh)e90f!ndXAN?V%BW0K&y}SyP|B^;QcP&cQ5G z6U$Ex>zbO@`K>=b90bDTqxwYAm z;o|1NAaQBa;2B=B;?c`Xrj-9}bakRW&2l$sDSUL4x7`l;6Zxs_8$8>0 z&dFB;3l%>Y7$`T{FU%ZM45Fgd?cGcI!=41s{MMUx3NaTWBEZo!&A`VR6;ej zv$0z2UIEp5oMY~2lJ&zT%k2@r&YvLyMz3C?(ACFM3zfXQ6b@y)4yHWi2zF0<59D-n zr~|wtnq+v6^qp$YovjemUJddMKLsN)xDAzfuk2W6eoSMaeLGw#qW0n!?Nw}zoId)6 z^1-4CsKac3Id!dKARSR6e~BE|I~nXQ1#l*~i z(?SHx2qQd+l#0rEzaZpWnG~I%CUxNUyog=~NwA?R)Z(SFx=*!tCu&9G3Bfl1rWbLR zo0Rq_?nh1jqn-et2)?a3TlBf^)FKfp1yCmbZgcVgHeX`uSemYSF7o~rhK0&s`6Xhw)b&4 zLQc85miC%|K4z}Ws|!?w!|x=}DNh<=jeM_ZC6KZ%^MA~)>Z~WRa^cqzEgSBeE-mUI9$Y0B*8F*$!NV`mkDHQJtz+3U*ti5 zaA#U)-=M=6756epe1<3Qa@Sz%qF`O@xlp{#)=>q>xn~RSaMN(>yj}P037-^GW#y?9lRIMFRhZESrYqOnp4o#6qo^l3Jt( zek2JW9X$Usu+rQ%y5OJ60w9gv)i%@G1)bGlYf{F%R@Hj$O?9BKD_#I z4D5%siIW@le=sx3-MsZJei!xrS5g@|jj%2vY_{00)O07BH4BZ%z7RdzC!HH{R zq=|A4{;4$)^Z_+8Ld1U})Xe5XWYPUU^BnkM42X%iJK4k;VlkE&T$?xhQi#);-Cg#l zv12c~8Hv)v5Np&pM-oKCl>noU7b*PU1&`V8M>%(|WwD?oI`WER#XT=P)GNoZA-a9y z!{N26xw`DDuM05E%5V4N1L6Y;K%UGIWcMW{08-H;{K6lf5CMOHoPh6X2HbFTZT9$= zH!lf-eA#Tp6B@wIi?xjnD;*CkhzAcTcMvhCBM*0W7foHx>2P(JErN1vBfg;u8LgjM z<(DR%GW-pO#cq2Dj8R zRa$|-lN&I}n@E%!ZhbQnO%>X3!80}cMI{|gyzm%RFe>LwyUQPK8v`13OpTV;@I;-% z(XNN+$=qyPKv1-Ca=eSlspdNxg9M|9)%x;Ljxp1)Eb4oo@T_B8P<3Z3Gh|&9&kZ>3 z^vrWSl0kX=tzoNp@5x$hs8Pq7f5=CC7DN0NhI^mI{Tf;2HQ};TPSN4E!B;x26ShRdNx_q?ux$FbMR;yQRCm%duDa~7$ zJy6ZkN-s*jkKd4s)}YL{lPy+tUvBIDDSlLdII|gFxYY(Y1T*SK``U5&?cEOiyWgRVksS@+4Lfld}UtT}%#)32Lt%ArqTK#+=cS^NWO39H7IE|Eh zQHs%eGq!hgNp03U4q^2StzHox$CJ9w_F8qdXQ2)%x0Md{6>|@PhJG1uXYb)2$IPcn z0Fqd(Cgr4SI($l*bS3(!3T+*F5NcXGkO}xWPaV{m*_jj}nX^d}_Q81w*{0QjlvM+p zCv{RhS;2gD&<+xgi!0pe-#H>KD}!=y_$W3`$Vb6tP@22YT4$6t&~q+Ye=`-6cxS^k zC=9WuX-KZ{%V=Rx2nm6fzzySG|Fi}ggpZ3dNGMUpkdu*+RsAgjrbR1zlNu^&i-KPe z(TlWO7u_tFU@)8STa?>7WYj=%@Jugc28INy=HE#EI8-f0JU=rfj$hSfK;txAgQqGZ zjT$rNJJ?5gio&NWdYkFJIJ&kvu<}+NlhH{<$r%sD;5m-|3uTjt(d=}9EN@V71G)T( zl5SG|duO>W+$1M0M-ggTj>GgC&bthjSV>~Z(f1kLM(vGRi{_0e89XmbgaNdagYq(= z(`Sc-!jhkIRZ-^6N4XARNg?V77JE3+F*2#^H9HZ`Ho1?x$J}2@i+)N`mh=6Az`?IW1rdE2JbW8=M9D-B3$9-$gXdL zIYUiFhrpnBS?88kgS8xCi_`RJdzf}#6>BZ*Ct18Cd4X_uG(RfOIN|yq%&ER*yK;FV zNspYp)j29;EcrjKi`?kR;Cy|5=V>W;5s9esD_b(3(hJ$^47wJMEApL*LEjVwN^I3j zK;K5CE~k}G;Y)I)C4zL-+0M>4S3uw58nM^Us?KqYE}3dFnE;M4KM1eer~V7705Td) zky?MzGv?d|dv1l~hyaEZD0{7&>!x9er(U#;4DV_SMYSFMvFmza&pQ7bNJHmzl!jvK z5&>~4fO#(peVI^JIwB(jZO&*U&$BLS*nak+q=~w*Blx4|kq|Km-pNfr2^+ zC9Lz4ChmefviSMc#WS?eL8l9z8Vsv5D`IZW_7870JeV}tpT~BRGX5~56e)&W zA-3#F#7g=NUHl=OU%8D`%YOasmuP=;=Z6q})mGdCl4^8zGRXj^5dL6jz~yrcOr?I# zP_ws&AT{v=iBhr{9uPZJW1kg&2gifcGyWmcJ^S6HF%;d_7xkJ_<$95jiFiD9X+a8M&{JC9%51~OdWrc!b%YekLM;6W1(zNhi{aKM zkQ5y!Qp&*$`-p_-rkc(Z6<;8nftEw(;6$0_zwq;=8>XG%SSoCy@i0@Cx0EGJYJ{;imfx!Mc3ErXSs# zX?$W=SG}k~BMg#2jh4*%SYs2Ow85y(fugU!S|hS0mdhNB5&}o0@+{~YWJa9J{H(YN zUYM5gH1Hn*DaaOqP(-F@QD2N#>_iwLnnwBg*aExVD5G(I#NemOiLt-HJvEV`+}N3p zEziA?xxlfLpzW7KLmwBt!uC$8&Fd{GNp$s>pwj#}DI^tf_gx2t4+Rg--eGKffOa@= z>9bz`rK&OZANlncW|GVXsG3?~Rr}wgG8SXI!)buV+bLp`0uF}4>@~XXOxy+-yv;)~ zhEw;f8b~oNCM~k6{&`wqh5+TlYDO-ee7M8ze30&oW#^pnLg$uJQ&$`L9bTVH<&(!& zYxY1f;UkCfxzRYmTQL9x=kq(25W(9#{w%^RRptPt>5F=G~{Z?buiCQFBeZ+QBvW{I|J=R}9=x_obbWfGErv^#C>d6z&$O*^wXqefC z7Ie$eN>aTl=&(f4A4kTNM!0#3TkxiYl>{p0##|(T$tC19jn|`}b%5uuV}&rz_1w^J zvc%|6y+M8X*Fb*3z=^%lDr%B*AMxx<1Qq6wnzTn;ZZEt{d3r%5y;@e$?c_bBWKj)r z=&wzC1jI!21(EBP1JN;c$p|&MZHHkXfc`;g`I*7=PV!#cJ866aLMKlw-jTW%=}#Cq zP5Xw`ntE?>OZCGQtf0Zli&)*^+0@;52QAib)!bg@Q?1f${kr%?x`2Fpi_1JbJkpbUGIT2cSViWKYb)in!x4^=l23w9Lka0!0;^Ckg2YpwS8|62d~XmNXE8f)bxI%bAZq{i%V31S=ZHI`7P9Ve(1Ds%+W}XEmxyjT zZcvTVh7LhQEQM>-&ya`{xtCtzi;Ua+uBh=)DeJgXKnRLx#8}d-SP3jEG|=)}xytT5 z|AKEpjyJr&D=p-EAp)Hx#nDmAUZbN}egofdEdRt04?j12vxg+?JgrN*3csk_pJF_<%Cgv)oqzf3tEViJOd#6DW?IYZV4j;R z|MF+V2>0BM2JN{6Hr)pK9EuzU0YB0K5_fJcjUTKOvVuSU#3Ne-cGlF3O&rsF%URb; zerT$({~%AcAk`%s;QZwL^|00K*?{1W&?TFQ*aLY2o}^nFWK-#27nO0FO&bjJ{O$S8 zlE%{?$aKU3A|y*0PFqlV(Mnd;`4~R=T^^KRaeaBwV87hi{|yzoOSf2-sA(mUL3t@^ z0n@|@eRRB_KqaU*##HynEw2bIAj6dhpV6=Sik2OerRM*uJ%Osb2*5ng91)i3x3D-l zjN5!<&a_o+3O)P=FT82_6a3f8|D*avR^fbmLNpun1MF)Y+v7)5bSOdpzt+S4dnO&A z`i5KmzqJYN!GIaY)b^YPU8S&Np+fQLw$-Ujv#DB%m0_e$R`Oz?ero_mhL zb5C%s=zN3K1v$0QaNvpC0bl{1bh=SdYiohWTeFfU>6t~!dddL%j?+#@6yvixL5C=S z(%tt??4#$Vc}+ht8w)nn8-{0fKDW3AUrkIU-;Un-^}L(MT^ zP;*rut_J?rJxzly0Iu*~0WzUW}nT&z~aMC^z6WFNvwWN|?kD~#D@1`^GFvbpdT)UrNsUOeM^5Z*oKM0u8UY6PnH z1l;zCcTE!Z%32Cj38!#d(%EUUk8k8^19dMgshNoLURKY-M*W0ecSiY9+@6P5z9TgKug z4v|jV*FEjJ`8f|KV0`(iu>F@tMMr7jKO3c7w6lDrRJJaKq$%5sWjNYF4^U5ihQ+J$ z2}=Q{vR(azM&s}+DQf;&;$5)i@_r}9oO~hrOTLIuQ1Hg>L~9%rI#9*(cA?(p5=b!d;JS|tu{u}-(VYAxjEk|umpy(Rn zrs3o?LWW`8-fj{Yx4>u(`Ksue$NYN&%e?o=<9b-Nt4l$Q4fr9P!d_e+hQzQ><{q^8 zW=pZZan)4od_qVSVzN&&AVvdnZVHj2*E;4t6Z0*;!B{5X zNgZqEEXFm6JY21|9VXwv96dBgNf0{IuuNe!O&CmDzY}%A@-qPKaOEBSMHd@j^l?P= z0Z0%P01+poD!0XS)Qdk)w-`DH7~n1Aq&0-42bM|rP)2kVL&F z!~&QUsb}w(sDM#HB1nYx0~jg{G9^^UZuqr?pn9V7FRm#EcJznAvWfHxlJ@EfNYQBC z0)r|51wly~Qi1^`*t)-E|7Kt88FjRWwv}FKf&K@kGqBmp07KOQBn`rVPjVaK_^>~a z^89&P7n})z^N{z6$q>iZdglpX?A1*Ha3KKBB0-gsI1^3}oK~KBvNOo_!jRn|G!-P= zivaK<3()hQVAv~;ly9sc+lE-ncHfv+U%PxrAFgDm`2&4mje1L(N({|} zTAE&WSclvG>u@T1n=V=T+i$7QkQUpX_s{7zltyPgrx|z?O9b_$L%KKsNTFc0&;Q0z za=52Bj0=XZz1GC(pElwtdH1E@o-LtnC=Gyf(DDSpD}yWlE;2CJ$6!&_n%ymqTesiK zD>_}VdNq|ReZgulS6^^*Nfex~%67NK5x{@Mg|6(d4j)}OUaRkqN9125)zrY7zb_6B zg0L5t1F8;9Fyxey@0Vf-soVv)+=-WUcb=R1W4+=E(jjrMgV%qrM6>q&G2W9Y(Il}8PC+ahr?di z9%fod-7R3-*;>-O`MrFh3Vf~DdOJ^H-|qi;0ox}jEfq@ORq{FeD;*4eJbsZ6n^edz z|GN!!Ny(S62#;04nbvoa^}Jp)K$8y!G5nF}uFLlqfDZtj|E57ycxid&ySU4aO_PP+ zYw@Y6j3uVBeTN}g35`azO!y=33CCdWxYC~-hTvZ!GT=n!A_A7h?(#Xv zZc7lhQ6BIQJmQ^ccBuaQmYx5)fsX50zM^`)7*{F8U1!YhTYc?iOq*vt%k7F5S=3O% z73g+~|JsDnmC9X206ikZu}wg7ls%J@E>{uArotAZ2IIe91!-)p^^}6X{^y|#;i)-l zSh+O<@Gf9xO28>`w+`4K_tjYa%D0)T8*lUW1aLUDbiogWQD0N}?J`eyr&RdfPiObq z&DALuKD)_r-#Gg`ueEJ@D_1S?LNH>i5?~5nu^hW!wP=MbUvkAbn9}!V_z8N%&rx+U51$H!i#_ zJYxFEC%}OA>r_8_uj5bUbiV$Bg=VuqqlE5)+vyz-U_GXBw{=a6e`eyFJL1 zi0!O&LVW|wP*Jmi%j@9n)yY|=^<-%*n?X}wx?LM1@H&_pr^cxM}aC2_jd&^ zqshm=nMhq-u0_*QQN3tR1D%;q{pna)f8n77qzt7%dk}Bri)N+5lt6SU-JdVdJy*=d*cqN)W2p66tVBpdL^X%r& zKG)k!=9rH{!-#p`6@3F%&GGaqNx+tS0L%pDFBvXr8YP;_vQebPL8`#icReSBJnl=D zkM6tQUup4}G-50=-DR7D9~}i~ZC3V@$1}b8x>fCv<*?SX?GP<;9QvsMzz8)55*TTW zypCk*=q>i9D?Ju~ZSUY9dpk=avsRMuL4%ZS%P~{2^GYHYa3ZS$RKZrTb;Dq&uzBqQ$P|S~=cJX~V#vOiWw3RAL)dgKY6a&O3dp-Qj0# z+~z|uz^YXR;b$lo&8f($J|@F^5)rp=wrhm&14U|ikcB4a9rqmOUH_Be_-pTJ8Ewrf`}FE7Emb2zL@kIk$`fSaE$FcdG(%(}=bX3Jxq9Aztg((JP91Gay_Z2(aZ%@U=$IwE@f zG*T9_P{!?1Xu{8Q{t~41((2)HYf2$6se}ZkHwtTdprC*>*1d*9LQ*2RR+w%(;6Ogr z2IdQ|7y`6EUPY|9EAL6iiT}mMARR^j-bh>GO0*a)a7sHl2YY?OzqRzryj_vGlvLz4 zR-wx5m1edzWiO37ur<$JkPbx|NC6hyY;$dQ=X%?tIRP#}o1WbJR4r2ZC`T_$O(ryE ze$)HpCqI)ka+{g&?qpeOb=C5GmD!+zqU$YSCtc5(`z}gaOn{KV^4~6S{If17+_@}0 z46rOuMMH*1JxZyAVnuJx_kZ2dDkSthi$jpzk02M-l|gZM4srx}LC9&|H~aO@wgeQb zR$KUK947ulsoXDLl5sAfb|v{)Wb1c5k@|iBV?^wvQ|z$R%q2s*=Lmzc}GqyqL5rm~pGXn5vZoPMQFzc}DRI-fd7HcGjoxJQ2=CUA_HvWswy9WHOVl3)V$_K(gj43+IWbdKR&7WfxF*IVj+nvVy7lCQ5(7#R5 z%Wo61g3;a&+u8tUw53dt${b#86%|=JL>yl5BBJ_7J*J|+rQ7XMZ-Faxk?A=@LIWZ> zejRsy3e^BGGXM3+uw1zw-S_5O#+bBS%TaJo38e_8BHD}lostSC2nGjnXxK&r-IRGI zKF~Z6MW&ku0AG*rRqM%LXJP-xV^nfm1t}FT$@Mf3q)#UpbCkM$|M*x)pXksFjZBEA zcUII*=eE}Kl3>hFLSppM0x$5SAHxz;DvAEqaZ=^$J1IxKs@{NffdY^9W3MihtSNT3 z#ww4RftUBUFty?kM%Re=8L_*!WRv5|GsW4lL;6fFRt>{j zZ`SKfspp#D+?>+{JYvJqT8aZ}ZrbCW>I`-d00{|Z4G#h@7T{zHNTyjXXQjl%n>LXw zn2d}8re?sSG9O^NtnCkPp+0di_%0|fvj*6C$_d@?@3F+H-{A>H^1!S3m3^J(n@QD0If&N4yA1sHk%D@;8=P0M2NwD((t~&7C-c??Yepjz<>b-| zx7D>aHWXb9&taJZv<`?iLwMO$cn`=%Ck|)` z6y)Z&(kq=B8Rd&;y$oR_306A( znhf8#{M}^5a)k zvkzU%;SN+P5ge8P`ds>PI-kvWqOtWR7S8F*?C9HUw3h!kONwVgsyH{c|n!em7~GVee1;{K(~{|o*Fbe`@~GE ztNdxqUapj2!L`100?Vbg_7@}H_@vsM0WAw7w)RZ>PfjdX+M{bjj>ILZ^t80@MhhHK zz_eKnkzxjfdlW7#ib(**IYCwL&dT7%@_wn!Kuf0W_INNn(!hDUz;UG5LcSH}o|XM! zvoyOmWxWQ8!b_FFktbpeAkPxO%9peTt-y);2gUIk`#NNe+@FZA=mGBqrqoY#q>X3LMVD|%z1{-$YRxiTcfCkCKMC(bA=r@< zc)zR30;N$+?n)%^VNU~EScLnIJ0Ra^w=(5`#1h1mx*M4mOoxbU077`BbJ*&9K}bHN zBx0F@#;o=VNNM!X5rU-}mKKaq1ssF{V~7kad@~zNip$I_p93@4FNS=>`z8;K`N~Z$ zg!~4~&-dW3u+|eC4wqld)H#>rH%0$!Vu?wXGimpYz!C-aocTCOktNqvdrM6VbHxAW z4QBg>637OVcF}S{%5HZFKyzWcl}<1D&N+V$wgJq?(;_wF>PRb1O!6ntUov;k5Oyv1 z0{d!6ErrkJ3lK*B$-vX)vz=!MKtvzEK_lT~@r)fdF4eA-6mr>1xzn$#tQ3rbku=aq z1vor?m)g9Y^@^q&KYW4hq!p1DPB8jS=B?jU;yRB&*5>>UG5-}F9uuBK&MLwmq;hOY_Ul}*;xObdy`D@7>U@( zTy`ep?@zKGNGI7Emf@@>OH*AnElmpbC%>P<^2V;%gc0BJFDPNS=2Sauo)Rj%GS7Zk6@)zK5k1?e|TYMrFFSUL)kz{|zbT z{FQ0RL>!E=5QK7KJY;tjkHZ)(56g z-2)qR*4{OFB0v-nx%w0T4i?~|#68@!Kg3rL3n_vqH*d~*qKFEd%}$3=SgS2YCOz#{ zq>&aswS52J_>*^Pt8&`Fb)jGc`m5R1E`zyeX#|?eYn@boajDblQQLApYwfY$OYW(( z$u3BI2(QLze~+UgLZz6@c6Lq*Rs~rGz#9n4htA}ctpn5OrKgD}W|w&?{g=efFedE4 zA1xB#x8CY>c|ye1wE98F2>8ywPZN6`wEM@yPO+!0rI{-#WGzg7WnS>ZMiDv@mo&2q z(-;!Dn}jIA`z&$awpUDuKa5u%Z_U=0)L4#5HnTDGnh&K=A;AS}ejrWc>h#M#1|6!~ z92ty3QEnh2212XND!$2&kDt^qhu+W>dBq;rx8Et>-$8v#vah$lWSt6?Dh-QHM*+RN zqQkY-RVN}pyY@TH=IF~vzmWr}$HUx*!oFAQ1pB!rYGa@#b#hedbTF^8^mK}X+gvG% zjSRdrjI5|I1KiVl$ZBr7`p37kHWeXf5QG_??sBe$B5xw1K_iH#9TijO}oZ*{J%__orz*W=>f3G z&`cS6mfc>oKP2)mdA&w}3-?yvqSh~OzrW6=rWF*_vG}u2G%R|d@0}UW-lm=DzCna% zd5;VC?cHyttK&g-XCaS)EmZav)v4i?RAAyKd#0QzqLb-+@7{PiuDJduUS-mv<>CIu zInhZP5rm?hkHI%IaBnkb1`_n+z(0NK_+BCgCyffx;cjpumM$Q$}Ta>@a%2Di68XJZOeay2Z{@o6XhP zT-&;7!lR6wf<^|VFhrj}Tu-$-Wzqy9QhIDHHvNfHoM4u!*8*gv0&qqnR*BQgr}V*m zL+UwaQ{R6BZLe_PLl#)XdE5e$AIKo%Ce2)4P!IHBh@7m8SseUTkA8q5FONy3@MTOz zVm0PVn{Kl#j;PR4>Cx~}1HQzoHt3>3jOzF-+S%*)3zQneWI|4=cK;V=e;JikxBZX9 zigc$m(kPvRq;!KIl9Cc4C0zniN=c`bba%-`Nq0(0cX#)*w)giw=lsTaUj5%O;9_5U z?KSsWYtH$J?k9H#NJST$`OTz0oj%)?wAfsD^a?}86oP2CSEs$0BtY@lg%3HUeY=In z>+aHwfKa$mruL|ZDNC=xZENaf^iWaD)~|ptDBu0gZJs`e2l~FDj2gvBH>+%35&3Tl zwkmS6vSh<3gjVtkiX)?x_+|Z(n<9!?;EZcKc5CKYIXF1BOcwPepb(0~_rFUpOL+zo zVSgtf#RN`CUl-^x<*x@?flcHiptj*xfOA;F)QP;g*HT_na5SEhy7T>7+ti$jRAs4? zT0Pi$^l(MqXU`IVS#>%GxwQDw@-oj}x>7Q~-Mq(n9-+TIa%mQ4=fP*}PuDpjx3Z~d z&7UV$>-HO?{QTfgt6%<*Y0eOJ?Rw#GTd138FN*?jr3ToKT;AsXtfkkLxxb#jUjg^6 zPUWx^$gqa}3>gJxbYRVGGxxUUVTKp>b7b7T?oy*RBt7z!z~UdEe6d+3AIm&E-{l0r zuevy|18~|1;5G_M8dVLQI?0_k%3KVv0eapu~&r4|FmShi1iVP~lcUrv6$P@qCp`Kl1?x zb$~Z6om?(E-=ZJhsFKjBTEp2;npSHWklH=#6uDDrAV&@{|DC=US3WX16Lc-xINePL7GXrw|!7{nAU624g@)N>Kt{}xaA*gu}=Zm@bi#hrCJvBGXu zj=w9&?$isgzF0+umUoD60_iFZ{8TSMI#A9 z_wmB0JR8s4=23@hd|GHAwAf@plfUGD$vkd@6Z5kN8r9B*gDFCc*c(dC6{6=Tvrhu> z>oHwKv4sE_ZI5KneY>b;%QiaL#rhM_oi$*d6=-uiNW`H)j&t9ul?D`7rrqh937nVU z(-AM);y=#*0!k#JJ`DcrX530YI^o%Z?nQh`|g^v%0fc(MZV)1L0 zScz&@P>1!xm!A9In(Pdk%_dK6tqC*n$j=KPaXA-7gUG*i@}yoAd;TYFD1;y&`vq zSl^@Yz zuv{#29$xw4?E6_*RcxBWLr{uV3d_LG-bOgY<6{xF<%F-Y6V{c0hb>8_p#=wS!!bCt zl1g0m*_e!CE(I<21aNvHJ*>K`yhxH}XZH#Gp*M%IexP8}aH?MY%1HauTIk_?38b}v zpu(mKddcC@qGkLTpSVd|L+ftNTYg-pcY|c=JL^v(#RXZ?`%fOkx5gN<^0yvNV?NYs z;N2jE(Fag9TZocLS|7-KMCU3UDH2-^;q@yIX~9Z+giHYQ#l{OjD(>dE*$s<*DE0e7 zJPL=Z@zoEp9QOcw9O1j?a0Y?WQ~?ABrr6BAPJ*JJzxo`<|M-R~jJ?;nL7S4SiEG-H zC4h>hVC_ecPK`=c?y+D!TXiI=IU(9i;;_Te88sS@DbQfr)LJ0vp z&NHFGS}7na$MVRAIpUqb_- z$4!HAfSdiSVW5t+^XxtDGfNI^a62J6yW1e1njWG&Ftp5pgPW4^0>R}I)^ieB?j1#~Y*ALnG| zW4V%-fDV1*&6h$7VQq$FG^Y?$pw+eU=}Gh1dNp7=msD(b2p_nF?haF{#$%a))-E`l zLNYKGi{MaO4ra^`7w=i;Gu1!$hiaQA=k}wpWVbx@+GWFuEw5Mi`>DS-_s!%>(26IB zb#JZ6@7=N?c2#mv{a`z<{8y3GG(8_oh7`tKWj;wz+hGnN}$;I;XV(Bk#QFF-tYcG3W2l`I&AgfZ5^Q9_x}9A2I&+z!WBVi1z;1+_L|g_vVpBp z_B<^AppasDJ}!u0@fU}~a_Kj@7tOcHqg6Gu&ihRA(~dE~Yg=vtP&;94)T`U$TZ)Gz z%hSIS<+faB;+k+ofWXoCeC$j`lhOfCj#luFnN(6~$bDg0QzTuJqsk%|Ft2AM(R{(1 zCvVe0v3`h7=C$E?y=iMd%Y|VpCUY)eh^vuZ?#2Vrp7r9cmk%MC4k3E|6#R464j~8QW;M}Qc(QkWbG6)LX_zIy9aQ2e{XLNcha252{$>N99d^i)gAJ1~B#S4MK$JF0#R z=@$OqN??~njX+hNzE3#?*e#~dt%{EoUo93t;gtpJPauWwxdEVmaGoW^aX0z|IXLb- z)w*~mkZ_^;DB)7YUN$+N5;&vAr8$e_TXYTeWTl_&2NOOTZgI>Duj5POOdH>JBd1>` z*=JlxP;81O@IcIazmx=Qs{sEu2B03hKn~_cL4lTHTZ@N;93Hp_Q#)`#V*zzcJVcFr zqU9Gg1G^;aqM?SQ~x6@%mAW8wRZX;3yNFguWMcV&}8H^eGTJcMX}X&p3JUY58~lQCXgG zzfqc4)&g30d$Z`#4=3hmAU;N_edh?R(AW8ezt0agy!^(2S^^C`wSN~{6mOYfxt}^u zF!DiaiDnb-FLD#>F$?UYc1L@Sf#70qJ|Nbj1)#505xXBTV>Q!BjlWbiv)U-U6 z`iOpRc1w`*wU|z#2h?9xskqiQ2}e8Ll(4*>zj@Vw=7O_9-LlOAKs%7o)292S)zmpD zC{}6hF`nV9=I6?!iRti~)(i8(!8iNAngTwAZpItwY1G)%WMG zg)r@#EVI5$(3&i;%OiMmtMziW!}L>ED05R<~}b?QpL>Ssp56 z+?tuEH2MkD-Oh66b927%k=@rGC>-29S5h1;P66TyF@WG&Q2L|SBv!yoD~IC60M(Z- zdym@!*;FscU%V5~e<8{(T9+8Aoq2HHPshXVupCW%C4l{wm4Ivx872l-^R99yu6jFmHpW**>qy7!6quPi z2&}3m>@iv}>fK@DKZ8#m8T*WU7}mK&k(VhhRv{^8FCmw+bE{U|hIK(rmo4#PiqqNK zP4;okZg^{MII(u(s;oH;DAn_@`VnEl(dAvZCpkJg88GUFfoNj{kRIU`?SKRv6Q%+v zcL|HQS0M7P1GG)>?9cP|#3_q*_8ISivf+AW9l{~D3ntu$;jrDL&zJo25C;-La)AT> zq?nXoKc#AvBM`q{9=?y>b4a0yZPvUE_41Hmm|68;@>||bIxYA6LNxTppoIDFx`8W^ z$$sT;n4tF2dz!;X<4_$tDy{R1x*g@weLPSDsYi3s-LQtFPaH(WLuN!D41a5`xSSPoMHoON$#B3%4LLL94iUi(h>(MC z&d*heSV|FindxxTo4|SS<(lUp=K7E|Kwg$u@NHd500Y!M2+G{S5d!bDH1}d2wQv?t zXQ#=rb{G&71KiSn!Ij`0Qqyt0o_}QI2!tXUzWE3L zKgSX^KW+2QZ^Pq!)ak9MN>LC!dX~>ZDr8J9;vFzmzu*A=MxDJYSNmNC4DbLhMQ1U~ z!#fyXL@mj54ulx@$U;{?)juTzl%pk0B2m9m%5md^qAakG^2OBZ-~S+R^pr%^m381P z0>CIhAzDgFt3-^V{!C;Zl_O(&zA#tt^;_h{R@LcG+c)~^&7y>%9ff?u5;Yk6c(!6g z?6#b3ndmSci+Foa$)2l=?kiTJhpVLf-bAqgOmH6LRUKLwM4Yytv>sHVqS5paFV5D3 z(R{q9IdK6iYy4X3r;H&^GXks7!S$vdGwT0y@Yy_A|6P@y?QSqOg!6|$tPe2-qy8z7 zwJRdv?xZM^S+uEthEA8QfGUAK@n~wQ-o2<$C7)KNCz;WUGDW!u`0? zvLM58gYnn$&~9|0s|@=ZZJN%*=5UYV0yQK+Fs107S34*S8`%$LJa?|eZd&oZaHQ(x^-hMbYS}-0c?Vtq=P`2rcA?`^Aczzc^hg5p zdUK1&$*cCJzhx^Wkd+u_?LrR=xzL4wSdn_}{qY^Q@`9`2BU^qKRhKWIarlDj3vF7&+SqbPh$#nPGB~}E7;3!WWl_C z>#O9p!qm8;KGG)X?yN@a8y&}WgDzihC}279$b(HbnII}tWa5y;VV*&t$MNr`)-9fS zA*F%*x^vn5fZ-_;gGgE(?2xe8H21&BfB-43Uogkn<^Y3k<;DIcM;&C2$eT8%*>rSDC zUKYSBY%D-+_&-ZCz}&+zt4j7XD(X0N7?@JbB~-RdYjgj1@A@Z0QHv;doTDZNXe~@U zk&Tg0DxgX8@9GZ3$98f&SR1?h6d1kAg>L{paDYT z>MMn=t=jxj7g5!$Z!~sI)#rsQCR}xbG5s&hoPwRK4>)WTbEB}2&07Giq2LNfk5Y!VKD2*Mm zz5^*cIGZpW)&mbI5iRj--n+KV9tALm|1$v{wh@gCimHem8$Gbf$=~BP2WLc*p?Gwk z5)H8gS!H$I+)0B$!{gt;;0Ps!GXpYpiRcY=mCWy_)G@PnPr-knM2+;{7k@+S=WJns zl==QI-tcK?v9H;0XT#{$8q3RpsEbuQsbufK3IS&=gq6NxQYzg!seTLqJO3HCAN-o~ z6sLPi+e9uCfU}NiB4@lega)_2osdGtSbBi7N}a19}~1DUQvioJcE+nfuPby4AWpaN;4pZtIa_{W{Qbc}lc*VJ!o#U_HSP8Dzyj+>nXThVi4JQ+I{~0SjGEm>^a??;TWs%U-0rWiZ zSp2Ffsua(ANPMBcgD-9I>V^G zTbSdxn4d@m_TodEFqKzBW6u};HB4H9OS+pI7J183{^yY(1cR^MC?w@ok&5<^TJt1M zfdl35|3od^dbmIGdf)jOQ5ya4hV2z=4;~7Wv2Z@{oEC$l0VGKa)ZXdI1)R8pDJ?*a zD*D-LsP2FZ+N=Iz;2v5nsaoJn_t#iBx1&mEi%)*@vv~3?fqJ^KpbAthhMFt=)LqyN zP{AAg6BVR=`F;c3Ja{C0_jRc&2HM|iI*|#$S!}#k1!VXzAOSc(O`^9mRUs`ELPUi@ z`kXu1;2Ly~07$R-dh3g=C0OfFV`gF4iws(5IA^5k986Lhn&2q!rn2U7>{~;3)78}# z4!{NSA3o%3!IPFfGatw12n9`1skEbOF~3uA&)DKS%0ML%*Z%%px!a@+1k#i`1O*wD zjY%;-gx0xli6(0h{!PJTs>&_~pij{=EL(WQ{bxn9_|@2phh?Cj0O_hh?N6X7ik{&DirG&&Ik`AZrqi>U z*d+L@(`!2Uv>`Q5lVrE8o2L$0#DKB^2dY-ol7!SDsnJ!~hK@P`2bzYL-fdWkn+g>` z^6?M=zzy*M>z+tb=}gRzuD2HwKJ`enqH4)70YuZkDB`#0ET{QE_w(p#%-5Bjmt|NLp-Jh5u~mQe`{@ zXwdTf`>8KG{>Y%QJFGk&&QgtS*f?2d_)cB0=iTElBO)nd09-(3Dkr4=bRi4%`A5dH z+}uOzAtMRGu%qhs45BYMD$sX@lA+;Lzt3oC?@9z)LifidmB#xiAj$a!hZy>Ex}L2nHJNnr!XOrjcqH>Y zQo2Lm!Bg^Gy@qjs^Zmc8#R6#H=6eE01Koh3$Nd6+g)Y&5{@$(xm{(*A2dWkz2tI8F z07bwi8jOkZ?&j&Sl_!{1YM`1ZHHr5Vd$F9g!IDZ0OQ)ohJw&Dxya#8-Y!aH+{e}L> zoqxpqela%$0{+I&^1-g+=rIT-|CiXI!aM~24ynSXM%j+(M*vYTSNHTdAQ~hGW=0#hr1-4Is8VE0!G z(`)e!R55w+lZ{`Rm-q_~IS7s*AsDvdOgwn-77Y}K8M**p2FMY@H1}r+4WE9CVZ5 z)M6X{!$NqIaO;Zp&l3Xi6~G6*4hyz`nh+JB6%f8S2H_P{@;ejBm0i{hn@K@13M!o|ODNx^3z72I5- z`_QEtY{RP*A)tjj@9^{#9EkoIFZ4z_u4o37zP@0SkP%dDA>HoIXt6(qpt;nb z8y^)N-5OTe-PJV&&u`jCR8?!g-UG1gkdmt%fGBB|8Tl&!K!Vf$Tv2C*6=+tL-y@@; zflcz_oj15?*JIOLtKi2hk)T1;Q*9;vL|N%i70aY6oGLOlmL7a)Tq0yrG+rTzPX*}i(vd#5JSYxFniKOwK>*9e$>#6XZ@hEi zgTmJe5a5{jg@aq#q8_=^lmjywZc@9fZ|QQ+Hepr*yaVO8PpCS(EMnzuFe-s@_dS*iwhU6YRiP6 zWC&taQeoVUd&+#^3_x*V8)@DlGiW#isQs1409j@CTakCu9^wL!aKEPn@Pu%H!Euo$ zO8|R}>c_0t{cR_$4+!WMVz9bKl$!sh-<+z*Q7e9{ zH6VDbPz#{ys{orYVx9Q%Yw`INSJr)9ek9ogXa{fLA;`O3 zD+cd-xEu@k4NTFQkH8WBTIuR+m#ILbWZZ*Ug0Diy=5h@tkmZqOmNiy0FE>%F`$l1S ztj#vyp&+%${Y`})l1(^PCuM-!$wq{S6?`{fZR8N|qzAK(tX~5VdsV^K$MA`RAaqhr ziL0j5MsyfBtYaMjbSK9@fsT&??1Z$3Mb2mJA-aewz!+q@pYP4h%}>D`3mkSPRjlg| zr7riq?h8@^&*#1LL5~~!B^SFxq`LGGFk2Yd`_2#hCUM;f0{V&Xua!kCLm0x=Bqsu+J~45IVo;( z2(oT&u)D{8(g4>FF&k7%x&ga`6-)5ovni`z&*=nk!*i)_Z4adk624r)JB5p3(~_HO z+(9(=Tr(LtYR$f4h3G6q!+=SXA@jqib9*>jku-tZJkssWMn^XW2P5)l5HC7H&)TxE zgE@@akO|OSB<vNw2P7QL-y%L{5aT2qa4#~`-!FH38>x4- zZxHGHXm#gt(2T^>MEM>YpGCX!)xLrrWu_;9Th%Uy3Y?rfUDVg!*me3IbpT~UUpl!h zM+jK_&tSTKWxOIvV(T8l%nqT>bbT?9rYrr*8zQr*`O2EUmFEN`Z3i&&?(#pE&f z@3{j2<YVCx1a_41Ie-&bF=OEBH1Q=hQ$1YZL{Qv=J_uf;T9 z7`e2~4t|M_td7;Je6=r$&0%fOUbZ;6fv9%u>5!;;*@BA%s%SO*%+i?4?dim7QO#VB zAv_E>DOjfVdatgk{G5>5(yd+5Zj;zdmY6}#E_DLv8*fgOq=u02$i0&ZNJjD7UdRGv zG^(&e0UYHpp;sWp)*hR0O31}TV)cOQeE^KGkX%59QDNqzh-jhxaP#c}v504V(Blx4 zp#U4I2jlxKixdHvGCHY@Lc$lC*8G>;=9=3kT6J!YXSE@Xi-J-_5Z-86SNQhi^|z{r zuu`H$`(Bos6`f3W#z3m6w*}(IC0VcYj&NTeYF$?KEB|?80)6NEf4&pA&_7_D!(p_B zGvAb=(mX4!+Z(CuWv*%qWf!+f=67^h!7QT(rmEoF7tgPl;{LO8#{RU5^XF^Aek6zP zk0LM+7gi(1gM7-Mjps}830!7dU0L#M4czn8{y*MIVN*GcE5=jPJSm|U*Ej!>kq{6= z)q(IolM4!j@j6)m1a9?7g2hqa6Z#pm{j6E^Em6 z;yy$cVzPnhZ(JE7vmZVKz|^QPkvq+G(dJ;dkdZ|SG(y(VCXZ^XKeWDoZkVfzVJZ|N z_o}X^s~Qesy!G4)ONc92UzliU<55%h=p^8OpC5-@dRw4B5q`VXcoA9eG^ThoJEhUp z$<~-Y=vTAe`NV58pyQfpCDrGbK;r~Lub9NEYz&j zWUzhL^1|za(~GM)sfiWmxDtENjv0*z9A^I#O=(2<9+rWVv;syocG`3tKZhtTNj<}M zhr+@0wJ_ah1$2k4rVy#pGC6Lwd5YU37D8g{-cDk*K}S$2Fb`6~hEy%zew+48zD2{K zP?%;4o^}ccEqGRlX#SX)yF@nu7bZqh47 z4%LWV-l1sm&{FErJt-t7V7o1@7l$-#9fUTG804&DgyUuaCB#J&fGGqwZ}yK(ZjMi( za{4|vY5Yx#3|D+ZJg!ZqecH=`wk>dddbQsT*fw;Hra}ztd!Uy(%d~s%k`KW!AWOXc z!kaQc(t!w@LQS_QIY3l9Dea3{_Hydr&_y&xR1Uu}&3fa#|2^jmQj zfMV=4JOq(;04fVOryGKFj`IUAX-o$0FBUP8_LRg0Sq6GMFxAzgogg4y5u|DY-^1GJBho-WP)%2=MmVSA?rjW@yUfC zOaO7iwc$BGIe)3YcXzkdR|~X){&Q=z5l~)9dzi8IqMAlRGs6tnEdtpOrm5+xx1TB$ z+^=b5xBlo@{n1g(+|Q~pO`SL|*Qu&|ubNzAtQDunxtp9la-3w5IY`F~idU&JAc`Yb zs+FxSyiXc8vUiTLfwpb_Q#9?{bUm_h1d`j)V=Xbi+j~GE0NMQE;CO7=8@))nUD#F? zFnwh7U~6Kz=5GX4FQDQ8^2q=gbbhnx6`iZq9Q>v+Inubo~rx~_G2_|EUo2XaxzOd$6OlP0Q>d2;cZ z{;p1dNQ%b+-3-F4Yhn#Ku&X%Vd&x$^<Ks^hdY90q790OnoWDj2sL$Au5lOpW=_J z%^83;NdZIlxg>ATBx9BFNfgfs3|eU<2ZQDwnf$^ymz{`W9bXr_!6x+OYatas{|yYh zApMn-ITtest`AXlQ_Rc)Y3HH1|M!k@pE*qLC}lTFlV8MZSt36=DDCh??J^`D`zPoyVJ*)^ZY-^w)Q?Wk`!S8?~MNc(Cu!(tH zF(bvn2&F;5Gh!glul1)f(P{RAgB~pEL6B$$Dz-YeR3@nBS2-O*;y6>C0BWzFD&QOk zakBq?17yJIZ7SyWD^xBtetY_7ivZdIh(F$XjC7;f?K*8`{V8gxigntF5W;;5fKbrl zqTsRYA%q#>Gem5+PBV4B@o~xAEfx5QIKw?vs5k`p4WhUw3t{~M z07m&5ND*S^!?+AdaACw6w*-(%{7KzWDB1M?Ol~Jh6z+RnLFJw=-M@{EYxAdQys>cu z5+V0I+koh?)+CwQ+r=Gw6wh7v_T7>DKkmjuMOZ)U21TMbZ!GX8iHW9jQ6=$; z^uV-zn!zN@P+%k_W0{AlMV;j;uXQ7zv-6G}Eb@l1^%)WjBq9~n{Px~N9taWWZa&@XsT z>~Q>O1Rxw`^%?jOrlRC)j6;U5qQ}Fnq>6|c1?u9X zd(_bVOHf10Hdw6GSGN2)Qe`luYGw=W4duiW!fQv zMEdDk+)W9Pb^6L?|7R`xKMS6k*Q{@Fur0mVw}Dp*cX%~08Z00}p6Q%NMl_AZm`UN8 z-qCVX0>(SN6lr+x+tP-}M{h%z%G+drS(dxJhNXNeo8vtoYg5E>7V(r`aQZtjfIC8@ zGPo!qm-+p_q5A)Q^GJV_sQ?72ol5kWbW8`M9N#fO=(b33h6QRL?lv8uZ30o!C4>M1 zFY*&=ctflq^}u_+l&2%(0&=yDs(ivZi^kw-unM5`dD7q7X5F zikfgGKA*@tF9Td%X0Qa4o&2164m9u~H3a@F&;4NQNZ=8~oP6h5twh-=7N~&AyAt{p z@O;m=+Z;*pOkMtSAHc48ONj5MbIBiwA_RP0q52_bnffDQol8kbg{w_iP36nnYi-0? zZ8^lZ&Lymq z-CICA^hxpEoi2Z)S^5g0r#mk9rTKm5YkN11c%lK~Yn+#x=H_#~Q0oTJ7m1`;fnH7Q z=C|)#3KgPE4rYCKfBr5-*Qvl!^o#S_A~5R9rAW{tocXbR7?Q6k?o^_^yeq_6H)~JF z{XU6>(dBve#1p&ojK4xccLSXe;~9@Dc*Wq4-ad0q^UN^-+AsqobK<+$KL#E9ByJNK zu(fb-SOC6x?d*1Ch9hdbckjJ^qR#G;g0+dHGXiLrL5|E$Wf$wqfm(mc>YUpmnrT}8 z2-l`Q5`W9?D1t^jV$zD*}y2(3E#zX@>CFArCgr3<;J1 z4Nt^{ZZEN*Z&^;HXzm+LnN9C=uu_--WZ&)!KjqG*ChP;J{*X}&^F#*E;c+J zfZbff$+{Gk8D~E6r0s($@qjx^B0X}4m9tVGTG#n2QNAais@yw-*pHsT_zYRM zm*B^NZG#KL?SQv#or%gcCW*5hEgKF6p^=`;6L5Y6pbq?2WCQyp%Ru+cNT*czqF>1> z&F6JXPFmw-U!B!I67fXOWHh1wTx?vJxc0@vzki_*>ZnSgM3Jp!AKoVcQ>uLN5(0z5 z07203eKWdZx(&KDYYBvJ0^kLBr*Gyb7Y~|-!K(sM_lYRr0s(26 ztPNS~wG$NT0k*f0B-#>%2jljX4>FW_`9OMJE|5ysSA-|kM@~|!-*S8w8(fzdPoZin zu!H4WIwg{9n*n4pEH{Sr{%qn3p2usYEuF+mMrKEH`-Mqh%cY9a^At}F-iEJJ2M39~ z!LjX|ZO5O-KI%;yuHdQpg9c0M!6dL_3UR&iU(iFX=`R^_PxkUv|08V#^&9dA5~WYv zKK82+r2eMrkv6(s%EG;WOO9cU;lwgeWSumTX$d+00)z$V(Gw7GK|ZC&C4CnQ_T&#M zGj%nzfSqL~dQeQJwTHu`eV<2I_xtmZV6ROFwbpEmR`$@pmUooDVo>8FINE|<4dYEW z?-T-13n1ZM{XqB1j0^!h;=ZdDrYU~sG-uN}(81Q1Ms*Zf4r)crKdU`?4B50pSc2pP zUgQKw4-mksW9U4wm1_}#uib}Ou-@Ou>9NzpJ1i|G`{yt&~^NRLt) z3v}5EE4oKmj_-GqQC!}PRdrrpUF}$;zDX4?P%luos1h!U{jmLcDTLY=-G?*qk30esO;1 zHD4p#^_*4a&r}Blkl}WvH3O+Ma z5s{!m0d^`zc*&}PdBRTDTblMX6~;n)pZVQAl#l{SjzXBV1VDY&X(P?ZL@TwX zGW3;hY!Nb5ChMzA?55?7yW4UO%LsM6(D!qqM>+lDm8Ylv*_lr`q_$6A{(#qY^L@-# z$flxZyTgD{I`&zE<`=5zK*8^UG_HqpN#&IeMO`7+f%9=QUZrl%q2z+sO99wR`p}i( z4)JR7a?E#71RqS&hbR=DqQsh3x6#WS6rFEY>y5TgRW$zM*Ae+u;qz;fj_qV@#UU|W zsc_X^Jui1CE5%ASk3=7DEIrB(_-2eCVvdnZrFj4J!?xpxuKiHQ?DyAiqr0_}Bq1*~ z;nSbPuWo9U=QFKTt9cK$DnEGC-U?d>S#<2^NH$Ot%R=9m-*oL}=z380n zb>kmI6VM#<1J4t*Y9$&%Me#Xjv4FZX z87g6ndK5ZS)25%l(O~f2MeWzT6F2D-ygJLV`LBLeFMdH3_*CjhlT$O=7t z0$xjpw-2){l$-f$PY<1YUl?r6ZA_YG<<+GU7`E>P(T))#DvE|O?wYl-7rQv3A%Ap;a^XFYH0Td9t> zH!QZgZsuR~T|OaGwS57@Mko5H5^UOi?BOW;uvYd}R5sP4Hx1qoUzBNhoo;ZCTBrZ{ ztT|oAuj9}wjDKv9F>&QorMY>n&k)bgo)Hfv@k`D zK$py9#2}-ufp{;=E859Z<3?*lN<+C>HJzU6rZ66Yn<&JD3ns-A6hLNx=XrN2T`_S+ z@nf)}(S8zJEC~aM5DDd0MG^Ap+S?fh+}f zXuIRyvsGe?LauK}@Ul}q=-toHQM{|LnUE{n2cF(E_+j7sQv3h>ehd6RI}TL%f6$$M z(%oLUak$vQM-pUGQg`ZAnP}=_OH+LLgNOlys^I-wr%5ibS z+c)xfSE9)Lb!>GH{}x#(U7g+fFka-@9y`X7Bi#1}r%ol%vVF@be5o4M>@PAYmC9Am z(x)dM;Po;>>@AWY-860#-Cjbfn9r)8+zKBP3S&`3O;@#jet(mGq`Oz#V2FN(1 z#P&TE)V+i|ROC&-McorD19j5{GD|a&2C@8l2Y6mUmka};^A-VdsKqr6_tZr?@WZf5 zoGSaW6XU@ivqxGgt>AQyO7-=4AP6pvN)`3`b2b{a?*(S7@lmmT=-(TvjT1XavoLPD z0)CIfvfNL*Y>b_)8yyL#+9rO;P!&I{b6nujnk>vhbhrMd9G!tg@|R zcQ&kuW&oZdP}kzv*tJRY`vWYLiKLCJ&qKZwg?!wqk@G}_y=uYQjH z0VUuOB!wkx?mv4vYJ$fsYtSj}Div!lghyeihtGf$RvnjQiw7=?aE|AX9btgML3uHq z9AsL;@+UWi8~&En^6KZ_PERuXn=_ldsR$gg859sw+yv5LvQzmAT1R3ciWw=Fn;MLo zlyAwxE=kMW5oLSWkDVXMEQYZ(m65y2SYA_<3yrxpH>Oa!@1~rRW*S_*)m0bA<}r#n z@?Cq+j7HTq3qrorCnPg5W0^MFiWdbqY4-d3P%77abeQ+-ra1PsPGeCXEDz;R&A2|7 zAHHG#cKH%T`q9l)mos_fc5A~ME$@nq2-L2F^3$JY> zO)vcknGUn=$~gqJL*s=*u$Ne$ss=3o`W*ja$wGIonG*}w{RN|_4!Ni(`<6*jO)LC|--a?GM`{SzuxurKuEh z%rf@4EMop}SxG-8?`j`lsS~>-wWqI!EAENo9{#_3JgFYf*ZD&@nMEwa^@G?J? zhBw0#O9E4F?y&Hk4HYFW_i=J1_WYMAs^Z|qTuj7spUq>3golUR)`;ow2*^0o-b88N z&@u|S_TUCr7S8OZNaCIr2wy2shkW+S0(+Xep;JL;D7HRWF}WEh>0xJe4-_dMpPvNt zf2O<`-lgo~wHW2&dS^o;Fi}_)3L`vqV38lDbwh?{)q>6NFAHb%NZqlkFPqwCoBZ4TVEY1mRBGVVx zZxt?-jHI!R0+Y0VMq+ybHaGXvPE3jss~?l6J|oxA;UmjH|B*aR*M9kjjrDPy`G*MP zWfC=|=4dQ(8%znhWz$GgA!w$Eqz`YuyInkXb_3_1fk@x!Y8?$6F%sM${1F4PxhkC_ z4m7WyARJ~Tg9xR%7iSyG@KwoavCzB@WV_MgP00^gD4DrLuI0q`Kd@@iboLB;T!RTh z5_5CjbJG$r$!>G@(h_<1sb)@6sxPBv?nfa>;rx% zg|PXoGFy&G7RU7uAC9X$dBhO3k1_>xPMVlzb=%Z4pzT?+nm_vbfqp#bU1Qzs@jNPF;QxEBFyyo8v!2<6V=)}+o7`5Id;BqkK*4MWqzd|M!leq=KzJ&o#8%v)f`)NWC zW^dF#F>moXy~KC$=gp}zUG{B-okPh!v#-l?4vln`DyNTM2F3PM9V6UAF5xdY`dxZD z)zrG1Psocewt&_W4fp^YX3ML1XDP64Mg86=pF00Y=TOm(t&S9ArJ_B9BhS zU^~mol%ry;k(5& zzS)*1V7+?~gulm|j!x|Qdj9U^L>f}_u8GmyZd9?nSud(k+#uVe$!zr+f5xy zpslu~n1uE7Z|hU)QN6o(nyhH?Sl6pHK-JjXpBLj&(yk+PqMqgs4lYoop^lGMEcTo< z*N6wENT_w~@ngHd4R3@9x+L0;%OpFOCeo^8QA)(pkW3Shetl%V6roLC#&-u3A~+xktvw>3lC>sZ$mxd6<%@d0ZP3Dtv7DtG`KneIjp>YT|UvP(Doj$miO^ zqtZalgLkxsw&mvbOwUIqHW8`8e}YgO7)+SBz)pfC^~-Vm!8DXBpc<-N+{BjTSk=8#6s36RMjm?6ZyQwpP z06rm(zGP@Aak4z*2uD-6onr@|x@{h;xH-o69sS?W;kP#e8|K-$exWzX52+J|V?FX; zUrOJj_I$>^E?${TH;)UNlJd|>y3wzsZsk1Hl{o4_tJ zipnqDhRy7LsYtG=?!hhQRKmuN_tJFuMCvkstb7tVdgadYi5|y1spYT|=}B3K(TY-% zoQ*fqdmAMAUhegw9xUOQQlvjJ7p+!w%Ta758Uy?dUVay(_|MvyIx)#(Bk5#em3ZTY zS>VJ_ZaPX^m7sU2$PM4VPlIc+KUVIM|CR;j(^CiG)E9U z)e;)c%5rG8d&^?9l28t5z^aRZJz8U^6d)luqL;4iFtU?ym-M5kn3B#-t=BB`DeVlu zSiN^v%kDEKo*K+0_E(=HN8trF!y5>zenjefY4}={H3+Rwqs*vC-ynj>fqNQTy|%s2 z^NXX=!e%Nqo*C>ul>?D~UZSJcD^AAh!UX&IPx@9l0p2ZxUwfQ1 zHE@=6z(FmK&rPjIJyX7=!ecb6-fcy5N~bcS46f?IA|jO!dirx2k5Cd88P|biWk;mm z0L=l-!?`9}n@`ls{7otu(ypr+I3|*cNH)1ode>B%d07q4%qe~X zvU5+6tQU65mQ8GP2)Q+f@n|O*C?>}$kV~M;jc>pKAD;85{XGhm)!G?0# z+4`M7WppKAGqLx#hWx-J3hr!nK}X>a-1G6DZLs#J=67->&upLKKNH6E;ai_S4DY+Y ze#C(9(rPCOOQ`xXckRdQb*tNd=>0&*?!(8_BRC)0g}At$9g$g9izc*DFl&tBAqaNe z25TbcYwp~?Y@fsqbjgZ_VlyX*o}}eJ7j)B9Z(Sgrtxi;^JCW+Xaj10U$@9h`#_q^1 z@Rx8skXsbau7A;X@-VN8RWu!$R!)~vi)N39O39bH{j2EKVc%e5!MU8@Bsbnw z2FsLEQfwcVQ}J;R%#y~ZXI51Djb4a%zwHb&xnyTTOvR_w_WO#D7l}@@MNMJFhL%_r z{YG3Q4rEUs;9Hi>@CA}=`>o3B?+p+=@H#~!{(sG#S5#Bqm&cVZH9$m)^j-x*QHpc~ z=>eolRXQR{?}SbSM7lJkseptgMM5(mQY0X~h2FscF?3`u|KF^cd73rzFl$X-&cnUA z>*So1eZKp%&)s_o_3_r~A?ed|v{?Ec>5PjAaRb=#f>~O1=$?eiOirXZ*rPCi4+nqx ztJ$ote*VIu%sSxnK=VF3-LaAxV+(Yt1wa0j66kx~e1nvQ4uyK-?;=9c+L5LE+@=cZ z6!)aBe9C495%sc-QbpUW6r zdG?IY@T_u{g1p-Ue^VDHtNf$qgjrAwt`5lNOaI0JWJ5w&oO4b%EkbpRT7j3eA;V39 z85xwF_m0N=;)HQ3KMOIzLHOKyy+DX)eeRdZxIw-tYFSmw5$F>|dwPaih^iCpmp5{lQzo+E+8DdyjL-I28n90g& zg{1F2SX~*!QAZaxaMGWjQ2^e)Z*cmPou_T4-+JvH)dIf%uM=|MbY$Mt(D7Xt-E;}A z>epp3X8y;T!RA0=9usIn>r+a;vo-?Bd!<%~J-=?yJs-L$Ybs{DBtLuc6yv-^CIAhg z!WWhNIOjWJ$Id3b#}%Hpho|RENT=SD#Rzsb&hbl6r*vVMEvV@Ace4qBX&0%T)ICtScIXfS?X00-Gdpl!AH&WKkKqb{9TiTW| z!+GA2N$2SilkuHqn>qtjzlN5hYU+|Bhq>4?J6%E0J3zK zb1yCLK1lF~C43i0`*TKTq1o&a#(CSOI7L}x=q;jc`Ioq>3Glmb1Q=zOYVFOx-K?Z% zO;+ruImctif?*aTZxP|I^-?9i&e13IR@><57ZxVp&cGWxm2-57q_+ePQk#dVk2~(D zqcWd)?2k8rx6fW71uF?coH)$GPJa(FDbD}*_?vxzOw2mNmw5b_q<%hU-gl9|A|G>HaH-uNn1qjE2n4RW zHY2ABSI)8V!u?zlQTTz=W0xjPYES%qPX!cAw}^jR=Q*jrRkph1^pI1`Y53O+S6!H6;U{{8_QVRN~|%?%5`OA30MUimfpYFMYdzMALd@H z%S$bIp0Yn1e$0=lx|hRy7^arI<7f88!s7$A`*`2>x+_`k%Vj0rjU!oCg~Uc2-u~m$ zIz`dBuY`l7QBu)2GZ~Sg1tStf0bIFvem6Jb^d-T&(M{iK-x+t#$EwC?eM0DXXn(3* zISHflnX-Md<%KXy>0hC!8V(NQ3r%F9>?M$x;uwqu`o&f1p%GiQe7Ht{Cxr);wBE)n zRuOq=++jS>Ju5C*P$_1WFf#EV_8w`6|$Kmp^>VV+u^m?XHss6<WI94;*>UfP`ZM=dk(p8^oFPpTS`xxUF zSS^m0d9*{%Q1n%i{3OI9c8p-$2XqE6x;5yVbhf=gt#De%@68xyY0h8};kLd5&)l!C2Y5lmJ^j~hOVM*PfnICOK zvX8PJ__clgXZ6C<64G7UFX}|FXUXK?fdj)6hNzTvY5K6R)F3Os4f;lz2d{szv4!s0 z_|l-&xj?iCTh8`gF~}8VDooBKcqyt*&OC?A#Y#Z7RNhF0)VCQ-x3F(7#7iyoBHAnP zGBO(9-SpVd`s_tyT!igjFGn5n7kL!U9-69k2iwWiVFvtmaON1YYmUBeD48VelhFG z_ZavU|NQzY64$hD|I_kq=K^m|z#vutTArh*gQm*n3ruq|`PpZWQ3nLs+`C=UdDmGi zfCMZgj%_8k4H~xt>rL_2cs360P|}C{FtS#LC~udM9z3R4Z#6_-MVN2~OQ9ANklxo( z*NEthCia}d$$719bCo{-4P)*v-uO_f8Cr34!;_4wl*6U!F#p~%pWA#?m=_@J>&;8r z2Fd8^uLnpD7Yt)dY0gxQ$7irD0IRL7U*CRXSAaY1g$NgR`(OX6>vpGI?Mab?A0X6& z*wBq1vhUJL`)Q(ZiKxR)Z!I_Z6nX5LdY$0@_S_ z1&I_s+47H^%@V*qZ_TF#^KJ?C+p_QoD;?{)qtg+6qxuZqcU+JH*J5L{&%X!PcKJ+> zAdZ!^1972K;G4q2^XyfuUDH^?B#xZYa25;;gozB?^f;^aAkz;iz~w~q4)?6pOg?Tl z!T5_gBeUe-GGwYSl54ezvp`_=GfjPg@nJT*2}cpgDljOM!K170`%BTh#vz3YCOV%J zJ)i_)lhKN|jt7if8?aEQ2RSN1pB{aT<)^?f$Foy@1Eqom`I!Nu!Za%Ijidblg)T>$ zk71W8&%wx08p>x({>jdc$+vr zpXLjl9}xbwtfQPze)ldVYMta_JCPIh6c8$J&euTr%E@p?UtrUa0ShvGNl5RwY=$}` zvv1DCGz@8tzxrGCuoD&YO5Yt$%j=yV+?P&q`LV7=z4%<>hrM`I7SY%X31wBrg;tXg zN=65{*x84v4kVSl=%Wl)i+fva8qNuwFFNy69s==>{9#T3s;JveA?`nQ9e_aYA1|_& z_KZi5HTWY|IRZR50?Nl@*NoeF7wzADYT0`M{xA0fT9W4i5(JTSHcF>;qmcr{b+9jr3)a4=Fu!OO zY0n`;(aMDDq=YOaeMs#Q-$48Crj0+|BHAY&E;jiGWY**tOgIEpJV+k%i^qaU?o*~8 zcEnG~lXRMJKUy?WX+a%`kl2wKh|o`k*U92iRtxl2=58FAKe}*B#Q{08?{#IX{dpYFBHqJpTiqzCY9^6h1Exb<$fKlJREcbBxi9UN~9` zHDfd)zn*|iIvgvb(ch9a9M5r%zh8gqT%GjKo-@h^1!W{p8MoyGE?TcRvihvW(9Jho zi#TJeYZk51sfX0r!XGPY;83O|c6P7`0UMCT7osQTFGxA;KNZLDjj#|Dv8cyLZ> zpba=1=I@c)aSSCV`_&}}&F*|7Q zm=ju+EU?Y=RBN^!wkYos?H-{n)Ls#iD4tWIt?Dz`RSh9ybB_ntYXrNJ#*R{D zOLf(6i@p53`g_-PlV3r2=Pv9nerNr^%s_QLtP={@cIKt33;p8%|O8f zTPLS$dgV4L*ZLhG{jpjqj@E|<*YZ6l-7(cMM~d$W2XAok^1XLk(BNmC`wCBIN{ue% zA!BFkqGIN^&d=5>LUl>(Fh<4^1@bMZYMfJI2$R^>7wHP;SFS_ccZ%yYiRz}pDIB56 zxuQ@G%9^}5#|$psg%U2nPCBh6=`*4k@?{jyY1O#6d zgg*C@Ambb-nt8)1{ye;z$9O>y+IFm&6|yt$ZC!$d`c{6`iX^4qmEO!~te9qX=wQe> zWOOZ%C;IfyD(|+^edrsd)fwGqQxz4M2o{OrKBPvELheu_N4NQOhp$=Aq`?~EgWYVS znv?@3hiHoCHDkz5VuoE2nMD(XUE?Ea)5Llig~H}2e%mr5$D?To1;mq z2&2*H^OiSGg<-E}&VkZk9F|?`>W!P_b@~H`HBu_6FJ4rLLG3^jWHxhVNNvSTKY6O~ z>Ll73+EZO|iw+t4t{M*mt5P&IdS6$AJW~g^a08;s)=%T|U~fxVfHRC(X$FCJ0t)BrY;PU5Ns044wssqYwMpvI>`M%l!}X$g9jXeU9b`CPiVCSAm$Dj%Xw zZWG0OTZ*}h-)j<<3&)i~Ko#=fC@2Ldw-}>Rkf) z1)1D4>w;9?ZcQYI%Ly=Ir`L!I)xe$*Pa13r8YMtLL|eZxc{nm|Ed?}=TDkb}vP@_x|HYL7eL`Fi*C28bW_PE5T@ zjfcl4+#<_C9D-^mbHl&#R3VI>k=u!sVIEG_%o=JWi#tJR5iz`n@-CU{xeTZ1q3y`fYVID@d4wi8q zb23Xn9)KVUmWRPAv&s?gTBmxdDH9K)N{!AK`Pe~HWa>R)>;b^LX_QO9+R9{bPg7yX zvVW`&pEXTW_RCCa+&x-rsYvcbUAMPC`jV~w-jkDz)e2X$%M$wGKB*3wgDiJJjkDE* z85AV?ZYSDBMk*HjOq+k3$GQ#AR;9K+(%)Q*tZ&Z9FVBw_W)r@hM zoh-FY+?}?sg+D8&jL9~nHDA5Mp}a-r?D}i{f)0bZB1WXF(Gwljx=}|lb~QN7yyqAs z2{y_CRf79#xUBdG8OYiN4)e$3{&GM$)`m_3rMuwSXYlRkUe8nZJa#6wUZU#opx5TV zIxp^X!pj1aj}`AGV`g2}RqqBn1E7x_1K`yjwww>db9| zzFo&`j!DF@U)-7JT)4umdKLvzbi=D!}Nc|Y5vFHCq7+mreFH0oMhc;v1gJ_dLcD?&F^^m$@Wt9 z3i;qOg*La3Z$qnnTCO0~^mycF-dbKh%=Y@e=?o(SZ}9jnt!|^E_;l`;BdyH?6GUN; z8P%%#YtFZK=@Y>;LpcuPxRFKFUstiW`%@bb$TtAJ?VHNKP!|#ss+3 Date: Wed, 23 Mar 2022 21:39:34 +0800 Subject: [PATCH 188/507] Update ModelClassDiagram --- docs/diagrams/ModelClassDiagram.puml | 2 +- docs/images/ModelClassDiagramUpdated.png | Bin 62051 -> 60750 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index f6cd9052898..bb1acebc483 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -42,5 +42,5 @@ Person *--> Email Person *--> Address ModelManager -->"~* filtered" Person -ModelManager -->"~* filtered" TaskModel +ModelManager --> TaskModel @enduml diff --git a/docs/images/ModelClassDiagramUpdated.png b/docs/images/ModelClassDiagramUpdated.png index 5df4c4e3904500274ab629f0dba39bc7345be430..51d25b6d21e7136fd0f6c1b7380ec671a4188624 100644 GIT binary patch literal 60750 zcmb@tbx<5p(>EF{xVyVc&=8zO7uN)L4+Pg>Vew##yL+%eaCZ-y;IO#EV#(s%&GWps z>izz^U)7ze>7AV#=|25C-96oXqBYeOu`wtxUcGvStpt?Qe)S5G3BFsPy@sE0v#qLw z{~&m1E6Tj8ouWE||3S6`r~zKRs!zatv_OIXM|TApc)WT=;Q4Py*s!Jbef8>eM@bH# z>uY+Ni{kr!WFZ22b{1@Ma(;fUP>B$(%|YZ)N$Q{yKBrx%TcF9&sQIn6gAjy@O|XVe zAlS+R1TIKH$2Yc^sAOa`k{C|{^ZrOT=XWV~8~m`{$F(Gjupo=j>d&C#!y4elDjwtm z{O6QHv=wNO7k(<1U<5fDeu)Jcb38f${E`7)Whz3Z2n!-iatDWoz*+6(de6+3AzrK< zIu;<-02_%nmwMXZBIRf!O!7}N{6?z5e-9YyZ@!CRDpdHCsaxLtzb{t>lSL%b{`c1Z z+v8?#eJ(=N&$0v%U&tz)Z#TUEa^~Q;II(ReHa-_G(a8;G9rgdSRB(P%-u+_+E-0JZ zKYsoV&-TCJDb^od>oNQ5yv*^?{0a8IB$K(n$8M;0bTOFqFZkb*IdM}C@Lmo4M|#k| zvHSnwxPQuqlj*3Kg}-X7WrGB+p3whcZ7H|RH0dlR?XwY_cbu!p>T0g#p5UI-rTT%% z|8CVwPSbf3ARH|Kh%8eoxH|y0?qmBu+mLOsVnSMDW1|zG!Eur2?yLo}n_(5782o&l z?>^36o{{%U_P*-ZLahm>n9upmU+aM|IU?j|KBH!* z%fDgqlas2sk5MOYlrrdwt9lrck2`nHxXDzrm+rx#AwT~gnPNV*f=)}k2N^sj?Y{mpsN3|ClBRW#)3}yWm%DNdZXgcT zJGz~bghj`IyS?=LwFnEjw{QS4DvXYfg3W@T-alVNN>x0axdbP#G&!E|<3B&+P>UWu z%AUUL(7v!uOFmSeV=}Kce@dQ~dNGE&jrfr&KXi-}8G5;k|22x3`cvoB4qMqYj%O~RO!{Fd7Ugc z=*?^u_=i7v;?H);06drg4K5JLK$^Ty^JQuxMPvVFx7@$!$Ebit#KeW(7aJwK;aiMF zD`^ayKf8o0aQ9R!hmO8Btcj)j>93LBNlnXc7i=T>?WdK)dp*B!B$#n`KwF~=#B{^& zfSOqR(`s|-qNzW31s$N%Y3VxvMWI+BZZ}SNL-SH*kzh6Op8z)&|Fjn-4RG&6AssdG zS!cG(^-2qPd4jbE?~W$A@1^SPpJK8A51j$V#({r+UqORkjCeXPWV(hgM`-KjB{gzI zh3rz*fl5k=K9E4YXE-SLs1m-ko;FN?FbF#7#c`)y*W5;qdQxOb%>wEhKmJw@wdngl zL~YslT=lEkKnITSm(i-a?r$Mw)MDPcTfO)1rzK!(^dRKI5WC&7Z0DrlrxP>nLKzf^ za=+_+_n$(G6?S`j>1GSHB%47J{(n;hrryayuWxq}9AhyM_ipAjrb(C%%$TTE^uU9{ zk~0NH;`DkZUa4skYm}D*KU~j@oZIB(3E_~BJ^W`J2GK%5yWJ1x$z^KU-+YiP_#79w z?%+?`D@j(@*1EhusiS28vXL4#+80*2nfjkK@w;wHug5QjIo3Z#P&$v2xBc)s`EUn+ z@1LM3GKGa+5DI3=$KT(ULA&EsC6HC!~ET$O{V+$L}lW%M~E zFWlVEM#7C#6h0!#7!s~HU9PBC5-M$grgQh5?cI3?w8VXHe8nd8(D(YMFfKk5at8lo z+Vw;VJEKY(RgOuMUY+U6ko$Stf%3^hjo0dUD(CNq{!5#QwA50S^kZ*JfaL9Fs1v|_ zgjzI!6b-!B?WD-|zRuJnd^TA_vNHGu^754b>)U&k1fl=U3A&8+uL>;=-YJm-D!>sCpX1+Ra^PzHdYMRckDxa9y&ISO?!bp{J}6sXT0?qw$bbHDTIOHx_Pe(I zGyGjb6O4?J0e_7_eyQcq*S2anS1VrDaOf4`!mSEEBQgeoIMwz3&w1sio|mV(Vb9I2 z3a#P@CRSF*97R)rj1yXNSv@s9pWC+FdbbbM^zQB;e-94D4r8|=V#A6rQ1q?a4rsR# z0U@E6Sh4ek=PogmasE}rPPA2~WMI29Yj-&P0FkDHgG2kz{{wrz?=FB?6oSAm3a5dA z%VoR#BV+o>?JPYo9b(kUyS)^h-Nt$Kc`Gsw)dKc)j(mQaPQch5@YBl80m7gRLo5E25fEqoep}zvcMBy`#G}l|^REC4GqVHNSgy}T<#g{Kk#fhyT9KGT z`dTvW$smQ(SZc8kEtC=XZU1;7L*VNZgibPp4nRD_$VhzDPT3Ov&BLMJt;K?sZS??1gLME^5{ShWB3asR@Oi+_>I|Ly5|k7eb|*^10bhrhY-03=p_ z2#z+gAq8872&$!y=?4`iE1xVUvsQg?E~UTCQPwt8qmnF~6aRSQGKVt|Yf0|`kz5wH zYOX#MlJ+jI{@c7CQMubPnOQe-svn?PLKcDl^dE`!mwG(XCm+h1Zp5LYna_Y7Svhn| z>+4Ao{^z^Jl9%5;V{#`EdfxASWf`kOBLosYi~ae}4P!pFg46H3Ro za!`0sWQp>h;E;2bgextq-0|D3{dMHd4a9pSuj0k~9=4oxJN%H8n08M639hpL4$GeO zJ&nPmk>XLn+TAfTAfy52b?HV#)t|9|+L>OK>*KG&-$8IYRN4Arz^ zfY<9+UoeuqUwo2cgSJJe!{O11)4%8>mVjQutC%TpX)ro5x%44ZZ@kkb_~tKMGciO} zbYtU_N!3W1wzgY#nVI-4-pVBh<&&{UN&K!E-oJVASJDiwK{TXVBn~Ig)&u4<)F*CR zTa+9;2IJXQmioCfD zSaeQ=QVM;foNP(nzAd}LY-pI4&g~XYGA~i?7ia=KmjUbPeNvO37uOk|YC9PZpMeb} zxD+ZY?Yhttx!0(FPg8fNBtoBQ1b#4*|KO~n6jEmu$3hw605(tNa1PM;a@lPl2>fvU zPIF+)c-`~Dyp24zf^Ss{D{Vo3QnMX$VdVUfo;#uU*^HIHw^*QROc)USkI`z#d!OUU z2^Qewq>MG3%2>dO`MrQaDoQC(q$xv1%9iISZJ)B~O!%2*g0Kn3g#1c+PF#Zuo zThQPn*C3p75&a_zlgQDT22pTpZ@>mWG^ox*PvUKYLs9nLI4Ilj`%_Ind}Zx){4lq;L*4gc-h{)?FILH!)m?kRF9 z^CZ0V45HX`>ZyVz-A3ktpBFctI_gNV;V)8+19?8iczNC3m_J-oocLgMcg3puJuo`F zw9JEObnqN~PL)L4bd_HU8$OSsWq#gI?3QH)?B|#&5I904Oa>~VkDnj$O(=3zAM3z#d2|Eu2t6NJ zc^MMhmpTAG^yINfO!sUUoXaJ^LZ8;BTV({2>yE{qADl8DSNt1Tf;|5coIYPV2S*0y zRF2GVJHZZ;J^tPezvV~bURFQPNvxpBin{HXA>Yc!@&mj)Y(>5*Rk7+%llNvpfft`dCQN&VbsD$Ik%;JBv)l_^* zNnaL}(!8LYp-{Fe*zCz;e#g`$DG>Ifc1}?Ke!`3TD%PBEm;yYr{xKDWgKkx>Eh z^q%RL^~gZssT(p_?AevbYd8da=Nl$V1?H5#Kj}~L@nCE5z})w^_R~u<(tI|A&*4U_ zZE(Cq6l$N<|6|)_UQl-BdOnu3&i$`n+0j!NX2X2!!^`gCM(QuOWNXWxEv2v_;iDgo z62p7B!FiPqO>m=QFItR+>rEX$%P%k;bc}QLY8q57anSh%k_*cT9my&3(>|#jpwdaP z1(ihA3_#Qu`!oIsvGf?4-J5y93P)P|6J&gElBXw_d{oU~TELX2x-LZ%KPIfO-iyep ziU*O|%A;kofT|5}i12!Obkt;hiHY7azkgmVo7oU?>wzQSD`yh2RL8PU(yt3ly-|sp zR4Ewq{M<+COQ2BZces-7P)Azd4@dgMid09;>RZYGUCBk@N-LMXJMdSz9ar z0l4FB<8%ZI;kUC=J4Xgg4A}z3{bh4>0tdT8qyGhWEUIbxRtrO%p|>04$P+cjhbp z`5(zk!aG+rBw6wk{Ep>`k94c}i4WE`H88 zC0zsO3Y!dkQP|(rgS-z>-$_3Ufku4}ee88%4R-7493d)&ON8Npp8WwYT72uskpEyJ zt-Tv5)hm7^)GDW)8G%Jy#|Tp~zVJ(#Im_1c!@gqXgPNnm2?1p^)2E+?60iHdmjvo5 zQA-)5iIr}gfKF_D+sdsUwyl>tY^u2K+qy_Rm--hzS+5^nHZ%qb`#8Tb5MnbWD`=f_s%~6qMG=6ul!EWAGB1rD;8-+$g5$u&uuG=!Vx(^k(LrBNl zo@A^@$AG|oIW^T*dV{6d4?G{U(+*YjzWvfF-mZsEtw390Qy@F$S`CL ztz}gtick*WjQhZcVmT6wy+rmsl+IA{k=hcB>)odOaF3HgA28n(w%xaes)p z-1WKU)G)7T^#Tni_?F#Z+2wl)R%|l!C((`<+{9g;F6P>s;(IK#6?i^M`RnRbm-apG z>|LW4Am_K!lx~IE*xFIh=3`^s@^M*s%euG})8fVllBv0$=~jlY|98soF=?t3H#vldz(UqyCK1C55FJmDb_Qj z!PE0xeUvdS?j=)HOVRZU{q@|dm~LjDqf~0>mYkrYWNEpxE+FIrpn6eb5E_0n>0`1t zE=&<0Wj?oFWF|T~Jb1*jjy-qNChA;LJ2dR|0hhXPPs|I!;cH_{>nFRe=V5lGhRsMw zBbI!1a^5>1d1y%12(Saw@adbww^fJqs!e*@>rQd85e9X<(_Q(wUzX{?Bpr=Xdo{RC z&n1OlD&~Cl&O=L9|m7=igkhvLu34~+Q<|T~BIQu&_uj2Zc zLO5M~!i`PTMu}n@TQ%Fe9eG>n49dCr*L)iVFZneO<6Xa!m#W9aPln+Emanj^2`ptA zh_Cz%EvhL5Rl9hJQf|zWT*uxKJvKhKvSt=7h6~%rBrR~Er+h%1j)>Y6aTT7++7-11 z8{`L{)wU))yw6b`nC*f7${ zpOAW;D6=InP0WB9>{JC!`#K}VLd9i>jBbh!VN@&>?%As|G}rk;ExvC|oDfijQWG=} z`6+y36sd0t;GZt7Q`51t=cPrlfC=!Vx0$^ZxT$oC8M+WvMA6O(ahuICp_F|7os$6# zy!?4DUQ!?bB5E{G$bdRq!sC*jHcE>2*AMboz^ypNoS&$^JnePgw!m71NUyr0T4Acw zA;F&V-uzvNoGe2}p=%rl6LQLD(e*oVT4FlCsHew`zsL2R@8z$H@>i;Q0W+>|dN#{d zA~6yV3=Yq0M&4=3l_~}ukP$LP3UesV^|n%Y=~`brm36HGIlX#1!l04qY03fK^H9Mj z)xZNQ;^1e#K4kO_i#fD7_PN2O<2w6+xNue_r~svq4t`-C-=bzeWt3|v*UswvOpbn4 z9!9c7Ex#hT;)|BzF4gMs|=SJbc*uv9BfD4H+HxY04fxK?KXJJNPzEaQ_VPVxsf zPW(~9-BGb!@=n>3pOa_!&+a?FZ8#=cSTcv_|ixBCptq{i*IP} z{_y|A3pG9gDc9us*>-#yn)+-G~t ze^A-pKI~o>{8Xk=O#NF2;A6DOr#tQ$?1}{ncedN`+58Vi1lr{vtuDSM4!4m6qYi^L z)8;Ff&KPhW1^Jpb6dOL8=cH+&5zMJ>G&qm1(jI#W1`R#cm}H;(&|Oq69{vT$Z4DL2 zGXG@!h)4J=WN*z7R_VjGdbv*@@pvGOR!1SeRytefKGbIofm)t@C_Po+y$nKxo$!@g zRJ;T9oj#hnZ zY2y7iWF|LNUH}Ld`YioodUKErCddIza{?<0(!CFP#L{>c`{#s-L>R&*L+J`Hn7s#j zY)t`0C}o^WZf;4Hqt%`*PM+IQ&XmZcCUe_{pkGNFjm5Ez~fR?HAbhCr(GdKFqNX@NR@19#6i?UVnXB={uPJXHp*ym3ifWW#BeHVid{G95c1eo z9PHiULgX(onUw)C8F{spKH0RuN%mU&y?BQe8IpD@d$J=wo;WQ9clgjYRI9jf=Rf)5 zJA%q7>H8reppr-x0pBBU9-~A~HO;B*_kCiabXx((h%Z_C1$2O0hU(}yg(}hR)b&3% z5$D(}Nv9d}-d*WzdhrfE#U^BroxgXqKD*#U%@5`AW7Q^r1ekTXub`Yk{kWQ<;LTs~otb0HBX7#rOgQJ}&ZS&3$OT%yfz8^u$cL{%zw=H93y^ z#7x#pB@t?kj%Ysb0xKGclzPz!o;7R@guOvHR@Zf*j)X#S+vPG#yl&sBus9CHM=lyt zbHNqGro?&ag9&0eu_}(XPJgo640k)H`+U-pOK>S2NlBgMFmRE-2CKH}7osSA_|Tln z+h++3Ncf%c?TtfW<5CmR-Rlx|$Ux#*eY@(zVI>tw%h7hXjg{Jqrv(iIFpD0za?q|3 z1VV;V1>U2POFeC(lkZ%OlfBWXq;s>Rp9#&-1J6(^+5D(>r0t>wG(6%UqoGLD^pVpF z|JG}rv&gZ}dL)%V!Xr{rhHg_c`zzd`?IM{TQx;6Ud2rcTi!p~ba% zwS1(tA*5ERJ@3)#`*(b%aA5urwXDo?UrXP^U`ruAa2YTe795*K?UORAk0CJ}?bvg| z2RFg0C9^yE`T2B(DwOm}eoCZ;`I49F_K!2zFk4K5^kKZbXQ6s&fQ(<}jRm2BFb5zU zv)+FaLEeX*PdTLn3s^uIRZIRtQNno+ke57L*U;^piQAJJan*aPvyrUsfTm-oS_1*j zi~HgA&CaLlrTj5Yc+JJJCo$C~dXP~BHxcqqL@RP`go6<=naFOVe5PNH zJoRR#ADWv~%u6xf0CQS1fx?l5udNlm5z2@g#3w(gXo0N?$Igc5*A2)aIJ-Cpp7U z$fjR8P=|~`!ikwYS2sm=DTrE~j5g<9ry`<|^oQI`z{@6LzO^7U0);Jb?d6Rt_7!@K z`W11F_7xuBu+dpj>MlnmJ>5}qH^5Ts!g8D4c%!Ok0txq{X|I)13vMwd@L??<1D>6D zB?G>j-k~(5;^4ayd%^X_BEbRe_U3gNPF<;cv($l+{9&K{K{{)oLE%pN5_FF1Q+MW7 zBVv1BG@z8H*7Q?*>ety~e5Tm1^tNHcDG=_)kJ83}M=4m{d8NLPXlddBWR_#gZ7yAM ze}td0r+@4U@o|4@Rmv*AP?!(@$~)3A{3F42j}0+Zih+4U<0I#$shwbdA(vM%V1bXd7Vh4!a zyO&eo`Zm&HZ~M5-h}}$friJ#WM-@Fxa#UfFhok-eAt)>t^~b3dnI7%)5AuChAh5;1 z#VHv(dcLtEWI+&wlc+yOr3AiJc##M<34+KVsjTxwo%Lf7V0apjoe;9@`St-{N=(F~ zb$v?!&w0BXs8=5V$mqmK8`yJi5jKfVOLW?W*pcz|eeFhB*^wf?=@HV)!59!jJ45us zw?-QcD_tw(e4PhTeoV~GF~_sG1P2zlttH0y^#j20gswa#MHl(P{T1c0gp4>8(zGhZ zAk54R4A{xl9^ThWydUutIod8JVDjC&kei89!lFKkRi<$fv?=+l`Wk1R|I4E;9qw50 z)NHFvtxDGQgaJih%0tT8F1t8IiJADI?}Eb(x7!}qWuWg6`gaxycb7S+a=QAFdI^3s zEEFd5{qv>=GR58d1oR6$lJZPCbe(x~hV)z4^u!RLW@||F*hK<>nUN$S$?w9}*fW`= zLHC|YLy9vq91+E$VG#WlKMMXvj)uZap&71Zo`;%Yv~E)CUK>kbHdS3;5KnPZ>#{IB zi!XFJ|GVGMQ(&t|u208d(;0?Ta6_Sgcw9s|SVAQP(o~E< zUkzV2-?~@|X*4>S0F7mMp1x8sLh#Hi8Iht;_4B?9hS9meOGo}6iq>Ls!~~ysLA5iSLhD2bq5#bnx?!JU#@)9 z2$@s*K6UwWm!;B45QbH4ucK4uPK>P5p8qG$IvK(+e4E|>Wr1|{$x8Ev`X%s#b9x;s zgZnei8jUMY*?}0sHtL+EuRNQlSUU#Yg??~;aNMcK^n#4!q8s2mc_O}13WG}%ytzI6 zTP-F#P1IR`gBnVoGl)i%O4oN?el%ICGshw`sj=8yp8!kb`~?1RRkmlon&T$9E_UzS z^@*r|jkS(7@)`+Bc)FIe16rGCVLW^3BH`gL=iFtNU1TJe*V?CIrnkXo{IZq?YXx>eL}|W86vV8T7oXV_8C{N_OTXsp2IDI?!eAM8en z>}H_C=XMw%RMv30<&*!+bs%GnHTCGt)H|Z{5WQ&n@yVvyeKI}r4h-@T5GjcUcX1k7 zNLV@N5|mFsEa|^V{aI9%6OwuQiN=zv#t%#CGi1eDR}^ltlS+xS9XcNzsT96n2U@Yr zKZ5X$`h=aPvEg(sV z`)kXkT*QKUle*XFqMT3&oaAf-nnDVW%rpSNYXk5KL0qj+#HmAX?E%IIEdp1pkir{2 zo!$eXGy*zaZmH(BG=adOzA0E-A(*^lzEc1vJkUBQ-iAT6Q((SbvM0nxUg5r7r;DhB5e)rxpFU9ysq=PaJ|9vc%RJdjOmrV@3mN{* zyPG`F*WH!fa$GN#UT!}G$8|s~Pd2>vMSW$0^l4Zu> z`rN7TCB5f0@cR>4PiiX99lYpK^wxMNR($-ai+1Md7Re41JGu=qV+(|(wzrNfF>GM2 zdGegw;dv=jbWYCj(;izYKCCc5_8eY-Y)b#8l2(NAQ6lLQ+aT|Y%ZSsEUk^D#if?k% z``a$RjPaCOl;B^JiLqZ?y6raQjD~Es2!1Jx+6I!gTV32H24$K>i|A*RW-fnfnap9# zeE5rk{c*@cCTKEMF&Aj}u6pV|+fEc##Cr}f7;eEmb>4<)3iHl^-7{NxIOOMyH}4er zH_#bt$oAfYAp?K>bAxl^4aYkYHVw)G*}f(kg$xI1#D1ChW8&PdaYE8<;QVH3mVCqV zSSCVIfIwi0FNEYhC=4V0a;2TXuA{as_Su{Iih?&mQHz`~+ab7<)A%l%{3?Sz;n{Tm zjX9M_Uo3KTeXJmQK>=<4;5b*1s6)y_S6@83EgCriB{W3IA4HwJi06YPX7wr0{DE&j z(7eJ;342Ta=7@^ejnS($HwfCi%=vyhV!tc$Td(XZZF9b9=|vqJoSrGizKAD+x_X=$XI>|1R8RY|RlO@}p)N~GV+3?KBr=NKjX>p8_ z*@#asElhzu-}!*oqjN0ui<$iD9J7?~$J?Gjzl3Mh9;NIlQF2Pcn!9;fsv3vD(~UQa zOg!aM;c*Gm8#`UCdhL7G*EvGEej~VhmKt)2W?&Y0){P5|C=%M&Qz%lhp!b z4$N%PnP!|`$%>oUL|w@R@Mg20)bgGQea#uY`5hX0lJQIfFm%G=+=zw{S z`g<2e!6yAeRz3cnh>6Ru_X1$o#=&DWqQ@@9r2v!xYc(|14eWKM`J5Rm1vM6$e$JE= z(er@XDk0P&s`;yjPPLMkv`Fw+sUXLpG3e^ z;y{6^YwM^Ot2KK7-4Wx{7|c`4_Tp0{@x~G-Wpvq3ujN%s;0b1U&J0hw&FXz>%u@3A z<5a+~VIjzwKkYDHjT!hCR;{+HMgHB^DxzXsh*BVC^Z?3v%6`yzQ-b^NF2dlN zVp&yq!Ozm(yBo^*5Mb+KGpCvscF}_gN#_qft3b|uVfsE>^(RqG%0+Vi@t`J|u(bp~3TBF^N|&7aV>N8oQM~rn6pj1+LaO-{F-fXD_^8XtJ_xHHC2+qUC~zF%*jboCSP(}L8os5$=k=Ud{iA5 z#qf{Evzf-_-Oj}zd5N7Og+^Dk^D_-uYBu2EXA1xmBHPn=>L6eXzZH96U9E3ica`g& zlF4Avq880B|8uxv%M!gS7d|X{ELt9&&8T5>J)@X z&Nw~nzz!>qP_H~FQg35!fs{w`0JII91c|LMNEc1D_uk0|l0 z8FYuA(Aj9}K(td2W4Tv#Bmg1641<%O6@@5|hdXTTdY6ESC-4IMkYU^BesNR-ybDfc z_J8ZVkV#}G`0*RfkEF5^6!g?LcVTJ8W(7$b7g;l-<{!r4AFI!O)RS)wdm6pjk&)&l zoE+!LsZGT(ruU??|S7RnUiFqG8HS5L;9v*@w69&+e zcBi^<46rk=tUdQmkEX^Rp8rnOR@1m^pyZMzHN-1jJ&q0Va!65-r%0u+`qq&x6E0yZ z=GhtsUGYIue4-UcNSRJ$#b=~{iuu3wqnH*tiaRi;WGK$(Og{QtG`ZiF@jLaLX3nU9 zj$T5G2K=^-^dNcaFygX>SOH9z#@TrY(;tD6aNWu?p!(z$*vbQ?^IBudEz8cp%>A%I{L0!I8S#hZ zRlFbVsok*)!POQrIt>j5d(EJ+d?{p{7;VyULQY*AsVDi#S{0dPfLuwV+NfyyxOS|i zJmxhZRR#PG|JcW2R$^q^K8V?n4nPn^$m*-EoRvhvgas(O*j|0$*1^zvwv9%%&4a@$ zoaO&bIyHz>+{?XpD2_$mPQ2c6IZ8GR4Y<~6t1&z*Bo-`}mcmn`)> zz%LDNzZ*gq3IR#ZNZe+aN)l$6I<1?(t9DxNEQyam!4E zZpOtD1R}G2bZ&vs9o3_$6#-cdrTC7wqfdoP<~W>T(~i|+>xt@d2DY;p!Q zLyIG)-&8Zkan2j{a)AgD*JR3!ifZ96`syCcq$O8tcyW#e|(onmWqAOP$p8| zTS~V*l6+y%m6i~DWj!R@iNvIDiC?i+(OVI#fAESqRv1K|d1Cy!fS`mfuexH zQq&xyQ*GY%8y%qOO1OsSMFa_ZF_q_HPY(4U`IYwipWBPaw|OBSkf+rxafq01-t)_g z6SLN!*G7&qBo;hA`Ma8M1Q@&eYO;|X3R^2%zhp?B!xA&?v5P#Z;6f!pD6${$ZY!r`)2KOx~r_{%|#%oGB^yK znHyLUcAMrKQ-L>HZk6W_>L(5(`WpfYGY6Wq3~1;z(wVdaTES*Yq{g8hKovAMLx&q1 z9iTQ29q(9+aj3INw^TR_r{@n2-VJR+rtlqCP?)&j^^g5!8~0MX#>wJpTNAo*s<>j0 z5q?8EKUffjQGZK8qU=fm;{JoS!N;9%jxOXUS1f+mbtsNw)rS(&6An+dJTJ2al)m#% z92imamgh9%KAmRBnQy$X8_&y8aj8n{BM-Mk(Wu6WI6fS|mczo9o;%L6C~h)FCt~tN zwO`Y!zuz#}#=sZUo%9SOQUGfXdvKF{8Z=V*TyAS%03XJd)fQK1m5=CR}%0h-7c7tMqK9=tZ#1y&*9`jP12;$tGaos5H5YB>x%OW{B z4anZ_Fi71RUlTAy)zXsK$`@#EFnnQq7)u!ZJ|iLLcj}X>P)b+WlPRMnL9CP1NShK& z9uIF?IJNhaq==3omD>X)&b*_2gJwe0*z32$Kw&5TzV@KffYpuFu%nFSwtoIsS_2bBB7v8h#_%$PE}M|n9X7dYB!eG^ig=NSRuZlL1O!u}@MDkwWM1dOJ6H@gADn?4 z76jL2l>+X_=zWpZzqidoGpUtI2FGrpnO=%`dQp9n=^NixHGf*$wgZ6`twfc&t)x}R zjKFu1lUoT{{Z(6-NjJZ+SF$Wagbc^C*I>5peEbYgBlk7NrTzX_`T0I|>!RmWYw^|3 zN?C>9Z}MrklnW@JxGj93Fi%D1$kt557b{|p=gSQAr2fn|Ks>@?j^8ta5sq04)Zvsz zs9W&m2V}}|OH4iYi(4HGa(8(pVpD}wXig}MK}xJ>1Q^HUaov;nFG2Ueej7iulax)I zumCYewvfjZ^c0*_bIKr$zu!B<*XWGFdmuRQ4z-IPOR9@hi=2v$FMCi;7)!80zeFO2 z2_`PD<4}!*>-H_=*cMq#G!?*a5wG2(7C)BH?FXfxra*LKBQd3iVnRqs>ch%&#-(gF zzf*;TXyI^wg8WXEqNQR0l5s~Iq=d^=62j}F3do2D`)`2Gv&w6vOuyu#SUEnncSHjQ zWi{?gLzHL=9!mmX5b~;a#$EP~L;M1S$Z~voCEbv z@v+^)XJ-64>^RtKNDNy%Tcdk1!jOTS4CoBP7kmEO>MmM-CsqVoXjll3Qr1;h2IFXMh zym4KjfLNmiojiL9ZEZTJzgTAIY;=vJ8czh8O{*KYLo;Gi8B$+sS@x&z?XR|Avy=-^ zT2BRCA0=P8AE(cAg2)5kMvqh|BS_8&p;e^osp3;@Og7(zM4e~N7Q7eaBZAE9VWT0w zMj1AJ{ipROH$6n~zU}xp+o{4`sB(0GXcq1rf}g0_7PD-tQ-v@Lslem_$rOmMi>T zM>x16@WosXdm$BYv#%>tg4Aw}SSL^aHDmK({z_);VLg)!g(ejXgp5muS@N$ZRd1za zTc(jtRTWGWKY&g!{;Luy_^VUo{?e`~M}MJ9qgmf`4|hZ>jb0j`BTDndf96lox>Id` zc~v~L(o{QL{Q~69g-z0qRY8W2tGii(|3aR@8Sc(CBD>A;v8Di5ASvSgl*1%glFVdK z=-OLs>xr4W{-cX20Q4^JY5~=-je!o2RAt3$wjsphZXJ!_nDymz_ZIhddo|rpNEG9^ zSeO8|Ne@8Pn0k*kum3D2xruWu*e;5;^W0bY@CpE)DUheSg8{(24ROwX$W+@QK5|xM zZd-L-#fZ~goKjE=-^xQ4qn&ZAmpn4a7rXMHpPay`r%O0Y90VE>Vqa~Wd{3|{f&+m3xhp)0AI)@hExMnH6+v!!DJcm8;~;vwP0 z#AM+`Z-AO#(6B&3Answgs%&`Wzm>5sTOI5wbx-$Xb;x1Keq;^`dm>tUBr$eE!y!n` zANwu46^1%3U33$N9Hku>e0b^fMy;(}7Y~^SqOL0#9dkne)w9iu^<#k0L=Tox@%IZ9 z^vqbSV>2XSYN)AE*R#L(^z=mse2Le|#+Fx>(&0v7HnJOFC{z)1XzD>uH&N-5iCM_$ zTPhZe>P|n73ef-d844jS?w=j~oQ_|qfAMj%0S3WVKxnQuGK;$`{J!N+D0cv5)lqj1 zr|m(25`e-A1$jm zUFn%QwedpZSw6e28XBU2W~#)Y)j3>(KZv-fg&RFFt=ou})XRRVq?eM9Mj)Q$xkJdQ zz&ItvGIMBISPDheuNrl;VZqjY$$&@0f%<^{AP#qKpIp}>Ok~_T+R-}8hZgm$g{PCd z2*oh6{>nd+b3M_};>W!f`XmR{DQrIKTRG}B3 zZ>mHo629C`7!SGi*jIf+05KE>wCEQr$xkQ2EDC+fksVgpo6p)3@s(=5aMPN*0({Yo zrd9{jSyu#%-duM(*Ep-3_qlzhg;BS@bp{$zHCFhcTEFfltu>B#o{Nh>E0!M-n;|18 zKNb4Aakg{6!tMFkhu#4)2`ma zz?`>NQS$|T3VKL;?50Etomx{fz-@oc;fwY3#hO0`s_IT6ZBNZZev#C<@KJ_?2`8sUau z*T5i7Y>&K1ccYHR{9v_?RW{CR3<8R~l$KqUE5q`aoEm8CeY}+j3kx!ObnJMj+?HPL zv4|UO7|^U4|6S#F|9gF3ii+OWx8bDW`0EUf#}4&d+H!xiMF^^u%Ve68c***e77@pB z0sVYfn0uuH8+l=BCviOVh8s@h{jvzx)rySpqEjrB#gO_oKbze0c?{zkBt!;n2bO$S z8G9LK&%$&o=v>l`Dm9)pIrvb>`BioD2fl-Md4giW`w7N9*==oR~7}@CE ziYp*~#a-caD`D-7IHBi5-0pKe;LKg6 z9igz1+H=wCHa)ED>0R+Lu3Z=sp0@c7Q=Q4kOXEEp2y3$mWXy%k>UX4-@1hZKICH4a zz1|yxuUu(5`7%zb@!BuX@is08US>`q_4U#3qST0{ZH;m3^sdv{Xm?LPVDZLrpQQA>(g zhX|E@oqH%pM2tg>M*I$T3Bet>^SsUX?{QoY!pJ{;wOi#SH7(yaU_% z&XAR;j4A;&7JV6xQ|)GW3vQw?6WDfRM%i^*o!*fOo7xpHcno;OB zkH|X8YiiNTIEw|>)kMLMPV&xs7oCH@t3_qLB>0Nu`iO4Ef$lptevDqijmF*qq^0#= z|D}ytQdRYlJK9>jmV?%7E$8|1veP229Wnfoopga+Hx8Y@^WSH-%A9FOG#9j4=5LF# z<4%$ij=YQEA+mJ%Y&Plz}24OgEU!!a~r=GnfULH@HYB%q6U0bid3M%_xAFa8_X;00MTK>Y? zV;#{s=YNCoz@Cn`kRqZQ)9Vkg#}k!q3%9qx;YOA-e&SJld{!{?wLf{uyZUyF^zdtpY`OS7s7@dh zI6!@__ei#l?jwBdbRp);8j>8e#cmjquKGfuUQmAJ~p& zG)My=y-#FEIi9NR3>tVXy9v!Y9uTlhcIOwxF#o%U(R?(^ZilJMA?sNNV8!j7cS>T& zD&G~pU#br@-Hy!0?hR~XtX%XZDjmW%uKh2$rCL&$sKe4WoE=QHSXOLLEZfQUGc zwuj@Pw8h=a`Lhvwc{*ve`2XSTt)r@ZqQ6m)b>AZ9N`F-EJ?pk-f>)wA@y4G{%nR#Z<%$~hJpU+mB89no<;wc{68b`BA zwq9vlHW;V9k?;3-`SCRzoCI97OX#ESZUuKFM+k`o_K`PNWfh1-ZYrsXXJF37s<|KC zoI;=ZIk1sn(7oVjA+z`y<=5&~IF{R{Ms8R$O z-%Tj-Vc&xyW^iVc^%J~2D+$7BX@BO4@tXWW)m&thcyE5PGm1QR5} zaqOZfa`lVH)*H*L*?)1p>9zjHJfoi8lE^ohVkhHx(+i`3{hvr>xZJhang8=1+}c;% z|C3?|fAcuOpU-b_*yP-rMutqRlrl`8Qk&Axv}Ltl za{LT%yjfd}zw9IMO{L(tQE$rbWNJPiy}AxjUYHI?$K0DQ!81d+5&rx(>WlFLBfS=S z!{T1<=SMVngXZRBN9sQh3x2_eo0(go@zAg-pYQ)NeoC#lSgjUX_W8U!g&(jEO;bAd z7n_C&M!e~E#bB=#FEe|noEP`gDEyT&^N04h0?S;XEu_ZcPYR4vxNMudOrZ9~DZTF5 z-bGKoS~g^tl^d>hM5fww1XC}B#Se0^kEYwqAtG*qk77nSW%hbXyqTQ3QjEuhWJ<~; zL`R6OMZ3^LAEUtR*K@zTZ&*bvHCQnh4J5t6C<(|GH!Eu&CP{Qd{Rx6FXmGz4d>tBB zx~q)TJm1>f=Zad{1cXm0Z7kDxdTbD}e)I}(@`Gv}6%yFr_XNnY{^~Iah@U!p-9s<< zA?=N$@YG~jOGm=F?1ay2BDzj+f29SqlJSRTb;wpjsEdE|O9X2Ygl>3w_{8MoqB2fQ zxAai0Slyuvx^8z?=mEJgk#U4#OZm5v(iW>jpZqe%+Ltru(u!?x=mnPpa;mAp6|)Kk z+p^{=wTEUV6^*XT6T+m=y<~}c{lQ2O30GGdpe|>F7>UJzT++=e@xi=pRM8}e8y>f| z=iQu7tODS@LM5{4Rsrf3_Of22&dKs6!Q~=8v;G8gNZBzTBwvDeM#v|{JxGl#jWYc8 z__Y1YMr!DD0J%zrGL^X!G5X=@n-DDz0qGXAxms5w)?6ZNM_?%cDTG@mf z;}iO_;;ne-Hnun0%D1rZ*s5%cYCb%VKmztYavrP*6MZ4iPZ2H`kOZ`dkAD(ioSrj3 z5@QsaPIUl_`VtQYy7e6XY-Fr`T;cuHC(vT1#YjAtmQg}@RV$s9_0;zBX1wD#R?Dlh zds}=gdO7N}=bu-m(}jZ-O-Z9u|tq4s1U_=4am$NyF7fL0DK8;=js} zll^K`m7PWBFp?JjA#?m1)^NS5&jlW_;QCKUBPiJ7 z6vxe5x+2nVD^@DMYG|b6Lr&So5Sd8XnrcF8tq4)8vB}tA_GieR`0<)`FNN?)J<9kS zOk@*f^a93ThdW*A{6vG9A3q7$DMx%o`0R=Y-~1n2m)fL)J&JcpiDX z552W7Q%eGCMQq?Dn(w9ZwEnM#*Pk2DULGZslL{N^7nUQFjY!)O^&%Ly#m9-s2Mk&*=-gF&yNFhT$hCwtO06-8jJ#OtGGLFpcwGVxmA8IicLFk+ z-`f)Bg!1rb`?kDMi&(W!xV=IS4zvPS+bTjWbW;~del?eSpQBg)HNq!Ua;{3rgytt@ zXKieup;ro1v01tE&s`Q@8I`Kxa^jQY2-l2rH}`bLzY={DfDTw*S#6V3<`4;l>=-aG z8jXePm*;j1E4IQyyE4&<@dP=XrCuznZDLQ`Pg z)ZUe=rWKZ5jk|`)iQt~jtg2hQDi+OZG`^)sqcA=vT--tLRASb}CK^q9*;ZUEt#A4f z)}%3K|Gv&|N8E7Vexzq%6$@%gsD)QMoim)w32Plz*Jd1zu1<~~zB591f13)gLcf8R4 zNwpR1Z=9<6#O3TI6H(uf>S>g?^c>#lCflhPqFr0I7h%LwpHbgt5|+rpK6M;_NXjQl zH2uc2hBd6RyK$pt>vd)V?mznX)IRKOTCzf~;!@Op+8BKR!dt!?I?8MVr6H}=0}Ft4 znhe6MbvPz6%Z^VZHcg!JQ+_~pW#}w3l#Eh8p(Q<~{pxj-UzG5&prO*U_5pcp4sm%5DU;*@Ye_e&d`>X$irlMN`gR+09WK^mb`Wk3)bdVs+hGc{ z^L!aHr=?P&Nc129#n3dTU+V2}9f!D%R;%ssE(qA?#T-#@1f4v+6x|K@j5u-LtLU1k z#siFl(n0v!RZY=p+wF7RTWeWpa01=jrthReaobI}lE>#tw@pqu$UFocqu5+*(W+~r z-en%~iGI3E#1Bj>Yugt^YA&1wN3HgHiqnbgQy>R8)}d`#U@mZ!f>d}x$2Sa<%U~gu z>3l7&>L>vrM`93js{BX6DIK?HDGW++CT zWLysEdyyT#l=)#CKpQ|=ZEv#gHNN`6nrA2T_|%N?-aL;nNi-Wvh|x6LOWcCmOlq`} zfNA3`PXu{0s;-iKE8b8jck$5y;P;Mi*60TwTttf<+)mj-q5`_Y*jBdFOyTWM<~Ax^ zeo{NCC_U$I_{}1K<_7!`SBb$(5HV2dt+mPjVhL>6&WzoPApq9&$0X8qC+DU zE;F3&aP0j-J5{Aad{GXv4B1`{F-o8Q!~lVkh*Z~t{_Rp}Ax0Pf)tT8Qo8U@hrGl6% zhpmN9>#mWCzatv@8VUJ$F1V9W$J7|@0A#Av#;Y4}DdOq&TfFq661w2!lj5_R)e=a2 z^CD#l+*;d=@%iZGq7o3X20%c=d@|Q~;b}o3IAzSSStK~8mS%?s&V!#bcOu&Zu?;%; zDSxG`tBkZ(47?H#{pi2Vb?Wi4cwqtRc?$cflxB$998e@tz+I6}5P6&5IXS{-lEg|c zmyf-{*eThCjMR;60c&XRVA9%Lecwx9dNf-(IOoe4G8^n6gV-;Wgmt%*Kx1V&90j+4 zb_Sdi--NqHCL7+H4gxm=)i~o)TC_2>zPsN;ADu=>UO)Adc(9U~IZ^NE0q?GhlYHhX zy%05T z59UEgpx^kYS0L^*JXfV>m1j@1Ea$a@s5@033)t!3!AN?$L*zAFjoU^iEIh#!^nob| za5vj18KpaDmj%AX=z?}PGKbBMM?vAMTYUzoiRsyQ9M~)XBPlW~EEiUmg*2;Q^yk|J`rZ#=)Xfufa4M8uFDiTZ%4nJu~V?mW6%l$6SgNiw{aN zqF1eZa)t-Cyb2_Ev}z;GYABGkZ#6)1CluIL7r^Ms$bWrOh-c`jLEm~B0`O(Pb4ua? zqf5g`EU|jF{b7TxjV%Pn5H`I5Y_*$%Y0Ml$Kd+-{cfURcM*^$^CJiIm9AMq3!4Ba6 z)oQhfaYEE5P02TWw&3e^JqB+__bK>7hxchZ3Fz&C!y*Vcr%?%%=C40Qc@$=_-q#m2 z_97#JZJG=H4tna0lzz3Hx{<=um5?>8JrpG~Y6g6JpiroGTK5wcW#W9B+12m2C8Ve20cee-MIkjSXjx({nZ zU&aQXxmCy=H;@3#W&+Xc`7KAtTJ{O-s0QLmK}ZcL(P|&6H9Ic}cZYg1?1%5O1luZP zzJQN`_$%!NG$gf(y0+tT3bvyB!HRkT(<_RqybVyYKT2mS!3hD=_PF7jE+udUS;JjP z|E?-vVE7EXeNn0L$=UIMdVbPCv>XI``DP6PBOZs~(_lga z6gCN9Q$>_B>JU#5v0**N63#0#Ac1wJhfyV^?vS~ASeOo={{DOLwdHz%cE`|?;P4Ra z1_wNy6JT8tXsz9U^loX7%~=$8f|wSxVQ<2PGkaq;0OSB5pVTohb|6s>0A#6V0EC)! zp5A_!p`ZN3Aechytsm_Gwz#Nj?@5xZSXx`?Ct!sN6wP>vf@eu!iF)g!7g!F=H5xH2 z>x;VOdqqbd{S}%7hVcK;>HN1dM5WOR3qz;Mb!jsB?9YLEtxwt&%s?3LLt(MrqgJ)nG)g8~T_gxy zcYP)I_=v)9a4rASuF#n`$>)3P;kl7+vG&`#Dw!QhZPwRU&YF6TIpE)R6VQ%UdsJH> zpF<~}qNwkIiiAbMI$5TZx*8*>0+hzIEycTrR?<^M(9F|S;7NdLr@EY5QF)5zVqFSg zn%imzJTIAXukqSKJ}kpWNBwoaKdZPtl)RoF$)2!V*}`rDkCG@*Q~~8+@xnm978&Up z)5c;lxMpQyJp70}l*++jK9m%nY1h163O|^wtWR6?5SM${wf8b}qP55-%@VH;0mSL! zI78ZY0WQ4;uz88K zw$pPDyIF5-fcS`)5l3sM;CPd>#ntVfG4o&5#wSzy_T9b*WZ>1NG`4&gQ@OP7bF9psWkk3C;PtlBboTBFf7|W1`S?wK zCQmfNL8MEh6iDw(&|Ceg&TG9~iLCJ*)f@a(ug|c`f($@$+lh7ZGelp=X_Var@0>=5 zJuiaC^6_;2R z-EUJh?^1Nd`bZW)Ol@|wZ%(`2-509-H7t`$%P`4ttc}FQ&+!$If}#V-dcBl}LwcZ$ zkZB6rI>1II*HLzW?zQkkZ*kZ@k;&eN5s2mpZuypr1<_ zidmQG)9r~O@jyg~*Qw>5;2a9Q-0z2V&2Yah6y2$!RHd>-x#kZpYL)IkFNXdql9}24 zNr7C(K$^}8`bw2TgpbmE6IC9B`L?+Hr~cgT8c=vhf^P|AZ#W|Twkf$q@6>acraxDz zr-A!a%~pvUd$e@w1p_Vu3O8{q8Nd4V`96zv@mLbjZAc6jtxr`xc(`#tIEg`3;S`7L zb@tasiDARr^&`%o$0>c%FzOXw@X6yDw*gvUX7YfoFjRH5_&_~D`tH-%j{}Ypc;Uv} z5F%nH9sczBQ$aSuP~o(!^FRMtGMP$T93}9Qne^X$i!UN?E_*TPtz>9@2g|htCzc3uNWU?;VR- z_7>gQezn!O^}Hh1+ll|+Q`rA`(t77`o`+6;BE6%kI;7teM9g*?5A+_X&VS83NCY>K z1bJ|;^o#X9@su}8WzK{yh?T-qCtGsU!{><|Gng0>d{gDQwct{b~eX&6ABO+?Txu3AIFnj@ppElYFP9B@XIEZKg7Bftd}7#l={6aKv{Kpn^mz1XT={jdjLC{n8px7+8kw7wvKyFz*stj;jyUH~ z<%@R?tV93JSmMv)L}>3(EvjQf;uOQwJN*U@y-xwmFXQ5}2ayV=gDl=!`+mjiZ?cUQ zR)gNTkS4IpXus3*L$Ydj7R%_bz8c52RT41kkUTgt2zvJ z@8j!7zKwSrQSJ*587;NLOc$fa zb}#9#Z(2Th#QUxSfi8{$Xfv71jpQ|7Ku{gwuXVZfpiOu4#m)o$w&a`J%(g%CXYz1l z!)`GQ9KG|KL#m=2U+$9p);fXA6HnGjWzF!KAn)C=zI+Zerh{_xo?Z?Ugxjf5nB@#) zNIZt&YQ892oF&kHiAZ~r{^W;fafM)r5xIkzYUJ1q%s9)6e?jtt&TZ@r=^ZT2nUV_gL(`=CUW9{0M)y~a<0uWvIY_B;*IFT z3Nyp%cUP&t)hpK=Jc{ADyMAGPS?(i%EFUW%c3k4LmH!-#YCT?dHh)%|6KG+um+cC| zqFzEFv%bJ}uc!QO>UBCDHFFU$dqx7(RDT3IWX`YYv!UM(0kWpq-U1se9_+oE{;_Zi z(tU}jiEk~-&xKp4MaZcl*H)nE>5_x|!5p`2oXhR>Ol58r zy`sVO_qwHaRi~2dou=H`IQKsHCGWTtIqO2S@mv7S{DAxeFdRC6yof^aXEZz6>7))GPPx~i+8JQXEi7$hvAh*(4Wh!ouP-1P`7NSj>L!< z1(etlkx<35!ga7Hau3s8QUG;}-xFkbjGUW4Rs(B`V^cu1Y?9RdexA0bQ=)0WSU(3 z&QKmN3V94u_t3W*LF1f+ER5B`(aQ9Z(B(b=MS{j_-r`^H8Z0YL zcfx|vNsXegn<{YfvNxe6^OTw!01bteD`++ykz^yj0+}f7e{1OupB@Q-aCepM8fd2= zHt~t`s~{Ipq0G7r>?qEI_3v`XU$eOu7Xn zjXUkT%}GCo+>l*3af)|Q2g0~++AJM}YMnQ7jtBxBKreY|aLJzeE&L+qh3}-R@Ibgi z>V`neQ?hL*aH*5`Xf9S{A*h#DGLEFoLr}cVdtK}l>u%+L`t>1E@Z3RSYaurv$l1d8 zr0D5Lp>e}%u>Q_B-J@>%n(qKad>J!=^Ysp~#WZK~T~GZ~PwdnS{8mb`7C<#cMLl`E z{nWq5`3Lm(Y!Lzc3$`f_hLF%XsG%QH*V}w+jKpW#AuH~0Hp3$_*au?^rB_~mIjpJl z;Zf~N^_1{qK+8WKS#y+n=4mrO0IwWbxc-$Vf^w$TF%d6nBG7k2j;n|Eu(*F_+RU3} z!1UV@rT z>NEyw6fT8yMFVtm5_17Vu5o+{v8S3+$gAd=2ScyMS*-#W#fYC5EEA5Ot?hY$IL6-t z7aot+g>JwERj9=ZO^5j1KE%OoT~1v3J%G;=r`v|bHC28GtP%uDlot#d zElR4(-<})Ay_C1l=8}a;8O7$kr*u|#h$>TKV2JpDE;bw!CEcsEu?T_(pS%o0?+k{; z=Cdka_eIP3ODblvNsLS4x5ih55sB>`cKl)ZmR?5ow1)J7--aZ?sLU}zqkk89M?BUKX z>$t&ykNwENEEWb&(e0^8+f5N+vwB14^NY3=D3yd%a-qthYPU1xn@H#Qdx53kvG}FQ zbIh0S{g2*}Y3~+~vL+@XVBDGVBD_uU0536=mp``g;Dut~= zV-PHnz4GAU1JmpEio&K}Q#+xdc-kTOxnEaj5P+gTQ7-c-f4Yltql{zpQ$?+B9 zUN|c0^+}5VrY6U5=-XmHkc2}#RwlXVKr(+uA<)bqUxl17$?j7--x2#vvc`9gc9byO z-Zz&57P8P34}Y19zWEB=Mj}E!_=%W=E{Z*}SsboCETb@Ih&d|#F)G>q^6)pq=qXt% ze^Po1%80)uA^z(-g5+@G6GX06Z@K5n%IfupvtKNX zCcB9I#mmwo(ENMr?>76fMd!RfS@%vLDQ{3fudWRGzv~$ZnnX2Z;LwIKEHJI0;cWIZ zT!zdN@tv&c?6zoshhu(Q=YY-#F7#GyOM`jX5oQJEya3dW#Uh6|Zz$8I)#?Y2xE*{U zBfWx#8=&D>tMM7B4-3aWfFU?Vlue_R!9(`;u5}jVT|SmllCKU@9|Wd+%2`Np-L60o z$^Hzm;_Y19VJY;-RAj@o7_KV5yzujCDfr0Mq z$WNYjW$?&)71mJtaO(v{JRuaSyhh=e8s*R7ktReB2#QEnu^L!xj525T7l$f@xwkP4*SU@okj!8lpFyc4q(Hcl1NJ7$V^*?+cf+&%UD(D~> zLRqB$`+}C6_1*PN&fs;BJc*EEy8p!xp+s0XNMQn8uJ!#z?yR@ziVFcjp*=iG*Sn*A zto1p-UxejTYC^vdwbRTq6=DrB_#*XF%WYN4I9zTfx?je4P~P2`2+>4~kO+GMup#Nr z5LdQ&cj3pHq2!Niq^)AWEsI4-kVw#pds(efoxsGn^p1wAk^*9&Z%!sVoY`X-DP(v|D0yPlU^#gc?a5=Ctk+B z8sEv3Yt^(I(VI2ui|Pj9N`6EfIU@5|rPtvL5pGlpz0VEuXK?bCA;2xJuE9^Ly&!RKR&ONi$NnDyD{9x#)c*p-UG-E440Q#rC>g`8D7uEb8E^;_l= zU$`MW2_~u__8l{{|6*U5V1$kW?k6Ekl_$BGrmZYVOddD{E?NK(sk5x|398zrHA1y& z6w0I2DVIvqPb2pvutuJAVqx?tZ6Q_9@YKwo)6AP~+v2iTdFQ%fECxC3$M7NQ)vBI< zB=?6TEkC|T#isQTmXlq}xl)N@Xfl=ayNwR*C8YhbV-q7d&gEEJDsFd-}8eWg5 zC+?9s+Tv5J1XN!O7oYF*im9wtp$ddp)(b?qCyY>P-*>Nav)Mo#bZ=XupRpt zLtLVn`tEWzEOmu{fbibuvo5>vaZ+L`n9^7iaHm=V*G(j^PmNWvA?;@k|oSh(~#6 z)pnX)#()BR08%$+O{G75rn#m~lhBfRpd^gW%yi`Ot9r43Pv%G@+!>^4W@#`y7x;r8 znJ_!@hFm-D3ruh_AV(o$)gkzVbW4AOh*`WjcT0cW=)t48?l$GgMSrx4xj0oQW!_2N z>wH(KRBY;4pZhkrKs_oTj2|H(^n4D<9)sN=3ROjVFlB&%P8OGTL|lRlfjSX2+5T$_ zpq=2izf+CrEE-)T3g!!b0gY;95pwdl`gya|&NX|~PQ@(e?xA}rf~5p3iYMT)qkrlUR@w%sqv|-$ z;*VGa@vod=k2pyEHW}ms5b8JT0iy$wWKF#xA8S*fnBf%i$ZS zvtq&Xh>Z``BcQi|&A{oEc!1iMm8oKBaYF2QCQWwyb`ML&uM8dM*&0_G=1%j7dg2cD z*N20e9v0Zhnz&@DK;O5X0ywg|Q!cnuHj}Mu1GyX;>8v3T^<_G=tL5As_|Cuo7ST8fPqQc`q%& zBTF-8dAK&?9nCBuLm8zwGG1ht@YeYnu}7$f%@HTnLIE_6vz#y%dtI{MFQ*_`sKO^e z$GyV9bpZPsOs0DepZ;7!WHClDy_m;Km1QQn=pS+taoFge<_8z+re2YgS8R?Gn`0$6 z_whAdMCm$%;ucIc54lzDqZCgZ+}|m^L}o^jio~38Mc|k&i3}3c&~vZ54CBbv+99mL zFT_8nqpW&cwe+%6FQ-mUT|Q=hPxQx-pwbY#k&7p*!yPyUo1jEAZo;GULQ=I z7cW15*D4s>UBF|b3?f8Gpx8toix3TkV;@CWd`OsRjLOX?4X9+vpPq4hA->YRX4x`b zKKb-%FynOoli#(*iSANnIGS-^0zSAa?;#(C@kj~5`5gIX6zuxvCHlru1gM1mZ0^ES z6Q9Fd365B_zdI%`o_u)W-JvL3C<^}=>WKVI3a!9H4({GTW}H@%5N8D!WX&T#?^9*6mbEiFlalR?dbqdl_#wrVxi;m?nPyS@jbd23T z75%gsqV`+}E+0u;#%q)B$nS(TyEc2%kVfMw>)^^0t8g8bQ0HIckV4BRa!mdsDC{WV z#h`jjYWd=F4BHay1J6~mix;u;6jBKZjbH#Z1C) zO>sm7ym}Sg-{A#4>fGIvP5S(7$vh+H|E1SKbCERQ0w@M!omKe5i` zs9Wh~YK)s%Mp1bU1D#=3-^dm|^O|Sqk>BarUQTWCSC-Qoe)H2_F=X5%_E<_y{@;g% z%jkC_<>mfG&uE3(hkEzTQ(_aPPdrQ4-cb6g!tm^rS95Iy&ZyeBemV@emNO)tQ&3yql@hl*grww{xQdR@!`(kVlDD4LrJKIdut2dUUUHi)wnV`vgRhBZknfqjKzl-<#w5&M|+Y#q@=64UnkBtf?GCI|7yXw>FSYb+2sEv(7JQ z@d(?%XI%_$BJwbRabNblfU6KU@jPghOPl9xAhDIe;niDq zVXlO*kY{6k?hNGDH}a}BX!wvq<#7Rw_r_R4mDyj#9@_@2y#(~B1Tk?FZ71#5;<$9+ z%KJvv9+`dartY;>r$!UkNa_^7Aw6^Z>rH~be7e&5To8p$L-@a^yFl*h+&gNDWdX05 z$?_dd?k6JM;!k8O!$&(0xz`i^ zi;}(qr8y*F8AhOR914Di<__9T$@!PK>4BH`fC0H3z>DAf|9SM)Y=AC#`ZFqZ+W}z$ zmyvhXKJg}?6v;HPj41*<3R>G|3dQORw(_=2#=F2-VF3wniOxi`k5-HdNv{fu+9#P0SGjgiup38{SCb$VXj5}3<{PSXrh zoHR=Z7XDmQ+TYK}Ua5i-9$Q_ntyD^hWYlV051v5Z#hxjlHm{t36uLQp8q)zZ^~Ue# zQA8j=ik=JQ1(09Y-y2v>I&=q)Q}!o%o0tnzG|rShv6YyS zsXURlTZHuBJgrBT?w&Y?6&=W!n@OK=gmB6@y#kN*(0N0U$jD z#}^cm`2s`WM_)KaJBjsJJ8sL&7y&w4qWc3ke1OF0D0V zlo%0Epq4yXL-jQTCmFolDNWbS>c)=wMSz$5Ttm!*h<>OU2vx`hgxDt!NMvSi zDH=Fbrl`7sXg;--buAimH)lS;*l>LX(2#`74W#jV`x5dMrXOn08-;T3PD5}MKmn?^>m_foQM=e zTIVz%eRv;C}F`f86eP|CMiAnOj3fSEXQEG&5n62TdD!YTDOoa5eSG%2!AxIVVIT%|erB59 z6#;mLL_b&;F3E-|G`|{MTN-&?_FgqB(Sux4pQfk0+pH5(2o5ipQ!W4pf-T%~3IT~! zmb8aEj)lJOPOrxn_O6r_gsF#{FV0}LxBcIvgCeQzL^9t@JV;Bv9W{hx!y@M}WUzXc zyUS^`F;P6Y{SyIfiCPl2YVNt}|Z zJ(0|yaR6-}49kNsf&~g{i2ViqKh`kdq}eO{eP%YI!LeiF3mRqruhD8yfFpgTG+kx4 z-S(c^-uj2+-oW_zd`;*h_iccpMyJ93ueVR2;TMCObjQ&bk-}eH{zUOZ8g>)~bV(dp zL3{N7+AAF#dO-=&Od1^0PMg^aQ!AzbUI#hMoWgZCqSF;LDF?F{B?ky0QK0M_GVeC& zb67zb7vzKU-a+uRIjHtQY}g*5^swao7ugJZ8fFZCpC&D#9fW~wna)TQHrf+(g$0Dq zav6U^oMZmB`rmVO>BPjaVzglFgOx1Zaf@1Tq2^eR?~ChUwuKCKjK9s%DXBcK=(K?3 zztfsYZ|$1ZgX|eJNYGDyein&n;@dn~w%TC)yjT<L32Fd;;R->)rO~uWdm-IB04jV; zG|6=ZgJh~XNQOfyI!hAb?Iho0(5QoD3bQ^5@s0L7{$mmlnmca@LGpfXlK|4%$(J?B zuxda6mPWK3^FQW{gE~G{p7`pC2&5%Gbfnmh7L| z`eMz@^J18<6^so4h4WN+k5<)& zZ6Oc?7#;*rP;SCJ-gJj)fqj$+ARG(m93XW`_sfgW)$XAVfKeF$mdSQZ5RTFPLg-)T zesuljop9ODIHG_i5<=mt746BNv=-VD{vBh;|BTVG&L&MrIrLh^{z$jS)yF2QMGW`t z&y-`1R(2o{cMdZ_m47BEE4gux4ugZk;OQ*a=%)=bn8cv^FM!?cV81R-=0m5s{Wn)J zAz&wQ(OLvxzMZt=Rp7r} z^3^z>O;TZO1^^+e4#pG>w^hUs{yQllHR>2MpUu+$_5%1cFl%9C%`6`MZhl+RdX|To z7j1_84LVg(h56VJ;Aj7SsrUcdB_djAX|({=R*aLBd8)x~MSL+=_7)iUDfmi%F{`kR zKUjP^;HogaC-o!iEFs%jgUoYSk?v|&{cskjnmS^Sr#?nEqt(Az?5Z{gd#e7KdHU_O zx6|uG5qs;kZd!Yo*pFQ)usd(q!}9+g4(RG~0fN~IfLJCopR^03hyh3*TQ`N5#B-&L z9bk0@wEwIQbx0&t`xTY@ufW)0!0>CWPz%7*w_cImw$B7y2@E&zsM-H|v;iT~Wj__A zs?Rshro&DV0(Hk>`p(akf~7jg>D z{H;{X9bQn5bM4>!qduXChoO(arGuUnuf$uwAl4S`X&E8o@{B;UVJtvMhW`7g*f8bw z!K$fL$I5*A6k0uSu%rUa(lpgq00up7Xnt2?-Ds1|rT<(RXnoyKdqZAyhvEPCL8^U6 z;E7>%$8OHB7E-p%SCh6OJI5BT3Ric6?%U4;JQ!L}ij}+%@qj{ciyb$>YyKN_4E&#H zR=Ww^7HdGdS+b2bJhz*t2VtH98at2(-U-VD8T~>~6lgGQh+}Kb0hC%7{qwLc;B#oYL>)jPeHdr zqyM7$2+_)W1O+BG_(7~mzd6UVsP19+<8NpnB`g}gT$$kQJj#5VkjahKwpDB zM%~4@E(zc2XK8#Zs99TMZ*;Cu0d~4>aUDcwM|AJp1X}m~ecNa|*zyJ@GI2l}BsVKc zQ6kaP=*YV>;4kdmRsfcZ0>FAx-CP`|f>P0gpf)gz#RtcbBo-Z&^Mg@#P31VE(7>fp zz)#$AIUadU!UAq1S^!Q=4`<(Q)MEecFbp+e)384L2YNvoFlO_;g*JVeC?YCV(Yv}i zr(rf&VeAY_F4UeWPc+`I&gvCjz_FvSx3+mtWD3os0`)FHHPfUCA8w%Ij){r&9K8U> z=`pwYT_^v$&WeWDdMatELSJ$JcRlC{f(c0KlS6Bd`WqHfeg)|2Xs*_W_2*v zG!Du>hgD;C+|#oeequAq_WgY81?I5*XSaAP_pmJ-5@yocn%Q9)X&;QX60sZz8&4P5 zC}9-`UDK=?2`6UTeOf?Sb1bLhUP9R@sM~U|Q-64ge3t1w8^^lYz z&bp6l_X`0Sz8=g~KvxDYz-1R%HwPuK={F3NnyLV98IL(;Z{*@)JDH0QVZm_U;DRS@05XF#KF+}0L0|BpRyJ+@7h&T zH~B*luSCrOuxsPM^&oi}OXmkKR3e;1?wi0a>(%|uA%MBpiD3&*pus#CK<;JS0LgP!O147eQ#M)}8p%cw?07;YJaTu91OqC@VP2d8BbkT28{mZ* zH@^DA)!6Q8%ey{HaaC9XJ-NH*lG&^Faja3f=Y>^&wcmBKw}!Do|ND(4J&Pi^pjL9* z7sq54`T+=1i%wN?(SFOv-32Lmo6q1*m6he%$6)mK8ktv?MJ|op_1g#jlSv(;b?XYf z`h;*i1}}@?6o5G&djA;iR75fqb5u7MLd2q79tSYqn?gDU1_qU@d^W#8uJU4RX0gTH ze*P)5+rbRH=Z@_I?xd=TZ^CVyjdh>|$W$HWC}hA5VwAiAFPm~V~+ z2CtnGRO>3#0az_A$b^;*!0jj&Pgz?A(1r}S5Nss4LCpa^*9@T87N)*C)dkQ_6m?^g z3k<+&aKGFC;QTF~UOB_VBKYZ>G;?LfgFh$39BAt+%ejz_vnhS&>@r}J&A%J4@;@r2 zL-=o4v_2IEuxOU+*2)0Lc-3^JK~oK@UfsZ~2B*gq-vR*ER%uu0`CC9i@pD*T)iBww zV0$|#TBazC@<$1%P8Q(NVkz!i4l>I$=eQ=HwqL%10T|s=aL@_?&|PEKue|K$Knbv6 zFxWc!B_U30aoKPlcFi4#2YyX<}jDr)edE<@D8F!>rxJ=Ee3*ZOOOZmBY=8kq`V6vo|-oZC>@TJ<)4F^qKFgO(Z6C z506s#7Y{#VpC!{Nrg(Ut0CE-%Y~$kx&c<)lgUiF(EJl9)5aH7xfI-o}HgGFb@~UXZ zqtQ`p5zV14U=}X;qek?(8(>;B3snFm%gO6OKr zS6x5dRdw9!wY; ztl3b&!;r6iGwL$rHninDCag1^u$&IWie#phGkD~)y$|@Cj=Ip+!55siXa(D_E3X4Q z0@yrYbSSQ`?Y6V#hLJgicSb5d=q6`xaRdz?Y;Q{N=nn1`NN(TuVD{jS0zx~nlLh~N zGYfNsV%*DP+>vm`+Q(;9`swItfd0Ct%hb zKuN&Brwt?NLE3F}nB$!`DBxoE<%5luNKgd+fkNhPGClLq@au=R9SAxYs8!LMMrOyxi3Yi=p zzkk7HLiwZ<>6xVgx=HkflmpwpL4JO3-D#V~qlGy4Nst_G#dAb_oSp~(3DIn{C;G?54x>4K_qxGBu^e*jZKvuVHA-T!L>3i`rcH~($jw;L;y+FY}6si zZ+SOw_J7X}vxDUEXNlfehG2yZ>v4?Jj)yzd1;0LxrKgevKYVr5rS zPE;hEz{{m<^mS>=rHbYBt#7)Gc3BiH9>*qk(KZ14x=64bbR;H6<<@?CqDWxeIOh~e z5ov+I1xl;K_<23Zx|Ob90CayF@I_R@KICR60MZFZxP3bZ(v$0w=&jAK3qCMFGO@>> zyBfg32C<@-1_43ZBGBh9(Ui~Go42UXUOE_k1Jak+6XLyoW5O4u$S*e1On<5f9ZR*H zFLlmH=7K3bFA=?yZzBo|2h+I2CDKkwYED1nalU@^-*CX~2Zq}$|F6v5eW696Ck-F?xgWY*(ps}MS$ zjKlXyjb<0C{VpzWrl0{IJ8Yh*%=}~*!wFs<)av~x$7K>($Gd9=u31*O+)zGgc}Emn zA$ZW?52$E*4^fQbM3e$A0B*C zTxBFY9=N;=2+GxJwhS9x;-i6JGr7+>hDH%{%lvMzEu(P+Pt%x%p)5E1JAb-dfx|)> z8!Jr{Q$=3Ddk|(d`0~1;Vdr%5AU*wpE^8$fl_!Jf3XCuJPi-l3FsJsIoJ(rP- z6+UmpKi3;E7J0?rjw0j)ocs?XbaF=xOP?>nKg;{61U#lxvIMN+SPeh)MU$5G2VTgN zp-!)R;&78ix`&C)iitn*MGxo5$L96WBO+0D$K_)0Df@4W>;v3#bDQMU*6{DwUi#6m z#6xe+$ywp-n^k2E33z+yMJ~bKM*~KH^UEuG1fpa|13~Ufv(a`dQv0PfMX6D*=Be zUThlmVk155Z0S<)uvOzwl21`xJ%J*UF;5X?xmzT_g4l56j7VOxQ9YOPSayao06A{` z!3FL|QLv+t$s5=%Af|+ZE0e%ULpNOB|49vnt0o_mKNucS%|sHW*S1l6Y%0mXefw$MSja`?=n;@AsW}pxeFInrp5xNBrX->Tk1H72hSUIGEsMHHzG&s=6-q zT^{Ei=RFsR*BTn{2AH1b#3)+(kA5=hdavm}7zz=9OeE}T+!nr{;@r?~OBv3q&OZ)& zIDSFSe%4G3KA6dOZn9%9aW}*caHHS#N2mREOpa1>@~q9C!lycr_Nuije{wT7@DSOh zZ*w{d+m{?~k7kDP%lXFR(Sdmjf*wt|C-Oe@V|~hnyLG>3k>O&Rw>A-32>nh(C|G@y z9H`%vRT2?kHdDq08ylh<)0izDbD>n=?dL)&;GZDBM*5MawM$$>N<84pl}8xbg6P-% zu8#gBzBrW5|L3#j+59*3Te`QOxc>OwTori7o2)UrB^>AF4VSyck2W$ z(3zK?kq9|i_MR?z62YWZis>Dzc(HR@!RTNs<)Jy@557+ipQrG!y+=eoT4D>Be$1Sv zs}nxOiiPtWhG9}n5JU(|2rYc+?7jV2Hpe8;X3k#IIj=2Qv1&rXhY;?cKnP_qW*tG1 zJ@F6aLI@=Y8GK{v*N3)G&=UPmwbHFWqOTC~wS8fgF*O=#@FB)V`I5mHQLC;0lRn0O z&- zQrjcZC=2&Ibi8FUMB~V5l*Mdzcv4gNUlk)Y@Giwtn8+`@{59k7+2LIlp3~erTDv^A z7d$(6ShMXN7R1kK$UoOriUs5K4?i4_1TWppj#i$P9?Wiy;b&}eGRmAbfZg|>HiHY! zUq=&dFh+ftBLPH1KXu!1@f5O<#*B8HO#Y*wN+ddt~H+?cY zuCvl)qaEqWL0d=0u8jgo4-Q28>A!Kpvy)<||NS1Ta$e`WX3ut|Ys{P-X(~8!(t3s&~p3rN*wANNWRoEEA27!D^5m8NsVhr$SZsN+7^c!D9A919pMDAf>nX zp(id~k5*1x3s}vb7cyt8*y>(Lt+vFuKJ}g~-tu%T&I6&U4p(D8bon2BXFugNpp{H; ze^K{K?o}TGec+D|ZP-%uecKJtsR*awZxi`J#pveHfKLr9_1p^m-y7R&j#Xl*$n#T-vn!0HiT7&gkig8MXVAk$v0hIoMBSL5IjO2|Lpk0)| zDpDj0S2Mfp)rOH49N+&505_;*aL5sT4Uq0Kl=_@0n0768}R2z=bvIbBfI7rbFW zXD*BqyS!c*31;bhT=UQJ_RORD=T*j|iqHUC`Z#SO)akBel zcqVVN>KH#}o}6n5b}|e={(j=qaz6l{4q?+RY~?dSGk0Kb=h03`R|?Jp%g3)qGq|!W zOrR1JzsproF zUui#T1M10?r=Wbeec|(Psi(~h#rA*X>d>^cTx@_j7@LveCSdF6<%48fTLUI5Q+(dS zI+CrR^gr!>raGF1Fk-f*_v5_OW~fE_YE;wgfs`l`FgvHqsEX22t-Pr6l14C?3>p`q zF!_oBHg`JJz>Nxd_M0wHQQ8+Gt?jNV>km|Gb_po_u-dMk3&UT0()*Cvk-1YdBLOmSakC{&UaVAa^w8u8nuP&b8WW4tsMw z@#;0Hi21vluE(?9bAPcHlJ9HeJY4?VyC?Idb|jP{t1ooy!3%0R5XQ(#C9Kw1^&*Ad z_rZ<%(0G*%D@H85;%k0&TO?Pl)NTd=6O~n_KH{cg$ZqOt)5qK!SBkB>QP$k=Yd?5P zM8|Tw&0fK-A^7N>n%~O8G<7@r@(W%8op6g4uUzjGbsV}p;}Ayk_LQZ4azxSP6D$RC z4n@(*m@iL+Df`ggCeHrkEd<2sFy|&Qv;ofZH?2{F-hmfjh2&O!BWdYk#p{RQ%5ixc z_U&X{@D4F1K^moHs<~h~5X(JQQuQam_lV@ESbGQ zjs0pY_fgVHYCv}LxrLtmq;oV##0Xs3`*k#UNAmeX-6tPt0f)%B&{*RP?FJwrT+j8SQH)(8D( z%AX_RWiNNRhDNSh%cU2i?@+~~%GsXRIl~MHus!+TVM_5or<=Y`#FK=1qYpx~uY{z6 zJ!O;F?oV@~M*)9WrO(g%aU4Edj2X!JM=foGg!u!eX;k!Emo6+9jcty^#$i-uK~!rI zC22u17hbv%SXEiImI>Utb(CPJ5!dy_gQPccliG|Gv@CeS-o#`15@-LcNpW&j>}Q$@ zft?m>wMRs5$LiMw!0hJ{IAXqx?cNL_A12^LU_!)Lj;Q@r4;=~4o0Zn=2aSB6pbK9w zD%}a-Q_SP(Bc!9`Ro=yM!2)A+DTYcDR!smkXDvN;Bn1|z{_~ehR7SA zk|TNHZI&jS_n}EmXF|cCjX?v03M_k?@U1T}_sI0Aa8SaTZQezXjzz~~EWcWae}J&` zXRkFm3>1>rg?|5UzJol|H8WIlF-@&;bbqHy=cs+*ZNbeT4Q`JR)z^2l)WsLtp5%dO zM6`~l8d|lSx8-o0VSdf>@>+>XgsJ33Z`%ZYb5U}*v!4N!EmIh@t~j_Y{#dm|rL7V; zYFyytkROA2PiFPjr!G^#6(r2eJv+iO;_1gPY7UHRzJceAy;bM7DkJ+v=UF(A#f=Dv z9GXo--r>tQ)a{7k(xB|)jXuQccuiIkKnT9fh-}-oZ=_89E=AydD4aYB{jw}Na;TdR zQubb8@S1P%zr^DxPt15oe)Q1P{_j>UJ>Bcjyt}xd z%j;6cJza3y)Tp}%T$s;7t4^#FCu=uNTrER!C_#1 zKeWyBe|zGP*5QSy^0B%J6YOc7rGGYlb+jnEYWMI^n3CAutDpC^K>PjC=N}M~R``<5 zJ^K;NHT#a96MkAS{dR~%BjCF2WSC*XqhmB3zk5$+pY&4rSsi0HfzM6W=i)WgUu1~u znm8R2AipF`K}&U2Y*lraeEW~D|G9%2R$YxpqcOW<-=m5f)9k|d)1qf=R~^RtP9LOm z<}mCCr}|Wq3eyQUgXB?_+-2As@jSQb;3>znA?jW%Sqcy7gycx^+FbDp(J!qVmwi(#LS#-M-9QS5riQHDy7kAeu%h1=IO`l;kXs_m*OTZaLb$q-^ zZ-Y%KCf-7fOkCiDY8$z$|9g^Qa8z^0>yTsnijAu&tHUID8IR7G-e7=5#-aLH^xE^O z1?_ux|CL{%bOQ=god+|@bJE$Ah)CNFYnSc+`S-k0)KLq542vF=NgGvR!X974(*?uL zu+K@sb0dhP*MD*kxo`1zLIpy zVXP9{ciHb=Td2*ahneTUstn0os_`1L;NH@%kUF7gH5V;;U?u$XMG4%vK|>^{hx}&p=rsC-)gQnf1hkra>x`(_n0(6sLhS6XTD>wd z;Wg3uRO95+;{RNJ3(7m&M~9YE=|3W{tIw%5_T{gKKI3Q#57~Fn7^}`N&@IthxNT$6 z@t>7}(MM}!M`u(@M;F2XDJXV-6!(X}DICthvRvbRm{rg8Xu*^CZ}fz21S$|nk{o?{vM?1ilRhe! zq^$n4If&o-tG@*$UmA(6dyLSr8X2ilF8&`_RRN_AN9OI zl5|<_Vdw-GIBJAybI1`&4TpH7S9hBZbx-0^{Ch=J?u?bF0dxBOv7ORdB8Q7YNR$sf zE{yHd?Z2~ZkIzn${y!fd0u3FBQ3VnYll!1ine=u2ULgJPE&F=QyUknPkD-KIwYrJ@ zuf;jmM#O3p(mb-o3p!HV&7H%PYk#RnvEb`^J!=J31TLp6SHMX9Ye#qyIS^TDRjU83 zaol%oHPSc+CJk;AWiK*x1paWZ|ks3Kpcij5KVwfkwTAJ_3ux<}1 z`2*P-GyoQ?Zi1TGf7=S^7=TePmpqnxU8hx^ZGy6`B5*_eU%&sbHT7naq2k{A@!*~F zZW@o%IuR*lap!U1V*hP1TtD=irE~n(3+{JI%dc=ugWt&)i~T63+l(+Zw(eigk9sLW z^4PddF^ao;j4f?=hv?~WF9^blCUj4}upQAOIo$l#>sQ#%gLadlUcmB<0crw`zE&2qu@=2dkt3HRlhqV11LMI_Vi19Xs>QOZgQuT*3Ml zQr@Q#bXs8oR2_k#|FNG@SvwAz|$5~;<-Fe|>^9u!D zN_8%PP=KJ%#u=?c00}@WuOVM1K{PKPA76*A>!{_oZK@Y^0XVBwto$0ad=Qm`5Ah)% zqBp^|-nmjT$-sN| zZ~=7k{(>uE(|kho<;Fe+?}R4N!4Q}hLLv=thQo=4Th#g_B6koS8%dp%iN?~zZ&6Ue z=rqP>^AVX~Bk`?u6om8;n19GuX}Ck28h8?9+&cbo`7HJg7ma_PlqWm{8efQ29Ze%v zhR_K#Fvk@Yegx7qBgc{Io5fsMw0wX{c!UKzb^w=OV#`fkb)S?Z5R^kK5`tn1%ZLOQuEMK-63Hn{ZxWkR%?MDxwGEk9qK^~U(v zB0yV&N$?Ig5+ade2>d}_BfUi9;a*`K4LQ=lfFv-;_x`RUBl2r>@PcU`lr|ZgT9!7F zinfH|aN8p&q`$ih;!2>p9pSuto|Fn(Qyi4o2z$Yp_oDUh3e_Pil$b1eyyf{QllPd% zoN(SiW-n;wn&U+z^g#c{mQP4*X=&DEw{JKkoIfqHQekPTumLzcsPwf=tI3x4=>Gg0 zqI6&@Muu0Q&&E`U#()G9BC0qO)^5}`xWrYoJPE*Bg^sb5<^O(GSsY?Cw;>c#pY?I; zp{j2W3>rqzurq|n5+H48Uc>Yi9l!98jkvM^fBnU;j_7H;cii5v;(@)7q-M&f_Rfz^ z;H+`pigIQ3im4nVpq=?)K8dA(AJUc5Ok_Ep=O?eP1*-x;mtxVLK)(5iw~BCn1Lq=m z2lo;oY9Q@t-Up-bud2u<_`l{r%vLxBjz!>k zeM;>`l#`RYpw;2x=H}%LqY%-w0xS@hQRi)Bpm|5&)dST$ zb?Rsag{bKo=Z#%Ud3pJ0Pib`(b~xQAgA8%&dy@D!Y_uw0eazFYQ7yM(_Bgw~%l2dD z{E?LKQ|-ZL{Of#Pi;27zhHYWwCr7<0LPoH|^)lpQqgK+qbu>#&sVP18Be6(%WCnly$S~&;HaXSq}Ginvzt7%%uGZoS!$%#I|R`nxcwuktuQ80FG$LAOzA1i98!(0eR~i9}uU z++=z>-5-EW7{O@#X_^du1)!AxxJPtO z#_4o4?MxXv2ix$kzOiI)rb1G>`_b0ZDm$b52Sd*gFkK9#_nC5y&eic6=R$xp$<$F3 z>3S5oUBzJq1j`RLvM}u1bbHG^KW6ra$t!mf4T`xccmar|@({gNyW-;F z(x=`aNt*uf?Tz27pTp%w3$*L%u7jLUZmG?zPC?zFCW4d6r3k&*Q9;= zQdE4a`b^HX@f~S()N*eMb7B2SP7Is2W}o}#?&Xfk&%%f8&D&aYn-gAE-y}p z$$q!fhPNYNClU;0yMtl14bfEA26b$det%&W(%!M&w2sZ;e?PpEgyZGwppTFizd-GWId}%V1#aG9^Al(8vz|w0UgEV> z6bMx7p!&|OM?c^E;rBxjUHjyQifFC zzk`59g|;ds{BM!xc;k!VJ&wSUDE2&c`m>%}I7BPXf8#WJb-Q|lEx&XPv|q7y8C&v& z_xmMCd4j1B%uBk)bcNy69wZMpFY3#jn5q3%%jbnt6AX6CaRh>yvNg+ch6;7X+D;p{ z&Blu}Uc72V9ZZ+S-}ImN*m4zcu@)A+qs0FMMig`)C~syr`o<1G5~ddr?BL+Nfn)-U z0OJ}OQVA8mzghaDv2&P}fmpTp*G~6)bo>fEp8q-POj-(( zXB##++vBMAY^QVhGgmdI;dOqX=E+Ctcdc(9@TIO=zXP@?{jYPI8^64~GPqXeHn`s1 zwe${?ebj|mSP(WeXf;FKfa`QdA^z|mmd39x%rh>FH?!3Wb=YXpW4~#jbZl1477)}l zpzD5?FNnrey06eFcqQtn7EpCEfGslo*&a!{C!Qxy_2T-rJUGd@hRnWu;&wbU_`8>Y zUj~y=CMTv^$+~t|>hF!-`M)=c$3VAe)6!aLyQuQvf}iQZTfY)Oya?31)apTR@H z(H6VIZP1EEF77b@mWWV20*9kZhQhC>8i+)or)apt?C7Y1Tg2Lu{u%=+1bq-~lp0ee z7H^uOPZ4w+tP8&VSzmKXQjij8n?Ko#z4jH}sEcwE{73^XzuRWxeWH6~*=2BUl?m)-D zPCW-TX@nRtO^E5sYM1Ij9IVH-ecXg71)P>+9NFhh!M{(8Mms99bZOFRcY;Lmb&@H) zj>W?b(Dx>78uA}vqUS6faXhbsT7m~5rU~u%_VX@a=Ng@pRx1V)iQnE~*TL~VR6#*6 zqD^iVrK}|hB&@c=p{f7y&!Eek$W__dO4&@lOPvWF_qY)2Ar&VpAr}RKxq_s6qg>1B zugYm}-0jIPNwB4*G^;IB@2l}CI_WoI++EgA;CHIscPp*NVmV6BQ?Ha^d}Q#O&%2$& zn_DBPK@ofJ1CF;HPw){`i+-J{4k?oDIu=PZWW3kb+zkhmHq$pc zhyd}@Fl2>l1lB`Q$F0`~0Y*T-*31x9B%}c4^Ih8v=FSDa@seuetw}~8W_OL;ud0bc zsuie`{B4QV{n(AZJs~-qTZ~e#@IiVmbx9TN-F=DjHJ3sfc&P>S*AKT2!bG{C`SBi7 z%&79VWUBK*c6u0WMtpB@ilKInivtSW!3p?~Q6Z4#%=#Z-#?qnF*9yrUA*5Qwf4(|z z@FA@>sJ!zKq&Ffxjc{qrPTLm$0yH2=o{5xZVCH@XlqN><3)f6!l!B+bEQ^rQwgh7x zgf6!o=Wh-!=H(iKGfU3(@BcS*B$j?%@P3WbgAH6a7`aJ#qd5WR2*Wl+msnc$=8Zu1 zyZ->!Std>1CbGQk4m*f5&tgQ7Wq_z*`v)zG2n5_LcyVfp)Tzbxu0hUFNlRHGf$euh zm2;Y9QiBY%f@rcA@rRjA!yy(j^7486mdW4X{p$|o;e`LV^&7@NI%voONF3@O~^B89|GW@>IHRnHw zV0L8#yp!)*;ox}Rf8N^gMD5y3%ucY%;L29?6lv(84C^|uf!~fWnmz^M<*)f}xZWZ^ zh!gGCipUW28{mJ)R6JwvA;juMm-=23NlSC_s%> zNj4s5(u)uE1`@>eQ05U_p@D5Ni`k@Pz`4`KcGX0Fl)Ox3!}Te3%@Hih%@jw&;#+qj zU={+HTBV*UDMsf_(36bSW>$5ThP~cGf$UVucx^{8r7Hfg#Lo50r_I6P@k@SrfFF;1 ztbMDeaK^Oedf_;3OY41K(tr9g9z58$HjyTe0z_M>D`U`xR{SFhTI7Fy%P8=wUm+-u z1oaIo@<(ZT zR2h_B*wrhHs%P^1MvA>(Wh7uDOkV&ANh%N63xRjzH3-DNy_)%427XRPlG{Fl{20@$ zSi{=K29qD!&`O@a3Ft~6orwho7h8w68^FtAS~(U{y42ikzQIom!%w%|UfX!)D8tTO zc%efEqPv3Z7__#>{9~MrA$xARb|w1)E2JbI?g<~-{03Jk5-+FwX2>`osa1ko=6u_G z?dfUC)MuklQ|K)U9*dsaH=(-sL(1FuCU`7B{X^_Uv zcR)3oZ%Z{YOAO35j2j@ilD3Zjc>pQ?R#^cKB-C6C`@g$g)h$uKWP-K8T@G6gUx0 z47uIRIC{&!oIHB^iL9*4L_goHxbzuz0?4zjd9@M@Zuo8(X}(dSuaaj6qB=r#gjr{G z@*WO!q6_Kv8ZIU4xbvd9*WaxaOI|;{bS%e$ITr-Ny9PP6Ou>^5BNhsvTK*TA;OGG= z9e+v0@OZ+cB3?>td(vq|sCa5zZnjMZQ6-2 zKu5ONY~nExC<;LmJO%MOLoiwh{jpfkI$fxts{1^%3>>sr0SBidc}ph}p%C6Z4`>HF zG|+5kP>d-3aT)@UKaot}=gB^8W=Bj*JZDI@Tvxm=OY+Es#4l$7ru5Uz>0hfDsLdx< z7LCg49V;3)^Q)zqbwZLGIL{jU_U;pxsX9z zRwh8=pmI;D19ZYy4{+#E+FPe}@2*g2D^|;7He4nkLH&K{THeDe+nD-qi6gFz#zld} zo#|09CH~-{5@UP2T;G?mmrFV*9pKJVmXvuutJrnlc&emu-F{`W{BJP_#Bt=A)5)Nl zYL7dAr33a}t7>8POc(;$0n{EndF?+#Y>YZzv}s>h$evo?r?ra$vkcHg?~LIW>tDp7 z3rvK;X1skkkmS;jWKX^p;S23fY!*8i`Z}#RoV6vm{Q_*3%G~kFONYh0)nVN_UUa?Bg(dsJ@wYJOt1H9;CV4reU7Ux?5HXtymx#!t zSV!sT!Ty;n|I&P0-uit#fPSu7*D4_%Hg38*E&C0J6l>nvcQrx+(i^kxui)@=33ocd@=CIsrU2@$UWbD zn-dO8IQTO<_{V!?jVX!xC}#8@)fUudU$vWIaWNMXMneXD=5f#|hXe@BWuzX1BAPf0 z#{#O7^w)DA|G4zFs?qkbEQ`)=rTQ2IVKaj#)mrNK$;aSC+rGk0jF<%9h2pbCe43wL zGZv9C+L+Fjy*LhR3@EP9uNr0zSuk}A4X%NdjF%s#wm?fIJUxU>*|+Alo>5hv^#8>VzKK{{-fG)MpZeEU07dUl!~YwtZy+Jyulo~iCX$o+ zdWH?5XjgLnUFx(?!$R*{Fe)Z!b?-e!;G3zK6 z(`kmvvXkd=he`nXLdaHhLtj{t)NnLHPwrSFwBeT5jGpDm^|Y?`py442T+7ROO9X=_ zBEkp4+J+ZLV%J633VX~h>X7J`;#3a-1#Y!B4mOrHqk%!>0|s?6hpuabmlHLPc$EO* ztK&y{o-pwRIzb-G!3~&AN?XmAZx#dDFF~{L<71cXf{^SpU!?uJ08#!8@I*ikmlZ); z6160OTxhY$kL6_ha6{lKN08iX=(pe)cK>Q{%LJJP$U4saAKAb?kl}OXd(ozRsda z%Yt+TCNt`F-_h%wLy(j%v&&71W@e=Auh+PRK}G^Ff|fvy)oQ)6X*joqT;6Ubq9}L;0fxXgG^+*wrw*|XQ=%K!^UT*7X>_0o5>Wgfv^g8;%9(TV-%gw~q z&}hxP2}U2+Mc{92e_T$u|7AROz|f&})8q!{7L6?LG}?EC{1M$DXVU3N zLi^rnwZN9r>eA)m)<&iKenWi>w5Gd-PS6FEi}KuOC5V>03{sNg6G7*EJN?bC*)lD{ ziy_6uM`1tD8>1hF+}K7us=%2|zl8#JZ+Ij0E1Os|jkrfKXTU zK`f+{1ZQsE4h!>QCS5;AXL<*#|kd&;r^`lZd2UOdqd@c94A{QIthiV3nz$

-### Listing all Tasks : `list` +### Listing all Tasks : `listTask` -View all tasks, all todo tasks, all deadline tasks, all event tasks or tasks for today +Shows a list of all tasks in ManageEZPZ. Format: -* `list` +* `listTask` ### Marking a task as done : `mark` Mark a task in the Task list as done : From 08ff4f6bc3686a3e545a05d4b30c2d14ea8acff6 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 13:58:55 +0800 Subject: [PATCH 251/507] Update test cases & test files. --- .../java/manageezpz/model/task/Deadline.java | 5 +- .../java/manageezpz/model/task/Event.java | 4 +- src/main/java/manageezpz/model/task/Task.java | 78 +++++++++++-------- .../manageezpz/model/ModelManagerTest.java | 3 + .../java/manageezpz/model/task/TaskTest.java | 8 +- .../java/manageezpz/testutil/TaskBuilder.java | 39 ---------- .../java/manageezpz/testutil/TodoBuilder.java | 8 ++ .../manageezpz/testutil/TypicalTasks.java | 12 +-- 8 files changed, 73 insertions(+), 84 deletions(-) delete mode 100644 src/test/java/manageezpz/testutil/TaskBuilder.java diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 7375be89988..b4887c04508 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -5,6 +5,7 @@ public class Deadline extends Task { private Date date; private Time time; + protected String type; /** * Constructor for the Task class. @@ -13,9 +14,10 @@ public class Deadline extends Task { */ public Deadline(Description taskDescription, Date date, Time time) { super(taskDescription); - super.setType("deadline"); this.date = date; this.time = time; + super.setType("deadline"); + //setType(); } public Date getDate() { @@ -26,6 +28,7 @@ public Time getTime() { return this.time; } + @Override public String getDateTime() { return "by " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index bc5d06d792e..86f2e80cafc 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -6,6 +6,7 @@ public class Event extends Task { private Date date; private Time startTime; private Time endTime; + protected String type; /** * Constructor for the Task class. @@ -14,10 +15,10 @@ public class Event extends Task { */ public Event(Description taskDescription, Date date, Time startTime, Time endTime) { super(taskDescription); + super.setType("event"); this.date = date; this.startTime = startTime; this.endTime = endTime; - super.setType("event"); } public Date getDate() { @@ -32,6 +33,7 @@ public Time getEndTime() { return endTime; } + @Override public String getDateTime() { return "at " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 93acf8edfb9..134146d1ae4 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -12,10 +12,10 @@ * Represents the Tasks a user could create. A Task object would correspond to a task * inputted by a user either a Todo, Deadline or Event. */ -public class Task implements Comparable { +public abstract class Task implements Comparable { protected boolean isDone; - protected String type; protected Priority priority; + protected String type; // Identity fields private final Description taskDescription; @@ -34,7 +34,7 @@ public Task(Description taskDescription) { requireAllNonNull(taskDescription); this.taskDescription = taskDescription; this.isDone = false; - this.type = ""; + this.type =""; this.assignees = new ArrayList<>(); this.priority = Priority.NONE; } @@ -51,10 +51,6 @@ public List getAssignees() { return this.assignees; } - public void addAssignees(Person person) { - this.assignees.add(person); - } - public void setTaskDone() { this.isDone = true; } @@ -75,14 +71,6 @@ public String getType() { return this.type; } - /** - * Checks if the task is done or not. - * @return true if task is done, false otherwise. - */ - public boolean isDone() { - return isDone; - } - public String getDateTime() { return ""; } @@ -95,18 +83,20 @@ public Priority getPriority() { return this.priority; } - @Override - public int compareTo(Task o) { - return Integer.compare(this.getPriority().getValue(), o.getPriority().getValue()); + /** + * Adds a Person to the Task List. + * @param person the person to be added. + */ + public void addAssignees(Person person) { + this.assignees.add(person); } /** - * Returns the string representation of the task. - * @return a string representation of the task, consisting of its description and whether its done or not. + * Checks if the task is done or not. + * @return true if task is done, false otherwise. */ - @Override - public String toString() { - return "[" + getStatusIcon() + "] " + getDescription(); + public boolean isDone() { + return isDone; } /** @@ -122,14 +112,46 @@ public boolean isSameTask(Task otherTask) { && otherTask.getDescription().equals(getDescription()); } + /** + * Used to assign a person to this Task. + * @param person the person to be assigned. + */ public void assignedTo(Person person) { assignees.add(person); } + /** + * Used to deallocate a person from this Task. + * @param person the person to be deallocated. + */ public void removeAssigned(Person person) { assignees.remove(person); } + /** + * Checks whether the assignee is assigned to the task. + * @param assignee The assignee to be searched + * @return True if the assignee is assigned, false otherwise + */ + public boolean haveAssignees(String assignee) { + return assignees.stream() + .anyMatch(person -> person.getName().fullName.equals(assignee)); + } + + @Override + public int compareTo(Task o) { + return Integer.compare(this.getPriority().getValue(), o.getPriority().getValue()); + } + + /** + * Returns the string representation of the task. + * @return a string representation of the task, consisting of its description and whether its done or not. + */ + @Override + public String toString() { + return "[" + getStatusIcon() + "] " + getDescription(); + } + @Override public boolean equals(Object other) { if (other == this) { @@ -145,16 +167,6 @@ public boolean equals(Object other) { && otherTask.getStatusIcon().equals(getStatusIcon()); } - /** - * Checks whether the assignee is assigned to the task. - * @param assignee The assignee to be searched - * @return True if the assignee is assigned, false otherwise - */ - public boolean haveAssignees(String assignee) { - return assignees.stream() - .anyMatch(person -> person.getName().fullName.equals(assignee)); - } - @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index c3c72750832..616bff35e7f 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -21,6 +21,7 @@ import manageezpz.commons.core.GuiSettings; import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.person.Person; import manageezpz.testutil.AddressBookBuilder; public class ModelManagerTest { @@ -211,4 +212,6 @@ public void unmarkTask_taskInaddressBook_returnsTrue() { modelManager.unmarkTask(READ_BOOK); assertTrue(!READ_BOOK.isDone()); } + + } diff --git a/src/test/java/manageezpz/model/task/TaskTest.java b/src/test/java/manageezpz/model/task/TaskTest.java index 2561b7f29a4..c30daea325b 100644 --- a/src/test/java/manageezpz/model/task/TaskTest.java +++ b/src/test/java/manageezpz/model/task/TaskTest.java @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test; -import manageezpz.testutil.TaskBuilder; +import manageezpz.testutil.TodoBuilder; public class TaskTest { @@ -22,19 +22,19 @@ public void isSameTask() { assertFalse(READ_BOOK.isSameTask(null)); // description differs in case -> returns false - Task editedTask = new TaskBuilder(RETURN_BOOK).withDescription(VALID_TASK_DESCRIPTION.toLowerCase()).build(); + Todo editedTask = new TodoBuilder(RETURN_BOOK).withDescription(VALID_TASK_DESCRIPTION.toLowerCase()).build(); assertFalse(RETURN_BOOK.isSameTask(editedTask)); // description has trailing spaces, all other attributes same -> returns false String desWithTrailingSpaces = VALID_TASK_DESCRIPTION + " "; - editedTask = new TaskBuilder(RETURN_BOOK).withDescription(desWithTrailingSpaces).build(); + editedTask = new TodoBuilder(RETURN_BOOK).withDescription(desWithTrailingSpaces).build(); assertFalse(RETURN_BOOK.isSameTask(editedTask)); } @Test public void equals() { // same values -> returns true - Task readBookCopy = new TaskBuilder(READ_BOOK).build(); + Todo readBookCopy = new TodoBuilder(READ_BOOK).build(); assertTrue(READ_BOOK.equals(readBookCopy)); // same object -> returns true diff --git a/src/test/java/manageezpz/testutil/TaskBuilder.java b/src/test/java/manageezpz/testutil/TaskBuilder.java deleted file mode 100644 index 44d9c314c91..00000000000 --- a/src/test/java/manageezpz/testutil/TaskBuilder.java +++ /dev/null @@ -1,39 +0,0 @@ -package manageezpz.testutil; - -import manageezpz.model.task.Description; -import manageezpz.model.task.Task; - -/** - * A utility class to help with building Task objects. - */ -public class TaskBuilder { - public static final String TASK_DESCRIPTION = "read book"; - - private Description description; - - /** - * Creates a {@code TaskBuilder} with the default details. - */ - public TaskBuilder() { - description = new Description(TASK_DESCRIPTION); - } - - /** - * Initializes the TaskBuilder with the data of {@code taskToCopy}. - */ - public TaskBuilder(Task taskToCopy) { - description = taskToCopy.getDescription(); - } - - /** - * Sets the {@code Description} of the {@code Task} that we are building. - */ - public TaskBuilder withDescription(String description) { - this.description = new Description(description); - return this; - } - - public Task build() { - return new Task(description); - } -} diff --git a/src/test/java/manageezpz/testutil/TodoBuilder.java b/src/test/java/manageezpz/testutil/TodoBuilder.java index a37810d8e5c..0faa5ac571a 100644 --- a/src/test/java/manageezpz/testutil/TodoBuilder.java +++ b/src/test/java/manageezpz/testutil/TodoBuilder.java @@ -1,6 +1,7 @@ package manageezpz.testutil; import manageezpz.model.task.Description; +import manageezpz.model.task.Task; import manageezpz.model.task.Todo; public class TodoBuilder { @@ -14,6 +15,13 @@ public TodoBuilder() { description = new Description(TASK_DESCRIPTION); } + /** + * Initializes the TaskBuilder with the data of {@code taskToCopy}. + */ + public TodoBuilder(Todo taskToCopy) { + description = taskToCopy.getDescription(); + } + /** * Sets the {@code Description} of the {@code Task} that we are building. */ diff --git a/src/test/java/manageezpz/testutil/TypicalTasks.java b/src/test/java/manageezpz/testutil/TypicalTasks.java index 88047f68172..21f1f9359ae 100644 --- a/src/test/java/manageezpz/testutil/TypicalTasks.java +++ b/src/test/java/manageezpz/testutil/TypicalTasks.java @@ -14,18 +14,18 @@ public class TypicalTasks { - public static final Task READ_BOOK = new TaskBuilder().withDescription("Read Book").build(); - public static final Task RETURN_BOOK = new TaskBuilder().withDescription("Return Book").build(); - public static final Task GO_FOR_RUN = new TaskBuilder().withDescription("Go for run").build(); - public static final Task GET_HAIRCUT = new TaskBuilder().withDescription("Get Haircut").build(); + public static final Todo READ_BOOK = new TodoBuilder().withDescription("Read Book").build(); + public static final Todo RETURN_BOOK = new TodoBuilder().withDescription("Return Book").build(); + public static final Todo GO_FOR_RUN = new TodoBuilder().withDescription("Go for run").build(); + public static final Todo GET_HAIRCUT = new TodoBuilder().withDescription("Get Haircut").build(); + public static final Todo WEEKLY_QUIZ = new TodoBuilder().withDescription("Weekly Quiz").build(); public static final Deadline GET_DRINK = new DeadlineBuilder().withDescription("Get Drink") .withDate("2022-05-13").withTime("1800").build(); public static final Event HOUSE_VISTING = new EventBuilder().withDescription("House Visiting") .withDate("2022-09-15").withStartTime("1800").withEndTime("2000").build(); - public static final Todo WEEKLY_QUIZ = new TodoBuilder().withDescription("Weekly Quiz").build(); // Manually added - Task's details found in {@code CommandTestUtil} - public static final Task GET_A_DRINK = new TaskBuilder().withDescription(VALID_TASK_DESCRIPTION).build(); + public static final Todo GET_A_DRINK = new TodoBuilder().withDescription(VALID_TASK_DESCRIPTION).build(); private TypicalTasks() {} // prevents instantiation From b2def24247ac8456728a2cad8d812742475afd27 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 14:20:51 +0800 Subject: [PATCH 252/507] Abstract out type from Task classes. --- src/main/java/manageezpz/model/task/Deadline.java | 7 +++++-- src/main/java/manageezpz/model/task/Event.java | 7 ++++++- src/main/java/manageezpz/model/task/Task.java | 12 ++---------- src/main/java/manageezpz/model/task/Todo.java | 9 ++++++++- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index b4887c04508..c3b6767449d 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -16,8 +16,7 @@ public Deadline(Description taskDescription, Date date, Time time) { super(taskDescription); this.date = date; this.time = time; - super.setType("deadline"); - //setType(); + this.type = "deadline"; } public Date getDate() { @@ -28,6 +27,10 @@ public Time getTime() { return this.time; } + @Override + public String getType() { + return this.type; + } @Override public String getDateTime() { diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index 86f2e80cafc..a9e8ded708e 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -15,10 +15,10 @@ public class Event extends Task { */ public Event(Description taskDescription, Date date, Time startTime, Time endTime) { super(taskDescription); - super.setType("event"); this.date = date; this.startTime = startTime; this.endTime = endTime; + this.type = "event"; } public Date getDate() { @@ -34,6 +34,11 @@ public Time getEndTime() { } + @Override + public String getType() { + return this.type; + } + @Override public String getDateTime() { return "at " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 134146d1ae4..cb4a9f86859 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -15,7 +15,6 @@ public abstract class Task implements Comparable { protected boolean isDone; protected Priority priority; - protected String type; // Identity fields private final Description taskDescription; @@ -34,11 +33,12 @@ public Task(Description taskDescription) { requireAllNonNull(taskDescription); this.taskDescription = taskDescription; this.isDone = false; - this.type =""; this.assignees = new ArrayList<>(); this.priority = Priority.NONE; } + public abstract String getType(); + public String getStatusIcon() { if (this.isDone()) { return "X"; @@ -63,14 +63,6 @@ public Description getDescription() { return this.taskDescription; } - public void setType(String type) { - this.type = type; - } - - public String getType() { - return this.type; - } - public String getDateTime() { return ""; } diff --git a/src/main/java/manageezpz/model/task/Todo.java b/src/main/java/manageezpz/model/task/Todo.java index 537d2697497..ce023d6d749 100644 --- a/src/main/java/manageezpz/model/task/Todo.java +++ b/src/main/java/manageezpz/model/task/Todo.java @@ -1,6 +1,8 @@ package manageezpz.model.task; public class Todo extends Task { + + protected String type; /** * Constructor for the Task class. * @@ -8,7 +10,12 @@ public class Todo extends Task { */ public Todo(Description taskDescription) { super(taskDescription); - super.setType("todo"); + this.type = "todo"; + } + + @Override + public String getType() { + return this.type; } /** From 41385a4d009c21e768378c583670f085fb1d7f8f Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 14:22:55 +0800 Subject: [PATCH 253/507] Update checkstyle --- src/main/java/manageezpz/model/task/Deadline.java | 2 +- src/main/java/manageezpz/model/task/Event.java | 2 +- src/test/java/manageezpz/model/ModelManagerTest.java | 3 --- src/test/java/manageezpz/testutil/TodoBuilder.java | 1 - 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index c3b6767449d..e830f3f17ae 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -3,9 +3,9 @@ import java.time.format.DateTimeFormatter; public class Deadline extends Task { + protected String type; private Date date; private Time time; - protected String type; /** * Constructor for the Task class. diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index a9e8ded708e..46e53480ba7 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -3,10 +3,10 @@ import java.time.format.DateTimeFormatter; public class Event extends Task { + protected String type; private Date date; private Time startTime; private Time endTime; - protected String type; /** * Constructor for the Task class. diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index 616bff35e7f..c3c72750832 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -21,7 +21,6 @@ import manageezpz.commons.core.GuiSettings; import manageezpz.model.person.NameContainsKeywordsPredicate; -import manageezpz.model.person.Person; import manageezpz.testutil.AddressBookBuilder; public class ModelManagerTest { @@ -212,6 +211,4 @@ public void unmarkTask_taskInaddressBook_returnsTrue() { modelManager.unmarkTask(READ_BOOK); assertTrue(!READ_BOOK.isDone()); } - - } diff --git a/src/test/java/manageezpz/testutil/TodoBuilder.java b/src/test/java/manageezpz/testutil/TodoBuilder.java index 0faa5ac571a..afe1cb70a1e 100644 --- a/src/test/java/manageezpz/testutil/TodoBuilder.java +++ b/src/test/java/manageezpz/testutil/TodoBuilder.java @@ -1,7 +1,6 @@ package manageezpz.testutil; import manageezpz.model.task.Description; -import manageezpz.model.task.Task; import manageezpz.model.task.Todo; public class TodoBuilder { From 8dcb8d1ca74435c4b368de079c59f2f7cdc7c9e5 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 14:39:19 +0800 Subject: [PATCH 254/507] Abstract out description and dateTime from Task Class. --- .../java/manageezpz/model/task/Deadline.java | 11 ++++- .../java/manageezpz/model/task/Event.java | 11 ++++- src/main/java/manageezpz/model/task/Task.java | 40 +++++-------------- src/main/java/manageezpz/model/task/Todo.java | 15 ++++++- 4 files changed, 40 insertions(+), 37 deletions(-) diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index e830f3f17ae..96d87d7cb6b 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -4,6 +4,7 @@ public class Deadline extends Task { protected String type; + protected Description description; private Date date; private Time time; @@ -13,7 +14,7 @@ public class Deadline extends Task { * @param taskDescription information about the task. */ public Deadline(Description taskDescription, Date date, Time time) { - super(taskDescription); + this.description = taskDescription; this.date = date; this.time = time; this.type = "deadline"; @@ -32,6 +33,11 @@ public String getType() { return this.type; } + @Override + public Description getDescription() { + return this.description; + } + @Override public String getDateTime() { return "by " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) @@ -45,7 +51,8 @@ public String getDateTime() { */ @Override public String toString() { - return "[D]" + super.toString() + " (by: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + return "[D]" + super.toString() + getDescription() + + " (by: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + " " + time.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } } diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index 46e53480ba7..e2be9374017 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -4,6 +4,7 @@ public class Event extends Task { protected String type; + protected Description description; private Date date; private Time startTime; private Time endTime; @@ -14,7 +15,7 @@ public class Event extends Task { * @param taskDescription information about the task. */ public Event(Description taskDescription, Date date, Time startTime, Time endTime) { - super(taskDescription); + this.description = taskDescription; this.date = date; this.startTime = startTime; this.endTime = endTime; @@ -39,6 +40,11 @@ public String getType() { return this.type; } + @Override + public Description getDescription() { + return this.description; + } + @Override public String getDateTime() { return "at " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) @@ -53,7 +59,8 @@ public String getDateTime() { */ @Override public String toString() { - return "[E]" + super.toString() + " (at: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + return "[E]" + super.toString() + getDescription() + + " (at: " + date.format(DateTimeFormatter.ofPattern("MMM dd yyyy")) + " " + startTime.format(DateTimeFormatter.ofPattern("h:mm a")) + " to" + " " + endTime.format(DateTimeFormatter.ofPattern("h:mm a")) + ")"; } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index cb4a9f86859..d73e72b7224 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -1,10 +1,7 @@ package manageezpz.model.task; -import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; - import java.util.ArrayList; import java.util.List; -import java.util.Objects; import manageezpz.model.person.Person; @@ -13,32 +10,26 @@ * inputted by a user either a Todo, Deadline or Event. */ public abstract class Task implements Comparable { - protected boolean isDone; - protected Priority priority; - - // Identity fields - private final Description taskDescription; + protected boolean isDone = false; + protected Priority priority = Priority.NONE; // Data fields - private List assignees; //List of Strings as of now, V1.3 will incorporate Persons (assign tasks to Persons) - //private final Set tags = new HashSet<>(); + private List assignees = new ArrayList<>(); /** * Constructor for the Task class. * {@code Date taskDate} has a default value that will be changed if the object inheriting the Task object * is a Deadline or Event object. If object is a Todo object, this field will be ignored. - * @param taskDescription information about the task. */ - public Task(Description taskDescription) { - requireAllNonNull(taskDescription); - this.taskDescription = taskDescription; - this.isDone = false; - this.assignees = new ArrayList<>(); - this.priority = Priority.NONE; + public Task() { } public abstract String getType(); + public abstract Description getDescription(); + + public abstract String getDateTime(); + public String getStatusIcon() { if (this.isDone()) { return "X"; @@ -59,14 +50,6 @@ public void setTaskNotDone() { this.isDone = false; } - public Description getDescription() { - return this.taskDescription; - } - - public String getDateTime() { - return ""; - } - public void setPriority(String priority) { this.priority = Priority.valueOf(priority); } @@ -141,7 +124,7 @@ public int compareTo(Task o) { */ @Override public String toString() { - return "[" + getStatusIcon() + "] " + getDescription(); + return "[" + getStatusIcon() + "] "; } @Override @@ -159,9 +142,4 @@ public boolean equals(Object other) { && otherTask.getStatusIcon().equals(getStatusIcon()); } - @Override - public int hashCode() { - // use this method for custom fields hashing instead of implementing your own - return Objects.hash(taskDescription); - } } diff --git a/src/main/java/manageezpz/model/task/Todo.java b/src/main/java/manageezpz/model/task/Todo.java index ce023d6d749..64e7cf77f64 100644 --- a/src/main/java/manageezpz/model/task/Todo.java +++ b/src/main/java/manageezpz/model/task/Todo.java @@ -3,14 +3,15 @@ public class Todo extends Task { protected String type; + protected Description description; /** * Constructor for the Task class. * * @param taskDescription information about the task. */ public Todo(Description taskDescription) { - super(taskDescription); this.type = "todo"; + this.description = taskDescription; } @Override @@ -18,12 +19,22 @@ public String getType() { return this.type; } + @Override + public Description getDescription() { + return this.description; + } + + @Override + public String getDateTime() { + return null; + } + /** * Returns the string representation of a todo. * @return a string representation of the todo, consisting of its description. */ @Override public String toString() { - return "[T]" + super.toString(); + return "[T]" + super.toString() + getDescription(); } } From ae05474bc310b384d314bd75c2d3c5aee29189d1 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 14:53:43 +0800 Subject: [PATCH 255/507] Update DG. --- docs/DeveloperGuide.md | 142 ++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 72 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6c9656db62b..e3c70529ac0 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -147,7 +147,7 @@ The `Storage` component, ### Common classes -Classes used by multiple components are in the `seedu.addressbook.commons` package. +Classes used by multiple components are in the `manageezpz.commons` package. -------------------------------------------------------------------------------------------------------------------- @@ -155,6 +155,71 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. +### **Task Components** +- Added Classes into the model Component to encapsulate a Task. + +#### **Implementation** + + +A `Task`, +- is stored in `uniqueTaskList` of the Model +- can be represented by a `Todo`, `Event`, or `Deadline` + +A `Task` contains the following attributes, +1. a `Description`, which represent the details of the Task to be stored in the `uniqueTaskList` +2. a `Date`, which represent the day, month and year as specified by a number of the Task +3. a `Time`, which represent the period during the Task exists or happens +4. can be assigned/Tagged to multiple different `Person` +5. a type, to differentiate between the different types of task +6. can be marked/unmarked based on whether the task is done or not. +7. can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" + +#### Design considerations: + +#### Aspect: How the components within Task are added or changed +- **Current Choice**: Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. + * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed + * Cons: Less flexible, more steps needed in editing Task objects +- Alternative 1: Allow certain components within Task, like Time and Date to be mutable + * Pros: Less overhead as fewer objects are created + * Cons: Prone to error as a Component might not be correctly changed + +### Task Adding feature + +#### What is Task Adding feature about? + +The Add Task mechanism is facilitated by `AddressBook`. This feature enhances `AddressBook` by allowing to store not only `Person`, but also `Task`. This is stored internally as a `UniquePersonList` and `UniqueTaskList`. Additionally, the feature implements the following operations: + +* `AddressBook#addTodo(Todo)` —  Adds the `Todo` Task to `UniqueTaskList` +* `AddressBook#addDeadline(Deadline)` — Adds the `Deadline` Task to `UniqueTaskList` +* `AddressBook#addEvent(Event)` — Adds the `Event` Task to `UniqueTaskList` + +For the command, the feature extends `command`, and is implemented as such: +* `addTodo desc/TASK_DESCRIPTION` +* `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` +* `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` + +#### Implementation Flow of Task Adding feature + +Given below is an example usage scenario and how the Task Adding mechanism behaves at each step. + +Note: ManageEZPZ comes with preloaded data, and can be started on a fresh state with the `clear` command. + +Step 1. The user launches the application for the first time. ManageEZPZ will be initialized with the preloaded data. + +Step 2. The user executes `addTodo desc/Watch Netflix with Mum` command to create a new `Todo` Task. +![AddTodo1](images/AddTodo.png) + +#### Design considerations: +- The Task adding commands are straight-to-the-point and efficient for users to add Tasks to ManageEZPZ. +- The prefixes allow users to understand what the different types of Task need in order to be created. + +#### UML Diagram for Adding Todo Task + +The following activity diagram summarizes what happens when a user executes a new `addTodo` command: + + + ### Task Marking feature #### What is Task Marking feature about? @@ -236,73 +301,6 @@ Step 2. The user executes `delete 4` command to delete the task `Watch Netflix w ![](images/DeleteClassDiagram.png) - -### **Task Components** -- Added Classes into the model Component to encapsulate a Task. - -#### **Implementation** - - -A `Task`, -- is stored in `uniqueTaskList` of the Model -- can be represented by a `Todo`, `Event`, or `Deadline` - -A `Task` contains the following attributes, -1. a `Description`, which represent the details of the Task to be stored in the `uniqueTaskList` -2. a `Date`, which represent the day, month and year as specified by a number of the Task -3. a `Time`, which represent the period during the Task exists or happens -4. can be assigned/Tagged to multiple different `Person` -5. a type, to differentiate between the different types of task -6. can be marked/unmarked based on whether the task is done or not. -7. can be assigned to a single `Priority` such as "LOW", "MEDIUM" or "HIGH" - -#### Design considerations: - -#### Aspect: How the components within Task are added or changed -- **Current Choice**: Attributes within `Task` are immutable, meaning that if there is an attribute that has to be edited, a new Task object has to be created. - * Pros: Concept of Immutability is met, making the code less prone to bugs as all components of an Task object are fixed - * Cons: Less flexible, more steps needed in editing Task objects -- Alternative 1: Allow certain components within Task, like Time and Date to be mutable - * Pros: Less overhead as fewer objects are created - * Cons: Prone to error as a Component might not be correctly changed - -### Task Adding feature - -#### What is Task Adding feature about? - -The Add Task mechanism is facilitated by `AddressBook`. This feature enhances `AddressBook` by allowing to store not only `Person`, but also `Task`. This is stored internally as a `UniquePersonList` and `UniqueTaskList`. Additionally, the feature implements the following operations: - -* `AddressBook#addTodo(Todo)` —  Adds the `Todo` Task to `UniqueTaskList` -* `AddressBook#addDeadline(Deadline)` — Adds the `Deadline` Task to `UniqueTaskList` -* `AddressBook#addEvent(Event)` — Adds the `Event` Task to `UniqueTaskList` - -For the command, the feature extends `command`, and is implemented as such: -* `addTodo desc/TASK_DESCRIPTION` -* `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` -* `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` - -#### Implementation Flow of Task Adding feature - -Given below is an example usage scenario and how the Task Adding mechanism behaves at each step. - -Note: ManageEZPZ comes with preloaded data, and can be started on a fresh state with the `clear` command. - -Step 1. The user launches the application for the first time. ManageEZPZ will be initialized with the preloaded data. - -Step 2. The user executes `addTodo desc/Watch Netflix with Mum` command to create a new `Todo` Task. -![AddTodo1](images/AddTodo.png) - -#### Design considerations: -- The Task adding commands are straight-to-the-point and efficient for users to add Tasks to ManageEZPZ. -- The prefixes allow users to understand what the different types of Task need in order to be created. - -#### UML Diagram for Adding Todo Task - -The following activity diagram summarizes what happens when a user executes a new `addTodo` command: - - - - ### Editing details of a task The edit mechanism is facilitated by `EditTaskCommandParser` and `EditTaskCommand`.
@@ -810,19 +808,19 @@ testers are expected to do more *exploratory* testing. 1. _{ more test cases …​ }_ -### Deleting a person +### Deleting an employee 1. Deleting a person while all persons are being shown 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. - 1. Test case: `delete 1`
+ 1. Test case: `deleteEmployee 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. - 1. Test case: `delete 0`
+ 1. Test case: `deleteEmployee 0`
Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. - 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
+ 1. Other incorrect delete commands to try: `deleteEmployee`, `deleteEmployee x`, `...` (where x is larger than the list size)
Expected: Similar to previous. 1. _{ more test cases …​ }_ From 5a55871e4085bdc22709a6db3bc43fc8cb08942d Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Mon, 28 Mar 2022 15:04:10 +0800 Subject: [PATCH 256/507] Update UG --- docs/UserGuide.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e2fe5e6a48a..2785d1dcf6d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -26,7 +26,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`addEmployee`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe` to ManageEZPZ. - * **`delete`**`3` : Deletes the 3rd Task shown in the Task list. + * **`deleteTask`**`3` : Deletes the 3rd Task shown in the Task list. * **`clear`** : Deletes everything from ManageEZPZ. @@ -70,7 +70,7 @@ Shows a message explaining how to access the help page. Format: `help` -### Adding a person: `addEmployee` +### Adding an employee: `addEmployee` Adds an employee to ManageEZPZ. @@ -80,18 +80,40 @@ Examples: * `addEmployee n/John Doe p/98765432 e/johnd@example.com` * `addEmployee p/98754123 n/Betsy Crowe e/betsycrowe@example.com` +### Deleting an employee: `deleteEmployee` + +Deletes the specified employee from the address book. + +Format: `deleteEmployee INDEX` + +* Deletes the employee 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, …​ + +Examples: +* `list` followed by `deleteEmployee 2` deletes the 2nd person in the address book. +* `find Betsy` followed by delete 1 deletes the 1st person in the results of the find command. + + ### Adding a Task: `addTodo`, `addEvent`, `addDeadline` Adds a Task into the Task list. Format: - * `addTodo desc/TASK_DESCRIPTION` * `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` * `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` +Examples: +* `addTodo desc/read book` +* `addDeadline desc/return book by/16-02-2022 1800` +* `addEvent desc/project meeting at/17-02-2022 1900 2000` +
:bulb: **Take Note:** For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format) + +Furthermore, parsing of task is done using the keywords such as "desc/", "by/" & "at/" as such, +the parsing mechanism would take everything inserted after the keywords.
### Listing all Tasks : `list` From 9d30c4ef2a832e3332e04090d31169096fdc2a38 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 18:09:42 +0800 Subject: [PATCH 257/507] Add test cases for find task command --- .../logic/parser/FindTaskCommandParser.java | 2 +- .../model/task/TaskMultiplePredicate.java | 2 + .../logic/commands/CommandTestUtil.java | 1 - .../logic/commands/FindTaskCommandTest.java | 116 ++++++++++++++++-- .../manageezpz/testutil/TypicalTasks.java | 28 ++++- 5 files changed, 134 insertions(+), 15 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index e3efcd61b3d..37d33f6bfbd 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -24,7 +24,7 @@ /** * Subclass of FindCommandParser which check if the options are valid for finding tasks. */ -class FindTaskCommandParser implements Parser { +public class FindTaskCommandParser implements Parser { private static final Prefix[] TASK_TYPES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; private static final Prefix[] VALID_OPTIONS = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT, PREFIX_DATE, PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index a56d2e740d9..32c01b4ade2 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -15,6 +15,8 @@ * The predicate to search tasks based on the properties given. */ public class TaskMultiplePredicate implements Predicate { + public static final List NO_SPECIFIC_TASK_TYPE = List.of(); + private final List taskTypes; private final List description; private final Date date; diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index a6199a59566..8f9531dbcf2 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -4,7 +4,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index c816bd1a09e..21cf5e286c4 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -2,9 +2,19 @@ import static manageezpz.commons.core.Messages.MESSAGE_TASKS_LISTED_OVERVIEW; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalTasks.FYP_REPORT; +import static manageezpz.testutil.TypicalTasks.GET_A_DRINK; +import static manageezpz.testutil.TypicalTasks.GET_HAIRCUT; +import static manageezpz.testutil.TypicalTasks.GO_FOR_RUN; +import static manageezpz.testutil.TypicalTasks.HOUSE_VISTING; +import static manageezpz.testutil.TypicalTasks.MALAYSIA_BORDERS_OPEN; +import static manageezpz.testutil.TypicalTasks.PROJECT_CAPSTONE; import static manageezpz.testutil.TypicalTasks.READ_BOOK; import static manageezpz.testutil.TypicalTasks.RETURN_BOOK; +import static manageezpz.testutil.TypicalTasks.WEEKLY_QUIZ; import static manageezpz.testutil.TypicalTasks.getTypicalAddressBook; import static manageezpz.testutil.TypicalTasks.getTypicalTask; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -19,6 +29,8 @@ import manageezpz.model.Model; import manageezpz.model.ModelManager; import manageezpz.model.UserPrefs; +import manageezpz.model.task.Date; +import manageezpz.model.task.Priority; import manageezpz.model.task.Task; import manageezpz.model.task.TaskMultiplePredicate; @@ -29,10 +41,10 @@ class FindTaskCommandTest { @Test void equals() { TaskMultiplePredicate firstPredicate = - new TaskMultiplePredicate(List.of(), Collections.singletonList("Genshin"), + new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, Collections.singletonList("Genshin"), null, null, null, null); TaskMultiplePredicate secondPredicate = - new TaskMultiplePredicate(List.of(), Collections.singletonList("Impact"), + new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, Collections.singletonList("Impact"), null, null, null, null); FindTaskCommand firstFindTaskCommand = new FindTaskCommand(firstPredicate); @@ -56,30 +68,110 @@ void equals() { } @Test - void findAllTasks() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(), null, null, - null, null, null); + void findCommand_findAllTasks_showAllTasks() { + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, expectedModel.getFilteredTaskList().size()); FindTaskCommand command = new FindTaskCommand(predicate); + assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(getTypicalTask(), model.getFilteredTaskList()); } @Test - void findTaskWithDescription() { + void findCommand_findSpecificTaskType_showTaskOfSpecificType() { + TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, null, + null, null, null); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 6); + FindTaskCommand command = new FindTaskCommand(predicate); + List expectedTasks = List.of(WEEKLY_QUIZ, READ_BOOK, RETURN_BOOK, GO_FOR_RUN, GET_HAIRCUT, GET_A_DRINK); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } + + @Test + void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { List keywords = List.of("Book"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(), keywords, null, null, - null, null); + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + keywords, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); - String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, - expectedModel.getFilteredTaskList().size()); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); List expectedTasks = List.of(READ_BOOK, RETURN_BOOK); FindTaskCommand command = new FindTaskCommand(predicate); + assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(expectedTasks, model.getFilteredTaskList()); } - // TODO: More testing needed + @Test + void findCommand_findTaskWithDate_showTasksWithGivenDate() { + Date date = new Date("2022-04-01"); + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, date, null, null, null); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); + List expectedTasks = List.of(PROJECT_CAPSTONE, MALAYSIA_BORDERS_OPEN); + FindTaskCommand command = new FindTaskCommand(predicate); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } + + @Test + void findCommand_findTaskWithPriority_showTasksWithGivenPriority() { + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, Priority.HIGH, null, null); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 3); + List expectedTasks = List.of(WEEKLY_QUIZ, PROJECT_CAPSTONE, FYP_REPORT); + FindTaskCommand command = new FindTaskCommand(predicate); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } + + @Test + void findCommand_findTaskWithAssignee_showTasksWithGivenPriority() { + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, ALICE.getName().fullName, null); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 4); + List expectedTasks = List.of(PROJECT_CAPSTONE, FYP_REPORT, RETURN_BOOK, HOUSE_VISTING); + FindTaskCommand command = new FindTaskCommand(predicate); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } + + @Test + void findCommand_findTaskWithIsMarked_showsTasksWithGivenIsMarked() { + TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, Boolean.TRUE); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); + List expectedTasks = List.of(PROJECT_CAPSTONE, RETURN_BOOK); + FindTaskCommand command = new FindTaskCommand(predicate); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } + + @Test + void findCommand_findTaskWithMultipleProperties_showTasksWithGivenProperties() { + List keywords = List.of("Capstone"); + Date date = new Date("2022-04-01"); + TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), keywords, date, + Priority.HIGH, ALICE.getName().toString(), Boolean.TRUE); + expectedModel.updateFilteredTaskList(predicate); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 1); + List expectedTasks = List.of(PROJECT_CAPSTONE); + FindTaskCommand command = new FindTaskCommand(predicate); + + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(expectedTasks, model.getFilteredTaskList()); + } } diff --git a/src/test/java/manageezpz/testutil/TypicalTasks.java b/src/test/java/manageezpz/testutil/TypicalTasks.java index 21f1f9359ae..f9a60b6d14d 100644 --- a/src/test/java/manageezpz/testutil/TypicalTasks.java +++ b/src/test/java/manageezpz/testutil/TypicalTasks.java @@ -1,6 +1,7 @@ package manageezpz.testutil; import static manageezpz.logic.commands.CommandTestUtil.VALID_TASK_DESCRIPTION; +import static manageezpz.testutil.TypicalPersons.ALICE; import java.util.ArrayList; import java.util.Arrays; @@ -21,8 +22,16 @@ public class TypicalTasks { public static final Todo WEEKLY_QUIZ = new TodoBuilder().withDescription("Weekly Quiz").build(); public static final Deadline GET_DRINK = new DeadlineBuilder().withDescription("Get Drink") .withDate("2022-05-13").withTime("1800").build(); + public static final Deadline PROJECT_CAPSTONE = new DeadlineBuilder().withDescription("Project capstone") + .withDate("2022-04-01").withTime("2359").build(); + public static final Deadline FYP_REPORT = new DeadlineBuilder().withDescription("FYP Report").withDate("2024-05-02") + .withTime("2359").build(); public static final Event HOUSE_VISTING = new EventBuilder().withDescription("House Visiting") .withDate("2022-09-15").withStartTime("1800").withEndTime("2000").build(); + public static final Event MALAYSIA_BORDERS_OPEN = new EventBuilder().withDescription("Malaysia Borders open") + .withDate("2022-04-01").withStartTime("0000").withEndTime("2359").build(); + public static final Event CS2103_PRACTICAL_EXAM = new EventBuilder().withDescription("CS2103 Practical Exam") + .withDate("2022-04-16").withStartTime("1400").withEndTime("1600").build(); // Manually added - Task's details found in {@code CommandTestUtil} public static final Todo GET_A_DRINK = new TodoBuilder().withDescription(VALID_TASK_DESCRIPTION).build(); @@ -42,6 +51,23 @@ public static AddressBook getTypicalAddressBook() { } public static List getTypicalTask() { - return new ArrayList<>(Arrays.asList(READ_BOOK, RETURN_BOOK, GO_FOR_RUN, GET_HAIRCUT)); + // Set Priority + WEEKLY_QUIZ.setPriority("HIGH"); + PROJECT_CAPSTONE.setPriority("HIGH"); + FYP_REPORT.setPriority("HIGH"); + + // Set Assignee + RETURN_BOOK.addAssignees(ALICE); + PROJECT_CAPSTONE.addAssignees(ALICE); + FYP_REPORT.addAssignees(ALICE); + HOUSE_VISTING.addAssignees(ALICE); + + // Set marked + RETURN_BOOK.setTaskDone(); + PROJECT_CAPSTONE.setTaskDone(); + + return new ArrayList<>(Arrays.asList(WEEKLY_QUIZ, PROJECT_CAPSTONE, FYP_REPORT, READ_BOOK, RETURN_BOOK, + GO_FOR_RUN, GET_HAIRCUT, GET_A_DRINK, GET_DRINK, HOUSE_VISTING, MALAYSIA_BORDERS_OPEN, + CS2103_PRACTICAL_EXAM)); } } From fa33de41fd993bc61cf67ca50f815b33d6960882 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 20:43:38 +0800 Subject: [PATCH 258/507] Add test cases for TaskMultiplePredicate --- .../logic/commands/FindTaskCommand.java | 1 - .../manageezpz/logic/parser/CliSyntax.java | 1 - .../model/task/TaskMultiplePredicate.java | 1 - .../parser/FindTaskCommandParserTest.java | 1 - .../model/task/TaskMultiplePredicateTest.java | 300 ++++++++++++++++++ 5 files changed, 300 insertions(+), 4 deletions(-) create mode 100644 src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index 61195829773..87c6b76f48f 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -8,7 +8,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_IS_MARKED; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import java.util.function.Predicate; diff --git a/src/main/java/manageezpz/logic/parser/CliSyntax.java b/src/main/java/manageezpz/logic/parser/CliSyntax.java index f6421c6d17f..8f92b0a5e74 100644 --- a/src/main/java/manageezpz/logic/parser/CliSyntax.java +++ b/src/main/java/manageezpz/logic/parser/CliSyntax.java @@ -16,7 +16,6 @@ public class CliSyntax { public static final Prefix PREFIX_TODAY = new Prefix("today/"); public static final Prefix PREFIX_DATETIME = new Prefix("by/"); public static final Prefix PREFIX_TIME = new Prefix("at/"); - public static final Prefix PREFIX_TASK = new Prefix("task/"); public static final Prefix PREFIX_DATE = new Prefix("date/"); public static final Prefix PREFIX_PRIORITY = new Prefix("priority/"); public static final Prefix PREFIX_ASSIGNEES = new Prefix("assignees/"); diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 32c01b4ade2..95c2a607901 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -2,7 +2,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import java.util.List; diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index d9e1364928f..f94594e4e11 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -15,7 +15,6 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.logic.parser.CliSyntax.PREFIX_IS_MARKED; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java new file mode 100644 index 00000000000..17f1c888c7b --- /dev/null +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -0,0 +1,300 @@ +package manageezpz.model.task; + +import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TODO; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BENSON; +import static manageezpz.testutil.TypicalPersons.CARL; +import static manageezpz.testutil.TypicalPersons.DANIEL; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +import manageezpz.testutil.DeadlineBuilder; + +class TaskMultiplePredicateTest { + private static final String userInput = "Play Genshin Impact"; + private static final Deadline deadline = new DeadlineBuilder().withDescription(userInput) + .withDate("2022-04-01").withTime("0000").build(); + + @Test + void taskMultiplePredicate_equalThisObject_true() { + TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + null); + + // This -> true + assertTrue(predicateWithNoOptions.equals(predicateWithNoOptions)); + } + + @Test + void taskMultiplePredicate_equalTaskTypes() { + TaskMultiplePredicate predicateTaskType = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), null, + null, null, null, null); + TaskMultiplePredicate predicateTaskTypeSame = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), + null, null, null, null, null); + TaskMultiplePredicate predicateTaskTypeDifferent = new TaskMultiplePredicate(List.of(PREFIX_EVENT), + null, null, null, null, null); + + // Same TaskType -> true + assertTrue(predicateTaskType.equals(predicateTaskTypeSame)); + + // Different TaskType -> false + assertFalse(predicateTaskType.equals(predicateTaskTypeDifferent)); + } + + @Test + void taskMultiplePredicate_equalDescription() { + TaskMultiplePredicate predicateDescription = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word1"), null, null, null, + null); + TaskMultiplePredicate predicateDescriptionSame = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word1"), null, null, null, + null); + TaskMultiplePredicate predicateDescriptionDifferent = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word2"), null, null, null, + null); + + // Same Description -> true + assertTrue(predicateDescription.equals(predicateDescriptionSame)); + + // Different Description -> false + assertFalse(predicateDescription.equals(predicateDescriptionDifferent)); + } + + @Test + void taskMultiplePredicate_equalDate() { + TaskMultiplePredicate predicateDate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, new Date("1900-01-01"), null, null, null); + TaskMultiplePredicate predicateDateSame = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, new Date("1900-01-01"), null, null, null); + TaskMultiplePredicate predicateDateDifferent = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, new Date("1900-01-02"), null, + null, null); + + // Same date -> true + assertTrue(predicateDate.equals(predicateDateSame)); + + // Different date -> false + assertFalse(predicateDate.equals(predicateDateDifferent)); + } + + @Test + void taskMultiplePredicate_equalPriority() { + TaskMultiplePredicate predicatePriority = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, Priority.HIGH, null, null); + TaskMultiplePredicate predicatePrioritySame = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, Priority.HIGH, null, + null); + TaskMultiplePredicate predicatePriorityDifferent = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, Priority.LOW, null, + null); + + // Same priority -> true + assertTrue(predicatePriority.equals(predicatePrioritySame)); + + // Different priority -> false + assertFalse(predicatePriority.equals(predicatePriorityDifferent)); + } + + @Test + void taskMultiplePredicate_equalAssignee() { + TaskMultiplePredicate predicateAssignee = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, ALICE.getName().toString(), null); + TaskMultiplePredicate predicateAssigneeSame = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, + ALICE.getName().toString(), null); + TaskMultiplePredicate predicateAssigneeDifferent = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, + BENSON.getName().toString(), null); + + // Same person -> true + assertTrue(predicateAssignee.equals(predicateAssigneeSame)); + + // Different persons -> false + assertFalse(predicateAssignee.equals(predicateAssigneeDifferent)); + } + + @Test + void taskMultiplePredicate_equalIsMarked() { + TaskMultiplePredicate predicateIsMarked = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, Boolean.TRUE); + TaskMultiplePredicate predicateIsMarkedSame = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + Boolean.TRUE); + TaskMultiplePredicate predicateIsMarkedDifferent = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + Boolean.FALSE); + + // Same isMarked Boolean -> true + assertTrue(predicateIsMarked.equals(predicateIsMarkedSame)); + + // Different isMarked Boolean -> false + assertFalse(predicateIsMarked.equals(predicateIsMarkedDifferent)); + } + + @Test + void taskMultiplePredicate_containsTaskType_true() { + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), null, + null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_TODO, PREFIX_DEADLINE), + null, null, null, null, null); + assertTrue(predicateCombo2.test(deadline)); + + TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(List.of(PREFIX_TODO, PREFIX_DEADLINE, + PREFIX_EVENT), null, null, null, null, null); + assertTrue(predicateCombo3.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsTaskType_false() { + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, + null, null, null, null); + assertFalse(predicateCombo1.test(deadline)); + + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_EVENT, PREFIX_TODO), + null, null, null, null, null); + assertFalse(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsDescription_true() { + // Description not specified + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + // Only 1 word + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + List.of("Play"), null, null, null, null); + assertTrue(predicateCombo2.test(deadline)); + + // More than 1 word + TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + List.of("Genshin", "Impact"), null, null, null, null); + assertTrue(predicateCombo3.test(deadline)); + + // Mixed cases + TaskMultiplePredicate predicateCombo4 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + List.of("GeNshIn", "IMPact"), null, null, null, null); + assertTrue(predicateCombo4.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsDescription_false() { + // None of the words found + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + List.of("P1ay"), null, null, null, null); + assertFalse(predicateCombo1.test(deadline)); + + // No keywords same despite all other same + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), + List.of("P1ay"), new Date("2022-04-01"), Priority.NONE, null, Boolean.FALSE); + assertFalse(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsDate_true() { + // null date + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + // Same date + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, new Date("2022-04-01"), null, null, null); + assertTrue(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsDate_false() { + // Wrong date + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, new Date("2022-04-02"), null, null, null); + assertFalse(predicateCombo1.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsPriority_true() { + deadline.setPriority("HIGH"); + // Priority null + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + // Same priority + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, Priority.HIGH, null, null); + assertTrue(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsPriority_false() { + deadline.setPriority("HIGH"); + + // Different priority + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, Priority.LOW, null, null); + assertFalse(predicateCombo1.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsAssignee_true() { + deadline.addAssignees(ALICE); + deadline.addAssignees(BENSON); + deadline.addAssignees(CARL); + + // Assignee null + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + // Same assignee + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, ALICE.getName().toString(), null); + assertTrue(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsAssignee_false() { + deadline.addAssignees(ALICE); + deadline.addAssignees(BENSON); + deadline.addAssignees(CARL); + + // Different assignee + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, DANIEL.getName().toString(), null); + assertFalse(predicateCombo1.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsIsMarked_true() { + deadline.setTaskDone(); + + // Is Marked is null + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, null); + assertTrue(predicateCombo1.test(deadline)); + + // Is Marked is the same + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, Boolean.TRUE); + assertTrue(predicateCombo2.test(deadline)); + } + + @Test + void taskMultiplePredicate_containsIsMarked_false() { + deadline.setTaskDone(); + + // Is Marked boolean different + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + null, null, null, null, Boolean.FALSE); + assertFalse(predicateCombo1.test(deadline)); + } +} \ No newline at end of file From a0adbf60d8bdcf8b053e4e0430189ef3327c74dc Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 21:04:11 +0800 Subject: [PATCH 259/507] Clean code to follow coding standard --- .../logic/commands/FindTaskCommand.java | 10 ++-- .../logic/parser/FindTaskCommandParser.java | 5 +- .../logic/commands/FindTaskCommandTest.java | 58 ++++++++++++++----- .../parser/FindTaskCommandParserTest.java | 22 +++---- .../model/task/TaskMultiplePredicateTest.java | 2 +- .../manageezpz/testutil/TypicalTasks.java | 16 ----- 6 files changed, 65 insertions(+), 48 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index 87c6b76f48f..3906c95e82b 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -24,14 +24,13 @@ */ public class FindTaskCommand extends Command { public static final String COMMAND_WORD = "findTask"; - - private static final String TASK_OPTIONS = String.join(", ", PREFIX_TODO.toString(), + public static final String TASK_OPTIONS = String.join(", ", PREFIX_TODO.toString(), PREFIX_DEADLINE.toString(), PREFIX_EVENT.toString()); - private static final String TASK_PROPERTIES = String.join(", ", PREFIX_DESCRIPTION.toString(), + public static final String TASK_PROPERTIES = String.join(", ", PREFIX_DESCRIPTION.toString(), PREFIX_DATE.toString(), PREFIX_PRIORITY.toString(), PREFIX_ASSIGNEES.toString(), PREFIX_IS_MARKED.toString()); - private static final String NOTE = "NOTE: All task properties option must be filled"; - private static final String EXAMPLE = String.join(" ", COMMAND_WORD, + public static final String NOTE = "NOTE: All task properties option must be filled"; + public static final String EXAMPLE = String.join(" ", COMMAND_WORD, PREFIX_DEADLINE.toString(), "Finish TP", PREFIX_DATE.toString(), "2022-01-01"); public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all tasks that contains the properties specified.\n" @@ -39,7 +38,6 @@ public class FindTaskCommand extends Command { + "Task properties " + TASK_PROPERTIES + "\n" + NOTE + "\n" + EXAMPLE; - public static final String EMPTY_KEYWORD = "Keyword is empty\n"; public static final String INVALID_DATE = Date.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_PRIORITY = "Property should be NONE, LOW, MEDIUM, HIGH\n"; diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 37d33f6bfbd..94babceea05 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -27,13 +27,16 @@ public class FindTaskCommandParser implements Parser { private static final Prefix[] TASK_TYPES = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT}; private static final Prefix[] VALID_OPTIONS = {PREFIX_TODO, PREFIX_DEADLINE, PREFIX_EVENT, PREFIX_DATE, - PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; + PREFIX_DESCRIPTION, PREFIX_PRIORITY, PREFIX_ASSIGNEES, PREFIX_IS_MARKED}; private String errorMessage = ""; private boolean hasError = false; protected FindTaskCommandParser() {} + /** + * {@inheritDoc} + */ public FindTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, VALID_OPTIONS); diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 21cf5e286c4..1fd22814747 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.List; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import manageezpz.model.Model; @@ -38,14 +39,32 @@ class FindTaskCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); private Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + @BeforeEach + void setMoreProperties() { + // Set Priority + WEEKLY_QUIZ.setPriority("HIGH"); + PROJECT_CAPSTONE.setPriority("HIGH"); + FYP_REPORT.setPriority("HIGH"); + + // Set Assignee + RETURN_BOOK.addAssignees(ALICE); + PROJECT_CAPSTONE.addAssignees(ALICE); + FYP_REPORT.addAssignees(ALICE); + HOUSE_VISTING.addAssignees(ALICE); + + // Set marked + RETURN_BOOK.setTaskDone(); + PROJECT_CAPSTONE.setTaskDone(); + } + @Test void equals() { TaskMultiplePredicate firstPredicate = - new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, Collections.singletonList("Genshin"), - null, null, null, null); + new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + Collections.singletonList("Genshin"), null, null, null, null); TaskMultiplePredicate secondPredicate = - new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, Collections.singletonList("Impact"), - null, null, null, null); + new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + Collections.singletonList("Impact"), null, null, null, null); FindTaskCommand firstFindTaskCommand = new FindTaskCommand(firstPredicate); FindTaskCommand secondFindTaskCommand = new FindTaskCommand(secondPredicate); @@ -95,16 +114,29 @@ void findCommand_findSpecificTaskType_showTaskOfSpecificType() { @Test void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { - List keywords = List.of("Book"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, - keywords, null, null, null, null); - expectedModel.updateFilteredTaskList(predicate); - String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); - List expectedTasks = List.of(READ_BOOK, RETURN_BOOK); - FindTaskCommand command = new FindTaskCommand(predicate); + // Only 1 word + List keywords1 = List.of("Book"); + TaskMultiplePredicate predicate1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + keywords1, null, null, null, null); + expectedModel.updateFilteredTaskList(predicate1); + String expectedMessage1 = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); + List expectedTasks1 = List.of(READ_BOOK, RETURN_BOOK); + FindTaskCommand command = new FindTaskCommand(predicate1); + + assertCommandSuccess(command, model, expectedMessage1, expectedModel); + assertEquals(expectedTasks1, model.getFilteredTaskList()); + + // More than 1 words + List keywords2 = List.of("Book", "quiz"); + TaskMultiplePredicate predicate2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + keywords2, null, null, null, null); + expectedModel.updateFilteredTaskList(predicate2); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 3); + List expectedTasks2 = List.of(WEEKLY_QUIZ, READ_BOOK, RETURN_BOOK); + FindTaskCommand command2 = new FindTaskCommand(predicate2); - assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(expectedTasks, model.getFilteredTaskList()); + assertCommandSuccess(command2, model, expectedMessage, expectedModel); + assertEquals(expectedTasks2, model.getFilteredTaskList()); } @Test diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index f94594e4e11..6f957f4a8a3 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -46,7 +46,7 @@ class FindTaskCommandParserTest { private FindTaskCommandParser parser = new FindTaskCommandParser(); @Test - void FindTaskCommandParser_noArguments_findTaskCommand() { + void findTaskCommandParser_noArguments_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, null, null, null); @@ -56,7 +56,7 @@ void FindTaskCommandParser_noArguments_findTaskCommand() { } @Test - void FindTaskCommandParser_specificTaskType_findCommand() { + void findTaskCommandParser_specificTaskType_findCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, null, null, null, null); @@ -66,14 +66,14 @@ void FindTaskCommandParser_specificTaskType_findCommand() { } @Test - void FindTaskCommandParser_emptyDescription_throwsParseError() { + void findTaskCommandParser_emptyDescription_throwsParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); assertParseFailure(parser, userInput, EMPTY_DESCRIPTION_ERROR_MESSAGE); } @Test - void FindTaskCommandParser_withDescription_findTaskCommand() { + void findTaskCommandParser_withDescription_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), LIST_DESCRIPTIONS, null, @@ -84,14 +84,14 @@ void FindTaskCommandParser_withDescription_findTaskCommand() { } @Test - void FindTaskCommandParser_noDate_throwsParseException() { + void findTaskCommandParser_noDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString()); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @Test - void FindTaskCommandParser_invalidDate_throwsParseException() { + void findTaskCommandParser_invalidDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), INVALID_DATE); @@ -99,7 +99,7 @@ void FindTaskCommandParser_invalidDate_throwsParseException() { } @Test - void FindTaskCommandParser_todoWithDateOption_throwParseError() { + void findTaskCommandParser_todoWithDateOption_throwParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), PREFIX_DATE.toString(), VALID_DATE); @@ -107,7 +107,7 @@ void FindTaskCommandParser_todoWithDateOption_throwParseError() { } @Test - void FindTaskCommandParser_validDate_findTaskCommand() { + void findTaskCommandParser_validDate_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), VALID_DATE); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, new Date(VALID_DATE), null, null, null); @@ -150,7 +150,7 @@ void findTaskCommandParser_emptyAssignee_throwParseException() { } @Test - void findTaskCommandParser_haveAssignee_FindTaskCommand() { + void findTaskCommandParser_haveAssignee_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, @@ -176,7 +176,7 @@ void findTaskCommandParser_invalidBoolean_throwParseException() { } @Test - void findTaskCommandParser_validBoolean_FindTaskCommand() { + void findTaskCommandParser_validBoolean_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); @@ -186,7 +186,7 @@ void findTaskCommandParser_validBoolean_FindTaskCommand() { } @Test - void findTaskCommandParser_multipleArguments_FindTaskCommand() { + void findTaskCommandParser_multipleArguments_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DEADLINE.toString(), PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION, PREFIX_DATE.toString(), VALID_DATE, PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index 17f1c888c7b..1fd8a603f4e 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -297,4 +297,4 @@ void taskMultiplePredicate_containsIsMarked_false() { null, null, null, null, Boolean.FALSE); assertFalse(predicateCombo1.test(deadline)); } -} \ No newline at end of file +} diff --git a/src/test/java/manageezpz/testutil/TypicalTasks.java b/src/test/java/manageezpz/testutil/TypicalTasks.java index f9a60b6d14d..a332eff5693 100644 --- a/src/test/java/manageezpz/testutil/TypicalTasks.java +++ b/src/test/java/manageezpz/testutil/TypicalTasks.java @@ -1,7 +1,6 @@ package manageezpz.testutil; import static manageezpz.logic.commands.CommandTestUtil.VALID_TASK_DESCRIPTION; -import static manageezpz.testutil.TypicalPersons.ALICE; import java.util.ArrayList; import java.util.Arrays; @@ -51,21 +50,6 @@ public static AddressBook getTypicalAddressBook() { } public static List getTypicalTask() { - // Set Priority - WEEKLY_QUIZ.setPriority("HIGH"); - PROJECT_CAPSTONE.setPriority("HIGH"); - FYP_REPORT.setPriority("HIGH"); - - // Set Assignee - RETURN_BOOK.addAssignees(ALICE); - PROJECT_CAPSTONE.addAssignees(ALICE); - FYP_REPORT.addAssignees(ALICE); - HOUSE_VISTING.addAssignees(ALICE); - - // Set marked - RETURN_BOOK.setTaskDone(); - PROJECT_CAPSTONE.setTaskDone(); - return new ArrayList<>(Arrays.asList(WEEKLY_QUIZ, PROJECT_CAPSTONE, FYP_REPORT, READ_BOOK, RETURN_BOOK, GO_FOR_RUN, GET_HAIRCUT, GET_A_DRINK, GET_DRINK, HOUSE_VISTING, MALAYSIA_BORDERS_OPEN, CS2103_PRACTICAL_EXAM)); From 8972eaec089bfca643a7e30fc5384522af641082 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 21:18:36 +0800 Subject: [PATCH 260/507] Update User Guide for findTask command --- docs/UserGuide.md | 58 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cfa8a6aaeaf..4168a49eed3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -131,19 +131,51 @@ Format: `delete INDEX` Examples: * `delete 2` deletes the 2nd Task in the Task list. -### Locating Task by description or Date: `find` - -Find tasks based on the task description or date in the format of (DD-MM-YYYY). - -Format: -* `find task/ desc/TASK_DESCRIPTION` -* `find task/ date/DD-MM-YYYY` - -Examples: -* `find task/ desc/homework` -* `find date/02-02-2022` - -### Locating employees by name: +### Locating Task by multiple options: `findTask` + +Finds task(s) based on multiple conditions provided. + +#### Note: +* Arguments can be stacked together in any order. +* Task Type is optional. +* Any other invalid options not stated below will be ignored +* No options provided will list down all the tasks like listTask + +#### Task Type Available: +* `todo/`: Todos +* `deadline/`: Deadlines +* `event/`: Events + +#### Options : +* `desc/`: Description of the tasks +* `date/`: Date of the task in YYYY-MM-DD (Only for deadline and event) +* `priority/`: Priority of task. Only HIGH, MEDIUM, LOW and NONE +* `assignees/`: The assignees that was assigned to the task (Only one full name of assignee allowed) +* `isMarked/`: Whether the task is marked. Only true or false. + +#### Format: +* `findTask todo/` + * Find all todos +* `findTask deadline/` + * Find all deadlines +* `findTask event/` + * Find all events +* `findTask desc/[TASK_DESCRIPTIONS]` + * Finds all tasks which contain any of the words in [TASK_DESCRIPTION]. +* `findTask date/YYYY-MM-DD` + * Find all deadlines and events with the date +* `findTask priority/PRIORITY` + * Find all tasks with the given PRIORITY [HIGH, MEDIUM, LOW, NONE] +* `findTask assignees/ASSIGNEE` + * Find all tasks assignee to ASSIGNEE +* `findTask isMarked/BOOLEAN` + * Find all tasks that is already marked (true) or unmarked (false) + +#### Example: + * `findTask desc/homework` + * `findTask date/2022-04-16` + * `findTask desc/work priority/HIGH` + * `findTask deadlines/ desc/school date/2022-04-16 priority/HIGH assignees/Alex Yeo isMarked/true` ### Clearing all entries : `clear` From 94e9d84a4fa467eea0225127ff61aecd4ac05b54 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 21:37:06 +0800 Subject: [PATCH 261/507] Update test cases --- .../manageezpz/model/task/TaskMultiplePredicate.java | 10 ++-------- .../logic/parser/FindTaskCommandParserTest.java | 11 +++++++++++ .../model/task/TaskMultiplePredicateTest.java | 10 ++++++++++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 95c2a607901..402f297dfb9 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -96,6 +96,7 @@ private Date getDateFromTask(Task task) { } else if (task instanceof Event) { return ((Event) task).getDate(); } else { + assert false : "checkIfHasDate did not filter out the todo"; return null; } } @@ -121,7 +122,7 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof TaskMultiplePredicate) { TaskMultiplePredicate pre = (TaskMultiplePredicate) obj; - boolean isSameTaskTypes = isSameTaskTypes(pre.taskTypes); + boolean isSameTaskTypes = taskTypes.equals(pre.taskTypes); boolean isSameDescription = isSameDescription(pre.description); boolean isSameDate = isSameDate(pre.date); boolean isSamePriority = isSamePriority(pre.priority); @@ -134,13 +135,6 @@ public boolean equals(Object obj) { return false; } - private boolean isSameTaskTypes(List taskTypes) { - if (taskTypes != null) { - return taskTypes.equals(this.taskTypes); - } - return this.taskTypes == null; - } - private boolean isSameDescription(List description) { if (description != null) { return description.equals(this.description); diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 6f957f4a8a3..3dd6d2159bc 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -25,6 +25,7 @@ import manageezpz.commons.core.Messages; import manageezpz.logic.commands.FindTaskCommand; +import manageezpz.model.person.Name; import manageezpz.model.task.Date; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; @@ -38,6 +39,8 @@ class FindTaskCommandParserTest { FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); static final String EMPTY_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.EMPTY_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); + static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + Name.MESSAGE_CONSTRAINTS + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, @@ -149,6 +152,14 @@ void findTaskCommandParser_emptyAssignee_throwParseException() { assertParseFailure(parser, userInput, EMPTY_ASSIGNEE_COMMAND_MESSAGE); } + @Test + void findTaskCommandParser_invalidAssignee_findTaskCommand() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, + PREFIX_ASSIGNEES.toString(), "James&"); + + assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); + } + @Test void findTaskCommandParser_haveAssignee_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index 1fd8a603f4e..c9c196cae54 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -31,6 +31,16 @@ void taskMultiplePredicate_equalThisObject_true() { assertTrue(predicateWithNoOptions.equals(predicateWithNoOptions)); } + @Test + void taskMultiplePredicate_equalSomeOtherObject_false() { + Object otherObject = new Object(); + TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate( + TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + null); + + assertFalse(predicateWithNoOptions.equals(otherObject)); + } + @Test void taskMultiplePredicate_equalTaskTypes() { TaskMultiplePredicate predicateTaskType = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), null, From 6641e78e0bebe7ab5c97ed8238f4911c07cd3c91 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Mon, 28 Mar 2022 21:45:47 +0800 Subject: [PATCH 262/507] Remove equal method for listTask command --- .../manageezpz/logic/commands/ListTaskCommand.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ListTaskCommand.java b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java index 4c7b76fb2a9..25a9e66a001 100644 --- a/src/main/java/manageezpz/logic/commands/ListTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java @@ -21,16 +21,4 @@ public CommandResult execute(Model model) { return new CommandResult(MESSAGE_ALL_SUCCESS); } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof ListTaskCommand) { - return true; - } else { - return false; - } - } } From cd3bc11712c60f69e4430727b9dcfed28803601e Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 02:08:55 +0800 Subject: [PATCH 263/507] Add findEmployee command --- .../logic/commands/FindEmployeeCommand.java | 64 +++++++++++++ .../logic/parser/AddressBookParser.java | 4 + .../parser/FindEmployeeCommandParser.java | 94 +++++++++++++++++++ .../logic/parser/FindTaskCommandParser.java | 4 - .../model/person/PersonMultiplePredicate.java | 52 ++++++++++ .../commands/FindEmployeeCommandTest.java | 7 ++ .../parser/FindEmployeeCommandParserTest.java | 7 ++ .../person/PersonMultiplePredicateTest.java | 7 ++ 8 files changed, 235 insertions(+), 4 deletions(-) create mode 100644 src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java create mode 100644 src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java create mode 100644 src/main/java/manageezpz/model/person/PersonMultiplePredicate.java create mode 100644 src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java create mode 100644 src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java create mode 100644 src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java diff --git a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java new file mode 100644 index 00000000000..5a53d8ebaf3 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java @@ -0,0 +1,64 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; + +import java.util.function.Predicate; + +import manageezpz.commons.core.Messages; +import manageezpz.logic.commands.exceptions.CommandException; +import manageezpz.model.Model; +import manageezpz.model.person.PersonMultiplePredicate; + +/** + * The command to find employees based on the multiple properties given. + */ +public class FindEmployeeCommand extends Command { + public static final String COMMAND_WORD = "findEmployee"; + public static final String PERSON_PROPERTIES = String.join(", ", PREFIX_NAME.getPrefix(), + PREFIX_EMAIL.getPrefix(), PREFIX_PHONE.getPrefix()); + public static final String NOTE = ""; + public static final String EXAMPLE = ""; + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds all employees that contains the properties specified.\n" + + "Employee's properties " + PERSON_PROPERTIES + "\n" + + NOTE + "\n" + + EXAMPLE; + + private PersonMultiplePredicate predicate; + + /** + * Constructor for the find employee command. + * @param predicate The predicate with multiple search terms to search for employees + */ + public FindEmployeeCommand(PersonMultiplePredicate predicate) { + this.predicate = predicate; + } + + /** + * {@inheritDoc} + */ + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + model.updateFilteredPersonList(predicate); + return new CommandResult( + String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } else if (obj instanceof FindEmployeeCommand) { + Predicate otherPredicate = ((FindEmployeeCommand) obj).predicate; + return predicate.equals(otherPredicate); + } + return false; + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index bfe256b2ef7..cd4955f5741 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -17,6 +17,7 @@ import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.commands.ExitCommand; +import manageezpz.logic.commands.FindEmployeeCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; @@ -72,6 +73,9 @@ public Command parseCommand(String userInput) throws ParseException { case FindTaskCommand.COMMAND_WORD: return new FindTaskCommandParser().parse(arguments); + case FindEmployeeCommand.COMMAND_WORD: + return new FindEmployeeCommandParser().parse(arguments); + case ListCommand.COMMAND_WORD: return new ListCommandParser().parse(arguments); diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java new file mode 100644 index 00000000000..11119ff63ae --- /dev/null +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -0,0 +1,94 @@ +package manageezpz.logic.parser; + +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; + +import java.util.Arrays; +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.logic.commands.FindEmployeeCommand; +import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; +import manageezpz.model.person.PersonMultiplePredicate; +import manageezpz.model.person.Phone; + +/** + * Checks if the options are valid for finding employees. + */ +public class FindEmployeeCommandParser implements Parser { + private static final Prefix[] PERSON_PROPERTIES = {PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL}; + + private String errorMessage = ""; + private boolean hasError = false; + + /** + * {@inheritDoc} + */ + @Override + public FindEmployeeCommand parse(String userInput) throws ParseException { + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(userInput, PERSON_PROPERTIES); + + List names = getPersonName(argMultimap); + String phone = getPersonPhone(argMultimap); + String email = getPersonEmail(argMultimap); + + if (hasError) { + throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); + } else { + return new FindEmployeeCommand(new PersonMultiplePredicate(names, phone, email)); + } + } + + private List getPersonName(ArgumentMultimap argMultimap) { + List names = null; + if (argMultimap.isPrefixExist(PREFIX_NAME)) { + String nameArgumentString = argMultimap.getValue(PREFIX_NAME).get().trim(); + String[] nameArguments = nameArgumentString.split("\\s+"); + boolean isValid = Arrays.stream(nameArguments).allMatch(name -> Name.isValidName(name)); + if (!isValid) { + addErrorMessage(Name.MESSAGE_CONSTRAINTS); + } else { + names = Arrays.asList(nameArguments); + } + } + return names; + } + + private String getPersonPhone(ArgumentMultimap argMultimap) { + String phone = null; + if (argMultimap.isPrefixExist(PREFIX_PHONE)) { + phone = argMultimap.getValue(PREFIX_PHONE).get(); + boolean isValidPhone = Phone.isValidPhone(phone); + if (!isValidPhone) { + addErrorMessage(Phone.MESSAGE_CONSTRAINTS); + phone = null; + } + } + return phone; + } + + private String getPersonEmail(ArgumentMultimap argMultimap) { + String email = null; + if (argMultimap.isPrefixExist(PREFIX_EMAIL)) { + email = argMultimap.getValue(PREFIX_EMAIL).get(); + boolean isEmailValid = Email.isValidEmail(email); + if (!isEmailValid) { + addErrorMessage(Email.MESSAGE_CONSTRAINTS); + email = null; + } + } + return email; + } + + /** + * Collates all the errors and shows the UI after processing all properties. + * @param errorMessage Error message from each checking to be added to the overall error message. + */ + private void addErrorMessage(String errorMessage) { + hasError = true; + this.errorMessage = this.errorMessage + errorMessage; + } +} diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 94babceea05..3e41181794c 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -122,10 +122,6 @@ private Date getTaskDate(ArgumentMultimap argMultiMap) { } private boolean checkIfDateIsValid(String dateString) { - if (dateString.isEmpty()) { - addErrorMessage(FindTaskCommand.INVALID_DATE); - return false; - } if (!Date.isValidDate(dateString)) { addErrorMessage(Date.MESSAGE_CONSTRAINTS + "\n"); return false; diff --git a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java new file mode 100644 index 00000000000..7e3927a8090 --- /dev/null +++ b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java @@ -0,0 +1,52 @@ +package manageezpz.model.person; + +import java.util.List; +import java.util.function.Predicate; + +import manageezpz.commons.util.StringUtil; + +/** + * Checks if the options are valid for finding tasks. + */ +public class PersonMultiplePredicate implements Predicate { + private final List name; + private final String phone; + private final String email; + + /** + * The constructor for the multipredicate to search for employees with the states options. + * @param name Name of the employee + * @param phone Phone number of the employee + * @param email Email of the employee. + */ + public PersonMultiplePredicate(List name, String phone, String email) { + this.name = name; + this.phone = phone; + this.email = email; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean test(Person person) { + boolean hasName = name != null ? checkIfNameExists(person) : true; + boolean hasPhone = phone != null ? checkIfPhoneExists(person) : true; + boolean hasEmail = email != null ? checkIfEmailExists(person) : true; + + return hasName && hasPhone && hasEmail; + } + + private boolean checkIfNameExists(Person person) { + return name.stream().anyMatch(name -> StringUtil.containsWordIgnoreCase(person.getName().fullName, name)); + } + + private boolean checkIfPhoneExists(Person person) { + Phone phone = new Phone(this.phone); + return person.getPhone().equals(phone); + } + + private boolean checkIfEmailExists(Person person) { + return person.getEmail().equals(email); + } +} diff --git a/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java new file mode 100644 index 00000000000..294c343bcaf --- /dev/null +++ b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java @@ -0,0 +1,7 @@ +package manageezpz.logic.commands; + +import static org.junit.jupiter.api.Assertions.*; + +class FindEmployeeCommandTest { + +} \ No newline at end of file diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java new file mode 100644 index 00000000000..ed1a65f06cc --- /dev/null +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -0,0 +1,7 @@ +package manageezpz.logic.parser; + +import static org.junit.jupiter.api.Assertions.*; + +class FindEmployeeCommandParserTest { + +} \ No newline at end of file diff --git a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java new file mode 100644 index 00000000000..d6b73eea6e8 --- /dev/null +++ b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java @@ -0,0 +1,7 @@ +package manageezpz.model.person; + +import static org.junit.jupiter.api.Assertions.*; + +class PersonMultiplePredicateTest { + +} \ No newline at end of file From b35b8d8d74d77593574cef679715254abba1e92e Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 03:06:57 +0800 Subject: [PATCH 264/507] Change find task command to only find up to 1 task type --- docs/UserGuide.md | 16 ++- .../logic/commands/FindTaskCommand.java | 3 +- .../logic/parser/FindTaskCommandParser.java | 47 ++++---- .../model/task/TaskMultiplePredicate.java | 40 +++---- .../logic/commands/CommandTestUtil.java | 2 +- .../logic/commands/FindTaskCommandTest.java | 26 ++--- .../logic/parser/AddressBookParserTest.java | 2 +- .../parser/FindTaskCommandParserTest.java | 30 +++-- .../model/task/TaskMultiplePredicateTest.java | 107 ++++++++---------- 9 files changed, 143 insertions(+), 130 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4168a49eed3..a87e1a77bf6 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -138,8 +138,9 @@ Finds task(s) based on multiple conditions provided. #### Note: * Arguments can be stacked together in any order. * Task Type is optional. +* However, only one task type is allowed. * Any other invalid options not stated below will be ignored -* No options provided will list down all the tasks like listTask +* No options provided will list down all the tasks like `listTask` #### Task Type Available: * `todo/`: Todos @@ -149,9 +150,9 @@ Finds task(s) based on multiple conditions provided. #### Options : * `desc/`: Description of the tasks * `date/`: Date of the task in YYYY-MM-DD (Only for deadline and event) -* `priority/`: Priority of task. Only HIGH, MEDIUM, LOW and NONE +* `priority/`: Priority of task. Only `HIGH`, `MEDIUM`, `LOW` and `NONE` * `assignees/`: The assignees that was assigned to the task (Only one full name of assignee allowed) -* `isMarked/`: Whether the task is marked. Only true or false. +* `isMarked/`: Whether the task is marked. Only `true` or `false`. #### Format: * `findTask todo/` @@ -169,7 +170,14 @@ Finds task(s) based on multiple conditions provided. * `findTask assignees/ASSIGNEE` * Find all tasks assignee to ASSIGNEE * `findTask isMarked/BOOLEAN` - * Find all tasks that is already marked (true) or unmarked (false) + * Find all tasks that is already marked (`true`) or unmarked (`false`) + * Finds the task with a description that contains all of the following options: + * Description which contains the word “School”, + * date 2022-04-16, + * high priority, + * assigned to Alex Yeoh + * and is marked. + #### Example: * `findTask desc/homework` diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index 3906c95e82b..bd5e2f94e5e 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -38,12 +38,13 @@ public class FindTaskCommand extends Command { + "Task properties " + TASK_PROPERTIES + "\n" + NOTE + "\n" + EXAMPLE; - public static final String EMPTY_KEYWORD = "Keyword is empty\n"; + public static final String Invalid_KEYWORD = "Keyword is empty\n"; public static final String INVALID_DATE = Date.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_PRIORITY = "Property should be NONE, LOW, MEDIUM, HIGH\n"; public static final String TODO_AND_DATE_OPTION_TOGETHER = "Together and Date option are together\n"; public static final String INVALID_BOOLEAN = "Boolean should be true or false\n"; public static final String EMPTY_ASSIGNEE = "Assignee is empty\n"; + public static final String MORE_THAN_ONE_TASK_TYPE = "Only one task type is allowed\n"; private TaskMultiplePredicate predicate; diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 94babceea05..b487b13da1b 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -18,6 +18,7 @@ import manageezpz.logic.parser.exceptions.ParseException; import manageezpz.model.person.Name; import manageezpz.model.task.Date; +import manageezpz.model.task.Description; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; @@ -40,50 +41,66 @@ protected FindTaskCommandParser() {} public FindTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, VALID_OPTIONS); - List taskTypes = getPrefix(argMultiMap); + Prefix taskType = getPrefix(argMultiMap); List descriptions = getDescriptions(argMultiMap); Date date = getTaskDate(argMultiMap); Priority priority = getTaskPriority(argMultiMap); String assignee = getAssignee(argMultiMap); Boolean isMarked = getIsMarked(argMultiMap); - checkIfTodoAndDateTogether(argMultiMap, taskTypes); + checkIfTodoAndDateTogether(argMultiMap, taskType); if (hasError) { errorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); } else { return new FindTaskCommand(new TaskMultiplePredicate( - taskTypes, descriptions, date, priority, assignee, isMarked)); + taskType, descriptions, date, priority, assignee, isMarked)); } } - private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, List taskTypes) { - boolean isContainsTodo = taskTypes.contains(PREFIX_TODO); + private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, Prefix taskTypes) { + boolean isContainsTodo = taskTypes instanceof Prefix && taskTypes.equals(PREFIX_TODO); if (isContainsTodo && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { addErrorMessage(FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER); } } - private List getPrefix(ArgumentMultimap argMultiMap) { + private Prefix getPrefix(ArgumentMultimap argMultiMap) { List currentPrefixes = Arrays.stream(TASK_TYPES) .filter(prefix -> argMultiMap.isPrefixExist(prefix)).collect(Collectors.toList()); - return currentPrefixes; + if (currentPrefixes.size() > 1) { + addErrorMessage(FindTaskCommand.MORE_THAN_ONE_TASK_TYPE); + return null; + } else if (currentPrefixes.size() < 1) { + return null; + } else { + return currentPrefixes.get(0); + } + } private List getDescriptions(ArgumentMultimap argMultiMap) { List keyword = null; if (argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { - String trimmedArgs = argMultiMap.getValue(PREFIX_DESCRIPTION).get().trim(); - boolean isArgEmpty = checkIfArgsEmpty(trimmedArgs, FindTaskCommand.EMPTY_KEYWORD); - if (!isArgEmpty) { - String[] taskAssignees = trimmedArgs.split("\\s+"); + String description = argMultiMap.getValue(PREFIX_DESCRIPTION).get(); + boolean isValid = checkIfValidDescription(description); + if (isValid) { + String[] taskAssignees = description.split("\\s+"); keyword = Arrays.asList(taskAssignees); } } return keyword; } + private boolean checkIfValidDescription(String description) { + boolean result = Description.isValidDescription(description); + if (!result) { + addErrorMessage(FindTaskCommand.Invalid_KEYWORD); + } + return result; + } + private String getAssignee(ArgumentMultimap argMultiMap) { String assignee = null; if (argMultiMap.isPrefixExist(PREFIX_ASSIGNEES)) { @@ -146,14 +163,6 @@ private Priority getTaskPriority(ArgumentMultimap argMultiMap) { return priority; } - private boolean checkIfArgsEmpty(String trimmedArgs, String emptyKeyword) { - if (trimmedArgs.isEmpty()) { - addErrorMessage(emptyKeyword); - return true; - } - return false; - } - private boolean checkIfEitherTrueOrFalse(String booleanString) { if (booleanString.equals("true") || booleanString.equals("false")) { return true; diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 402f297dfb9..89fb278980d 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -14,9 +14,8 @@ * The predicate to search tasks based on the properties given. */ public class TaskMultiplePredicate implements Predicate { - public static final List NO_SPECIFIC_TASK_TYPE = List.of(); - private final List taskTypes; + private final Prefix taskType; private final List description; private final Date date; private final Priority priority; @@ -25,7 +24,7 @@ public class TaskMultiplePredicate implements Predicate { /** * The constructor for predicate. - * @param taskTypes All the task type to search + * @param taskType The task type to search * @param description The description to search * @param date The date of either the deadline or event * @param priority The priority of the task @@ -33,9 +32,9 @@ public class TaskMultiplePredicate implements Predicate { * @param isMarked Whether the task is marked */ public TaskMultiplePredicate( - List taskTypes, List description, Date date, Priority priority, String assignee, + Prefix taskType, List description, Date date, Priority priority, String assignee, Boolean isMarked) { - this.taskTypes = taskTypes; + this.taskType = taskType; this.description = description; this.date = date; this.priority = priority; @@ -48,7 +47,7 @@ public TaskMultiplePredicate( */ @Override public boolean test(Task task) { - boolean hasTaskType = !taskTypes.equals(List.of()) ? checkIfHasSpecificTaskType(task) : true; + boolean hasTaskType = taskType != null ? checkIfHasSpecificTaskType(task) : true; boolean hasKeyword = description != null ? checkIfHasKeywords(task) : true; boolean hasDate = date != null ? checkIfHasDate(task) : true; boolean hasPriority = priority != null ? checkIfHasPriority(task) : true; @@ -59,21 +58,11 @@ public boolean test(Task task) { } private boolean checkIfHasSpecificTaskType(Task task) { - boolean isTaskTodo = false; - boolean isTaskDeadline = false; - boolean isTaskEvent = false; - - for (Prefix prefix : taskTypes) { - if (PREFIX_TODO.equals(prefix)) { - isTaskTodo = task instanceof Todo; - } else if (PREFIX_DEADLINE.equals(prefix)) { - isTaskDeadline = task instanceof Deadline; - } else if (PREFIX_EVENT.equals(prefix)) { - isTaskEvent = task instanceof Event; - } - } + boolean isTodo = taskType.equals(PREFIX_TODO) && task instanceof Todo; + boolean isDeadline = taskType.equals(PREFIX_DEADLINE) && task instanceof Deadline; + boolean isEvent = taskType.equals(PREFIX_EVENT) && task instanceof Event; - return isTaskTodo || isTaskDeadline || isTaskEvent; + return isTodo || isDeadline || isEvent; } private boolean checkIfHasKeywords(Task task) { @@ -122,19 +111,26 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof TaskMultiplePredicate) { TaskMultiplePredicate pre = (TaskMultiplePredicate) obj; - boolean isSameTaskTypes = taskTypes.equals(pre.taskTypes); + boolean isSameTaskType = isSameTaskType(pre.taskType); boolean isSameDescription = isSameDescription(pre.description); boolean isSameDate = isSameDate(pre.date); boolean isSamePriority = isSamePriority(pre.priority); boolean isSameAssignee = isSameAssignee(pre.assignee); boolean isSameIsMarked = isSameIsMarked(pre.isMarked); - return isSameTaskTypes + return isSameTaskType && isSameDescription && isSameDate && isSamePriority && isSameAssignee && isSameIsMarked; } return false; } + private boolean isSameTaskType(Prefix taskType) { + if (taskType != null) { + return taskType.equals(this.taskType); + } + return this.taskType == null; + } + private boolean isSameDescription(List description) { if (description != null) { return description.equals(this.description); diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 8f9531dbcf2..b1385dacf18 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -142,7 +142,7 @@ public static void showTaskAtIndex(Model model, Index targetIndex) { Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); final String[] splitName = task.getDescription().toString().split("\\s+"); TaskMultiplePredicate predicate = new TaskMultiplePredicate( - List.of(), + null, Arrays.asList(splitName[0]), null, null, diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 1fd22814747..3c326c76db7 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -60,11 +60,9 @@ void setMoreProperties() { @Test void equals() { TaskMultiplePredicate firstPredicate = - new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, - Collections.singletonList("Genshin"), null, null, null, null); + new TaskMultiplePredicate(null, Collections.singletonList("Genshin"), null, null, null, null); TaskMultiplePredicate secondPredicate = - new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, - Collections.singletonList("Impact"), null, null, null, null); + new TaskMultiplePredicate(null, Collections.singletonList("Impact"), null, null, null, null); FindTaskCommand firstFindTaskCommand = new FindTaskCommand(firstPredicate); FindTaskCommand secondFindTaskCommand = new FindTaskCommand(secondPredicate); @@ -88,8 +86,8 @@ void equals() { @Test void findCommand_findAllTasks_showAllTasks() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, - null, null, null, null, null); + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, + null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, expectedModel.getFilteredTaskList().size()); @@ -101,7 +99,7 @@ void findCommand_findAllTasks_showAllTasks() { @Test void findCommand_findSpecificTaskType_showTaskOfSpecificType() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, null, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 6); @@ -116,7 +114,7 @@ void findCommand_findSpecificTaskType_showTaskOfSpecificType() { void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { // Only 1 word List keywords1 = List.of("Book"); - TaskMultiplePredicate predicate1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate1 = new TaskMultiplePredicate(null, keywords1, null, null, null, null); expectedModel.updateFilteredTaskList(predicate1); String expectedMessage1 = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); @@ -128,7 +126,7 @@ void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { // More than 1 words List keywords2 = List.of("Book", "quiz"); - TaskMultiplePredicate predicate2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate2 = new TaskMultiplePredicate(null, keywords2, null, null, null, null); expectedModel.updateFilteredTaskList(predicate2); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 3); @@ -142,7 +140,7 @@ void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { @Test void findCommand_findTaskWithDate_showTasksWithGivenDate() { Date date = new Date("2022-04-01"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, date, null, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); @@ -155,7 +153,7 @@ void findCommand_findTaskWithDate_showTasksWithGivenDate() { @Test void findCommand_findTaskWithPriority_showTasksWithGivenPriority() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, Priority.HIGH, null, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 3); @@ -168,7 +166,7 @@ void findCommand_findTaskWithPriority_showTasksWithGivenPriority() { @Test void findCommand_findTaskWithAssignee_showTasksWithGivenPriority() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, null, ALICE.getName().fullName, null); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 4); @@ -181,7 +179,7 @@ void findCommand_findTaskWithAssignee_showTasksWithGivenPriority() { @Test void findCommand_findTaskWithIsMarked_showsTasksWithGivenIsMarked() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, null, null, Boolean.TRUE); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); @@ -196,7 +194,7 @@ void findCommand_findTaskWithIsMarked_showsTasksWithGivenIsMarked() { void findCommand_findTaskWithMultipleProperties_showTasksWithGivenProperties() { List keywords = List.of("Capstone"); Date date = new Date("2022-04-01"); - TaskMultiplePredicate predicate = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), keywords, date, + TaskMultiplePredicate predicate = new TaskMultiplePredicate(PREFIX_DEADLINE, keywords, date, Priority.HIGH, ALICE.getName().toString(), Boolean.TRUE); expectedModel.updateFilteredTaskList(predicate); String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 1); diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index ddf153eb3d2..acaa0d01b8a 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -77,7 +77,7 @@ public void parseCommand_findTask() throws Exception { + " " + PREFIX_DESCRIPTION + keywords.stream().collect(Collectors.joining(" "))); assertEquals(new FindTaskCommand( - new TaskMultiplePredicate(List.of(), keywords, null, null, null, null)), + new TaskMultiplePredicate(null, keywords, null, null, null, null)), command); } diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 3dd6d2159bc..2fb7917efbe 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -19,8 +19,6 @@ import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; -import java.util.List; - import org.junit.jupiter.api.Test; import manageezpz.commons.core.Messages; @@ -32,7 +30,7 @@ class FindTaskCommandParserTest { static final String EMPTY_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.EMPTY_KEYWORD + FindTaskCommand.MESSAGE_USAGE); + FindTaskCommand.Invalid_KEYWORD + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, @@ -45,13 +43,15 @@ class FindTaskCommandParserTest { FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindTaskCommand.MESSAGE_USAGE); + static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindTaskCommand.MORE_THAN_ONE_TASK_TYPE + FindTaskCommand.MESSAGE_USAGE); private FindTaskCommandParser parser = new FindTaskCommandParser(); @Test void findTaskCommandParser_noArguments_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -61,13 +61,21 @@ void findTaskCommandParser_noArguments_findTaskCommand() { @Test void findTaskCommandParser_specificTaskType_findCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); assertParseSuccess(parser, userInput, expectedCommand); } + @Test + void findTaskCommandParser_multipleTaskType_throwsParseError() { + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), + PREFIX_DEADLINE.toString()); + + assertParseFailure(parser, userInput, MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE); + } + @Test void findTaskCommandParser_emptyDescription_throwsParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); @@ -79,7 +87,7 @@ void findTaskCommandParser_emptyDescription_throwsParseError() { void findTaskCommandParser_withDescription_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), LIST_DESCRIPTIONS, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, LIST_DESCRIPTIONS, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -112,7 +120,7 @@ void findTaskCommandParser_todoWithDateOption_throwParseError() { @Test void findTaskCommandParser_validDate_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), VALID_DATE); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, new Date(VALID_DATE), null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -138,7 +146,7 @@ void findTaskCommandParser_invalidPriority_throwParseException() { void findTaskCommandParser_validPriority_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), VALID_PRIORITY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -164,7 +172,7 @@ void findTaskCommandParser_invalidAssignee_findTaskCommand() { void findTaskCommandParser_haveAssignee_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, VALID_NAME_AMY, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -189,7 +197,7 @@ void findTaskCommandParser_invalidBoolean_throwParseException() { @Test void findTaskCommandParser_validBoolean_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(), null, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -202,7 +210,7 @@ void findTaskCommandParser_multipleArguments_findTaskCommand() { PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION, PREFIX_DATE.toString(), VALID_DATE, PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), LIST_DESCRIPTIONS, + TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_DEADLINE, LIST_DESCRIPTIONS, new Date(VALID_DATE), Priority.valueOf(VALID_PRIORITY), VALID_NAME_AMY, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index c9c196cae54..7af85cf7ba0 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -23,9 +23,8 @@ class TaskMultiplePredicateTest { @Test void taskMultiplePredicate_equalThisObject_true() { - TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, - null); + TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, + null, null, null, null); // This -> true assertTrue(predicateWithNoOptions.equals(predicateWithNoOptions)); @@ -34,20 +33,19 @@ void taskMultiplePredicate_equalThisObject_true() { @Test void taskMultiplePredicate_equalSomeOtherObject_false() { Object otherObject = new Object(); - TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, - null); + TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, + null, null, null, null); assertFalse(predicateWithNoOptions.equals(otherObject)); } @Test void taskMultiplePredicate_equalTaskTypes() { - TaskMultiplePredicate predicateTaskType = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), null, + TaskMultiplePredicate predicateTaskType = new TaskMultiplePredicate(PREFIX_DEADLINE, null, null, null, null, null); - TaskMultiplePredicate predicateTaskTypeSame = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), + TaskMultiplePredicate predicateTaskTypeSame = new TaskMultiplePredicate(PREFIX_DEADLINE, null, null, null, null, null); - TaskMultiplePredicate predicateTaskTypeDifferent = new TaskMultiplePredicate(List.of(PREFIX_EVENT), + TaskMultiplePredicate predicateTaskTypeDifferent = new TaskMultiplePredicate(PREFIX_EVENT, null, null, null, null, null); // Same TaskType -> true @@ -60,13 +58,13 @@ void taskMultiplePredicate_equalTaskTypes() { @Test void taskMultiplePredicate_equalDescription() { TaskMultiplePredicate predicateDescription = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word1"), null, null, null, + null, List.of("Word1"), null, null, null, null); TaskMultiplePredicate predicateDescriptionSame = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word1"), null, null, null, + null, List.of("Word1"), null, null, null, null); TaskMultiplePredicate predicateDescriptionDifferent = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, List.of("Word2"), null, null, null, + null, List.of("Word2"), null, null, null, null); // Same Description -> true @@ -78,12 +76,12 @@ void taskMultiplePredicate_equalDescription() { @Test void taskMultiplePredicate_equalDate() { - TaskMultiplePredicate predicateDate = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateDate = new TaskMultiplePredicate(null, null, new Date("1900-01-01"), null, null, null); - TaskMultiplePredicate predicateDateSame = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateDateSame = new TaskMultiplePredicate(null, null, new Date("1900-01-01"), null, null, null); TaskMultiplePredicate predicateDateDifferent = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, new Date("1900-01-02"), null, + null, null, new Date("1900-01-02"), null, null, null); // Same date -> true @@ -95,13 +93,13 @@ TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, new Date("1900-01-02"), null, @Test void taskMultiplePredicate_equalPriority() { - TaskMultiplePredicate predicatePriority = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicatePriority = new TaskMultiplePredicate(null, null, null, Priority.HIGH, null, null); TaskMultiplePredicate predicatePrioritySame = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, Priority.HIGH, null, + null, null, null, Priority.HIGH, null, null); TaskMultiplePredicate predicatePriorityDifferent = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, Priority.LOW, null, + null, null, null, Priority.LOW, null, null); // Same priority -> true @@ -113,13 +111,13 @@ void taskMultiplePredicate_equalPriority() { @Test void taskMultiplePredicate_equalAssignee() { - TaskMultiplePredicate predicateAssignee = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateAssignee = new TaskMultiplePredicate(null, null, null, null, ALICE.getName().toString(), null); TaskMultiplePredicate predicateAssigneeSame = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, + null, null, null, null, ALICE.getName().toString(), null); TaskMultiplePredicate predicateAssigneeDifferent = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, + null, null, null, null, BENSON.getName().toString(), null); // Same person -> true @@ -131,13 +129,13 @@ void taskMultiplePredicate_equalAssignee() { @Test void taskMultiplePredicate_equalIsMarked() { - TaskMultiplePredicate predicateIsMarked = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateIsMarked = new TaskMultiplePredicate(null, null, null, null, null, Boolean.TRUE); TaskMultiplePredicate predicateIsMarkedSame = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + null, null, null, null, null, Boolean.TRUE); TaskMultiplePredicate predicateIsMarkedDifferent = new TaskMultiplePredicate( - TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, null, null, null, null, + null, null, null, null, null, Boolean.FALSE); // Same isMarked Boolean -> true @@ -148,50 +146,45 @@ void taskMultiplePredicate_equalIsMarked() { } @Test - void taskMultiplePredicate_containsTaskType_true() { - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), null, - null, null, null, null); + void taskMultiplePredicate_containsCorrectTaskType_true() { + // Task type not specified + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, + null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_TODO, PREFIX_DEADLINE), + // Task type same + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(PREFIX_DEADLINE, null, null, null, null, null); assertTrue(predicateCombo2.test(deadline)); - - TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(List.of(PREFIX_TODO, PREFIX_DEADLINE, - PREFIX_EVENT), null, null, null, null, null); - assertTrue(predicateCombo3.test(deadline)); } @Test - void taskMultiplePredicate_containsTaskType_false() { - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(List.of(PREFIX_TODO), null, - null, null, null, null); - assertFalse(predicateCombo1.test(deadline)); - - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_EVENT, PREFIX_TODO), + void taskMultiplePredicate_containsCorrectTaskType_false() { + // Task type different + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); - assertFalse(predicateCombo2.test(deadline)); + assertFalse(predicateCombo1.test(deadline)); } @Test void taskMultiplePredicate_containsDescription_true() { // Description not specified - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); // Only 1 word - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, List.of("Play"), null, null, null, null); assertTrue(predicateCombo2.test(deadline)); // More than 1 word - TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(null, List.of("Genshin", "Impact"), null, null, null, null); assertTrue(predicateCombo3.test(deadline)); // Mixed cases - TaskMultiplePredicate predicateCombo4 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo4 = new TaskMultiplePredicate(null, List.of("GeNshIn", "IMPact"), null, null, null, null); assertTrue(predicateCombo4.test(deadline)); } @@ -199,12 +192,12 @@ void taskMultiplePredicate_containsDescription_true() { @Test void taskMultiplePredicate_containsDescription_false() { // None of the words found - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, List.of("P1ay"), null, null, null, null); assertFalse(predicateCombo1.test(deadline)); // No keywords same despite all other same - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(List.of(PREFIX_DEADLINE), + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(PREFIX_DEADLINE, List.of("P1ay"), new Date("2022-04-01"), Priority.NONE, null, Boolean.FALSE); assertFalse(predicateCombo2.test(deadline)); } @@ -212,12 +205,12 @@ void taskMultiplePredicate_containsDescription_false() { @Test void taskMultiplePredicate_containsDate_true() { // null date - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); // Same date - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, null, new Date("2022-04-01"), null, null, null); assertTrue(predicateCombo2.test(deadline)); } @@ -225,7 +218,7 @@ void taskMultiplePredicate_containsDate_true() { @Test void taskMultiplePredicate_containsDate_false() { // Wrong date - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, new Date("2022-04-02"), null, null, null); assertFalse(predicateCombo1.test(deadline)); } @@ -234,12 +227,12 @@ void taskMultiplePredicate_containsDate_false() { void taskMultiplePredicate_containsPriority_true() { deadline.setPriority("HIGH"); // Priority null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); // Same priority - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, null, null, Priority.HIGH, null, null); assertTrue(predicateCombo2.test(deadline)); } @@ -249,7 +242,7 @@ void taskMultiplePredicate_containsPriority_false() { deadline.setPriority("HIGH"); // Different priority - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, Priority.LOW, null, null); assertFalse(predicateCombo1.test(deadline)); } @@ -261,12 +254,12 @@ void taskMultiplePredicate_containsAssignee_true() { deadline.addAssignees(CARL); // Assignee null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); // Same assignee - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, null, null, null, ALICE.getName().toString(), null); assertTrue(predicateCombo2.test(deadline)); } @@ -278,7 +271,7 @@ void taskMultiplePredicate_containsAssignee_false() { deadline.addAssignees(CARL); // Different assignee - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, DANIEL.getName().toString(), null); assertFalse(predicateCombo1.test(deadline)); } @@ -288,12 +281,12 @@ void taskMultiplePredicate_containsIsMarked_true() { deadline.setTaskDone(); // Is Marked is null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, null); assertTrue(predicateCombo1.test(deadline)); // Is Marked is the same - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, null, null, null, null, Boolean.TRUE); assertTrue(predicateCombo2.test(deadline)); } @@ -303,7 +296,7 @@ void taskMultiplePredicate_containsIsMarked_false() { deadline.setTaskDone(); // Is Marked boolean different - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(TaskMultiplePredicate.NO_SPECIFIC_TASK_TYPE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, Boolean.FALSE); assertFalse(predicateCombo1.test(deadline)); } From ce0d84a86d43db13d03da4b39085f386ca25fcc9 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 05:20:19 +0800 Subject: [PATCH 265/507] Add find employee command Currently there is no command to find specific employees. As we are expanding our app with employees, we need a command to facilitate searching for employees. Let's: * Create a command to find employees * Include options to allow users to search based on employee properties --- docs/UserGuide.md | 23 +++ .../logic/commands/FindEmployeeCommand.java | 10 +- .../parser/FindEmployeeCommandParser.java | 9 +- .../logic/parser/FindTaskCommandParser.java | 7 +- .../person/NameContainsKeywordsPredicate.java | 31 ---- .../model/person/PersonMultiplePredicate.java | 43 ++++- .../AddEmployeeCommandIntegrationTest.java | 4 +- .../logic/commands/ClearCommandTest.java | 6 +- .../logic/commands/CommandTestUtil.java | 5 +- .../commands/DeleteEmployeeCommandTest.java | 4 +- .../logic/commands/EditCommandTest.java | 4 +- .../commands/FindEmployeeCommandTest.java | 100 ++++++++++- .../logic/commands/FindTaskCommandTest.java | 6 +- .../logic/commands/ListCommandTest.java | 4 +- .../parser/FindEmployeeCommandParserTest.java | 114 +++++++++++- .../manageezpz/model/AddressBookTest.java | 4 +- .../manageezpz/model/ModelManagerTest.java | 5 +- .../NameContainsKeywordsPredicateTest.java | 75 -------- .../person/PersonMultiplePredicateTest.java | 169 +++++++++++++++++- .../storage/JsonAddressBookStorageTest.java | 4 +- .../JsonSerializableAddressBookTest.java | 2 +- .../storage/StorageManagerTest.java | 4 +- .../manageezpz/testutil/TypicalPersons.java | 2 +- .../manageezpz/testutil/TypicalTasks.java | 2 +- 24 files changed, 487 insertions(+), 150 deletions(-) delete mode 100644 src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java delete mode 100644 src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4168a49eed3..d73d46ccb6b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -79,6 +79,29 @@ Examples: * `addEmployee n/John Doe p/98765432 e/johnd@example.com` * `addEmployee p/98754123 n/Betsy Crowe e/betsycrowe@example.com` +### Finding employees: `findEmployee` + +Finds employees that have all of the options as entered. + +#### Note: +* Options can be stacked together in any order. +* No options entered will result in all employees list out like the `listEmployee` command. + +#### Format: +* `findEmployee n/NAMES` + * Finds all employees which has their name contain any of the words in `NAMES` +* `findEmployee p/PHONE_NUMBER` + * Find employees with the exact phone number +* `findEmployee e/EMAIL` + * Finds employees with the exact email + +#### Examples: +* `findEmployee n/Alex Yeoh` +* `findEmployee p/65162727` +* `findEmployee e/dcsdcr@nus.edu.sg` +* `findEmployee n/Alex Yeo p/65162727 e/alexyeo@google.com` + + ### Adding a Task: `addTodo`, `addEvent`, `addDeadline` Adds a Task into the Task list. diff --git a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java index 5a53d8ebaf3..53a9aad5510 100644 --- a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java @@ -10,7 +10,10 @@ import manageezpz.commons.core.Messages; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; +import manageezpz.model.person.Email; +import manageezpz.model.person.Name; import manageezpz.model.person.PersonMultiplePredicate; +import manageezpz.model.person.Phone; /** * The command to find employees based on the multiple properties given. @@ -21,11 +24,14 @@ public class FindEmployeeCommand extends Command { PREFIX_EMAIL.getPrefix(), PREFIX_PHONE.getPrefix()); public static final String NOTE = ""; public static final String EXAMPLE = ""; - public static final String MESSAGE_USAGE = COMMAND_WORD + - ": Finds all employees that contains the properties specified.\n" + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds all employees that contains the properties specified.\n" + "Employee's properties " + PERSON_PROPERTIES + "\n" + NOTE + "\n" + EXAMPLE; + public static final String INVALID_NAME = Name.MESSAGE_CONSTRAINTS + "\n"; + public static final String INVALD_PHONE = Phone.MESSAGE_CONSTRAINTS + "\n"; + public static final String INVALID_EMAIL = Email.MESSAGE_CONSTRAINTS + "\n"; private PersonMultiplePredicate predicate; diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java index 11119ff63ae..10a494f7c44 100644 --- a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -36,7 +36,8 @@ public FindEmployeeCommand parse(String userInput) throws ParseException { String email = getPersonEmail(argMultimap); if (hasError) { - throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); + throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + errorMessage + FindEmployeeCommand.MESSAGE_USAGE)); } else { return new FindEmployeeCommand(new PersonMultiplePredicate(names, phone, email)); } @@ -49,7 +50,7 @@ private List getPersonName(ArgumentMultimap argMultimap) { String[] nameArguments = nameArgumentString.split("\\s+"); boolean isValid = Arrays.stream(nameArguments).allMatch(name -> Name.isValidName(name)); if (!isValid) { - addErrorMessage(Name.MESSAGE_CONSTRAINTS); + addErrorMessage(FindEmployeeCommand.INVALID_NAME); } else { names = Arrays.asList(nameArguments); } @@ -63,7 +64,7 @@ private String getPersonPhone(ArgumentMultimap argMultimap) { phone = argMultimap.getValue(PREFIX_PHONE).get(); boolean isValidPhone = Phone.isValidPhone(phone); if (!isValidPhone) { - addErrorMessage(Phone.MESSAGE_CONSTRAINTS); + addErrorMessage(FindEmployeeCommand.INVALD_PHONE); phone = null; } } @@ -76,7 +77,7 @@ private String getPersonEmail(ArgumentMultimap argMultimap) { email = argMultimap.getValue(PREFIX_EMAIL).get(); boolean isEmailValid = Email.isValidEmail(email); if (!isEmailValid) { - addErrorMessage(Email.MESSAGE_CONSTRAINTS); + addErrorMessage(FindEmployeeCommand.INVALID_EMAIL); email = null; } } diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 3e41181794c..12b60486ef7 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -32,8 +32,6 @@ public class FindTaskCommandParser implements Parser { private String errorMessage = ""; private boolean hasError = false; - protected FindTaskCommandParser() {} - /** * {@inheritDoc} */ @@ -50,8 +48,9 @@ public FindTaskCommand parse(String args) throws ParseException { checkIfTodoAndDateTogether(argMultiMap, taskTypes); if (hasError) { - errorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, errorMessage)); + String finalErrorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; + errorMessage = ""; + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, finalErrorMessage)); } else { return new FindTaskCommand(new TaskMultiplePredicate( taskTypes, descriptions, date, priority, assignee, isMarked)); diff --git a/src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java b/src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java deleted file mode 100644 index 89d1a9b9982..00000000000 --- a/src/main/java/manageezpz/model/person/NameContainsKeywordsPredicate.java +++ /dev/null @@ -1,31 +0,0 @@ -package manageezpz.model.person; - -import java.util.List; -import java.util.function.Predicate; - -import manageezpz.commons.util.StringUtil; - -/** - * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. - */ -public class NameContainsKeywordsPredicate implements Predicate { - private final List keywords; - - public NameContainsKeywordsPredicate(List keywords) { - this.keywords = keywords; - } - - @Override - public boolean test(Person person) { - return keywords.stream() - .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(person.getName().fullName, keyword)); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof NameContainsKeywordsPredicate // instanceof handles nulls - && keywords.equals(((NameContainsKeywordsPredicate) other).keywords)); // state check - } - -} diff --git a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java index 7e3927a8090..73318671873 100644 --- a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java +++ b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java @@ -34,7 +34,7 @@ public boolean test(Person person) { boolean hasPhone = phone != null ? checkIfPhoneExists(person) : true; boolean hasEmail = email != null ? checkIfEmailExists(person) : true; - return hasName && hasPhone && hasEmail; + return hasName && hasPhone && hasEmail; } private boolean checkIfNameExists(Person person) { @@ -47,6 +47,47 @@ private boolean checkIfPhoneExists(Person person) { } private boolean checkIfEmailExists(Person person) { + Email email = new Email(this.email); return person.getEmail().equals(email); } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } else if (other instanceof PersonMultiplePredicate) { + PersonMultiplePredicate otherPredicate = (PersonMultiplePredicate) other; + boolean isNameEquals = checkIfNameEquals(otherPredicate.name); + boolean isPhoneEquals = checIfPhoneEquals(otherPredicate.phone); + boolean isEmailEquals = checkIfEmailEquals(otherPredicate.email); + + return isNameEquals && isPhoneEquals && isEmailEquals; + } else { + return false; + } + } + + private boolean checkIfNameEquals(List name) { + if (name != null) { + return name.equals(this.name); + } else { + return this.name == null; + } + } + + private boolean checIfPhoneEquals(String phone) { + if (phone != null) { + return phone.equals(this.phone); + } else { + return this.phone == null; + } + } + + private boolean checkIfEmailEquals(String email) { + if (email != null) { + return email.equals(this.email); + } else { + return this.email == null; + } + } } diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandIntegrationTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandIntegrationTest.java index f6ad16ff209..7e11415c3ce 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandIntegrationTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandIntegrationTest.java @@ -2,7 +2,7 @@ import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -22,7 +22,7 @@ public class AddEmployeeCommandIntegrationTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); } @Test diff --git a/src/test/java/manageezpz/logic/commands/ClearCommandTest.java b/src/test/java/manageezpz/logic/commands/ClearCommandTest.java index 7fd0f0f5484..6a203af3de2 100644 --- a/src/test/java/manageezpz/logic/commands/ClearCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ClearCommandTest.java @@ -1,7 +1,7 @@ package manageezpz.logic.commands; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import org.junit.jupiter.api.Test; @@ -22,8 +22,8 @@ public void execute_emptyAddressBook_success() { @Test public void execute_nonEmptyAddressBook_success() { - Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + Model expectedModel = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); expectedModel.setAddressBook(new AddressBook()); assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 8f9531dbcf2..f0ee1221054 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -17,8 +17,8 @@ import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.AddressBook; import manageezpz.model.Model; -import manageezpz.model.person.NameContainsKeywordsPredicate; import manageezpz.model.person.Person; +import manageezpz.model.person.PersonMultiplePredicate; import manageezpz.model.task.Task; import manageezpz.model.task.TaskMultiplePredicate; import manageezpz.testutil.EditPersonDescriptorBuilder; @@ -127,7 +127,8 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { Person person = model.getFilteredPersonList().get(targetIndex.getZeroBased()); final String[] splitName = person.getName().fullName.split("\\s+"); - model.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); + model.updateFilteredPersonList(new PersonMultiplePredicate(Arrays.asList(splitName[0]), null, + null)); assertEquals(1, model.getFilteredPersonList().size()); } diff --git a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java index 7c63911f270..f46c38edcf6 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java @@ -5,7 +5,7 @@ import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -24,7 +24,7 @@ */ public class DeleteEmployeeCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { diff --git a/src/test/java/manageezpz/logic/commands/EditCommandTest.java b/src/test/java/manageezpz/logic/commands/EditCommandTest.java index 6ea039f7c54..642d8a720f5 100644 --- a/src/test/java/manageezpz/logic/commands/EditCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditCommandTest.java @@ -9,7 +9,7 @@ import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -31,7 +31,7 @@ */ public class EditCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { diff --git a/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java index 294c343bcaf..706728863ed 100644 --- a/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java @@ -1,7 +1,103 @@ package manageezpz.logic.commands; -import static org.junit.jupiter.api.Assertions.*; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BENSON; +import static manageezpz.testutil.TypicalPersons.CARL; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +import manageezpz.commons.core.Messages; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; +import manageezpz.model.person.PersonMultiplePredicate; class FindEmployeeCommandTest { + private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + + @Test + void equals() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("alice"), null, null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("bob"), null, null); + + FindEmployeeCommand command1 = new FindEmployeeCommand(predicate1); + FindEmployeeCommand command2 = new FindEmployeeCommand(predicate2); + + // Test ownself -> true + assertTrue(command1.equals(command1)); + + // Test same values -> true + PersonMultiplePredicate predicate1Copy = new PersonMultiplePredicate(List.of("alice"), null, null); + FindEmployeeCommand command1Copy = new FindEmployeeCommand(predicate1Copy); + assertTrue(command1.equals(command1Copy)); + + // Some other object -> false + assertFalse(command1.equals("False")); + + // null -> false + assertFalse(command1.equals(null)); + + // Different predicate -> false + assertFalse(command1.equals(command2)); + } + + @Test + void findEmployeeCommand_noOptions_showAllEmployees() { + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, null); + expectedModel.updateFilteredPersonList(predicate); + List expectedPeople = getTypicalAddressBookEmployees().getPersonList(); + String message = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 7); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + + assertCommandSuccess(command, model, message, expectedModel); + assertEquals(expectedPeople, model.getFilteredPersonList()); + } + + @Test + void findEmployeeCommand_withNames_showEmployeesWithNames() { + PersonMultiplePredicate predicate = new PersonMultiplePredicate(List.of("Alice", "Benson"), null, + null); + expectedModel.updateFilteredPersonList(predicate); + List expectedPeople = List.of(ALICE, BENSON); + String message = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 2); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + + assertCommandSuccess(command, model, message, expectedModel); + assertEquals(expectedPeople, model.getFilteredPersonList()); + } + + @Test + void findEmployeeCommand_withPhone_showEmployeeWithPhone() { + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, ALICE.getPhone().toString(), + null); + expectedModel.updateFilteredPersonList(predicate); + List expectedPeople = List.of(ALICE); + String message = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 1); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + + assertCommandSuccess(command, model, message, expectedModel); + assertEquals(expectedPeople, model.getFilteredPersonList()); + } + + @Test + void findEmployeeCommand_withEmail_showEmployeeWithEmail() { + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, + CARL.getEmail().toString()); + expectedModel.updateFilteredPersonList(predicate); + List expectedPeople = List.of(CARL); + String message = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 1); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); -} \ No newline at end of file + assertCommandSuccess(command, model, message, expectedModel); + assertEquals(expectedPeople, model.getFilteredPersonList()); + } +} diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 1fd22814747..84ec8620a67 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -15,7 +15,7 @@ import static manageezpz.testutil.TypicalTasks.READ_BOOK; import static manageezpz.testutil.TypicalTasks.RETURN_BOOK; import static manageezpz.testutil.TypicalTasks.WEEKLY_QUIZ; -import static manageezpz.testutil.TypicalTasks.getTypicalAddressBook; +import static manageezpz.testutil.TypicalTasks.getTypicalAddressBookTasks; import static manageezpz.testutil.TypicalTasks.getTypicalTask; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -36,8 +36,8 @@ import manageezpz.model.task.TaskMultiplePredicate; class FindTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - private Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBookTasks(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBookTasks(), new UserPrefs()); @BeforeEach void setMoreProperties() { diff --git a/src/test/java/manageezpz/logic/commands/ListCommandTest.java b/src/test/java/manageezpz/logic/commands/ListCommandTest.java index 61fdf262e41..7981b7e1915 100644 --- a/src/test/java/manageezpz/logic/commands/ListCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListCommandTest.java @@ -3,7 +3,7 @@ import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.logic.commands.CommandTestUtil.showTaskAtIndex; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; -import static manageezpz.testutil.TypicalTasks.getTypicalAddressBook; +import static manageezpz.testutil.TypicalTasks.getTypicalAddressBookTasks; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -22,7 +22,7 @@ public class ListCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBookTasks(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); } diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index ed1a65f06cc..2f2bfe123cf 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -1,7 +1,117 @@ package manageezpz.logic.parser; -import static org.junit.jupiter.api.Assertions.*; +import static manageezpz.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_AMY; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_AMY; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; +import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +import manageezpz.commons.core.Messages; +import manageezpz.logic.commands.FindEmployeeCommand; +import manageezpz.model.person.PersonMultiplePredicate; class FindEmployeeCommandParserTest { + private static final String INVALID_NAME_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindEmployeeCommand.INVALID_NAME + FindEmployeeCommand.MESSAGE_USAGE); + private static final String INVALID_PHONE_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindEmployeeCommand.INVALD_PHONE + FindEmployeeCommand.MESSAGE_USAGE); + private static final String INVALID_EMAIL_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindEmployeeCommand.INVALID_EMAIL + FindEmployeeCommand.MESSAGE_USAGE); + + private FindEmployeeCommandParser parser = new FindEmployeeCommandParser(); + + @Test + void findEmployeeCommandParser_noOptions_findCommand() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, null); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + + assertParseSuccess(parser, userInput, command); + } + + @Test + void findEmployeeCommandParser_noName_throwsParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_NAME.getPrefix()); + assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); + } + + @Test + void findEmployeeCommandParser_invalidNamesUsed_throwParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_NAME.getPrefix(), VALID_NAME_AMY, "James&"); + assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); + } + + @Test + void findEmployeeCommandParser_validNamesUsed_findCommand() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_NAME.getPrefix(), VALID_NAME_AMY); + List names = List.of((VALID_NAME_AMY).split(" ")); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, null, null); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + assertParseSuccess(parser, userInput, command); + } + + @Test + void findEmployeeCommandParser_emptyPhone_throwParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_PHONE.getPrefix()); + assertParseFailure(parser, userInput, INVALID_PHONE_MESSAGE); + } + + @Test + void findEmployeeCommandParser_invalidPhone_throwParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_PHONE.getPrefix(), "1800-200-200"); + assertParseFailure(parser, userInput, INVALID_PHONE_MESSAGE); + } + + @Test + void findEmployeeCommandParse_validPhone_findCommand() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_PHONE.getPrefix(), + VALID_PHONE_AMY); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, VALID_PHONE_AMY, null); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + assertParseSuccess(parser, userInput, command); + } + + @Test + void findEmployeeCommandParser_emptyEmail_throwParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_EMAIL.getPrefix()); + assertParseFailure(parser, userInput, INVALID_EMAIL_MESSAGE); + } + + @Test + void findEmployeeCommandParser_invalidEmail_throwParseException() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, + PREFIX_EMAIL.getPrefix(), "Booby!Yahoo"); + assertParseFailure(parser, userInput, INVALID_EMAIL_MESSAGE); + } + + @Test + void findEmployeeCommandParse_validEmail_findCommand() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_EMAIL.getPrefix(), + VALID_EMAIL_AMY); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, VALID_EMAIL_AMY); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + assertParseSuccess(parser, userInput, command); + } -} \ No newline at end of file + @Test + void findEmployeeCommandParse_multipleOptions_findCommand() { + String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_NAME.getPrefix(), + VALID_NAME_AMY, PREFIX_EMAIL.getPrefix(), VALID_EMAIL_AMY, PREFIX_PHONE.getPrefix(), VALID_PHONE_AMY); + List names = List.of((VALID_NAME_AMY).split(" ")); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, VALID_PHONE_AMY, VALID_EMAIL_AMY); + FindEmployeeCommand command = new FindEmployeeCommand(predicate); + assertParseSuccess(parser, userInput, command); + } +} diff --git a/src/test/java/manageezpz/model/AddressBookTest.java b/src/test/java/manageezpz/model/AddressBookTest.java index f28f0802941..e2b4642394a 100644 --- a/src/test/java/manageezpz/model/AddressBookTest.java +++ b/src/test/java/manageezpz/model/AddressBookTest.java @@ -2,7 +2,7 @@ import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.ALICE; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import static manageezpz.testutil.TypicalTasks.READ_BOOK; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -39,7 +39,7 @@ public void resetData_null_throwsNullPointerException() { @Test public void resetData_withValidReadOnlyAddressBook_replacesData() { - AddressBook newData = getTypicalAddressBook(); + AddressBook newData = getTypicalAddressBookEmployees(); addressBook.resetData(newData); assertEquals(newData, addressBook); } diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index c3c72750832..b997ee2b84d 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -20,7 +20,7 @@ import org.junit.jupiter.api.Test; import manageezpz.commons.core.GuiSettings; -import manageezpz.model.person.NameContainsKeywordsPredicate; +import manageezpz.model.person.PersonMultiplePredicate; import manageezpz.testutil.AddressBookBuilder; public class ModelManagerTest { @@ -123,7 +123,8 @@ public void equals() { // different filteredList -> returns false String[] keywords = ALICE.getName().fullName.split("\\s+"); - modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(keywords))); + modelManager.updateFilteredPersonList(new PersonMultiplePredicate(Arrays.asList(keywords), null, + null)); assertFalse(modelManager.equals(new ModelManager(addressBook, userPrefs))); // resets modelManager to initial state for upcoming tests diff --git a/src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java deleted file mode 100644 index d78e50ee5bb..00000000000 --- a/src/test/java/manageezpz/model/person/NameContainsKeywordsPredicateTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package manageezpz.model.person; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import manageezpz.testutil.PersonBuilder; - -public class NameContainsKeywordsPredicateTest { - - @Test - public void equals() { - List firstPredicateKeywordList = Collections.singletonList("first"); - List secondPredicateKeywordList = Arrays.asList("first", "second"); - - NameContainsKeywordsPredicate firstPredicate = new NameContainsKeywordsPredicate(firstPredicateKeywordList); - NameContainsKeywordsPredicate secondPredicate = new NameContainsKeywordsPredicate(secondPredicateKeywordList); - - // same object -> returns true - assertTrue(firstPredicate.equals(firstPredicate)); - - // same values -> returns true - NameContainsKeywordsPredicate firstPredicateCopy = new NameContainsKeywordsPredicate(firstPredicateKeywordList); - assertTrue(firstPredicate.equals(firstPredicateCopy)); - - // different types -> returns false - assertFalse(firstPredicate.equals(1)); - - // null -> returns false - assertFalse(firstPredicate.equals(null)); - - // different person -> returns false - assertFalse(firstPredicate.equals(secondPredicate)); - } - - @Test - public void test_nameContainsKeywords_returnsTrue() { - // One keyword - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); - - // Multiple keywords - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Alice", "Bob")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); - - // Only one matching keyword - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Bob", "Carol")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Carol").build())); - - // Mixed-case keywords - predicate = new NameContainsKeywordsPredicate(Arrays.asList("aLIce", "bOB")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); - } - - @Test - public void test_nameDoesNotContainKeywords_returnsFalse() { - // Zero keywords - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.emptyList()); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").build())); - - // Non-matching keyword - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Carol")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice Bob").build())); - - // Keywords match phone, email and address, but does not match name - predicate = new NameContainsKeywordsPredicate(Arrays.asList("12345", "alice@email.com")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") - .withEmail("alice@email.com").build())); - } -} diff --git a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java index d6b73eea6e8..8a582a719fa 100644 --- a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java @@ -1,7 +1,172 @@ package manageezpz.model.person; -import static org.junit.jupiter.api.Assertions.*; +import static manageezpz.testutil.TypicalPersons.ALICE; +import static manageezpz.testutil.TypicalPersons.BENSON; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.junit.jupiter.api.Test; class PersonMultiplePredicateTest { + @Test + void personMultiplePredicate_equalsOwnObject_true() { + Object object = new Object(); + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + + // Equals own object -> true + assertTrue(predicate1.equals(predicate1)); + } + + @Test + void personalMultiplePredicate_equalsOtherObject_false() { + Object object = new Object(); + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + + // Some other object -> false + assertFalse(predicate1.equals(object)); + } + + @Test + void personalMultiplePredicate_equalsNull_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + + // null -> false + assertFalse(predicate1.equals(null)); + } + + @Test + void personalMultiplePredicate_equalsWithAllNullValue_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, null); + + // Same values -> true + assertTrue(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithSameNames_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("Alice"), null, null); + + // Same values -> true + assertTrue(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithDifferentNames_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("Benson"), null, null); + + // Same values -> true + assertFalse(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithSamePhone_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, ALICE.getPhone().toString(), + null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, ALICE.getPhone().toString(), + null); + + // Same values -> true + assertTrue(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithDifferentPhone_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, ALICE.getPhone().toString(), + null); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, BENSON.getPhone().toString(), + null); + + // Same values -> true + assertFalse(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithSameEmail_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, + ALICE.getEmail().toString()); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, + ALICE.getEmail().toString()); + + // Same values -> true + assertTrue(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_equalsWithDifferentEmail_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, + ALICE.getEmail().toString()); + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, + BENSON.getEmail().toString()); + + // Same values -> true + assertFalse(predicate1.equals(predicate2)); + } + + @Test + void personalMultiplePredicate_noOptionsSpecified_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + + assertTrue(predicate1.test(ALICE)); + } + + @Test + void personalMultiplePredicate_sameName_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); + assertTrue(predicate1.test(ALICE)); + + // Test with different mix of caps + PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("AlIcE"), null, null); + assertTrue(predicate2.test(ALICE)); + + // More than 1 keyword + PersonMultiplePredicate predicate3 = new PersonMultiplePredicate(List.of("alice", "benson"), null, + null); + assertTrue(predicate3.test(ALICE)); + } + + @Test + void personalMultiplePredicate_differentName_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Al1ce"), null, null); + assertFalse(predicate1.test(ALICE)); + } + + @Test + void personalMultiplePredicate_samePhone_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, + ALICE.getPhone().toString(), null); + assertTrue(predicate1.test(ALICE)); + } + + @Test + void personalMultiplePredicate_differentPhone_false() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, BENSON.getPhone().toString(), + null); + assertFalse(predicate1.test(ALICE)); + } + + @Test + void personalMultiplePredicate_sameEmail_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, + ALICE.getEmail().toString()); + assertTrue(predicate1.test(ALICE)); + } + + @Test + void personalMultiplePredicate_differentName_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, + BENSON.getEmail().toString()); + assertFalse(predicate1.test(ALICE)); + } -} \ No newline at end of file + @Test + void personalMultiplePredicate_multipleOptions_true() { + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("alice"), + ALICE.getPhone().toString(), ALICE.getEmail().toString()); + assertTrue(predicate1.test(ALICE)); + } +} diff --git a/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java index d0158569b48..a08b585d7ce 100644 --- a/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/manageezpz/storage/JsonAddressBookStorageTest.java @@ -4,7 +4,7 @@ import static manageezpz.testutil.TypicalPersons.ALICE; import static manageezpz.testutil.TypicalPersons.HOON; import static manageezpz.testutil.TypicalPersons.IDA; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -63,7 +63,7 @@ public void readAddressBook_invalidAndValidPersonAddressBook_throwDataConversion @Test public void readAndSaveAddressBook_allInOrder_success() throws Exception { Path filePath = testFolder.resolve("TempAddressBook.json"); - AddressBook original = getTypicalAddressBook(); + AddressBook original = getTypicalAddressBookEmployees(); JsonAddressBookStorage jsonAddressBookStorage = new JsonAddressBookStorage(filePath); // Save in new file and read back diff --git a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java index 50d478b8b54..96439d77cd9 100644 --- a/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/manageezpz/storage/JsonSerializableAddressBookTest.java @@ -24,7 +24,7 @@ public class JsonSerializableAddressBookTest { public void toModelType_typicalPersonsFile_success() throws Exception { JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, JsonSerializableAddressBook.class).get(); - AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); + AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBookEmployees(); AddressBook addressBookFromFile = dataFromFile.toModelType(); assertEquals(addressBookFromFile, typicalPersonsAddressBook); } diff --git a/src/test/java/manageezpz/storage/StorageManagerTest.java b/src/test/java/manageezpz/storage/StorageManagerTest.java index f3b24b2ca5f..cab9a75b9f8 100644 --- a/src/test/java/manageezpz/storage/StorageManagerTest.java +++ b/src/test/java/manageezpz/storage/StorageManagerTest.java @@ -1,6 +1,6 @@ package manageezpz.storage; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBook; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -54,7 +54,7 @@ public void addressBookReadSave() throws Exception { * {@link JsonAddressBookStorage} class. * More extensive testing of UserPref saving/reading is done in {@link JsonAddressBookStorageTest} class. */ - AddressBook original = getTypicalAddressBook(); + AddressBook original = getTypicalAddressBookEmployees(); storageManager.saveAddressBook(original); ReadOnlyAddressBook retrieved = storageManager.readAddressBook().get(); assertEquals(original, new AddressBook(retrieved)); diff --git a/src/test/java/manageezpz/testutil/TypicalPersons.java b/src/test/java/manageezpz/testutil/TypicalPersons.java index 22acecea4c7..fdb6957c04c 100644 --- a/src/test/java/manageezpz/testutil/TypicalPersons.java +++ b/src/test/java/manageezpz/testutil/TypicalPersons.java @@ -53,7 +53,7 @@ private TypicalPersons() {} // prevents instantiation /** * Returns an {@code AddressBook} with all the typical persons. */ - public static AddressBook getTypicalAddressBook() { + public static AddressBook getTypicalAddressBookEmployees() { AddressBook ab = new AddressBook(); for (Person person : getTypicalPersons()) { ab.addPerson(person); diff --git a/src/test/java/manageezpz/testutil/TypicalTasks.java b/src/test/java/manageezpz/testutil/TypicalTasks.java index a332eff5693..d3a684b4978 100644 --- a/src/test/java/manageezpz/testutil/TypicalTasks.java +++ b/src/test/java/manageezpz/testutil/TypicalTasks.java @@ -41,7 +41,7 @@ private TypicalTasks() {} // prevents instantiation /** * Returns an {@code AddressBook} with all the typical tasks. */ - public static AddressBook getTypicalAddressBook() { + public static AddressBook getTypicalAddressBookTasks() { AddressBook ab = new AddressBook(); for (Task task : getTypicalTask()) { ab.addTask(task); From 4b3ef5937dcc5bbd49cc8946865b743dd9d15d9b Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 05:39:38 +0800 Subject: [PATCH 266/507] Add list employee command There is no list command to list all the employees. As we are moving to employees, we need a command to facilitate listing all the commands. Let's implement a listEmployee command to list all the employees. --- docs/UserGuide.md | 7 +++++ .../logic/commands/ListEmployeesCommand.java | 24 +++++++++++++++ .../logic/parser/AddressBookParser.java | 4 +++ .../commands/ListEmployeesCommandTest.java | 30 +++++++++++++++++++ .../manageezpz/testutil/TypicalPersons.java | 2 +- 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java create mode 100644 src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d73d46ccb6b..804e23c76b0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -101,6 +101,13 @@ Finds employees that have all of the options as entered. * `findEmployee e/dcsdcr@nus.edu.sg` * `findEmployee n/Alex Yeo p/65162727 e/alexyeo@google.com` +### Listing all employees : `listEmployees` + +Shows a list of all employees in the address book. + +#### Format: +* `listEmployees` + ### Adding a Task: `addTodo`, `addEvent`, `addDeadline` diff --git a/src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java b/src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java new file mode 100644 index 00000000000..02065b40175 --- /dev/null +++ b/src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java @@ -0,0 +1,24 @@ +package manageezpz.logic.commands; + +import static java.util.Objects.requireNonNull; + +import manageezpz.model.Model; + +/** + * Lists all persons in the address book to the user. + */ +public class ListEmployeesCommand extends Command { + public static final String COMMAND_WORD = "listEmployees"; + public static final String MESSAGE_ALL_SUCCESS = "Listed all Employees"; + + /** + * {@inheritDoc} + */ + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + model.updateFilteredPersonList(model.PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(MESSAGE_ALL_SUCCESS); + } +} diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index cd4955f5741..9c598448798 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -21,6 +21,7 @@ import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; import manageezpz.logic.commands.ListCommand; +import manageezpz.logic.commands.ListEmployeesCommand; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.TagTaskPriorityCommand; @@ -79,6 +80,9 @@ public Command parseCommand(String userInput) throws ParseException { case ListCommand.COMMAND_WORD: return new ListCommandParser().parse(arguments); + case ListEmployeesCommand.COMMAND_WORD: + return new ListEmployeesCommand(); + case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java b/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java new file mode 100644 index 00000000000..b3ca5abfb2d --- /dev/null +++ b/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java @@ -0,0 +1,30 @@ +package manageezpz.logic.commands; + +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; + +import org.junit.jupiter.api.Test; + +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; + +class ListEmployeesCommandTest { + private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + + @Test + void listEmployeesCommand_notFilteredList_showSameList() { + assertCommandSuccess(new ListEmployeesCommand(), model, ListEmployeesCommand.MESSAGE_ALL_SUCCESS, + expectedModel); + } + + @Test + void listEmployeesCommand_listIsFiltered_showEverything() { + showPersonAtIndex(model, INDEX_FIRST); + assertCommandSuccess(new ListEmployeesCommand(), model, ListEmployeesCommand.MESSAGE_ALL_SUCCESS, + expectedModel); + } +} \ No newline at end of file diff --git a/src/test/java/manageezpz/testutil/TypicalPersons.java b/src/test/java/manageezpz/testutil/TypicalPersons.java index fdb6957c04c..efaa892d55b 100644 --- a/src/test/java/manageezpz/testutil/TypicalPersons.java +++ b/src/test/java/manageezpz/testutil/TypicalPersons.java @@ -51,7 +51,7 @@ public class TypicalPersons { private TypicalPersons() {} // prevents instantiation /** - * Returns an {@code AddressBook} with all the typical persons. + * Returns an {@code AddressBook} with all the typical employees. */ public static AddressBook getTypicalAddressBookEmployees() { AddressBook ab = new AddressBook(); From eae8551e7f50fc1c05ed3ef1b58bc4defda62f3c Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 05:42:18 +0800 Subject: [PATCH 267/507] Change code to follow coding standards --- .../manageezpz/logic/commands/ListEmployeesCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java b/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java index b3ca5abfb2d..760ceab4bc4 100644 --- a/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java @@ -27,4 +27,4 @@ void listEmployeesCommand_listIsFiltered_showEverything() { assertCommandSuccess(new ListEmployeesCommand(), model, ListEmployeesCommand.MESSAGE_ALL_SUCCESS, expectedModel); } -} \ No newline at end of file +} From 101485efd308e4ca688e29b46ad9b07515058d17 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 05:50:43 +0800 Subject: [PATCH 268/507] Change code to follow coding standard --- src/main/java/manageezpz/logic/parser/AddressBookParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 2a3dcced7d2..610d22133fd 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -20,8 +20,8 @@ import manageezpz.logic.commands.FindEmployeeCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.commands.ListEmployeesCommand; +import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.TagTaskPriorityCommand; From 65f72ffd137ea930bb9a7a0480e70c46f00170b9 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 14:14:53 +0800 Subject: [PATCH 269/507] Change listEmployees command to listEmployee --- docs/UserGuide.md | 22 +++++++++---------- ...sCommand.java => ListEmployeeCommand.java} | 4 ++-- .../logic/parser/AddressBookParser.java | 6 ++--- ...Test.java => ListEmployeeCommandTest.java} | 6 ++--- 4 files changed, 19 insertions(+), 19 deletions(-) rename src/main/java/manageezpz/logic/commands/{ListEmployeesCommand.java => ListEmployeeCommand.java} (82%) rename src/test/java/manageezpz/logic/commands/{ListEmployeesCommandTest.java => ListEmployeeCommandTest.java} (79%) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a4e8188b363..4d5f2cd871b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -101,13 +101,12 @@ Finds employees that have all of the options as entered. * `findEmployee e/dcsdcr@nus.edu.sg` * `findEmployee n/Alex Yeo p/65162727 e/alexyeo@google.com` -### Listing all employees : `listEmployees` +### Listing all employees : `listEmployee` Shows a list of all employees in the address book. #### Format: -* `listEmployees` - +* `listEmployee` ### Adding a Task: `addTodo`, `addEvent`, `addDeadline` @@ -123,14 +122,6 @@ Format: For deadline and event, the DATE must be in this format: DD-MM-YYYY HHmm (in 24 hr format)

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 literal 0 HcmV?d00001 diff --git a/docs/images/ModelTaskClassDiagram.png b/docs/images/ModelTaskClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1e39c8f97ca3108502debe67932e57fbc39f8b77 GIT binary patch literal 51246 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 Date: Wed, 23 Mar 2022 19:59:16 +0800 Subject: [PATCH 181/507] Enable Assertions --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index a19f7ac83f1..c2b7a02071d 100644 --- a/build.gradle +++ b/build.gradle @@ -69,4 +69,8 @@ shadowJar { archiveName = 'manageezpz.jar' } +run { + enableAssertions = true +} + defaultTasks 'clean', 'test' From fde29d9663cb5505fad367e322ebe0327c77835b Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 23 Mar 2022 20:22:06 +0800 Subject: [PATCH 182/507] implement edit task parser --- .../manageezpz/logic/commands/EditTaskCommand.java | 14 +++++++++++--- .../manageezpz/logic/parser/EditCommandParser.java | 1 - .../logic/parser/EditTaskCommandParser.java | 13 +++++++++++-- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 6fa556c4346..294c20175b5 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -10,15 +10,23 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + "by the index number used in the displayed task list. " + "Existing values will be overwritten by the input values.\n"; - private final Index index; + private final String desc; + private final String time; + private final String date; - public EditTaskCommand(Index index) { + public EditTaskCommand(Index index, String desc, String time, String date) { this.index = index; + this.desc = desc; + this.time = time; + this.date = date; } @Override public CommandResult execute(Model model) throws CommandException { - return null; + System.out.println(this.desc); + System.out.println(this.time); + System.out.println(this.date); + throw new CommandException(MESSAGE_USAGE); } } diff --git a/src/main/java/manageezpz/logic/parser/EditCommandParser.java b/src/main/java/manageezpz/logic/parser/EditCommandParser.java index 85a5441a2c0..e6dcdd7490b 100644 --- a/src/main/java/manageezpz/logic/parser/EditCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditCommandParser.java @@ -52,5 +52,4 @@ public EditCommand parse(String args) throws ParseException { return new EditCommand(index, editPersonDescriptor); } - } diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index 2d574c98cb0..393e5e7ebe2 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -1,7 +1,6 @@ package manageezpz.logic.parser; import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditCommand; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -17,11 +16,21 @@ public EditTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_TIME, PREFIX_DATE); Index index; + EditTaskRequest editTaskRequest; try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE), pe); } - return null; + + if (argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty() && argMultimap.getValue(PREFIX_TIME).isEmpty() + && argMultimap.getValue(PREFIX_DATE).isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE)); + } else { + return new EditTaskCommand(index, argMultimap.getValue(PREFIX_DESCRIPTION).get(), + argMultimap.getValue(PREFIX_TIME).get(), argMultimap.getValue(PREFIX_DATE).get()); + } } } + + From 67a0104a3e4b64aa1181c46166b567747fbbee63 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 23 Mar 2022 20:48:44 +0800 Subject: [PATCH 183/507] Update DG --- docs/DeveloperGuide.md | 106 ++++++++++++----------------------------- 1 file changed, 30 insertions(+), 76 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index dedf0c8b547..8c6fdaabae4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,7 +8,7 @@ title: Developer Guide -------------------------------------------------------------------------------------------------------------------- ## **Acknowledgements** - +* https://ay2021s2-cs2103t-t12-4.github.io/tp/DeveloperGuide.html#endpoint-components {Documentation idea of splitting the Model component into 2} * {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -------------------------------------------------------------------------------------------------------------------- @@ -116,7 +116,7 @@ How the parsing works: ### Model component **API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) - + The `Model` component, @@ -157,88 +157,42 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. ### **Task Components** -- Added Task Classes to encapsulate an API Task. +- Added Classes into the model Component to encapsulate a Task. #### **Implementation** - - -### \[Proposed\] Undo/redo feature - -#### Proposed Implementation - -The proposed 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. - -![UndoRedoState0](images/UndoRedoState0.png) - -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. - -![UndoRedoState1](images/UndoRedoState1.png) - -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`. - -![UndoRedoState2](images/UndoRedoState2.png) - -

-### Listing all Tasks : `listTask` - -Shows a list of all tasks in ManageEZPZ. - -Format: - -* `listTask` - ### Marking a task as done : `mark` Mark a task in the Task list as done : @@ -215,6 +206,15 @@ Finds task(s) based on multiple conditions provided. * `findTask desc/work priority/HIGH` * `findTask deadlines/ desc/school date/2022-04-16 priority/HIGH assignees/Alex Yeo isMarked/true` + +### Listing all Tasks : `listTask` + +Shows a list of all tasks in ManageEZPZ. + +Format: + +* `listTask` + ### Clearing all entries : `clear` Clears all entries from the Task list. diff --git a/src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java b/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java similarity index 82% rename from src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java rename to src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java index 02065b40175..47577a731ad 100644 --- a/src/main/java/manageezpz/logic/commands/ListEmployeesCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java @@ -7,8 +7,8 @@ /** * Lists all persons in the address book to the user. */ -public class ListEmployeesCommand extends Command { - public static final String COMMAND_WORD = "listEmployees"; +public class ListEmployeeCommand extends Command { + public static final String COMMAND_WORD = "listEmployee"; public static final String MESSAGE_ALL_SUCCESS = "Listed all Employees"; /** diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 610d22133fd..4d57178d990 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -20,7 +20,7 @@ import manageezpz.logic.commands.FindEmployeeCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; -import manageezpz.logic.commands.ListEmployeesCommand; +import manageezpz.logic.commands.ListEmployeeCommand; import manageezpz.logic.commands.ListTaskCommand; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.commands.TagTaskCommand; @@ -80,8 +80,8 @@ public Command parseCommand(String userInput) throws ParseException { case ListTaskCommand.COMMAND_WORD: return new ListTaskCommand(); - case ListEmployeesCommand.COMMAND_WORD: - return new ListEmployeesCommand(); + case ListEmployeeCommand.COMMAND_WORD: + return new ListEmployeeCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java b/src/test/java/manageezpz/logic/commands/ListEmployeeCommandTest.java similarity index 79% rename from src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java rename to src/test/java/manageezpz/logic/commands/ListEmployeeCommandTest.java index 760ceab4bc4..b42eea21283 100644 --- a/src/test/java/manageezpz/logic/commands/ListEmployeesCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/ListEmployeeCommandTest.java @@ -11,20 +11,20 @@ import manageezpz.model.ModelManager; import manageezpz.model.UserPrefs; -class ListEmployeesCommandTest { +class ListEmployeeCommandTest { private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); private Model expectedModel = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); @Test void listEmployeesCommand_notFilteredList_showSameList() { - assertCommandSuccess(new ListEmployeesCommand(), model, ListEmployeesCommand.MESSAGE_ALL_SUCCESS, + assertCommandSuccess(new ListEmployeeCommand(), model, ListEmployeeCommand.MESSAGE_ALL_SUCCESS, expectedModel); } @Test void listEmployeesCommand_listIsFiltered_showEverything() { showPersonAtIndex(model, INDEX_FIRST); - assertCommandSuccess(new ListEmployeesCommand(), model, ListEmployeesCommand.MESSAGE_ALL_SUCCESS, + assertCommandSuccess(new ListEmployeeCommand(), model, ListEmployeeCommand.MESSAGE_ALL_SUCCESS, expectedModel); } } From 6d7d9fbe4be124798119beaa51432c1cbf966fbf Mon Sep 17 00:00:00 2001 From: denniszedead Date: Tue, 29 Mar 2022 16:25:05 +0800 Subject: [PATCH 270/507] Clean code to improve code quality --- docs/UserGuide.md | 8 +- .../logic/commands/FindEmployeeCommand.java | 32 +++-- .../logic/commands/FindTaskCommand.java | 72 ++++++++---- .../logic/commands/ListEmployeeCommand.java | 1 - .../logic/commands/ListTaskCommand.java | 1 - .../parser/FindEmployeeCommandParser.java | 52 ++++++--- .../logic/parser/FindTaskCommandParser.java | 110 ++++++++++-------- .../model/person/PersonMultiplePredicate.java | 11 +- .../model/task/TaskMultiplePredicate.java | 13 ++- .../logic/commands/FindTaskCommandTest.java | 6 +- .../parser/FindTaskCommandParserTest.java | 35 ++---- .../person/PersonMultiplePredicateTest.java | 22 ---- .../model/task/TaskMultiplePredicateTest.java | 5 - 13 files changed, 193 insertions(+), 175 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4d5f2cd871b..0814b6223d3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -182,14 +182,14 @@ Finds task(s) based on multiple conditions provided. * Find all deadlines * `findTask event/` * Find all events -* `findTask desc/[TASK_DESCRIPTIONS]` - * Finds all tasks which contain any of the words in [TASK_DESCRIPTION]. +* `findTask desc/[LIST OF WORDS]` + * Finds all tasks which contain any of the words in [LIST OF WORDS]. * `findTask date/YYYY-MM-DD` * Find all deadlines and events with the date * `findTask priority/PRIORITY` * Find all tasks with the given PRIORITY [HIGH, MEDIUM, LOW, NONE] -* `findTask assignees/ASSIGNEE` - * Find all tasks assignee to ASSIGNEE +* `findTask assignees/Assignee full name` + * Find all tasks assignee to the stated assignee (in full name) * `findTask isMarked/BOOLEAN` * Find all tasks that is already marked (`true`) or unmarked (`false`) * Finds the task with a description that contains all of the following options: diff --git a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java index 53a9aad5510..d4ad5fcbe03 100644 --- a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java @@ -20,15 +20,21 @@ */ public class FindEmployeeCommand extends Command { public static final String COMMAND_WORD = "findEmployee"; - public static final String PERSON_PROPERTIES = String.join(", ", PREFIX_NAME.getPrefix(), - PREFIX_EMAIL.getPrefix(), PREFIX_PHONE.getPrefix()); - public static final String NOTE = ""; - public static final String EXAMPLE = ""; - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Finds all employees that contains the properties specified.\n" - + "Employee's properties " + PERSON_PROPERTIES + "\n" - + NOTE + "\n" - + EXAMPLE; + public static final String MESSAGE_USAGE = + COMMAND_WORD + ": Finds all employees that contains the properties specified.\n" + + "Employee's properties:\n" + + PREFIX_NAME.getPrefix() + + "NAMES: Finds all employees which has their name contain any of the words in NAMES\n" + + PREFIX_PHONE.getPrefix() + + "PHONE NUMBER: Find employees with the exact phone number\n" + + PREFIX_EMAIL.getPrefix() + + "EMAIL: Finds employees with the exact email" + + "Example:\n" + + COMMAND_WORD + " " + PREFIX_NAME.getPrefix() + "Alex Yeoh\n" + + COMMAND_WORD + " " + PREFIX_PHONE.getPrefix() + "62226222\n" + + COMMAND_WORD + " " + PREFIX_EMAIL.getPrefix() + "alexyeo@google.com\n" + + COMMAND_WORD + " " + PREFIX_NAME.getPrefix() + "Benson Chua " + PREFIX_PHONE.getPrefix() + "6123456 " + + PREFIX_EMAIL.getPrefix() + "bensonc@gmail.com"; public static final String INVALID_NAME = Name.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALD_PHONE = Phone.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_EMAIL = Email.MESSAGE_CONSTRAINTS + "\n"; @@ -50,8 +56,9 @@ public FindEmployeeCommand(PersonMultiplePredicate predicate) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); model.updateFilteredPersonList(predicate); - return new CommandResult( - String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); + int latestNumberOfEmployees = model.getFilteredPersonList().size(); + String commandMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, latestNumberOfEmployees); + return new CommandResult(commandMessage); } /** @@ -63,7 +70,8 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof FindEmployeeCommand) { Predicate otherPredicate = ((FindEmployeeCommand) obj).predicate; - return predicate.equals(otherPredicate); + boolean isOtherPredicateEqual = predicate.equals(otherPredicate); + return isOtherPredicateEqual; } return false; } diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index bd5e2f94e5e..354621e9347 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -15,7 +15,9 @@ import manageezpz.commons.core.Messages; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; +import manageezpz.model.person.Name; import manageezpz.model.task.Date; +import manageezpz.model.task.Description; import manageezpz.model.task.TaskMultiplePredicate; @@ -24,37 +26,54 @@ */ public class FindTaskCommand extends Command { public static final String COMMAND_WORD = "findTask"; - public static final String TASK_OPTIONS = String.join(", ", PREFIX_TODO.toString(), - PREFIX_DEADLINE.toString(), PREFIX_EVENT.toString()); - public static final String TASK_PROPERTIES = String.join(", ", PREFIX_DESCRIPTION.toString(), - PREFIX_DATE.toString(), PREFIX_PRIORITY.toString(), PREFIX_ASSIGNEES.toString(), - PREFIX_IS_MARKED.toString()); - public static final String NOTE = "NOTE: All task properties option must be filled"; - public static final String EXAMPLE = String.join(" ", COMMAND_WORD, - PREFIX_DEADLINE.toString(), "Finish TP", PREFIX_DATE.toString(), "2022-01-01"); - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Finds all tasks that contains the properties specified.\n" - + "Task type options: " + TASK_OPTIONS + "\n" - + "Task properties " + TASK_PROPERTIES + "\n" - + NOTE + "\n" - + EXAMPLE; - public static final String Invalid_KEYWORD = "Keyword is empty\n"; + public static final String MESSAGE_USAGE = + COMMAND_WORD + ": Finds all tasks that contains the properties specified.\n" + + "Task Types:\n" + + PREFIX_TODO.getPrefix() + ": Todos\n" + + PREFIX_DEADLINE.getPrefix() + ": Deadlines\n" + + PREFIX_EVENT.getPrefix() + ": Events\n" + + "Options:\n" + + PREFIX_DESCRIPTION.getPrefix() + ": Description of the tasks\n" + + PREFIX_DATE.getPrefix() + ": Date of the task in YYYY-MM-DD (Only for deadline and event)\n" + + PREFIX_PRIORITY.getPrefix() + ": Priority of task. Only HIGH, MEDIUM, LOW and NONE\n" + + PREFIX_ASSIGNEES.getPrefix() + + ": The assignees that was assigned to the task (Only one full name of assignee allowed)\n" + + PREFIX_IS_MARKED.getPrefix() + ": Whether the task is marked. Only true or false." + + "Format:\n" + + COMMAND_WORD + " " + PREFIX_TODO.getPrefix() + "\n" + + COMMAND_WORD + " " + PREFIX_DEADLINE.getPrefix() + "\n" + + COMMAND_WORD + " " + PREFIX_EVENT.getPrefix() + "\n" + + COMMAND_WORD + " " + PREFIX_DESCRIPTION.getPrefix() + "[LIST OF WORDS]\n" + + COMMAND_WORD + " " + PREFIX_DATE.getPrefix() + "YYYY-MM-DD\n" + + COMMAND_WORD + " " + PREFIX_PRIORITY.getPrefix() + "PRIORITY" + + COMMAND_WORD + " " + PREFIX_ASSIGNEES.getPrefix() + "Assignee's full name\n" + + COMMAND_WORD + " " + PREFIX_IS_MARKED.getPrefix() + "BOOLEAN\n" + + "Example:\n" + + COMMAND_WORD + " " + PREFIX_DESCRIPTION.getPrefix() + "homework\n" + + COMMAND_WORD + " " + PREFIX_DATE.getPrefix() + "2022-01-01\n" + + COMMAND_WORD + " " + PREFIX_PRIORITY.getPrefix() + "HIGH\n" + + COMMAND_WORD + " " + PREFIX_ASSIGNEES.getPrefix() + "Sam Leong\n" + + COMMAND_WORD + " " + PREFIX_IS_MARKED.getPrefix() + "true\n" + + COMMAND_WORD + " " + PREFIX_DESCRIPTION.getPrefix() + "Capstone project " + PREFIX_DATE.getPrefix() + + "2022-05-01 " + PREFIX_PRIORITY.getPrefix() + "HIGH " + PREFIX_ASSIGNEES.getPrefix() + "Max Leong" + + PREFIX_IS_MARKED.getPrefix() + "true"; + public static final String INVALID_DESCRIPTION = Description.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_DATE = Date.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_PRIORITY = "Property should be NONE, LOW, MEDIUM, HIGH\n"; - public static final String TODO_AND_DATE_OPTION_TOGETHER = "Together and Date option are together\n"; + public static final String TODO_AND_DATE_OPTION_TOGETHER = "Todo and Date option are together\n"; public static final String INVALID_BOOLEAN = "Boolean should be true or false\n"; - public static final String EMPTY_ASSIGNEE = "Assignee is empty\n"; + public static final String INVALID_ASSIGNEE = Name.MESSAGE_CONSTRAINTS + "\n"; public static final String MORE_THAN_ONE_TASK_TYPE = "Only one task type is allowed\n"; private TaskMultiplePredicate predicate; /** * The constructor for find task command. - * @param taskContainsDescriptionKeywordsTagPredicate The predicate as search terms to find task + * @param predicate The predicate as search terms to find task */ - public FindTaskCommand( - TaskMultiplePredicate taskContainsDescriptionKeywordsTagPredicate) { - this.predicate = taskContainsDescriptionKeywordsTagPredicate; + public FindTaskCommand(TaskMultiplePredicate predicate) { + requireNonNull(predicate); + this.predicate = predicate; } /** @@ -64,17 +83,22 @@ public FindTaskCommand( public CommandResult execute(Model model) throws CommandException { requireNonNull(model); model.updateFilteredTaskList(predicate); - return new CommandResult( - String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, model.getFilteredTaskList().size())); + int latestNumberOfTasks = model.getFilteredTaskList().size(); + String commandResultMessage = String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, latestNumberOfTasks); + return new CommandResult(commandResultMessage); } + /** + * {@inheritDoc} + */ @Override public boolean equals(Object obj) { if (obj == this) { return true; } else if (obj instanceof FindTaskCommand) { Predicate otherPredicate = ((FindTaskCommand) obj).predicate; - return predicate.equals(otherPredicate); + boolean isOtherPredicateEqual = predicate.equals(otherPredicate); + return isOtherPredicateEqual; } return false; } diff --git a/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java index 47577a731ad..17ab2ef6954 100644 --- a/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListEmployeeCommand.java @@ -18,7 +18,6 @@ public class ListEmployeeCommand extends Command { public CommandResult execute(Model model) { requireNonNull(model); model.updateFilteredPersonList(model.PREDICATE_SHOW_ALL_PERSONS); - return new CommandResult(MESSAGE_ALL_SUCCESS); } } diff --git a/src/main/java/manageezpz/logic/commands/ListTaskCommand.java b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java index 25a9e66a001..7c1f18b4d26 100644 --- a/src/main/java/manageezpz/logic/commands/ListTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/ListTaskCommand.java @@ -18,7 +18,6 @@ public class ListTaskCommand extends Command { public CommandResult execute(Model model) { requireNonNull(model); model.updateFilteredTaskList(model.PREDICATE_SHOW_ALL_TASKS); - return new CommandResult(MESSAGE_ALL_SUCCESS); } } diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java index 10a494f7c44..33418f9e57a 100644 --- a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -36,10 +36,12 @@ public FindEmployeeCommand parse(String userInput) throws ParseException { String email = getPersonEmail(argMultimap); if (hasError) { - throw new ParseException(String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - errorMessage + FindEmployeeCommand.MESSAGE_USAGE)); + String finalMessage = errorMessage + FindEmployeeCommand.MESSAGE_USAGE; + String displayedMessage = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, finalMessage); + throw new ParseException(displayedMessage); } else { - return new FindEmployeeCommand(new PersonMultiplePredicate(names, phone, email)); + PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, phone, email); + return new FindEmployeeCommand(predicate); } } @@ -48,12 +50,18 @@ private List getPersonName(ArgumentMultimap argMultimap) { if (argMultimap.isPrefixExist(PREFIX_NAME)) { String nameArgumentString = argMultimap.getValue(PREFIX_NAME).get().trim(); String[] nameArguments = nameArgumentString.split("\\s+"); - boolean isValid = Arrays.stream(nameArguments).allMatch(name -> Name.isValidName(name)); - if (!isValid) { - addErrorMessage(FindEmployeeCommand.INVALID_NAME); - } else { - names = Arrays.asList(nameArguments); - } + names = checkIfAllNamesValid(nameArguments); + } + return names; + } + + private List checkIfAllNamesValid(String[] nameArguments) { + List names = null; + boolean isValid = Arrays.stream(nameArguments).allMatch(name -> Name.isValidName(name)); + if (!isValid) { + addErrorMessage(FindEmployeeCommand.INVALID_NAME); + } else { + names = Arrays.asList(nameArguments); } return names; } @@ -62,28 +70,34 @@ private String getPersonPhone(ArgumentMultimap argMultimap) { String phone = null; if (argMultimap.isPrefixExist(PREFIX_PHONE)) { phone = argMultimap.getValue(PREFIX_PHONE).get(); - boolean isValidPhone = Phone.isValidPhone(phone); - if (!isValidPhone) { - addErrorMessage(FindEmployeeCommand.INVALD_PHONE); - phone = null; - } + checkIfPhoneValid(phone); } return phone; } + private void checkIfPhoneValid(String phone) { + boolean isValidPhone = Phone.isValidPhone(phone); + if (!isValidPhone) { + addErrorMessage(FindEmployeeCommand.INVALD_PHONE); + } + } + private String getPersonEmail(ArgumentMultimap argMultimap) { String email = null; if (argMultimap.isPrefixExist(PREFIX_EMAIL)) { email = argMultimap.getValue(PREFIX_EMAIL).get(); - boolean isEmailValid = Email.isValidEmail(email); - if (!isEmailValid) { - addErrorMessage(FindEmployeeCommand.INVALID_EMAIL); - email = null; - } + checkIfEmailIsValid(email); } return email; } + private void checkIfEmailIsValid(String email) { + boolean isValidEmail = Email.isValidEmail(email); + if (!isValidEmail) { + addErrorMessage(FindEmployeeCommand.INVALID_EMAIL); + } + } + /** * Collates all the errors and shows the UI after processing all properties. * @param errorMessage Error message from each checking to be added to the overall error message. diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index c5a0e9fea62..f1f68839e06 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -49,9 +49,9 @@ public FindTaskCommand parse(String args) throws ParseException { checkIfTodoAndDateTogether(argMultiMap, taskType); if (hasError) { - String finalErrorMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; - errorMessage = ""; - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, finalErrorMessage)); + String finalMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; + String displayedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, finalMessage); + throw new ParseException(displayedMessage); } else { return new FindTaskCommand(new TaskMultiplePredicate( taskType, descriptions, date, priority, assignee, isMarked)); @@ -69,9 +69,10 @@ private Prefix getPrefix(ArgumentMultimap argMultiMap) { List currentPrefixes = Arrays.stream(TASK_TYPES) .filter(prefix -> argMultiMap.isPrefixExist(prefix)).collect(Collectors.toList()); if (currentPrefixes.size() > 1) { + // If the user enters more than 1 task type addErrorMessage(FindTaskCommand.MORE_THAN_ONE_TASK_TYPE); return null; - } else if (currentPrefixes.size() < 1) { + } else if (currentPrefixes.isEmpty()) { return null; } else { return currentPrefixes.get(0); @@ -80,49 +81,21 @@ private Prefix getPrefix(ArgumentMultimap argMultiMap) { } private List getDescriptions(ArgumentMultimap argMultiMap) { - List keyword = null; + List descriptions = null; if (argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { String description = argMultiMap.getValue(PREFIX_DESCRIPTION).get(); - boolean isValid = checkIfValidDescription(description); - if (isValid) { - String[] taskAssignees = description.split("\\s+"); - keyword = Arrays.asList(taskAssignees); - } + String[] descriptionArray = description.split("\\s+"); + descriptions = List.of(descriptionArray); + checkIfValidDescription(descriptions); } - return keyword; + return descriptions; } - private boolean checkIfValidDescription(String description) { - boolean result = Description.isValidDescription(description); - if (!result) { - addErrorMessage(FindTaskCommand.Invalid_KEYWORD); + private void checkIfValidDescription(List description) { + boolean isValid = description.stream().allMatch(name -> Description.isValidDescription(name)); + if (!isValid) { + addErrorMessage(FindTaskCommand.INVALID_DESCRIPTION); } - return result; - } - - private String getAssignee(ArgumentMultimap argMultiMap) { - String assignee = null; - if (argMultiMap.isPrefixExist(PREFIX_ASSIGNEES)) { - assignee = argMultiMap.getValue(PREFIX_ASSIGNEES).get().trim(); - if (assignee.isEmpty()) { - addErrorMessage(FindTaskCommand.EMPTY_ASSIGNEE); - } else if (!Name.isValidName(assignee)) { - addErrorMessage(Name.MESSAGE_CONSTRAINTS); - } - } - return assignee; - } - - private Boolean getIsMarked(ArgumentMultimap argMultiMap) { - Boolean isMarked = null; - if (argMultiMap.isPrefixExist(PREFIX_IS_MARKED)) { - String booleanString = argMultiMap.getValue(PREFIX_IS_MARKED).get().trim().toLowerCase(); - boolean isEitherTrueOrFalse = checkIfEitherTrueOrFalse(booleanString); - if (isEitherTrueOrFalse) { - isMarked = Boolean.valueOf(booleanString); - } - } - return isMarked; } private Date getTaskDate(ArgumentMultimap argMultiMap) { @@ -138,8 +111,9 @@ private Date getTaskDate(ArgumentMultimap argMultiMap) { } private boolean checkIfDateIsValid(String dateString) { - if (!Date.isValidDate(dateString)) { - addErrorMessage(Date.MESSAGE_CONSTRAINTS + "\n"); + boolean isValidDate = Date.isValidDate(dateString); + if (!isValidDate) { + addErrorMessage(FindTaskCommand.INVALID_DATE); return false; } return true; @@ -149,15 +123,55 @@ private Priority getTaskPriority(ArgumentMultimap argMultiMap) { Priority priority = null; if (argMultiMap.isPrefixExist(PREFIX_PRIORITY)) { String priorityString = argMultiMap.getValue(PREFIX_PRIORITY).get().trim().toUpperCase(); - try { - priority = Priority.valueOf(priorityString); - } catch (IllegalArgumentException e) { - addErrorMessage(FindTaskCommand.INVALID_PRIORITY); - } + priority = checkPriority(priorityString); } return priority; } + private Priority checkPriority(String priorityString) { + switch (priorityString) { + case "HIGH": + return Priority.HIGH; + case "MEDIUM": + return Priority.MEDIUM; + case "LOW": + return Priority.LOW; + case "NONE": + return Priority.NONE; + default: + addErrorMessage(FindTaskCommand.INVALID_PRIORITY); + return null; + } + } + + private String getAssignee(ArgumentMultimap argMultiMap) { + String assignee = null; + if (argMultiMap.isPrefixExist(PREFIX_ASSIGNEES)) { + assignee = argMultiMap.getValue(PREFIX_ASSIGNEES).get().trim(); + checkedIfNameValid(assignee); + } + return assignee; + } + + private void checkedIfNameValid(String assignee) { + boolean isNameValid = Name.isValidName(assignee); + if (!isNameValid) { + addErrorMessage(FindTaskCommand.INVALID_ASSIGNEE); + } + } + + private Boolean getIsMarked(ArgumentMultimap argMultiMap) { + Boolean isMarked = null; + if (argMultiMap.isPrefixExist(PREFIX_IS_MARKED)) { + String booleanString = argMultiMap.getValue(PREFIX_IS_MARKED).get().trim().toLowerCase(); + boolean isEitherTrueOrFalse = checkIfEitherTrueOrFalse(booleanString); + if (isEitherTrueOrFalse) { + isMarked = Boolean.valueOf(booleanString); + } + } + return isMarked; + } + private boolean checkIfEitherTrueOrFalse(String booleanString) { if (booleanString.equals("true") || booleanString.equals("false")) { return true; diff --git a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java index 73318671873..2a59161cb0c 100644 --- a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java +++ b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java @@ -14,7 +14,7 @@ public class PersonMultiplePredicate implements Predicate { private final String email; /** - * The constructor for the multipredicate to search for employees with the states options. + * The constructor for the multipredicate to search for employees with the stated options. * @param name Name of the employee * @param phone Phone number of the employee * @param email Email of the employee. @@ -30,6 +30,8 @@ public PersonMultiplePredicate(List name, String phone, String email) { */ @Override public boolean test(Person person) { + // Checks if the specific search term is specified in the parameter, then check on the person provided. + // Defaults to true if not specified. boolean hasName = name != null ? checkIfNameExists(person) : true; boolean hasPhone = phone != null ? checkIfPhoneExists(person) : true; boolean hasEmail = email != null ? checkIfEmailExists(person) : true; @@ -51,6 +53,9 @@ private boolean checkIfEmailExists(Person person) { return person.getEmail().equals(email); } + /** + * {@inheritDoc} + */ @Override public boolean equals(Object other) { if (other == this) { @@ -58,7 +63,7 @@ public boolean equals(Object other) { } else if (other instanceof PersonMultiplePredicate) { PersonMultiplePredicate otherPredicate = (PersonMultiplePredicate) other; boolean isNameEquals = checkIfNameEquals(otherPredicate.name); - boolean isPhoneEquals = checIfPhoneEquals(otherPredicate.phone); + boolean isPhoneEquals = checkIfPhoneEquals(otherPredicate.phone); boolean isEmailEquals = checkIfEmailEquals(otherPredicate.email); return isNameEquals && isPhoneEquals && isEmailEquals; @@ -75,7 +80,7 @@ private boolean checkIfNameEquals(List name) { } } - private boolean checIfPhoneEquals(String phone) { + private boolean checkIfPhoneEquals(String phone) { if (phone != null) { return phone.equals(this.phone); } else { diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 89fb278980d..4058e145665 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -14,7 +14,6 @@ * The predicate to search tasks based on the properties given. */ public class TaskMultiplePredicate implements Predicate { - private final Prefix taskType; private final List description; private final Date date; @@ -31,9 +30,8 @@ public class TaskMultiplePredicate implements Predicate { * @param assignee The employees assigned to the tasks * @param isMarked Whether the task is marked */ - public TaskMultiplePredicate( - Prefix taskType, List description, Date date, Priority priority, String assignee, - Boolean isMarked) { + public TaskMultiplePredicate(Prefix taskType, List description, Date date, Priority priority, + String assignee, Boolean isMarked) { this.taskType = taskType; this.description = description; this.date = date; @@ -47,6 +45,8 @@ public TaskMultiplePredicate( */ @Override public boolean test(Task task) { + // Checks if the specific search term is specified in the parameter, then check on the task provided. + // Defaults to true if not specified. boolean hasTaskType = taskType != null ? checkIfHasSpecificTaskType(task) : true; boolean hasKeyword = description != null ? checkIfHasKeywords(task) : true; boolean hasDate = date != null ? checkIfHasDate(task) : true; @@ -66,8 +66,9 @@ private boolean checkIfHasSpecificTaskType(Task task) { } private boolean checkIfHasKeywords(Task task) { + String otherTaskDescription = task.getDescription().toString(); return description.stream() - .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(task.getDescription().toString(), keyword)); + .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(otherTaskDescription, keyword)); } private boolean checkIfHasDate(Task task) { @@ -85,7 +86,7 @@ private Date getDateFromTask(Task task) { } else if (task instanceof Event) { return ((Event) task).getDate(); } else { - assert false : "checkIfHasDate did not filter out the todo"; + assert false : "checkIfHasDate() did not filter out the todo"; return null; } } diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index ec845969174..4a5387cf5cf 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -60,9 +60,11 @@ void setMoreProperties() { @Test void equals() { TaskMultiplePredicate firstPredicate = - new TaskMultiplePredicate(null, Collections.singletonList("Genshin"), null, null, null, null); + new TaskMultiplePredicate(null, Collections.singletonList("Genshin"), null, null, + null, null); TaskMultiplePredicate secondPredicate = - new TaskMultiplePredicate(null, Collections.singletonList("Impact"), null, null, null, null); + new TaskMultiplePredicate(null, Collections.singletonList("Impact"), null, null, + null, null); FindTaskCommand firstFindTaskCommand = new FindTaskCommand(firstPredicate); FindTaskCommand secondFindTaskCommand = new FindTaskCommand(secondPredicate); diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 2fb7917efbe..f68fe82998c 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -23,22 +23,19 @@ import manageezpz.commons.core.Messages; import manageezpz.logic.commands.FindTaskCommand; -import manageezpz.model.person.Name; import manageezpz.model.task.Date; import manageezpz.model.task.Priority; import manageezpz.model.task.TaskMultiplePredicate; class FindTaskCommandParserTest { - static final String EMPTY_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.Invalid_KEYWORD + FindTaskCommand.MESSAGE_USAGE); + static final String INVALID_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindTaskCommand.INVALID_DESCRIPTION + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); - static final String EMPTY_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - FindTaskCommand.EMPTY_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, - Name.MESSAGE_CONSTRAINTS + FindTaskCommand.MESSAGE_USAGE); + FindTaskCommand.INVALID_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, @@ -54,7 +51,6 @@ void findTaskCommandParser_noArguments_findTaskCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @@ -64,7 +60,6 @@ void findTaskCommandParser_specificTaskType_findCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @@ -72,15 +67,13 @@ void findTaskCommandParser_specificTaskType_findCommand() { void findTaskCommandParser_multipleTaskType_throwsParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), PREFIX_DEADLINE.toString()); - assertParseFailure(parser, userInput, MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE); } @Test void findTaskCommandParser_emptyDescription_throwsParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); - - assertParseFailure(parser, userInput, EMPTY_DESCRIPTION_ERROR_MESSAGE); + assertParseFailure(parser, userInput, INVALID_DESCRIPTION_ERROR_MESSAGE); } @Test @@ -90,14 +83,12 @@ void findTaskCommandParser_withDescription_findTaskCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, LIST_DESCRIPTIONS, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @Test void findTaskCommandParser_noDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString()); - assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @@ -105,7 +96,6 @@ void findTaskCommandParser_noDate_throwsParseException() { void findTaskCommandParser_invalidDate_throwsParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), INVALID_DATE); - assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @@ -113,7 +103,6 @@ void findTaskCommandParser_invalidDate_throwsParseException() { void findTaskCommandParser_todoWithDateOption_throwParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), PREFIX_DATE.toString(), VALID_DATE); - assertParseFailure(parser, userInput, TODO_DATE_ERROR_MESSAGE); } @@ -123,14 +112,12 @@ void findTaskCommandParser_validDate_findTaskCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, new Date(VALID_DATE), null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @Test void findTaskCommandPaeser_emptyPriority_throwParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString()); - assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @@ -138,7 +125,6 @@ void findTaskCommandPaeser_emptyPriority_throwParseException() { void findTaskCommandParser_invalidPriority_throwParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), INVALID_PRIORITY); - assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @@ -149,22 +135,19 @@ void findTaskCommandParser_validPriority_findTaskCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @Test void findTaskCommandParser_emptyAssignee_throwParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString()); - - assertParseFailure(parser, userInput, EMPTY_ASSIGNEE_COMMAND_MESSAGE); + assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } @Test void findTaskCommandParser_invalidAssignee_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), "James&"); - assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } @@ -175,14 +158,12 @@ void findTaskCommandParser_haveAssignee_findTaskCommand() { TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, VALID_NAME_AMY, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @Test void findTaskCommandParser_emptyBoolean_throwParseError() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString()); - assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @@ -190,17 +171,16 @@ void findTaskCommandParser_emptyBoolean_throwParseError() { void findTaskCommandParser_invalidBoolean_throwParseException() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), INVALID_BOOLEAN); - assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test void findTaskCommandParser_validBoolean_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); + String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), + VALID_BOOLEAN); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } @@ -214,7 +194,6 @@ void findTaskCommandParser_multipleArguments_findTaskCommand() { new Date(VALID_DATE), Priority.valueOf(VALID_PRIORITY), VALID_NAME_AMY, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); } } diff --git a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java index 8a582a719fa..48a13e7214b 100644 --- a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java @@ -12,10 +12,7 @@ class PersonMultiplePredicateTest { @Test void personMultiplePredicate_equalsOwnObject_true() { - Object object = new Object(); PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - - // Equals own object -> true assertTrue(predicate1.equals(predicate1)); } @@ -23,16 +20,12 @@ void personMultiplePredicate_equalsOwnObject_true() { void personalMultiplePredicate_equalsOtherObject_false() { Object object = new Object(); PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - - // Some other object -> false assertFalse(predicate1.equals(object)); } @Test void personalMultiplePredicate_equalsNull_false() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - - // null -> false assertFalse(predicate1.equals(null)); } @@ -40,8 +33,6 @@ void personalMultiplePredicate_equalsNull_false() { void personalMultiplePredicate_equalsWithAllNullValue_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, null); - - // Same values -> true assertTrue(predicate1.equals(predicate2)); } @@ -49,8 +40,6 @@ void personalMultiplePredicate_equalsWithAllNullValue_true() { void personalMultiplePredicate_equalsWithSameNames_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("Alice"), null, null); - - // Same values -> true assertTrue(predicate1.equals(predicate2)); } @@ -58,8 +47,6 @@ void personalMultiplePredicate_equalsWithSameNames_true() { void personalMultiplePredicate_equalsWithDifferentNames_false() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(List.of("Benson"), null, null); - - // Same values -> true assertFalse(predicate1.equals(predicate2)); } @@ -69,8 +56,6 @@ void personalMultiplePredicate_equalsWithSamePhone_true() { null); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, ALICE.getPhone().toString(), null); - - // Same values -> true assertTrue(predicate1.equals(predicate2)); } @@ -80,8 +65,6 @@ void personalMultiplePredicate_equalsWithDifferentPhone_false() { null); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, BENSON.getPhone().toString(), null); - - // Same values -> true assertFalse(predicate1.equals(predicate2)); } @@ -91,8 +74,6 @@ void personalMultiplePredicate_equalsWithSameEmail_false() { ALICE.getEmail().toString()); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, ALICE.getEmail().toString()); - - // Same values -> true assertTrue(predicate1.equals(predicate2)); } @@ -102,15 +83,12 @@ void personalMultiplePredicate_equalsWithDifferentEmail_false() { ALICE.getEmail().toString()); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, BENSON.getEmail().toString()); - - // Same values -> true assertFalse(predicate1.equals(predicate2)); } @Test void personalMultiplePredicate_noOptionsSpecified_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - assertTrue(predicate1.test(ALICE)); } diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index 7af85cf7ba0..b9c42b464dc 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -25,8 +25,6 @@ class TaskMultiplePredicateTest { void taskMultiplePredicate_equalThisObject_true() { TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, null, null, null, null); - - // This -> true assertTrue(predicateWithNoOptions.equals(predicateWithNoOptions)); } @@ -35,7 +33,6 @@ void taskMultiplePredicate_equalSomeOtherObject_false() { Object otherObject = new Object(); TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, null, null, null, null); - assertFalse(predicateWithNoOptions.equals(otherObject)); } @@ -160,7 +157,6 @@ void taskMultiplePredicate_containsCorrectTaskType_true() { @Test void taskMultiplePredicate_containsCorrectTaskType_false() { - // Task type different TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); assertFalse(predicateCombo1.test(deadline)); @@ -217,7 +213,6 @@ void taskMultiplePredicate_containsDate_true() { @Test void taskMultiplePredicate_containsDate_false() { - // Wrong date TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, new Date("2022-04-02"), null, null, null); assertFalse(predicateCombo1.test(deadline)); From 01a972f61313446bb6f30463909f703e4cbdfdcf Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 18:21:50 +0800 Subject: [PATCH 271/507] Update use-cases with the latest v1.3 of ManageEZPZ. --- docs/DeveloperGuide.md | 202 +++++++++++++++++++++++++++++++---------- 1 file changed, 156 insertions(+), 46 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e30234ca405..27d7e5cf53b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -309,11 +309,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes from step 4. - * 3a2. User uses `addEvent` command + * 3a2. User uses `addDeadline` command Use case resumes from step 4. - * 3a3. User uses `addDeadline` command + * 3a3. User uses `addEvent` command Use case resumes from step 4. @@ -328,6 +328,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use Case 2 - Delete Task** +Guarantees: Deletion of any Task will also result in the removal + of any Employee association that the Task has. + **MSS** 1. User starts up ManageEZPZ @@ -354,35 +357,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. 3. User enters the command to list Tasks. -4. ManageEZPZ displays the Tasks accordingly. +4. ManageEZPZ displays the all Tasks. Use case ends. **Extensions** -* 3a. User uses one of the five `list` Task commands: - * 3a1. User uses `list` command - - Use case resumes from step 4. - - * 3a2. User uses `list todo/` command - - Use case resumes from step 4. - - * 3a3. User uses `list deadline/` command - - Use case resumes from step 4. - - * 3a2. User uses `list event/` command - - Use case resumes from step 4. - - * 3a3. User uses `list today/` command - - Use case resumes from step 4. - -* 3b. User uses list Task commands with the wrong syntax. - * 3b1. ManageEZPZ sends an error message to User, that the list +* 3a. User uses list Task commands with the wrong syntax. + * 3a1. ManageEZPZ sends an error message to User, that the list command is incorrect, attached with the correct syntax format. Use case ends. @@ -423,7 +405,8 @@ Preconditions: User is currently using ManageEZPZ. 2. ManageEZPZ displays the Tasks. 3. User realises that Task is marked as done, but is actually not done. 4. User enters command to unmark Task for the specific Task Number. -5. ManageEZPZ unmarks the Task & confirms with a successful message that the task is unmarked. +5. ManageEZPZ unmarks the Task & confirms with a successful message + that the task is unmarked. Use case ends. @@ -451,15 +434,23 @@ Preconditions: User is currently using ManageEZPZ. **Extensions** -* 3a. User uses one of the two Find Task commands: - - * 3a1. User uses `find task/ desc/TASK_DESCRIPTION` command - - Use case resumes from step 4. - - * 3a2. User uses `find date/YYYY-MM-DD` command +* 3a. User uses one of the three Find Task commands: + + * 3a1. User uses any of the `findTask` command: + * `findTask todo/` + * `findTask deadline/` + * `findTask event/` + * Based on the Task type above, the User wants to also get a more + filtered search result, User then adds these prefixes as additional + search terms: + * `desc/` for Description search. + * `date/` for Date search. + * `priority/` for Priority search. + * `assignees/` for Assignees search. + * `isMarked/` for finished Tasks Search. Use case resumes from step 4. + * 3b. User uses find Task commands with the wrong syntax @@ -470,21 +461,53 @@ Preconditions: User is currently using ManageEZPZ. **** -**Use Case 7 - Add Employee** +**Use Case 7 - Edit Tasks** **MSS** -1. User starts up ManageEZPZ. + +1. User starts up ManageEZPZ 2. ManageEZPZ greets User with our HELP page, with all the commands. -3. User wants to add a new Employee, enters command to add Employee. -4. ManageEZPZ adds the Employee & confirms with a successful message that the task is marked +3. User enters the command to list Tasks. +4. User realises that some Tasks have the wrong information. +5. User enters the command to edit the Task(s). +6. ManageEZPZ sends a message to the User indicating that the edit has been successful. Use case ends. **Extensions** -* 3a. ManageEZPZ detects an error in the entered data. +* 5a. User selects a combination of information to edit: + * `desc/` to edit the Description. + * `at/` to edit the Time. + * `date/` to edit the Date. - * 3a1. ManageEZPZ sends an error message to User, indicating the + Use case resumes from step 6. + +* 5b. User uses edit Task commands with the wrong syntax + + * 5b1. ManageEZPZ sends an error message to User, indicating syntax used for + the edit Task command is incorrect, attached with the correct syntax format. + + Use Case ends. + +**** + +**Use Case 8 - Add Employee** + +Preconditions: User is currently using ManageEZPZ. + +**MSS** +1. User wants to add a new Employee, enters command to add Employee. +2. ManageEZPZ adds the Employee & confirms with a successful message that the + Employee is added to ManageEZPZ. + + Use case ends. + +**Extensions** + +* 1a. ManageEZPZ detects an error in the entered data. + + * 1a1. ManageEZPZ sends an error message to User, indicating the format for the add Employee command is incorrect, attached with the correct syntax format. @@ -492,19 +515,107 @@ Preconditions: User is currently using ManageEZPZ. **** -**Use Case 8 - Deleting all Entries in ManageEZPZ** +**Use Case 9 - Deleting Employee** + +Preconditions: User is currently using ManageEZPZ. + +Guarantees: Deletion of any Employee will also result in the removal + of the Employee from the Task(s) that the Employee has been + assigned to. + +**MSS** +1. User wants to delete an existing Employee, enters command to delete Employee. +2. ManageEZPZ deletes the Employee and sends a confirmation message that the + deletion has been successful. + + Use case ends. + +**Extensions** + +* 1a. ManageEZPZ detects an error in the entered data. + + * 1a1. ManageEZPZ sends an error message to User, indicating the + format for delete Employee command is incorrect, attached with the + correct syntax format. + + Use Case ends. + +**** + +**Use Case 10 - Tagging Employee to Task** + +Preconditions: User is currently using ManageEZPZ. + +**MSS** + +1. User enters the command to tag an Employee to a Task. +2. ManageEZPZ assigns the Employee to the Task, and sends a confirmation message + to the User that the Employee has been assigned. + + Use case ends. + +**Extensions** + +* 1a. ManageEZPZ detects an error in the entered data. + + * 1a1. ManageEZPZ sends an error message to User, indicating the + format for the tag Employee to Task command is incorrect, attached with the + correct syntax format. + * 1a2. ManageEZPZ detects that supplied Task Index is not in the Task List, + indicating to the User to enter a valid Task number. + * 1a3. ManageEZPZ detects that Name of Employee is not in the database, + indicating to the User to enter a valid Employee Name. + + Use Case ends. + +**** + +**Use Case 11 - Tagging Priority to Tasks** + +Preconditions: User is currently using ManageEZPZ. + +**MSS** + +1. User enters the command to Tag a Priority to a Task. +2. ManageEZPZ tags the appropriate Priority to the Task, and sends a + confirmation message to the Priority has been assigned to the Task. + + Use case ends. + +**Extensions** + +* 1a. ManageEZPZ detects an error in the entered data. + + * 1a1. ManageEZPZ sends an error message to User, indicating the + format for the add Employee command is incorrect, attached with the + correct syntax format. + * 1a2. ManageEZPZ detects that supplied Task Index is not in the Task List, + indicating to the User to enter a valid Task number. + * 1a3. ManageEZPZ detects that an invalid Priority that is not one of the four: + None, Low, Medium, High. ManageEZPZ reminds the User to use a valid + Priority. + + Use Case ends. + +**** + +**Use Case 12 - Deleting all Entries in ManageEZPZ** + +Preconditions: User is currently using ManageEZPZ. **MSS** 1. User enters the command to clear ManageEZPZ. -2. ManageEZPZ clears all Tasks & confirms with a successful -message that ManageEZPZ entries are cleared. +2. ManageEZPZ clears all Employee and Task data, sending a confirmation + message that ManageEZPZ entries are cleared. Use case ends. **** -**Use Case 9 - Exit ManageEZPZ** +**Use Case 13 - Exit ManageEZPZ** + +Preconditions: User is currently using ManageEZPZ. **MSS** @@ -515,8 +626,7 @@ message that ManageEZPZ entries are cleared. Use case ends. **** -*{More to be added}* -**** + ### Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. From 5df43a5009d15c860d422aa39dceabfc12157a6f Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 18:44:43 +0800 Subject: [PATCH 272/507] Add tagTask and untagTask to UG --- docs/UserGuide.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cfa8a6aaeaf..ca93ad3b6e2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -143,7 +143,29 @@ Examples: * `find task/ desc/homework` * `find date/02-02-2022` -### Locating employees by name: +### Tagging Tasks to Employees: `tagTask` + +Assigns a Task to the Employee + +Note: +* For `tagTask`, the INDEX must be a positive integer 1,2,3... +* For `tagTask`, the NAME must be a valid Employee Name from ManageEZPZ. + +Format: `tagTask INDEX n/NAME` + +Example: `tagTask 1 n/Alex Yeoh` + +### Untag Tasks from Employees: `untagTask` + +Deallocate the Task from Employee. + +Note: +* For `untagTask`, the INDEX must be a positive integer 1,2,3... +* For `untagTask`, the NAME must be a valid Employee Name from ManageEZPZ. + +Format: `untagTask INDEX n/NAME` + +Example: `untagTask 1 n/Alex Yeoh` ### Clearing all entries : `clear` @@ -169,7 +191,8 @@ ManageEZPZ data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.js If your changes to the data file makes its format invalid, ManageEZPZ will discard all data and start with an empty data file at the next run.
-### Tagging Tasks to Employees `[coming in v1.3]` + + _Details coming soon ..._ From c6c65e30fe1434beaf877dc55a372bcc61c7057b Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 18:46:07 +0800 Subject: [PATCH 273/507] Remove additional spaces --- docs/UserGuide.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ca93ad3b6e2..8fc54f9d79d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -191,9 +191,6 @@ ManageEZPZ data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.js If your changes to the data file makes its format invalid, ManageEZPZ will discard all data and start with an empty data file at the next run.
- - - _Details coming soon ..._ -------------------------------------------------------------------------------------------------------------------- From c6ed2cb4a01da11f738cd2eba34c3ee2343c5467 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 29 Mar 2022 19:41:42 +0800 Subject: [PATCH 274/507] Update command summary table. --- docs/UserGuide.md | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2785d1dcf6d..6e5b514ebbc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -22,7 +22,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage 6. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
Some example commands you can try: - * **`list`** : Lists all Tasks. + * **`listTask`** : Lists all Tasks. * **`addEmployee`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe` to ManageEZPZ. @@ -32,6 +32,8 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`addTodo desc/read book`** : Adds a todo task with a description of `read book` to the Task list. + * **`tagTask 1 n/John Doe`** : Assigns the first task on the task list to an employee named John Doe. + * **`exit`** : Exits the app. -------------------------------------------------------------------------------------------------------------------- @@ -105,9 +107,9 @@ Format: * `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` Examples: -* `addTodo desc/read book` -* `addDeadline desc/return book by/16-02-2022 1800` -* `addEvent desc/project meeting at/17-02-2022 1900 2000` +* `addTodo desc/Powerpoint slides for company XYZ` +* `addDeadline desc/Client Proposal Slides by/2022-03-20 1800` +* `addEvent desc/Business meeting at/2022-02-18 1900 2000`
:bulb: **Take Note:** For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format) @@ -210,12 +212,33 @@ _Details coming soon ..._ ## Command summary +###Employee Related Commands Action | Format, Examples --------|------------------ **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Add Task** | `TASK_TYPE desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book`
`addDeadline desc/Use up resin /by 2022-15-03 0400` +**Edit Employee** | `editEmployee INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL]`
e.g., `edit 2 n/James Lee e/jameslee@example.com` +**Delete Employee** | `deleteEmployee INDEX`
e.g., `deleteEmployee 3` +**Find Employee** | `findEmployee OPTIONS`
`findEmployee n/Alex Yeoh` +**listEmployee** | `listEmployee` + +###Task Related Commands +Action | Format, Examples +------------|-------------- +**Add Todo Task** | `addTodo desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book` +**Add Deadline Task** | `addDeadline desc/TASK_DESCRIPTION by/DATETIME`
e.g., `addDeadline desc/return book by/16-02-2022 1800` +**Add Event Task** | `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
e.g., ` addEvent desc/project meeting at/17-02-2022 1900 2000 +**mark Task** | `markTask INDEX`
e.g., `markTask 2` +**unmark Task** | `unmarkTask INDEX`
e.g., `unmarkTask 2` +**delete Task** | `deleteTask INDEX`
e.g., `deleteTask 2` +**find Task** | `findTask OPTIONS`
e.g.,`findTask todo/` +**list Task** | `listTasks` +**tag Task** | `tagTask INDEX n/NAME`
e.g.,`tagTask 1 n/Alex Yeoh` +**untag Task** |`untagTask INDEX n/NAME`
e.g.,`untagTask 1 n/Alex Yeoh` +**tag Priority** | `tagPriority INDEX priority/ENUM`
e.g.,`tagPriority 1 priority/HIGH` + +###Others +Action | Format +------------|------------- **Clear** | `clear` -**Delete** | `delete INDEX`
e.g., `delete 3` -**Find** | `find task/ desc/TASK_DESCRIPTION`
e.g., `find task/ desc/homework` -**List** | `list`
e.g. `list all/` or `list event/` or `list deadline/` **Help** | `help` +**Exit** | `exit` From f65d8b0f49a86ca59e1b2991cad1926146889a1c Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 29 Mar 2022 19:46:06 +0800 Subject: [PATCH 275/507] Update summary table. --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 6e5b514ebbc..bfc9966af7f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -216,7 +216,7 @@ _Details coming soon ..._ Action | Format, Examples --------|------------------ **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Edit Employee** | `editEmployee INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL]`
e.g., `edit 2 n/James Lee e/jameslee@example.com` +**Edit Employee** | `editEmployee INDEX n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `edit 2 n/James Lee e/jameslee@example.com` **Delete Employee** | `deleteEmployee INDEX`
e.g., `deleteEmployee 3` **Find Employee** | `findEmployee OPTIONS`
`findEmployee n/Alex Yeoh` **listEmployee** | `listEmployee` From 63bf85e521842349c7601f6a51893814a30cc2bf Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 20:26:39 +0800 Subject: [PATCH 276/507] Changes to findTask wordings --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 60dc9c361eb..3c4d7454543 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -659,7 +659,7 @@ Preconditions: User is currently using ManageEZPZ. * `findTask todo/` * `findTask deadline/` * `findTask event/` - * Based on the Task type above, the User wants to also get a more + * With or without the Task type above, the User wants to also get a more filtered search result, User then adds these prefixes as additional search terms: * `desc/` for Description search. From a0adebd0dcc26cb0f60df94a6df2fd32c077bbd7 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 20:46:55 +0800 Subject: [PATCH 277/507] Fix bug where numOfTask not saved properly --- .../java/manageezpz/logic/commands/EditCommand.java | 3 ++- .../logic/parser/AddEmployeeCommandParser.java | 2 +- src/main/java/manageezpz/model/person/Person.java | 5 +++-- .../java/manageezpz/model/util/SampleDataUtil.java | 12 ++++++------ .../java/manageezpz/storage/JsonAdaptedPerson.java | 4 ++-- src/test/java/manageezpz/testutil/PersonBuilder.java | 4 +++- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditCommand.java b/src/main/java/manageezpz/logic/commands/EditCommand.java index 60b19e6ccd4..a9a327a4bdf 100644 --- a/src/main/java/manageezpz/logic/commands/EditCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditCommand.java @@ -87,7 +87,8 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); - return new Person(updatedName, updatedPhone, updatedEmail); + int personToEditNumOfTask = personToEdit.getNumOfTask(); + return new Person(updatedName, updatedPhone, updatedEmail, personToEditNumOfTask); } @Override diff --git a/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java index 0fd7a94453d..3dd5f5c988c 100644 --- a/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java @@ -37,7 +37,7 @@ public AddEmployeeCommand parse(String args) throws ParseException { Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); - Person person = new Person(name, phone, email); + Person person = new Person(name, phone, email, 0); return new AddEmployeeCommand(person); } diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index b1193186160..c014a8a2844 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -19,12 +19,12 @@ public class Person { /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email) { + public Person(Name name, Phone phone, Email email, int numOfTask) { requireAllNonNull(name, phone, email); this.name = name; this.phone = phone; this.email = email; - this.numOfTask = 0; + this.numOfTask = numOfTask; } public Name getName() { @@ -63,6 +63,7 @@ public void decreaseTaskCount() { public int getNumOfTask() { return numOfTask; } + /** * Returns true if both persons have the same identity and data fields. * This defines a stronger notion of equality between two persons. diff --git a/src/main/java/manageezpz/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java index 6015bf856a6..71610819376 100644 --- a/src/main/java/manageezpz/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -20,12 +20,12 @@ 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 Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com")) + new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), 0), + new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), 0), + new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), 0), + new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), 0), + new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), 0), + new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), 0) }; } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java index aad954a2b6a..83f1f5ccfa8 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -26,7 +26,7 @@ class JsonAdaptedPerson { */ @JsonCreator public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, - @JsonProperty("email") String email, @JsonProperty("Task Amount") int numOfTask) { + @JsonProperty("email") String email, @JsonProperty("numOfTask") int numOfTask) { this.name = name; this.phone = phone; this.email = email; @@ -75,7 +75,7 @@ public Person toModelType() throws IllegalValueException { throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); } final Email modelEmail = new Email(email); - return new Person(modelName, modelPhone, modelEmail); + return new Person(modelName, modelPhone, modelEmail, numOfTask); } } diff --git a/src/test/java/manageezpz/testutil/PersonBuilder.java b/src/test/java/manageezpz/testutil/PersonBuilder.java index fb115693260..3773d711f27 100644 --- a/src/test/java/manageezpz/testutil/PersonBuilder.java +++ b/src/test/java/manageezpz/testutil/PersonBuilder.java @@ -17,6 +17,7 @@ public class PersonBuilder { private Name name; private Phone phone; private Email email; + private int numOfTask; /** * Creates a {@code PersonBuilder} with the default details. @@ -25,6 +26,7 @@ public PersonBuilder() { name = new Name(DEFAULT_NAME); phone = new Phone(DEFAULT_PHONE); email = new Email(DEFAULT_EMAIL); + numOfTask = 0; } /** @@ -61,6 +63,6 @@ public PersonBuilder withEmail(String email) { } public Person build() { - return new Person(name, phone, email); + return new Person(name, phone, email, numOfTask); } } From 3f25e58ca8b5e5f12f4bed7e3a3f45ff45d759b2 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 29 Mar 2022 22:48:48 +0800 Subject: [PATCH 278/507] Remove sort for task. --- src/main/java/manageezpz/model/ModelManager.java | 4 ++-- src/main/java/manageezpz/model/task/Task.java | 7 +------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 9d529c2c38f..84677e4812e 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -39,8 +39,8 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs this.addressBook = new AddressBook(addressBook); this.userPrefs = new UserPrefs(userPrefs); - filteredPersons = new FilteredList<>(this.addressBook.getPersonList().sorted()); - filteredTasks = new FilteredList<>(this.addressBook.getTaskList().sorted()); + filteredPersons = new FilteredList<>(this.addressBook.getPersonList()); + filteredTasks = new FilteredList<>(this.addressBook.getTaskList()); } public ModelManager() { diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 93acf8edfb9..8935efcff5d 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -12,7 +12,7 @@ * Represents the Tasks a user could create. A Task object would correspond to a task * inputted by a user either a Todo, Deadline or Event. */ -public class Task implements Comparable { +public class Task { protected boolean isDone; protected String type; protected Priority priority; @@ -95,11 +95,6 @@ public Priority getPriority() { return this.priority; } - @Override - public int compareTo(Task o) { - return Integer.compare(this.getPriority().getValue(), o.getPriority().getValue()); - } - /** * Returns the string representation of the task. * @return a string representation of the task, consisting of its description and whether its done or not. From 754dae5c6ef5e035be1a2f67b168af0f9541cd67 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Tue, 29 Mar 2022 22:52:37 +0800 Subject: [PATCH 279/507] Update Task.java --- src/main/java/manageezpz/model/task/Task.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index fbc8976a094..20245355da5 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -10,7 +10,7 @@ * inputted by a user either a Todo, Deadline or Event. */ -public abstract class Task implements { +public abstract class Task { protected boolean isDone = false; protected Priority priority = Priority.NONE; From 801c8a46e4b6831940681e7cbb390226f26cd12b Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 29 Mar 2022 22:54:51 +0800 Subject: [PATCH 280/507] Add tagPriority --- docs/UserGuide.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8fc54f9d79d..ce4b002b26a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -167,6 +167,21 @@ Format: `untagTask INDEX n/NAME` Example: `untagTask 1 n/Alex Yeoh` +### Tag Priority to a Task: `tagPriority` + +Assign a Task to a Priority which is enum of “HIGH / MEDIUM / LOW / NONE” + +Note: +* For `tagPriority`, the INDEX must be a positive integer 1,2,3... +* For `tagPriority`, the ENUM must be HIGH, MEDIUM, LOW, or NONE. + +Format: `tagPriority INDEX priority/ENUM` + +Example: +* `tagPriority 1 priority/HIGH` +* `tagPriority 1 priority/NONE` + + ### Clearing all entries : `clear` Clears all entries from the Task list. From 3883b28baff91ceeb8676a40f5fbb19d3ebbdf1f Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 30 Mar 2022 00:34:21 +0800 Subject: [PATCH 281/507] Update edit to editEmployee and fix a bug of names not changing when edited. --- ...tCommand.java => EditEmployeeCommand.java} | 34 +++++++++++------ .../logic/parser/AddressBookParser.java | 4 +- .../logic/parser/EditCommandParser.java | 14 +++---- .../manageezpz/model/task/Description.java | 6 ++- src/main/java/manageezpz/model/task/Task.java | 4 ++ .../logic/commands/CommandTestUtil.java | 4 +- .../logic/commands/EditCommandTest.java | 38 +++++++++---------- .../commands/EditPersonDescriptorTest.java | 2 +- .../logic/parser/AddressBookParserTest.java | 8 ++-- .../logic/parser/EditCommandParserTest.java | 24 ++++++------ .../testutil/EditPersonDescriptorBuilder.java | 2 +- .../java/manageezpz/testutil/PersonUtil.java | 2 +- 12 files changed, 81 insertions(+), 61 deletions(-) rename src/main/java/manageezpz/logic/commands/{EditCommand.java => EditEmployeeCommand.java} (83%) diff --git a/src/main/java/manageezpz/logic/commands/EditCommand.java b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java similarity index 83% rename from src/main/java/manageezpz/logic/commands/EditCommand.java rename to src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java index a9a327a4bdf..0eac9058058 100644 --- a/src/main/java/manageezpz/logic/commands/EditCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; @@ -18,16 +19,17 @@ import manageezpz.model.person.Name; import manageezpz.model.person.Person; import manageezpz.model.person.Phone; +import manageezpz.model.task.Task; /** * Edits the details of an existing person in the address book. */ -public class EditCommand extends Command { +public class EditEmployeeCommand extends Command { - public static final String COMMAND_WORD = "edit"; + public static final String COMMAND_WORD = "editEmployee"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " - + "by the index number used in the displayed person list. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the employee identified " + + "by the index number used in the displayed employee list. " + "Existing values will be overwritten by the input values.\n" + "Parameters: INDEX (must be a positive integer) " + "[" + PREFIX_NAME + "NAME] " @@ -37,7 +39,7 @@ public class EditCommand extends Command { + PREFIX_PHONE + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; - public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Person: %1$s"; + public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited employee: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book."; @@ -48,7 +50,7 @@ public class EditCommand extends Command { * @param index of the person in the filtered person list to edit * @param editPersonDescriptor details to edit the person with */ - public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { + public EditEmployeeCommand(Index index, EditPersonDescriptor editPersonDescriptor) { requireNonNull(index); requireNonNull(editPersonDescriptor); @@ -59,13 +61,14 @@ public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownPersonList = model.getFilteredPersonList(); + List lastShownTaskList = model.getFilteredTaskList(); - if (index.getZeroBased() >= lastShownList.size()) { + if (index.getZeroBased() >= lastShownPersonList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Person personToEdit = lastShownList.get(index.getZeroBased()); + Person personToEdit = lastShownPersonList.get(index.getZeroBased()); Person editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { @@ -74,6 +77,15 @@ public CommandResult execute(Model model) throws CommandException { model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + List taskList = lastShownTaskList.stream() + .filter(task -> task.getAssignees().contains(personToEdit)).collect(Collectors.toList()); + + + for (int j = 0; j < taskList.size(); j++) { + taskList.get(j).assignedTo(index.getZeroBased(), editedPerson); + } + return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, editedPerson)); } @@ -99,12 +111,12 @@ public boolean equals(Object other) { } // instanceof handles nulls - if (!(other instanceof EditCommand)) { + if (!(other instanceof EditEmployeeCommand)) { return false; } // state check - EditCommand e = (EditCommand) other; + EditEmployeeCommand e = (EditEmployeeCommand) other; return index.equals(e.index) && editPersonDescriptor.equals(e.editPersonDescriptor); } diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index 4d57178d990..c3cca48c75c 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -14,7 +14,7 @@ import manageezpz.logic.commands.Command; import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.commands.DeleteTaskCommand; -import manageezpz.logic.commands.EditCommand; +import manageezpz.logic.commands.EditEmployeeCommand; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindEmployeeCommand; @@ -59,7 +59,7 @@ public Command parseCommand(String userInput) throws ParseException { case AddEmployeeCommand.COMMAND_WORD: return new AddEmployeeCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: + case EditEmployeeCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); case DeleteEmployeeCommand.COMMAND_WORD: diff --git a/src/main/java/manageezpz/logic/parser/EditCommandParser.java b/src/main/java/manageezpz/logic/parser/EditCommandParser.java index e6dcdd7490b..3e0d22dd59f 100644 --- a/src/main/java/manageezpz/logic/parser/EditCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditCommandParser.java @@ -7,21 +7,21 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.logic.parser.exceptions.ParseException; /** * Parses input arguments and creates a new EditCommand object */ -public class EditCommandParser implements Parser { +public class EditCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the EditCommand * and returns an EditCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public EditCommand parse(String args) throws ParseException { + public EditEmployeeCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL); @@ -31,7 +31,7 @@ public EditCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE), pe); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditEmployeeCommand.MESSAGE_USAGE), pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); @@ -46,10 +46,10 @@ public EditCommand parse(String args) throws ParseException { } if (!editPersonDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); + throw new ParseException(EditEmployeeCommand.MESSAGE_NOT_EDITED); } - return new EditCommand(index, editPersonDescriptor); + return new EditEmployeeCommand(index, editPersonDescriptor); } } diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index bf1aab18379..f682fd85055 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -1,10 +1,14 @@ package manageezpz.model.task; +import manageezpz.logic.commands.AddTodoTaskCommand; + import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; public class Description { - public static final String MESSAGE_CONSTRAINTS = "Description should not be blank"; + public static final String MESSAGE_CONSTRAINTS = "Description should not be blank" + + "\r\n" + + AddTodoTaskCommand.MESSAGE_USAGE; public final String description; diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index 20245355da5..de310cf5b02 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -96,6 +96,10 @@ public void assignedTo(Person person) { assignees.add(person); } + public void assignedTo(int index, Person newPerson) { + assignees.set(index, newPerson); + } + /** * Used to deallocate a person from this Task. * @param person the person to be deallocated. diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index db4c4ecd315..43315736ae3 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -49,8 +49,8 @@ public class CommandTestUtil { public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; - public static final EditCommand.EditPersonDescriptor DESC_AMY; - public static final EditCommand.EditPersonDescriptor DESC_BOB; + public static final EditEmployeeCommand.EditPersonDescriptor DESC_AMY; + public static final EditEmployeeCommand.EditPersonDescriptor DESC_BOB; // Attributes pertaining tasks public static final String VALID_TASK_DESCRIPTION = "get a drink"; diff --git a/src/test/java/manageezpz/logic/commands/EditCommandTest.java b/src/test/java/manageezpz/logic/commands/EditCommandTest.java index 642d8a720f5..86a3924576f 100644 --- a/src/test/java/manageezpz/logic/commands/EditCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditCommandTest.java @@ -17,7 +17,7 @@ import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.model.AddressBook; import manageezpz.model.Model; import manageezpz.model.ModelManager; @@ -37,9 +37,9 @@ public class EditCommandTest { public void execute_allFieldsSpecifiedUnfilteredList_success() { Person editedPerson = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST, descriptor); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); @@ -57,9 +57,9 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).build(); - EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); + EditEmployeeCommand editCommand = new EditEmployeeCommand(indexLastPerson, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(lastPerson, editedPerson); @@ -69,10 +69,10 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(INDEX_FIRST, new EditPersonDescriptor()); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, new EditPersonDescriptor()); Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); @@ -85,10 +85,10 @@ public void execute_filteredList_success() { Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST, + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); @@ -100,9 +100,9 @@ public void execute_filteredList_success() { public void execute_duplicatePersonUnfilteredList_failure() { Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_SECOND, descriptor); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_SECOND, descriptor); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON); } @Test @@ -111,17 +111,17 @@ public void execute_duplicatePersonFilteredList_failure() { // edit person in filtered list into a duplicate in address book Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST, + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, new EditPersonDescriptorBuilder(personInList).build()); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON); } @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); + EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, descriptor); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @@ -137,7 +137,7 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - EditCommand editCommand = new EditCommand(outOfBoundIndex, + EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); @@ -145,11 +145,11 @@ public void execute_invalidPersonIndexFilteredList_failure() { @Test public void equals() { - final EditCommand standardCommand = new EditCommand(INDEX_FIRST, DESC_AMY); + final EditEmployeeCommand standardCommand = new EditEmployeeCommand(INDEX_FIRST, DESC_AMY); // same values -> returns true EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST, copyDescriptor); + EditEmployeeCommand commandWithSameValues = new EditEmployeeCommand(INDEX_FIRST, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); // same object -> returns true @@ -162,10 +162,10 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND, DESC_AMY))); + assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_SECOND, DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST, DESC_BOB))); + assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_FIRST, DESC_BOB))); } } diff --git a/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java b/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java index 5e0b2b42f3a..d5cad2e99a0 100644 --- a/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/manageezpz/logic/commands/EditPersonDescriptorTest.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.testutil.EditPersonDescriptorBuilder; public class EditPersonDescriptorTest { diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 117fe1d934e..972998ca1c2 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -17,8 +17,8 @@ import manageezpz.logic.commands.AddEmployeeCommand; import manageezpz.logic.commands.ClearCommand; import manageezpz.logic.commands.DeleteEmployeeCommand; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.logic.commands.ExitCommand; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.commands.HelpCommand; @@ -58,9 +58,9 @@ public void parseCommand_delete() throws Exception { 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 + " " + EditEmployeeCommand command = (EditEmployeeCommand) parser.parseCommand(EditEmployeeCommand.COMMAND_WORD + " " + INDEX_FIRST.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); - assertEquals(new EditCommand(INDEX_FIRST, descriptor), command); + assertEquals(new EditEmployeeCommand(INDEX_FIRST, descriptor), command); } @Test diff --git a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java index 3e2548ad96b..6b582d4c710 100644 --- a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java @@ -23,8 +23,8 @@ import org.junit.jupiter.api.Test; import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditCommand; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Phone; @@ -33,7 +33,7 @@ public class EditCommandParserTest { private static final String MESSAGE_INVALID_FORMAT = - String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditEmployeeCommand.MESSAGE_USAGE); private EditCommandParser parser = new EditCommandParser(); @@ -43,7 +43,7 @@ public void parse_missingParts_failure() { assertParseFailure(parser, VALID_NAME_AMY, MESSAGE_INVALID_FORMAT); // no field specified - assertParseFailure(parser, "1", EditCommand.MESSAGE_NOT_EDITED); + assertParseFailure(parser, "1", EditEmployeeCommand.MESSAGE_NOT_EDITED); // no index and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); @@ -89,7 +89,7 @@ public void parse_allFieldsSpecified_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditEmployeeCommand expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -101,7 +101,7 @@ public void parse_someFieldsSpecified_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditEmployeeCommand expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -112,19 +112,19 @@ public void parse_oneFieldSpecified_success() { Index targetIndex = INDEX_THIRD; String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditEmployeeCommand expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // phone userInput = targetIndex.getOneBased() + PHONE_DESC_AMY; descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // email userInput = targetIndex.getOneBased() + EMAIL_DESC_AMY; descriptor = new EditPersonDescriptorBuilder().withEmail(VALID_EMAIL_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -137,7 +137,7 @@ public void parse_multipleRepeatedFields_acceptsLast() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_BOB).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditEmployeeCommand expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -148,14 +148,14 @@ public void parse_invalidValueFollowedByValidValue_success() { Index targetIndex = INDEX_FIRST; String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditEmployeeCommand expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // other valid values specified userInput = targetIndex.getOneBased() + EMAIL_DESC_BOB + INVALID_PHONE_DESC + PHONE_DESC_BOB; descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_BOB).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditEmployeeCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } } diff --git a/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java index 4e845692917..4e84afcd04c 100644 --- a/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/manageezpz/testutil/EditPersonDescriptorBuilder.java @@ -1,6 +1,6 @@ package manageezpz.testutil; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.model.person.Email; import manageezpz.model.person.Name; import manageezpz.model.person.Person; diff --git a/src/test/java/manageezpz/testutil/PersonUtil.java b/src/test/java/manageezpz/testutil/PersonUtil.java index 2e4799a3398..f671b1a1348 100644 --- a/src/test/java/manageezpz/testutil/PersonUtil.java +++ b/src/test/java/manageezpz/testutil/PersonUtil.java @@ -5,7 +5,7 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; import manageezpz.logic.commands.AddEmployeeCommand; -import manageezpz.logic.commands.EditCommand.EditPersonDescriptor; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; import manageezpz.model.person.Person; /** From 0bca237298fa53bcb8b4710dd71da8f38338ef25 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 30 Mar 2022 00:37:07 +0800 Subject: [PATCH 282/507] Update checkstyle. --- src/main/java/manageezpz/logic/parser/EditCommandParser.java | 3 ++- src/main/java/manageezpz/model/task/Description.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/EditCommandParser.java b/src/main/java/manageezpz/logic/parser/EditCommandParser.java index 3e0d22dd59f..31b6bae31b7 100644 --- a/src/main/java/manageezpz/logic/parser/EditCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditCommandParser.java @@ -31,7 +31,8 @@ public EditEmployeeCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditEmployeeCommand.MESSAGE_USAGE), pe); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditEmployeeCommand.MESSAGE_USAGE), pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index f682fd85055..664a4ad9b21 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -1,10 +1,10 @@ package manageezpz.model.task; -import manageezpz.logic.commands.AddTodoTaskCommand; - import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; +import manageezpz.logic.commands.AddTodoTaskCommand; + public class Description { public static final String MESSAGE_CONSTRAINTS = "Description should not be blank" + "\r\n" From 9951a41f4fc98881c014d385c3e08d078489919b Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 30 Mar 2022 00:48:22 +0800 Subject: [PATCH 283/507] Update editTask error message. --- .../java/manageezpz/logic/commands/EditTaskCommand.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 24f2509d1e0..47c6a4ed6d5 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -4,7 +4,9 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; +import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import java.util.ArrayList; @@ -27,13 +29,16 @@ public class EditTaskCommand extends Command { public static final String COMMAND_WORD = "editTask"; - + public static final String MORE_EXAMPLES = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + "Eat Apple " + + PREFIX_DATE + "2022-09-05 " + PREFIX_TIME + "1800"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + "by the index number used in the displayed task list.\n" + "Parameters: INDEX (must exist in the Address Book) " + "[" + PREFIX_DESCRIPTION + " NAME] \n" + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_DESCRIPTION + " Eat bananas "; + + PREFIX_DESCRIPTION + " Eat bananas " + + "\n" + + MORE_EXAMPLES; private final Index index; private final String desc; From 1716fdc88d6343ec222baca2403351b7100ce1dd Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 30 Mar 2022 01:46:55 +0800 Subject: [PATCH 284/507] Implement find commands such that if no options are entered, the parser will return an error --- docs/UserGuide.md | 5 ++-- .../logic/commands/FindEmployeeCommand.java | 1 + .../logic/commands/FindTaskCommand.java | 2 ++ .../parser/FindEmployeeCommandParser.java | 17 ++++++++++++++ .../logic/parser/FindTaskCommandParser.java | 17 ++++++++++++++ .../parser/FindEmployeeCommandParserTest.java | 9 ++++---- .../parser/FindTaskCommandParserTest.java | 23 +++++++++---------- 7 files changed, 54 insertions(+), 20 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9d7b0842a6f..c146543fa09 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -96,7 +96,7 @@ Finds employees that have all of the options as entered. #### Note: * Options can be stacked together in any order. -* No options entered will result in all employees list out like the `listEmployee` command. +* At least one option is needed. #### Format: * `findEmployee n/NAMES` @@ -185,10 +185,9 @@ Finds task(s) based on multiple conditions provided. #### Note: * Arguments can be stacked together in any order. -* Task Type is optional. +* There must be at least one task type or options shown below. * However, only one task type is allowed. * Any other invalid options not stated below will be ignored -* No options provided will list down all the tasks like `listTask` #### Task Type Available: * `todo/`: Todos diff --git a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java index d4ad5fcbe03..ec5559b5aac 100644 --- a/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindEmployeeCommand.java @@ -35,6 +35,7 @@ public class FindEmployeeCommand extends Command { + COMMAND_WORD + " " + PREFIX_EMAIL.getPrefix() + "alexyeo@google.com\n" + COMMAND_WORD + " " + PREFIX_NAME.getPrefix() + "Benson Chua " + PREFIX_PHONE.getPrefix() + "6123456 " + PREFIX_EMAIL.getPrefix() + "bensonc@gmail.com"; + public static final String NO_OPTIONS = COMMAND_WORD + " needs at least 1 valid options\n"; public static final String INVALID_NAME = Name.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALD_PHONE = Phone.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_EMAIL = Email.MESSAGE_CONSTRAINTS + "\n"; diff --git a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java index 354621e9347..785c18591a7 100644 --- a/src/main/java/manageezpz/logic/commands/FindTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/FindTaskCommand.java @@ -57,6 +57,8 @@ public class FindTaskCommand extends Command { + COMMAND_WORD + " " + PREFIX_DESCRIPTION.getPrefix() + "Capstone project " + PREFIX_DATE.getPrefix() + "2022-05-01 " + PREFIX_PRIORITY.getPrefix() + "HIGH " + PREFIX_ASSIGNEES.getPrefix() + "Max Leong" + PREFIX_IS_MARKED.getPrefix() + "true"; + + public static final String NO_OPTIONS = COMMAND_WORD + " needs at least 1 valid option\n"; public static final String INVALID_DESCRIPTION = Description.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_DATE = Date.MESSAGE_CONSTRAINTS + "\n"; public static final String INVALID_PRIORITY = "Property should be NONE, LOW, MEDIUM, HIGH\n"; diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java index 33418f9e57a..4512f5afea4 100644 --- a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -6,6 +6,7 @@ import java.util.Arrays; import java.util.List; +import java.util.stream.Stream; import manageezpz.commons.core.Messages; import manageezpz.logic.commands.FindEmployeeCommand; @@ -31,6 +32,7 @@ public class FindEmployeeCommandParser implements Parser { public FindEmployeeCommand parse(String userInput) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(userInput, PERSON_PROPERTIES); + checkIfHaveAtLeastOneOption(argMultimap); List names = getPersonName(argMultimap); String phone = getPersonPhone(argMultimap); String email = getPersonEmail(argMultimap); @@ -45,6 +47,13 @@ public FindEmployeeCommand parse(String userInput) throws ParseException { } } + private void checkIfHaveAtLeastOneOption(ArgumentMultimap argMultiMap) { + if (!arePrefixesPresent(argMultiMap, PERSON_PROPERTIES) + || !argMultiMap.getPreamble().isEmpty()) { + addErrorMessage(FindEmployeeCommand.NO_OPTIONS); + } + } + private List getPersonName(ArgumentMultimap argMultimap) { List names = null; if (argMultimap.isPrefixExist(PREFIX_NAME)) { @@ -106,4 +115,12 @@ private void addErrorMessage(String errorMessage) { hasError = true; this.errorMessage = this.errorMessage + errorMessage; } + + /** + * 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/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index f1f68839e06..4432b7bcfb0 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -13,6 +13,7 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; import manageezpz.logic.commands.FindTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -39,6 +40,7 @@ public class FindTaskCommandParser implements Parser { public FindTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultiMap = ArgumentTokenizer.tokenize(args, VALID_OPTIONS); + checkIfHaveAtLeastOneOption(argMultiMap); Prefix taskType = getPrefix(argMultiMap); List descriptions = getDescriptions(argMultiMap); Date date = getTaskDate(argMultiMap); @@ -58,6 +60,13 @@ public FindTaskCommand parse(String args) throws ParseException { } } + private void checkIfHaveAtLeastOneOption(ArgumentMultimap argMultiMap) { + if (!arePrefixesPresent(argMultiMap, VALID_OPTIONS) + || !argMultiMap.getPreamble().isEmpty()) { + addErrorMessage(FindTaskCommand.NO_OPTIONS); + } + } + private void checkIfTodoAndDateTogether(ArgumentMultimap argMultiMapProperties, Prefix taskTypes) { boolean isContainsTodo = taskTypes instanceof Prefix && taskTypes.equals(PREFIX_TODO); if (isContainsTodo && argMultiMapProperties.isPrefixExist(PREFIX_DATE)) { @@ -191,4 +200,12 @@ private void addErrorMessage(String errorMessage) { hasError = true; this.errorMessage = this.errorMessage + errorMessage; } + + /** + * 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/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index 2f2bfe123cf..70155caed10 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -18,6 +18,8 @@ import manageezpz.model.person.PersonMultiplePredicate; class FindEmployeeCommandParserTest { + private static final String NO_OPTION_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindEmployeeCommand.NO_OPTIONS + FindEmployeeCommand.MESSAGE_USAGE); private static final String INVALID_NAME_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindEmployeeCommand.INVALID_NAME + FindEmployeeCommand.MESSAGE_USAGE); private static final String INVALID_PHONE_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, @@ -28,12 +30,9 @@ class FindEmployeeCommandParserTest { private FindEmployeeCommandParser parser = new FindEmployeeCommandParser(); @Test - void findEmployeeCommandParser_noOptions_findCommand() { + void findEmployeeCommandParser_noOptions_throwParseException() { String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD); - PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, null); - FindEmployeeCommand command = new FindEmployeeCommand(predicate); - - assertParseSuccess(parser, userInput, command); + assertParseFailure(parser, userInput, NO_OPTION_MESSAGE); } @Test diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index f68fe82998c..14a12f54f76 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -28,19 +28,21 @@ import manageezpz.model.task.TaskMultiplePredicate; class FindTaskCommandParserTest { - static final String INVALID_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String NO_OPTIONS_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + FindTaskCommand.NO_OPTIONS + FindTaskCommand.MESSAGE_USAGE); + private static final String INVALID_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DESCRIPTION + FindTaskCommand.MESSAGE_USAGE); - static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); - static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); - static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); - static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); - static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindTaskCommand.MESSAGE_USAGE); - static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.MORE_THAN_ONE_TASK_TYPE + FindTaskCommand.MESSAGE_USAGE); private FindTaskCommandParser parser = new FindTaskCommandParser(); @@ -48,14 +50,11 @@ class FindTaskCommandParserTest { @Test void findTaskCommandParser_noArguments_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); - TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, - null, null, null); - FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); - assertParseSuccess(parser, userInput, expectedCommand); + assertParseFailure(parser, userInput, NO_OPTIONS_MESSAGE); } @Test - void findTaskCommandParser_specificTaskType_findCommand() { + void findTaskCommandParser_specificTaskType_findTaskCommand() { String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); From b9434f553e16d8839add5ad7c5d475a461f0c4aa Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 30 Mar 2022 03:25:30 +0800 Subject: [PATCH 285/507] Updated code to follow coding standards and fix bugs --- .../parser/FindEmployeeCommandParser.java | 7 +- .../logic/parser/FindTaskCommandParser.java | 7 +- .../model/person/PersonMultiplePredicate.java | 3 + .../model/task/TaskMultiplePredicate.java | 4 + .../commands/FindEmployeeCommandTest.java | 12 --- .../logic/commands/FindTaskCommandTest.java | 14 --- .../parser/FindEmployeeCommandParserTest.java | 39 ++++---- .../parser/FindTaskCommandParserTest.java | 69 +++++++------- .../person/PersonMultiplePredicateTest.java | 20 ++--- .../model/task/TaskMultiplePredicateTest.java | 89 ++++++++----------- 10 files changed, 110 insertions(+), 154 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java index 4512f5afea4..043b16b7bd6 100644 --- a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -48,8 +48,7 @@ public FindEmployeeCommand parse(String userInput) throws ParseException { } private void checkIfHaveAtLeastOneOption(ArgumentMultimap argMultiMap) { - if (!arePrefixesPresent(argMultiMap, PERSON_PROPERTIES) - || !argMultiMap.getPreamble().isEmpty()) { + if (!isAtLeastOnePrefixPresent(argMultiMap, PERSON_PROPERTIES) || !argMultiMap.getPreamble().isEmpty()) { addErrorMessage(FindEmployeeCommand.NO_OPTIONS); } } @@ -120,7 +119,7 @@ private void addErrorMessage(String errorMessage) { * 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()); + private static boolean isAtLeastOnePrefixPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).anyMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); } } diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index 4432b7bcfb0..d917954d060 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -61,8 +61,7 @@ public FindTaskCommand parse(String args) throws ParseException { } private void checkIfHaveAtLeastOneOption(ArgumentMultimap argMultiMap) { - if (!arePrefixesPresent(argMultiMap, VALID_OPTIONS) - || !argMultiMap.getPreamble().isEmpty()) { + if (!isAtLeastOnePrefixPresent(argMultiMap, VALID_OPTIONS) || !argMultiMap.getPreamble().isEmpty()) { addErrorMessage(FindTaskCommand.NO_OPTIONS); } } @@ -205,7 +204,7 @@ private void addErrorMessage(String errorMessage) { * 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()); + private static boolean isAtLeastOnePrefixPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).anyMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); } } diff --git a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java index 2a59161cb0c..3c46e35c95c 100644 --- a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java +++ b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java @@ -23,6 +23,9 @@ public PersonMultiplePredicate(List name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; + + boolean isAtLeastOneNotNull = (this.name != null) || (this.phone != null) || (this.email != null); + assert isAtLeastOneNotNull : "At least one search option should be specified"; } /** diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 4058e145665..7e55c9baf3e 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -38,6 +38,10 @@ public TaskMultiplePredicate(Prefix taskType, List description, Date dat this.priority = priority; this.assignee = assignee; this.isMarked = isMarked; + + boolean isAtLeastOneNotNull = (this.taskType != null) || (this.description != null) || (this.date != null) + || (this.priority != null) || (this.assignee != null) || (this.isMarked != null); + assert isAtLeastOneNotNull : "At least one search option should be specified"; } /** diff --git a/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java index 706728863ed..d3e9e68e2ea 100644 --- a/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindEmployeeCommandTest.java @@ -50,18 +50,6 @@ void equals() { assertFalse(command1.equals(command2)); } - @Test - void findEmployeeCommand_noOptions_showAllEmployees() { - PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, null); - expectedModel.updateFilteredPersonList(predicate); - List expectedPeople = getTypicalAddressBookEmployees().getPersonList(); - String message = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 7); - FindEmployeeCommand command = new FindEmployeeCommand(predicate); - - assertCommandSuccess(command, model, message, expectedModel); - assertEquals(expectedPeople, model.getFilteredPersonList()); - } - @Test void findEmployeeCommand_withNames_showEmployeesWithNames() { PersonMultiplePredicate predicate = new PersonMultiplePredicate(List.of("Alice", "Benson"), null, diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 4a5387cf5cf..0d24f94ca82 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -16,7 +16,6 @@ import static manageezpz.testutil.TypicalTasks.RETURN_BOOK; import static manageezpz.testutil.TypicalTasks.WEEKLY_QUIZ; import static manageezpz.testutil.TypicalTasks.getTypicalAddressBookTasks; -import static manageezpz.testutil.TypicalTasks.getTypicalTask; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -86,19 +85,6 @@ void equals() { assertFalse(firstFindTaskCommand.equals(secondFindTaskCommand)); } - @Test - void findCommand_findAllTasks_showAllTasks() { - TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, - null, null, null); - expectedModel.updateFilteredTaskList(predicate); - String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, - expectedModel.getFilteredTaskList().size()); - FindTaskCommand command = new FindTaskCommand(predicate); - - assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(getTypicalTask(), model.getFilteredTaskList()); - } - @Test void findCommand_findSpecificTaskType_showTaskOfSpecificType() { TaskMultiplePredicate predicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index 70155caed10..c7cca4b16a9 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -11,6 +11,7 @@ import java.util.List; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import manageezpz.commons.core.Messages; @@ -18,6 +19,7 @@ import manageezpz.model.person.PersonMultiplePredicate; class FindEmployeeCommandParserTest { + private static final String EMPTY_STRING = ""; private static final String NO_OPTION_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindEmployeeCommand.NO_OPTIONS + FindEmployeeCommand.MESSAGE_USAGE); private static final String INVALID_NAME_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, @@ -27,31 +29,35 @@ class FindEmployeeCommandParserTest { private static final String INVALID_EMAIL_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindEmployeeCommand.INVALID_EMAIL + FindEmployeeCommand.MESSAGE_USAGE); - private FindEmployeeCommandParser parser = new FindEmployeeCommandParser(); + private FindEmployeeCommandParser parser; + + @BeforeEach + void setParser() { + parser = new FindEmployeeCommandParser(); + } @Test void findEmployeeCommandParser_noOptions_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD); + String userInput = String.join(" ", EMPTY_STRING); assertParseFailure(parser, userInput, NO_OPTION_MESSAGE); } @Test void findEmployeeCommandParser_noName_throwsParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_NAME.getPrefix()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix()); assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); } @Test void findEmployeeCommandParser_invalidNamesUsed_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_NAME.getPrefix(), VALID_NAME_AMY, "James&"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), + VALID_NAME_AMY, "James&"); assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); } @Test void findEmployeeCommandParser_validNamesUsed_findCommand() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_NAME.getPrefix(), VALID_NAME_AMY); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), VALID_NAME_AMY); List names = List.of((VALID_NAME_AMY).split(" ")); PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, null, null); FindEmployeeCommand command = new FindEmployeeCommand(predicate); @@ -60,22 +66,19 @@ void findEmployeeCommandParser_validNamesUsed_findCommand() { @Test void findEmployeeCommandParser_emptyPhone_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_PHONE.getPrefix()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PHONE.getPrefix()); assertParseFailure(parser, userInput, INVALID_PHONE_MESSAGE); } @Test void findEmployeeCommandParser_invalidPhone_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_PHONE.getPrefix(), "1800-200-200"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PHONE.getPrefix(), "1800-200-200"); assertParseFailure(parser, userInput, INVALID_PHONE_MESSAGE); } @Test void findEmployeeCommandParse_validPhone_findCommand() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_PHONE.getPrefix(), - VALID_PHONE_AMY); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PHONE.getPrefix(), VALID_PHONE_AMY); PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, VALID_PHONE_AMY, null); FindEmployeeCommand command = new FindEmployeeCommand(predicate); assertParseSuccess(parser, userInput, command); @@ -83,21 +86,19 @@ void findEmployeeCommandParse_validPhone_findCommand() { @Test void findEmployeeCommandParser_emptyEmail_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_EMAIL.getPrefix()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_EMAIL.getPrefix()); assertParseFailure(parser, userInput, INVALID_EMAIL_MESSAGE); } @Test void findEmployeeCommandParser_invalidEmail_throwParseException() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, - PREFIX_EMAIL.getPrefix(), "Booby!Yahoo"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_EMAIL.getPrefix(), "Booby!Yahoo"); assertParseFailure(parser, userInput, INVALID_EMAIL_MESSAGE); } @Test void findEmployeeCommandParse_validEmail_findCommand() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_EMAIL.getPrefix(), + String userInput = String.join(" ", EMPTY_STRING, PREFIX_EMAIL.getPrefix(), VALID_EMAIL_AMY); PersonMultiplePredicate predicate = new PersonMultiplePredicate(null, null, VALID_EMAIL_AMY); FindEmployeeCommand command = new FindEmployeeCommand(predicate); @@ -106,7 +107,7 @@ void findEmployeeCommandParse_validEmail_findCommand() { @Test void findEmployeeCommandParse_multipleOptions_findCommand() { - String userInput = String.join(" ", FindEmployeeCommand.COMMAND_WORD, PREFIX_NAME.getPrefix(), + String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), VALID_NAME_AMY, PREFIX_EMAIL.getPrefix(), VALID_EMAIL_AMY, PREFIX_PHONE.getPrefix(), VALID_PHONE_AMY); List names = List.of((VALID_NAME_AMY).split(" ")); PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, VALID_PHONE_AMY, VALID_EMAIL_AMY); diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index 14a12f54f76..b7a33747382 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -19,6 +19,7 @@ import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import manageezpz.commons.core.Messages; @@ -28,34 +29,43 @@ import manageezpz.model.task.TaskMultiplePredicate; class FindTaskCommandParserTest { + private static final String EMPTY_STRING = ""; private static final String NO_OPTIONS_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.NO_OPTIONS + FindTaskCommand.MESSAGE_USAGE); - private static final String INVALID_DESCRIPTION_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_DESCRIPTION_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DESCRIPTION + FindTaskCommand.MESSAGE_USAGE); private static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); private static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); - private static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); private static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); private static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindTaskCommand.MESSAGE_USAGE); - private static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.MORE_THAN_ONE_TASK_TYPE + FindTaskCommand.MESSAGE_USAGE); - private FindTaskCommandParser parser = new FindTaskCommandParser(); + private FindTaskCommandParser parser; + + @BeforeEach + void setParser() { + parser = new FindTaskCommandParser(); + } @Test void findTaskCommandParser_noArguments_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD); + String userInput = " "; assertParseFailure(parser, userInput, NO_OPTIONS_MESSAGE); } @Test void findTaskCommandParser_specificTaskType_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_TODO.toString()); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -64,21 +74,19 @@ void findTaskCommandParser_specificTaskType_findTaskCommand() { @Test void findTaskCommandParser_multipleTaskType_throwsParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), - PREFIX_DEADLINE.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_TODO.toString(), PREFIX_DEADLINE.toString()); assertParseFailure(parser, userInput, MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE); } @Test void findTaskCommandParser_emptyDescription_throwsParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DESCRIPTION.toString()); assertParseFailure(parser, userInput, INVALID_DESCRIPTION_ERROR_MESSAGE); } @Test void findTaskCommandParser_withDescription_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DESCRIPTION.toString(), - VALID_TASK_DESCRIPTION); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, LIST_DESCRIPTIONS, null, null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -87,27 +95,26 @@ void findTaskCommandParser_withDescription_findTaskCommand() { @Test void findTaskCommandParser_noDate_throwsParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DATE.toString()); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @Test void findTaskCommandParser_invalidDate_throwsParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), - INVALID_DATE); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DATE.toString(), INVALID_DATE); assertParseFailure(parser, userInput, INVALID_DATE_ERROR_MESSAGE); } @Test void findTaskCommandParser_todoWithDateOption_throwParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_TODO.toString(), - PREFIX_DATE.toString(), VALID_DATE); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_TODO.toString(), PREFIX_DATE.toString(), + VALID_DATE); assertParseFailure(parser, userInput, TODO_DATE_ERROR_MESSAGE); } @Test void findTaskCommandParser_validDate_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DATE.toString(), VALID_DATE); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DATE.toString(), VALID_DATE); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, new Date(VALID_DATE), null, null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -115,22 +122,20 @@ void findTaskCommandParser_validDate_findTaskCommand() { } @Test - void findTaskCommandPaeser_emptyPriority_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString()); + void findTaskCommandParser_emptyPriority_throwParseException() { + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PRIORITY.toString()); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @Test void findTaskCommandParser_invalidPriority_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), - INVALID_PRIORITY); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PRIORITY.toString(), INVALID_PRIORITY); assertParseFailure(parser, userInput, INVALID_PRIORITY_ERROR_MESSAGE); } @Test void findTaskCommandParser_validPriority_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_PRIORITY.toString(), - VALID_PRIORITY); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_PRIORITY.toString(), VALID_PRIORITY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, Priority.valueOf(VALID_PRIORITY), null, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -139,21 +144,19 @@ void findTaskCommandParser_validPriority_findTaskCommand() { @Test void findTaskCommandParser_emptyAssignee_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString()); assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } @Test void findTaskCommandParser_invalidAssignee_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, - PREFIX_ASSIGNEES.toString(), "James&"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString(), "James&"); assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } @Test void findTaskCommandParser_haveAssignee_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_ASSIGNEES.toString(), - VALID_NAME_AMY); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, VALID_NAME_AMY, null); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -162,21 +165,19 @@ void findTaskCommandParser_haveAssignee_findTaskCommand() { @Test void findTaskCommandParser_emptyBoolean_throwParseError() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString()); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_IS_MARKED.toString()); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test void findTaskCommandParser_invalidBoolean_throwParseException() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), - INVALID_BOOLEAN); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_IS_MARKED.toString(), INVALID_BOOLEAN); assertParseFailure(parser, userInput, INVALID_BOOLEAN_ERROR_MESSAGE); } @Test void findTaskCommandParser_validBoolean_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_IS_MARKED.toString(), - VALID_BOOLEAN); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); TaskMultiplePredicate expectedPredicate = new TaskMultiplePredicate(null, null, null, null, null, Boolean.valueOf(VALID_BOOLEAN)); FindTaskCommand expectedCommand = new FindTaskCommand(expectedPredicate); @@ -185,7 +186,7 @@ void findTaskCommandParser_validBoolean_findTaskCommand() { @Test void findTaskCommandParser_multipleArguments_findTaskCommand() { - String userInput = String.join(" ", FindTaskCommand.COMMAND_WORD, PREFIX_DEADLINE.toString(), + String userInput = String.join(" ", EMPTY_STRING, PREFIX_DEADLINE.toString(), PREFIX_DESCRIPTION.toString(), VALID_TASK_DESCRIPTION, PREFIX_DATE.toString(), VALID_DATE, PREFIX_PRIORITY.toString(), VALID_PRIORITY, PREFIX_ASSIGNEES.toString(), VALID_NAME_AMY, PREFIX_IS_MARKED.toString(), VALID_BOOLEAN); diff --git a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java index 48a13e7214b..648dbd27730 100644 --- a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java @@ -10,32 +10,26 @@ import org.junit.jupiter.api.Test; class PersonMultiplePredicateTest { + // Equals method @Test void personMultiplePredicate_equalsOwnObject_true() { - PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); assertTrue(predicate1.equals(predicate1)); } @Test void personalMultiplePredicate_equalsOtherObject_false() { Object object = new Object(); - PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); assertFalse(predicate1.equals(object)); } @Test void personalMultiplePredicate_equalsNull_false() { - PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); + PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); assertFalse(predicate1.equals(null)); } - @Test - void personalMultiplePredicate_equalsWithAllNullValue_true() { - PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, null); - assertTrue(predicate1.equals(predicate2)); - } - @Test void personalMultiplePredicate_equalsWithSameNames_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); @@ -86,12 +80,8 @@ void personalMultiplePredicate_equalsWithDifferentEmail_false() { assertFalse(predicate1.equals(predicate2)); } - @Test - void personalMultiplePredicate_noOptionsSpecified_true() { - PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, null); - assertTrue(predicate1.test(ALICE)); - } + // Test with person class @Test void personalMultiplePredicate_sameName_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index b9c42b464dc..0f2f2023a77 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -12,26 +12,32 @@ import java.util.List; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import manageezpz.testutil.DeadlineBuilder; class TaskMultiplePredicateTest { private static final String userInput = "Play Genshin Impact"; - private static final Deadline deadline = new DeadlineBuilder().withDescription(userInput) - .withDate("2022-04-01").withTime("0000").build(); + private Deadline deadline; + @BeforeEach + void setDeadline() { + deadline = new DeadlineBuilder().withDescription(userInput).withDate("2022-04-01").withTime("0000").build(); + } + + // Testing equal method @Test void taskMultiplePredicate_equalThisObject_true() { - TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, - null, null, null, null); - assertTrue(predicateWithNoOptions.equals(predicateWithNoOptions)); + TaskMultiplePredicate predicate1 = new TaskMultiplePredicate(PREFIX_TODO, null, null, + null, null, null); + assertTrue(predicate1.equals(predicate1)); } @Test void taskMultiplePredicate_equalSomeOtherObject_false() { Object otherObject = new Object(); - TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(null, null, + TaskMultiplePredicate predicateWithNoOptions = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); assertFalse(predicateWithNoOptions.equals(otherObject)); } @@ -142,17 +148,13 @@ void taskMultiplePredicate_equalIsMarked() { assertFalse(predicateIsMarked.equals(predicateIsMarkedDifferent)); } + // Test with task objects @Test void taskMultiplePredicate_containsCorrectTaskType_true() { - // Task type not specified - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); - // Task type same - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(PREFIX_DEADLINE, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_DEADLINE, null, null, null, null, null); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); } @Test @@ -164,25 +166,20 @@ void taskMultiplePredicate_containsCorrectTaskType_false() { @Test void taskMultiplePredicate_containsDescription_true() { - // Description not specified - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); - // Only 1 word - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, List.of("Play"), null, null, null, null); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); // More than 1 word - TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, List.of("Genshin", "Impact"), null, null, null, null); - assertTrue(predicateCombo3.test(deadline)); + assertTrue(predicateCombo2.test(deadline)); // Mixed cases - TaskMultiplePredicate predicateCombo4 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo3 = new TaskMultiplePredicate(null, List.of("GeNshIn", "IMPact"), null, null, null, null); - assertTrue(predicateCombo4.test(deadline)); + assertTrue(predicateCombo3.test(deadline)); } @Test @@ -192,7 +189,7 @@ void taskMultiplePredicate_containsDescription_false() { List.of("P1ay"), null, null, null, null); assertFalse(predicateCombo1.test(deadline)); - // No keywords same despite all other same + // No keywords same despite all other options same TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(PREFIX_DEADLINE, List.of("P1ay"), new Date("2022-04-01"), Priority.NONE, null, Boolean.FALSE); assertFalse(predicateCombo2.test(deadline)); @@ -200,15 +197,10 @@ void taskMultiplePredicate_containsDescription_false() { @Test void taskMultiplePredicate_containsDate_true() { - // null date - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); - // Same date - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, new Date("2022-04-01"), null, null, null); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); } @Test @@ -221,15 +213,11 @@ void taskMultiplePredicate_containsDate_false() { @Test void taskMultiplePredicate_containsPriority_true() { deadline.setPriority("HIGH"); - // Priority null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); // Same priority - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, Priority.HIGH, null, null); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); } @Test @@ -248,15 +236,10 @@ void taskMultiplePredicate_containsAssignee_true() { deadline.addAssignees(BENSON); deadline.addAssignees(CARL); - // Assignee null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); - // Same assignee - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, ALICE.getName().toString(), null); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); } @Test @@ -275,15 +258,10 @@ void taskMultiplePredicate_containsAssignee_false() { void taskMultiplePredicate_containsIsMarked_true() { deadline.setTaskDone(); - // Is Marked is null - TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, - null, null, null, null, null); - assertTrue(predicateCombo1.test(deadline)); - // Is Marked is the same - TaskMultiplePredicate predicateCombo2 = new TaskMultiplePredicate(null, + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, null, null, null, Boolean.TRUE); - assertTrue(predicateCombo2.test(deadline)); + assertTrue(predicateCombo1.test(deadline)); } @Test @@ -295,4 +273,11 @@ void taskMultiplePredicate_containsIsMarked_false() { null, null, null, null, Boolean.FALSE); assertFalse(predicateCombo1.test(deadline)); } + + @Test + void taskMultiplePredicate_multipleOptions_true() { + TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_DEADLINE, + List.of("Genshin"), new Date("2022-04-01"), Priority.NONE, null, Boolean.FALSE); + assertTrue(predicateCombo1.test(deadline)); + } } From 16032e450ac6d55bf052777980e2082070df1710 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 30 Mar 2022 03:38:43 +0800 Subject: [PATCH 286/507] Update unit test cases with correct names --- .../logic/commands/FindTaskCommandTest.java | 4 ++-- .../parser/FindEmployeeCommandParserTest.java | 6 +++++ .../parser/FindTaskCommandParserTest.java | 10 +++++++-- .../person/PersonMultiplePredicateTest.java | 6 ++--- .../model/task/TaskMultiplePredicateTest.java | 22 +++++++++---------- 5 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java index 0d24f94ca82..a84de75fe76 100644 --- a/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/FindTaskCommandTest.java @@ -99,7 +99,7 @@ void findCommand_findSpecificTaskType_showTaskOfSpecificType() { } @Test - void findCommand_findTaskWithDescription_showTasksWithGivenDescrription() { + void findCommand_findTaskWithDescription_showTasksWithGivenDescription() { // Only 1 word List keywords1 = List.of("Book"); TaskMultiplePredicate predicate1 = new TaskMultiplePredicate(null, @@ -153,7 +153,7 @@ void findCommand_findTaskWithPriority_showTasksWithGivenPriority() { } @Test - void findCommand_findTaskWithAssignee_showTasksWithGivenPriority() { + void findCommand_findTaskWithAssignee_showTasksWithGivenAssignee() { TaskMultiplePredicate predicate = new TaskMultiplePredicate(null, null, null, null, ALICE.getName().fullName, null); expectedModel.updateFilteredTaskList(predicate); diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index c7cca4b16a9..88b71b11ffb 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -42,6 +42,12 @@ void findEmployeeCommandParser_noOptions_throwParseException() { assertParseFailure(parser, userInput, NO_OPTION_MESSAGE); } + @Test + void findEmployeeCommandParser_invalidOption_throwParseException() { + String userInput = String.join(" ", EMPTY_STRING, "nonExistentCommand/"); + assertParseFailure(parser, userInput, NO_OPTION_MESSAGE); + } + @Test void findEmployeeCommandParser_noName_throwsParseException() { String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix()); diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index b7a33747382..f0e709da269 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -58,11 +58,17 @@ void setParser() { } @Test - void findTaskCommandParser_noArguments_findTaskCommand() { + void findTaskCommandParser_noArguments_throwParseException() { String userInput = " "; assertParseFailure(parser, userInput, NO_OPTIONS_MESSAGE); } + @Test + void findTaskCommandParser_invalidArguments_throwParseException() { + String userInput = String.join(" ", EMPTY_STRING, "someNonExistentCommand/"); + assertParseFailure(parser, userInput, NO_OPTIONS_MESSAGE); + } + @Test void findTaskCommandParser_specificTaskType_findTaskCommand() { String userInput = String.join(" ", EMPTY_STRING, PREFIX_TODO.toString()); @@ -149,7 +155,7 @@ void findTaskCommandParser_emptyAssignee_throwParseException() { } @Test - void findTaskCommandParser_invalidAssignee_findTaskCommand() { + void findTaskCommandParser_invalidAssignee_throwParseException() { String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString(), "James&"); assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } diff --git a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java index 648dbd27730..76e17efdf8a 100644 --- a/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/person/PersonMultiplePredicateTest.java @@ -63,7 +63,7 @@ void personalMultiplePredicate_equalsWithDifferentPhone_false() { } @Test - void personalMultiplePredicate_equalsWithSameEmail_false() { + void personalMultiplePredicate_equalsWithSameEmail_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(null, null, ALICE.getEmail().toString()); PersonMultiplePredicate predicate2 = new PersonMultiplePredicate(null, null, @@ -83,7 +83,7 @@ void personalMultiplePredicate_equalsWithDifferentEmail_false() { // Test with person class @Test - void personalMultiplePredicate_sameName_true() { + void personalMultiplePredicate_containsName_true() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Alice"), null, null); assertTrue(predicate1.test(ALICE)); @@ -98,7 +98,7 @@ void personalMultiplePredicate_sameName_true() { } @Test - void personalMultiplePredicate_differentName_false() { + void personalMultiplePredicate_doesNotContainName_false() { PersonMultiplePredicate predicate1 = new PersonMultiplePredicate(List.of("Al1ce"), null, null); assertFalse(predicate1.test(ALICE)); } diff --git a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java index 0f2f2023a77..54cb1bb9d09 100644 --- a/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java +++ b/src/test/java/manageezpz/model/task/TaskMultiplePredicateTest.java @@ -150,7 +150,7 @@ void taskMultiplePredicate_equalIsMarked() { // Test with task objects @Test - void taskMultiplePredicate_containsCorrectTaskType_true() { + void taskMultiplePredicate_containsSameTaskType_true() { // Task type same TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_DEADLINE, null, null, null, null, null); @@ -158,14 +158,14 @@ void taskMultiplePredicate_containsCorrectTaskType_true() { } @Test - void taskMultiplePredicate_containsCorrectTaskType_false() { + void taskMultiplePredicate_containsDifferentTaskType_false() { TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(PREFIX_TODO, null, null, null, null, null); assertFalse(predicateCombo1.test(deadline)); } @Test - void taskMultiplePredicate_containsDescription_true() { + void taskMultiplePredicate_containsWordsInDescription_true() { // Only 1 word TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, List.of("Play"), null, null, null, null); @@ -183,7 +183,7 @@ void taskMultiplePredicate_containsDescription_true() { } @Test - void taskMultiplePredicate_containsDescription_false() { + void taskMultiplePredicate_doesNotContainWordsInDescription_false() { // None of the words found TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, List.of("P1ay"), null, null, null, null); @@ -196,7 +196,7 @@ void taskMultiplePredicate_containsDescription_false() { } @Test - void taskMultiplePredicate_containsDate_true() { + void taskMultiplePredicate_containsSameDate_true() { // Same date TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, new Date("2022-04-01"), null, null, null); @@ -204,14 +204,14 @@ void taskMultiplePredicate_containsDate_true() { } @Test - void taskMultiplePredicate_containsDate_false() { + void taskMultiplePredicate_containsDifferentDate_false() { TaskMultiplePredicate predicateCombo1 = new TaskMultiplePredicate(null, null, new Date("2022-04-02"), null, null, null); assertFalse(predicateCombo1.test(deadline)); } @Test - void taskMultiplePredicate_containsPriority_true() { + void taskMultiplePredicate_containsSamePriority_true() { deadline.setPriority("HIGH"); // Same priority @@ -221,7 +221,7 @@ void taskMultiplePredicate_containsPriority_true() { } @Test - void taskMultiplePredicate_containsPriority_false() { + void taskMultiplePredicate_containsDifferentPriority_false() { deadline.setPriority("HIGH"); // Different priority @@ -243,7 +243,7 @@ void taskMultiplePredicate_containsAssignee_true() { } @Test - void taskMultiplePredicate_containsAssignee_false() { + void taskMultiplePredicate_noContainAssignee_false() { deadline.addAssignees(ALICE); deadline.addAssignees(BENSON); deadline.addAssignees(CARL); @@ -255,7 +255,7 @@ void taskMultiplePredicate_containsAssignee_false() { } @Test - void taskMultiplePredicate_containsIsMarked_true() { + void taskMultiplePredicate_containsSameIsMarked_true() { deadline.setTaskDone(); // Is Marked is the same @@ -265,7 +265,7 @@ void taskMultiplePredicate_containsIsMarked_true() { } @Test - void taskMultiplePredicate_containsIsMarked_false() { + void taskMultiplePredicate_containsDifferentIsMarked_false() { deadline.setTaskDone(); // Is Marked boolean different From 08fcbe8eacc42d9bc8f331c91bf408899223e841 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 30 Mar 2022 04:27:39 +0800 Subject: [PATCH 287/507] Change code to improve code quality --- .../logic/parser/FindTaskCommandParser.java | 6 +- .../model/person/PersonMultiplePredicate.java | 44 ++++-------- .../model/task/TaskMultiplePredicate.java | 69 +++++-------------- 3 files changed, 33 insertions(+), 86 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index d917954d060..bce7e161693 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -85,15 +85,13 @@ private Prefix getPrefix(ArgumentMultimap argMultiMap) { } else { return currentPrefixes.get(0); } - } private List getDescriptions(ArgumentMultimap argMultiMap) { List descriptions = null; if (argMultiMap.isPrefixExist(PREFIX_DESCRIPTION)) { - String description = argMultiMap.getValue(PREFIX_DESCRIPTION).get(); - String[] descriptionArray = description.split("\\s+"); - descriptions = List.of(descriptionArray); + String descriptionString = argMultiMap.getValue(PREFIX_DESCRIPTION).get(); + descriptions = List.of(descriptionString.split("\\s+")); checkIfValidDescription(descriptions); } return descriptions; diff --git a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java index 3c46e35c95c..1c059fa0206 100644 --- a/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java +++ b/src/main/java/manageezpz/model/person/PersonMultiplePredicate.java @@ -9,22 +9,22 @@ * Checks if the options are valid for finding tasks. */ public class PersonMultiplePredicate implements Predicate { - private final List name; + private final List names; private final String phone; private final String email; /** * The constructor for the multipredicate to search for employees with the stated options. - * @param name Name of the employee + * @param names Name of the employee * @param phone Phone number of the employee * @param email Email of the employee. */ - public PersonMultiplePredicate(List name, String phone, String email) { - this.name = name; + public PersonMultiplePredicate(List names, String phone, String email) { + this.names = names; this.phone = phone; this.email = email; - boolean isAtLeastOneNotNull = (this.name != null) || (this.phone != null) || (this.email != null); + boolean isAtLeastOneNotNull = (this.names != null) || (this.phone != null) || (this.email != null); assert isAtLeastOneNotNull : "At least one search option should be specified"; } @@ -35,7 +35,7 @@ public PersonMultiplePredicate(List name, String phone, String email) { public boolean test(Person person) { // Checks if the specific search term is specified in the parameter, then check on the person provided. // Defaults to true if not specified. - boolean hasName = name != null ? checkIfNameExists(person) : true; + boolean hasName = names != null ? checkIfNameExists(person) : true; boolean hasPhone = phone != null ? checkIfPhoneExists(person) : true; boolean hasEmail = email != null ? checkIfEmailExists(person) : true; @@ -43,7 +43,7 @@ public boolean test(Person person) { } private boolean checkIfNameExists(Person person) { - return name.stream().anyMatch(name -> StringUtil.containsWordIgnoreCase(person.getName().fullName, name)); + return names.stream().anyMatch(name -> StringUtil.containsWordIgnoreCase(person.getName().fullName, name)); } private boolean checkIfPhoneExists(Person person) { @@ -65,9 +65,9 @@ public boolean equals(Object other) { return true; } else if (other instanceof PersonMultiplePredicate) { PersonMultiplePredicate otherPredicate = (PersonMultiplePredicate) other; - boolean isNameEquals = checkIfNameEquals(otherPredicate.name); - boolean isPhoneEquals = checkIfPhoneEquals(otherPredicate.phone); - boolean isEmailEquals = checkIfEmailEquals(otherPredicate.email); + boolean isNameEquals = checkIfOptionEqual(names, otherPredicate.names); + boolean isPhoneEquals = checkIfOptionEqual(phone, otherPredicate.phone); + boolean isEmailEquals = checkIfOptionEqual(email, otherPredicate.email); return isNameEquals && isPhoneEquals && isEmailEquals; } else { @@ -75,27 +75,11 @@ public boolean equals(Object other) { } } - private boolean checkIfNameEquals(List name) { - if (name != null) { - return name.equals(this.name); + private boolean checkIfOptionEqual(Object currentObj, Object otherObj) { + if (otherObj != null) { + return otherObj.equals(currentObj); } else { - return this.name == null; - } - } - - private boolean checkIfPhoneEquals(String phone) { - if (phone != null) { - return phone.equals(this.phone); - } else { - return this.phone == null; - } - } - - private boolean checkIfEmailEquals(String email) { - if (email != null) { - return email.equals(this.email); - } else { - return this.email == null; + return currentObj == null; } } } diff --git a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java index 7e55c9baf3e..381dfdbf460 100644 --- a/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java +++ b/src/main/java/manageezpz/model/task/TaskMultiplePredicate.java @@ -15,7 +15,7 @@ */ public class TaskMultiplePredicate implements Predicate { private final Prefix taskType; - private final List description; + private final List descriptions; private final Date date; private final Priority priority; private final String assignee; @@ -24,22 +24,22 @@ public class TaskMultiplePredicate implements Predicate { /** * The constructor for predicate. * @param taskType The task type to search - * @param description The description to search + * @param descriptions The description to search * @param date The date of either the deadline or event * @param priority The priority of the task * @param assignee The employees assigned to the tasks * @param isMarked Whether the task is marked */ - public TaskMultiplePredicate(Prefix taskType, List description, Date date, Priority priority, + public TaskMultiplePredicate(Prefix taskType, List descriptions, Date date, Priority priority, String assignee, Boolean isMarked) { this.taskType = taskType; - this.description = description; + this.descriptions = descriptions; this.date = date; this.priority = priority; this.assignee = assignee; this.isMarked = isMarked; - boolean isAtLeastOneNotNull = (this.taskType != null) || (this.description != null) || (this.date != null) + boolean isAtLeastOneNotNull = (this.taskType != null) || (this.descriptions != null) || (this.date != null) || (this.priority != null) || (this.assignee != null) || (this.isMarked != null); assert isAtLeastOneNotNull : "At least one search option should be specified"; } @@ -52,7 +52,7 @@ public boolean test(Task task) { // Checks if the specific search term is specified in the parameter, then check on the task provided. // Defaults to true if not specified. boolean hasTaskType = taskType != null ? checkIfHasSpecificTaskType(task) : true; - boolean hasKeyword = description != null ? checkIfHasKeywords(task) : true; + boolean hasKeyword = descriptions != null ? checkIfHasKeywords(task) : true; boolean hasDate = date != null ? checkIfHasDate(task) : true; boolean hasPriority = priority != null ? checkIfHasPriority(task) : true; boolean hasAssignee = assignee != null ? checkIfHasAssignee(task) : true; @@ -71,7 +71,7 @@ private boolean checkIfHasSpecificTaskType(Task task) { private boolean checkIfHasKeywords(Task task) { String otherTaskDescription = task.getDescription().toString(); - return description.stream() + return descriptions.stream() .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(otherTaskDescription, keyword)); } @@ -116,12 +116,12 @@ public boolean equals(Object obj) { return true; } else if (obj instanceof TaskMultiplePredicate) { TaskMultiplePredicate pre = (TaskMultiplePredicate) obj; - boolean isSameTaskType = isSameTaskType(pre.taskType); - boolean isSameDescription = isSameDescription(pre.description); - boolean isSameDate = isSameDate(pre.date); - boolean isSamePriority = isSamePriority(pre.priority); - boolean isSameAssignee = isSameAssignee(pre.assignee); - boolean isSameIsMarked = isSameIsMarked(pre.isMarked); + boolean isSameTaskType = isSameOption(taskType, pre.taskType); + boolean isSameDescription = isSameOption(descriptions, pre.descriptions); + boolean isSameDate = isSameOption(date, pre.date); + boolean isSamePriority = isSameOption(priority, pre.priority); + boolean isSameAssignee = isSameOption(assignee, pre.assignee); + boolean isSameIsMarked = isSameOption(isMarked, pre.isMarked); return isSameTaskType && isSameDescription && isSameDate && isSamePriority && isSameAssignee && isSameIsMarked; @@ -129,45 +129,10 @@ public boolean equals(Object obj) { return false; } - private boolean isSameTaskType(Prefix taskType) { - if (taskType != null) { - return taskType.equals(this.taskType); + private boolean isSameOption(Object currentObj, Object otherObj) { + if (otherObj != null) { + return otherObj.equals(currentObj); } - return this.taskType == null; - } - - private boolean isSameDescription(List description) { - if (description != null) { - return description.equals(this.description); - } - return this.description == null; - } - - private boolean isSameDate(Date date) { - if (date != null) { - return date.equals(this.date); - } - return this.date == null; - } - - private boolean isSamePriority(Priority priority) { - if (priority != null) { - return priority.equals(this.priority); - } - return this.priority == null; - } - - private boolean isSameAssignee(String assignee) { - if (assignee != null) { - return assignee.equals(this.assignee); - } - return this.assignee == null; - } - - private boolean isSameIsMarked(Boolean isMarked) { - if (isMarked != null) { - return isMarked.equals(this.isMarked); - } - return this.isMarked == null; + return currentObj == null; } } From 5ba5740b6889e5a598302342cc265f52bf40d796 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 10:17:49 +0800 Subject: [PATCH 288/507] Update UG Change the ordering of the commands, standardize formatting of all commands and update some missing details in other commands Update the table formatting for Command Summary Add the skeleton of editTask for Aaron to use Update details for editEmployee, deleteEmployee, markTask, unmarkTask and deleteTask Add more details for tagTask, untagTask and tagPriority --- docs/UserGuide.md | 373 ++++++++++++++++++++++++++-------------------- 1 file changed, 208 insertions(+), 165 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9d7b0842a6f..2380010521c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -55,11 +55,13 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * Extraneous parameters for commands that do not take in parameters (such as `help`, `exit` and `clear`) will be ignored.
e.g. if the command specifies `help 123`, it will be interpreted as `help`. -* Task related Commands must be strictly lower case. +* Task related commands must be strictly lower case. * Task related parameters must be in sequence as shown in the instruction. -* All indexes are int based, as such the maximum value is 2147483647. (232) +* Parsing parameters of a task is done using the keywords such as `desc/`, `by/` & `at/`, as such, the parsing mechanism would take everything inserted after the keywords. + +* All indexes are int based, as such the maximum value is 2147483647 (231 - 1).
@@ -71,8 +73,7 @@ Shows a message explaining how to access the help page. Format: `help` - -### Adding an employee: `addEmployee` +### Adding an Employee : `addEmployee` Adds an employee to ManageEZPZ. @@ -82,207 +83,243 @@ Examples: * `addEmployee n/John Doe p/98765432 e/johnd@example.com` * `addEmployee p/98754123 n/Betsy Crowe e/betsycrowe@example.com` -### Listing all employees : `listEmployee` +### Listing all Employees : `listEmployee` -Shows a list of all employees in the address book. +Shows a list of all employees in ManageEZPZ. -#### Format: -* `listEmployee` +Format: `listEmployee` +### Editing an Employee : `editEmployee` -### Finding employees: `findEmployee` +Edits an existing employee in ManageEZPZ. -Finds employees that have all of the options as entered. +Format: `editEmployee INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL]` -#### Note: -* Options can be stacked together in any order. -* No options entered will result in all employees list out like the `listEmployee` command. +* Edits the employee at the specified INDEX. +* The index refers to the index number shown in the displayed employee list. +* The index **must be a positive integer** 1, 2, 3, …​ +* Existing values will be updated to the input values. -#### Format: -* `findEmployee n/NAMES` - * Finds all employees which has their name contain any of the words in `NAMES` -* `findEmployee p/PHONE_NUMBER` - * Find employees with the exact phone number -* `findEmployee e/EMAIL` - * Finds employees with the exact email - -#### Examples: -* `findEmployee n/Alex Yeoh` -* `findEmployee p/65162727` -* `findEmployee e/dcsdcr@nus.edu.sg` -* `findEmployee n/Alex Yeo p/65162727 e/alexyeo@google.com` +Examples: +* `editEmployee 1 p/91234567 e/johndoe@example.com` edits the phone number and email address of the 1st employee to be 91234567 and johndoe@example.com respectively. +* `editEmployee 2 n/Betsy Crower` edits the name of the 2nd person to be Betsy Crower. -### Deleting an employee: `deleteEmployee` +### Deleting an Employee : `deleteEmployee` -Deletes the specified employee from the address book. +Deletes the specified employee from ManageEZPZ. Format: `deleteEmployee INDEX` * Deletes the employee 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, …​ +* The index **must be a positive integer** 1, 2, 3, …​ Examples: -* `list` followed by `deleteEmployee 2` deletes the 2nd person in the address book. -* `find Betsy` followed by delete 1 deletes the 1st person in the results of the find command. +* `deleteEmployee 2` deletes the 2nd employee in the displayed employee list. +* `listEmployee` followed by `deleteEmployee 2` sets the displayed employee list to show all employees in ManageEZPZ and deletes the 2nd employee in ManageEZPZ. +* `findEmployee n/Betsy` followed by `deleteEmployee 1` sets the displayed employee list with the results from the findEmployee command and deletes the 1st employee in the displayed employee list. + +### Finding Employees by multiple options : `findEmployee` +Finds employee(s) based on multiple conditions provided. -### Adding a Task: `addTodo`, `addEvent`, `addDeadline` +Note: +* Parameters for finding employees can be entered together in any order. +* You must enter at least one parameter. -Adds a Task into the Task list. +Format: `findEmployee [n/NAMES] [p/PHONE_NUMBER] [e/EMAIL]` +* `findEmployee n/NAMES` finds employees whose names contain any of the words in [LIST OF NAMES]. +* `findEmployee p/PHONE_NUMBER` finds employees with the exact phone number. +* `findEmployee e/EMAIL` finds employees with the exact email. + +Examples: +* `findEmployee n/Alex` +* `findEmployee p/87438807` +* `findEmployee e/alexyeoh@example.com` +* `findEmployee n/Bernice Yu p/99272758 e/berniceyu@example.com` + +### Adding a Task : `addTodo`, `addEvent`, `addDeadline` + +Adds a task to ManageEZPZ. Format: * `addTodo desc/TASK_DESCRIPTION` * `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` -* `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` +* `addEvent desc/TASK_DESCRIPTION at/[DATE] START_TIME END_TIME` Examples: -* `addTodo desc/Powerpoint slides for company XYZ` +* `addTodo desc/Powerpoint Slides for Company XYZ` * `addDeadline desc/Client Proposal Slides by/2022-03-20 1800` -* `addEvent desc/Business meeting at/2022-02-18 1900 2000` +* `addEvent desc/Business Meeting at/2022-02-18 1900 2000` + +
-
:bulb: **Take Note:** -For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format) +**:bulb: Take Note:** + +For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format). -Furthermore, parsing of task is done using the keywords such as "desc/", "by/" & "at/" as such, -the parsing mechanism would take everything inserted after the keywords.
+### Listing all Tasks : `listTask` -### Marking a task as done : `mark` -Mark a task in the Task list as done : +Shows a list of all tasks in ManageEZPZ. -Format: `mark INDEX` +Format: `listTask` -* Marks the task at the specified `INDEX`. -* The index refers to the index number shown in the displayed Task list. -* The index **must be a positive integer** 1, 2, 3, …​ +### Finding Tasks by multiple options : `findTask` -### UnMarking a task as done : `unmark` -Mark a task in the Task list as done : +Finds task(s) based on multiple conditions provided. -Format: `unmark INDEX` +Note: +* Parameters for finding tasks can be entered together in any order. +* You must enter at least one parameter from either Task Type or the valid options. +* Task Type is optional, however, when entered, only one task type is allowed. +* Any other invalid options not stated below will be ignored. -* UnMarks the task at the specified `INDEX`. -* The index refers to the index number shown in the displayed Task list. -* The index **must be a positive integer** 1, 2, 3, …​ +Task Type Available: +* `todo/`: Todos +* `deadline/`: Deadlines +* `event/`: Events -### Deleting a Task : `delete` -Deletes the specified Task from the List. +Options: +* `desc/`: Description of the tasks +* `date/`: Date of the task in YYYY-MM-DD (only for deadline and event) +* `priority/`: Priority of task, only `HIGH`, `MEDIUM`, `LOW` and `NONE` +* `assignees/`: The assignees that was assigned to the task (only one full name of assignee allowed) +* `isMarked/`: Whether the task is marked, only `true` or `false` -Format: `delete INDEX` +Format: +* `findTask todo/` finds all todos +* `findTask deadline/` finds all deadlines +* `findTask event/` find all events +* `findTask desc/[LIST OF WORDS]` finds all tasks which contain any of the words in [LIST OF WORDS]. +* `findTask date/YYYY-MM-DD` finds all deadlines and events with the date +* `findTask priority/PRIORITY` find all tasks with the given PRIORITY [HIGH, MEDIUM, LOW, NONE] +* `findTask assignees/ASSIGNEE FULL NAME` finds all tasks assigned to the stated assignee (in full name) +* `findTask isMarked/BOOLEAN` finds all tasks that is already marked as done (`true`) or unmarked i.e., not done (`false`) + +Example: +* `findTask desc/homework` +* `findTask date/2022-04-16` +* `findTask desc/work priority/HIGH` +* `findTask deadline/ desc/school date/2022-04-16 priority/HIGH assignees/Alex Yeo isMarked/true` + * Finds the task with a description that contains all the following options: + * Task type of deadline, + * description which contains the word “school”, + * date 2022-04-16, + * priority high, + * assigned to Alex Yeoh, + * and is marked as done. + +### Editing a Task : `editTask` + +Edits an existing task in ManageEZPZ. -* Deletes the task at the specified `INDEX`. -* The index refers to the index number shown in the displayed Task list. -* The index **must be a positive integer** 1, 2, 3, …​ +Format: +* `editTask INDEX [desc/NAME]` +* `editTask INDEX []` +* `editTask INDEX []` Examples: -* `delete 2` deletes the 2nd Task in the Task list. +* `editTask XXX` edits ... +* `editTask XXX` edits ... -### Locating Task by multiple options: `findTask` +### Marking a Task : `markTask` -Finds task(s) based on multiple conditions provided. +Marks the specified task in ManageEZPZ as done. -#### Note: -* Arguments can be stacked together in any order. -* Task Type is optional. -* However, only one task type is allowed. -* Any other invalid options not stated below will be ignored -* No options provided will list down all the tasks like `listTask` +Format: `markTask INDEX` -#### Task Type Available: -* `todo/`: Todos -* `deadline/`: Deadlines -* `event/`: Events +* Marks the task at the specified `INDEX` as done. +* The index refers to the index number shown in the displayed task list. +* The index **must be a positive integer** 1, 2, 3, …​ -#### Options : -* `desc/`: Description of the tasks -* `date/`: Date of the task in YYYY-MM-DD (Only for deadline and event) -* `priority/`: Priority of task. Only `HIGH`, `MEDIUM`, `LOW` and `NONE` -* `assignees/`: The assignees that was assigned to the task (Only one full name of assignee allowed) -* `isMarked/`: Whether the task is marked. Only `true` or `false`. - -#### Format: -* `findTask todo/` - * Find all todos -* `findTask deadline/` - * Find all deadlines -* `findTask event/` - * Find all events -* `findTask desc/[LIST OF WORDS]` - * Finds all tasks which contain any of the words in [LIST OF WORDS]. -* `findTask date/YYYY-MM-DD` - * Find all deadlines and events with the date -* `findTask priority/PRIORITY` - * Find all tasks with the given PRIORITY [HIGH, MEDIUM, LOW, NONE] -* `findTask assignees/Assignee full name` - * Find all tasks assignee to the stated assignee (in full name) -* `findTask isMarked/BOOLEAN` - * Find all tasks that is already marked (`true`) or unmarked (`false`) - * Finds the task with a description that contains all of the following options: - * Description which contains the word “School”, - * date 2022-04-16, - * high priority, - * assigned to Alex Yeoh - * and is marked. - - -#### Example: - * `findTask desc/homework` - * `findTask date/2022-04-16` - * `findTask desc/work priority/HIGH` - * `findTask deadlines/ desc/school date/2022-04-16 priority/HIGH assignees/Alex Yeo isMarked/true` +Examples: +* `markTask 2` marks the 2nd task in the displayed task list as done. +* `listTask` followed by `markTask 2` sets the displayed task list to show all tasks in ManageEZPZ and marks the 2nd task in ManageEZPZ as done. +* `findTask desc/slides` followed by `markTask 1` sets the displayed task list with the results from the findTask command and marks the 1st task in the displayed task list as done. +### Unmarking a Task : `unmarkTask` -### Listing all Tasks : `listTask` +Unmarks the specified task in ManageEZPZ, i.e., changes the status back to not done. -Shows a list of all tasks in ManageEZPZ. +Format: `unmarkTask INDEX` -Format: +* Unmarks the task at the specified `INDEX` to change the status back to not done. +* The index refers to the index number shown in the displayed Task list. +* The index **must be a positive integer** 1, 2, 3, …​ -* `listTask` +Examples: +* `unmarkTask 2` changes the 2nd task in the displayed task list back to not done. +* `listTask` followed by `unmarkTask 2` sets the displayed task list to show all tasks in ManageEZPZ and changes the 2nd task in ManageEZPZ back to not done. +* `findTask desc/slides` followed by `unmarkTask 1` sets the displayed task list with the results from the findTask command and changes the 1st task in the displayed task list back to not done. -### Tagging Tasks to Employees: `tagTask` +### Deleting a Task : `deleteTask` -Assigns a Task to the Employee +Deletes the specified task from ManageEZPZ. -Note: -* For `tagTask`, the INDEX must be a positive integer 1,2,3... -* For `tagTask`, the NAME must be a valid Employee Name from ManageEZPZ. +Format: `deleteTask INDEX` + +* Deletes the task at the specified `INDEX`. +* The index refers to the index number shown in the displayed task list. +* The index **must be a positive integer** 1, 2, 3, …​ + +Examples: +* `deleteTask 2` deletes the 2nd task in the displayed task list. +* `listTask` followed by `deleteTask 2` sets the displayed task list to show all tasks in ManageEZPZ and deletes the 2nd task in ManageEZPZ. +* `findTask desc/slides` followed by `deleteTask 1` sets the displayed task list with the results from the findTask command and deletes the 1st task in the displayed task list. + +### Tagging a Task to an Employee : `tagTask` + +Assigns the specified task to an employee. Format: `tagTask INDEX n/NAME` +* Assigns the task at the specified `INDEX` to the employee with the specified `NAME`. +* The index refers to the index number shown in the displayed task list. +* The index **must be a positive integer** 1, 2, 3, …​ +* The name must be a valid employee name in ManageEZPZ. Example: `tagTask 1 n/Alex Yeoh` +* `tagTask 1 n/Alex Yeoh` assigns the 1st task in the displayed task list to the employee with the name Alex Yeoh. +* `listTask` followed by `tagTask 1 n/Alex Yeoh` sets the displayed task list to show all tasks in ManageEZPZ and assigns the 1st task in ManageEZPZ to the employee with the name Alex Yeoh. +* `findTask desc/slides` followed by `tagTask 1 n/Alex Yeoh` sets the displayed task list with the results from the findTask command and assigns the 1st task in the displayed task list to the employee with the name Alex Yeoh. -### Untag Tasks from Employees: `untagTask` +### Untagging a Task from an Employee : `untagTask` -Deallocate the Task from Employee. - -Note: -* For `untagTask`, the INDEX must be a positive integer 1,2,3... -* For `untagTask`, the NAME must be a valid Employee Name from ManageEZPZ. +Deallocates the specified task from an employee. Format: `untagTask INDEX n/NAME` +* Deallocates the task at the specified `INDEX` from the employee with the specified `NAME`. +* The index refers to the index number shown in the displayed task list. +* The index **must be a positive integer** 1, 2, 3, …​ +* The name must be a valid employee name in ManageEZPZ. -Example: `untagTask 1 n/Alex Yeoh` - -### Tag Priority to a Task: `tagPriority` +Example: +* `untagTask 1 n/Alex Yeoh` deallocates the 1st task in the displayed task list from the employee with the name Alex Yeoh. +* `listTask` followed by `untagTask 1 n/Alex Yeoh` sets the displayed task list to show all tasks in ManageEZPZ and deallocates the 1st task in ManageEZPZ from the employee with the name Alex Yeoh. +* `findTask desc/slides` followed by `untagTask 1 n/Alex Yeoh` sets the displayed task list with the results from the findTask command and deallocates the 1st task in the displayed task list from the employee with the name Alex Yeoh. -Assign a Task to a Priority which is enum of “HIGH / MEDIUM / LOW / NONE” +### Tagging a Priority to a Task : `tagPriority` -Note: -* For `tagPriority`, the INDEX must be a positive integer 1,2,3... -* For `tagPriority`, the ENUM must be HIGH, MEDIUM, LOW, or NONE. +Assigns the specified task with a priority of either HIGH, MEDIUM, LOW or NONE. -Format: `tagPriority INDEX priority/ENUM` +Format: `tagPriority INDEX priority/PRIORITY` +* Assigns the task at the specified `INDEX` with the specified priority `PRIORITY`. +* The index refers to the index number shown in the displayed task list. +* The index **must be a positive integer** 1, 2, 3, …​ +* The priority must be either `HIGH`, `MEDIUM`, `LOW`, or `NONE`. +* The priority is case-insensitive, e.g., `high`, `HIGH`, `HiGh` or `hIgH` will match as `HIGH`. +* A task with the priority of `NONE` will not have the priority reflected in the displayed task list. Example: * `tagPriority 1 priority/HIGH` -* `tagPriority 1 priority/NONE` +* `tagPriority 1 priority/HIGH` assigns the 1st task in the displayed task list with the priority of `HIGH`. +* `listTask` followed by `tagPriority 1 priority/HIGH` sets the displayed task list to show all tasks in ManageEZPZ and assigns the 1st task in ManageEZPZ with the priority of `HIGH`. +* `findTask desc/slides` followed by `tagPriority 1 priority/HIGH` sets the displayed task list with the results from the findTask command and assigns the 1st task in the displayed task list with the priority of `HIGH`. ### Clearing all entries : `clear` -Clears all entries from the Task list. +Clears all entries from the employee list and task list. Format: `clear` @@ -300,8 +337,11 @@ ManageEZPZ data are saved in the hard disk automatically after any command that ManageEZPZ data are saved as a JSON file `[JAR file location]/data/ManageEZPZ.json`. Advanced users are welcome to update data directly by editing that data file. -
:exclamation: **Caution:** +
+ +:exclamation: **Caution:** If your changes to the data file makes its format invalid, ManageEZPZ will discard all data and start with an empty data file at the next run. +
_Details coming soon ..._ @@ -317,34 +357,37 @@ _Details coming soon ..._ ## Command summary -###Employee Related Commands -Action | Format, Examples ---------|------------------ -**Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` -**Edit Employee** | `editEmployee INDEX n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `edit 2 n/James Lee e/jameslee@example.com` -**Delete Employee** | `deleteEmployee INDEX`
e.g., `deleteEmployee 3` -**Find Employee** | `findEmployee OPTIONS`
`findEmployee n/Alex Yeoh` -**listEmployee** | `listEmployee` - -###Task Related Commands -Action | Format, Examples -------------|-------------- -**Add Todo Task** | `addTodo desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book` -**Add Deadline Task** | `addDeadline desc/TASK_DESCRIPTION by/DATETIME`
e.g., `addDeadline desc/return book by/16-02-2022 1800` -**Add Event Task** | `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
e.g., `addEvent desc/project meeting at/17-02-2022 1900 2000` -**mark Task** | `markTask INDEX`
e.g., `markTask 2` -**unmark Task** | `unmarkTask INDEX`
e.g., `unmarkTask 2` -**delete Task** | `deleteTask INDEX`
e.g., `deleteTask 2` -**find Task** | `findTask OPTIONS`
e.g.,`findTask todo/` -**list Task** | `listTasks` -**tag Task** | `tagTask INDEX n/NAME`
e.g.,`tagTask 1 n/Alex Yeoh` -**untag Task** |`untagTask INDEX n/NAME`
e.g.,`untagTask 1 n/Alex Yeoh` -**tag Priority** | `tagPriority INDEX priority/ENUM`
e.g.,`tagPriority 1 priority/HIGH` - -###Others -Action | Format -------------|------------- -**Clear** | `clear` -**List** | `list` -**Help** | `help` -**Exit** | `exit` +### Employee Related Commands + +| Action | Format, Examples | +|---------------------|------------------------------------------------------------------------------------------------------------------| +| **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` | +| **List Employees** | `listEmployee` | +| **Find Employee** | `findEmployee OPTIONS`
`findEmployee n/Alex Yeoh` | +| **Edit Employee** | `editEmployee INDEX n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `edit 2 n/James Lee e/jameslee@example.com` | +| **Delete Employee** | `deleteEmployee INDEX`
e.g., `deleteEmployee 3` | + +### Task Related Commands + +| Action | Format, Examples | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------| +| **Add Todo Task** | `addTodo desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book` | +| **Add Deadline Task** | `addDeadline desc/TASK_DESCRIPTION by/DATETIME`
e.g., `addDeadline desc/return book by/16-02-2022 1800` | +| **Add Event Task** | `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
e.g., `addEvent desc/project meeting at/17-02-2022 1900 2000` | +| **List Tasks** | `listTasks` | +| **Find Task** | `findTask OPTIONS`
e.g.,`findTask todo/` | +| **Mark Task** | `markTask INDEX`
e.g., `markTask 2` | +| **Unmark Task** | `unmarkTask INDEX`
e.g., `unmarkTask 2` | +| **Delete Task** | `deleteTask INDEX`
e.g., `deleteTask 2` | +| **Tag Task** | `tagTask INDEX n/NAME`
e.g.,`tagTask 1 n/Alex Yeoh` | +| **Untag Task** | `untagTask INDEX n/NAME`
e.g.,`untagTask 1 n/Alex Yeoh` | +| **Tag Priority** | `tagPriority INDEX priority/PRIORITY`
e.g.,`tagPriority 1 priority/HIGH` | + +### Others + +| Action | Format | +|-----------|---------| +| **Clear** | `clear` | +| **List** | `list` | +| **Help** | `help` | +| **Exit** | `exit` | From 3965def2f9d68a309ef7489a0ece8ec009c52384 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 16:41:09 +0800 Subject: [PATCH 289/507] Implement changes to accommodate to GUI Make changes to MarkTask, UnmarkTask, DeleteEmployee, DeleteTask, TagTask, UntagTask and TagPriority to ensure that GUI view is updated --- .../manageezpz/commons/core/Messages.java | 21 ++--- .../logic/commands/DeleteEmployeeCommand.java | 20 +++-- .../logic/commands/DeleteTaskCommand.java | 19 ++++- .../logic/commands/EditEmployeeCommand.java | 2 +- .../logic/commands/MarkTaskCommand.java | 15 +++- .../logic/commands/TagTaskCommand.java | 81 +++++++++++-------- .../commands/TagTaskPriorityCommand.java | 63 ++++++++------- .../logic/commands/UnmarkTaskCommand.java | 23 ++++-- .../logic/commands/UntagTaskCommand.java | 78 +++++++++++------- .../parser/DeleteEmployeeCommandParser.java | 2 +- .../logic/parser/TagTaskCommandParser.java | 22 ++++- .../parser/TagTaskPriorityCommandParser.java | 41 +++++++--- .../logic/parser/UntagTaskCommandParser.java | 23 +++++- .../java/manageezpz/model/AddressBook.java | 60 ++++++++------ src/main/java/manageezpz/model/Model.java | 19 +++-- .../java/manageezpz/model/ModelManager.java | 38 ++++++--- .../java/manageezpz/model/person/Person.java | 14 ++-- .../model/person/UniquePersonList.java | 29 +++++++ .../java/manageezpz/model/task/Deadline.java | 35 ++++++-- .../java/manageezpz/model/task/Event.java | 38 +++++++-- .../java/manageezpz/model/task/Priority.java | 13 ++- src/main/java/manageezpz/model/task/Task.java | 53 ++++++------ src/main/java/manageezpz/model/task/Todo.java | 29 +++++-- .../manageezpz/model/task/UniqueTaskList.java | 81 ++++++++++++++++--- .../exceptions/InvalidTaskTypeException.java | 4 + .../manageezpz/storage/JsonAdaptedPerson.java | 2 +- src/main/java/manageezpz/ui/MainWindow.java | 4 +- src/main/java/manageezpz/ui/PersonCard.java | 1 + src/main/resources/view/MainWindow.fxml | 2 +- .../commands/AddEmployeeCommandTest.java | 6 +- .../storage/JsonAdaptedPersonTest.java | 2 +- 31 files changed, 580 insertions(+), 260 deletions(-) create mode 100644 src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 14259d416ef..b458e9cb05b 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -5,17 +5,20 @@ */ public class Messages { - public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; + public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command!"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; - public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty \n%1$s"; - public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty \n%1$s"; - public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task Number field cannot be empty \n%1$s"; - public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; - public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; + public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty! \n%1$s"; + public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! \n%1$s"; + public static final String MESSAGE_INVALID_PRIORITY = + "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n%1$s"; + public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n%1$s"; + public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = + "The person index provided is invalid as it exceeds the amount of tasks in the displayed list! \n%1$s"; + public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = + "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n%1$s"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: \n%1$s"; - public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred."; - public static final String MESSAGE_INVALID_TIME_RANGE = "The time range you provided is invalid."; - + public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred!"; + public static final String MESSAGE_INVALID_TIME_RANGE = "The time range you provided is invalid!"; } diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 21c40184b0f..3ec92783205 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -28,6 +28,12 @@ public class DeleteEmployeeCommand extends Command { private final Index targetIndex; + /** + * Constructor to initialize an instance of DeleteEmployeeCommand class + * with the given targetIndex. + * + * @param targetIndex Index of the Employee to be deleted + */ public DeleteEmployeeCommand(Index targetIndex) { this.targetIndex = targetIndex; } @@ -35,20 +41,24 @@ public DeleteEmployeeCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownPersonList = model.getFilteredPersonList(); List lastShownTaskList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownPersonList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + throw new CommandException(String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } Person personToDelete = lastShownPersonList.get(targetIndex.getZeroBased()); - List taskList = lastShownTaskList.stream() - .filter(task -> task.getAssignees().contains(personToDelete)).collect(Collectors.toList()); - for (int j = 0; j < taskList.size(); j++) { - model.untagTask(taskList.get(j), personToDelete); + List affectedTaskList = lastShownTaskList.stream() + .filter(task -> task.getAssignees().contains(personToDelete)) + .collect(Collectors.toList()); + + for (Task task : affectedTaskList) { + model.untagEmployeeFromTask(task, personToDelete); } + model.deletePerson(personToDelete); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); } diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index 9e24f944445..a10ed9e9250 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -12,11 +12,11 @@ import manageezpz.model.task.Task; /** - * Deletes a task identified using it's displayed index from the address book. + * Deletes a task identified using its displayed index from the address book. */ public class DeleteTaskCommand extends Command { - public static final String COMMAND_WORD = "delete"; + public static final String COMMAND_WORD = "deleteTask"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Deletes the task identified by the index number used in the displayed task list.\n" @@ -27,6 +27,12 @@ public class DeleteTaskCommand extends Command { private final Index targetIndex; + /** + * Constructor to initialize an instance of DeleteTaskCommand class + * with the given targetIndex. + * + * @param targetIndex Index of the Task to be deleted + */ public DeleteTaskCommand(Index targetIndex) { this.targetIndex = targetIndex; } @@ -34,16 +40,21 @@ public DeleteTaskCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); model.deleteTask(taskToDelete); + List affectedPersonList = taskToDelete.getAssignees(); - affectedPersonList.forEach(Person::decreaseTaskCount); + + for (Person person : affectedPersonList) { + model.decreaseNumOfTasks(person); + } return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); } diff --git a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java index 0eac9058058..8d40d8cf139 100644 --- a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java @@ -99,7 +99,7 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); - int personToEditNumOfTask = personToEdit.getNumOfTask(); + int personToEditNumOfTask = personToEdit.getNumOfTasks(); return new Person(updatedName, updatedPhone, updatedEmail, personToEditNumOfTask); } diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java index 97885b50097..9747c44082b 100644 --- a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -15,7 +15,7 @@ */ public class MarkTaskCommand extends Command { - public static final String COMMAND_WORD = "mark"; + public static final String COMMAND_WORD = "markTask"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Marks the task identified by the index number used in the displayed task list as done.\n" @@ -26,6 +26,12 @@ public class MarkTaskCommand extends Command { private final Index targetIndex; + /** + * Constructor to initialize an instance of MarkTaskCommand class + * with the given targetIndex. + * + * @param targetIndex Index of the Task to be marked as done + */ public MarkTaskCommand(Index targetIndex) { this.targetIndex = targetIndex; } @@ -33,16 +39,17 @@ public MarkTaskCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); - model.markTask(taskToMark); + Task markedTask = model.markTask(taskToMark); - return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, taskToMark)); + return new CommandResult(String.format(MESSAGE_MARK_TASK_SUCCESS, markedTask)); } @Override diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index fc6e572668c..625f3461c08 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -5,67 +5,80 @@ import java.util.List; +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.person.Person; import manageezpz.model.task.Task; - public class TagTaskCommand extends Command { public static final String COMMAND_WORD = "tagTask"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Tag the Task to your specified Person. " + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Tags the specified employee to the task identified by the " + + "index number used in the displayed task list.\n" + "Parameters: INDEX (must be a positive integer) " - + PREFIX_NAME + "EMPLOYEE_NAME" - + "\r\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + PREFIX_NAME + "Alex Yeoh"; - public static final String MESSAGE_SUCCESS = "Task has been tagged! : %1$s"; - public static final String MESSAGE_DUPLICATE_TASK = "This Task has already been assigned to the same person!"; + + PREFIX_NAME + "EMPLOYEE_NAME\n" + + "Example: " + COMMAND_WORD + " 1 " + PREFIX_NAME + "Alex Yeoh"; + + public static final String MESSAGE_TAG_TASK_SUCCESS = "Employee %1$s is tagged to the task: "; + + public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the name %1$s!"; - private int index; - private String name; + public static final String MESSAGE_PERSON_TAGGED_TO_TASK = "Employee %1$s is already tagged to the task: "; + + private final Index targetIndex; + private final String name; /** - * Constructor for TagTaskCommand - * @param index index of the Task to be tagged. - * @param name Name of Employee to tag Task to. + * Constructor to initialize a TagTaskCommand class with the given + * targetIndex and name. + * + * @param targetIndex Index of the Task to tag the employee + * @param name Name of the Employee to tag the Task to */ - public TagTaskCommand(int index, String name) { - this.index = index; + public TagTaskCommand(Index targetIndex, String name) { + this.targetIndex = targetIndex; this.name = name; } @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - Task task; - try { - task = model.getFilteredTaskList().get(index); - } catch (IndexOutOfBoundsException e) { - throw new CommandException("This Task Number is invalid. \r\n" - + MESSAGE_USAGE); + + List lastShownTaskList = model.getFilteredTaskList(); + List lastShownPersonList = model.getFilteredPersonList(); + + if (targetIndex.getZeroBased() >= lastShownTaskList.size()) { + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } - List personList = model.getFilteredPersonList(); + Task taskToTagEmployee = lastShownTaskList.get(targetIndex.getZeroBased()); + Person person = null; - for (int i = 0; i < personList.size(); i++) { - Person tempPerson = personList.get(i); - if (tempPerson.getName().toString().equals(name)) { - person = tempPerson; + + for (Person p : lastShownPersonList) { + if (p.getName().toString().equals(name)) { + person = p; break; } } + if (person == null) { - throw new CommandException("Sorry, the person does not exist within our database. \r\n" - + MESSAGE_USAGE); - } else if (model.isTagged(task, person)) { - throw new CommandException(MESSAGE_DUPLICATE_TASK); + throw new CommandException(String.format(MESSAGE_NO_SUCH_PERSON, name) + "\n" + MESSAGE_USAGE); } - model.tagTask(task, person); - person.increaseTaskCount(); - return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + if (model.isTagged(taskToTagEmployee, person)) { + throw new CommandException(String.format(MESSAGE_PERSON_TAGGED_TO_TASK, + person.getName().toString()) + taskToTagEmployee + "\n" + MESSAGE_USAGE); + } + + Task taggedEmployeeTask = model.tagEmployeeToTask(taskToTagEmployee, person); + Person updatedPerson = model.increaseNumOfTasks(person); + + return new CommandResult(String.format(MESSAGE_TAG_TASK_SUCCESS, + updatedPerson.getName().toString()) + taggedEmployeeTask); } } diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java index 9025cbfde48..0ca8416e42e 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -3,53 +3,56 @@ import static java.util.Objects.requireNonNull; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; +import java.util.List; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; +import manageezpz.model.task.Priority; import manageezpz.model.task.Task; public class TagTaskPriorityCommand extends Command { public static final String COMMAND_WORD = "tagPriority"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Tag the Task to your specified Priority " + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Tags the specified priority to the task identified by the " + + "index number used in the displayed task list.\n" + "Parameters: INDEX (must be a positive integer) " - + PREFIX_PRIORITY + "NONE/LOW/MEDIUM/HIGH" - + "\r\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + PREFIX_PRIORITY + "HIGH"; - public static final String MESSAGE_SUCCESS = "Task has been tagged with the appropriate priority!"; + + PREFIX_PRIORITY + "PRIORITY_VALUE " + "(must be either NONE/LOW/MEDIUM/HIGH)\n" + + "Example: " + COMMAND_WORD + " 1 " + PREFIX_PRIORITY + "HIGH"; - private int index; - private String priority; + public static final String MESSAGE_TAG_PRIORITY_SUCCESS = "Task is tagged with %1$s priority: "; + + private final Index targetIndex; + private final Priority priority; /** - * Constructor for TagTaskCommand - * @param index index of the Task to be tagged. - * @param priority Priority level to be set for the Task. + * Constructor to initialize a TagTaskPriorityCommand class with the given + * targetIndex and priority. + * + * @param targetIndex Index of the Task to tag the priority level + * @param priority Priority level of the Task */ - public TagTaskPriorityCommand(int index, String priority) { - this.index = index; + public TagTaskPriorityCommand(Index targetIndex, Priority priority) { + this.targetIndex = targetIndex; this.priority = priority; } @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - Task task; - try { - task = model.getFilteredTaskList().get(index); - } catch (IndexOutOfBoundsException e) { - throw new CommandException("This Task Number is invalid. \r\n" - + MESSAGE_USAGE); - } - try { - task.setPriority(priority); - return new CommandResult(String.format(MESSAGE_SUCCESS, task)); - } catch (NullPointerException e) { - throw new CommandException("Priority cannot be NULL! \r\n" - + MESSAGE_USAGE); - } catch (IllegalArgumentException e) { - throw new CommandException("Priority is invalid, Valid Priorities are: NONE/LOW/MEDIUM/HIGH \r\n" - + MESSAGE_USAGE); + + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } + + Task taskToTagPriority = lastShownList.get(targetIndex.getZeroBased()); + Task taggedPriorityTask = model.tagPriorityToTask(taskToTagPriority, priority); + + return new CommandResult(String.format(MESSAGE_TAG_PRIORITY_SUCCESS, priority.name()) + + taggedPriorityTask); } } diff --git a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java index 793b1c01485..757eac72375 100644 --- a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java @@ -11,14 +11,16 @@ import manageezpz.model.task.Task; /** - * Marks a task identified using its displayed index from the address book as not done yet. + * Unmarks a task identified using its displayed index from the address book, + * i.e., changes the status back to not done. */ public class UnmarkTaskCommand extends Command { - public static final String COMMAND_WORD = "unmark"; + public static final String COMMAND_WORD = "unmarkTask"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Marks the task identified by the index number used in the displayed task list as done yet.\n" + + ": Unmarks the task identified by the index number used in the displayed task list, " + + "which changes the status back to not done.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: " + COMMAND_WORD + " 1"; @@ -26,6 +28,13 @@ public class UnmarkTaskCommand extends Command { private final Index targetIndex; + /** + * Constructor to initialize an instance of UnmarkTaskCommand class + * with the given targetIndex. + * + * @param targetIndex Index of the Task to be unmarked, i.e., changes the + * status back to not done + */ public UnmarkTaskCommand(Index targetIndex) { this.targetIndex = targetIndex; } @@ -33,15 +42,17 @@ public UnmarkTaskCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToUnmark = lastShownList.get(targetIndex.getZeroBased()); - model.unmarkTask(taskToUnmark); - return new CommandResult(String.format(MESSAGE_UNMARK_TASK_SUCCESS, taskToUnmark)); + Task unmarkedTask = model.unmarkTask(taskToUnmark); + + return new CommandResult(String.format(MESSAGE_UNMARK_TASK_SUCCESS, unmarkedTask)); } @Override diff --git a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java index 3cd233bb86a..688096d66ca 100644 --- a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java @@ -1,10 +1,12 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import java.util.List; +import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.person.Person; @@ -12,57 +14,71 @@ public class UntagTaskCommand extends Command { public static final String COMMAND_WORD = "untagTask"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Untag the Task to your specified Person. " + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Untags the specified employee from the task identified by the " + + "index number used in the displayed task list.\n" + "Parameters: INDEX (must be a positive integer) " - + PREFIX_NAME + "EMPLOYEE_NAME" - + "\r\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + PREFIX_NAME + "Alex Yeoh"; - public static final String MESSAGE_SUCCESS = "Task has been untagged! : %1$s"; + + PREFIX_NAME + "EMPLOYEE_NAME\n" + + "Example: " + COMMAND_WORD + " 1 " + PREFIX_NAME + "Alex Yeoh"; + + public static final String MESSAGE_UNTAG_TASK_SUCCESS = "Employee %1$s is untagged from the task: "; + + public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the name %1$s!"; - private int index; - private String name; + public static final String MESSAGE_PERSON_NOT_TAGGED_TO_TASK = "Employee %1$s is not tagged to the task: "; + + private final Index targetIndex; + private final String name; /** - * Constructor for TagTaskCommand - * @param index index of the Task to be tagged. - * @param name Name of Employee to tag Task to. + * Constructor to initialize an UntagTaskCommand class with the given + * targetIndex and name. + * + * @param targetIndex Index of the Task to untag the employee + * @param name Name of the Employee to untag the Task from */ - public UntagTaskCommand(int index, String name) { - this.index = index; + public UntagTaskCommand(Index targetIndex, String name) { + this.targetIndex = targetIndex; this.name = name; } @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - Task task; - try { - task = model.getFilteredTaskList().get(index); - } catch (IndexOutOfBoundsException e) { - throw new CommandException("This Task Number is invalid. \r\n" - + MESSAGE_USAGE); + + List lastShownTaskList = model.getFilteredTaskList(); + List lastShownPersonList = model.getFilteredPersonList(); + + if (targetIndex.getZeroBased() >= lastShownTaskList.size()) { + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } - List personList = model.getFilteredPersonList(); + Task taskToUntagEmployee = lastShownTaskList.get(targetIndex.getZeroBased()); + Person person = null; - for (int i = 0; i < personList.size(); i++) { - Person tempPerson = personList.get(i); - if (tempPerson.getName().toString().equals(name)) { - person = tempPerson; + + for (Person p : lastShownPersonList) { + if (p.getName().toString().equals(name)) { + person = p; break; } } + if (person == null) { - throw new CommandException("Sorry, the person does not exist within our database. \r\n" - + MESSAGE_USAGE); - } else if (!model.isTagged(task, person)) { - throw new CommandException("Person is not tagged to the task!"); + throw new CommandException(String.format(MESSAGE_NO_SUCH_PERSON, name) + "\n" + MESSAGE_USAGE); } - model.untagTask(task, person); - return new CommandResult(String.format(MESSAGE_SUCCESS, task)); + if (!model.isTagged(taskToUntagEmployee, person)) { + throw new CommandException(String.format(MESSAGE_PERSON_NOT_TAGGED_TO_TASK, + person.getName().toString()) + taskToUntagEmployee + "\n" + MESSAGE_USAGE); + } + + Task untaggedEmployeeTask = model.untagEmployeeFromTask(taskToUntagEmployee, person); + Person updatedPerson = model.decreaseNumOfTasks(person); + + return new CommandResult(String.format(MESSAGE_UNTAG_TASK_SUCCESS, + updatedPerson.getName().toString()) + untaggedEmployeeTask); } } diff --git a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index fb545d9470d..c30925c9627 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -7,7 +7,7 @@ import manageezpz.logic.parser.exceptions.ParseException; /** - * Parses input arguments and creates a new DeleteCommand object + * Parses input arguments and creates a new DeleteEmployeeCommand object */ public class DeleteEmployeeCommandParser implements Parser { diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index e60b4ae8f2c..89dc7051bf6 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -7,34 +7,48 @@ import java.util.stream.Stream; +import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; public class TagTaskCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand - * and returns an AddDeadlineTaskCommand object for execution. + * Parses the given {@code String} of arguments in the context of the TagTaskCommand + * and returns an TagTaskCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public TagTaskCommand parse(String args) throws ParseException { + Index index; + ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, TagTaskCommand.MESSAGE_USAGE)); } + if (argMultimapTag.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, TagTaskCommand.MESSAGE_USAGE)); } + + try { + String[] argsArr = args.trim().split(" "); + index = ParserUtil.parseIndex(argsArr[0]); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + TagTaskCommand.MESSAGE_USAGE), pe); + } + String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, TagTaskCommand.MESSAGE_USAGE)); } - String[] argsArr = args.trim().split(" "); - int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); + return new TagTaskCommand(index, name); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 78067517c1d..d17f3060e17 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -1,41 +1,62 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.*; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; import java.util.stream.Stream; +import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.TagTaskPriorityCommand; import manageezpz.logic.parser.exceptions.ParseException; +import manageezpz.model.task.Priority; public class TagTaskPriorityCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand - * and returns an AddDeadlineTaskCommand object for execution. + * Parses the given {@code String} of arguments in the context of the TagTaskPriorityCommand + * and returns a TagTaskPriorityCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public TagTaskPriorityCommand parse(String args) throws ParseException { + Index index; + Priority priority; + ArgumentMultimap argMultimapPriority = ArgumentTokenizer.tokenize(args, PREFIX_PRIORITY); + if (!arePrefixesPresent(argMultimapPriority, PREFIX_PRIORITY)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, TagTaskPriorityCommand.MESSAGE_USAGE)); } + if (argMultimapPriority.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, TagTaskPriorityCommand.MESSAGE_USAGE)); } - String enumString = argMultimapPriority.getValue(PREFIX_PRIORITY).get(); - if (enumString.isEmpty()) { + + try { + String[] argsArr = args.trim().split(" "); + index = ParserUtil.parseIndex(argsArr[0]); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + TagTaskPriorityCommand.MESSAGE_USAGE), pe); + } + + String priorityString = argMultimapPriority.getValue(PREFIX_PRIORITY).get(); + if (priorityString.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_PRIORITY, TagTaskPriorityCommand.MESSAGE_USAGE)); } - String[] argsArr = args.trim().split(" "); - int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); - return new TagTaskPriorityCommand(index, enumString.toUpperCase()); + + try { + priority = Priority.valueOf(priorityString.toUpperCase()); + } catch (IllegalArgumentException ie) { + throw new ParseException(String.format(MESSAGE_INVALID_PRIORITY, + TagTaskPriorityCommand.MESSAGE_USAGE), ie); + } + + return new TagTaskPriorityCommand(index, priority); } diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index 1a8732892f7..c95f5a6b760 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -7,34 +7,49 @@ import java.util.stream.Stream; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; public class UntagTaskCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the AddDeadlineTaskCommand - * and returns an AddDeadlineTaskCommand object for execution. + * Parses the given {@code String} of arguments in the context of the UntagTaskCommand + * and returns an UntagTaskCommand object for execution. + * * @throws ParseException if the user input does not conform the expected format */ public UntagTaskCommand parse(String args) throws ParseException { + Index index; + ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, UntagTaskCommand.MESSAGE_USAGE)); } + if (argMultimapTag.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, UntagTaskCommand.MESSAGE_USAGE)); } + + try { + String[] argsArr = args.trim().split(" "); + index = ParserUtil.parseIndex(argsArr[0]); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + UntagTaskCommand.MESSAGE_USAGE), pe); + } + String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, UntagTaskCommand.MESSAGE_USAGE)); } - String[] argsArr = args.trim().split(" "); - int index = ParserUtil.parseIndex(argsArr[0]).getZeroBased(); + return new UntagTaskCommand(index, name); } diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index cb385cf253f..48cdaf28c84 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -1,6 +1,7 @@ package manageezpz.model; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EVENT; import static manageezpz.logic.parser.CliSyntax.PREFIX_TODAY; @@ -13,12 +14,7 @@ import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; import manageezpz.model.person.UniquePersonList; -import manageezpz.model.task.Date; -import manageezpz.model.task.Deadline; -import manageezpz.model.task.Event; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; -import manageezpz.model.task.UniqueTaskList; +import manageezpz.model.task.*; /** * Wraps all data at the address-book level @@ -292,16 +288,23 @@ public void addDeadline(Deadline deadline) { * Marks the task in the task list. * @param task the task to be marked. */ - public void markTask(Task task) { - this.tasks.markTask(task); + public Task markTask(Task task) { + requireNonNull(task); + return this.tasks.markTask(task); } /** * UnMarks the task in the task list. * @param task the task to be unmarked. */ - public void unmarkTask(Task task) { - this.tasks.unmarkTask(task); + public Task unmarkTask(Task task) { + requireNonNull(task); + return this.tasks.unmarkTask(task); + } + + public Task tagPriorityToTask(Task task, Priority priority) { + requireAllNonNull(task, priority); + return this.tasks.tagPriorityToTask(task, priority); } public void findTask(Task task) { @@ -312,8 +315,19 @@ public void findTask(Task task) { * @param task the task to be tagged. * @param person the person to be tagged to the task. */ - public void tagTask(Task task, Person person) { - task.assignedTo(person); + public Task tagEmployeeToTask(Task task, Person person) { + requireAllNonNull(task, person); + return this.tasks.tagEmployeeToTask(task, person); + } + + /** + * Remove the Person from the Task, also decreasing the person's task count. + * @param task the task affected + * @param person the person to be untagged from task + */ + public Task untagEmployeeFromTask(Task task, Person person) { + requireAllNonNull(task, person); + return this.tasks.untagEmployeeFromTask(task, person); } /** @@ -331,20 +345,11 @@ public boolean hasPriority(Task task) { } return returnValue; } + public void setTask(Task target, Task editedTask) { requireNonNull(editedTask); - tasks.setTask(target, editedTask); } - /** - * Remove the Person from the Task, also decreasing the person's task count. - * @param task the task affected - * @param person the person to be untagged from task - */ - public void untagTask(Task task, Person person) { - person.decreaseTaskCount(); - task.removeAssigned(person); - } //// person-level operations @@ -371,10 +376,19 @@ public void addPerson(Person p) { */ public void setPerson(Person target, Person editedPerson) { requireNonNull(editedPerson); - persons.setPerson(target, editedPerson); } + public Person increaseNumOfTasks(Person person) { + requireNonNull(person); + return this.persons.increaseNumOfTasks(person); + } + + public Person decreaseNumOfTasks(Person person) { + requireNonNull(person); + return this.persons.decreaseNumOfTasks(person); + } + /** * Removes {@code key} from this {@code AddressBook}. * {@code key} must exist in the address book. diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 489d7d8a3f1..9f0f7ae9e33 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -7,10 +7,7 @@ import manageezpz.commons.core.GuiSettings; import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; -import manageezpz.model.task.Deadline; -import manageezpz.model.task.Event; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; +import manageezpz.model.task.*; /** * The API of the Model component. @@ -83,6 +80,10 @@ public interface Model { */ void setPerson(Person target, Person editedPerson); + Person increaseNumOfTasks(Person person); + + Person decreaseNumOfTasks(Person person); + /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); @@ -105,13 +106,15 @@ public interface Model { * Marks the given task. * The task must exist in the task list. */ - void markTask(Task task); + Task markTask(Task task); /** * unMarks the given task. * The task must exist in the task list. */ - void unmarkTask(Task task); + Task unmarkTask(Task task); + + Task tagPriorityToTask(Task task, Priority priority); /** * Finds the given task. @@ -125,7 +128,7 @@ public interface Model { * @param task * @param person */ - void tagTask(Task task, Person person); + Task tagEmployeeToTask(Task task, Person person); /** * Untags the given task. @@ -133,7 +136,7 @@ public interface Model { * @param task * @param person */ - void untagTask(Task task, Person person); + Task untagEmployeeFromTask(Task task, Person person); /** * Adds the given task. diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 84677e4812e..2f761431d0a 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -13,10 +13,7 @@ import manageezpz.commons.core.LogsCenter; import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; -import manageezpz.model.task.Deadline; -import manageezpz.model.task.Event; -import manageezpz.model.task.Task; -import manageezpz.model.task.Todo; +import manageezpz.model.task.*; /** * Represents the in-memory model of the address book data. @@ -118,6 +115,18 @@ public void setPerson(Person target, Person editedPerson) { addressBook.setPerson(target, editedPerson); } + @Override + public Person increaseNumOfTasks(Person person) { + requireNonNull(person); + return addressBook.increaseNumOfTasks(person); + } + + @Override + public Person decreaseNumOfTasks(Person person) { + requireNonNull(person); + return addressBook.decreaseNumOfTasks(person); + } + //=========== Filtered Person List Accessors ============================================================= /** @@ -192,13 +201,18 @@ public void deleteTask(Task task) { } @Override - public void markTask(Task task) { - addressBook.markTask(task); + public Task markTask(Task task) { + return addressBook.markTask(task); + } + + @Override + public Task unmarkTask(Task task) { + return addressBook.unmarkTask(task); } @Override - public void unmarkTask(Task task) { - addressBook.unmarkTask(task); + public Task tagPriorityToTask(Task task, Priority priority) { + return addressBook.tagPriorityToTask(task, priority); } @Override @@ -207,13 +221,13 @@ public void findTask(Task task) { } @Override - public void tagTask(Task task, Person person) { - addressBook.tagTask(task, person); + public Task tagEmployeeToTask(Task task, Person person) { + return addressBook.tagEmployeeToTask(task, person); } @Override - public void untagTask(Task task, Person person) { - addressBook.untagTask(task, person); + public Task untagEmployeeFromTask(Task task, Person person) { + return addressBook.untagEmployeeFromTask(task, person); } @Override diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index c014a8a2844..537db7435f3 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -14,17 +14,17 @@ public class Person { private final Name name; private final Phone phone; private final Email email; - private int numOfTask; + private int numOfTasks; /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, int numOfTask) { + public Person(Name name, Phone phone, Email email, int numOfTasks) { requireAllNonNull(name, phone, email); this.name = name; this.phone = phone; this.email = email; - this.numOfTask = numOfTask; + this.numOfTasks = numOfTasks; } public Name getName() { @@ -53,15 +53,15 @@ public boolean isSamePerson(Person otherPerson) { } public void increaseTaskCount() { - this.numOfTask = numOfTask + 1; + this.numOfTasks = numOfTasks + 1; } public void decreaseTaskCount() { - this.numOfTask = numOfTask - 1; + this.numOfTasks = numOfTasks - 1; } - public int getNumOfTask() { - return numOfTask; + public int getNumOfTasks() { + return numOfTasks; } /** diff --git a/src/main/java/manageezpz/model/person/UniquePersonList.java b/src/main/java/manageezpz/model/person/UniquePersonList.java index 840293401e5..66a749ef691 100644 --- a/src/main/java/manageezpz/model/person/UniquePersonList.java +++ b/src/main/java/manageezpz/model/person/UniquePersonList.java @@ -10,6 +10,7 @@ import javafx.collections.ObservableList; import manageezpz.model.person.exceptions.DuplicatePersonException; import manageezpz.model.person.exceptions.PersonNotFoundException; +import manageezpz.model.task.Task; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. @@ -68,6 +69,34 @@ public void setPerson(Person target, Person editedPerson) { internalList.set(index, editedPerson); } + public Person increaseNumOfTasks(Person person) { + requireNonNull(person); + + Person updatedPerson = new Person(person.getName(), person.getPhone(), + person.getEmail(), person.getNumOfTasks()); + updatedPerson.increaseTaskCount(); + + setPerson(person, updatedPerson); + + return updatedPerson; + } + + public Person decreaseNumOfTasks(Person person) { + requireNonNull(person); + + System.out.println("Before: " + person + String.valueOf(person.getNumOfTasks())); + + Person updatedPerson = new Person(person.getName(), person.getPhone(), + person.getEmail(), person.getNumOfTasks()); + updatedPerson.decreaseTaskCount(); + + System.out.println("After: " + updatedPerson + String.valueOf(person.getNumOfTasks())); + + setPerson(person, updatedPerson); + + return updatedPerson; + } + /** * Removes the equivalent person from the list. * The person must exist in the list. diff --git a/src/main/java/manageezpz/model/task/Deadline.java b/src/main/java/manageezpz/model/task/Deadline.java index 96d87d7cb6b..123a8f2f108 100644 --- a/src/main/java/manageezpz/model/task/Deadline.java +++ b/src/main/java/manageezpz/model/task/Deadline.java @@ -2,6 +2,9 @@ import java.time.format.DateTimeFormatter; +/** + * A class that represents a Deadline task. + */ public class Deadline extends Task { protected String type; protected Description description; @@ -9,15 +12,34 @@ public class Deadline extends Task { private Time time; /** - * Constructor for the Task class. + * Constructor to initialize an instance of Deadline class with task + * description, date and time. * - * @param taskDescription information about the task. + * @param taskDescription Description of the task + * @param date Date by which the Deadline task needs to be completed + * @param time Time by which the Deadline task needs to be completed */ public Deadline(Description taskDescription, Date date, Time time) { + this.type = "deadline"; this.description = taskDescription; this.date = date; this.time = time; - this.type = "deadline"; + } + + /** + * Constructor to initialize an instance of Deadline class with an existing + * Deadline object. + * + * @param deadline Deadline task + */ + public Deadline(Deadline deadline) { + this.type = deadline.getType(); + this.description = deadline.getDescription(); + this.date = deadline.getDate(); + this.time = deadline.getTime(); + this.isDone = deadline.isDone(); + this.priority = deadline.getPriority(); + this.assignees = deadline.getAssignees(); } public Date getDate() { @@ -45,9 +67,10 @@ public String getDateTime() { } /** - * Returns the string representation of a deadline. - * @return a string representation of the deadline, consisting of its description - * and formatted date and time. + * Returns the string representation of a Deadline task. + * + * @return The string representation of the Deadline task, consisting of its + * description and formatted date and time */ @Override public String toString() { diff --git a/src/main/java/manageezpz/model/task/Event.java b/src/main/java/manageezpz/model/task/Event.java index e2be9374017..a1ac673e99a 100644 --- a/src/main/java/manageezpz/model/task/Event.java +++ b/src/main/java/manageezpz/model/task/Event.java @@ -2,6 +2,9 @@ import java.time.format.DateTimeFormatter; +/** + * A class that represents an Event task. + */ public class Event extends Task { protected String type; protected Description description; @@ -10,16 +13,37 @@ public class Event extends Task { private Time endTime; /** - * Constructor for the Task class. + * Constructor to initialize an instance of Event class with task + * description, date, start time and end time. * - * @param taskDescription information about the task. + * @param taskDescription Description of the task + * @param date Date at which the Event task is taking place + * @param startTime Start time of the Event task + * @param endTime End time of the Event task */ public Event(Description taskDescription, Date date, Time startTime, Time endTime) { + this.type = "event"; this.description = taskDescription; this.date = date; this.startTime = startTime; this.endTime = endTime; - this.type = "event"; + } + + /** + * Constructor to initialize an instance of Event class with an existing + * Event object. + * + * @param event Event task + */ + public Event(Event event) { + this.type = event.getType(); + this.description = event.getDescription(); + this.date = event.getDate(); + this.startTime = event.getStartTime(); + this.endTime = event.getEndTime(); + this.isDone = event.isDone(); + this.priority = event.getPriority(); + this.assignees = event.getAssignees(); } public Date getDate() { @@ -34,7 +58,6 @@ public Time getEndTime() { return endTime; } - @Override public String getType() { return this.type; @@ -53,9 +76,10 @@ public String getDateTime() { } /** - * Returns the string representation of an event. - * @return a string representation of the event, consisting of its description, formatted date, - * starting time and ending time. + * Returns the string representation of an Event task. + * + * @return The string representation of the event, consisting of its + * description, formatted date and formatted start and end time */ @Override public String toString() { diff --git a/src/main/java/manageezpz/model/task/Priority.java b/src/main/java/manageezpz/model/task/Priority.java index f1b810e05e7..fd4ad2179a1 100644 --- a/src/main/java/manageezpz/model/task/Priority.java +++ b/src/main/java/manageezpz/model/task/Priority.java @@ -1,14 +1,19 @@ package manageezpz.model.task; public enum Priority { + HIGH(0), + MEDIUM(1), + LOW(2), + NONE(3); - HIGH(0), LOW(2), MEDIUM(1), NONE(3); private final int value; /** - * Constructor to initialize an instance of TaskType enumeration with abbreviation field. - * @param value - */ + * Constructor to initialize an instance of Priority enumeration + * with value field. + * + * @param value Value of the Priority + * */ Priority(int value) { this.value = value; } diff --git a/src/main/java/manageezpz/model/task/Task.java b/src/main/java/manageezpz/model/task/Task.java index de310cf5b02..7eea1e674ca 100644 --- a/src/main/java/manageezpz/model/task/Task.java +++ b/src/main/java/manageezpz/model/task/Task.java @@ -6,21 +6,24 @@ import manageezpz.model.person.Person; /** - * Represents the Tasks a user could create. A Task object would correspond to a task - * inputted by a user either a Todo, Deadline or Event. + * An abstract class that represents the tasks a user could create. + * A Task object would correspond to a task inputted + * by a user, either a Todo, Deadline or Event. */ - public abstract class Task { protected boolean isDone = false; protected Priority priority = Priority.NONE; // Data fields - private List assignees = new ArrayList<>(); + protected List assignees = new ArrayList<>(); /** - * Constructor for the Task class. - * {@code Date taskDate} has a default value that will be changed if the object inheriting the Task object - * is a Deadline or Event object. If object is a Todo object, this field will be ignored. + * Constructor to initialize an instance of Task class. + * + * {@code Date taskDate} has a default value that will be changed if the + * object inheriting the Task object is a Deadline or Event object. + * + * If object is a Todo object, this field will be ignored. */ public Task() { } @@ -32,11 +35,19 @@ public Task() { public abstract String getDateTime(); public String getStatusIcon() { - if (this.isDone()) { - return "X"; - } else { - return " "; - } + return this.isDone() ? "X" : " "; + } + + /** + * Checks if the task is done or not. + * @return true if task is done, false otherwise. + */ + public boolean isDone() { + return isDone; + } + + public Priority getPriority() { + return this.priority; } public List getAssignees() { @@ -55,8 +66,8 @@ public void setPriority(String priority) { this.priority = Priority.valueOf(priority); } - public Priority getPriority() { - return this.priority; + public void setPriority(Priority priority) { + this.priority = priority; } /** @@ -67,14 +78,6 @@ public void addAssignees(Person person) { this.assignees.add(person); } - /** - * Checks if the task is done or not. - * @return true if task is done, false otherwise. - */ - public boolean isDone() { - return isDone; - } - /** * Returns true if both Task have the same Description. * This defines a weaker notion of equality between two Task. @@ -102,7 +105,7 @@ public void assignedTo(int index, Person newPerson) { /** * Used to deallocate a person from this Task. - * @param person the person to be deallocated. + * @param person The person to be deallocated. */ public void removeAssigned(Person person) { assignees.remove(person); @@ -120,7 +123,9 @@ public boolean haveAssignees(String assignee) { /** * Returns the string representation of the task. - * @return a string representation of the task, consisting of its description and whether its done or not. + * + * @return The string representation of the task, consisting of whether + * it is done or not */ @Override public String toString() { diff --git a/src/main/java/manageezpz/model/task/Todo.java b/src/main/java/manageezpz/model/task/Todo.java index 64e7cf77f64..2842e5c254c 100644 --- a/src/main/java/manageezpz/model/task/Todo.java +++ b/src/main/java/manageezpz/model/task/Todo.java @@ -1,19 +1,36 @@ package manageezpz.model.task; +/** + * A class that represents a Todo task. + */ public class Todo extends Task { - protected String type; protected Description description; + /** - * Constructor for the Task class. + * Constructor to initialize an instance of Todo class with task description. * - * @param taskDescription information about the task. + * @param taskDescription Description of the task. */ public Todo(Description taskDescription) { this.type = "todo"; this.description = taskDescription; } + /** + * Constructor to initialize an instance of Todo class with an existing + * Todo object. + * + * @param todo Todo task + */ + public Todo(Todo todo) { + this.type = todo.getType(); + this.description = todo.getDescription(); + this.isDone = todo.isDone(); + this.priority = todo.getPriority(); + this.assignees = todo.getAssignees(); + } + @Override public String getType() { return this.type; @@ -30,8 +47,10 @@ public String getDateTime() { } /** - * Returns the string representation of a todo. - * @return a string representation of the todo, consisting of its description. + * Returns the string representation of a Todo task. + * + * @return The string representation of the Todo task, consisting of its + * description */ @Override public String toString() { diff --git a/src/main/java/manageezpz/model/task/UniqueTaskList.java b/src/main/java/manageezpz/model/task/UniqueTaskList.java index 9ab7c004593..3ba8c344cce 100644 --- a/src/main/java/manageezpz/model/task/UniqueTaskList.java +++ b/src/main/java/manageezpz/model/task/UniqueTaskList.java @@ -8,7 +8,9 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import manageezpz.model.person.Person; import manageezpz.model.task.exceptions.DuplicateTaskException; +import manageezpz.model.task.exceptions.InvalidTaskTypeException; import manageezpz.model.task.exceptions.TaskNotFoundException; public class UniqueTaskList implements Iterable { @@ -57,28 +59,81 @@ public void setTask(Task target, Task editedTask) { /** * Marks a task in the list as done. - * The task must not already exist in the list. + * The task must already exist in the list. */ - public void markTask(Task toMark) { + public Task markTask(Task toMark) { requireNonNull(toMark); - for (Task value : internalList) { - if (value.equals(toMark)) { - value.setTaskDone(); - } - } + + Task markedTask = duplicateTask(toMark); + markedTask.setTaskDone(); + + setTask(toMark, markedTask); + + return markedTask; } /** * Unmarks a task in the list as not done yet. - * The task must not already exist in the list. + * The task must already exist in the list. */ - public void unmarkTask(Task toUnmark) { + public Task unmarkTask(Task toUnmark) { requireNonNull(toUnmark); - for (Task value : internalList) { - if (value.equals(toUnmark)) { - value.setTaskNotDone(); - } + Task unmarkedTask = duplicateTask(toUnmark); + unmarkedTask.setTaskNotDone(); + + setTask(toUnmark, unmarkedTask); + + return unmarkedTask; + } + + public Task tagPriorityToTask(Task toTagPriority, Priority priority) { + requireNonNull(toTagPriority); + requireNonNull(priority); + + Task taggedPriorityTask = duplicateTask(toTagPriority); + taggedPriorityTask.setPriority(priority); + + setTask(toTagPriority, taggedPriorityTask); + + return taggedPriorityTask; + } + + public Task tagEmployeeToTask(Task toTagEmployee, Person person) { + requireNonNull(toTagEmployee); + requireNonNull(person); + + Task taggedEmployeeTask = duplicateTask(toTagEmployee); + taggedEmployeeTask.assignedTo(person); + + setTask(toTagEmployee, taggedEmployeeTask); + + return taggedEmployeeTask; + } + + public Task untagEmployeeFromTask(Task toUntagEmployee, Person person) { + requireNonNull(toUntagEmployee); + requireNonNull(person); + + Task untaggedEmployeeTask = duplicateTask(toUntagEmployee); + untaggedEmployeeTask.removeAssigned(person); + + setTask(toUntagEmployee, untaggedEmployeeTask); + + return untaggedEmployeeTask; + } + + private Task duplicateTask(Task task) { + if (task instanceof Todo) { + return new Todo((Todo) task); + } else if (task instanceof Deadline) { + return new Deadline((Deadline) task); + } else if (task instanceof Event) { + return new Event((Event) task); + } else { + // The else statement should not be reached since there are + // only three types of tasks, i.e., todo, deadline and event + throw new InvalidTaskTypeException(); } } diff --git a/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java b/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java new file mode 100644 index 00000000000..29457771b14 --- /dev/null +++ b/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java @@ -0,0 +1,4 @@ +package manageezpz.model.task.exceptions; + +public class InvalidTaskTypeException extends RuntimeException { +} diff --git a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java index 83f1f5ccfa8..085d4875174 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedPerson.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedPerson.java @@ -40,7 +40,7 @@ public JsonAdaptedPerson(Person source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; - numOfTask = source.getNumOfTask(); + numOfTask = source.getNumOfTasks(); } /** diff --git a/src/main/java/manageezpz/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java index 54cb73597a1..f173de9d5fd 100644 --- a/src/main/java/manageezpz/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -190,8 +190,8 @@ private CommandResult executeCommand(String commandText) throws CommandException resultDisplay.setFeedbackToUser(commandResult.getFeedbackToUser()); // TAKE NOTE - taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); - taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); + /*taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); + taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot());*/ if (commandResult.isShowHelp()) { handleHelp(); diff --git a/src/main/java/manageezpz/ui/PersonCard.java b/src/main/java/manageezpz/ui/PersonCard.java index 7b3ad6ad43a..12a2c94d376 100644 --- a/src/main/java/manageezpz/ui/PersonCard.java +++ b/src/main/java/manageezpz/ui/PersonCard.java @@ -46,6 +46,7 @@ public PersonCard(Person person, int displayedIndex) { name.setText(person.getName().fullName); phone.setText(person.getPhone().value); email.setText(person.getEmail().value); + numOfTasks.setText(person.getNumOfTasks() + " assigned tasks"); } @Override diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 3322684be06..82b8dbba3d8 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -39,7 +39,7 @@ - + diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index b4f78621fe2..654f7d1b91e 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -235,12 +235,12 @@ public void deleteTask(Task task) { } @Override - public void markTask(Task task) { + public Task markTask(Task task) { throw new AssertionError("This method should not be called."); } @Override - public void unmarkTask(Task task) { + public Task unmarkTask(Task task) { throw new AssertionError("This method should not be called."); } @@ -250,7 +250,7 @@ public void findTask(Task task) { } @Override - public void tagTask(Task task, Person person) { + public Task tagEmployeeToTask(Task task, Person person) { throw new AssertionError("This method should not be called."); } diff --git a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index ca57eb76a6e..83637abf9e9 100644 --- a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -21,7 +21,7 @@ public class JsonAdaptedPersonTest { 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(); - private static final int VALID_NUMOFTASK = BENSON.getNumOfTask(); + private static final int VALID_NUMOFTASK = BENSON.getNumOfTasks(); @Test public void toModelType_validPersonDetails_returnsPerson() throws Exception { From 1a8877a7e1d0a6e8cd5dca0dc68cac32028da49b Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 30 Mar 2022 16:44:03 +0800 Subject: [PATCH 290/507] added edit task to UG --- docs/UserGuide.md | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2380010521c..40c6effa88d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -215,14 +215,35 @@ Example: Edits an existing task in ManageEZPZ. -Format: +Possible formats: * `editTask INDEX [desc/NAME]` -* `editTask INDEX []` -* `editTask INDEX []` +* `editTask INDEX [desc/NAME] [date/DATE]` +* `editTask INDEX [desc/NAME] [date/DATE] [at/TIME]` +* `editTask INDEX [date/DATE]` +* `editTask INDEX [date/DATE] [at/TIME]` +* `editTask INDEX [at/TIME]` -Examples: -* `editTask XXX` edits ... -* `editTask XXX` edits ... +Editing tasks is flexible in ManageEZPZ. +For example, you can update just the task description or perhaps +just the date and time of the task only. +However, you are not allowed to edit a task with no input supplied. +Either `[desc/NAME]`, `[date/DATE]` or `[at/TIME]` must have a value. + +Note: For an `Event` task, a start time and an end time separated with an empty space must be provided +instead of a single time value. + + +Examples:
+ +Given a task list as follows...
+ +1. Type: `Todo`, Description: `Eat Bread` +2. Type: `Deadline`, Description: `Chemistry Homework`, Date: `2022-05-03`, Time: `1700` +3. Type: `Event`, Description: `Final Exam`, Date: `2022-06-04`, Time: `1700 2000` + +* `editTask 1 desc/ Drink Water` edits the task description of a `Todo` task. +* `editTask 2 date/ 2022-05-10 at/ 2000` edits the date and the time of a `Deadline` task. +* `editTask 3 at/ 1800 2100` edits the time of an `Event` task. ### Marking a Task : `markTask` From f9a3d049ca2f6c87b6cc6da17a5acd440375699d Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 30 Mar 2022 17:34:41 +0800 Subject: [PATCH 291/507] enchanced edit task message --- .../logic/commands/EditTaskCommand.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 47c6a4ed6d5..176450786e2 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -31,14 +31,25 @@ public class EditTaskCommand extends Command { public static final String COMMAND_WORD = "editTask"; public static final String MORE_EXAMPLES = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + "Eat Apple " + PREFIX_DATE + "2022-09-05 " + PREFIX_TIME + "1800"; + public static final String MORE_EXAMPLES_1 = COMMAND_WORD + " 2 " + PREFIX_DESCRIPTION + "Midterm Exam " + + PREFIX_DATE + "2022-04-06 " + PREFIX_TIME + "1800 2000"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + "by the index number used in the displayed task list.\n" + "Parameters: INDEX (must exist in the Address Book) " - + "[" + PREFIX_DESCRIPTION + " NAME] \n" + + "[" + PREFIX_DESCRIPTION + " NAME]" + + "[" + PREFIX_DATE + " DATE]" + + "[" + PREFIX_TIME + " TIME] \n" + + "At least one of " + PREFIX_DESCRIPTION + " " + + PREFIX_DATE + " " + PREFIX_TIME + " must have a value. \n" + + "For an event task, a start time and an end time" + + " separated with an empty space" + "\n must be provided" + + " instead of a single time value. \n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + " Eat bananas " + "\n" - + MORE_EXAMPLES; + + MORE_EXAMPLES + + "\n" + + MORE_EXAMPLES_1; private final Index index; private final String desc; From 33eca4f186785190bbcce68846ec0832d17d235c Mon Sep 17 00:00:00 2001 From: aaron-ljx <70706659+aaron-ljx@users.noreply.github.com> Date: Wed, 30 Mar 2022 17:42:51 +0800 Subject: [PATCH 292/507] checkstyle fix --- .../java/manageezpz/logic/commands/EditTaskCommand.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 176450786e2..ad9d9c2d577 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -41,9 +41,9 @@ public class EditTaskCommand extends Command { + "[" + PREFIX_TIME + " TIME] \n" + "At least one of " + PREFIX_DESCRIPTION + " " + PREFIX_DATE + " " + PREFIX_TIME + " must have a value. \n" - + "For an event task, a start time and an end time" + - " separated with an empty space" + "\n must be provided" + - " instead of a single time value. \n" + + "For an event task, a start time and an end time" + + " separated with an empty space" + "\n must be provided" + + " instead of a single time value. \n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + " Eat bananas " + "\n" From aa59c2c641afcaa4a38804c943af0c7f33753402 Mon Sep 17 00:00:00 2001 From: denniszedead Date: Wed, 30 Mar 2022 18:00:04 +0800 Subject: [PATCH 293/507] Update ug to correct ordering --- docs/UserGuide.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2f757faebc2..0110588c0b8 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -89,6 +89,25 @@ Shows a list of all employees in ManageEZPZ. Format: `listEmployee` +### Finding Employees by multiple options : `findEmployee` + +Finds employee(s) based on multiple conditions provided. + +Note: +* Parameters for finding employees can be entered together in any order. +* You must enter at least one parameter. + +Format: `findEmployee [n/NAMES] [p/PHONE_NUMBER] [e/EMAIL]` +* `findEmployee n/[LIST OF NAMES]` finds employees whose names contain any of the words in [LIST OF NAMES]. +* `findEmployee p/PHONE_NUMBER` finds employees with the exact phone number. +* `findEmployee e/EMAIL` finds employees with the exact email. + +Examples: +* `findEmployee n/Alex` +* `findEmployee p/87438807` +* `findEmployee e/alexyeoh@example.com` +* `findEmployee n/Bernice Yu p/99272758 e/berniceyu@example.com` + ### Editing an Employee : `editEmployee` Edits an existing employee in ManageEZPZ. @@ -119,25 +138,6 @@ Examples: * `listEmployee` followed by `deleteEmployee 2` sets the displayed employee list to show all employees in ManageEZPZ and deletes the 2nd employee in ManageEZPZ. * `findEmployee n/Betsy` followed by `deleteEmployee 1` sets the displayed employee list with the results from the findEmployee command and deletes the 1st employee in the displayed employee list. -### Finding Employees by multiple options : `findEmployee` - -Finds employee(s) based on multiple conditions provided. - -Note: -* Parameters for finding employees can be entered together in any order. -* You must enter at least one parameter. - -Format: `findEmployee [n/NAMES] [p/PHONE_NUMBER] [e/EMAIL]` -* `findEmployee n/NAMES` finds employees whose names contain any of the words in [LIST OF NAMES]. -* `findEmployee p/PHONE_NUMBER` finds employees with the exact phone number. -* `findEmployee e/EMAIL` finds employees with the exact email. - -Examples: -* `findEmployee n/Alex` -* `findEmployee p/87438807` -* `findEmployee e/alexyeoh@example.com` -* `findEmployee n/Bernice Yu p/99272758 e/berniceyu@example.com` - ### Adding a Task : `addTodo`, `addEvent`, `addDeadline` Adds a task to ManageEZPZ. From f6323c764d603f3378fcf302b9da2bfa508db604 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 18:11:48 +0800 Subject: [PATCH 294/507] Fix employees numOfTasks bug and gradle errors --- .../logic/commands/DeleteTaskCommand.java | 10 ++++--- .../logic/commands/TagTaskCommand.java | 4 +-- .../commands/TagTaskPriorityCommand.java | 4 +-- .../logic/commands/UntagTaskCommand.java | 4 +-- .../parser/TagTaskPriorityCommandParser.java | 5 +++- .../logic/parser/UntagTaskCommandParser.java | 1 - .../java/manageezpz/model/AddressBook.java | 27 ++++++++++++++----- src/main/java/manageezpz/model/Model.java | 10 ++++--- .../java/manageezpz/model/ModelManager.java | 14 ++++++---- .../java/manageezpz/model/person/Person.java | 8 ++++++ .../model/person/UniquePersonList.java | 19 ++++++------- .../manageezpz/model/task/UniqueTaskList.java | 9 +++++++ .../manageezpz/logic/LogicManagerTest.java | 3 ++- .../commands/AddEmployeeCommandTest.java | 18 ++++++++++++- .../commands/DeleteEmployeeCommandTest.java | 7 +++-- .../manageezpz/model/ModelManagerTest.java | 14 ---------- 16 files changed, 102 insertions(+), 55 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index a10ed9e9250..285c45e7c81 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -41,19 +41,21 @@ public DeleteTaskCommand(Index targetIndex) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); + List lastShownPersonList = model.getFilteredPersonList(); + List lastShownTaskList = model.getFilteredTaskList(); - if (targetIndex.getZeroBased() >= lastShownList.size()) { + if (targetIndex.getZeroBased() >= lastShownTaskList.size()) { throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } - Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); + Task taskToDelete = lastShownTaskList.get(targetIndex.getZeroBased()); model.deleteTask(taskToDelete); List affectedPersonList = taskToDelete.getAssignees(); for (Person person : affectedPersonList) { - model.decreaseNumOfTasks(person); + Person personToUpdate = lastShownPersonList.get(lastShownPersonList.indexOf(person)); + model.decreaseNumOfTasks(personToUpdate); } return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index 625f3461c08..f25feb4b586 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -75,10 +75,10 @@ public CommandResult execute(Model model) throws CommandException { } Task taggedEmployeeTask = model.tagEmployeeToTask(taskToTagEmployee, person); - Person updatedPerson = model.increaseNumOfTasks(person); + model.increaseNumOfTasks(person); return new CommandResult(String.format(MESSAGE_TAG_TASK_SUCCESS, - updatedPerson.getName().toString()) + taggedEmployeeTask); + person.getName().toString()) + taggedEmployeeTask); } } diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java index 0ca8416e42e..8b4e33b4fc9 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -52,7 +52,7 @@ public CommandResult execute(Model model) throws CommandException { Task taskToTagPriority = lastShownList.get(targetIndex.getZeroBased()); Task taggedPriorityTask = model.tagPriorityToTask(taskToTagPriority, priority); - return new CommandResult(String.format(MESSAGE_TAG_PRIORITY_SUCCESS, priority.name()) + - taggedPriorityTask); + return new CommandResult(String.format(MESSAGE_TAG_PRIORITY_SUCCESS, priority.name()) + + taggedPriorityTask); } } diff --git a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java index 688096d66ca..f6ec616adf1 100644 --- a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java @@ -75,10 +75,10 @@ public CommandResult execute(Model model) throws CommandException { } Task untaggedEmployeeTask = model.untagEmployeeFromTask(taskToUntagEmployee, person); - Person updatedPerson = model.decreaseNumOfTasks(person); + model.decreaseNumOfTasks(person); return new CommandResult(String.format(MESSAGE_UNTAG_TASK_SUCCESS, - updatedPerson.getName().toString()) + untaggedEmployeeTask); + person.getName().toString()) + untaggedEmployeeTask); } } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index d17f3060e17..9288e4240d7 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -1,6 +1,9 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.*; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; +import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PRIORITY; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; import java.util.stream.Stream; diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index c95f5a6b760..7711ab7569f 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -8,7 +8,6 @@ import java.util.stream.Stream; import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.TagTaskCommand; import manageezpz.logic.commands.UntagTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; diff --git a/src/main/java/manageezpz/model/AddressBook.java b/src/main/java/manageezpz/model/AddressBook.java index 48cdaf28c84..29960175f9e 100644 --- a/src/main/java/manageezpz/model/AddressBook.java +++ b/src/main/java/manageezpz/model/AddressBook.java @@ -14,7 +14,13 @@ import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; import manageezpz.model.person.UniquePersonList; -import manageezpz.model.task.*; +import manageezpz.model.task.Date; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Event; +import manageezpz.model.task.Priority; +import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; +import manageezpz.model.task.UniqueTaskList; /** * Wraps all data at the address-book level @@ -294,7 +300,7 @@ public Task markTask(Task task) { } /** - * UnMarks the task in the task list. + * Unmarks the task in the task list. * @param task the task to be unmarked. */ public Task unmarkTask(Task task) { @@ -302,6 +308,9 @@ public Task unmarkTask(Task task) { return this.tasks.unmarkTask(task); } + /** + * Tags a priority to the task. + */ public Task tagPriorityToTask(Task task, Priority priority) { requireAllNonNull(task, priority); return this.tasks.tagPriorityToTask(task, priority); @@ -379,14 +388,20 @@ public void setPerson(Person target, Person editedPerson) { persons.setPerson(target, editedPerson); } - public Person increaseNumOfTasks(Person person) { + /** + * Increases the number of tasks by one. + */ + public void increaseNumOfTasks(Person person) { requireNonNull(person); - return this.persons.increaseNumOfTasks(person); + this.persons.increaseNumOfTasks(person); } - public Person decreaseNumOfTasks(Person person) { + /** + * Decreases the number of tasks by one. + */ + public void decreaseNumOfTasks(Person person) { requireNonNull(person); - return this.persons.decreaseNumOfTasks(person); + this.persons.decreaseNumOfTasks(person); } /** diff --git a/src/main/java/manageezpz/model/Model.java b/src/main/java/manageezpz/model/Model.java index 9f0f7ae9e33..4c8c7cede48 100644 --- a/src/main/java/manageezpz/model/Model.java +++ b/src/main/java/manageezpz/model/Model.java @@ -7,7 +7,11 @@ import manageezpz.commons.core.GuiSettings; import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; -import manageezpz.model.task.*; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Event; +import manageezpz.model.task.Priority; +import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; /** * The API of the Model component. @@ -80,9 +84,9 @@ public interface Model { */ void setPerson(Person target, Person editedPerson); - Person increaseNumOfTasks(Person person); + void increaseNumOfTasks(Person person); - Person decreaseNumOfTasks(Person person); + void decreaseNumOfTasks(Person person); /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); diff --git a/src/main/java/manageezpz/model/ModelManager.java b/src/main/java/manageezpz/model/ModelManager.java index 2f761431d0a..2264ad3ede6 100644 --- a/src/main/java/manageezpz/model/ModelManager.java +++ b/src/main/java/manageezpz/model/ModelManager.java @@ -13,7 +13,11 @@ import manageezpz.commons.core.LogsCenter; import manageezpz.logic.parser.Prefix; import manageezpz.model.person.Person; -import manageezpz.model.task.*; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Event; +import manageezpz.model.task.Priority; +import manageezpz.model.task.Task; +import manageezpz.model.task.Todo; /** * Represents the in-memory model of the address book data. @@ -116,15 +120,15 @@ public void setPerson(Person target, Person editedPerson) { } @Override - public Person increaseNumOfTasks(Person person) { + public void increaseNumOfTasks(Person person) { requireNonNull(person); - return addressBook.increaseNumOfTasks(person); + addressBook.increaseNumOfTasks(person); } @Override - public Person decreaseNumOfTasks(Person person) { + public void decreaseNumOfTasks(Person person) { requireNonNull(person); - return addressBook.decreaseNumOfTasks(person); + addressBook.decreaseNumOfTasks(person); } //=========== Filtered Person List Accessors ============================================================= diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index 537db7435f3..f9dda4af3b9 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -52,11 +52,19 @@ public boolean isSamePerson(Person otherPerson) { && otherPerson.getName().equals(getName()); } + /** + * Increases the number of tasks by one. + */ public void increaseTaskCount() { this.numOfTasks = numOfTasks + 1; } + /** + * Decreases the number of tasks by one. + * At any time, the number of tasks should not be lesser than zero. + */ public void decreaseTaskCount() { + assert numOfTasks >= 0 : "numOfTasks should not be lesser than 0"; this.numOfTasks = numOfTasks - 1; } diff --git a/src/main/java/manageezpz/model/person/UniquePersonList.java b/src/main/java/manageezpz/model/person/UniquePersonList.java index 66a749ef691..6684613b6ed 100644 --- a/src/main/java/manageezpz/model/person/UniquePersonList.java +++ b/src/main/java/manageezpz/model/person/UniquePersonList.java @@ -10,7 +10,6 @@ import javafx.collections.ObservableList; import manageezpz.model.person.exceptions.DuplicatePersonException; import manageezpz.model.person.exceptions.PersonNotFoundException; -import manageezpz.model.task.Task; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. @@ -69,7 +68,10 @@ public void setPerson(Person target, Person editedPerson) { internalList.set(index, editedPerson); } - public Person increaseNumOfTasks(Person person) { + /** + * Increases the number of tasks by one. + */ + public void increaseNumOfTasks(Person person) { requireNonNull(person); Person updatedPerson = new Person(person.getName(), person.getPhone(), @@ -77,24 +79,19 @@ public Person increaseNumOfTasks(Person person) { updatedPerson.increaseTaskCount(); setPerson(person, updatedPerson); - - return updatedPerson; } - public Person decreaseNumOfTasks(Person person) { + /** + * Decreases the number of tasks by one. + */ + public void decreaseNumOfTasks(Person person) { requireNonNull(person); - System.out.println("Before: " + person + String.valueOf(person.getNumOfTasks())); - Person updatedPerson = new Person(person.getName(), person.getPhone(), person.getEmail(), person.getNumOfTasks()); updatedPerson.decreaseTaskCount(); - System.out.println("After: " + updatedPerson + String.valueOf(person.getNumOfTasks())); - setPerson(person, updatedPerson); - - return updatedPerson; } /** diff --git a/src/main/java/manageezpz/model/task/UniqueTaskList.java b/src/main/java/manageezpz/model/task/UniqueTaskList.java index 3ba8c344cce..13aaf0ac550 100644 --- a/src/main/java/manageezpz/model/task/UniqueTaskList.java +++ b/src/main/java/manageezpz/model/task/UniqueTaskList.java @@ -87,6 +87,9 @@ public Task unmarkTask(Task toUnmark) { return unmarkedTask; } + /** + * Tags a priority to the task. + */ public Task tagPriorityToTask(Task toTagPriority, Priority priority) { requireNonNull(toTagPriority); requireNonNull(priority); @@ -99,6 +102,9 @@ public Task tagPriorityToTask(Task toTagPriority, Priority priority) { return taggedPriorityTask; } + /** + * Tags an employee to the task. + */ public Task tagEmployeeToTask(Task toTagEmployee, Person person) { requireNonNull(toTagEmployee); requireNonNull(person); @@ -111,6 +117,9 @@ public Task tagEmployeeToTask(Task toTagEmployee, Person person) { return taggedEmployeeTask; } + /** + * Untags an employee to the task. + */ public Task untagEmployeeFromTask(Task toUntagEmployee, Person person) { requireNonNull(toUntagEmployee); requireNonNull(person); diff --git a/src/test/java/manageezpz/logic/LogicManagerTest.java b/src/test/java/manageezpz/logic/LogicManagerTest.java index 5f05e26f193..560deddda40 100644 --- a/src/test/java/manageezpz/logic/LogicManagerTest.java +++ b/src/test/java/manageezpz/logic/LogicManagerTest.java @@ -5,6 +5,7 @@ import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.NAME_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static manageezpz.logic.commands.DeleteEmployeeCommand.MESSAGE_USAGE; import static manageezpz.testutil.Assert.assertThrows; import static manageezpz.testutil.TypicalPersons.AMY; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -58,7 +59,7 @@ public void execute_invalidCommandFormat_throwsParseException() { @Test public void execute_commandExecutionError_throwsCommandException() { String deleteCommand = "deleteEmployee 9"; - assertCommandException(deleteCommand, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandException(deleteCommand, String.format(MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } @Test diff --git a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java index 654f7d1b91e..f1ac9254aa7 100644 --- a/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/AddEmployeeCommandTest.java @@ -24,6 +24,7 @@ import manageezpz.model.person.Person; import manageezpz.model.task.Deadline; import manageezpz.model.task.Event; +import manageezpz.model.task.Priority; import manageezpz.model.task.Task; import manageezpz.model.task.Todo; import manageezpz.testutil.PersonBuilder; @@ -144,6 +145,16 @@ public void setPerson(Person target, Person editedPerson) { throw new AssertionError("This method should not be called."); } + @Override + public void increaseNumOfTasks(Person person) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void decreaseNumOfTasks(Person person) { + throw new AssertionError("This method should not be called."); + } + @Override public ObservableList getFilteredPersonList() { throw new AssertionError("This method should not be called."); @@ -244,6 +255,11 @@ public Task unmarkTask(Task task) { throw new AssertionError("This method should not be called."); } + @Override + public Task tagPriorityToTask(Task task, Priority priority) { + return null; + } + @Override public void findTask(Task task) { throw new AssertionError("This method should not be called."); @@ -255,7 +271,7 @@ public Task tagEmployeeToTask(Task task, Person person) { } @Override - public void untagTask(Task task, Person person) { + public Task untagEmployeeFromTask(Task task, Person person) { throw new AssertionError("This method should not be called."); } diff --git a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java index f46c38edcf6..401acc2d3f0 100644 --- a/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/DeleteEmployeeCommandTest.java @@ -3,6 +3,7 @@ import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.logic.commands.DeleteEmployeeCommand.MESSAGE_USAGE; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; @@ -44,7 +45,8 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); - assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(deleteEmployeeCommand, model, + String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } @Test @@ -73,7 +75,8 @@ public void execute_invalidIndexFilteredList_throwsCommandException() { DeleteEmployeeCommand deleteEmployeeCommand = new DeleteEmployeeCommand(outOfBoundIndex); - assertCommandFailure(deleteEmployeeCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(deleteEmployeeCommand, model, + String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } @Test diff --git a/src/test/java/manageezpz/model/ModelManagerTest.java b/src/test/java/manageezpz/model/ModelManagerTest.java index b997ee2b84d..0a4bd2bd295 100644 --- a/src/test/java/manageezpz/model/ModelManagerTest.java +++ b/src/test/java/manageezpz/model/ModelManagerTest.java @@ -198,18 +198,4 @@ public void deleteTask_taskInAddressBook_returnsTrue() { modelManager.deleteTask(READ_BOOK); assertTrue(!modelManager.hasTask(READ_BOOK)); } - - @Test - public void markTask_taskInaddressBook_returnsTrue() { - modelManager.addTask(RETURN_BOOK); - modelManager.markTask(RETURN_BOOK); - assertTrue(RETURN_BOOK.isDone()); - } - - @Test - public void unmarkTask_taskInaddressBook_returnsTrue() { - modelManager.addTask(RETURN_BOOK); - modelManager.unmarkTask(READ_BOOK); - assertTrue(!READ_BOOK.isDone()); - } } From 8868e501b405e30bfb1c586f532bd102cdcf2945 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 18:15:32 +0800 Subject: [PATCH 295/507] Fix gradle errors --- .../model/task/exceptions/InvalidTaskTypeException.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java b/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java index 29457771b14..e6f9d4f9b01 100644 --- a/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java +++ b/src/main/java/manageezpz/model/task/exceptions/InvalidTaskTypeException.java @@ -1,4 +1,4 @@ -package manageezpz.model.task.exceptions; - -public class InvalidTaskTypeException extends RuntimeException { -} +package manageezpz.model.task.exceptions; + +public class InvalidTaskTypeException extends RuntimeException { +} From 7aeb7377e308642873535db379a02f68dbad796d Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 30 Mar 2022 18:21:27 +0800 Subject: [PATCH 296/507] Update UG. --- docs/UserGuide.md | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0110588c0b8..043545ae58e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,9 +32,11 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`addTodo desc/read book`** : Adds a todo task with a description of `read book` to the Task list. - * **`tagTask 1 n/John Doe`** : Assigns the first task on the task list to an employee named John Doe. + * **`tagTask 1 n/John Doe`** : Assigns the first task on the task list to an employee named John Doe. * **`exit`** : Exits the app. + + -------------------------------------------------------------------------------------------------------------------- ## Features @@ -97,7 +99,7 @@ Note: * Parameters for finding employees can be entered together in any order. * You must enter at least one parameter. -Format: `findEmployee [n/NAMES] [p/PHONE_NUMBER] [e/EMAIL]` +Format: `findEmployee n/NAMES p/PHONE_NUMBER e/EMAIL` * `findEmployee n/[LIST OF NAMES]` finds employees whose names contain any of the words in [LIST OF NAMES]. * `findEmployee p/PHONE_NUMBER` finds employees with the exact phone number. * `findEmployee e/EMAIL` finds employees with the exact email. @@ -112,7 +114,7 @@ Examples: Edits an existing employee in ManageEZPZ. -Format: `editEmployee INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL]` +Format: `editEmployee INDEX n/NAME p/PHONE_NUMBER e/EMAIL` * Edits the employee at the specified INDEX. * The index refers to the index number shown in the displayed employee list. @@ -215,19 +217,19 @@ Example: Edits an existing task in ManageEZPZ. -Possible formats: -* `editTask INDEX [desc/NAME]` -* `editTask INDEX [desc/NAME] [date/DATE]` -* `editTask INDEX [desc/NAME] [date/DATE] [at/TIME]` -* `editTask INDEX [date/DATE]` -* `editTask INDEX [date/DATE] [at/TIME]` -* `editTask INDEX [at/TIME]` +Formats: +* `editTask INDEX desc/NAME` +* `editTask INDEX desc/NAME date/DATE` +* `editTask INDEX desc/NAME date/DATE at/TIME` +* `editTask INDEX date/DATE` +* `editTask INDEX date/DATE at/TIME` +* `editTask INDEX at/TIME` Editing tasks is flexible in ManageEZPZ. For example, you can update just the task description or perhaps just the date and time of the task only. However, you are not allowed to edit a task with no input supplied. -Either `[desc/NAME]`, `[date/DATE]` or `[at/TIME]` must have a value. +Either `desc/NAME`, `date/DATE` or `at/TIME` must have a value. Note: For an `Event` task, a start time and an end time separated with an empty space must be provided instead of a single time value. @@ -241,23 +243,15 @@ Given a task list as follows...
2. Type: `Deadline`, Description: `Chemistry Homework`, Date: `2022-05-03`, Time: `1700` 3. Type: `Event`, Description: `Final Exam`, Date: `2022-06-04`, Time: `1700 2000` -* `editTask 1 desc/ Drink Water` edits the task description of a `Todo` task. -* `editTask 2 date/ 2022-05-10 at/ 2000` edits the date and the time of a `Deadline` task. -* `editTask 3 at/ 1800 2100` edits the time of an `Event` task. +* `editTask 1 desc/Drink Water` edits the task description of a `Todo` task. +* `editTask 2 date/2022-05-10 at/ 2000` edits the date and the time of a `Deadline` task. +* `editTask 3 at/1800 2100` edits the time of an `Event` task. ### Marking a Task : `markTask` Marks the specified task in ManageEZPZ as done. -<<<<<<< HEAD -#### Note: -* Arguments can be stacked together in any order. -* There must be at least one task type or options shown below. -* However, only one task type is allowed. -* Any other invalid options not stated below will be ignored -======= Format: `markTask INDEX` ->>>>>>> master * Marks the task at the specified `INDEX` as done. * The index refers to the index number shown in the displayed task list. @@ -373,8 +367,6 @@ If your changes to the data file makes its format invalid, ManageEZPZ will disca
-_Details coming soon ..._ - -------------------------------------------------------------------------------------------------------------------- ## FAQ From fd084388463493420d4801a24315c4a6a3bba4ee Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 18:25:57 +0800 Subject: [PATCH 297/507] Remove commented out codes from MainWindow.java --- src/main/java/manageezpz/ui/MainWindow.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/manageezpz/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java index f173de9d5fd..3297937d968 100644 --- a/src/main/java/manageezpz/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -189,10 +189,6 @@ private CommandResult executeCommand(String commandText) throws CommandException logger.info("Result: " + commandResult.getFeedbackToUser()); resultDisplay.setFeedbackToUser(commandResult.getFeedbackToUser()); - // TAKE NOTE - /*taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); - taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot());*/ - if (commandResult.isShowHelp()) { handleHelp(); } From 751993147c3ea116a53a5cf8751fe7de4dcdacde Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 19:06:00 +0800 Subject: [PATCH 298/507] Update command parser for TagTask, UntagTask and TagTaskPriority --- .../logic/parser/TagTaskCommandParser.java | 20 ++++++++++--------- .../parser/TagTaskPriorityCommandParser.java | 19 +++++++++--------- .../logic/parser/UntagTaskCommandParser.java | 19 +++++++++--------- .../manageezpz/model/util/SampleDataUtil.java | 13 ++++++++---- 4 files changed, 38 insertions(+), 33 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index 89dc7051bf6..064c940f492 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -1,5 +1,6 @@ package manageezpz.logic.parser; +import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -20,11 +21,20 @@ public class TagTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public TagTaskCommand parse(String args) throws ParseException { - Index index; + requireNonNull(args); ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + Index index; + + try { + index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + TagTaskCommand.MESSAGE_USAGE), pe); + } + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, TagTaskCommand.MESSAGE_USAGE)); @@ -35,14 +45,6 @@ public TagTaskCommand parse(String args) throws ParseException { TagTaskCommand.MESSAGE_USAGE)); } - try { - String[] argsArr = args.trim().split(" "); - index = ParserUtil.parseIndex(argsArr[0]); - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - TagTaskCommand.MESSAGE_USAGE), pe); - } - String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 9288e4240d7..0e6aab4738d 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -22,11 +22,18 @@ public class TagTaskPriorityCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public UntagTaskCommand parse(String args) throws ParseException { - Index index; - ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + Index index; + + try { + index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + UntagTaskCommand.MESSAGE_USAGE), pe); + } + if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, UntagTaskCommand.MESSAGE_USAGE)); @@ -35,14 +42,6 @@ public UntagTaskCommand parse(String args) throws ParseException { UntagTaskCommand.MESSAGE_USAGE)); } - try { - String[] argsArr = args.trim().split(" "); - index = ParserUtil.parseIndex(argsArr[0]); - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - UntagTaskCommand.MESSAGE_USAGE), pe); - } - String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, diff --git a/src/main/java/manageezpz/model/util/SampleDataUtil.java b/src/main/java/manageezpz/model/util/SampleDataUtil.java index 71610819376..3c8de23132b 100644 --- a/src/main/java/manageezpz/model/util/SampleDataUtil.java +++ b/src/main/java/manageezpz/model/util/SampleDataUtil.java @@ -31,11 +31,16 @@ public static Person[] getSamplePersons() { public static Task[] getSampleTasks() { return new Task[] { - new Todo(new Description("Read Book")), - new Deadline(new Description("Finish 160 Resins in Genshin"), + new Todo(new Description("Review Monthly Finance KPI")), + new Deadline(new Description("Finish Client Proposal"), new Date("2022-03-15"), new Time("1800")), - new Event(new Description("Watch Netflix"), new Date("2022-03-15"), - new Time("1200"), new Time("2359")) + new Event(new Description("Meeting with Client"), new Date("2022-03-15"), + new Time("1300"), new Time("1400")), + new Todo(new Description("Call Representative of Company XYZ")), + new Deadline(new Description("Submit Proposal"), + new Date("2022-04-08"), new Time("1800")), + new Event(new Description("Meeting with HR"), new Date("2022-03-16"), + new Time("1400"), new Time("1500")) }; } public static ReadOnlyAddressBook getSampleAddressBook() { From 2fbc67883be0a9433a3e22a76b6dba75775450ea Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Wed, 30 Mar 2022 19:09:38 +0800 Subject: [PATCH 299/507] Update Ui image --- docs/images/Ui.png | Bin 18813 -> 89859 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index efca4f44d8249bfad4039ec1953dbc024cde93c4..9823e2cb57ef6ad822ea39bd433634ca383e2203 100644 GIT binary patch literal 89859 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 %CddxSqA9cd^O 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 Date: Wed, 30 Mar 2022 19:53:33 +0800 Subject: [PATCH 300/507] Update product name from ab3 to manageEZPZ. --- src/main/java/manageezpz/logic/commands/ClearCommand.java | 2 +- src/main/java/manageezpz/model/UserPrefs.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/ClearCommand.java b/src/main/java/manageezpz/logic/commands/ClearCommand.java index 326f403d5cc..26083c96cf2 100644 --- a/src/main/java/manageezpz/logic/commands/ClearCommand.java +++ b/src/main/java/manageezpz/logic/commands/ClearCommand.java @@ -11,7 +11,7 @@ public class ClearCommand extends Command { public static final String COMMAND_WORD = "clear"; - public static final String MESSAGE_SUCCESS = "Address book has been cleared!"; + public static final String MESSAGE_SUCCESS = "ManageEZPZ has been cleared!"; @Override diff --git a/src/main/java/manageezpz/model/UserPrefs.java b/src/main/java/manageezpz/model/UserPrefs.java index 0b6806d6558..6d762559714 100644 --- a/src/main/java/manageezpz/model/UserPrefs.java +++ b/src/main/java/manageezpz/model/UserPrefs.java @@ -14,7 +14,7 @@ public class UserPrefs implements ReadOnlyUserPrefs { private GuiSettings guiSettings = new GuiSettings(); - private Path addressBookFilePath = Paths.get("data" , "addressbook.json"); + private Path addressBookFilePath = Paths.get("data" , "manageEZPZ.json"); /** * Creates a {@code UserPrefs} with default values. From ab65428c38271b68f76732fbda8a82731ea2bc47 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Wed, 30 Mar 2022 19:56:43 +0800 Subject: [PATCH 301/507] Update picture. --- docs/images/Ui.png | Bin 89859 -> 60633 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 9823e2cb57ef6ad822ea39bd433634ca383e2203..deb7e417fc7e0a1e471e4966d8705409e3b518ca 100644 GIT binary patch literal 60633 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 P`s}Q!waJ^)ZukBlw2_WJ literal 89859 zcmdqJ2UJvB)-}r2tD+#FB1pDC0hJ&*gMwf{lH{!9oO38tq9AYyl8TIE3M5Mw$r&UU zITWFa3`K@|yA*Ht`$zw;Uw`j==|5w1UpaNcK6|ab)|_*#b3Vw+KD~N{@(Lav-qq*N zp1i`tyYwCp?@xUEb6}6L=sO?qpUXDS)a~)`2yWp1_Xl2F{4KmcbV{E;d936TzcS(K zq3BqP-LwuD7uW2MOfQSMEtwXMwb&p&J&TH@lC?Hf6Kv7BMMXtrWkYC8pj6mXi4M|2Ie)K<0k=*I z{{VyMSEV5ITcADHO@8gDrMV6jmDiUP(q<3{whtc)M=exx2Ti!!(-J%sR8%sU17F(6 z#`7zvshRM?Zd|`UJ2%&5RNQ7@_T3y@>gN{kUaeEmGG|+%m7boitgKArpC$w27035> z*jZAbkcf_oQc+U6bN8;cL!acaByJXQTd#az>hbY*Pg7G08{U;kUVc@7_H&w)~2gi)Y92lQ%Xs-MxEvb*gS^ahsx}qXRtD zgq8K00&aqETQ`kU)r4LlwTRoml3m61>(}Glg@65m_tsvjvIH8st5+-l&O=kMHsT1`DF%R9-S;r`JtVyK`}nAAF+Ua3Yv!d03)_$mLFe^ldBX3>_}=x? zm;=I#-t?rgRmeF6eG@A;`ziE6`-zMV})vf=*G6gDw7c6rm~eSWDL3jrC+{u~|l z){KJh>vExmo+Phf?X>s#o@lsosMzVgoY<;$PCo^DLi}1SDkmo{E>5GTP$RTM-afCa zU0D;krTob~S8MVHoA+K!%5F?S^D5@6@J)a7`(B%e@AuaBZK~^EFV&e?)0j7Vxn!u? zH}A5ctodcIlJ4FtgLx4WdzvaeY-f+veK$5X7I)JqLE+Q=Iq*l9NOON@k{Gt$c5c$m zTzNXDd{P55{nb`Z?8MGr%xi; z@PZ+8Zi=gcB;Qrhm_g5Kxv92EAy+%q)zq4xg|*6sIIhYNMsBN`t=V;1U2a!@PW7YH zhE2beDzaKP)ct(*m^ytsRY>Ec|!=PiDh^nDtf?vaZYwy=GchF@G-5#4dEz7?O z7AZYn+{0GErAsZrin`LA-cZxgqRK1jRGFt{CR5o0gr1Xe%n`2?J-;u)$!ZZay2$l| zl>LpFz`;@7K^4_|la%RY2sAu9TU0?24M&>{YuR^YDlR1H>{jy~CCK%x+^0u3Y)V9H z-{4kQ6FeC79riesb$ZlhKT&lyfsf`V9EY=_qgeZgo}eQi2ifSE*yhyxJ!Y;&+;39V zmpAjAL=C~yK1zAl-}b4Whr_SGfY0V;!#DSx5gAUD)pe9ac^0^-Ub-68 zme=9B7g@jO`0bu(TwTqDlTA|2TzsH73+Um|u7~11srH1%MFz zB;pPU!us)uuX^jL6&=l8{35BVf(K2C1eLOh9I`8ikGt{)`S+X^$#u4u*N)}Ky!LB( zPfjL+&@I`<`(Q#-)Oj!^=T;3R(DARn)IK?A*u1AGO0(xb#q*l{%!uzIA9C;Ax|V;a zZz35VZ~djLvRzft5DbAwSwU)wy)M!v$IOT1lJpC65nAigmaGAnT#-pLIY-MSuRrRJ z8nUU~tapW=h43BomX9eNB^`3?+^0NAL`5f)bWRDit}pf!i*G~sPdPW2BT0EIWMflT zWkjq_3b21Uo6OA#-Y~?dNjS51idjM>#7)kI#2SqVYABF%=nu@<3%zKjNEFeRxu0X^ z(LO9jeZp9`k~w=Nt?!Oc>zHa;oy%f65t>K!j@C$7aNp~!Y@)tM3492Y&v9lv@_MCQKF!^@D5 z7bQ29RaJxBt=9A(;!9o=mE^cZCbC9jPL z*NdU|`D*m$^w9QR3e0Yx!gIJyXiE|sVcz%^b3ovnz9QU-!8TLw zC9Mp$sH1ycE?!HVkjBV}r>_PFgCydw)KHcDj+(^-?=KK=a&Z+G75&aX0V@Hh&HcI1 zOGdrnTKtZv0mhFhSE+a{zHT;Cp*2>w51?WO0jwF09%K9U(G~g6crSx#y=KS_@*R4c z!lyoy8Nd?~skD?KG#BMZYwLR+$Lm7D&4-I(A3qbfP%StyT{xRCn_5NErq>UjEND^j zS>eV`GdJvN=%%t2{q6zL;%Bo*eD48ltKUT@qBOvU$pdZJ7mfg9Q z(3a+Al;ajGYv6nGonZ4KufCkqZOqXERsNrjm>NW$x zxx$2OFciO2gpU6BVMN03^YFqH$qahG*Y4YpfRwXA;tA6G{l-j7 z0sr>k!0X~#o|wTdk>9ZAn*j5J2SH~4*RT8^4dY)QoMse|Lg%)Wl9!j)nxsm+_@ngq zoY1CrACnOI>rYm@Zfq4eEw|@hNe)C7ej;KMN zkN&i7&+s=xy^a}*=FTwfTYL2zjlJRlH<)BuG)l5u6^+jB@Q7f5o5R5bc+mJ)Tm3&} z|2*4oVj7eB+cL>%&y*zgmivvtA@+;itSl^f<}ff;QP0EHVKc?$sOe@ZYaHbD&{k35 z^*r3E%>Qmw+?6QeesYKbS02#muJt@J>WV|!RnT+2{(T39xH?M2j7{|}!dwh{yuB`W zO&pA^)u@uz=tvD;R1?Fj6N<)DgHhr5lnI_ z1hKfM_BgPkh#W>nX+C-H<5e>?QA7$26=)Sj>Amn_= zdR&J+shTp^Uxt&n zPJtDeEnlH+%lIAyQjfGd0U-uDMlIyjIk$P|&Ygjq%wAwt-VsPkOCvcx{9YvS)^Ut} zL^SJuHhq%hnC1S(1(-FFmNIxkQVH|VyQ^c)>ysy#Vci0AOYab;l@X2%<}(MdftoF3 zP>TmFCVADi!K}GIfbsjSP5)keS*l!e3j5nVV$P_6Y}Xc&$dxO4#iMcaCgfT+@0#?& z-~wj`nXdlP$+7e9{3W-Yr9LH7>l^o3SxZMPqP6UvOE?q8<$wWbQ#plohk?`AD?tfaTb)Q{w+SB+{BK z+(IDjYJgAaw}f~CQxEt8hjd*`aJH)6Y&N2fA(@?Uo(c{P)dj}Z$OEoI#;QSD`DO=9 z29sQ39%J9H)dskedF)BS+4DZK?h=!n=}r)838vz6-(3M##70QBx3`1XPe4EbbAHVh zZN4?%Ml7<^i!P|kXUlUIZ(6UzLRS%`+Y4Pmp`pa~zabI7KLxMF2uWo%`J19qi(=y* zojRyU3fI}gKT}s%?;4LhOU`&URt*0(%B9A+<1G?JcksAw%`ebiIJ-~@i;~3et2jI% zyn42~H%vhxa)I{uFVo|nnXe4~2D*4O*Z$=>*EqP(PJi^Y@gE0EUWSZYIolKezL!U$04#Smv-pyk+Q!wz}rc^s%NAu9cDS z&1SyD)b4!)EK{ax)Oy0Sm@aYh?cw|zXJ;|jf!@_@xg@F0or4?f1B5KC?~dg@PduqY zn;!9)W!{z$@%)ULXirvk*eOOzI}f|+i?66njeN%ni?5uGeww;>oTG$9JYbC>Q`^bl zKvAx(x}>GmRG%pzVsjalnRp%d1Z5MuZ};~Wq`mg1vooEt*E54jGp+kQ=SQ5z23b+P z`tv2QF|Uk7tpI{c#A~-3*|(5Bg{pL?kLX>iLjehF)WUC845zSy1K`kojMSjl18*G#FxiZR$BzRTAl9$Gy<^86<5TYs6|rFu z3$<}Nn_?TMAdoYptrMLpfzbx?tlTk%PfOHM`GXx|H&lrUd6?dWhVhkSEh>27$XNhCq;(KrV`*FL{FpP1kYYkq9(z z)m%=@CQbC823r>NgvY@%m<&3yHq190JuyXBQ`+FmWFCGV^Y!=#U6~lNobz?&+lGs@ z#?yoTVp+Kwf=kbVAZ9Uo+EDU`H~V-x?TJ4&9vYyHJ(yY8eOi`KyU`n#c3zfBTi@x* zt&WriOZN3-b-FE;AzR6+GEd&=Awk(>v;B8ytnl}-v*`3qJ^unXlHYA!{;zb)F~_V2 zfh)EL>0-ymj^Ac=oxIpDo>nSuG?;0RqQ4P*m<336%lwCe$Z?-zu0$&j^S*vMXj;~r=Zc>wnUY{Kz}^tR=iin z9DFR?-4J^1*CG7aCwhV3Gn|%M`*vyA^1P}ZhS(!Y-erzrlITzxqjOu*==J@+0k#!r z>^`(y_oC+;|J@n7l`l6v3hqumBPl<)G1mOvozs$O+qLYom^XT?a zDw}cEF|V%<-=+n_d$qBbYq!4FpJ#)6?KT7~acrP2{@Gf$aw@7uOU@7 zjW6~o{nJBO1f-ltyEwy7AB_uJem8~K0+-GRws@UY0X)jTfY$xcO5|dauto1DhRooa z!;MQ_z0Yx85tM6vf(gWVJOYV5nD+Oh)&q`)NP>>xR*FT{x|oogpSSt^qQbhBh?H!9 z9ubD<*R(tey7^(U_c3Ft(BY_}bh(e`Tir4X?3*~@*0YdBQl%p1XtLo`*q^V$cR1sn znP}!BSZ$6`taAGppFuHAOqb<9T6&nR4VHW|jptnV4^rr8kwe8kCNLCQcAPy}w{wfa z!mm!g#l@_Aw~Xe*;y^LCY5H<>!txU3fh+f53;wT>BqKRJ_GkQoA_o*v#)#~SOTU96 z|5KNmNs!eq5Rk>+l=%%|@Qfd%^(>mNar`mMMweb+0Dd6{uBG35Ro zHvdyndoPgQ2Sng5k?UvU`c@&)+#Q(uq-~EjG*i9h_t^OP`u?Wr|2v5?bwHIYsL6nn zXHFhm;cZkW8e`@@x_OLK9(|HMp{G2!ur4fxyU?521Dx!Ef8!r$<3H0i{~K(UmUVHx z7m?S(j~gwQs;2hfxWq=wHcpYy$O{k=Q@r}Oc<|3T?O#vu!1TQqQKs76))BojsF{z<^RY6f-U+>B_#vpDz%$K z?R-Ceyn?y21oJt)JVfy1CTVYc>@qT6D+Hs%t8X)2zuBQ%G`89$618xx+y1DSAW^-_ z2s6U5ECY3dbukh{8~%dGKy7eFBOPQhP7u&{i=Lm4EiMAx65Si}ys*^|v0ULo&buzc z+vF^*ZEcp}*M>T*%6noH42wtY?Ccji6Ed}Vz|A+_G=S-k(7Fw7Y_rhQ!$(N5wc)b~ zC4lXQm3mg~0(aIcbXXr^Jr`QfW&Bc3TIQysuJ57DWBfukA@_rh2RpQ{{>)N^-(7!8 zLO*GALwpB4yazfh=tWByZ(~0ldM2BiW-D@WftpVJ>4{u-EEN^igSr4y=bf>;OCTmZ z+72|~DLLFb_{Nkeh5m6@;2wtp{+mKIzpFF|C4ac8f&!pYLOvuDRgV2p8e^-wf1Df< zKtT1JR}Rzx7RM%bZ<>)B0%tolArfT}J3hxaRa$t*Z82 zE|Y}Lc#ay$Pf%4QrN{~`@qivNY-&Zz4}%q_qt71+gPOu4U`Hkk`fSk;mW;M^i)eWk z@bHqepX5_&oG>``)AE)&TL(22Es9~EuZ>qo+Z9b%g{tjWZKlbbKin%HwaBh<&s84b zn|#=4RD5$~3fmN|D`kXhb>L@O-aO8O6Dx;$^~>-|AL=N~?3 zSKcv??uhx?i4^R6`JAJB{PPEjwgjOnt$gDo&0DkRPaQ}%edLRSJ-=sAI-nz8yXKpo)Ir}Xp;Gp`h8*%K4H zy|oGLN{7qi9R)we*ZVYTvcQwdqpQO$M=g^=H8OS$=5uax{@dgE&A`E} zd9?C0AE_5BS60Rg>QoAb*Bzj`A(UaW&4 znOQ~VH(lb6Gs}TPU6!n*tTY8B303^Ug5>0^tY=P-w$TIB%&e>!-@85Lu*R!&ycP=| zm&F5sL2edQ=ZFLxDppm}dJeod$?P{RAG5ApmbxZ?MFcG0&gK5Wr}RNhoc4zfm@1!@ zz09s;UlP;o?01$6EMy%eb;9`}S|`35o_v?V?BRIs zsZ$zVUBh@E(#~?^i$Xk9x@mdJ7A2y}&sH&i-Etu@DlTVNzHDr@Cn0cPu&+BdVKCX6 z9yqo&+(Tllc3iKp#Cllg&!eJ<@rrGGg2e3d6sJ9_i63-db@2;lKdCmv`ieqQ&QpM# zz&fr@EddrjTU*=g0K>|fh`SbBbd%om)d`_SHq@Ww5S!*6S|}R1}>uTN>9($ws80MyE+kEbwvCxS2PIM!};nbAV|*ca8CC2ZX!?AmhjlsiEcKBENgf4DSu&(K z4gTf)oapujEQBto$!<7Hh?T4ZIIx=+>OS|>R!qtzfK*mkLQ<-n(MH9i1F>I&0t0t% zk_PnC<-A`@O_-)GNHJvf z-aUBUJOt*^6ESoerfd0Q(HX)PElp;gdr2V|2ZG-Eg;%8Tid{Wf$q}{g=<-4A>-8ii zOH!qTswgNZWZa_wnOW#EL8{d$Jic3}y!A#k{>3|g zVk)PJ(qX>?<}{~(-J|WQylE0~LOR~gf>l2fanbU&@9!F(5}B(ap(hy3ur^Z?(O|K; z`)*sNlb{`#q~yl~`L#vb>mZKth!8H0@_=IM+C*g=_2?%GSA#M^3trAM@9zdfZm^nj5LnFU^liI4GohKiGBWL|Be6}20=@z6MJMT%w?ACmtJ+HfTf)*(ev zbR%f$ex0=-)WA;U9)pAv7C$rEVV^bg54=bA0-E|J2j?HzqV`M>%0-{)l7kxQ?*}Gby7Z<1Fv)1Z=Lzv*qCf;9W(If zZczuDyT=tUh57D;r{hlOt!UMOqm}!zrFG8$K+vtLy+ll_)IXW5Ipoew zVa9Zqv0axNTJ2igfeaV3sa`guqr4PFKye)qayE^UBU&!S8Kz%?!t+mKYs=-0zQdiUnbMqG2V zp0&8ya0rzjp{e{uR_5$OZ#}`R%qM zLt+v-wc9rQ^xKL3LU-=osIti+=+y!+ia2b{&z@TypM~jSw0}6>R1(54D$>S1@)Tlfh4vY+lNb|b98_=npyJUs4# zg#tg72k#r$Pd|yN5gZ0&$nwIwDJi+EPd6YML;%rIJDg364OO@T$l}{a!7flDTjqm} z_^3EHkYzEVRaYPea6gZlHx11s=kXU!iUOYCgC=f9-Bxb(feAH+Kh2L2qhm?PD`Y;-vm!~wfb^I|SJSs|%hf9&W zESM8;mNdzQg9ESAMK93C@>AgHHnt1gB4LFCmfG#~iyik`%#$K%LzzJAUZ4dnA8&Qy zyaL6+?eO@CgJ~l2Wh1__3Bg{0CL|l8v|m?=>jzmG$zEWxrT`9G3iwrLFuB;FtMm8} zWY6v!|GKXK@2UAeH39rb2P-HQ$MdA4@A3=|Cgz~Rb)lwFzg2iVdWIi^y%)V9;AhZ> zYr)&{q*dn2i_k`B_V^c9jDMCE;MtWpq2s6&ona9U?HnZxtRF7 z4Md|Tpt(1YKJ{b9l7_vZ(kCrF&=Tk5PRN+HK@qp{gwuOcRsNyznlJ^OSk*K|?4)Si zLCjP$VBh58`-Z)M1ZKdj2H2K=+&$=EuM4m0m=oi$_lv{tU{=rQ;e71GzrraWmAMoi zFKoIM2^#G{R9wVjOnET4hzUY?5|_1(tZe?c0)F8!@+Md~V8JnMq=L?rXBTmDPl>@+ zpXX5s4T=wFHgC7Jp14bpuS~6PA8Hgh-}8$|c!XHX3hv5Pt?n-dUttyc8aYP(m|cmS7Zmo23Oh7p)F>Nq(xcbo$x zvG%kQ4JILD6#?=2GPbH69x(;fi}YSFu*J)xDzfq#RJL1wb)_iFI#GA9)1)LoMS=hl zC=Jcd&ndHTczQWP-pBomy26tqCrcSd#T$vp>3Z)?UQG*&JP#N^MkeoHf67w?T~qAG zQK4T~RUl7ft@5*AgwfzRE<^6$zu&HvA3`IPV-8?qoOj1|`|3|wO;q$0Tt_@$V6tY= z`xz&PGyidirh(@kAXun67cdaqX7Ze#Mk0yd_PYUR?1PW1qL|B&kkW0ps<Syyf7mX2f zD|BioDRJAY48@PCn-Axai39wcBW9{}!O|YWgzaI#Wp-3CYFEI z7rBn1O?;?hb$ju?(r|aIkTsy?AlF77b;p0YDJVZgra}M#wq=wxM1#qC8^55DfYFEp zY8-eK2V_K%s_EG3>gw;`=?_fqpG)*N?7s}uJ8rp5J0oj|k08O`fho8kV05zs#Wil| z`4ff3(96exDQnC=E{hX`P=6XBM$i2(Z?+uyr*IYQZjP{gKQeLVz*lNJ_Led-D}L=u zIVw6ypFDKWB1o*n{f?al>)8Da8R}^jTt`?+NOk>ug zta{!YST?>KFq*RUkrdHaS0Jz4_keI~7VO(Hr+$2V{Xh`#@1_R@PU}N53yDP>35O1q zKqB!a!AXq(55*mf0AEY!N$+)};B{C6>vv#l5ybr_>8LE?W6y%h`;$iQyA{4$Lv5uf zj|Dq;*|F>9w)AmrBJRf9aZJFaB9FI%a>plf#(Q_W0*5kGc=~2H@TFyhBrGgmM$dP* zkvkW~bV;T48E`tjd|@GfJ>jq3dc8tYveP(rK)isD1MR5v&f|<4goWzGezG9Lg`H)v z%5;EgJu69I$vXyg=5r6So0j{p3sO4)Jt@J|2C(|s@az5!Y)p4p9z5t5?OKGMlu{eN zc@qY@NV%AYc=mT!5$1I`EQBW>03vCb8p{?r6!7w82eZuUZ5Mjg!#C>BQg z5sR@62J1Lo?EsJI_2Gg7{M|W8fz7WTG+$MqBFo|N)L}CK3YOq^^-^hIq)kmNEIw8U zx9?USEiH{8h9-X~Sk9IYG@iW9;fa+UsWvQcZYJH&(-bCme2KvJzeB~v*$_QQI-m~G z^-^U{>L^vWdHs|~{Uk*s#3Hubvn2%JHhkeA!lLc1EgurIxI9rUCvelq80Mt)j`ntg zbNPwdryfNmJAYA|nXONn&6Md<1SK=zz|wmK{oYVsOVrP_5m8E%(w2J3QR;@Wx_Ye6 zd6ADuRO<~Vdo*QIim_2vpTyD}pqcx(hZXj{zJ4qhib2wv`O<>etSzhA|g zF|_iaPAig_m+GTmkdVOlybn=g3e_MD4P0NiRz49oUQt{IO#%GWkWCf9_B4hY*EU6a6?_pi%gqKk#e)m-Y2eIUF zi26hhg{R`6VRT0+!1+L{bE*<4bzbL;HV0-V83U9MC>|Z0_@fxLBi(7ANqJLg*!i}~ zh-NtG7UlQiHs%5C5R2QZ4@Raq?romCTee!&^1!c|wpfKOs6b#>D2*g=yxFtj@jyw) zm`XyV%gkvK(STbGhSmvimn#H8MzUf8SAzid;&u&;TfJx*sZd~DcOom2%;Qz3Jlq-+{26NR9uSEoL{`Q@x_ThKgNM7lOL+6$z;V=a8LmT*U;X>_u zc`sgY5&jm?k5pj|zUlO3D9XSA>giUj?sDY>QA_qIhg{&+O)8el2S=Q^0Xgh zI0--I#hnWKMPT3ibez_=I1NDFKo=Do5>^6x0G3E6#Hj80XV?B*1NL|t3s6B~jDQ6G z=6rm`;sJ{++)c5B%xaK4My6j!S<94M;;@&ezO(Je?ZghD0qI$YNXUH{mR>j;m{e`ys zyDDY$`#BySo^*d=zPa1LS>BS}1?(t0Hujz3hrEvNwUNR(Ag&@cSLN135hcrjwgLt> zIE8BS(ST3-TDaf}Qy{2BiM?0yn$DX10T8)ai0iyCIqe7rzNKSJ|w?7z$R%@HDHc3y@vO+Jw=lgZh6+EN*9oo zGA3307;wVa>Zh-p#G*IC7%CHKz#|%$B2W?OgnfN|34)GSjHAzABBB<93dgh7=vW&X zrXQBw6&A}(PnT_PRjW4mAc!m_nH{~*Gmk_LV%&wm`HybKE-q#!y5*!RN#xe{OpWo1 z)>>9~?OPgt=L7F{nsDC_e6?_&$s5-LTLMa88td~uxYLTcc=zz$^J}Q=>erv@-~7ZF z(f0ZwXdTjhK}?hSvvVpLBy|MHML@pzF^OA^7_t?N&#`jFu-hq91tg;}H z0$DMrDb*6kDDg_vSh;_8kjO`aVndbGl;SV~h|odvufdOR-AWrXsKGyQ+gtmK|GE|Y z|3nK^m~d>H0V;f4fKd=Jw|OgADyc_xoedO-@l%)sM=kPm^1G*w(uUE4UY~Kd>eiKl zT%JwwpX3Kp7SUgBL<`(&h(% zV@zorG+&kQPz#vOrSSoXiMFKCOoA@<9n_W(P+leyQ)s8&^p!=-$I|s1Bz;fae>M$zK zmi|?G9rj=V%NMWvo)pB2cSy%@nklB9!sl!I^i8QvVr%nMAPSJw0v7Nf5HLePW$npN zhKJexD~6S;rp$C}b$4e20s~E~CR1@_2T0W*MjZ`ZV;IExkbw1(QHv`&nq2n|E>#VG zJiPeA+xbgjS;bS}72S+siK(C{?=@M}xys{s|2VHFS{gkex{6i>3&pN+`0zyY6vD8A zPgr!}7mW2d9JwThD0yDx(LL@8YAn)T)6j4*KD_Bpfvb~WpvA6GF8rB0c_5Kpz1BCY zM*(ra*-!=}Cu&V}Gc}bR;4ARxL!Ty32oQ>YUUl6IKR>1g&%>@~RFr<7-#(cC=(`95 zFcoAKsW1@j*9@v08~UTii^lgtp%*Gmbuuv*N=g?+}BP zm>r;00yr$G{)*NAj*p97w-)4ywzI`bj6-Js!6c%Tf>_L=P|b$~m(POO>y*lg$M>5I zu`b7QiYIGky>j;(Y5Kz%q6@UyRDng2<`}Eia#Z?dNTT+}OC6m=67e-=|1dx%C!pF+ zyFkePQv}4jM+6YMs1jmav)rjztl#vWVOuQQJt9d?Sai*$KHIr%xh%7I%+N!}b}>RZSkzoG;4UucT)noO zL7k(2v18#HHcLLWGRk9+Z;?)_t2hxX+bMW;$+Uj?J)@3wa+;vPPaO^Gt$hGcgBp;* z-aG*Kph_LVX!NI56tDxfKn^fM39E{N zu6_l`h1^wg@tQteBoi(MSv#4k1w13x{YR&| zI;ym_iqZuuG0p)8v`N=%!qKi6oN#QmDC@Wv+n?D{WeYeS&iXT#=Kv#9b&mX_MEEO- zUiV7grIwI{!^IY4bA$iYvJnIfnN^jr2vp|!hLt-C*Ah~1ngKvUP);OXhDOwHEAESD&4z( zU!&UK`7f>M)um!KAx&ugnWXSbRT2Rx%GZs$Vzk!t0=PeFjWd)?+=sR;P*o?md{k=O zDR=xOYY~xWi!f~u)dSUbx5X6<+Lr_f81oP3n{gb|U9V70N26AYcIc<>ERM-H^QFy1 z{gSmZ;E!~-_Q(e&Nj3;Ql#7NJ?E-gkV8gZO5tj0Aa^vkxhG2gT(vyJ;20=yHb!yV>`U-Zh(zqMq7pg_ zg+g^pVhhSD@0U-}xqB7nnJ=p<^YDN#cC4MY9edZgOTnJ-nFNZLw)o-{xTfZ2vm-k& zaR7zm(5to@sPHY=0f9@QR(rEO*WSojCN2hY#M$9nq3h*&;yB#4Oa7BpSxptDfqsOc zL964XVewA@u@gWL<>m#6&xCj>==VU&LPi#lwD-^j=l4EY16l(r@m)sX6}RY5!#Ur@ zu}0*eZzb3K&a4u`9h8|9WHTx64!gGmO261$6*>_528wdv^u}SxYV$j1o=)2wAP1nG zAFZwxJ=01*aquB=b#+DgYpSV%Zi)GOxD0s(m=M?lI0ddu2W9OpN$48NSBE>X_Lp%g zRz1t@aUqtwg$2M6h`69DW~;H20#~f_qb(Yawo*0W2_khlKGc|~;4y_JS#KH?|=UwXCptlvA z*@LQ(sfxLB=A+kY9#&zMfEX2b+A|ipX*G_i1m`7`E z*)NFwF6ycpa#GMGr?Vw3yLF`hlCd9Rf7AorYczBheKuNdx^dVkXMIRl%KkJ)k+gkr zJ$`%~Cwf?e+T?nd3XX#t1wx2S5N?lXBjRG3zeZQc)47 zz{zufDh;D`GKOy^o-Y$s?_(F@ox8j}^tvl9qTf<3l-sj(x|MYFSix8Occ_1lq3uu zU%E>9K3uuxfsSiweivvD12th5wtE%k0|`}oD+*OFEk?d<0$m8Px(n3P4lOqIEa0?C z!&)BT^E`8#K3rSLfRe_`W_nCC>nQ~JRyjNeLU&|AsqYVn6nz^nIamcJ?~ahsQ4iNg zV)645^PS^om3q+0x#v2*;b0mra)IhvynsHgLC=qvip(tpnVL#(>1e-uhyncO`gK7c zm+>nvc+V?%`9w!VJm^S@uB(1ek?5ThSC@<#i!D?vfM0nQ(Z%pIuJ%VpXA-shvEEoe z!x*7PpMk=9a-U_m>;td-IP6pgSOr{Lh&hyNkZN?2oA%K{4oXv2`4utc1mp7JjnIOu zPiTYBP|eDb_Di@~R^!_73*lt;7LB3SRt%d;*;}k>Vg7#GC+m6!JA19EIidl}ez3wf2c-x zNRgbsM0l&W4hx#o3=7+482mvJULn2K{lOpryn?MeAan}Sf*MN{n|3&|fD`$rcagp$ zD95v0p|u@@iwCgR9&_$IYs|Jd0Yw5Jec}YVWc!^#$CmG(ol2wTKV8gdPHD*&1jM~; z(_v|1P-P;R7PJyRBH#uk7Xif`FyZfIm-8G!?ea{)0!>x`4%2iFdtC$E7(quX^o$TtQDo}`de=WOLf${Qeu^ybE%13N1zX$A zFDVkfBp{U1`=}Kjr;|qsC)GetfH6Q*OPN!bS!Vyes(oMD5B#6t1wc3cC2DpQtvy^< zivcJ$9-&b41IT(5VdlQKj6qxgIsdPu4p6*_s?Y+NC;NHHxKs!hfRw==T%{TKc7|*v z5VvhYaKM*9S{KvemsU-gOK%0EGdN zOks7e-x22V0c{>gQK6!o$Tk7{hHCv8=8-xt^bq_(RNbAah4}?DFKWte{?hsKWSpk1 z{n_45PWD4FsP6gtN}4%agJP!fq%dPA2rY|WzyjFSU*Nq^dkoKKkad61F_LnSwjHbiZ0Jmt^+odQY%u zd+216?|#L#gluqeN|scP9ba;trA?QQQu^^#CXHe(Lsd0S;^Jv-cYL0${YVGXmUK zKTidV>}6ro-mrabU#Dj&>uO5`mxYJxPHQkHUQm*q7w3Df^LKyiLLDM*>_5*wx9zqX z#W_J#$$(qlH;`v81qzQww$#%^}ad%#l>wABi59 zEj+xNO#l_HH7VU|?{rcel-0PSP>B zN{M_<5)?0_YH9D7tm1-PxAG=03=#JdU*U@vmLWDYTP~%j1p%rAzo;qb^q2?D z>+`#y1B=~t#`mMYTt=InMkJ6hb*qd@S7I4E;z1~49P7u?VaO8?kLvN$c2Um(D?5l= zUP8ouQVGp#L-E}8$1cY;J!1wtM~;u{uM8)MX>T|gRh4rg&#jALk6K}MP^KJDdu0r3 zY@xMrOJGmv_<_L}eVu`Y5TXWm`{)4nNG-fa;%l zn1dG_mYWJcKvOH_+h4Cs%5GiWe8-NGZW>rR?Oo)R3}C<6f2o$4G8zo?;tcx;xD4J# zu3pnVu{FA;StGOFoR7Ki;&oGqPnJBPWFSP2!xDlMF0VfQ^~H(I&C7+OG zeEt>^@o0F)lJ>yY20fqKEhguBi0anMUCPPLWe}pr-2!Zn`pwI39j1Q11NqpZ$HvJF zg%1&OFcBfxQC|yQdleJngiGAk>jR3@Om}rmYNpRYeCka=<)#kB!_e-II3^SI-b5vM zS;1Y{rI+vf@PqDBt*xM0I%QA-`nh!zT?*NqvsAb?YTRaWADj;-*P6EBH|mbR=fe*^asob| zr-lz9JcY%6Z1$&vs$~pAwpJN4 z`Ou&hVB0$sXH7f3)nGJqp3sXP$=Ao~%`^=hvOO6_2i9+=8XjrlJBFkX94c(n+7Sz z4;{$+;G0jOp@1sA^ArF9kxtYi#$$EU<$ojXE#s=(y0=mHwooa>AOu8|6p(IE5D}0@ zy1TnmrKDB5rKFq10u~`CAl+Re4bt83Sg`l=f6qD3`EcHIe}f;3HSZZ?T-P;X&N3)| z1pMsvaf}DDcq6j=^$c2^=RhHbH-QXll$)l-JUCUrSj_{gm8b)VwX{%>34AcP#}gVE zsi3I11>WD<6Ov0aa(nw%mXK(5ptlNy-ld9bX#aeu%>Z!--VgTE!?amT$w$G|!jE^a z8-N~g_TaYl5jh|2tuHQZojnz$M=csB-5;jTLuMwC_jw$j^6~Lmiv158b94rD04zYi zy%|a%93j&W#3qpK@dUu&s@pH<{gzWji>P`mt^*m;?;6AQ5x4>*^4v-sx?-B z5~8Z8nA*^j#9(}mP(stO|MM;%V{H8E*vB0OC8Wzt2Iz-~V4JA9@6Qy8Dl_3@Cf9Cv z*4CfZmbmwI!UndPZI_+U&)49mCMSo2gHd(5%=V_H@CCC&`(<8|4p8l;H<0qV*LkEN zo5&wI1h4yf4kA||`!qoiW0?)@BHZ2mT&vD&a3rB5fRYlq`bOdLV~Tc-f@dp-0M?+g z2CclIeY`mmGK)OG8)exwq7g3h(o^2zUrO8C|LCn;_jfGmMfE$4y@=bz|J`WR-Hat& zhOSdV?Akgy&|?YOZVe$VCZLyUqWggeByuG~6Q-YZVxpq*If_>Eon)b1gI|MYeq8Gy zNT@i=D8i@^9a#{-fGnXyx5Mionjl^&so6oT5_G+Tf|G+D!$Z1`&7f>hxA?7_=mbRC5sJ{d-CKY0!`7PBxLYwPrr{dLabV)-W?)P|C}=fw}uaq5Gs{7NhcooK|~GLxh`W1W(j zo2Qp(h&c4caFT}1T1tnNO2E=C(c9zTlFl9}*6+8yp;wnX6ffy$Yp;~gk&tn+G%P3*Gy_k4Sg>T&^oQ=U|yF`TIZ$ z0%(n^9`sC4LV~>4cl}|8 zY#1?RGQ&|-84!Y!t{S_g{=-$2Bt}xZ0lxOXCwQ&rNcJ}0+P90tZ=mhh@Wy%rY5q^k z#;>KBT((mYBgkzP8G`tt+*M|U)i}r;la-bxIQRu~2)Y(X1a11E=T&!6i!t%2RZXvxh{ zZwy5fF1Fa|ZCk;<1kv5=m6%u+PnGr~$ zg50TzW|!nEE8FV5AX4SFw3G0e4nkGrr0KtJmZd+BRb||l6%`c)CXr616!Shu=h8Ox z3X@}l?lN13($ZQ8#{LXPZ`>>OORUkMqNi2qCIeI!;zA{3@`r9522D*(@im&Yy{)Yf zak)l@w&TVqvH+)hPz&aTrd>@p7<74DncS+2BuNp%#XA@vK<2}KC?ODnoJMfXMRrB# z!+~axGB00pkV6TI^P|l|NG<(%*euP z)qs1%N7JWiZJB{0%4`>INoey^&O-K=WOnF}f?87w&|| z=`r-k!@A;`Oa+?5?zqcpDx*(J|@!Ssw`T29EONTYA()Xe(S;HCC z?&#ESt28DUj#an5!EfqfL&v}oo>%$Nmf!5);w}UiY#^q%iTy9Ge8>Paw$R_7)Z@tN zOiOep&vu_Pb+6oK2Cw_5e4fmlzd)z`^z8aPe`j@ z;3rN{=+2&BNB^fO-~XTT!~b9YScuiu7u!$7IS`GuIc(~$?y#Q?^updhneOoG|4ZHc z|7qg~f8&+2Lt#k$a?A?KHL%AKv=)<_Vll3fNC9XcFSYZe!5CGdB@ z;A$@vMOL@86f5V3ypEZ-9Mn+RpY1mriCud!$GQLf-rc*r$UP_I$k-^l=G=hbtW5mN z%x8k^A=3y8qT9GvSq*=^J$yMqT&C(%>UZs$zy}FzVRW6KhzQ43(;xIf%zD}{Lr5f+ zKYw{{^V-%nu8+p+)lwgA9i#0p3?X7q@NXOwooD?643p5qo)#f6zC!0U-}Rl-pf9+htZW>r*r4NZf~Wu@*6wn4VX# z9gP+yu43Kq>?B?#azo~kLSun%O7G6<2foa7?>zhH-HPp7<&aO?Uhu77Z6)D!wC>w4 z$3E^=wi2C}dX~?@lb>Oy&X9xtqepJ*wiCF|F#??pCE%b z{_;;Z8OzTTEVjc#r*Z8oMKnrrR4F z{30Qp5r0EkjcUSJq0c4An6ni3cXgM;1pC3tTKa+wY7COF7oEKI6B<10>vw~yRaAaM z)#k7GuJJj>-7#8~Fu6Bxn*0b5lvr+Y->`a7lMa!KG||9z3@@EGAvEv}AP)BO!iF0H zoSabPu8T=EC=nvnaZc+OlIb4l`bID(?#DUDs-u~qY^f`-MvK8Cp62N6&ZbFR0oTMt zQi)lW$OMVG)7I$Rw)gop_G@8&1n#lk9zm0^$E>WZ-nB5S^e(i2A}@(;i{TS@u_t>G zLeg$ypo$TLyV*RALeMCMraXNJ69 zhd9lJXH!z=$N%!@TX;RIr~y;9)#30th2vq2evYNM9Lio~(vo_c{-!rES8J zI$e7%)KzT3<)j?Cf~w_+Sj0%GZPkmrgxLsWWLm0XZvVG06(635Ka%vK-9L%3`zFkDL(il-HGvjv`~1 z6^ot0hp|pz5@sy7eg4>)R8TPA#m~E9j|#nom(IsjPiO!ergLDzb;%yp*VAVgmmpyv zDymR}MZfU*3C>DpmU5w^-$XDqwHoyY*lh;E=UX^!X~DLAuO%_ps{aZi-B4gPUxl*x z=PJFm89|I6w?{G-r>`$b%V z>6vAc!BfKMu58YecXa~G=@E%F18OS~tW%Ts(_y>;@!YT}3yv5Hnzp~ZySPH+wi~U% z0bYajAJZnoY-on#8}SEKSsB8p&y*@~ygEoYe!2ty`UQuCR@>+av;JtIEn^;}? zGULM@ry(P+3y=ae?|&v8875u9x^H=m@LbBuFl&;p+FZ$U7!PmKhh6^s;#HQ6w4!Ny zR82=mq|riWthuS`b%sOHs}aYg_lxF72n~WPi1O7|Z0*@&+tSi}X+lU9?lsic8{zHm zm9B#bpti#2I{g9nVe3@c*vimm!YzT<(NSF~zMDATeLarbkVTnDHo-`f?Fv({P6x7)4u!xu!v6dJkv8DXYMT z)y+-BLivsW*gl8g`(zS!ix_hpyz%YVaDv{1L~ORPyL(EbyfFzm-eRIN#*(Onq+?t# z4QTC*SAE(e(ayS;mV%3`-T02cPqu0(o-Jjk;8KjbOXTXpy zv77RkJ(^j89p-*-V`q_dk~G~Qgk*T^%)=bhORapa*=-EVi)86z{TonAG=x#jo4a}z z;-0QNFW%QZEn;4cy<6g~q&r-gse#$;ylp%T+>z00kz5uI`?njP)OHA2($L_kU8Lv$ zAsp9}uUSfvX~xp~*x*E$p8M6FTL^CL!{Le?=ee=U%CX@wqIHg3ib^a(*C5L&_%yS5l3LjL#j+`PWd4fXx)zvQNj7SU~e z-_!6FXjFd)4qoZal;uF(=dk=$_I1}B0}Wz}WZa0}%^5s-&8iHE_oOKg(Fqz)8_0Zkyfn$|6^E8CS6{$w`%+$^@TVj+K0RF^W*| zRKN3?NgM*qAo$9@g-RGS`splr$R#uhha{eNm3mupSHoj7H_jr}i1I)R$3;Gr_m3B@ z+u_zHn{=?vEiy7*xGJUQX-EIS|8GMNq44hJmr_$cMb#X&JhN-RcU4ON19z+o%J#rR zwhS+V8K&~sE;Ze6nQ91@Mx|!zLC5Z3Kt#!OsGTLeWVLKFqqzY~@{h{6bS)JwyA^el z1twxidOhsR>v{v&#r5|Oex8r_0xsjtT%R4A!tanGmINJr7%Uv{NOr)b9dRkZ7~#u} zMr63}@8m4>=!UQ7Pc8IPTi(Sk9^zRD!O0GFRGi9zArvZmcD#NlIX#fg#YpzN8sDyQ zIh0Z_V>3CbZMG?t32cbefOp2_F7Qc@9#deGu)LB&SCpckU#2~#eVsr$7k0-?*kT=) zo4GeD)J)>+B>M3dRciLj8b=-SziTPni0-4&ubJ(lR%2MtHn}SRmBfR92#4{Ce`Go@ zf}6j`egAnQ&(>EWJzdE z*ji407P&Oo1SDEae*wE@=8H4n_#Ok(bOmlb666_cevDl zjZEMkVImzIW9-{^uai}Gbfn(~ONV~GDN!c(br$hk!~ICzdJOSS{PRzV`K(i$WgmNW z9;R-*=;tuev@0H2re|Pq;P~^dD!n6)>vA&3n@?jUjsNJ;Z<%jGADJ^8`he^QIOG01 zR{?7LYtxxIp+U!QQXiaq0&-4S*rc2fv;EriZ4TUao6WnrGq}x3SuDRr$NdaZE_I!l zNA;0I4L+acDlc?av8cW&pz5)#xh&$s6^}44e#?T;@eiT6~iLt)TJ^{P@C!9KkOcNqX28-QqCj*8f>cBy+ zkx`)m5c=t~eo?`0iy=OEsr(#HRoji&@9%)Ou4#>XOs?E#LOUVHZb$?%6I zz#_W-?s!AU*47qO^}3;%Z|^QPhLGYIh(VgQl2T^%%vl>V1Jq9*{*HKV=v>YSv0xvT`gJ8A-J9H%pX9#uoH(#^A0>fa#H^6f9c0)@6iViQmx zdL#XH>xY1VSl-o4u##?xi5~yh=Qk+(nM^vqADQ%|{T$hywlUEC4hSh!{(+Y_M{*b4 z>;1hqmYh3+JT&{VJbFCb%#JkYF0X}MU2`&AyI}{6<(EO~3WDCnP0e6n$A<*$DVWa6 z_5Q5D^{Hvcx_y?8KZ`KT7?QKZeancZjtP~SOlvMw_DuuHbmqrtOC#9>KamPs^Pi$V zuKn`jZ+?TGh)Wg7j8xhOe6}XV!wkfhsV7#I`3=!I!Xu_XBli|7=d+e z%mDvEdLyKisM2~3R+zZ}6V?`ZuS)L~#l%Q{TqV8mD#9oj|VR(0*O;%Ko{R6WE~w< zZJ2>IY00mm*YJpp+yyZ6&x!r8bmg?PWUKQ4i)cnUS{3bg&uMJ&9Ip`dmYt_ZY+{YV za(kuS2wD?J&RZT^@&|vgT6HSvlu~LwQf;Cz{_DA?7cLy58;KgpcQLiz)~{ zWq%7IhFvZx#SA(bfX%PMDRb~EU|J--z1`CT{DOo1f@gccuo(nEX+D!@Uho?U%#Z+= zlu^w!A(hs~?=DAZW$nT78SbLWRmjgBDb@I6`9moe$nnxx_8Cju2Y6v(BSZGW$*J6& zoVVqtirj#5b{`>x9zjh}K5$sJb|_bgGyWt!lNl4eojUwXa4fsYf+>*#l#hTHEIz@d zQ6^d0RaQQNI6n?5`+lF4-59q-u;E`iE8y=$+pU)VTn~Ic9%{y}g+J;m_9i#GWRD#7-elyuqfyqslGvMHiuLarm7MrsSeRQRB|vykyJCW-Zdwx3gI~}kStYLlD6!#t4gBBQ4j9WB$L^?Z+_T&$ zv>3?aF%x+omj>_xjc3hk{8EL_)vJj7K4Jt4y}9VrcDfy$oZN{jOE<)oK1;0zyT?x* zz08h(KC(&!1GY?{rKjeUQsglFc0sZ)KNL?C+t+PgoV{6O=N~S{4`$zWeyqrD$t`6S zZ5tMEyW)(xbTo*QDv{7m(O8$Ryxd+>G0P_?uokcMElc%3==7A~EhW7viu;*{|W zAaEFDa6Z)4)#;1%hd$|Oo|^Q2KUfYAi`w&@{2uF?@w+!Y^Y}eb-OgJtO4&@iTl%j{?K* zbdn1bb3r*4d1O*ocJ+9+8c)FWs43!y*Cm8Uq4FcLGxG$j`q~tUoC$-jKyGdVUq_RR z9Uy}lx?u$EDk9thbRREO6;+wftgD&A6ymNs9*GfRkjt5%a#V@?duBl0L$~_}r;_AP z@BHfOjT0B)Y?n3<^T}SQj;jJ{awoqk!F{62fUoyU;w%BlU2q#s1i(?M2$=OT$iOnf z{TNl;kL(sl=R<{}Ul&I7Hxm1#AQdtFpJQ~b$Xci-{LakET9b2etA0tUB!=bP=l>QY z5&$%Lj?3F1c<6TK_>{X7?N)6xpB}Aw#%u-ywXJqLxYYIm^gqkFpEr%Ew`L;M59$>( zjIQFAXvIwgZ!7~s!g0P{Q{18$*KYxHM0T5WkU`^xurOTVLLH}u4Gah((3Yie4J7o) zTO7gQ;U5q?{E|%{$LbcdqlGRf$`I2{NSterC+ZsSM5yOK#iyrYE9KR_2{%?fy+?~c zAl|5J$m&7)-?^N2H6WnxG5?*r5vVZ<1BdKBXC+ZlFc*X@sIe9FGLAcGxNe7+_U~z0 z6%J{ePvoinQUYe#+%Z8*x(m)E=6QfD^GBe-mvgDQpd5ZaDok$0Ug65&G^jl#*#eRg zaM<2%c7kD7`L{+czz~zpD`QJeLE()GTSbbO2vr^LU=CHXcs5l^*O%Q)JiJ?r%6AM9 z4KIX!Ju=Rervbo$M)UZDB|0KTnf97YSPb0C{hgukzkkI&N~AlcphTlU3WJt}C&QGE$4E-NGX#HbD4uErtpH=rO8thG6dX z9QtzeHFQe}G_82P3z{Bq1GH?o=k~y|5jLmq_me-Te8(VD)Rb(kT07${OsF8Qk?G=b z!L*H#n!_p2I4*w-<7k%zX#s#wEDyD3uo?VbL~s{#I6NpihN-c8;4qp%A5f$QHLwxL9wuT zK1vB=@`7uYm8qat+xe^!^F(%bcOdtMvYj?UxiN@XcEvt_qM*y-O(!wpIAvzkhdA`J zE;+v)As#2PHBZgyd8{}XfnTnhYU=6@)543&L>xlse6P;R7&5rzv)*kKZ;Xq^UQlm2 zzOb>4HH|%XB%iY@tJMJYpuz6XfRcu?kWimF z=w*eIHMHU*9((fCwanguv+>J!Ee`{e1(?y5t1-jMiRE@nQ*{-yif!|QG5rW(i^7sa zgEzF1*3XH=ywgRcZ;xCqtR5y5T#~0WHqJINCUo|Hvs#%gfo+aZzKTP*1wPz$Nr8t6 z<`KdC7sX==2{&DTTy6dSP{0-LzTv*$oAJwx!PWu~K;^~E;Bp%qQ3@S>Uz;4Ucg^x? z2eqd1$>SN2!Ou#hVE!&x-u1J!FzhRAo=S)r?w|1~wU94iLuC2g^%Yh$9wtym`WMx| zKqAy1xT-^pkBJ~fMHpe;xA?l5V1H%$ z``P-UHrrqKJ&O_>fY)VaTf9``?oT`S@^CUMek|L2Bqpv74F1a$l*{x3pet`UC6E8} zs1~f!fidYTvSub}wsNt}=F+(;LIhqiV-iOjnmH~7^@c1BipsICgGd+A$8^R1YC8*@ zk3fUu8obPr0^xWjEBz+%~g~=h-ZV}^@`lQNU0p=2NfZl%t`1t5ub z?`pq#?r>Xx2MD9F-6lAx)voWv+loy^Pkw2;Hsllx{XaA_$8VDT?>GK&8MAI@f!}u3b2l;4 zD$Xf4b0@qp+XPeHsy6-2HH(A~+ffJ;21}%|nv^U&3z^1wH_>nt{SYRlp-_7$+MWD+XNIY94twScDIzzAlWLrImqg=^DoKZdKYN&M{i!`YVops#| z+7bNpz0+KFfS-)>k?(gB+hXX62yvgn1|@G?*clyk?&Hh$zQt4jQowDny1-RrRv%|v z%v)N?90AE`f9xCXRPXg8{>U9wYqJkyGeUi=P~Cu=;oX4lICSB~vu28mzxgpq`A*Bd z!6t35@B!b$O&062SyH zZApfp#?1Hg9bir>u8`wA_WC$7z}gEG9a8tE+2FHoFr9s;Azt_fzpP45=RWI*y?)gh z+%{RTyJ9D#sf%VtNXf*`UAT4HklMfdR;)Gp#V{7n6_Gb9_8~;vFVpjG%4csEg@pmy z5S)H%4e8UQNw>LJ9Lh&b8Pij3u~ft1tfNNN`fhJdoJ*K!wLRhj`>-z&zszZOf&2Fc z(0WSLtENXlNmV@ae$p6|_NWP$(?p2>z&s?66Ynn5O3D5LWLCPoR}%XDQ&<$f?FF3` zlmdpdg7K4WTP|Q`Xp&jp2GkT#fExQAax#$F>suk9{PLEuMQ_8jR9jY+)|CyZ)2qPN z-Opr(x5a)V%i~3MCISKwpv2}4o&d?&N`48Jpl9mWT&y+n@R?Q@5Z0p;{RhRp77oiy zDy;_Y5mEE=9NF6dWZPSvyBUaJqd@@jaa!6o3EGse_bCh`fw02wt4LV5P zH2Xm8jf+NPY_cFKo0dj-Ms$N#W^c_=YC1-Euu3XnunS+AUMH|^J25xcvd6K-u@oMO zREblcJzdUIJ7eLJCPsi1&|YvXk75ZLzJGIif0p(8O^Jfv!y-JrdEpQJ;Wa~-)hxFw zCAk)8st7V@7e7C}#A+NZisx`U0C?8YGcBzuVt!q`i$g>e={?bar?bb^j!{GwAFy>Z=<>;FP%i7=LKBR_(aI)viY21(*09d{q7z1P+Ak9Zs28f0k=Hi(cbs(5hB2tpmt+qbA zghl*$NW1!UyleQ0IinG&#b9q5~k ztyqd5!QQ-z1I=>I!7UKw%q6J_cjQvd!A=#R&^|TYp;b_Ajo7o7Y~=W3_(zWpk>l>^ zNudPI0tO(F0|oAjk}NjY}QWUh{CZtRp2o z?txT`-N2foq5PH?4?u}F|AUWcvR3<@(+_8D%>j)iVfXiywz~r}xsQFgYF;_Xz-+(^ zD;98o34CnC8I|$r8XoT{a%FuHi0|Zn z2Q^Ft2hs)Txr|H&tR}>bst3!NZQTk>eUwpRzk0pN_!=Qe!oX459C=t?-@y-txs-+b zF{J)0Rg+FZg^ihe00TV_@qYew9 z8=poM3T`7N^Gc@DFIHm2cjvVIkxq3G0$my|7?$g%Umm)s&~~D)&#R;=^KjzI|1LXu zN|1R41`4H8Q2vPu(+w(a2b(=mJTDx-Z4Rmc9CI*iF*O51xk)Fx{bsN*p5xPq_b#0iLuZ4e25->hTx$i&1)+X(ZuAPsH1}G}a@3w{d<+V7e@x zo-RceT_mOZ`Wx2Z&f%2511XZRq3z1z(*FFqn`z?6?i}+`!fu{g;*#-`5T7KJEp}#^ zU3P;pl=uSi4rI*k6MZ*(AXTFL@Dq?<=7tKp<HlCC*Oh&&wrKMN%ltyHhnZCJs zwV5fqJVAR)hpXeQ;`EXH>w9HKM*(@a<*TKYjhSNNT2ZQ|5`(V?`~%eTrAEI>iD*MT z;v??E^+FxNFwp^%D5)3QljBt+#81DSP_QrB*pe=OGMxDP(}}f!pupa(a#a#s+;1wE z`;p|?vCENRsupV_(Rrzh>m5q8o<|G*R=jUScC)8)MM>+NaVt-t&Ff~|r#6`zFedoa? zH|-_76CYUIH1F%%bPaF5A2Cy-0;saIHHGeaZlK?bhoG5icJetp2L!lm^Pf63ZU__) zwc>AX2rw>j|G*}wG&;T-$hgQQaOws(PaG6I?rl5cK`W1CDa7O0**WJ1t*-A&TN_3e zJY9?$P{}1>nrEEc3DXiap^gD?N z-`;NC9{A}UM^ZA@@g7_{FGH?>Z1HY;xuTZFg^&t0Uia_6kMpfoDRtXRmDOG+?cf>@jVc?25HmSi*Ihc4 zAROWpmQ38&IvM4pw)w2GTgZpr6NVI8_gEVgr9au%isfT?I;)hrGkL7sr$MO7r5^8v znsvO6Z5}w`<~Dd%F4mRF zFHJs4>JK5Rwo#dv!zM{U7m_aiyht>-?-L;uSg$%bM0XmivOFy;T&+&F9=qkijCDmY zH)HboI1VByv#U|TWw(EK#NCsqeK^RYH0ggBtiJZ~vio>C$)qHr7U$72}iue{mleH&+I=cV4Vvd5o^ zgETlDcmJ%>3ezF_CU#xg-D3^gf>$Dox8zr+tQL@u+{J&sTj?#FDiX?XzBt_~U9PLe zt9Qc8-9~|29oJ4mMB??3;`y4)3ZiIx^k!(f+ABk2c!<;_~( z-VhbV!w_t98^Mft3{pyBf5w+7$%qnE!6%l>2d5J!7h$W2-b2Cig}oR5PDRtbv6LLd zf9&eAvDwkLYlXpCsj#z%>f5HX_)`F{eqjXbTZeAkw zGkQtq9Rhzl8AH3tquY}z4fwnrKRpw86!-TMPoV>#2F51gOH3l?l{o#`oO}2>Xd@B# zH0h6iwA=5C#QqL*ABdTvA|#_(tbTrJ%y7O^|2|XIN8AOgVUSeY_i4jPe7qpTqM)R> zOg2_U9HiFG(2jo@fIBjaviuqCbITlI9?3)>_sPa?kG@ua`BYDWY3$>&#vi#WS8;-Z zc->~Nde%Ne^vPGFhBcphQH3}E(md%kfTj4c(Brtr@#Hmn`A%a>do`hCOa#!(B={8S z{g^zfhAktW_kX6R3d&0kR>GH%%J^^6+rXVT)`Y#pLT6k2a@Tx{A9vgMf=gB3Vn)Ua zxBc?V1GEJ2Hh^b1`C}pX@1K1S^GO>{a!X6uelI#)yhMD1loOfjGILf1S zX6x4^`RxFUy0cAp!7D>yyt2G0D608Nb3gw7H@YgjfP2X?Dgl!@F`#f6F?^`t7w-L1W3|XSh z!y=d(U@=V}4gm3Fb0X+XKFF?eAy&UEBiim=Y z%!FaQ>wN)GykE${ODGbol)cIkx`T9y%PdEPLuiS-l>#R`<9l( zom+k}Qsf8N*5y189z1yR8UbFnZpLRrW2zX|T_7>&4&g0rrV~QKQl*sw8VKwa8Iru%LB^bvo!;RmUH!XnRdQRr zgsE$NQjGM3vn9Rc3zw7~h3l4?G>T_im*OtJBd5t)?PFo#O8LndhP&)YuMc^tKQx~L zRfPxXc&u@F-?(~IM7X+`P~82bK8nvxB5{ARHiIg`UTvc5XHd6{x|t_qLyv!E&Q%=x z8+d8rFGE8quj=?>2Kz6XGsRF)zW%~Z9@&!U=&I^|BD8x)v@|4vyGEg|jSz7kCjb0V z{!}LIcBO9}&VKxX`+&ohH$zVun|9TN4H{cd*nWGM2MjYd32pMsXMGlP4Tyc;3{RmxKcbPU%oe6yYM7^j@?r<)h37 z6<*$0hk~YWRq1nt$-+gP$n+Z&UnlY%*%eB_o)Os2wCRYO>HD+JteSSn_Grd^7VKu9yC4>SuV>rC~A1o znkKV=7ZMWMG80&M2B%8kGy(YewkV3jAIaj`&(xspiI8XB-cEOUeFPBx*L ztr*)xu5+sv?at=<@M0O4N^3PaKF5!p1HdDU4hfeS?e$PRiZCL~!|EZ)$hEz}La^j% zL7R?l0GPoW#JJkTx!z~nEvR-88q+j9f+Kglar3*+#@B#Z{*U*rB26c6a&xgWJO+bUcAOeX{;B7&JZF@hE-= zYz-B;R5yn<<;eUL^^uxEr`)orNX@SYw*m{n;)#P_8Xwj8zCsadblf2Bny($d@*`80 z+z0EJf>x~Tsm>B*aYC$!Cy#?fF}PrOoi(hCm`xiI=5e)R`@?(ONRPtMeC4$b+8v#i zc1~scV$*&bW?@VsQ88>1KAD`Jv{n(=(beu#6f{>hR{zBPb$rmJg)}|Z1tcJsS)TFg zaGi1_A({Nj|Ewia=U9v74TYa`PCYR(tl`uf?gj>kttG~jP;Zic=h z3|{lGy=Jk|^stU=f(ajA=j_fr79Ni0cd!Xne6gSN-?`1^biu4YOazZK(BB!R!2dFe zUQfb0UwzTjHw5E*C-^l+55nWg1`n1UL-X$GY_x$h%=u00y;V0bfE0_Q&--IN(;N<| zmkOmUv275gJ<7d0+i|u!<}+s)t3tRq$)jKWP%ZrdLtz=Dn1@qyQ{M8ctg6a=xL#kE zIL2Pte=AuIdwyUQCRY4Icb+;*f`mFg3tU0Lpl(^n%?!SJombevc)%?gzR#LOKx0v){he_(6b-N}yqruh_& zbOVAh&_nxma>q2&FS~m;FVpyi@7Ce7w|)0D8Tl1;F!LGp_i03bEGxUbfWNb3UpK@j zG<^+w;737{+yFlB7W(5Cl;fic%V>_jv(ob#IFsID+_4nDldYY2=pZ10PRT68)|&6v z?NMG+x8qkOM}J_H$lao%kBD*JXDct0hGmS4!fayrBA~IiD4#OKKj*nqp69LdeR^ER zoeS@`;X|GHKhH1GHAD%7HG6N$PXA@?EY_9*5IvVW%SG`+c|+Q=PwM41r?5M#G?Gmj zRW?DkT3+I31^V@Aa^IDB}-<{YC%&DS9q1JX4vT zTOxW8xg;v8?D9a0VY7X?FQ>TUhgJgba$45dMA63y7hjj167=7;bsE=v5&QA`+m1W7 zf>N%$n^5@Bd*8F{=3ggoa(dLLX$U*>C*a~g@Q;%;H2u%>*>g|7Ntr9c`3x+i4y6dj zXA6tir0E8x=CUor-0)S>&G?`<9qy|!9Xe<_Dz|BFY4N_yD>M7(>ZMDSDE-`8&5tcJ zn{(~gZpe0J!J#od)t-a%qP$Cu z7IulUp7yCsJ7x>hwhEH5HaX4`aP6A;8}FL_i|fwDI^W9L?Xp*?h9*&5vd+IfTKp4! z>wPuL5)-?pf52aNKM#HI4XJbQ`k1dSeUI9U&@lMa=R8OFX=2&Lnm@5fB|Mjz2|X)s zOSKyF#%|1|r!uGrywj}a0TyZBE*(4ENhX@c#Nh}86jZMU#dAyyK-n3{BpV`W#=1N- zR0gx6veI?mpB-NZjDh*5n=7aWl)8j-eMCMo7UbS4E{}3@SZN+it9ZJLyc3$3^4BYPht)x;4=;QPqUv9`TY1!6ZW9A;!(92a7S<-- zqSASp%l|oZ12*ygJ)ImKDJdOE(fVhgkR%}uSYz@}EEsf5!E}etwF%Rd@b)yn>H8yn z>WwXG^NNz;CL-ndEu9S%WnN)>1-Eq8ID(05x!PRUSve~+5B--DylJdn4ER5A-ABna&og8rr z9Funa-uyy4K;+4-%U7-_=k_lRVOd6MZYOrLuh@_iX*6_1E{$WN3dmP1B9u_M2{|~JQhZL zOdt^L$fPN$U#QyKrka0b`WDr?k++8V!`12|@0|Qez-Q4Byy8@BL2He#6WJ;r_snR3(b&*x-#KN>^T;2VJhYJoOWy9(yRm)RjhBL6 z>$2xE_KIs4jM!KIiXUoP#v*Czszy(U`Q*Y~?^}Ml-+i#4VUAjr^Y;2wqlvL`s!ZmP zY3U$iY}@$w_}zfCNzdVZ!9O2iJ5I1466jp*4H^n4y4AYCzW=h`2U9(tdnVN4n?1YMeq?qI4EKWNRye;(l2$+3ZH+E? z+6RSK^UKp-*S7AH#qR=6?J+4=J<*htgVe5C%_vZtK~h}Kl}D||tXiY@4yvq}!;7Iz z4&fX*^QrgCM8!R9lT-Qkd(&AeHSRug0Zt!_6K||cZ}&EQLEai1I91shdR!|)x;^o! z0q3FGUbW;;+TB zv+!NYzOOF`?JIm+;#0~u(7aS*3U0*!IF6mDehEDdhQ)tRZ*1v_?TsWq zTrRp}v8J>F(*XKzWVNYZ(rCf28HLhwd|2WJLf@2RDKE1bjhWF?{9s)Jv|InWO&Z6Y zu2f}DoW>b~&t?nQC9p7egij~%@}*0iJ2<~ID@t&Ob9sty;6PA`N(p6!LQY(MDifY5Ea z)ex1Km8BC)ugLjV}-|hDczVvORHwbZ?;Nles9Z*d}6$s z%@#bHdX>BQouSxr2KzNlnp<`FDi!m6q??C&5 z(%6x^p;g~TPw%nE(z|_TM|JIb2An>86_?u%?@miY_4ZEl5a^EQ7uoZPT zppUcD2^R!o85s+!=}w_L2HWHwMM@@UWR`w;sa}*07@+br|N3>Ap{kBN*RLlXjFX+- zo4#{E5}EJl$=I)wyKY26A!^TnO5cGo@oR z$lZAEP&25oD@1qPASdv+w;g%@b`GKarqX*0>4`D{bvASDe)ZZ7QT5tR&}M;3EC%Wg zh28$1w&vH+h|QVQj+fXAoCH}(G>$J;}LgkL}H&Il{3*GS*I?`%$!E*jK=YV z`XS!-@}}im)#{D0KHEI)c=~hlMLqg8;}uG8iE=9@;j3J>3j|3H&Ly;ipjg8RP|z6N z4lsj)+S)k@&v=Ffz#*R1s05VlF?P;rqy9UUQw8%gO7(4Qp1*r% zlC{CtL{)UH+#=p=?vT{zu%85-oi{4ZL+k^53R>-C*3@{2h%{x&reDFtmr_wV-0a|& z#UD0CT)BF+CxR=Uo}7FN`UyX5sC@KU*(UTx$#K@GW=0OBnyTW$d&awiWNUEztv%mS zQg6NiRW6lj0m$S1{@n*K>cP0BmqwXQj>5Y}S_{UD_$ip!U)?r08LoG{iZ{U5k(M4K z(Bau@StRV@Xx+#Q5jVC+Yw`ECf0Xgx(CMT}-zNb8jZ4TNxrxgb~FWp^b$EDUmWHSCxAgM5<&1q6(ZjnS>Fj@y>_ zs@-SpPt<3dv8$Jjh4}Q4G!Pk~HTcw=3edw_EX=OUj7UzSPM0N(&LvkdJp~!a=viCf zT2BOcdag}e|2eZuTabMO?GuBSeo?T$Yv-s1NTT_-BQ(UyQEUoJx3qRl(_%^Nuoc&HYfu z)S&p^XdxG-nu-cHG^T@_DE9XEd5^bx(1Qa7H)GGI&$tR&=xCfCC~W2~MUqO;Un8W- zt=9T{RG0JmS8TuFUZr|a>zw>%#Mk=uY3*S0ODo+sBXD4z1;`lhb5zYurhev%hwO z)m{*_O(t?W=zp(TPYq|vm(e74gX{|4=- zJ9ZW-{ugg=9aiPmwTruTTOhCnq(f1zs3azjMy@TYtFss)uJi&zxh9ao_j2XPDb4IUSu)re46FVm1_10g7;% z2-HXu5-`YRsG_*+8z&(VGUj}4y%rjF5f}Fx&xOJGy*fjNATOW&SO0@r1Fd>I{uz}( z3jT{}$PX&}OjOx8wcmy=vSXF5X$4q{Ggy~d9Z3<{1QWs?t^fqzxaWr_y1%-C4!g%k@^$k3>d4!qaL zDqGp^Rnd4)i72&OE2gMazwY_EV1TGFne5kN)2qG{hPB32ncdd?`Y(_tT#~D8BA{Ye7KLFf*iV^k?h1#vnIn1(akzO{TKk0JeI8 z1)ot#!q70FZy@<&O+TwDfuYfhTa|24;-K(blS&cZ4kWCgYJNw;WVQ(OyU6zf!qNY@ zeV!lw*9&tPPAluP3u@Kn zmIlUXa`8gqY}JOFl-*iFQ_Q2sP4*HSNHi{j+fEUwC}%?utYNASul_mal`HWJU5{<; zB-UW3VZ~haCD#IQK0Du)J5QmEz)K^hapOM06LYo1o!DPbtyWlaZD5}kHeR|mmg1;k z{C>IVU&pZ`-7&%&mbT;m*}=ijKXGILV-iv-UCp)OK1G^4{3=mJ6{@yMv(G|x;w)ex zFWjg4*LSZB|0#t#N0n!r>AJV3ils~8fbn-bC*mWc5~IV&h5hpLo-X(`o&WLGN#Vco zBjih-gbyzLG%r73;dKeuTs|wk`=7t4nZtYeC6^&Pjn}3a$lIA1{($fwjWWDDdP^Ho z<^TP#dgzse{1o!}&%nPfp|Hz$IRq}PK`)>E*DvPPuUly-tp*`VqrV?Nd2bK>zxgHq z$Cu#$_KQzfUPOnK8Xn{p*7*YvRxLw?z46uArDI*=;mmZbneamo!@dy|?_~X(PYtD_ zLl%!;A%6QXUta&;Q@oefd@DI}(dgXX(qMj`9>0xqvaz&us31OLfHZf)>OO6YdrT_6 zukOqYzV3Bz@4U3?+<}!C8(~TTK|y@okh^zj!e3_hl`YW)PH$|Gevy7$e*>Lpa&x}$ zR!nes-;Ro-!DGZhz)F(_5$)ZsQ3Vdq>*@!1dviW1{r!tI z;bmI$U`3_`IYN8?lNaOf+iEV~x0bbgkJj2|XOTXwbAPq#Aq7P=qZzu7&+<@;k3bRt zK>(u8C%pCd^<9Tox{RxrLcw@^u}q(1A|lR@QKo3HN8wH@HuN!V3{|#FE!={i*f}kIImss( z5~Zo)`*T;NzCS)a5OA&^H^$zDsgG zb&N)@ApQevJyN|E)-UJnE!VHtJltGK6Sq>t4YtR-Z_l^=SK9Z| zQe{U$m@SPjZZd66PD)~9GtijyOWkVUU>TT6@?qvXj* z(R#V(g*W2oVr<&tahY$CMGN4(#jm7e6rHVxXbv2Rs)RDtvKs z^D{4U3HS(c$nqDp#rRT>a7swW5Eb>I^|Lo_#cbXd2L=Y)(|9KsdNOB=jg7Zn?y(UB zn)c_Uxa~QgaZIclzLmC2ajkN@NlXbRbn1=z)xx>S#*YO~@}`u7#}6N}oV_3RYXqdX ziKl8jF4UmU>5KH?$w|+zKw(|@bAiMent2_Ei@MGd96}VKc6XKs2WLtf_fBGCB196f zCp@(f!o;W9n?~k~A+KLEbvgVg*ihf#^ZxxX>!Q(B?boaie9qFp^+nDOch@E6QkXt7t!hPD`^(Vaxg3|Cj>3{Q;j?Xw%)Di~nC{<+_8U9!7 z*+AbQ5;kUwg9zB)lB5prWW5}VJ%$?F@8{2_^@D?ljwdP{&o%U!A#R)Z%kCD)=)>)t z3G603rI(;vVw=MrF-sg+fxTE9_3yYiWk?~yjj({oA-K>JN^SGjcp^|qu%*!W|DKnXs?PB%~eH;wShmhBZ_ z;JDVu7CXv-bzBDtuZ~V~3`^iVlTpm)`!F|$U*SbZ2ahn4vN7i#h4VVz8BXuHHMR^= zWLU12{e>*YKXu7sI2Ipv!7;CRG8H?C2^$$1!Ld#wndlW>OqFj))(VMa_brop98(Kr z(oxazY@Hp@Tk9Pdn>8M8&%K3mpNyvh41#vAzY)oYI+5e0WuxBr9bAS|HjlSAGtHd^ z5JllAB@e-SKIh%YP4oFGw=lO(BABZW-(wiQUGIo}JaFj#v%G)MVNucp_5)r4_Ysl$ zx-m-!WDc}!GkvlF*3wY&1ReDxeBn%T^9su#+-PgHjWkJ=&7_)8jJ!R?2Wu>xg=<+$ zXweGn4ai0yA>?>?4MXU;u&^vGLZsqcshOjAa(LLN$9zJx`MIv)ue&6CQ@&dgErW?+ zCi9smh;IANx2o08wR=cBW~LhgLYnko#Wn5Ewb6Ic?$V3-?%dn-F|WutuYvGbCL$6R z%H?clGr0&A$5>dQd)3}EvAgu|^p1aQ7rQ+M(TP1RHWRm)wy*Hv!-oQ4FDa7f|z?_f*J~GKO!?m(=< zolr2y&$zwB5cP_u9<0!YT^~3+qg0`6`9cwI>{$Do@^|HWh3> zK}J`(P!Tbwwt#%tigTVaIoGY-A+_EU%7!;6*S&|0Ti>8O*V9YY%*#OOm1MP<6@UDI zl#tZ2XVw+gSX$ELm4l&sZ{ECd&`q&}6Dk#RVkK1lkg-m}WBa8kxOxkR9KC>jm0Ucs z6T;7-nzjmW)&Sk;p!RKli?K49?IJ-GZynKLofuIo7*O@|66{M&4Bw&bO^vp1NDK-? zS+hcKvr#rGTROFmtG0TUH!zYKC3LVRcK4zs0yR>D*MdgIP;PTLzD;EE+o!!%l@7>O z5|8d7j25q~+n=3)Bwgoio4~kRkktDam4!DiDO>cIDFb<_jJe2oT=%~&c=ybYR%qE+ zFNuo43Jc3`4KcrZ^&3rTiadd&#IpK5az$34W7iW1^pNxa&OCX@v zD0<1;!D^39wh0DCk${|9SRqE+>0dX00R65ypam>hfKy4 zvy3i)02mAyIJ;l{OZ=h<+ zrC=&K>&eAm$4Zry!{=7S-6F-u6=5F9Ug#&40@+fG!iODZQCuwj1~Fe#GX zddHt3I<-_86?K~4MT{y#0~0njK*G^x@hYrlU}ZS(U;qn1uZf+IW9iM@yKpjzfdx@1 z!=^RY^w5KiJ&1gWGvZ2;((z1FB+YG}Hg_0prn1MdDHBEyYNh<{;jHkxA)+}EgwDys zNXhfzw=Nfd$Qg}K#_tp#IMk$eJh~t%rImc&GiCgg{KcauQR4lt$R6vq8nJE%4Srp} z%M)YXjl+n^P$(+<%I&txOk?$0kHcN(FCS63M)KxBd;6VP zDR~O+egGQL6HldCD~D^B72bkb+0mBf!`woAM1toG z)tVP&z1-MxtJ{e>(UrN^BEmv<7AN@swK$1)u6=7-Q@N#)C=vez!--pz2O;F}Jc;^k zxb1j`EO?FH@kF5IK;9e6{Jiv$u`roF=?;8+a^TP&ySdOO1J4M*p`P}u? zi6;0cD30rTuQQOuY9$IJDL>}-)?&km*g>C1+?^|h*_jJ8V+q>5tIkSH&}b+1?gTc|Dh<@Z*P*NH8%WAt^XmRT>^JOpy<8 zc*67!2#kb{3-CdVC`Cv)hCmsDI z=+l{igmPAYjNeB7&oFw2z93X}mQ_QH>N>0hJxX6E-^j#Em?bWx=o{!=Bq`${1$bZk5 z?K-;+ck4^WbHIyi?gDSyl6IZXMxCf7jC?9Dp5mbOQ3OV>|Bwi)&eygeSc5le%E84< zG6xaGFCRv7LcsK@e%HIL+uG3~MHa$Z`YxiR_Y9g9;bG)AY=Tv}xwi){+WxfV>OZX0 z5Hc!yuoOe^O#VkKh)<2K@vwNfuN4izkVA?D5HDW2a`52452U;>D^gW+L8K>tKddaj ztLFTzLb`nEe-FL<_y5%YG1$|Xtq^ap zV%sP{B~L#h--@p9(KZTs(OapOs{H8F%QQ^iRJn%46^@s@JjkK#SiYDAkXW{Bok;C?-GqR>99rc ztXVQat$D+#h%L$OXS*Ld%Jl+(CH3QpkoV)K2EZxm5F5U#7twHV1T%`ORZu;CYz0FS zYEQM4F6?{8i0Pm>H$S(9N%}Rn899P3DAbEAw#HpU=bG+kMY?zU?q9Np61iV?*15OwNu_4>{k^*DnT%xj%Bs|AQ!WbClcc}&EyKZ#i&Vp3vVrS1 zB#Sa$;Hu>g6?gSQK>phrfpgzg{*UB5=!koG_A^C$5nl5jny!?xyr*I;>Z4l({Hm%A zSPl%RF4Mtq++CCbP=h*08M$hy=?VQQ@rRAg4&OvoTyg4<_6J#feEer(?x#zX@kDVk zF%FxZNw9G6{Qy)Gfqw#o>0>w>DmfhDLHp(FSLdA#TH||Y!ceQMcD>t(gsNSzXlQF^ zZNw=aQo66OQWdGTJwz^RR{Sm8ZmLhRXSbwPv%8GEx@HN}K-fn7jw?$(tMS7JSRgtE z6p>j-Qc@BLiAT)bEY6V71!QSg@A*~qWZ>)WK3nDARO3Z+?^w#&#QMdHBv3z!_*>&i zP!!a4SCtZ%GtjOW>5x&-7x(w~e;%jH&doH=ED#bFhUSwA*MbDbAFe+V#q)6a3LD3$ zDz#Y&jz$nj;sDM)V|`{7D=W(AP5>8VqtIipji>$$n~me+)j8aRn`Trr49@>DrQmRB zm(qoYldcnRbaHZ&2Ad#I*s=aNcLjFNc=Kj)4gtGe31G56vVN8?$ze6=c}+!Szo+Z? z&zlaPn)C_`c`bJwweW`vdtbZzd+nSaGU>tqgF*;T7dnr;1)lB2A(G&q@es%Y@^!`- zA5^1$UgL0-*vl!3MiWeXGh)hp!>&|8Mw>l`aJ(9yD4kH+Spd#SDQNPWB&%*fdow!2!05@GLE&+k6qT+kQN67q|DScq2`pDn{@~mw6ti>ufC!Rt+n5V)^ zXwm80pPgTI9MMmAT|jLwBrJr$cG^1p{R;PaUm<>(=MK!u`az)M$T58j1&C}%Yw*hN z>9IRRysS)%6BJNg#@>JM>Lpk41TzH%7ffpySSeLa)8G#Ys?P;1XB{l=^uzDJ>0S00 zAA~khDS21%0Q3+X;GeP;fXAnPc;$Ws!~31J<=(0TCgWn7t!!3iq$U;TSzYsJM+usd0gOo=qU!#67tSQusFd)Exq`+k$eyn_+f|AkoDEyfD z8C2x}XV3JQk3`3Mnk9Hhys^}L9?fKbpLXT<9wC&J?!W=`D#|>G2dKs93k+NcM{>(-I^Ad;Hb=FfKg-kt*sIBL|S7lzPR%DKBCN@ePclI~}MLuw1 z!K5ttpxKiX&&u>nIe_~TSA&@P+XWLQ$}FxyxwWttqOWJteR3(82+`@Qnp#Pad>VJb z5ndE}mYvE*?(x}v)J;v10!_}2p<8oK?fCe3w933tH7Ag_4%mkPCe6+@IDc1H*TZ2L zpxDa_$mE=<-Yh;|jtX0>8%M;;$D`E!og1g|fJS-2hE8`tZT{BQ4<{#9o=>pUzk2mb zr(3*IQ)+>j*BRR~w6VogdNGzpj>Cxuao4PZn?_44wM~}i-d>Gy^@frQu8fQQMsf*Y zt3Pds(e?CU`sF`nvx7xyLOHu{e4)!Q>Dc0KW%{BA09&Ijv+8~YKlJ49G*7!Vt4HM?cgWS6G50F(1Bl{V$mvAnZtGak)-kC%WuPb8TdyBkRtNhE07QB=OLYROdh|JrHlTKWpmB70aEpx&5_xO82_P&+HBUIoJ$MPXQ z5tvCLgIedZD*c@{ypy!l)P8kZdR%HgCP&{#MdSUSsQJQqEA+<4p=pNe!x?kW#AA61 z9Di<~_m1F-F^k0+6(={$oEMK^J@O?ROm#{Zk-0_)LG?!nKY@1lj$tcr(q#Eu^`d4z z{~>A$eB#tK9*e9&@{b89%P|BfI_Jqn6PZf@ol(+6&g zyid`UbU0#5q>l!$TusV~XNkCb3 zQKg*W;=C-MRhxliRl=tSXu@fr8q`ecs497YxN@T}R^YGetc2EY7qu5wyYa zpR<0ZZS>)LWncC0cIcrzFPZHtxoT>0CfYif7k3*C!&f=b;i;tEhizz|(8^?sA>{d* zmxr-|CJVNX+)n7hbQhbyK|RD|FtHoV!EXCKkT>g(hF~+fYg`mu(FZ;coGaspF&SRC z!A6be?m)-QC^*>2oi_@G=m?I+Z_AC}I1Z^0w;mq}?r>BoFMc;8dI*E-jp(`v% zlSTy;VNJNpr*AwgR;Fhs{F79_YQdBar^Umg*`WdPd#+59NUNDA<5pEwX_VQ%){mf7 z%9a1o|JTUh9l$x<9?0z8h_9nHA%anB9AJSbkcHHhX$cke?>9*NN*LSc7-v$kv@}|{ zw0=5mVa#C@Kpq_VkI~y=ObFo$@`~rSTc7Go!be$eS}<(5%8$0w;V@BThZRo9{j%u$ zywuXtf|kQ8{%_y(Qp`m&-)K1XhgyL9PnueO`5OuO%=NW8`F$qzJrNUB^yX__$Z>@H z($ks3Br~IR1C^n)w>4__!ZCdz-4uQFN$X{|8`5vp7TI;_N<(@7#{xc8%-zT9%luZ9FPl*WeaXFy2W=Dn0bLy$$XSEJOEUe1M zY%g9R&_IV z!p%Y8@Y&$S-0b{ZT6I-&)dK_ysCH7#P)3HxSh3MZj)EW)2CjvhzbFv$Z5aPn-_tge z&DOuYOna$SC7uKvG_a9cVjda*>5@Jx#lLGI-r(?^TSMNB)PkjppDRkde)-%Nl2;$K zvJ<{e)hKbr2`y^0BIOLVkHZ2n@f6ZhVoIT#}cjLBfb-Hz>;ago5RN- zwSTEr@g<)!aDAi%z6{xPob7rAHe}2kETQ8R6m4G_pW1f-z65w}V1U0()ev|f5xGCT zc6_k#dIX0^%B>owH7;U%L`(9F$tX}*aAdWuH5P!4slGG_>v(vPmvsT8*Yv<$`ubW} zH9)~)QWU-aQY#-pIG~;1O{dq?yYTn#1lqpVFd@kU70wbe79PNrs&50Z1-xp&`4fCy zSUXX5zp{IIGzH{4C{@y*egnev=I(}Nbp(=t|G0Cv>>Q&<_&-XFFP9|-5lOS|!80Tr zH)GWRftN}hvieRcFu)Ld^y$m`*fHPeNz%<^XTIG@K@1_bL#^POq>EdV*D!eh>dSD* z^C5A4N*3a1{S!GF&0ktrjIYje>N}skJ))MpD&CePP1S2s1b|PZ2sKets9b_Dv{zJW zGKMxmF{E8>GWqil=gM&-R`v_16Q<)7EMX^aJC=((Rigzy89nRg)>6;3ry%oMGzacl zPpCFyq_|6~W}Wc>G*UdQOL`4J9{FbU&(F^j^Vm``lOqO=?NjV0j#&PXa8R@c_WDm(;9?okpLCg&X_Gx`gY>hkwFHqROPF6z$ zREKKdDz_2_p1hfv`Kmd6eSKv0$8}F);#jGSg{L9uvIseHhSQ|D=y&6HfdovVu>lzw zK$qaL(}u9WU}ml%Zh#$DJrV`-FRo0tNXVxT;9}zhk?=OpyWD(kCp9-;{DK0ZL`@Xf zf?_Z%+oFISnR_eA%Rk}&pqa;yq{LKIR9?NhAIMW?Il)|czCCxfN-?EN+Nk>|2zW0n z^vr)&X-*gW~pw)1D%=Z$Q8;d8%#6gn2ReC;eOISsq0MBQ9Kbbit;5qnU5t zCaU`5n%mZfQbbzgw0Nk`SMuHnwIX&r9?Z7@rwE_1~yuWc5}T_yhyhn2T25o6r7?7URpGO~Ivx~HAV&KizA7#p%x zd$=WU`?mRyoi{^a_Y55ROXiB+Ek(l6uohX<7#Nc0o!7THl1C6b0I7_NHqBsBN{Yv` zQZq9PI5utR)&ok-&e1<**sz?%x~XQO6%6U)Hb!9@gZhV>XnlQs^lQ!Zhu2f9T&PZU zKdg^LFe!q^NZ#C=VJJ6&S4WhYO1E{VB|dxx`ImcjB;I+jKS0X~?bDB&;+Q_?J7Jy0 zz~;3k6ko#VPhDg7#{$m@@O43vv)*)KwKLxav_0rUO1Tv%IGtCOjf|+4tpNao)<;5+ z9sB*S4P44-U1)|QW=#b`svw?1GOQD@b!-6v4{EH2=mW)v)d+BEvPu?qze^v0DwMfi zo<;$V-#10f|6mF(w@qlM0!<$T8AaTvsHrNVq|*fXK8l3&ZkbepqVh z`aBA4`efK~4x0x95(1#o0}8I=cXp|`ga z!Db=tPa15Sg-0y)-CA1DG8-UQm)0uMx89b|{pNl>n^u3bjpHOc%K{ab>vZ+-h7|A7 zqp|M#`Z+i%NN-r!Er&15CjvSHdZN_FDf>_p*PsEgW2G!p>n@T6!vPU1vdfIkK9w&e zT&ZLy2!wR=7Dq9DG1jHlMyAU$2^#)6f=IXx zvZ9$CJMU|PZ|1XKkm?4!p87+J<_cM>^E{6|DV{DO;SSqNq~ak7hg2th%hq2YyYG0f zH1I}2s#urDv0HW3uQgpskKUZg7nyY@*{?4W|0=$DW9Y_~BsP2K7?ebpsM1JpEiodT z@(5@5rB_$I^|_#WtFHBj7er?$XR}CJ5Xic&{esN_yB!{Zcf?m-;LU+e=3~YuP7to6 z?T{59N0c`Rz$W}zqH|A93`!dw_s8(MhQvOTU=r^77Kzd?$;oe-4V_v;EWS$+^&A;e zhBm=QisY?Lb{fYk)kQ_A=Wi-PG~A#@gh*adYUKu^9AH*+HzHXd=ELGt@w0G6{YW=a zONR(Wp6c}MEG_}i)HVr8K1f(4d~Hw)wmooxi05_LJp_0z7d?(iQE5~-^1Q-ejVp$f zlE}~3R}vtta}1y|K#TPnU`thL6HWMX6LlyE zLk6dax0E_BT*!Sb3ePW(?^42T^1`bNwM&QS0 zC9-ZjZ77-O=1ck{`-C{?$GzLxQ%if!9v&CMV>sGV*k$=ZVDy+2?JE$+y4tf3Wl9K! zjKa1pYy2M-w628Eyn+%EbY-zx=@QL3p~Oz+p%?>}Myii1pGkgqiwmnKAtdcU)gM&i z)((J#MVr?T3KNi&V@-HWyy8)6tSUvjH-G>kLMy*~5V6qIOmPo*-Q)Hu!0lkn7m*HZ zGs{OELoKLI3X>SwoX6vZ@Nyxjw%%MHnoDdK8E=^BwiG=j zAapOLUZkKK-7lYj{V&Uey=&(7`aE?5$lG4XXZLBX4~6o$u+a@{z`Jg}o-Akw1)O`$MzEO~XbDZx}%o)KZr%&)nT`-b;$?1^O^Hrmk<`Y?Fa=43K9Q< zH{)E;)*vKji*gPi%I~Q_yYr!;0c9iR1-7^)ZvWr11MJ4dfd8S;UgaJNnLi3(Dl44V zx~jjoJ;Z&6l{m0}dsy=OJC(BsN=ZNiUY6Mx5C`AgL`x>MRL2mcMGADz8C#z3qO~`b zP|k0iAkG<<(|b^BT3Bd;z9j+`WpvjcFriTl)tugK`jFL5FOS-@iP-hB&}8+lrpTzz zWsi&gCk8tXm1H+1oFO-ZDjrlNX|jPQI~Sc zlAAKB;|oBQOdiKQka_L$AN3Nym43`Boiu6l72qMos=ay0zybRpZfs8W!#|bY7jvAr zP4E~)Q%-`ZNL6Bj$*2G}s0C!8+cc%?1-}LEJ>yJw;8N_Y3xSG5%u(k_rpu}{Os}n_ zy9<%OvT|@n-Sp1vPWU#^c5|g42N$=eV$?vleh?7sj*^YUY_aH&#tw@erlG<_L}B1| z#C-CCH7-QzlcP2_i2|;>9&i{jHzOc~C*bkN^L>X?#Y}LUhv~{cQ8fcK$JqixC~k$D z6fg{^AQiS>2JB!zkN@P^SnHR}#NTL0cev-zhl@uIVZ0iodt)lnav_5Hh|K4|MTHS!=cQ-#78{NTReuGrFt?`x9^XH3ZZ`4v`(kWNJUc*fW) z11Jia9jqChA#w8F_8<8Fnj|~E0X}8vdCF6d+ExWeM|7byQ@@9cz;p(u~{G_m#L*pxqB$jVf0m;E4?GXuJLtOgkyOzU)Qz2%1P`7 ze|g{yF|6-pZy(hR(Ldiec9{CAk=>W8QX)Ah_#2{K%u}V>(B`EbP*GaR=^}adgQV_! z`Ke#-=D?}cxGFrL`Nag-@-g~I;k;L%UCQoztNp=x8QB*-`)PTEGv}uZPrYlx30Gzd zOw*5}|CEihpuCQc5EVAwauzFjJG}%7At!fKKIcZ-*iG^-w-bWEdbqW>P>niimWu}l zW!u?zop}`wAmmBAUG&EyI$_%e(A=-Baim*Xo#OW#JD&4>D?8>4=I0Bd31!_eLNGR_ zZI25}ii!^g7@-lWufPAjX|>yI?M=+PD+g!w>--nx>FL6cF!y*Wx<_Q`N9)49j26tJ z&C|68ay1H!hd&lO-Yp7+K+LFK=doX+q&1WW(C!V9mSC&%n(I@s?`{a^Sq{W;0bFH6 z=EHBn&94dsm0ZCF@Dnjw1uzo2iZbX`Q>Cd6A8PD}pT~ybVOf}Y*asb;=?24byib3m)}wbg zp_LwA&6A)#(f9CzKnS(n?TDR=z=KSeO&V6#!m6hxkeKi>Lqk!D<}8pM7m%>=B(FJ( z{`%bg%2?M#dReU5+DX<>{ltSL*N8&fDF&|P{ZmjPY zPy3;g@2@C{R{ccO*jy&#tgCI3^^FZ*!Oqm$riLO>_~B{Umw^vA+gDJW>n*fRXe2T~ zu?mW<*$GstFn$0|AkVf|#u~aYC)$e}3hNJ>h@PGvAPcUok|?a)Uwb6jL_seA{4ArW znz+w*>NMGjAo=PV_xO$GHS6gCE_XW*mYOVTP)N`!+VFJLTnxjm{{sSpG3a;UELL$qDwNB@JkL#gmTOY_vD9^6H28B~c0X@pf z+s1Rn9@2yA>4h1M#N)HfDqlqkELBj zD$Lk#z8;V5JipK0(A3seF!a+v$JnDA==s$Z&L>1M3!Fss9&4w9`9G{qq(n-~Lp$2f zVe68q3|*VSW7fl)2K)j__O`EQ*`xP4(?Uf=MSw8 z+^h~SST!5tW~M!1IxhF1Jm;(s>L2uI-^s~r+~_?huVVQsUW>=_-|&oL!Ie!?nIR3c z`69zMNuaRbQuokGHK(|=G;-Mkk*NWX*NLT!n0GGkfrZ5Yl6D}*#+p@8>B&i8b)`!B z043i^z;E+txzCamp+mct*za37arx7aU*6;ztxRi1c0!FRK_(9E1w5UxNP)|`8VI|f z;r#W5t0n`J))Mn#@6XvAB^@g)XBoL3cRuw7oj6n2Bmr0PH_`$8MmNsIaVjPw`-0aF zfmJ&jq;-4@W(8iDQaG(rQ};$8Ee;GgDN>nmn25uJtn+0W*T-->pkfQ3`!Bwx&)Sa7 zcj~F>?PXi(-}0%8B?=@U0tr%#Vs=_ND>FlGT}$_tiM}l@s8LTo(@DO>LTO2uL&7pf zP*op|C7QlIr0$TAv`Eu%1Q^Q_d@+* zBHry@4`3=7T5V>4ser2GP7Y~=rUrrpi`|&6xDji^`r1Kuza{-q!Wm|cA~*lub4~le zpiR}|mEGf~iv55a!B2CdKeLOW{6@qlrZCY3Ke8=;?{vIX97TC&{xKASg|Ae&Qo0Ty z`-e)G`d0413U1Y@-|toe%Cy_wG3Mi+WaLxl`sTh+5Zmlh4-8}>YydAGsv$-a6-F`xrw$mjPrDZkV_(+$1(r>n#C2?fSv?&nL%ibN_K zP?g#>Ue$T7<$=3&AbyAkC8c;90>Iu({oks85MAboGw@V%GB^jP7VBUG!3!%%Ed0CU z;}g~YZnqRj(bFXNW1Ucw5Yd8y>;%dG_J-N+p5;R(SUmrExB%J*`#zrfNANh+yNJ65 zW+9fS%f~RCR0$Q*qyYKc^TZF#ou=X=VqzA)nUekUDWD!c{<{R}zxIat0a}50j6Q1} zlzyF~s;B7t^_asc!ZHulx~}(|y`;h4@c0E(-+U z&UDd^{+Z)?+?-_J%Cx0E$3Q>4Gk4z?GlvZ7 zVEPNaA?60VTmQP`Qw^*9bzG?+1Q`fRCEg_qfT+npF7&w~vdlA20@fTR(Ej<|2o}s= zg-n04;mz@(|JT4pQM^x+7xKmD1!59>abQZtuclD8ZFLr-UU}ARqj24BgADVYrNIqy z4<)7}Ho4G_Va(IJ2;#!C9@-65$E)0wVTWB+0^L<;uHC4ve$Q0D8t)YPp$*9^&gEJ+{XthUEh+dSR4^?v_l|ZcZnO<#p(g4%9 z*2K8EW3?s&7Zn9{j95$}I^+omVW5-;GW(<*acQp{U;qs8)LS5>t8o8mqUOBDNH(eH zo+zH;99`UxI*qL3ZSI8G2^SH)UT3;f#BJ^5$r+N<0VwZ}KmGu$Ii>4^5IVt|-Q~V) zjdFX5C(Lz;fXqOX#Cwot0@*D(Jbgl+?Et(zNG2XKBcwJ~5#1(5P+8uS{7-(rzW>WK%Wfbg2+y)#6THJG{AMHqLlG&BAlgZ@IxFuv~zocx4kPKpstH?SA zKbbyX&4B#X0eBG{pH?5`*m2%y!_(!D@sCQiQG&2F=Bi|PBcMm|)YO>A|}jBxyx+T3UOO^QPrTaN%GRr`UasgE$9kgOfpuF@(bSN(RDv!dD201d$-3 zrk0kKk&=y2DZVB=)LXYcj@-U=>o5O0^n%nlkWm0koYJ*9y6~?`wr~{@At4-vD`rcG zM@Pj(aDX5f6eR4wj7|c3w6uOL`~>KdsUDCOw*6H3JG0Q4(>Vf4+>R1U!vI(Tw?IA+ zf@0oLXsy6TxL9o!c}8O_@OC!!+qJ1FwY*hkpGSv&}!#pgus3C?YyFS}n}_T-o0#Q^vg2#^jOBMiTU~283>b#4sv4%4JWc&zucF4Eh_mog z&0yc%>9}BLkrao=*Mo!o>hrxki6>QEMiny7f~B)aE!dlVwQUhxY90sxT>!;E$fBX4 zS(K>-cnADGb&^S4C!Zi)OkZNTx&oyja0GkeoGQ`s)!5%YvQ>n;|1Jsh&Pa7F82QIp+HXy z^NQ6Qcw|a(xk;l>2CM`C{CAlY?H1pr>|WWstX`;~-_zc3{c3N$m@W%%BEw{^G3MlVI_~5TlEVT~yr4y&dq_XHfkdIQm6@CMzec~MKgI6QPe-@^S z9nb9`Nr%Hy4{`xP3|=9XZXnb1g%BadayKOW9&^=Jqu=4Z*OK_>01n6v@le$-}evf+-7NWxyKy`tU`||B^I4$mTCL@v> z`#B24jeY8$LOlwZ>gw-KD5U|z0o=6n)sms&!MDU6^Tj9FhZc{o6XKQ2?~OBTaA2J# zG@s{uwExwy?)!`dhkG!_O(~=euUyYU=T4c$M0QQ|1H?hsr$0t9c&?3RAFFfu~9s=s7p@R0{RD|bX@ z9zP{=HOl9k4FDn9HZen&Y2$JRwHk1)t0kNt!;3gr2SJRo6mZs%#hOjdub)0;Ynwknch#l6g+qW|_Gov^x$6HWwPt_fVM%%UM?uujy zkSvZ%kcE^w;y{Cf-1Xq;oc&AD%@VBBpx_d4`$?@S9!wTrZS??#w>C#41X6FtYRoUv zdS>IhN5xX+Z+ionyan#!;VCOB8fbZyJu9>nw`HxXUE%u*9Dez}F!fLpNSHVbpvc0}TclG_ciR%`BONwEUJ}cN1f4`athl3`Ge@FPIK& zauIV8*Wt6*=JklI@ezIZM{J8F>)yYItE297{#aJr&)Xm*ytNN*m7OuSS643jJnTiS zy5F30f8Koe0=H@dYg@w`m9xDl!93648YEfg`yb6#Kkd^G@*#VhBxwt&V&SU7@(&82 zc=u!D`bdN&&z)YsPLrbXGP{*LkF)Hf{=F6q%7{PF!W1VSi@v*dC;E-kQpl9X4x@&} zCU%%J-JRinTmp;DuIE0%WU|%P^>}?P1;!5siFW6bzJ6_;a`f|yR!A|2pLy*b3JtbV zb#awH4HcN-w7VM|+tx>Zqewit^n9{{c162b3V?%lu_%+qk`K}oYeMDa9h(`q`Vk)Z?N2pXw$l|G}ibtO6IxOcdX###Zij6Mm6{nN=nY`FO?S9uJXpkIIqWh0UBM{*zpH{#PP3 zmJL#`jXO|GQSV7Xo#uHWxKcvpx<6#-oee@F_u0vFF$_w=(-b%H0TJS;NER!NG)wt* z&k_$0nzo6FyyWEWqhCd;Yry1!(~C5fQ4k4I2e&QIA^F7BHe`OW<{D=7;>aUv=p_gg zW&r{;{AJy>Dwxt%TTJyZ(uP)BWT*oG<=9l%UDZ>W>B&_YRP-4ya@{^L^HMa4Q9?oqjj#4w z@q?=^cr%939?1>F=Qs7D%^^`29y19`kT0Wnza8)9o%-Y82BV+J)u6!OjOj*=GWj z!3_NeRMXJnDrW+Hf7(naIf^mRJ^?r`D3_S(0f+=f4#dah%+^Q@rHAQE_?I|4XyU!_NtF7J$i_P2t=UeDMDP8}Kfgo=zM<<`l%(sBP80aJ^TdoPD z{m7(+ZS6E{^R>hXCH2$c!cfJgyJ9OmDhO7`fw~Kf5#iP}BYdlE(rzY3IP?%wA2@El zX>5GK$e0I3A9$c@RytSic8gtXT%1+IjRZ?M;L|$=F^IYCSC@-Sht39^`V?cxHF+5< z7G2jiOPH3z-DQGfMR(Z8PB)~EBuJi`${;Ig1hid)%z`Zx)Xq%xuWJ3LO+?hQL|-9{ zhdgNiS^#XN(C@F1xsK^!5g`NlxNnB~tEmdxQvOQ$MQjOQL6qnDc^Z8Dw&z-S&rt0p zB-&{6D!!Za(SZGAMD?jR(>^F*;`u!^A7O$WG5i$cp7b2$`2MQtx1t11twp$H7iljz zSBs^*6x5d-PNMhU|N4E+;x0@lSX2>k)c#Y%NVt;tN1fspf9p7IU6DzM3iRM(gR0ZO}p&m>FzW!5M0_;sldE~mi>#aP_ck+^zf=Uw*d00694RBJ36YRet!>*T zYlzGPa*q}+YC%<(ODSj2JuT|pR$l_*_w}qucZ^{=zQAJD9ESDj}A%KAOlIM(hryOfJ?k=^c@|JKe*3Wu~ceW<|~i#6Cu9p$=)`$V|aNLCdcJv zWv5*!at2n!UcTgE`{x5WJBEcwl+V*8v`(jM2@K)LWi#a;VctfVYKJy?@m#`%?eM|B zkECgkuWT_(u|FFFFnSil+> zjHIDeXF{W(|JCEc3Q+Nm#efAFIB^203`U}#<7^7)1H72*H#b9I8yd4Z9U_LQRkf92O9_&Ge?8*cA0X9>G&(eh?pc1Vv!APDs-Pohy56K zFkbX1O<{6)KUtHi#k1inx(7-FR(QVq{R-q7L z#zSkDSehoBgvV6~pJ+5YV)*=g)4bT?1U60~J@F7BI)4WHLJ|%{YcJwN2{)kQ^SCX` z?YF3%8ag4iSNSTYto%WCXx133ji0C;<0|)`FVkQY5ZvoKbC3CqILW8)fX@Z@z@pwR zBN~fp9@a;xX_8%unw7m96?^k%e}$!P&;_DxWweT}W8&0rNa@4QqQCBAd|Zg=E#q>3Y#Ko*U+&&iLGV-_&5&7PC79 z@7y}q#$k&QpZa=s`@C@zJFq?t?W&EyyYn9QATsJoV!M9k9Tuj3@#D*vDswNeLcxwz z@etkqd4GfexjUT;ILE`Fa691<*OGyqOV<0u%$cLAPM1yLZN-$Pj_Seeh-29E| zA#9}}mjNnzB7ccwY~+Jf2^Uyyb#Stk;7W(~)o^C#FlpK_NkjxwV#wN&fe5DOwaNU^ z1h>3rQR8!(-Hp{_&T}l{853 zQ`tj_LA0uYXA-?zp{k*CzyTDh1o4LBrG!hi)dBqNTKX9;l45mtwYI3sR>q&r>8&6z zZHnynJjnxw`pYN#z&z~pAPgncvK3c0K3aV02_%=^)87KpUPLz$#sHl)Fg!DA?qq5( zmx&CYQ(Nbjsd_PhD_I_QDLXvx9)9c6=D&yl^P`oHqpwo!ZxaJXD9!qMz#-@61wN|7 z|FtgNPkc;vPn%c7o2HZLeIc(DO^CQ{JWDLx0koO~uL0v5u(sk$cNl9c0IKX5yIWTV0UoW`R5+SVm* z`d6}dLblM+R6(W96gOq4WQwhJWV^_F@V_7vxR~OnHS2L@>(U{xwmkjQxw!vHZUXiP;wlz~J@$K_M%zz0o)D z82DVSg3`}jd~xhs^Yhwvkr;*eES7iXih!Y8dR_zJm0x05lS&PqTP0$$S z7Gn_o0uj^)@@>vn)4es*sz6-}%^}nBRL_<(LxCUI?CXck;Tk~r{1iP1q`XQ!3W^R7 zF+ihf!RaRukam=DM!z63?U!@(`yxhHlgx+S4U+}36mRQFno|Nm8%@-mJL4y}<`^Kd zczDJH)jOYlyqdJNp&j9L)HA`P1?Jh3N_D-zb%84NMXYc@=6%_5hOtkefdy=*!ZsNS z$SUc$p70u_Y{X`$PD$mwYJdSy$vfc}NqJ)&#p;h^xq-aH0xzifr1cMbsUAj%Y8@$aL zG}ZW+>-d=AX7Ht3~MPSjukgJdVg~BCkNhh)HGjJbn5KvI0Q*3e@Sk z0~RvzaDc-FMoHG2+(nq>$6ERUXx6n6;TY3Cp)csOXExSXNW?1M-S>Cp5UbDuUx0fF zPTDM>KSxbC92f>Au#flskDcp~bv4<{1kjS3NduwScgdRNMby?tV9 zBFdQEeA|=TBWd;7o6?iBT!C2bP3=-4yL0XmE16^kjYh&CDsFP@ipo2(b8dC&7_+$B zGl)am`3--y3r$r*Vm7mMH@BNQUfrn+m!+o7)jB}WDNIpur}76S5TL?(dtz$7<+{i$ zN2(V?>Mdsw(oE&rC9nLl$FCx^tRstfd%C=k;3?_qgOF5^^sB9tb;eAokzc(XQ}Yi+ z_&V<~^HAv0DTLW?GtMfJEi_Hbe^U?3KdY&&Q@iRF4b!lhk<0alYOH$LO z=Uiu}Kjy{&554Ead~-F>xY+hM&0vbscULNP5p5M5PfxPS&f}QG(eLv-qF8BC*E|!e zt4S_sOO0;h7QFT!dU^*u=9@v%+(&{2PmL3Iz1!3TFEQz{5^`IN7h1VXg0pK|kZX69 z{1QQAjHR=96WDEVyNs;4FE6A{vHgKn3mo9Ft{$6IpK!O4csT-u(g#(~Jue$6Z@gj? z(iov;Y)hT^Duh8U|B2sT*wuAq5QMn)CIab<)>zA;`I-8Z5l|I;W!lyt9418=%{$uO z#K7m_jlw_u+MZx!dxy<3fBc*<<6+EeRzml-&a_viZWOQ1^?Abks96y8_~-r` z5}q@9+mP#Se9sSty?$RwqK!+=uY4b7D40Cp>E+>Y*lfDysRN!vWi0Ha>*pTT*xpAL z(c??nx)FkdQt!GO8xeHXn3;Usa7N_r?@s-& zKAjr26l(}UYcl_m?WFlQ{&ZB2`|#9G6J#~u4lrAxU)q)}cvc+?ww1drB#9D`JyV{;p#R;iCPN4l!0DT2D&}$%?~;zc93Rt^UbG}%XYB4@ zc-NZ!0li;Pwc00Xi#^7)1_jubh%$7j^0?4_@V;GIKcG`z>8(uE|pst*%cM!`DfC7CS5boQ+Q5LL!T{8ETFdmf-;BdS_$uvRmG!WC)_u|>ANnF8>1`A z5we*XfjXLN5k$!BIx2JrKuX#pg#+?Z`0Aumu!uW?%xp1q*w8W$C4(zMe5|_q_4~F9d6~cmhP7soFIogB@5ZWgKBh9yD5kl zhZC2AV!2heR6Zz&rhd6sU-zJK5bg=Y*-kpkpx}0pz?{d`{mS@;@^z6l&^hWM&);a6 zEfIzU9s;3xJ>5cQ@^ckJH$*YrmDiriwyEop)%WZnFGLF8cBu}aVo`$$vLe{j;NF4M zb6AgDwn~TQ;A6buWlj!`=wWJ(M*=rGn)RX$aduV_w7lgZA!X@-KN?t^R0u>iC+GB^CCL+Up$YGF{5>N%*{{KzHd=z12lh zsbgej2FnJLX|Ie7?g~m^!3I@Jsb!H{%+~Ql!;`@-`%Bb<_i%oe(3w^#vy`+G5!f;*pNfVh&t66;Zg^Fh zjqOD>SR2ff1S}%b;963*S7~;B2xN6Iy&_+520lk zE3ddfQZjeMV>Hx7T4L=uXhM(O&10)~@=*}i9mYGhm}n}wMM9lTqj+wM5DRVc(-_!4`mQPYznwAm0#UpS+p=fe#SQFQSgmE7;iK6W zYrK3qqIp^-G54(%Zg#laND%ecQz8yhUebw7Lms_?{a_|Pm8|cVf&b9xxvw}^!CMn3 zhhu%&*)x_xA|AD!Lo!X5SC}9%XL!=6?scN9h6=fXhI5@jgKydXkDghpC?S%}hn2Iu zK19a|8S|J6>elisC&rs&rT;cYT`G1{*c_5DMC~}=+S2e7J%5XEEmG=7h-H|9uOv|M zy=C}MmsOWhJlzQ_GAql6+??lM9=!^#42MF*s0)&j@*~^>c>suv{?fZpfII)n|H|M^ z1rSq?5US=>7S3BT$)c#)Mi)y9SwjYY&o}3|D@h# zkfG4hR^l$q-uYh~T5v=P#q;#(k@AsxYg$uHnAWf{>|pRB>u$ zX$EBix^%l8YK)bEQ^ohOUuU!2sM9bzq3px?U_Av`wzx|Fr?=9Y<=sLO4f z5*$BQ{q&Cix~3KO*49k(TUNqv~3s$M=eaguG8}T>K_glLY3s_Zi7yDvu&I_1Dj3R6pgA4{J5S%LjtVNex^L)of6VW=~8HaT^){k z`FesZ27p9r<=h~9uqdC9G;jeoh2}*=!3NdWqP?5)#lXxl+|qchmwLfhm+q;c9%=Y* zU~r0hHbWhL&@ahQ^TPhdW3Bms`yW;A@4Zfq4(G?d`iAb?^Qq}jzGiN=QTQ(emCiWC zbpniezv5{?w;qgwoWx2Swg~7bUYqdGE9A>dJPsVRvn=7aMi%c9^ThQTEkptewehUj zDjhcm3llwYXbGYtU=L~=Jq++{N<-S`$Jj@+jA~8lMul_E2m3Vu=u*p;Um2O70@)WxUWVbI*|`w%I#BX!Hq;v>vQ7+%_pOdBbDLG$9Tsjx zf`*EpJ^$S$$f)lwflvgfmja}9A|Q~al2+wf@e0rry0&&@D3=dfP~)`{nLI>$mb1%R zIiCnRgY@Y{wZ$Sl z%Ae+xJ74T;vyr6w-Z02E4w*SEZs~t|6mnjV&~Z|EvCaJ}lX##ul`j)3NcW-ybbA=X zBm}Nqt+;5dMU50p;Zi65?5pe^6{hVwt$W1PsmOk{cAvza@2e%ktJRsNCXD!5>M}VX zHAAr5SMv2>H+aRY_CmWCL=T&0ZDQEFK<mZSCl@hj%(60ahB~Dge${AX!+}i z0CZ|n&2g&S%C%d z35sPCF>IopLHN$906FxyAb05KDo$`O@v(th8b_^0d6O(ARMbh|_fA1AC)(rqKl-sXN*XVS zTBc8FYx&S_er`Q+b;G=Nr36RMpQr^h?`$=P<^>6zdz|eG?^*pr%5QvNQqFk8>%4$K zLy@q|V^Nt}voTu*rnk0gZt~CLdJC=Fg6%!wjfyZ_^V&c4ye(tOKI(D9y>K<4}ijXO71i zb|<_jiFh6!J^*R+%U-}+g0+7`%UK`3iC?|b0?06cKVhx2u2(8FYVEqSK#X^+z?5e$ z12w+yOLth(J-C?UvRtD5Q=vH8>DOa7A3~znfU{T`ED@m3bg?XnX5)q|{kdeWyu3vt z;gei|l)=KmwKYPxytn>id?V4Lt+TEPkpM?9{c{q4J8NlVUZ+uILKqvZX_lDBGEx1h zsZ^>qadVfN4sts@CjpRPau8XMuS2!u0}CmJj!~nElzGk*s=dtDTVrLzAFJEO`+*s# zX6Yi*%u;va|qQ&fbT2Jy0b$0 z-wBVMPYsmGDeQDyG>J+hfC~P3C#^GL4$TsAH&$*Dp6mPwe2Hrx7tix!?^|iA4q4FldB$3Me{}Zdh5s%Zj>Ujc*4( zt!y(ra>^?7KFLf5N54(TE-|pRzr{ejzOMW#n4AsST-}ZjEvUxBAAPV-bSr*zy|S%? zwJRyt4TU4fE7sRSH~~nGw7H{nB667QG%{gga_Hz>cr2u$$8zA4U&=ZD6Hfx=oe;}M z!t=yzFxg-r2#8LT6f*mSh-24YvRFt~4}$f^7u&|MmJG%Jcx81*|4l70lYmTdH~$m9 za!_)`&+7YqZ?U{a(qyktg)znBvxdw@#^P}93VNMdM#?dTlCT2(oq|2~jO9K)va^H& zg~Px;uKj6mmRN!RQdJ@Z^=}zLVP=uD`|aI^C)6Lw8<;T*<3)V+K&l%h>JK7EKE;* znc2n>@xaZC-hM$+5;W1#M;aeLv7cwcSRHtIJ8aG_4;4Slmx~R!Id$7iO2Wr7&DI%A z9prm-3>AM7o~dswslVeYJEbyclN=!=yHjv?{cWs?wq>50ZO*UP<{SC!n}+uh+KIxf zph7lrcocJ-Uwy=_+ji>IEFO2RExo3*!>YY9`9mCG*^Vx80nzjl2|$_!wH9ojdBuN+ zl_3OP3_R0}TTw#X-p*;ZCsaJ3{HxB`s~`SoDMF9fzpb8Ky36xEh<#$43usQo51AaGh=9-9Wl&NY zbFeBJ(oj`xo^UohB}r0Xj!m%n(@RIjJC`2w%>DF-@p(|N((rW@*%Fg_zfygdKim2nEqC^e$5iZB^FM8FVGLRB4h$0yUv<^g z=jx3#X)lxNv$)8)M_1RHS&MN%Vfg1Fg1yxJKI7%5Iz~s4T&Rb7ix~tPU=`fOvi4Hu zLphQ(cb;2BU*U;x5T>^<#P=f%QIs5B&v;d4V%moP^Xqv|$xGm3eeNELbI*C0#4CO% z)9i+`c4LSA0G&d%0u^Ao&1w&CK_1DUe{a+hHcucGbXXY<*h00}U+QWssX&ptwHQ^l ztGI}0Te7ee4KZ$RRYDi|hkrJ}8zaA#7fE#+o{zFLgUJUxj8Y?@pE*K+BErZ^7tX6% zcQ;eeXlw}aJRh8qEOF-l^?1xa+5hvVglCL*KC1oC481@V^*=N8{->$nQZdu(Mi3s~ zeJG^}V&MZO#;a4s=!*BP3%-rXth%02ng_UQss4&(Dscy3+cR#@QV+!{% zWKrPwX;K1vzFE(9T6bUi^(~!V@EU%1qaS>Uqnxs?Det}IEqYnW_U*6ZR{?C*jghli z4{n#4uHJ^{{66+G8TfMTurhMEiT)cd94;F9vRq9KzHTTLCY+YrL4V{2lUQgABm=e} z!`5C~-p}XGpavNl6ea)8YdDnwW3J>G>+7yvkW06cQq%||n`=&$AE-U zEvF1uv-YFrYkg*^)yMvrovPgh)t}kI6V7lYOXYv|Q`JF7QOyO{Tys4-QxuV-+p~8e9#(FO zYDv+50nI*);g>x3x)JK92%hG!8f3y*wXRd*kXiUMD$r3YStCn1f`S5yCDumRnQ8PK zDBjpC(2cp(eO`UP#oxTN^;PrU>y>xW^yjwm-9Fx2&Inra`tyF9lbkBrL?oRl4D`k> ziL@S)v89PDz1cm$^xLm%tV#IHH)3MX=8fb5p~V@e?HJ)XACx9JYQwlz$U8%Xbg&$_M27!5*V?#>!uXLbnLf1d%d?x^(f@XX z1F9pHaa_A_0mZz4x-i7C7*9kN56a@-vdv8mcl|WOn>}_ac{H>AP-5*n2l>ay>2Ocr zJklH-I*|<2TG=;0o-mC9Dm2;O^;N@An8EJZlAnep3^Ob#3D8PGLDb=pOGcireQ!!@ zm(IZEF=UF+RqC=vq8-CdJM>G7v^Sp$_7=+mcE+bn&C7$3mZG4z+?T_b7Q)^)>>~LHLNR8KrVk<1B`5>Zg7#+ zBPzn{RBYuID5`e^k&}>A&v{}WK7tN}7Q)s#M+urRvgVGC4nF6Frn-2j%OJ&de3(ft zH4O=7IVh34r&D;6CHE5gDnBxmi4`_K>d^GK%f-(4;uj(Gu@}KNgm3EDV4BAk?1oH< zof+A_@!eOAOw$DzKB9~194-(uoWEjKSY6P7vY&Fpi*gw@8@+Jych3e#KZ(5;(998T zuKr!K;&NP(DJm0J#F}jOzn^>(B=I?AibS!7a88k1pYfzst$ll-Y{zbpnqraje;}wR zQzM<1stSA^=U)KQw6LLI7H_5JkLkQ3N7nTX|2^bDMYe%jbo9=w^peaG#5b?;cR=<8 zuiNZ?4knp)&YJ4Wm!d9m_hMSa&`Q|gI{|bY&%j(Kn5gW1U|J*x?N03mI=OBX0`%i%4DsIRMJ`p zksq7&{t%-?Y2y`8=rB-PK=#|HvKGYw{Cbr>-rbq!S@R+2<(jN)0=Ci<7RuUq(T4-O z*(^__xuUmert@MHl@!B>ZyvvepP@QV_+Np#B}f|sZoFvke);q26p`f%QXON*=bHIu3{~USyQ*NN~?7vv#3Wg#a>#&1jR~N-WO`4+*z=+$Dy+U znuRX5yC-3z<=ZUeSJ3Zp1!+0vvc9L3MWhSa6!dWfqcx?;xS1f3*zj^e{S)fH61s(8 zc3LNp3!jBPD1YurUqHd`lg5(cERocf?5XcPGjSP-%9G`p=!<$Juyi_2&Fk~+>T1)D zhgZSVm!5C*uB|>Z{b_6)s94m|^V>ZO?GLDZPe@xEHe3?UKfbGpDbk5+6s`mi5Ab_R)X1ldZ#8%2}2gP}>~ zKIqpVcfOZbT^$>*u$-gh;OB2O!8N{X)5Ad4zLO9_(=Nd?l!qyE)0N?otBs;DM#^(+ z(>h8nBm04^Q2*iBogNYz&B(=0r7&*(D5Rk++xFUMSiy6D`}0$VAg~^ikbLMb9!o1c+6yx;Yse9hSq4ih5#$8Bbv!;f#E+NaBZ zLojA)^R}?$!W!SL9{nwF=5WFpL?z_BP-0OxBksy2c0X7n;>~eqLb#ygRDxVYkr_Nk~h&xiHWv96LO@iB3&} z_U1Zg)C;UD89O`FBCnu)06X;}CT#H#vMi9^2M+{ULJf>JfG&xoI*&eyRB-9snU7pQ-XGwia2;nWQAvNuAp)Nbw-0Mg5E7#U2%$4F{Q5m5*JkZz$A>^zn4JJpS#=;&w34n9%cn>0w{gMt9kh z)vex;D3#;M+3X)^5hSFWYTglbDx=w;KkQd3tScUb@wqiarRYR0VD9+yqoB1wBZ*H;vI+m3E4)$DZ)+Ub;L@cx+Z)?rN3Z;^OT?iL!SVL$JRe7XBE zOL+Pk+ukxABW>Z;_M0B9-%{PYb-7W;isb%1o+qe59L?7Fzj8>VxA=UNs9oph7ckf> zyM1P>-W$kfpwC$L`{!BaH8eGPkGgegmaHf)O1x-UDRdp{8UXt0@!yMH01caEkkJ92 zg^~qV9=AFyjBm5ry%%x=`F{D8$B}srh--GQT^E#k*OZ7Z@UAh23Zv32{79Kqa`ts!q00}54 z0K)oq8mT!}6QLjJ*4aqaS$_Ib_0;qPk*xS5-f8SVzq|fgl7FcFFtsYHU-3iflxT7T%8QbO=2r4;pzIbeG?*DaP`oBC`_N zUUn*Iw{Xj;cC4!We)7{((Ftz@XQXFhqNm!pi>4-o$2t#$6nf*?6Q_e8##1^vHnzkS z15%orasKiXH)#bKSEkU?N}Po$PaaLD`oTQknpo`{T^cys@|-Bp)fNigRj8`_v^`_! znx&;7pgU(-W_E;#tXi`hYP*$lh&;}WYo7{1p3EJYUwQKDW2?DCIeqfeJ$#QUN7?I} z_K0Szpe=iZ1ck7c_1?Q;^3#w3r*}|F9zT!3pWWC#Qtnq@B{-a7!gd*44)LOEshGaf zYeVr^UOr@Ff7$AiVqagYmP*OS<{`t`wiCr;O>@oDaAl4j@=)ao5yuDj1vUD4EzHbD zkC#fd1Bp#n+*byb?Mv))ETk8j5B^k{bRbzs3_D#k>Ux)g7_u_6Y$J|;PutEnUG}~e z7Pd#wU;O|CTGq73LqtMC8A@jJSI52Q@0K){?X5IF^N?j;$j!=8KlV+@In{1ILc`|k z;4={B*KN~uXyI5tovq1SGKm-yJViwTm+4Gcse zsep~Gt@ka^$8&dIHFRvq3tHRIW0MP>=k&hMzA|%y+Iqi?(8i~D+52tLmrBd zCicW^k7#TxtoYppO3S*UvKZXSBV$ofaik|StgO;(f>AgoEhXTM6Ia9G#>B)&B0GEY z^Bej3PdU=+iWl|WNWUNR73BqeQroMicQV*I*~hHgRXXW%+)YDA=OB-}ee2e%(bD1a z#SgXFkKFe~JUUilEF?dZ%U(I!BaPsn3sWxpv|d^lPD%?Dh6}-UDrY^7rbpXTuXht_ z1P}4%7Gf{kCNb*?Asb$Ic^>5=^Mt2F6;`w35ioAk zPZ_)j;}9}4PK9oNs6*(~D{4>P08Zet9NpPjQBk2;c^Bz*(rfQ|?I5OozB6HehO(+d zk9~J-Y{Zz|L(#h4Wy(HkADhhiY%;NVet@~8Gye#`fC;5dv@l`V- zJN7p{+|DL9)Ggav-BNQ)*FI*aX^n3!p$u~m%(6Yt!e!w{Mqx^JQn>Ig5And+zF|UG zuCsNH#+=|>uE1>G(2QlTsHmvkQH*7!#936d*@U9Qip#vz+$}@-r!F3D?gJCZw!@)) zTKX+g?AV2Ub8@d8CQZm zbC%!#dtiP(jf;u#x^vCF^mcCZ!`3pmOx04Is8+(x$-%bJlGFH%r<)HXyPbV0S&7}A z`F8=I+j%_DV`6mhSp0;CN2|w`^a=Kc6U%e=F8kU*Sn?V<%<7o!Jm>l228;IIl1mA3 z^4WD>?}I{RZSAL!`a6GNW@>pyHiPKtp)HKxvd4wldl-Sd_f>m`dUfvkyc_AWvOVLx zTJpblwo(81l~#xA94kM5UUbXbEsQezqlKsZ2g({G{+{CSgf$!}`~J4C3$Ai$qvoz{ z-s&Sy`nz=}+7TVTJeo_(RMYfcw_wuf>$G4rM~@zg#KYEK`O9zTdg7C4(cZiyUF)p& zwD5a=^e23%>!3bbk5LbM{+WCt%+NAr$gO^KwbZ$J(Jpg$J|>!u_utkCq4>_8t`p?m z?fPT$SKpc!3(-pGHtI7bzY7Oi61(D@x7WdSzHZyu-{nsaqW2>S1(TX!<9+&8K9UJpGL+;LKF4M{H??gX%-yp~Yde_7ec38ciKYs?_siLeru;?iR z5(C6OSi3!w=QDEYk~@{F5^<%+*=a>ZXXyy2lyxqu2@X?28K}>KwQIN!zNp!7F&!1vV?=RJ&r3MAlw?F-E`-QvjckfrS#7|w5fpal2r^e(Url~`Vsh-rK7DbeORia2h%R?`cVcd{1w>kB zh3&lX$qs@|xAE`4|K{Z4ifT8A2$xPPa#$a4Z*R{DoE|4F3(C#Oa&cJ~hFGIH1|imI zE}7$wWyRr%r!W5$ncDVnAP?NvC*nNEh13)O3QGOGvC_4(`0FYEk+08LTH*wv*$AMA zs?urjfmS{``PAzaOUuhynVD)*JgD>Lq|e08sOafA?Ybba=OtuhWo6~$V4|a=V_{jS zM(Bd?4X9X_KCCP#us(TCEW*TuC)#8}CMU=3v^Z8*O*HrgpKmgq?s)LRc&|BO=4c$G?mGxgP&zaq-aB!0?+$`HHt9=6t7!u!A(veAqre z6}!HP@bdam!1kxgZgp9}p}BV>?{xnlT({-8(7Wqinmzwh0Uh8i*xV zLTLCq_#i;rFJ{rk&Dw>m*IDi~X=iH{Db2a+Yn2!FjI;ZIt1(d}cAjBzPo4LhZGwm1 z*(pAXiH3>kN)(&vjW0eg5a4l|Bh+z$dq&Yh?qJ9;p?SCqtOnk4vIaGi{VOgzbF3E|-_D>)@~C32>MZ&nzbPIJzx(q`XjcvB7YlZQdV&|Mq)125hiv*539j$`qTKs5e z+oNSVGZ``zppW`I(~R@sj%imfv%ti_$jrz%oC%Tf!6tV<+?oY8^Cr$>#Ntg%%rGXf zG&prDlOSwn zMB3ZhT({eK(6Gs}(-IpR8dx+dci?$4=cV@-i3fWbn(8tVJtnjwq})g*xOwBGWem{s z|5gDh8^ikAR*S07yVQ{W#g0xWD=N2&o%;YVJ>ApTq3yX2d>{4}c!SKR4L#mLo!W;9 zon>k`e7wB8u*yqIORpTN4)M^plv| zl{%bl#cy(txLq9KM0x)o_})OUF_Nz%_UhGSu`$Bymi_ss@W2PLc)T}anc$9GOtq9D zuXB3S{`U4|f=g zt-(Nwf0rH`lHY_TXUXdnA-&A%*R?P!Dl1^jeU8$Kikj_{`=dh4RJvh7#VPb%%Gxvt%62j4W)McNP zq@Xl$z00#9;_NsicD&}8MXPefeFIF|LrH0z)y~MuD!)zO!hL<#S{MrO@;Z3?_EJR1 zI=LWd-CK~zeo2Ya#HSnR>vOYSLD@1U_6-D1t(Y&C^-xki6W9l{n|&c}Bdp7v=MYf9 zTKe9kGy1sF6h82kYmGrpHUu#nMKh|sZhKtT_pcZ7ZxfDn*AT?~l8H zPMn2_3BSWyEMp6VbiS&Ztt7st6|*~{k+D)z?w6;yJeY{tf7UI&bkmM`x$jL|%cip!_Ct5>T6< zllALCW@c7IO}=EfG`?tWU;nJ76BksIGWYW`b2~J*$b&lLD34mwwN$o~Tv2Y(xx$36 z>Q+(?6Ndh(~*#0RaIq+GBgI*1EfmtK*>>XhJXyOG5sgn*9mOvVRTmSt=aj z2dV-L3edMbIX)go?!gTdGY~S%r>$ zL;c|37-~TZO<*6GR8&06-WZ>hl9Iy2#6;>4xVod#JZOUx76C?}H@hYaKsF$>+bhqY zlzklw%Y7#Jsn;!S*Uewu$xq?D9Aa^2f8S#R04~7@L|$z++dU;tO=jY)XZnMh1jwJf z?U?Tfq%#PlG)b(|2>I=vy`}zc-7&TN@E=$AHOt=qt{O9;YW}Nt?gppFhs@^8H_j5m zW=Kg+6C#c&PokOO39O@+e^)0sQM~&6W^*Lhzf{*f`ZMbmfr$FqZz<#yghMjHV-fIS zNN(1DuDjr@8SPW+xVSZ-?NMVk#J=DDXL`Escx$jz*j@a_!bBHOVUQAHU$oDA+_Tq` zc+_EqrXyD9sLtnR-?HS5Oxp8J@k^HuZZG$6+KnCFpm^sNL@F>>s|rF3d0I7I9(h_3 z#G#cearLS$-My6kkDfzKFQX?kyZqqaCsSWoN+K!2oEI{FGi8%}D_|T8HL)9|h(5(y zEYyy`23t|yKlgz$qV?H-T9d0kaGvM?@SX2|ZPICo0k(fGdMQ^m`#<_dj<=1C{`vb` zg5dw3{~UZ4_J&teb2fnY-&+q*DgB>E_H{x2amCO;N+#_({z!T|fIRt9?agfbOHMJMCgPqUz0<${6n>A566v&yRil^yEA zMy)5memVI?G%>??ZxArv0+9)uzbU+ay;d!94!c!P80NyomBuAiq{6r*+h5O|mp-`B zL!N*f6MZ7LlY+2$S(EZy&RF*uq=m6u+iXs?`c!MbjfcJ;lxr{(C7^>bm%KYKTOab^ z-Q{n3UC_k-yUJm86s$mcFDZ*iRXOaGTeKT(vn-^R}BvrG^EuS!=28A2g;*#z!YMi`1v!gk*sBn6tuj2~OUReptpIoh3l@UfSn zWO4Rb=<3x!Rf3Cq=IS9KA^hA5qX9g%poil1F@)wtY_Y}3HNLs>f(&N!E$tyeoj>2I zsh`hm%^a=A*cE4+)&GH42Jx0+y$60YME6^P-`-j(GC| z75I`c@@Qgr8-i_gs=i)FB&&4~y#9iW44bS*7{nIy&gZpSmsmC`FlHRmxH7$uW=aYg zj9wpt{6d0q$E%)NY70;VfFGxOJL3CR~bdL)X9q*%V2Q|Xz=Kf`C? z!7D6`uCITDI4d0O5w!e(ia_&(1Dxdo%|EY5Z2S*3d*5-blDaX5ZNv$+i%0_ z8^cz|MU@#sjT!Q3Uqbj*#FD9_{KH-D1m5MdnK%`l4tG|jr*HZFglb0~1#bZ@yih1F!(Btvni zjg10pKYczA43!z$Cret>!uH5QRUvCe20lkEnFfQR9F2le-qd!381}=7|&{A+yrKNW#srMh7zH#1eYRRyOZjkl2P$;zoq}OGpHJQ_fJkafn4QLx=@q z<2IesWzt<{JoiQNxKFMXrG0%kacyI1m4%Un?X@GU;e+C02nNW*a2Mj1zxtUw&5um; zTJO@V22%PtmfH;!4K@q||a`cxjKOvTczFyw%EJ?L0ieMny{txq?YQCzECK9aUKsLhcp@CZ=6hH1o2N zvbw#>)@Cp||286LWH|%@h*HRocd)V;v{m|+j1pY8K4!B}tkON`g6GJ&Hu`Z3pM`Dw z{jH?*a#X-zb|J=~=+D+<*!RVqsJY$fRdr;opvVOEenoUJUxP*2$m$-K>A>BDQss5% z-~6up0w|zBxf@UP?`zkPhleF2Kk6JF`qIkd&PK(qfL`>pgcKq?N2PnqHr}@}HMJx9 zFfucfuXC<)LiQI#J)wxKv+p^!$}bmYSg3bT#Jz4oa1QzyxOV>h5FhS&S#9s=vBnF+ zJA7-}FzXlaUzqvI`_9e{J{e(qNM&|3G`A1=czE`oDuhxBGfT^bX0&55Sv%sYQJzE6A12|4nWl5^O(`!;(Un zm`J-=y4K*^>ZfRi2WS<&S*^c%W5xghkqk12C5A%%93D4v6J068Y1v=Y)Xp3c-0>Xv zX%MFl+{RzK(ME-{wVHISH6Zk*JG;tew94E)YgIo9=5^{bnni?0KB!ty)(=|^_q-Uw zrSE+Ukoy@e-19^AZTDwuQFq$$ri|qN@I(uekg%R;jC2fx5MonEP~k=8+hhBqSwbQT z!I4`$_-pcqX9UxU`{&4o1p*~ThatW$Y6I+s7*6Zg5JHxGiLgcN=2nRIxn%q`UneCe zG&c*oA3L^aI%sy^gPVWn%DYG$&hh21zqhUB0%4JdF@(2Xt&d|^Yb2f!vU+t9U}g+| zLx2$daA9rosnQ{QN>02GjL>mto39nHu|bWXpALSvHSynAq zfoh_tVjmQ(=oHzX?%?9~PC4!o;J3IqNElZAT+wkH(RR_C%l7;9DJVP)o#Oue`=e;d z4#B#2*SohL{rh%sgwru|TGgwm&a<5_JnZpl(s5h)DgKW{dO6$MWeq#xjfcKo*>pXa zdfF(VZayvH7@Z0*O(U;ptBxjNRqw!nfP$i2DAfH6pHKv<=O64tc1$MMxJ|p}jW;Rj z57ev7T?zj!xb5)C(-PfO4k`Hf=)kzI7eEG}8dQI=fY$FXC~h@EDATe{R`>oFT8m40 zZYp-Rq`ZH(YyhErw1h_i=CV3o!eQ$y9^tK*EgQVKAvQk9D0ep@oSS=BoA{1_bf;B? zb%O7|SJ3K#jR?@LtTWi9j|f4|IbLLmu4UHR>aAV^&!yUpr4YDJnpKOR#UCbM3x9UG z*n}zvc?@J>C;sl!V-$k_Jl@6^W=%{@Rbw79lj!g=JqZY=TU{1q&?9Z*!8vpZ`EA6OT5znhK3Aq@ZI?5THl}lpWM#d0Z){1@Xu`h z5?{w0@9pjF>iSB)b%@#&5YilQb?<0zU+uZry?{TxB`5Cb`sad|SnmI)EqLSp|GPgI zHS2BJpZ9=wxdli`jn$f)+St6L4K#+FpU1o{Hl6}oIaehfw8L;vWI+o`$8Myk+rCwr z(PNR6Hlbe6$TaCFs(4dXvn(b$&=ecbW-{|^Tp!N6F;Se4%I+yDH70=RU#}Py^ToDw z=9?&^K-mqc*u}<4WiTY{+hO1b%Nz5bQ2g^$-~Ck1f4{>DMF9jtql=OS*$g2Pde=W* zmC4m8s4gxpF6;Mmyqbl==iideL3NXAEb;LpGHPb#+d+9btjgvFb;}z2pC6`hXrv*LM7aVe zU-*XncEVf3g*_HFbewh_ot(yPE4X8Fme-R;U_`KFPfm|$7M1ays8+nL=rd_=ie&>o z1o=o?^x+`n+!S8z27Vtte4eL$5sS)@*H(tMhAMZWAt4^@Wn*_3%>{Rv=3d4+KcsOo z2CuB!B)vKYl7*2Av)EyMQ+3ic)sQS6*ozYgBaTibWnu{NjZV#Rvd(eUR8WXLYng*5 zn3o2 zHOe@ecGD=j)L>Puq7e=@9vG>rii*B}p;NYNp|#5aRQQfFA}CvblQb=s+T`CH5iLc)tv=nE^L;NVIrgCwjQy7Eh>>nO_N`j5O2{na9G@hD3$&8~1PTk2RBw+bA+A5KB184M z9D!?r#Y>S8)?MY$Qzdp(+xd4qu&>{(t-n(PD_#x8%6|G77=N&gzO_5p+Y2ddp-r)d zSX^vqD4&p+rQlInkr{VP(gVoOv@2d8D$a?!RE7r`nVFc_y!QA^LYUBSCyEHEdFJlecMi@V!)aFE^j3L55I!D8rT*eqE$eEme*6_tv+i{Z zE&{=Q2l=ZJJL>4h4XD_PtbV+Q=XTbu=+q&&HlEXL$c1u>xAE`@^3>}nrl)*o6syKg z58l&4*3>akEEi9Ak={}Kj3yWm4hgA&IO$}wT4`To*xutZD;N{AuaUcwlDQOJVmjXu z@3xy*inP$0&4;1Hb?l(9)1#Fl(GNhP4tn;xR`0X+WD{)yk4$K3`193<@vlmP|g9v;U+2TaNnKFIL?M{U;`6;-yS?Y3>P zRe}K(K^jn^6oLp82s9u`l7s@uN=A}oD2vc7L6D>%If+n6kuybZKtQ5`z;GZ+2Q-XeRgbI?30>oVI^gE{K0suL|PP&puU*rz2C!22n5@a5&)Z6(P(*!j~^cIZyo5disM@qXrChxlWEv^=?FgeUSwmi zlJna+nAnzjeY-`Mw{u`bSN>@qsUTBrSBwtp8>qhSvrtf04h#+$faXV8y`}T*Bao$8 zZVY$Z%5GIO-^$d==R-8%*>@|Z6I}$^5X23aqtN|9$Jkii(Xocp@t~U)!~p@`oYO!N zcP2XORXSx9nnBM(0ID;yc0HX}mnTS+pye(E%=rQU&%U1WiztTk3Q;V? zxq`Mr;0upXFhQF4W#WsTz~S?izeXuZon#^qYKZ-A9}99j3^z}tzpc1gJA3Zv@wJV~ zjUX)!X6Cy3NC%N9@DeV%I_Iykvo|X}joh+AD1{NDd>=nb2l28I+s@{A2_|IOm&qwB z4?u~r+!vyQG-(*1u-w0=d#U(~wbBwXRvk{c2w zC;}o4n^QT=Jm z2j`N^0?&Y4YuEMlBcv$CorJl*vhf&}pDQYTZD*W|pTfs_oh&oCrG5P;)e<@5)@qNP zXhl4wV*WRb4lsd|Cw(0w6)soME3?ZEeKxv$>E-}uL6p%}=3myvR~kzJ=Lr~;7)itY z(K|w9V^>8sj}idTWWKlB0u%9yC(EHGMf=dDIQ_Thc?5iJ^*HXCVa;d#F@sn-r;H7f z;tP_IYcltfnnEFMq$lVY8s@qt-CE6uHC6deK~K0mV(FsLgXDKc zyd6WDvfrlY$jmG*9AqRKUaP^~vl@5g4#ayz@Z^gAjjou0$Up5YCGfTV(KGngsJ*>C zUuv^LH1q8R4UF?~zK`Yo{TDM+nt%Qfm~uNjoZ$*BBme>VD}IU?K!_2*)T1dqEm&S& zyTr&>A%>E;@xanDqfOgfx$|ODWJ!8*ZCQy6NIm6_>Q7M{wuG4BrtQ(RFrGcs&X)eYSo*Vn{oES&bgY}1rH)H^clAq} z0z(}8*Tg6E1njOGk=kg}rqtKpw^$KGjdKN2&)dyfpP)7%D#~VkMiSC3wF&2z4W=K^ z?F%@Fbzz(f`gi}~PzYH!sZFMb`|!ljHD6O{z_&sNh%V|PI(*f~1x zid9Qe5T7M&I)5g4PYqs{{+jR;YvC+gpX{;quk+)1fGdN`e3^SQ-Mpdcoy|yz5=!O@ zuhHhmf`Uj9>Jl!XDq1GrZ(B`_`hmNbeCDxpQupiT$FTzgjJ~MNoQ5>ObC3c5O<;$O zZd>|eZR;Jy5$SX&J`NA#Dl4JsKvvStw+EM}=a)`w3v7NV?Nu1t@4D`zUXoGq@hXZ; ziFV_?y-*%__Mme3)2GEekDc|8R#p*O8f~$nP4^ce0kz!7NoZUr5X?+EEL{7&cE%<^ z1oDzvvYS7O{3$RcOS`Hittv}2n=rSuN-G{74lw4McrFO7D@I0bn_Qsl{Nd%j*jWV4 zu!e{AnC?7ykerlcSi!LStJ3k3nC|T0np=OX~EQh_OE|Uc-W_Z;mmL@kvP!VxipzU7!>Z6fDwIe zGPQm*mlYFAj9>WcYu2}b_Hj|xbu>o?2}7KA0Vdt|B<*BPK}=Qg&?~g4G1$q(zy5-Z z&~>r-Fci>3RtD+(c~r(K`27_IrvcUx-xT)FNt32KvaM24;x`1<%a+)ebgEIDs1DuA zhP|qpkH0YuVl}aGk#UU`Ugydq50oxVztkFW+8EV6f#5_Uc$h1YdVvWdln?g(iM-S5 z$(Od_C%!(HUkA-h4tiw*9%4DXTK;CMAQIwPKa8A7yz8uUFAI zX?Z!hw}c#JIk|i1(#~q#zdUv!hQ^bXO}8^?%7h2}dyI%(HTbjm#C+@7Rg}A~Xr;MB zfr5epc#%|UW=E`FTUU!uK^(`hYXn!zO+NFt1Wu^bE4WZhc4hZJBiX!eGh(N_&Yao9 zIb@>TdA|(kUfD%P-;)zw>U<^7o>3TE19DVvSCLKH;1Y5`q7q3845rj}i1rGt03>=o)Zg%O1ZeWq%KxvZWlqR$aWvcO?>zVyyeo+HL4>lw zP_wzBAbJuChIWCRJ4Ds8dyY(X#BlpOHavC>wxa;6*?fsjL2xSrF|<24GT$;5Pat@* z$bgBUeeSEq4f(*SL$)@V4cce{fdW8VLR|N!(=}fOGE)|YR6L1}sUwam7)+0>*Fl98 zCj87<5v%^lFtIl+FJ=YOu?!!zba^q!ql?8k2q zEnS}Fjclbw13Tf3W z&3VX>b7oGIC4C9>b3hPk3j3n0EYh{TB?;D821?n?jIYX}tF1htmkxGb`i;5hLIfke zZ=ZVfDA*^7LzrjA9)ybw1UecTCLhR0X=rGG=L0^FAHa?`rlyYOoh1X-kjwzep`oD% z1R6pO0uvzl3^D~%g(PtZ&aA-)++HH;85?Otim|)xeC0a*-YCB<@s<@VA^=@sH{ z!Ii|bzBtl1C)7x9WiJnXB3_seCdk!bJ9)g&R_pN`>gmPT=d&zht4FoF&b9-6F5B9I zSM>aY^44~T_ji2Wpyr^p-U=CZn_4+i)4_i6ik!Q~0Sjo3vMv#_B-@f+av zfkHApq0e+@pDWIndZH0OcUtc*quvV$Cc`qiLihJK0M!QwHF6{Q;IDz-q#tDQRfMlqRhWj-tMiyTtE8bQ7#GjqLkZNz~p81M- zFjlUn+_5i*i&MrL6Oo+!JJTI_7RbB%vJ8qLc7#kHTaccX!Vc$y81fVhFP^*N0t=Cb z@j`l(vkSaqnzIah^C!-lwI|+$7XVBzqzfjjJDW2-k0~Q5!VBrhAu8v7!um;hnYk)(ZCsasri9FCJ2wlm#2KPyZDuQ z`_KE`Z6K4$+`26$MfRpS3daH#YfWc!mL<*~vS9(C&kKjXt^_a$W(z_4Ip`4z*~>PCyFz49eDfh_ ztb(`;X-rRQLjxer$QyH69R$RV`@79xg|vvkUO?@W_)Gku|A_L>UjGd+k^K8+?YOq+ zJX*<_xIX9hDIZYsN~;3LLh8}3lr{WRS(A4|K%kMpj@=)TRx>inq{6|QrP9KczLI;T zlXI+hwGT)X6TP_Wjuntu50}>D^#l=j>E668yN}Nnjj8jHW%5zsg`djGEV zj#n!zTKtv6fO`3cGRrqc%r>L~aJ>tt`!~QVghalAluFIh3juV!DM9*E1Obt?qSJ%1 z>R5bC`xIO*714^UOgypHJ_SwLq{Y z7KFr_GgEqEH&zb`hR5}re{SvY7vU|dDG=yz=EdeNLJGJwTl2->7?4jR*XKbKzL;HK z>K89wREHpl1advLG5T@NJ}<_0iH9@~%EhL=9&X(dU?pyYXkL8ly^0UD z_|8D521XyY)BA9?;OSdRx>eZXtlw3kMPCzx>s40P@^cYkrlKI`qW;nlaMo+Ho)JzJ zAYF@ky}#Kcj=kcD#csnlp+bSxT(8_Iqg8KPo`Z`^fmW~AE;Tz`@>z3p^TL9)w5m?y zbsssPX?czPa9_JVrsYx_O*96>#87iLKXDbJZ~UFK6?4-Z)bKqXKHFQGOKa_dV{L71 z5mY6nyWa=+Sw;lO7N(QD#H{=C!osMHr+7t0Ma9HCr`lpxOf)q$@86G3>{gVQr;${Q z;gh~%W@?(2no2M9_;W^j;$20>%83vW&0K?QD)K+|R5j~^R(yT*moA}Q7l)yerS-KK z0FrTb)dSIfAwfa(g0{oETdSl>4i1i+<{c4e^%#Fq?AnaFis&_6G0?Pw!1M|X>Y}(O z&fY#h@lPcf9lxcTi%Usjt&)mL)a>Tk+8Tkt=`os|oLr*(8&k@gH^Au0i%!QSCho6w ztIWp?XJuW708;i9tdxX=s)zNzy7$4)b>o$~)mK-pK*Ld8Pp%t|Q*Cv1b(%LnHL`u+ zlZ=_#|NN9{?XrrBir4K0mnOUd;F1_D2PxVDxw%&ZhDx)@=Cg z4PGFn1$xV_LZd};qtDWxM~?@&cR_+nUK*>(UMACL#?M1D*Gv2sVYhd8S3C6uIB&bJ zOhTqeb{F5@G{#^^^G}wlHlY3cb|sriBD4W>gahFHc>%G@%p@-|F)_iCy_s{tpvKd~ z&8;j;#i&>(lpf98+1K0KB9NUJ5y@ki!)QBD@NWEZb3tD~K!C^g8m|mSO|8Ijy2E~= z@%=@a&?`1LvEt%l*dqa(xibp-eUR_-qe61vkXdMbsla2LeIlxk zj{DMcN$cS<)#?v|oKEt2bn_a`{7!Oma&B&$z1h0K?JcdXP@*6jx&@uIdJUTz8Z2VX z6tBTp9>oe+d`O0A^@R3z@COC`eJT6rqhBaalmy+q7?}j$0cbQzmMtmZ zl$4iK;$*UJa9+=}S{98I+-y1yOu_UDpx@ zX=A)m92_s4(I!kGC3LO7tThH-HcjwfTXUM|fxc|R_Du}f5DaUwFEv(w7IqN!jM{P7 zw@6DQH<|7tq&chPGw2E$FZ#r#hkzNwtp-;|5_`h4g`ccv#gWD#V3DM#!pka9`Wx4J z|AY-o^4ce|p=Y>)!}bnIR(LR{-$J`S*a~o3bMWyw^yfXq<{NK7kFT{y@3I{R-ahV1 zmB)^l*l}@i@b>1}f>xV_g_n1EYdWb<>JiyQ;pnfYpjb*pm!c`gOUp{${XzvFI9}RDy7?vI^N=f{ZsDPbam*A9u3t<4v-vsj@bo@;KcE6O3d z(#*1*2CKoK?6HKQsKl7{I@q0V)L~yK_V*S0_EL`2R`ou2FflcS0Yt6*-N@Gt`tt z*nx!v*U=Z9sXgFp0s{k~6r;`U{rw@6*{(EjecL_oWsvvJh3Yrnup7N?d@8$lyT8Cx z0o)d}_@w1Az)b`TD#rkq3w_hf4AJeo`7g0}_{J-v}&7K;eb(ozqNqj@gGrISuY&23fe2mQ>S3FtUDvrEOL2UDFFpO zR_)O)At3>Z;E>SJ4d)*M7jG+B91iE?stZL+&mfUKb*Zbu)sD%h2AXQbD8edV zUS0+`MGTxUuu*{LF3b!4xV31|fOYk_-({#Z@IQ4ag*~uMJZ^tE)JrI#V`|DQy*tBl zP;d;VuBr-0Q)hs)>G|{t^qt$n*2piy^+zc!H8nLI-C&K^!Lw)2W@cvQb1FKF@*(BW z4y$*XY^I5M8hHREFofJ(I|~cwJ_UvAP{eJ_^(H~tJbf&HD*tw+arsnda_fG7PJYdt zRokug#m6Eue3c?cymMdxI0nhk2FH1CtA*G4#--h+Ir-DQw@Mv@MT=0-YuCXY6ncG1J0CeDu8#f?{= Date: Wed, 30 Mar 2022 20:38:00 +0800 Subject: [PATCH 302/507] Update log file to updated product name. --- src/main/java/manageezpz/commons/core/LogsCenter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/commons/core/LogsCenter.java b/src/main/java/manageezpz/commons/core/LogsCenter.java index 3e3f984cd7a..8f2be9c9c9b 100644 --- a/src/main/java/manageezpz/commons/core/LogsCenter.java +++ b/src/main/java/manageezpz/commons/core/LogsCenter.java @@ -18,7 +18,7 @@ public class LogsCenter { private static final int MAX_FILE_COUNT = 5; private static final int MAX_FILE_SIZE_IN_BYTES = (int) (Math.pow(2, 20) * 5); // 5MB - private static final String LOG_FILE = "addressbook.log"; + private static final String LOG_FILE = "manageEZPZ.log"; private static Level currentLogLevel = Level.INFO; private static final Logger logger = LogsCenter.getLogger(LogsCenter.class); private static FileHandler fileHandler; From 99e6714e05ffe76c7226cedfbf41512c3a10d6f2 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 31 Mar 2022 19:43:03 +0800 Subject: [PATCH 303/507] Fix multiple bugs and improve on exception messages Edit Employee Command * Upon editing the employee, the employee that is reflected in the respective tasks is not updated properly. Changes have been made. * Improve formatting of the exception message by adding a break line. * Show the command's message usage in the exception message. Edit Task Command * Handle IndexOutOfBounds exception for invalid task index. * When updating description, date and/or time, other details of the task are discarded. * Simplify the implementation via abstraction. * Improve formatting of the exception message by adding a break line. * Show the command's message usage in the exception message. Other Commands * Improve formatting of the exception message by adding a break line. * Show the command's message usage in the exception message. Other Improvements * Add some requireNonNull checks --- .../manageezpz/commons/core/Messages.java | 19 +- .../commands/AddDeadlineTaskCommand.java | 20 +- .../logic/commands/AddEmployeeCommand.java | 15 +- .../logic/commands/AddEventTaskCommand.java | 20 +- .../logic/commands/AddTodoTaskCommand.java | 13 +- .../logic/commands/DeleteEmployeeCommand.java | 6 +- .../logic/commands/EditEmployeeCommand.java | 54 ++- .../logic/commands/EditTaskCommand.java | 214 ++++++----- .../logic/commands/FindEmployeeCommand.java | 14 +- .../logic/commands/FindTaskCommand.java | 15 +- .../logic/commands/HelpCommand.java | 7 +- .../logic/commands/MarkTaskCommand.java | 3 +- .../logic/commands/TagTaskCommand.java | 9 +- .../commands/TagTaskPriorityCommand.java | 5 +- .../logic/commands/UnmarkTaskCommand.java | 3 +- .../logic/commands/UntagTaskCommand.java | 10 +- .../parser/AddDeadlineTaskCommandParser.java | 8 +- .../parser/AddEventTaskCommandParser.java | 16 +- .../logic/parser/AddressBookParser.java | 2 +- .../manageezpz/logic/parser/CliSyntax.java | 5 +- .../parser/DeleteEmployeeCommandParser.java | 9 +- .../logic/parser/DeleteTaskCommandParser.java | 9 +- ...er.java => EditEmployeeCommandParser.java} | 118 +++--- .../logic/parser/EditTaskCommandParser.java | 40 +- .../parser/FindEmployeeCommandParser.java | 2 +- .../logic/parser/MarkTaskCommandParser.java | 7 +- .../logic/parser/TagTaskCommandParser.java | 1 + .../parser/TagTaskPriorityCommandParser.java | 1 + .../logic/parser/UnmarkTaskCommandParser.java | 11 +- .../logic/parser/UntagTaskCommandParser.java | 1 + .../java/manageezpz/model/AddressBook.java | 22 ++ src/main/java/manageezpz/model/Model.java | 8 +- .../java/manageezpz/model/ModelManager.java | 24 +- src/main/java/manageezpz/model/task/Date.java | 4 +- .../java/manageezpz/model/task/Deadline.java | 12 + .../java/manageezpz/model/task/Event.java | 16 + src/main/java/manageezpz/model/task/Time.java | 6 +- src/main/java/manageezpz/model/task/Todo.java | 4 + .../manageezpz/model/task/UniqueTaskList.java | 15 + .../AddEmployeeCommandIntegrationTest.java | 5 +- .../commands/AddEmployeeCommandTest.java | 12 +- ...Test.java => EditEmployeeCommandTest.java} | 351 +++++++++--------- .../logic/commands/HelpCommandTest.java | 4 +- .../logic/parser/EditCommandParserTest.java | 26 +- .../parser/FindEmployeeCommandParserTest.java | 2 +- 45 files changed, 692 insertions(+), 476 deletions(-) rename src/main/java/manageezpz/logic/parser/{EditCommandParser.java => EditEmployeeCommandParser.java} (58%) rename src/test/java/manageezpz/logic/commands/{EditCommandTest.java => EditEmployeeCommandTest.java} (88%) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index b458e9cb05b..9dac2750268 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -6,19 +6,22 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command!"; - public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; - public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty! \n%1$s"; - public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! \n%1$s"; + public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n\n%1$s"; + public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty! \n\n%1$s"; + public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! \n\n%1$s"; public static final String MESSAGE_INVALID_PRIORITY = - "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n%1$s"; - public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n%1$s"; + "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n\n%1$s"; + public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n\n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = - "The person index provided is invalid as it exceeds the amount of tasks in the displayed list! \n%1$s"; + "The person index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = - "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n%1$s"; + "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; - public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: \n%1$s"; + public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: %1$s"; public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred!"; + + public static final String MESSAGE_DUPLICATE_TASK = "Task with the same description '%1$s' already exists!\n"; public static final String MESSAGE_INVALID_TIME_RANGE = "The time range you provided is invalid!"; + public static final String MESSAGE_EMPTY_ENDTIME = "The end time cannot be empty!"; } diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 093358bf83a..5c272fdb096 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -1,7 +1,8 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; -import static manageezpz.logic.parser.CliSyntax.PREFIX_DATETIME; +import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; +import static manageezpz.logic.parser.CliSyntax.PREFIX_BY_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.logic.commands.exceptions.CommandException; @@ -9,19 +10,21 @@ import manageezpz.model.task.Deadline; public class AddDeadlineTaskCommand extends Command { + public static final String COMMAND_WORD = "addDeadline"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a Deadline Task to the address book. " + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Adds a Deadline Task to ManageEZPZ.\n" + "Parameters: " + PREFIX_DESCRIPTION + "DESCRIPTION " - + PREFIX_DATETIME + "DATETIME " - + "\r\n" + + PREFIX_BY_DATETIME + "DATETIME\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Do Daily Commissions " - + PREFIX_DATETIME + "2022-03-15 0400"; + + PREFIX_BY_DATETIME + "2022-03-15 0400"; + public static final String MESSAGE_SUCCESS = "New Deadline task added: %1$s"; - public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; - private Deadline toAdd; + private final Deadline toAdd; public AddDeadlineTaskCommand(Deadline deadline) { toAdd = deadline; @@ -32,7 +35,8 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); if (model.hasTask(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_TASK); + throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, + toAdd.getDescription()) + "\n" + MESSAGE_USAGE); } model.addDeadline(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java index 16785c5e606..1cb61eab585 100644 --- a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java @@ -16,18 +16,20 @@ public class AddEmployeeCommand extends Command { public static final String COMMAND_WORD = "addEmployee"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an Employee to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Adds an Employee to ManageEZPZ.\n" + "Parameters: " + PREFIX_NAME + "NAME " + PREFIX_PHONE + "PHONE " - + PREFIX_EMAIL + "EMAIL " + + PREFIX_EMAIL + "EMAIL\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe " + PREFIX_PHONE + "98765432 " - + PREFIX_EMAIL + "johnd@example.com "; + + PREFIX_EMAIL + "johnd@example.com"; - public static final String MESSAGE_SUCCESS = "New person added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; + public static final String MESSAGE_SUCCESS = "New Employee added: %1$s"; + + public static final String MESSAGE_DUPLICATE_PERSON = "Employee %1$s already exists!\n"; private final Person toAdd; @@ -44,7 +46,8 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); if (model.hasPerson(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_PERSON); + throw new CommandException(String.format(MESSAGE_DUPLICATE_PERSON, + toAdd.getName().toString()) + "\n" + MESSAGE_USAGE); } model.addPerson(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index 0c328214373..27560088d22 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -1,27 +1,30 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; +import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; import manageezpz.model.task.Event; public class AddEventTaskCommand extends Command { + public static final String COMMAND_WORD = "addEvent"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an Event Task to the address book. " + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Adds an Event Task to ManageEZPZ.\n" + "Parameters: " + PREFIX_DESCRIPTION + "DESCRIPTION " - + PREFIX_TIME + "[DATE] [START_TIME] [END_TIME] " - + "\r\n" + + PREFIX_AT_DATETIME + "[DATE] [START_TIME] [END_TIME]\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Finish 160 Resins " - + PREFIX_TIME + "2022-03-15 1800 2000"; + + PREFIX_AT_DATETIME + "2022-03-15 1800 2000"; + public static final String MESSAGE_SUCCESS = "New Event task added: %1$s"; - public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; - private Event toAdd; + private final Event toAdd; public AddEventTaskCommand(Event event) { toAdd = event; @@ -32,7 +35,8 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); if (model.hasTask(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_TASK); + throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, + toAdd.getDescription()) + "\n" + MESSAGE_USAGE); } model.addEvent(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index 7dcde0ff972..b7e46c54d44 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -1,6 +1,7 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import manageezpz.logic.commands.exceptions.CommandException; @@ -8,16 +9,17 @@ import manageezpz.model.task.Todo; public class AddTodoTaskCommand extends Command { + public static final String COMMAND_WORD = "addTodo"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a Todo Task to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Adds a Todo Task to ManageEZPZ.\n" + "Parameters: " - + PREFIX_DESCRIPTION + "DESCRIPTION " - + "\r\n" + + PREFIX_DESCRIPTION + "DESCRIPTION\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Play Genshin Impact"; + public static final String MESSAGE_SUCCESS = "New Todo Task added: %1$s"; - public static final String MESSAGE_DUPLICATE_TASK = "This Task already exists in the address book"; private final Todo toAdd; @@ -34,7 +36,8 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); if (model.hasTask(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_TASK); + throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, + toAdd.getDescription()) + "\n" + MESSAGE_USAGE); } model.addTodo(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 3ec92783205..8fabda8b61b 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -13,18 +13,18 @@ import manageezpz.model.task.Task; /** - * Deletes a person identified using it's displayed index from the address book. + * Deletes a person identified using its displayed index from the address book. */ public class DeleteEmployeeCommand extends Command { public static final String COMMAND_WORD = "deleteEmployee"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" + + ": Deletes the Employee identified by the index number used in the displayed employee list.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: " + COMMAND_WORD + " 1"; - public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; + public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Employee: %1$s"; private final Index targetIndex; diff --git a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java index 8d40d8cf139..78754a098f1 100644 --- a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java @@ -28,27 +28,33 @@ public class EditEmployeeCommand extends Command { public static final String COMMAND_WORD = "editEmployee"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the employee identified " - + "by the index number used in the displayed employee list. " + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Edits the details of the employee identified by the " + + "index number used in the displayed employee list.\n" + "Existing values will be overwritten by the input values.\n" + "Parameters: INDEX (must be a positive integer) " - + "[" + PREFIX_NAME + "NAME] " - + "[" + PREFIX_PHONE + "PHONE] " - + "[" + PREFIX_EMAIL + "EMAIL] " + + PREFIX_NAME + "NAME " + + PREFIX_PHONE + "PHONE " + + PREFIX_EMAIL + "EMAIL\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_PHONE + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; - public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited employee: %1$s"; - public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book."; + public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Employee: %1$s"; + + public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided.\n"; + + public static final String MESSAGE_DUPLICATE_PERSON = "Employee %1$s already exists!\n"; private final Index index; private final EditPersonDescriptor editPersonDescriptor; /** - * @param index of the person in the filtered person list to edit - * @param editPersonDescriptor details to edit the person with + * Constructor to initialize a EditEmployeeCommand class with the given + * index and editPersonDescriptor. + * + * @param index Index of the Employee to edit + * @param editPersonDescriptor Details of the Employee to edit */ public EditEmployeeCommand(Index index, EditPersonDescriptor editPersonDescriptor) { requireNonNull(index); @@ -61,31 +67,42 @@ public EditEmployeeCommand(Index index, EditPersonDescriptor editPersonDescripto @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownPersonList = model.getFilteredPersonList(); - List lastShownTaskList = model.getFilteredTaskList(); + List fullTaskList = model.getAddressBook().getTaskList(); if (index.getZeroBased() >= lastShownPersonList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + throw new CommandException(String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, + MESSAGE_USAGE)); } Person personToEdit = lastShownPersonList.get(index.getZeroBased()); Person editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { - throw new CommandException(MESSAGE_DUPLICATE_PERSON); + throw new CommandException(String.format(MESSAGE_DUPLICATE_PERSON, + editedPerson.getName().toString()) + "\n" + MESSAGE_USAGE); } model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - List taskList = lastShownTaskList.stream() - .filter(task -> task.getAssignees().contains(personToEdit)).collect(Collectors.toList()); + List affectedTaskList = fullTaskList.stream() + .filter(task -> task.getAssignees().contains(personToEdit)) + .collect(Collectors.toList()); + for (Task task : affectedTaskList) { + List assignees = task.getAssignees(); - for (int j = 0; j < taskList.size(); j++) { - taskList.get(j).assignedTo(index.getZeroBased(), editedPerson); + for (Person assignee : assignees) { + if (assignee.equals(personToEdit)) { + Task taskToUpdate = fullTaskList.get(fullTaskList.indexOf(task)); + model.updateTaskWithEditedPerson(taskToUpdate, assignees.indexOf(assignee), editedPerson); + } + } } + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, editedPerson)); } @@ -100,6 +117,7 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); int personToEditNumOfTask = personToEdit.getNumOfTasks(); + return new Person(updatedName, updatedPhone, updatedEmail, personToEditNumOfTask); } diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index ad9d9c2d577..8e362125e2a 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -1,15 +1,17 @@ package manageezpz.logic.commands; +import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; +import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import static manageezpz.logic.parser.CliSyntax.PREFIX_TIME; -import java.util.ArrayList; +import java.util.List; +import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.logic.parser.ParserUtil; @@ -26,151 +28,165 @@ /** * Edits the details of an existing task in the address book. */ - public class EditTaskCommand extends Command { + public static final String COMMAND_WORD = "editTask"; - public static final String MORE_EXAMPLES = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + "Eat Apple " - + PREFIX_DATE + "2022-09-05 " + PREFIX_TIME + "1800"; - public static final String MORE_EXAMPLES_1 = COMMAND_WORD + " 2 " + PREFIX_DESCRIPTION + "Midterm Exam " - + PREFIX_DATE + "2022-04-06 " + PREFIX_TIME + "1800 2000"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the task identified " + + public static final String EXAMPLE_ONE = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + " Eat bananas"; + + public static final String EXAMPLE_TWO = COMMAND_WORD + " 2 " + PREFIX_DESCRIPTION + "Eat Apple " + + PREFIX_DATE + "2022-09-05 " + PREFIX_AT_DATETIME + "1800"; + + public static final String EXAMPLE_THREE = COMMAND_WORD + " 3 " + PREFIX_DESCRIPTION + "Midterm Exam " + + PREFIX_DATE + "2022-04-06 " + PREFIX_AT_DATETIME + "1800 2000"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Edits the details of the task identified " + "by the index number used in the displayed task list.\n" + + "Existing values will be overwritten by the input values.\n" + "Parameters: INDEX (must exist in the Address Book) " - + "[" + PREFIX_DESCRIPTION + " NAME]" - + "[" + PREFIX_DATE + " DATE]" - + "[" + PREFIX_TIME + " TIME] \n" - + "At least one of " + PREFIX_DESCRIPTION + " " - + PREFIX_DATE + " " + PREFIX_TIME + " must have a value. \n" - + "For an event task, a start time and an end time" - + " separated with an empty space" + "\n must be provided" - + " instead of a single time value. \n" - + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_DESCRIPTION + " Eat bananas " - + "\n" - + MORE_EXAMPLES - + "\n" - + MORE_EXAMPLES_1; + + PREFIX_DESCRIPTION + " NAME " + + PREFIX_DATE + " DATE " + + PREFIX_AT_DATETIME + " TIME\n" + + "At least one of " + PREFIX_DESCRIPTION + " " + PREFIX_DATE + + " " + PREFIX_AT_DATETIME + " must have a value.\n" + + "For an event task, a start time and an end time " + + "separated with an empty space must be provided " + + "instead of a single time value.\n" + + "Examples: \n" + EXAMPLE_ONE + "\n" + EXAMPLE_TWO + "\n" + EXAMPLE_THREE; private final Index index; private final String desc; - private final String time; private final String date; + private final String time; /** - * A constructor to store information that is used in editing a task. + * Constructor to initialize an instance of EditTaskCommand class + * with the given index and updated description, date and time + * information. + * + * @param index Index of the Task to edit information + * @param desc New description of the Task + * @param date New date of the Task + * @param time New time of the Task */ - - public EditTaskCommand(Index index, String desc, String time, String date) { + public EditTaskCommand(Index index, String desc, String date, String time) { this.index = index; this.desc = desc; - this.time = time; this.date = date; + this.time = time; } @Override public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredTaskList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + } + + Task currentTask = model.getFilteredTaskList().get(index.getZeroBased()); + Task updatedTask; + try { - Task currentTask = model.getFilteredTaskList().get(index.getZeroBased()); if (currentTask.getType().equalsIgnoreCase("todo")) { - return handleTodo((Todo) currentTask, model, this.desc); + updatedTask = updateTodo((Todo) currentTask, model, this.desc); } else if (currentTask.getType().equalsIgnoreCase("deadline")) { - return handleDeadline((Deadline) currentTask, model, this.desc, this.date, this.time); + updatedTask = updateDeadline((Deadline) currentTask, model, this.desc, this.date, this.time); } else if (currentTask.getType().equalsIgnoreCase("event")) { - return handleEvent((Event) currentTask, model, this.desc, this.date, this.time); + updatedTask = updateEvent((Event) currentTask, model, this.desc, this.date, this.time); } else { + // Should not reach this as there are only three types of tasks throw new CommandException(MESSAGE_UNEXPECTED_ERROR); } - } catch (Exception e) { - throw new CommandException(MESSAGE_USAGE); - } - } - private ArrayList
### Listing all Tasks : `listTask` @@ -393,8 +394,8 @@ If your changes to the data file makes its format invalid, ManageEZPZ will disca | Action | Format, Examples | |-----------------------|---------------------------------------------------------------------------------------------------------------------------------| | **Add Todo Task** | `addTodo desc/TASK_DESCRIPTION`
e.g., `addTodo desc/read book` | -| **Add Deadline Task** | `addDeadline desc/TASK_DESCRIPTION by/DATETIME`
e.g., `addDeadline desc/return book by/16-02-2022 1800` | -| **Add Event Task** | `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
e.g., `addEvent desc/project meeting at/17-02-2022 1900 2000` | +| **Add Deadline Task** | `addDeadline desc/TASK_DESCRIPTION by/DATETIME`
e.g., `addDeadline desc/return book by/2022-02-16 1800` | +| **Add Event Task** | `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME`
e.g., `addEvent desc/project meeting at/2022-02-17 1900 2000` | | **List Tasks** | `listTasks` | | **Find Task** | `findTask OPTIONS`
e.g.,`findTask todo/` | | **Mark Task** | `markTask INDEX`
e.g., `markTask 2` | @@ -409,6 +410,5 @@ If your changes to the data file makes its format invalid, ManageEZPZ will disca | Action | Format | |-----------|---------| | **Clear** | `clear` | -| **List** | `list` | | **Help** | `help` | | **Exit** | `exit` | From c909f806208ee0ad9332c9b0fc77347a494890d4 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 31 Mar 2022 19:53:35 +0800 Subject: [PATCH 305/507] Fix prohibited line ending errors --- .../parser/EditEmployeeCommandParser.java | 124 +++--- .../commands/EditEmployeeCommandTest.java | 360 +++++++++--------- 2 files changed, 242 insertions(+), 242 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java index ff9e83fa15f..1bd78d43bae 100644 --- a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java @@ -1,62 +1,62 @@ -package manageezpz.logic.parser; - -import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; -import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; -import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; -import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; - -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditEmployeeCommand; -import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; -import manageezpz.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new EditCommand object - */ -public class EditEmployeeCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the EditEmployeeCommand - * and returns an EditEmployeeCommand object for execution. - * - * @throws ParseException if the user input does not conform the expected format - */ - public EditEmployeeCommand parse(String args) throws ParseException { - requireNonNull(args); - - ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL); - - Index index; - - try { - index = ParserUtil.parseIndex(argMultimap.getPreamble()); - } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE), pe); - } - - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); - - try { - if (argMultimap.getValue(PREFIX_NAME).isPresent()) { - editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); - } - if (argMultimap.getValue(PREFIX_PHONE).isPresent()) { - editPersonDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); - } - if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { - editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); - } - } catch (ParseException pe) { - throw new ParseException(pe.getMessage() + "\n" + MESSAGE_USAGE, pe); - } - - if (!editPersonDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditEmployeeCommand.MESSAGE_NOT_EDITED + "\n" + MESSAGE_USAGE); - } - - return new EditEmployeeCommand(index, editPersonDescriptor); - } -} +package manageezpz.logic.parser; + +import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; +import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; +import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; +import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; + +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditEmployeeCommand; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; +import manageezpz.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new EditCommand object + */ +public class EditEmployeeCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the EditEmployeeCommand + * and returns an EditEmployeeCommand object for execution. + * + * @throws ParseException if the user input does not conform the expected format + */ + public EditEmployeeCommand parse(String args) throws ParseException { + requireNonNull(args); + + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL); + + Index index; + + try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE), pe); + } + + EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); + + try { + if (argMultimap.getValue(PREFIX_NAME).isPresent()) { + editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); + } + if (argMultimap.getValue(PREFIX_PHONE).isPresent()) { + editPersonDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); + } + if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { + editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); + } + } catch (ParseException pe) { + throw new ParseException(pe.getMessage() + "\n" + MESSAGE_USAGE, pe); + } + + if (!editPersonDescriptor.isAnyFieldEdited()) { + throw new ParseException(EditEmployeeCommand.MESSAGE_NOT_EDITED + "\n" + MESSAGE_USAGE); + } + + return new EditEmployeeCommand(index, editPersonDescriptor); + } +} diff --git a/src/test/java/manageezpz/logic/commands/EditEmployeeCommandTest.java b/src/test/java/manageezpz/logic/commands/EditEmployeeCommandTest.java index 273523624b7..c7e0a81a596 100644 --- a/src/test/java/manageezpz/logic/commands/EditEmployeeCommandTest.java +++ b/src/test/java/manageezpz/logic/commands/EditEmployeeCommandTest.java @@ -1,180 +1,180 @@ -package manageezpz.logic.commands; - -import static manageezpz.logic.commands.CommandTestUtil.DESC_AMY; -import static manageezpz.logic.commands.CommandTestUtil.DESC_BOB; -import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; -import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; -import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; -import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; -import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; -import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; -import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import org.junit.jupiter.api.Test; - -import manageezpz.commons.core.Messages; -import manageezpz.commons.core.index.Index; -import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; -import manageezpz.model.AddressBook; -import manageezpz.model.Model; -import manageezpz.model.ModelManager; -import manageezpz.model.UserPrefs; -import manageezpz.model.person.Person; -import manageezpz.testutil.EditPersonDescriptorBuilder; -import manageezpz.testutil.PersonBuilder; - -/** - * Contains integration tests (interaction with the Model) and unit tests for EditCommand. - */ -public class EditEmployeeCommandTest { - - private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); - - @Test - public void execute_allFieldsSpecifiedUnfilteredList_success() { - Person editedPerson = new PersonBuilder().build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, descriptor); - - String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); - - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_someFieldsSpecifiedUnfilteredList_success() { - Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); - Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); - - PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB).build(); - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) - .withPhone(VALID_PHONE_BOB).build(); - EditEmployeeCommand editCommand = new EditEmployeeCommand(indexLastPerson, descriptor); - - String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - expectedModel.setPerson(lastPerson, editedPerson); - - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_noFieldSpecifiedUnfilteredList_success() { - EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, new EditPersonDescriptor()); - Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); - - String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_filteredList_success() { - showPersonAtIndex(model, INDEX_FIRST); - - Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); - Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); - - String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); - - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); - - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_duplicatePersonUnfilteredList_failure() { - Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_SECOND, descriptor); - - assertCommandFailure(editCommand, model, - String.format(EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON, - firstPerson.getName().toString()) + "\n" + MESSAGE_USAGE); - - } - - @Test - public void execute_duplicatePersonFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST); - - // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND.getZeroBased()); - EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, - new EditPersonDescriptorBuilder(personInList).build()); - - assertCommandFailure(editCommand, model, - String.format(EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON, - personInList.getName().toString()) + "\n" + MESSAGE_USAGE); - } - - @Test - public void execute_invalidPersonIndexUnfilteredList_failure() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); - EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, descriptor); - - assertCommandFailure(editCommand, model, - String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); - } - - /** - * Edit filtered list where index is larger than size of filtered list, - * but smaller than size of address book - */ - @Test - public void execute_invalidPersonIndexFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST); - Index outOfBoundIndex = INDEX_SECOND; - // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - - EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); - - assertCommandFailure(editCommand, model, - String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); - } - - @Test - public void equals() { - final EditEmployeeCommand standardCommand = new EditEmployeeCommand(INDEX_FIRST, DESC_AMY); - - // same values -> returns true - EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditEmployeeCommand commandWithSameValues = new EditEmployeeCommand(INDEX_FIRST, copyDescriptor); - assertTrue(standardCommand.equals(commandWithSameValues)); - - // same object -> returns true - assertTrue(standardCommand.equals(standardCommand)); - - // null -> returns false - assertFalse(standardCommand.equals(null)); - - // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); - - // different index -> returns false - assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_SECOND, DESC_AMY))); - - // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_FIRST, DESC_BOB))); - } - -} +package manageezpz.logic.commands; + +import static manageezpz.logic.commands.CommandTestUtil.DESC_AMY; +import static manageezpz.logic.commands.CommandTestUtil.DESC_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static manageezpz.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandFailure; +import static manageezpz.logic.commands.CommandTestUtil.assertCommandSuccess; +import static manageezpz.logic.commands.CommandTestUtil.showPersonAtIndex; +import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; +import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; +import static manageezpz.testutil.TypicalIndexes.INDEX_SECOND; +import static manageezpz.testutil.TypicalPersons.getTypicalAddressBookEmployees; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import manageezpz.commons.core.Messages; +import manageezpz.commons.core.index.Index; +import manageezpz.logic.commands.EditEmployeeCommand.EditPersonDescriptor; +import manageezpz.model.AddressBook; +import manageezpz.model.Model; +import manageezpz.model.ModelManager; +import manageezpz.model.UserPrefs; +import manageezpz.model.person.Person; +import manageezpz.testutil.EditPersonDescriptorBuilder; +import manageezpz.testutil.PersonBuilder; + +/** + * Contains integration tests (interaction with the Model) and unit tests for EditCommand. + */ +public class EditEmployeeCommandTest { + + private Model model = new ModelManager(getTypicalAddressBookEmployees(), new UserPrefs()); + + @Test + public void execute_allFieldsSpecifiedUnfilteredList_success() { + Person editedPerson = new PersonBuilder().build(); + EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, descriptor); + + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_someFieldsSpecifiedUnfilteredList_success() { + Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); + Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); + + PersonBuilder personInList = new PersonBuilder(lastPerson); + Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB).build(); + + EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) + .withPhone(VALID_PHONE_BOB).build(); + EditEmployeeCommand editCommand = new EditEmployeeCommand(indexLastPerson, descriptor); + + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + expectedModel.setPerson(lastPerson, editedPerson); + + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_noFieldSpecifiedUnfilteredList_success() { + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, new EditPersonDescriptor()); + Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); + + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_filteredList_success() { + showPersonAtIndex(model, INDEX_FIRST); + + Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); + Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, + new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + + String expectedMessage = String.format(EditEmployeeCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); + expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_duplicatePersonUnfilteredList_failure() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST.getZeroBased()); + + EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_SECOND, descriptor); + + assertCommandFailure(editCommand, model, + String.format(EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON, + firstPerson.getName().toString()) + "\n" + MESSAGE_USAGE); + + } + + @Test + public void execute_duplicatePersonFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST); + + // edit person in filtered list into a duplicate in address book + Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND.getZeroBased()); + EditEmployeeCommand editCommand = new EditEmployeeCommand(INDEX_FIRST, + new EditPersonDescriptorBuilder(personInList).build()); + + assertCommandFailure(editCommand, model, + String.format(EditEmployeeCommand.MESSAGE_DUPLICATE_PERSON, + personInList.getName().toString()) + "\n" + MESSAGE_USAGE); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); + EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, descriptor); + + assertCommandFailure(editCommand, model, + String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); + } + + /** + * Edit filtered list where index is larger than size of filtered list, + * but smaller than size of address book + */ + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST); + Index outOfBoundIndex = INDEX_SECOND; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + EditEmployeeCommand editCommand = new EditEmployeeCommand(outOfBoundIndex, + new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + + assertCommandFailure(editCommand, model, + String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); + } + + @Test + public void equals() { + final EditEmployeeCommand standardCommand = new EditEmployeeCommand(INDEX_FIRST, DESC_AMY); + + // same values -> returns true + EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); + EditEmployeeCommand commandWithSameValues = new EditEmployeeCommand(INDEX_FIRST, copyDescriptor); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different index -> returns false + assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_SECOND, DESC_AMY))); + + // different descriptor -> returns false + assertFalse(standardCommand.equals(new EditEmployeeCommand(INDEX_FIRST, DESC_BOB))); + } + +} From 69ac3f7274b17ee7f5297569e5f98349c86c3e18 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Thu, 31 Mar 2022 20:01:08 +0800 Subject: [PATCH 306/507] Updated Test cases for AddressBook. --- .../java/manageezpz/model/AddressBookTest.java | 17 +++++++++++++++++ .../manageezpz/model/person/PersonTest.java | 12 ++++++++++++ .../model/person/UniquePersonListTest.java | 11 +++++++++++ 3 files changed, 40 insertions(+) diff --git a/src/test/java/manageezpz/model/AddressBookTest.java b/src/test/java/manageezpz/model/AddressBookTest.java index e2b4642394a..60cf992fc1e 100644 --- a/src/test/java/manageezpz/model/AddressBookTest.java +++ b/src/test/java/manageezpz/model/AddressBookTest.java @@ -141,5 +141,22 @@ public void getTaskList_modifyList_throwsUnsupportedOperationException() { assertThrows(UnsupportedOperationException.class, () -> addressBook.getTaskList().remove(0)); } + @Test + public void markTask_nullTask_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> addressBook.markTask(null)); + } + @Test + public void markTask_validTask_success() { + addressBook.addTask(READ_BOOK); + Task markedTask = addressBook.markTask(READ_BOOK); + assertTrue(markedTask.isDone()); + } + + @Test + public void unmarkTask_validTask_success() { + addressBook.addTask(READ_BOOK); + Task unmakredTask = addressBook.unmarkTask(READ_BOOK); + assertFalse(unmakredTask.isDone()); + } } diff --git a/src/test/java/manageezpz/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java index 465e27371bc..634fc57e7db 100644 --- a/src/test/java/manageezpz/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -71,4 +71,16 @@ public void equals() { assertFalse(ALICE.equals(editedAlice)); } + + @Test + public void increaseTaskCount_personInAddressBook_returnsTrue() { + ALICE.increaseTaskCount(); + assertTrue(ALICE.getNumOfTasks() == 1); + } + + @Test + public void decreaseTaskCount_personInAddressBook_throwsAssertionError() { + ALICE.decreaseTaskCount(); + assertTrue(ALICE.getNumOfTasks() == 0); + } } diff --git a/src/test/java/manageezpz/model/person/UniquePersonListTest.java b/src/test/java/manageezpz/model/person/UniquePersonListTest.java index acf776f2ca3..4bf35fa93e6 100644 --- a/src/test/java/manageezpz/model/person/UniquePersonListTest.java +++ b/src/test/java/manageezpz/model/person/UniquePersonListTest.java @@ -163,4 +163,15 @@ public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationEx assertThrows(UnsupportedOperationException.class, () -> uniquePersonList.asUnmodifiableObservableList().remove(0)); } + + @Test + public void increaseNumOfTasks_nullPerson_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniquePersonList.increaseNumOfTasks(null)); + } + + @Test + public void decreaseNumOfTasks_nullPerson_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniquePersonList.decreaseNumOfTasks(null)); + } + } From bf8991257d9d04ce0c19106e13916e7670cac8f1 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 31 Mar 2022 23:41:59 +0800 Subject: [PATCH 307/507] Update UI * Customize app icon * Add label for Employees list and Tasks list * Implement right click feature to allow user to copy name, phone number and email of selected employee --- .../java/manageezpz/ui/PersonListPanel.java | 39 +++++++++++++++++- .../java/manageezpz/ui/TaskListPanel.java | 1 - src/main/java/manageezpz/ui/UiManager.java | 2 +- src/main/resources/images/employee_icon.png | Bin 0 -> 5070 bytes src/main/resources/view/DarkTheme.css | 11 +++++ src/main/resources/view/MainWindow.fxml | 38 ++++++++++++++++- 6 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/images/employee_icon.png diff --git a/src/main/java/manageezpz/ui/PersonListPanel.java b/src/main/java/manageezpz/ui/PersonListPanel.java index c0c97a95867..536fc7c1626 100644 --- a/src/main/java/manageezpz/ui/PersonListPanel.java +++ b/src/main/java/manageezpz/ui/PersonListPanel.java @@ -3,9 +3,14 @@ import java.util.logging.Logger; import javafx.collections.ObservableList; +import javafx.event.ActionEvent; import javafx.fxml.FXML; +import javafx.scene.control.ContextMenu; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; +import javafx.scene.control.MenuItem; +import javafx.scene.input.Clipboard; +import javafx.scene.input.ClipboardContent; import javafx.scene.input.MouseEvent; import javafx.scene.layout.Region; import manageezpz.commons.core.LogsCenter; @@ -30,9 +35,40 @@ public PersonListPanel(ObservableList personList) { personListView.setCellFactory(listView -> new PersonListViewCell()); } + /** + * Handles mouse click event when user clicks an employee from the list. + */ @FXML public void handleMouseClick(MouseEvent arg) { - System.out.println("clicked on " + personListView.getSelectionModel().getSelectedItem()); + final Clipboard clipboard = Clipboard.getSystemClipboard(); + final ClipboardContent content = new ClipboardContent(); + + // Creating a context menu + ContextMenu contextMenu = new ContextMenu(); + + // Creating the menu Items for the context menu + MenuItem copyNameItem = new MenuItem("Copy Name"); + MenuItem copyPhoneItem = new MenuItem("Copy Phone Number"); + MenuItem copyEmailItem = new MenuItem("Copy Email"); + contextMenu.getItems().addAll(copyNameItem, copyPhoneItem, copyEmailItem); + + // Adding the context menu to the button and the text field + personListView.setContextMenu(contextMenu); + + copyNameItem.setOnAction((ActionEvent e) -> { + content.putString(personListView.getSelectionModel().getSelectedItem().getName().toString()); + clipboard.setContent(content); + }); + + copyPhoneItem.setOnAction((ActionEvent e) -> { + content.putString(personListView.getSelectionModel().getSelectedItem().getPhone().toString()); + clipboard.setContent(content); + }); + + copyEmailItem.setOnAction((ActionEvent e) -> { + content.putString(personListView.getSelectionModel().getSelectedItem().getEmail().toString()); + clipboard.setContent(content); + }); } /** @@ -51,5 +87,4 @@ protected void updateItem(Person person, boolean empty) { } } } - } diff --git a/src/main/java/manageezpz/ui/TaskListPanel.java b/src/main/java/manageezpz/ui/TaskListPanel.java index 5611c53ce6a..460f7aebb7b 100644 --- a/src/main/java/manageezpz/ui/TaskListPanel.java +++ b/src/main/java/manageezpz/ui/TaskListPanel.java @@ -45,5 +45,4 @@ protected void updateItem(Task task, boolean empty) { } } } - } diff --git a/src/main/java/manageezpz/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java index 9dc8389bed2..25d5fed225f 100644 --- a/src/main/java/manageezpz/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -20,7 +20,7 @@ public class UiManager implements Ui { public static final String ALERT_DIALOG_PANE_FIELD_ID = "alertDialogPane"; private static final Logger logger = LogsCenter.getLogger(UiManager.class); - private static final String ICON_APPLICATION = "/images/address_book_32.png"; + private static final String ICON_APPLICATION = "/images/task_icon.png"; private Logic logic; private MainWindow mainWindow; diff --git a/src/main/resources/images/employee_icon.png b/src/main/resources/images/employee_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c109dd85302b958c1fbf68ce1aa92d6b14692492 GIT binary patch literal 5070 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
JdEJ_M>u{d&xw+U6J8lVl!u@cRb=SeP zNk#b(4P24vd~K@4TX0LLGQ2Y>f^yi}EUUlj+^L0|2Xu0Pf>=>2e-gIB7T`fEm9~=G zUR%42hY#iY2j}<)kBrjZoo0kfD;;V^HfrODaCiRkB>0jmTAl@n|B8HrRjJsmdyPT1sXo-b@_-5`uyfYv;0dKxaub|wRM zJE=rUM{^b5iXl(n+ zJ(>5fEM5Y>FnwW5ww!?J(B9pYW08=NkW;Htiiy*>mU2zLhtr6=thOv1aYaNVK#Z;X z++0o0 z@YWrZqvagST= zDsE*hQemm(Y>5MEM{+!f{Zs6=MKk;vmqLsvO0w%y<-Nsj-Q-EmsgdYa_IAE#_Mt=H z%i38CNAlmy)#=eOKag`lM`b9D0!Yb9vk&+JuI%GB`{qw&m=9$ z_Y~)K_~|l5qE<(V*J%lUl#HmgqIHh={fm=|ZLu8isY3;@+@Z0!rQ;?BR_8!B8aFKp zZd-g+E`NL{r2}zSD#m^zD`b~o0yIlL*llVEEk2Qnp05nHxDsnmK4fImd=b9LCDFy? ze3VQOKss){Gh?+k-B^#jEM@;n+umnYCRtZ67?T#7SR~7RDeY%gg z-3CrYU5Zo3sSjA|beOT^35Bl_D_KO$@A9WLe%yI70xHM5IB`!clx$>K`ALY|$9yhv z8;H9yF1E<;0zLc}1~*F-)Q#l;VX$zzpXiBj0fJzRWd(N|y3lJ)r+7-gbLve7Amy{f zfQ)F-tIIMuIaf!z*!VBPz*^AH5IseAq9Qy%+1?015K1YrfxPPtcqxK1RJeIpo9)s` zPulXkXI}@OqSty~Uo%^|%_)&X%IZFUuQbNtq#HzHGg&32R92j;Gxx9ltGRkyDWe59 z3GdjhZEmFE%`0pNB{+^So!~>n_+}~w$Ft=bMjJczp@RG4C`TLn9pq=$=Xk6Db_;i3 zJA|yf6qK1kH+_8e&}n5h{Qdf)rZac^<9QU5B{(AE*SiA_JP|;y6jiV{wNHAkxJd|` zAzcn$>zUVdKPK+4q`QHC6|%GtL_hIj+BUa1c`U-8XKQ eTQ52LgZa!0;(Mp)nDxCsZkDDts0w4xn128Up`||n literal 0 HcmV?d00001 diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 1694b15aa81..1d611d04321 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -24,6 +24,17 @@ -fx-opacity: 1; } +.label-list-header-background { + -fx-background-color: #2a4158; +} + +.label-list-header { + -fx-font-size: 16pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 1; +} + .text-field { -fx-font-size: 12pt; -fx-font-family: "Segoe UI Semibold"; diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 82b8dbba3d8..c59fe58b79a 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -3,10 +3,12 @@ + + @@ -14,7 +16,7 @@ - + @@ -51,6 +53,23 @@ + + + + + + + + + + + + + @@ -60,6 +79,23 @@ + + + + + + + + + + + + + From f58d281cbcfab928b5089d30dee4b4e1e1d9c8a3 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Thu, 31 Mar 2022 23:47:28 +0800 Subject: [PATCH 308/507] Update Ui image in index.md --- docs/images/Ui.png | Bin 60633 -> 83988 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index deb7e417fc7e0a1e471e4966d8705409e3b518ca..1db7c9e07ec5bd4e886d6488a3dde6caca46cb51 100644 GIT binary patch literal 83988 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%0AN0H}$U+dNq{9T4(CgfPcK=_B!Ume0z0nqqcuc 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�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 UEwJU1I|HW4X_P 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 P`s}Q!waJ^)ZukBlw2_WJ From 6053ab699b53756847fcc22f6672bccf720d2079 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 1 Apr 2022 03:25:29 +0800 Subject: [PATCH 309/507] Fix bug for EditTaskCommand and DeleteEmployeeCommand --- .../logic/commands/DeleteEmployeeCommand.java | 4 +- .../logic/commands/EditTaskCommand.java | 46 +++++++------------ 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 8fabda8b61b..83110f75378 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -43,7 +43,7 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownPersonList = model.getFilteredPersonList(); - List lastShownTaskList = model.getFilteredTaskList(); + List fullTaskList = model.getAddressBook().getTaskList(); if (targetIndex.getZeroBased() >= lastShownPersonList.size()) { throw new CommandException(String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); @@ -51,7 +51,7 @@ public CommandResult execute(Model model) throws CommandException { Person personToDelete = lastShownPersonList.get(targetIndex.getZeroBased()); - List affectedTaskList = lastShownTaskList.stream() + List affectedTaskList = fullTaskList.stream() .filter(task -> task.getAssignees().contains(personToDelete)) .collect(Collectors.toList()); diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 8e362125e2a..d40b481a1e8 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -24,6 +24,7 @@ import manageezpz.model.task.Task; import manageezpz.model.task.Time; import manageezpz.model.task.Todo; +import manageezpz.model.task.exceptions.DuplicateTaskException; /** * Edits the details of an existing task in the address book. @@ -86,15 +87,15 @@ public CommandResult execute(Model model) throws CommandException { } Task currentTask = model.getFilteredTaskList().get(index.getZeroBased()); - Task updatedTask; + Task updatedTask = null; try { if (currentTask.getType().equalsIgnoreCase("todo")) { - updatedTask = updateTodo((Todo) currentTask, model, this.desc); + updatedTask = updateTodo((Todo) currentTask, this.desc); } else if (currentTask.getType().equalsIgnoreCase("deadline")) { - updatedTask = updateDeadline((Deadline) currentTask, model, this.desc, this.date, this.time); + updatedTask = updateDeadline((Deadline) currentTask, this.desc, this.date, this.time); } else if (currentTask.getType().equalsIgnoreCase("event")) { - updatedTask = updateEvent((Event) currentTask, model, this.desc, this.date, this.time); + updatedTask = updateEvent((Event) currentTask, this.desc, this.date, this.time); } else { // Should not reach this as there are only three types of tasks throw new CommandException(MESSAGE_UNEXPECTED_ERROR); @@ -102,28 +103,30 @@ public CommandResult execute(Model model) throws CommandException { model.setTask(currentTask, updatedTask); return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, updatedTask)); - } catch (ParseException pe) { - throw new CommandException(pe.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, pe); + } catch (CommandException | ParseException e) { + throw new CommandException(e.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, e); + } catch (DuplicateTaskException de) { + throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, updatedTask) + "\n" + MESSAGE_USAGE, de); } } - private Task updateTodo(Todo currentTask, Model model, String desc) throws CommandException, ParseException { + private Task updateTodo(Todo currentTask, String desc) throws CommandException, ParseException { Todo updatedToDoTask = new Todo(currentTask); if (!desc.isEmpty()) { - Description newDesc = parseDescription(model, desc); + Description newDesc = ParserUtil.parseDescription(desc); updatedToDoTask.setDescription(newDesc); } return updatedToDoTask; } - private Task updateDeadline(Deadline currentTask, Model model, String desc, String date, - String time) throws CommandException, ParseException { + private Task updateDeadline(Deadline currentTask, String desc, String date, String time) + throws CommandException, ParseException { Deadline updatedDeadlineTask = new Deadline(currentTask); if (!desc.isEmpty()) { - Description newDesc = parseDescription(model, desc); + Description newDesc = ParserUtil.parseDescription(desc); updatedDeadlineTask.setDescription(newDesc); } @@ -140,12 +143,12 @@ private Task updateDeadline(Deadline currentTask, Model model, String desc, Stri return updatedDeadlineTask; } - private Task updateEvent(Event currentTask, Model model, String desc, String date, - String time) throws CommandException, ParseException { + private Task updateEvent(Event currentTask, String desc, String date, String time) + throws CommandException, ParseException { Event updatedEventTask = new Event(currentTask); if (!desc.isEmpty()) { - Description newDesc = parseDescription(model, desc); + Description newDesc = ParserUtil.parseDescription(desc); updatedEventTask.setDescription(newDesc); } @@ -174,19 +177,4 @@ private Task updateEvent(Event currentTask, Model model, String desc, String dat return updatedEventTask; } - - private Description parseDescription(Model model, String desc) throws CommandException, ParseException { - Description newDesc = ParserUtil.parseDescription(desc); - - List fullTaskList = model.getAddressBook().getTaskList(); - - for (Task task : fullTaskList) { - if (task.getDescription().equals(newDesc)) { - throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, - newDesc) + "\n" + MESSAGE_USAGE); - } - } - - return newDesc; - } } From c97674e3b0aea6874178ab428b73031a08b5ab0d Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Fri, 1 Apr 2022 03:34:44 +0800 Subject: [PATCH 310/507] Update Ui image in index.md --- docs/images/Ui.png | Bin 83988 -> 85088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 1db7c9e07ec5bd4e886d6488a3dde6caca46cb51..77b5406e6d3e1dc49d5a922c1e829ba960d328aa 100644 GIT binary patch literal 85088 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⪻PssU<`cu^m=wh3FV8j0JvU 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 literal 83988 zcmd431yodR+b=%qqoSyQlnR1~ptOK=>5$SjbO_SjJz#)@($bCOP}0H>Do8gB2m_3C zH$x0{Zs2*}v(9?|>s#M@&i9@F*=s2}Cr%~U=Rt;6C_soFN^gx1%ro>hw;wl6Qq z=k63Wi5ui$ntz~Wp8oEg|ruBZDzjT=L_U+qu@0wSlt+^9gjUv=}_eBj1(!l-thXRQoJ2*PBkjYqC zS;@+N`en$T(Al|t1F!%bFQ#0Ox~wt%3xZDbitg_2P$<;R?HeI9JmkIr{Z_cB|E;Lc zpBtN-T~|lrmQVQ!fh0z$!p7=-e7wEARaI4+L+<;1k_w>`V)W&8TYsggskt^@3mzs@ z2^b5GRQITu7+Z7&%fp9IiAVG_jes0!X=#t``4_yWy8(fG`fgafJ>UB!BV!tzgyKau zPYqYv>U(*4IXOAWRNg$h=z&!FmoHOOQ@hKgC49MoJOyQB^IikqT>cw9Wa-pW_F7`ozq_!UcoD{Cs`O zoL-;bNb5OR6!bg5AAj06C@5$y#b|K~jcV^CkM=Wbb9Sx!!li518B zS5@+SzBO-ki%=62Z|&Bfz$Y66*@+C^d+R>k8}czfVLjPz-Rf3wpHK5Y-i)cY!qf?I za&qDYUpf2s&CQgP!^eVxI=SL*ZhJn*TPe{tuW#Ox{8?h$Ziz-(4R03eBDp437O6#) z)zrwy$%kq^U1`KHb#TBH5^;21Ei(gy5)3utfU?gGeazTErqAy)7tJ7axDxkO3qDcZ zBq-KDT>k3$<^Y>B1#42hV>`)2Ev&MrxtTc1;A3sYewAY9*cmB*!8|;0q69)t!^ScD zV+Z?lDcRZCCo^n5*BtT|*QX;D#)S;t5gKmKE9oJlS+u=(eXp^x=q<0+NLc)C<4W<` zd}(gJ0OVI-GYPb8?vW53I zNZ=QXEm3Iw>%A76;T~{7``?o?b8Fkg&fBq@i-(nw@Jp%u@)yn?>%A}WsFNfl;Q3-G z9u0~3U4Ex|R}6gj_v=tyXB12yjzyiIwo&T(Gt<+towK+i=cSJQ7*_9-*JIJ4DT$1; z-8HaEyPuzY$j3=9qZIrhXJz8?Uytwq@ zp8dH#6Mm5l^)TOoP1(t~-z=M?upF_DEGvZ`JwDu$5k| zhciT7n#y}AQ-xap=}L8^{g37~wz}=Xq}EC6l>ptm3QV=iSh}1>oLdO@gz?5#fw?tR z6xHNZVB1##@*6Sb!WMjb^5(<2@(cExzhVrbSQfGyQr<{h1`sBk=Kw?4+XuDXxy3QX zw5Oc0Q@ftgCiZ}nMUm&|NrcIDNwN2fp<)seb;r0RAdoXNGXk!wB+wiLzt!)rd4<)| zc=m^T_C&u=D21{*5}#r>A{`Z7SlqleeB&$#il6&@$5*kSJXm72Pm(1sQ@S%Gm*8W* zxswFl&cW`5VuqS;57mD4_&I6tnBZWqH5XcGIdUiyi8dR}ub%W(H{-*Td0dK-zT0TaL1G#fauH)+Za4w61CwZuQR8*|KcE~YZq>D3h z49IQkS5Ud)?G(-|Y141$S%ylHKZK`AC^oh9K3S%dWVE(#9EqH-U zo`2qe>-iSr`FfYfkEoUL!D-$$>IS9jc<;}o_#E&1UL$4&!fKiV=YITH5-$y50fqjQ zJULij(#H>Rq0&JOmSCLc=ReAv*mXuV_!IENS+LkRjFs(&J{H;E_-tNZ$1+>LNGhRP zbTMDf+r4IW5an>#wNlr>$ zyL}Oyt2JI z*R|P_aK~cB8l%HOUfHNxp92B?~SJFNB4-F z!$Quq%CK^_JYNbObso|M&_51r*3mA;wpgRub!~OStxITkRDs7!**Js{s_HA@ zuNvjV`ul6qR>0=h`M$mg4_1#c>c@B+l9zNVLl;-(oA%+*DNwQIcdd>_FSuVJvrLlT^eGerG0&Jd;|>u){$34@lrwqz(aQTHl`2=m(|hzmT+1H!P>7+7;~TE-ocY3r(F=sb#p8Uor9IOm|0sN zQLj^6zLp33Np!ZlF31af$qd|9IH1c7yNFT{-Z!#l8Y?S~RrYr8H8$5KBC}@dEFT_` zjq~u4m6cWDDgPmyoO45fOC{?E{@~d?An$WTsH;}1mm(q}+S=Qfgk`h%=}W7Cp)a7J zB!cSfzC+aY^aY<^TcCHeACUe8Ach`c{JBfi^H7%M+(bg&kVy#t?I(qJo%*d1$esK9 zcxS&n<=;G~`IXc383aMT&$pZl*PGt((6ehGU+}>L9a`yF#?Bp|H__~tgUn6;I7>@? zZh#~t{|_JYAKXY6f0}l8)Ui8Xv-F)0X4Z~d2>*<>52Oyb7%3^KSWZ)U;F%8XtkoUJ zn_L~zaqI-!cY-bQIn}vrAEbl~xQNejcJkLpOUovp0kpnu8^6fkqgl`H)AKX_0W}dc zk=Nev$Ggic6h7xGe?u-D7ktrl^U@!qtXbs#Wm5btx)MrxobF?nVqaRnP zy|y}euz5`#@mzUdzkc;OIcE9&RH-(x^D~1=SsFD^2;CB+Kv_Er$A+6c%o<;x>)RRw z9|q~VMkV6y<;YETem}jZvqJ+fK0MI(IVvC8DXPOQM#!+5Zz2jOCMKM_NB7qo2xbVb zUAsoE>(mRFUVH0z9sJ;{K?8^~EE0@M;Rh}lXRl)bmU6LA(?UwmZu%VGBHpW!$CcN9 zva$XcTjZgBxYC!|4)Dv%(vgzS;gO(V&C8Kl6oP+{Ci;>@#_!)6+5P)y+j{r=j=*Hc zw3AX$XlwUv0550X281JFHS~YWd4b~TM$X-Go*%7p1iMpIf9!$L1$!dbTP9&~`hi}p zp3f0>WQTj+qB)d0`|lktP{Z#oB7zDYESJg&hi1JjLl`@qle%R-fy+PGU0dtRlxeT{ z!N&I^J9n_hygw@#Wf4_sb$*d$|Ihsvux<~q$@ii+u@3V+G{~`W0LmYd=Xq8aPTsr^vOVRxIuLTzAMK#4V>Ypt^F3)`gHg6GrKIivFE}xWKlcOr7ra)=hnhmEi}VGuY%z7V;EMn^``_IphSqF#39z%Xe5m}rvU3@q zY(V$3(bjCIN|tQz!w4WGKrg(2G8B|H{q4^cqzNwp=aI+Yr*AWr=d#bqLCUDIhDL01 z^7y381bkmd_&=T~2OefTffMGu2%SD%M@ z5Ecm-?BBwsYC;+@dwY8so=ayBNd4v8a-vb7RysUdB6p5#c=VO%6^AO{=+M|slYaoF z?7;s8-23-%`ab~B|H>Qr65jWhjenN$dgZ_~G*NHP`;2d0W;8FpNv?(W7l|}`P8AnL z3)XMEB3!+7c2cqO)ify1CkKn=y__|au^>XN-sw}jLg(N=XIB~snp+g zq{r%?rs#6+v6QYyXrl1?e8e125KUy0exI66zq;*xK6rKhs>jjx!jR`mo)WIyBs?-Q zW^8T2nO=Nz>W6T-sU~?S+F1`bbdAy(n+l_!98=p3f>XB_G=J6u9W5$d6>-J?`Jgsv-Pp=U%Z<$abx0zm}4eLK+tC`-5czwq%Y`-Pgqc1kD zXqhe{#7S7a^{_j+*vgXdccWI`HEF`Dy zDhPi{Ir^=bKlu)zLdL>dP2}5#``ST3#T*{ot;U&ng-;T)H=LcRMv*isH ziyn*+AZF;HEl;LuJZzk%?Z#5pD4Zh(EAEjBco)tgP`1X+w^nLJ|_v-Z`TxHQVMoi|;M(Z>@|_?eELt?&u|bJj6|mRxu$e6Upa??~jy|V#Otb zQ7stB$isVQ%D^jRY9nm;-B_OgR@}4ooWc;RyuKEU{{^2jzwgc9V=1g=!pOvz<`LI< zjT8F|I@uDP1NSP94lS((JX2idk0M>;wVL(jg7hmq*-+>-_#gEgti3>4UZt=loZO~k z?MtrrxeJ+?%=w6#&uvetbBKb6I@c4P04YM+Zxzkmpj2*`+_n}uzzo~Be0N-AJGw_w zdsVmZjnUMf9sR@0kM8^55NyUw-27%Y<6s1_**jxlMH#X5RZCJ zZ!g@`z2kxoA_&#tsGBvf^-rwH$0PxTs-JH0XL-sn4er-S$CKYoU#)k>s2;Ny2$9L`>vP3Lv%>Z4fAE3i z?hh?&K5VYj+B|G}54F-}-(3f{$ktE4zrEz|XsL~;yoFZl7#sAQcGA7%BUC=QRzd1m z=}gJ-5`$|R%VeM&-8;N(zZe(_FE?5ZdS5GvW3ts6;+nM?s<#Gr<#6@8!?7^hZ>7+xz2w3J})0aU944LQd(u4aPEZ=%Gy+F%jfdN{V%4wqv+h&{O3ZJ|HZoq z+>{{=ed+e_bGJ#tTVua&jIOfpb#hqdQIT*IPc!&_eO@P!`+?6dvdP^z)u?V>ZBn z-P-`%?=a!~+i&GfQ1toV3fcaZlz)x=p21+P|2IYMUn%%cMW6qfrTqVWqpl2ug-qqS zP^Hqbd;hoX*?-wW|KHyHI8~VS0{6Mjl-+^B?uz`MWibBVlOcTb`D-?nNWPJCq3Kb* zcTfKrFSUJ@&i{m0OATSe(&6~r`+wt{AMW45o_|l>{BjVCrx|9JvD;@)dy^XB4$@*Y zo8|2@7QH+F*oxVq^WUaMs-5#5{2c+|^?H|_q3-2V)V=X*#bwEKua6Y0?8h{UlrQQO zd->@=B`>q*^h1__f8zB&9sGahn*Pgn>XgC1CdT5^?m{4c@(l%wv*QY7)q!FT@zo&HMeSJ3}Hy$_Ui)nVy&`&6dYx*_A7R(pOz|x;7BXh#!dkvtu#+8ggx~p)> zc2p|&b;!NTOW{RS&&KY(p%dprrP|r-T0oISV!Ph^oYvB%6 zx*8(_87=ymdtw4+<6K|*Fo)&Rn-73<@k(wv3_lI8b1~4(tZp)56GJ9?CuY+(gQhF2 ztA}Zm3fpXNQ3i+L$*tVm7qy9dC`OT|iKnEz>H_l+{EHrJ5R8KXszgE~=JbtkKqZ=7 zBqOJjj~<0wOTV7>q;SiXd9|lWPf>?~r+Q%$Vph;1`No9EP`N9xbflq^N?b_@p-B{F zLu9D-vm+}bCFgpOxfNXz@X<_oEdsiY6V zYLkaEwpS^sh%8uHi|&mSh-%Ad%o>=!&~z7vp+=W*mFj-kCDK%Pl{B4Cdhn?=_KlU? zVPa-2Yg5ZmcIz&oNwU=~0rBH+^=0|*0)SwYkpX6X?jmB1k-^5ER&Zg(zaw_NV?QI+ z@J`|+HO0KD+KoBld|xOiO)7`|3^2+<&oNKtA_|A=5dt4h z!n8*mx_h75#MWA^LTG&VmQ%j;4^}!^LLlGG=SRAL+anP|$!FMzN8^h?RE~RmBozN? zw5gp2gQ30@_L1v*<$?k>G$1iCF^nhXU2nE|3@GDO_7}zOzQE_X^89I7 zC`69AF{2UPa4R~Rt;$$YL(@+?$K+Splw#V$&zN7o0yY`fh-IY@a$304XfFSH+}5r` zU)ijq=PZet)(;_}F3Pzx6RO51uwt(G5RW!(mWoH?+iLg%MKz8N@sjr@2W&-vblAX<08{tS?$A%5mR$&Mg|Ieq$ioyH-AYHhsWi#w9QVOD7F>PYj2L`pD-RYFHZwPOvSRClT&X}y%g78BXqy&m zSO}EV)EtIOQnAO$mXk1UygvB2z`(Ysw|l4DW8WYCH?yxS7Op@{6BsKklp70Q zH_LR=ry-!E7Vb0O8#QPe{YB=Y+&a5put*`piIbHlh@5-BGeu*YX?fH%q1 zyfVKbkT-*KAg2kR3g)?f{W_J~pSOK|%8{)kWMn4X33BC}37tXdIl}FbOV62p>=C5~ z!m3fC&3T5_X^umtLJrOr8c~wpgyvi>s5opE6OEE;OX< zcnJ`F3Awez>ttz*K)C2;vgAsW|q@DHNm6>DIh*o42RGtbVKJsP}_0EV!~3yq*Zi} z?N;avSyI6Do5S8Y^S0DJp2mhcb5AVIjZvltw@w_E-Lz%Qq7Yq}y{Q>p{wF~tbZadN z{)ypfX#$(=@gMx8-XKYYi??Ex*5u~Jh~+UVfymQCVE z8FA=>L~td>8#!#{y)$g;vp3=Y_34Ra|C1nxz4eJ0Jr9OQk1`N(lFhi>#l`*<^ZD@X zc_b_Dy#n^-Guew5yPi(dKJVvbXtVX#oon&~isChsErdX5b@P^*(TEN8Dj0)|mWnL3TO{xd%C)|vr;plHD#ovI2BdTa5<+iC zwI7%H1ec{pdrJvZ|USoHcH9#oJ zB?tL(BVOh{bN3y~cw&-v9R?edj*_y;^ZllqMJN-?C##f4qL8^rH1?VVMdH2eTfOy4 zlUQNkzFosNl}i%xN8)SzxIil!F&pP+saT5JHc}MTqpqoqGX&YFJ8tRlB#sBxSfMH` zGh_bJ=lQFjR0-r4p4r&r3L}$ZJC`albcLVe(cDHllR|xl3x{rgF8=lQCWV5{F3)%d z?k=&7+hTH2ndfB>qfjM%waBhI%XDwSKY;3s8b-6(Ss{t8g1Ha-=(pdw*D@ynEksuJia$n+hhyOF;Jk zS!cQbzMVDt+RvHySA(#1qEL(J%Z5iaB=#H+7x>pB^w?IhJkw%`OqGX?SMPrL)fzCZ z`gr!e9H#63pS2Pp)~Zb-*Xe{%V@`SFySS?ufweC2mnm7gtU%CcZQbn0uioTS<`J90 zWK*dHtgvN8f(qduhbleLDv(!HR}Ijzv|G4;5C?;CJ$trYh+K{MBJ+;Uwb!@T9J#Fx z7vmM}qt5Xahhm0+>Hcevb3L!uz2&R~Z)+aXLv)K~$oy|rm|^b}RQwVLQ!t#IkV zH{gO~4GdG6xFEfk9Qq3zDLSZNq|(d1wye104NUb|%~7HNG|%Gx)pW+6dWlB|w$wtS zg|=#K`p_{d*b}0{!}dCyr9U_Og<0AQ2QEq8Pg@F$xTnV-oQyA-<^qIS<9i_Xn8tU0 za-PoDb-dVkrbd^mGXDfu>d#iKgBNbM;VcwwyE~HC%TG6nCinUf=e53gmH6twa$~;! z#^wrnu*`a0ezcC)PE+e@0A_(3iZ}M)b7Z8`MG@uxav5l6FQ_Em`HVmu?5yBlySC7i z)=*~N4{QwRe|!0|6`)WaNEHNt4lN#;$#PH>j1|PMk>#khqyO- z9yy7~J3I4Z=V^S8-}rX5)(KJ8f5>XbS#s6MBGOcp4Ld(x;_W}R`V5U3PoP3nQC2KP z&)i25hPOoQM>Eu-B_3(CGj*(LwTCkxw5UdYyuMzpN}|a$5XKloNDmWJ_Z1u9m~0Gv z-tITMiqULOP88x2Ihk9=FtH-6Emp_jRl?{pyR^k{S&^{rW^07}C z-;2w`Dj$*yT(Y}DbLv#4Cu@CHhmn9Ds+$>#NJd{q-*nG{cvVnT}P&sdlgAj0%VQ1 za`4K_MWRV{YnW)723Z*&S?ZhjSIB9b70GkWlDpnN65BCTI&k15@6`1wq0h7Vu*rbd zKiqAQa|1v+%7yvR^It@wI&k9fE=hv$Ogr-S$x?-3%4=vB?g< z(z~}4fJO1)XRDQT#M}ighm_K1(8RX9=5yjHE878j8O(|`d#up#ow+8DSer>E}~a9DN{FC|>==lVm- zmC#@Ko7v*V;L0=B*8|O;(k?^pz(7GARBiRqGBm#El{!$GkC;Tm$ClnsDb4v-qlD4N z!yD@-)-~HRZ9O~Mtnu*u7!~V5Ld%?1*xeQ>G;aG2ml6}vq|c*(N&*gvcEn1aLNMLF zB~D_k?nm_}aVRTAqFsYP>DFN=jjjlracxfVplzq$7NpGk6ZM52slYL>x>voVdb;Wd zv3)BP^?buB^ONgawLxo$XMMOL5n^Zy12?L9dF(K%PVul1zUeQoek-@YLRvI*+x!qX zn8d=o!^c3sZ}NjJD(#KY_g-+~2ivf-ke%Xv47@VXlhqVV0h(MLfwKZ?#;|}e(UmS9 zcR?sjl`ccD!)EgvOq^X^vm%A_$8xSzNIAEhfCY)zQbVl-sL3Mxq0pA`(bR=F1ZIy5G`_01PvZ=-fp3=u&J8pqF7|CK@4M2SB5XY z{5HXmLiNEVJbu`p&~WSFFk0#x?@Cu>q$Rgi{zg*A)r7i&0&BgCB7OP?TMmmNcwiOL z2n1_P`;5ain$r?ISck`OiSb8rHgC}7mf}7eXPWG80=hB?1lON~=3xJd-pj?8XysL5 z>KZDfsHt1*4A59r1p}w_Vfe$JeFM}lExa%EFC|m36`fG7AS1PwwS<>bwB{xP#YLC+ zT@I2jVKIcymqdZV6@syQl0-_L{)c#0R)d&SA_+CziS0n-w#t-p7kr%cjxY4XuU(B( z7n-UZkADD+sqj9XEO4vl>wWpSta*3eUxhb)Q6mssaN2((58cy!<)()foBTM78@O6! zP+_BN|6OvY+BA7+NQ|dL9;tJz>U!fZ;5jfdGcN=C7td`y0y>Ql49ZF$IBT@eL}I}ZB|T61ZZxIDf4fp0%j6&B7_ z2U@ItkMqURJ||Z3W2h0t=vt@&5%DcQ{ECRZB&4a-L8YG1mm-SrMc_qhjiFct9%=Y>7fdt4b^z9C=G^jM4q9zwuD zwP^1!Zj068`cAdDq*_5wp^B>x3S53Xu#6|`uB&XAbTp9Qf4D!|-913*8~ zDLd3whV*@cgM$kk@_L(H5z=vjz00?bRuAvS&2{sRuI}2D&eyHMEBOS0u~Xr)0&%F` zQj6D4cW;B6>gm`|YRJ1_leI7O^QEo@T8?!$DuqiWDf7lxtyt zs(_{@(MT?j_Ftu)HXmE3lvI^SZz~&=D33ig}G$ULIeUD0J1ClLM8d9ht>L@9~3+``A^u8hk3c^$Tfyf z@=gh&59LW*Fb8_b*CJ5~4}F9cC3r8UMuALed`$Wi8#?C0#<%MwN7(y}fA0%PyMPxP5P7G-d_61R@%>>_4S`tDLg?evinta z4k{BJFTE|9D&(&dy7(sbG#3_AnvY1$8J!|}OJd5y5LEifD}zi(qCi;l=JEITQcEU9 zkeQ7S&+FR~)iW>Jv(qjU3Y(In@Bi`sD(#naW&;Bg$DF7B*J&8XEXF5-M4OrJ@?A`Y zo%%yDc_q#;0=`Q(b+*m19@WqQ$WSxLWOh!8`OP6~GqKdJ(%*Pj$=)qAK(qvaT`&z9 z89X{I5WeXL7@KM!+;ZpssIxUsw(bjtvlgDt_5qL}Jv+<{{>#dRG&hBQxELyMJ_Cu; z2M?UYLE6Ug)xUNM{quRU2t7M~D1Dv>Bo9FE{Dzwr0tWJc z58{iMpr$CT+qa0NZDKMs) zaRGwv$T+%+pOXCiNS0n@Oz3v2O=W`YHt2zTPK*y#_oV_2o;fMM49z!b0XHs^_!i=w z79w*})JeN}6A z$5dmN-jA2jKR98-;{39*cH*LwZOXMAcb4~?mzzOy#VAG1Cw+*)yXX?cG$l2Jy4TPR zQ!g4E{rU49YVyavU$qJv{BK$!+6S4~*lf3=S)c)cg2k)Zyp$ntFI~Z-iDvQnSWgYI z+KipOq#M=8KQC`3SbX~t{zX#fbXse)?zLp3&eP{E$XfO8X zzRCjolh)7RyN6pUU>S?1pR(hn&&~wVSVw;T)jnz`{v>aL$dkuB%{i11v(9%s-eT>D zgq;#NYfX) zW)uFLD(qkBeAN$ewgcr$`kpIX+V%Tc6$;63+dDe$3C-@%n;AFk!+n9@UIi#`M^O@c ztEe1oFAn$5IB@MpU78S})bMz4^y3dt);^H+tE(xDo(TLD-Rbh(syY3z2BWgK&`Vcu zXdrEb^!F}24S6+0?Y_ECp6q$-msK4Gkn{V469|jZvn6I&`8$V`^$tE1F%`1CH^T>YbI1 zT5qoyTk9K&iHn=Fm|lMZrWN}rb&1%L_?>SrQ1i?c_#v@E=P1CF!R=LdI z0~fbXFe-woe7v%p- zmIG0mFCo&=VRLhHdO)$r;z6CV%7I|zyynsJFi=O+jzk*YmW~cBTw5OQqnW6X<$-AW zO&TDy_Pms!Z8~`Ut{?}{+)sBo%S4{4<#D}kx=~5m zt1vh$e@za+>5m5@KG$hVN=wU=pWh#Y3_FLHzMs*vet?t#@~p{JKvqGX3BO%!W2=&%m$iX1B1=83U5Yup=)ytXcu-Ct$Wsim~VLdu2w zh#hAl97DPe`M=18 zV9Bf(P^ELfkzhiJ89sx0uErS{IKP4_IGs@$>uvIL|;>f7s1OIVYzHTL$O{8~O z;@&9~fL{&O5pv2oq}UnVVrvobF0+UtoE)(%3ir7@^IS5foy)U}5*|4nOL7!EIW@Vt zwS^_$xPJiJhTpxsa)Ak>Tf8|&>cB^F^xeN2d7)$}J>}rzkKqZmW?NF*HS!l%tsWu=4u+~*RBxnC|+ZqEdLKT<|wCi$DHshv1 zB!J)Xn4OpbVYtK2viojrl=CxD3h2Yv-bFuXH<|E{^l9U=Tk79wVZ>8rEK6f*sTvoY z+9p^=#LL)-fdT#)No|IuUS3+gVx~*(9@{hfb@}(i?#H<5B6@P|-s)#1-K7)#3SiQf zQtCD-De3FVIdYQa@g$Yq_rUfqFI&MIrU|@b?8A{9r6pxohY;#+nRkL$TmSM-A7tv+ zV#WABPv*A+W^GeFHCUsUv1@u}=7?@Z7@jTfqC$Mz;?r8rRG<;b3|E@T7!JEMSTs~Z zWvx>>_=ex3-UG+}qHZ0Fj7fR)xm8V$WrZ6>DuKv2IK#B}kn0l1bM(!(?4T+jfZ&YqpA zL{Pw*&4ahJlA-gi#_*FPn7SUr$)JVnkb+4x`~f|1XL?G?+K5UXHI{8Vt-Q8=F!ly) z`|jefO4n5e28QrR%flu@pr)LhOacM|0C%d&5;?D`SwHFs8(}xhldIeu+kUVEH6S#BRRRK!!Id{ zW8I{VSob?$K2Tw@j7&g(UC7-$NCEP(c(eq({Vr)4J-rbSPD^~&*UtA}0b8o#qW1nh5q-@;`q)`|Ue@iFwG1=UD36WGDyC3RGV7BYW??!Ds?io>KUtdzYRH<4oXd;KKYi_x^3 zYPj8e`%9~>xx@|XLbi$I_>s9E+gE)HP1*qP4n&W=lv{B`MX3itn%-T6yrJ*yDGbop zy3AhCCOS3-VOTm?(`8i$)8=3uORULSYbYZvP$2W%o@Xs$MhJ)iv&8P=`F_x@w=a6{ z+qV(vbhCoKqKS0a9cwWZ!I6bPu*+sRF|n~0(Vwt5`V6`6z0uFEC#o5$)h_~z@2>~& zc$o)ym_W*K91o|OgKyfkT2v9fUEid4(n3cEZzlWF9R?+!0wq;c+VstDkx{ouSbw7Z63117)d=aZWSs|;5q&4kkV zKeP_WEUoPiey~&3JrqXI(8#vleVkG)1+KV7FsZ>R} zBjeARyCbYevTU zY@18z9;P!L-d-U?b6db!?tN`z+hb}QhyN_c-8t-wgIJH`6swm@xXy+;-h>l>inqxz z7(c(~5e`_Skjw$YSQYdq#Kk$=j=)D)GOnO*h8ILI&C1Fs?4q@=KpK?Q3U&B^GeaY0 zWRx*%Rk-UL_Ecu864>9e>oC%pP5*#^08owm%b^WS9ksQ!UF7TgXPzZBH{&eIV7;e} zxCH6(_$!;K#Cd5DyEIe@L ze_#8auGGg-t}4mhwxH|k?&3dwyl3e<3r-;rxv$NkPl6&wzaU>KF_Xy{iMjdjth^ij z`z+g!E=i9^ba5n^52ab|8RHYpnk5uie-di3KEI#`-$J;Ln_dDYM5>hB;3`hmtV%L= zw;=Yj3n)feQxJEUoL@J8nTt9wc;(e~_WQN9!Obf~P!cp_kYt6DZ{MJeErqBU@GQZh zC84-f8c&khw_?v^W8J=?;W{518!!|qjvk?8Vz&C}`OnA`8UVy*IJEmLaF^sT0gl!wXS`Q=b@!C#_{ivF-bmqXk&A3F4@Nb7;s#kaYte}FvWyF z7o1E4`9YA_y%spK0^DdIOkh-4PYzqlc19Yn+>1`|J_6s^4kB1|UzkIcxYFma71m!? zx2ZC(**yvvXW5GJ^dk!U)&ULhQ zbVNM9P6L$n87HUZb}SlBZP6KD?hCpdzbhKCnStn5YwkJ#Uh;u`E)X}mjV6CZ$-|Up zqARo!=_PrHQP=?irP)skT}P}UO=F+B9w`)9eh_YP3bPhsevuzgxr3O!)?-Jf+yhK2 zdXwufb9Fod&l=vG*_^AXsWEQH1ciQ-k(MSw8AzL`MN@J{#KmD-KimX?BPjAi0|o|! zPrqJq$iinbJ+`YhOHOiwnp;+2Bl0GNk=mqldQ7qFnC85b4G3xbJ#8V7r#a_#=;tn` zkB)8ss2y1R8+18Sk~%XpHlf*a-Z{KhELQrgBnGYOc?d)Z6;pmrzSU0(XE6HTvjAR@ z5zYqcy~_?&hg8G$KJ_aCE_?R{H+KY>3aLC`)|I>t+W{_};FTVCkU|0i+USG?PYayv zfy>Iw#%5;!0&{-y%g-QF@Ve3zep2gV2Y_DRc_s=hVL;(K5ftPIG8!Afq7BzUdMB9n zG5Y!y+P{*#8e&*{+AViLUwwh}*P-1`HeL-SJp)~B%7-0L(qE#?2*#00OH1yAgmu=d zwpTE@B9!Ez?{+IS9KD;-Il0f$*tzN#45cQ~!casfjfR3DpViGw$jECTXRG zb#&wdhJT`RPM}13Zpra9{az{YgW?_Wk}KUWcN+tZA2%qUz5-&Y_g?yp#^;fEi--5j zhgK6EBRw^|87r{?PeKa#-K?dS(NTkpGUWcR^@-uf-R-cuBxeUuhMI_XDv zMc++c`=^3Sq=h!Dr?N6D>4~q~K@zE6%zY7?<$#HXneMkvg&^an4!{$SMitiCiPnc{ z-Yw61mM%E3VozN?u6*~4MnUvnlBP%DL_`xoeX-8gAe`TB^${ut!90a6mHSjDEdeF( z*X2$gfHw1?;c4%OK1H?eW?rKihl3%u_CoD?Jw3$_Y&Zv-yPT#vAmj7883PC3Y7VJC z0I{aK$GA#K%CsGCG^_gp5Rc7KzmH@>`$dldc4$i;5Det2p@B*OSUN;qg`~z=VTv1O z99rFrA`*R(AmH9F0VA-$0gCi#GwqJ+&ofo1I!+SYJf+aRovg~$RlW=CfYLgQ^I(Gy z1eDJFN!>yxKZAKfKhsEASftF6326hHjwx$Z$)cyDw}3xJjva%PhoPaNQMbkB=UjDy zTItokom)T#z+WSt#{kgQ7Z*SsN0B8AuuZzXOu`HJBv=*#)X!rQdX`cl#R{pLG z6`!!UYRu&g{$9&plvS&rqO06kl)n^3K19gWF0R3}!@=}Uk1EKN04Yk>hZc7Gkyq=m zu6UAw^ve3M_~smt=FFm+5x|H2w>t7esNF#6l6YX!W>c(uS*}cB4{U%l_rMHB>13SFXp1(St6sfNm z28;?y<1`+D(^kEbv$FCZ9Tm(&F}61k4({!&j4U0P0&j-T2tXeg#%_=S8FFdqpt?a&W-9L;t?@ zQaR9ZOXD8+wS;E;F%5=L-$4(&>THg1z_i{$>UyUr@$CQlp!P;qMML8^m=f4(~M(Ak1D?M@uSO$T1?oHgc{jAfJQ@@W~Z@rI5k>Be@>?_=*k;^MC2bXpgP$r$H zx!S{b@6gSkdg(jIK@Nq?F<+~eUzkFDxD_0wWO&-Ao~ z)62j>kfaAPNyeXqbe$WpuW6s*2gd6VA*wdmbF#&9gCN-ZX#m^)nDW%lMTi~0mct=< zk=4}3a@TM_gK%N+J=9K8NrZt?vo&e+YsOH0)7#LfW|EZbfVQvmY>bmr{Hw#rqPCU7 z-4YN^$0sDjuumCHJj?Fqb8k~+aatFc%hVG&-ivg3p;X#dP3ai{U=$c+bIHFgdg5-VY72uC0Q*V zi6-|y9$&2aKCL8#yA;&TqxmtP2+ic_q=4HWN_wl~2;8=Etg2Ub-yV438IQ~1*jpV% z#8kq=A{lqh%}wQc6*pf(K=PO7Q9WA~;G{1AYl2RSbj0@L$?vHiOD_+u0Mq-~r>KaE z->GqZ0%Wr2L{f@0OLxX!5;uoZ3L6{v`(h za6yjW8dEGv_0?qz2Z{)Sb|GlN^l1t0z;YclI*a!ib9R17$!1SDEz55y@G>SB?Q#z+Na0}G z^Z|V+kp2Kwn=m%)l+aLtz7NQIfaLVZbEUgUzb#p%OpP2?`)VWULG{Ov@@-ylA!@u2 z_`Q7>>8lj~09snZtK_pCC(^|u`}@lBTJ4b_Jr$!3g1f2|=XVfDwwz{_!wg6Q`x1tS zhl8oWaboCC=FX8+V5HpysUn}cvj*@w1?F&gGH1?K{13|B0;tOGYa7N!QA$FQ5KvM; zLOPU|lx|R3kOpZmK#)f14(XESkP6Zz-5_x2K6HQU=>PlAJI_1w&OG-xKSzI@<9+XY z@3pUWUDsNhu}vl|!N9ugZKhNS5bs$K|&S=4lNT=uK%h1)F+|AaX2Z zWXA4PEj9NJQz%nXKbMR&1_833%ZoYw)FT$dD6wMU>{^9?M|_7S`4Z~bpL z8U6G*V{yoN-J+tQ(lLoAEqxEo3dcM#kIsS{y--@YMg1i^`|!#Y_{B7V3*)>eExX3f zBrsuC>caHk8uZ9Z4W9=*jqyxr|AWo@N3QT!UG{l49{-fsr;qA^2tB^AG!w{&Ju!|S7m3ve(>y-FYWy1HP7-tCa@i9!DpOFbEh9p{*kEy5#SZ)*< zZ&GK!xX2@oH`B&4U&1m0NjZ8YLvruG_vF74@WeDG^GJ=>qK>HH`I z)248Sh-NE=FCYNw4^&??2WMty)A?m*_cS_#v1bmWyVB{nXiv-)SrQWxl5~|fPYTu` z%wD~+lRUssS*N#!bKM-TP_qFuyu$HI*#U1_(w$jxTtr5NY2pS3beO0kRYB8d8@@34(o=d=+IbyHNBjq>=giFh~}tz2E9Z02h^ka zIv7-DH2jy=b9PwOadg>DfrJLI5rHrWB8w1&+SYW#pH;^o%Pl40U4h!Ls6{1T4ZImB zt-LsWqZK5vbka zEywo6Qb&>6esWpNEkLIrTzTW7L`MQ39UI+(*jkF5OY^Y0hQY1XTE}-(M~ss$l(g0v z#Up}=C;5tH#8VxT*#evRO~SNHs!g1;E$Y;>lGekiDH3R6+ivPAq@<5rDmKp-L4PhZmz^1Y` zS$cvb3O}>%_y|pZTUKvPmKH_)d+Z?S==8~x07H}&>`^PyAwIZc+)J>y`3dr*48iu`#)Nu4^s+Va%J z!t^OvCFYs5AbRYy*Ghujpq+)z34|@w++T`C8`u_SZ%CBK0S*FO7ko1eX*-CFEG$o~ ze_*Wjc_d=7*dw$-Ap;HtVAKI<=OfLq?zCX)F}(^^`&}E1{!@ji0to1J{w#we+dbJT zMOE|myhFJf_b7kxS=BCyJ4bOo zN?UjAn6m|KFxJ+qC3_&p8!aCjvLk=OtQd9GFV)o3EE3fnT(TF0Y-UYoAg3xm1{kO{ zm|z|qT`A}M8S(k&7p);g!qQ1QUqh~rPAq0Nt+As{E}))FKjUNkz)VR= z(O-SL#zLb>x$ieem|}O(!uY{;Y^rVYSo4=2K2eAERq*tc7``A+SB*daIVD^#%)r1< zId`h3BIc}mUZ-8*U=u7d6``j3$=iGPXs7kkkU(0nB#CmON^Cxr7bqmqmf?t=6WfQH zp4DaqRbCPZO1`(8NrqfJvK=NWFD#I+8`57(g^*1kt=28KG0w>lRZS#(`BLQE4n!J1 z5B{sQN~I|YG9DLE%$`~u*ER8@vR3<4&vOsdERecrd49@nuD!lqIHM1`{u=1(Bh?9I zE%W!Q!$HX$9K=^369EQ93o@q&oBrdVIkep9Zc7Rqs}IN>Wbx9cKWjJ4-mUfTY)o~p zd^qZx`%V&gRt_6wSJ$8i0)cP_(RuPB#!DIK3JfpfD)t?~l`aLJ6ORrPKq^k|oa>k0 z>}Lo!^<>_N=hy;}3d@T~uxb$`99Y0d2p-$3`EehXpLD8rZG{y(W_c*~Wi%7tdJ`Ej zX}p;4P7Bahoi`$Go@Jl+b`W!M`Bw$ z+P*OU38LV73nmiX=3h;3!Kzbak~*b})(JusKE$Qv?xyS@#1$3w!3$&;2#nZ-r5tOj798p8!1)Lj@D@^A%fevQnVPcx?LHn9!RXl$= z24pAPl(>O~WmH-Om}w!w&eBd`TH|G(kknCupOovbqE@|UA-@XuXvJgd;vMa?b06D^ z#g_Mub#7>KIJ_Q6_avPlkUYh!+pF9bQ(wpzK2eRYbJMXMyF7w{9#1PK&Xw$lD60d< zDyxOolZQxo|I|Jr31nN%1oiwmpLQ-?rN!&;kkHO-PIUEc*Ug`K-J0>1qFHm11@3fg z{EwP#S{;dlRJ>7h;lXE?8%LX|JcO)46qP!z!q+>c5VBD+3+uW%~5gwTDZ zPa1hzr0wf5@2zJ`ie`cH)*kybu)6eH04hF8dxbhvEwdaBK5%K&h6OllBi>`~7=h z23bvRaoN<^ID+(X5p2=QH}-Q*TAg26rAf$ErHs?ge-9vieWps`>E?2hoDZY_2}gI- z@b0fatkYXht_Fk&9ja}gc=`lar^r-Uo%y9KC+3`0RnL4{E~Nd~?A5#>wDn?Fk&kT! z@j7?-7YhkS7Y5S{&j+Fk*F3o&rW6^P_+Zu5TE}URmupAWExD|v_q(36Y~j#`y`c1B z5H;@B@_2hQU@J_w=*WsPTZ_ZYMvn)p$+0SKUqRxE-#?DK>vZ9^Hy{v@M$6iH$Ua`h zCIxO4l94$_DNy8~0gG*~#C@(WOHD(1R(a*8wxKZ)!Fd?eRn@{(6o8OLKK4Vak(h;` z#4THX&ct>X9QpnV(m2@GceIj9${Zg()tn=EE|_H%r{Ku<1i0qk#9Ud&_Iac-srPU& z9)AFRB$Tij#(2G)qhbbcCl>QyYgm0&Fx`ztd*hNmWom?P^04R}l54&&Y zm*b=BAiS@@55fe%$fNw=hG|Ji*iquB8=5#B)7CO_(tQkhgG_*@g@im0zP}Ro_3mcI z7k;FJ>b3Jv(1FYv-U5tDEx2$1QjXrJf|;xABe+pp&c@EZ0$K&~X%x&}42?WhjUiRn zUf55gCl&{Ky8dNNB4@g2igxG*H|oyFnJcYqzXuEO;=K9?)_F6JFfbfqPY>ciVWKRR zPaKV4|LPeGMga@pK>y=13cQEA{8v)7hWo$EZVV}mckS%^QRUNpJz5l>k9-y)T}EHc z&Tis+4v#Jk%S31ViclpH{N`OjS2LlNQ{q`kMFX`*%$eKf9rIs3`{OKlJ>7rmTu9i} zX)`@8oLGzF5ypfBd}GVjAquDh*hipB-gJNgk^6Zg6l^O(wmU6AFXZivO5~`v>gRxd zd;plj_8@2P`B_U3wQW0qgN(F{jjq-nPlCkL15(6Ht{Z($MQb7?E$OGH$>7KOB8xxZ zJ#x|Q8q#nHa67ZJb5>ksuIJ^cS#xu=L(-P%PV_hMO?g0w2TR;8MKJ}=CK(o52an~n z(5ys0JY-{MlosOV33v9*!3?WatlvY%U+5N-$vu~C9g6j6RT6QpG|l9 zAIrGu6g|h>igoo&EkMP(*5MxCQ#ieh@tXm%rKRD*)b=^HXcRMkOQ z-~RVe-q6}Q`ar9YZ$gSq%pUTWG49B|V?5hKY}Qv|<+r;mqogqrE;`Bb?pq*&(>~x< zR8%aXR>+A&~-yz3thuRfcjtXj-p8V22?y&|z!` zW=9E?x>IKMs9X7+z`m5U<^H5p`b@jf`8Acl#1oy8!Ll*!gd*0CIcx3&NF{312f#T4 z(9fdK*}aF6=Ygmzy?L}b?GX|2F*s#EPgJ)0y%hF^Fqy?)+`NW9OY;2Jz3+=Mv~YShZ8t< zU=p!X{&KRA2UIUKO$0mPt+OFP4++3G?=TwswKWAzx)YB3DEiNm+M_dob#Ua3hn=ei z)Pi8cj+>g!d z-mFA9yQnfKgqKkz;oF{_sP0V;O}{>sw`kE=uC}m3gNB-LX08gMgO#51gk{~f0mGC@ zO~Qw@5i1)))UGYmh)5;O39UC<%6fnxb)BJQm06qmyeV# z@fM3(bO>JtCHPzQ{-i6rNf&`IbaFS_eYT8?Pvk`9Sq4s>f2yMQ>MZc*)AU?l$}-Y-i?rDajp=!}8!{`wwR zszCe=3QP#GIz;LvTB&S{rZq>Ny zv!U^X1LoM-_|7x$QtdJ(cw9BVz54qzKTJQw2mfkzC@FnS?e#)to}qYd49oaag}L%K z6kWP>?XhdrvLF}22Y1Hl`E!q-&j$EJ{(ZSA8yE?A9sPp+0^r1m8r&K6>B1NLpWDx@ z{BWP3@Koq% z{{aego|wtr6S{g`Lrpu8052<4XA^F zD~YEB$*?0G@d$cayhUh_jEwlrum_0xLUESQr%#+SZEU0?U>E>@(&*YA7&HXGu=bhG z-UkuXekXIx_h0K@5Ky=AibqcBu~@u(d?-NcgStjI_#@{Lk^k5lXS9s2M0Pd_5z+jX z(}`||<&d^O$?qjM$gPDj!7<(xYb7Twzu~ym2s@h92a`<`;2yyGT@uZV{r4VY!W|iU z#tFo-GBbxOYz$OY2fc}P(RIbpy2rkxQv&|eYKY>?|7HmyJEV?4xZGnZa&?sRc=im0 zu9!WIzhCoXgmQQmZX}yVJ^_8J!*4k62EjNY7Z#2?p8@UN>+AM_o}N{Z*%JI1qeO75 z4EPUk-!_24tc>9R$ZnI}x zsv+hSE5zAnGgrC-^ETDi;)^`w=m&YnF4o>p5zTFrvbQ~42sK({T4SL&LMPVL`5U%~ zAX0&pDce6k-b2KiqK29T*iV5D)taY)I|57vlDsMu+r#~Vq=@!|VFIDNFmBgHIKWd6 z!81I%aZw@Ft$_X`A*EM!ZmnXjF+4U{X#w>pVzR>2gMg2=Y=S+fz^;@-bkY)t8}Qf7 zt@79z-l4qY4@PFUvB#k3)b2{;-(eHQVnc@8*=?7Me_Quyi{eQIGb(EEJt=r8!SQnU z+ryRO+O4L0MS?5P`r7am4`jSa=Y>|AhhI|YYOyf5POOfbSU53d39`DOnf>(T>2>68^%4RF+j zo;a^n?gB}(2<~xEnb0(yAoF^w^EMIzlW+qnR)EbchQtz5D(fF;wk$iaU;SW}>Tdew z#Vlueb0I5`2+a#>XefW;wTQG@i?*v?bOvWLT-+Zo^HD&b9INUrab@LxU=ZNUhANL! zXa%9NHc_QEPo16J)YQ~QjdkNj1hbCI!RD*tRswQM0h@YB!IC;54&ZiRu_MdZ zKTTK$fBsDW=+PTd>-*iZtAiGERg61hb7@HRVDY}TtQO4&qoU*r3nJjNjsRCLAl@a4 z;z_Q*;rJc9G*-V!JeyG)7E3km-Mh}mYY_PS{Lz;Ynd;vn%d^b}oT^}o$A$wmLKTN z&&>srd6we}r_<{0D#`nh;y|PD#c~0le=_X0{?Vk7tRWkdqvT+;O^}V{oN#U?124_R zrp|q6IR+Q585{HXF@a);hlCEus zUKn7G$~&I zu<->)xurbTf8GrtNO*G6VCjuA`!s}xMX3*G-epD!gl?PfxKS(@cXNe@$A@eO@8CVR zXa+eLG_@wy(myq7`Pzp)5)^sb2o(J0zFOF946zYPxF1UEmWhj#TaHZ`D0*ebeSiBR z95=XC8E-UeytmBG&F#LLE*L4@w8uNSCg|)xin?9nZrLLFtB;HPjX2qi1z}aB*b<|9 z>)}FUYkOf~1Ux55;M+jYRkn=8`?&Ev2x_UYD9M4l?hu6n63|z!93(i!GkX1A2OMAO z-W&v>C_2W)c4-Qot4pk=%+aHaEG-kDxhTt=Ys$lCyMq0|CJAYlnn4Uhdx??%TvlC= zfF>|JM9qOx3gjCUwvuv~hK#KVzFm!q)3bx^xVn1$hEmvb2P{g0fi+I8865XoIQIwF z(dfBXgYK^MeMbm8XplD?FfsN`fU^xkpFlj}RqW3=p7>U5_{Jw;rg=OPx=Nd(86n%Gi-VqeW&2PRfyubQYbPhV786o36X_F?awEtAVS0$6wjzKThoFVqrX=0@|O#+{=s!60`6 zj=!1mf5OI?&UqJk%U*p6M;G_O>AXJz6jsh4!`!`0h=-i=a{q)Bu{> z7V7<@)3Q^v&v5bZdeWpLpUR=nCezT+xGzyTvEJLO)MxzhZ(Br@h(GpXWtJ0_@attT zMOJRE8=Sv2-x+ICJhF~hAgBDrQg>1W2PcRrD68DMe*JJe@tl95Fo5$RUmMf&dY#hL zW&wnaS{$alvTRx?EjE&j9^3X~EIQahtrOJ!X`=N|xPAn`T%bm|ChzRnTeSCQDb)mJ z;ZxR~d+ZUPp6MA$niN+RaTNKOF(AzP4sO3%!-_}zd}A>S$pk{bB_v~BAg_iLe4F5& z|3Ovp_X|tp0Qdz(hMhoD8uVc&6FzY2$;yzPNVMCfk$WO-04zf!-Y%wl9aQKui7!Ov^pBK%?Y zt2`I8=W%?WvG(g!$y|Vuy_lYQ;BYR@H3@c=T%Goow82UAHUWu0uVDH z64cVx9`EhEfbqA|mpYW;-#2K3xy{>M(7=o*>XKDH8xdgS`>r936NmTFl`Boq~Z)5W@xwfXN zsnY66tkWVw3h5Tox{Wi^V$|bFOC8?!1CerY)++1EG4`_(lRv%S zpr(wlZJ8tTf5^qPF*l@(vx!%7lzSxneN_BVu`XxQr2p!7Ov?2;+ZlXKC-j>nX^oAI zaDd^cyLZ0i+WV6e_}k|~bmE@WQ;y>2g27d@-L_>4&d!Kjshqmk6GK}9PhGjHC(}l+ z-o1dKd3`w;Ce6p?m=N51W61zT_*`8>tOQmo&36+st?oH*AJR__JpBf5+GRjytG85| z*xjYK%CRj|%WBKj5QMr&ugegN_#6|uKA@-7iQS&TQOHa-<0p9eoh#peB(hqARhO4{ z)X{Z_S;z98bMe`C2@{#2DILrn_@2IV7b>ug)%EBX^6$K?RP}4rFO-RnOIH!Qj^tI^ zklyBf3SR8kCkB;gIz?h*=@UW&Ibd=b{D`h9_~8q6L`{=hCjN~@7FuOPPVdFPi;Wp~ zyNJ4K>`PwoZ|p4;@d?m4Z(*VP{mJ9ow;hzlC)ErQp$F6H_wt7*zCtwsX-smUDmNF; zh;i{D&Hc5p(qeTep1yQ=80evRdQ9V^&>|rzw{GJh<+q3Fz(0#BpVFu?wwN8fN$%L3 zcpIM-D6o5+9`n02i_PERiDk*tZ(R+wfV*J6$1f?=$-r4AVre;f$ea<>;xB zMNb*!$7`PF4Z-l@M%T=$x(?~-TU!OHu@@7<=vdYnSoA8bLx(=YU)>SD2z?XLt>E8H z$0dFN_g>vtip8y%*S%ho=Zn;bl!qCstMPn}pO=l?Yg(2b2xH!LZec2@KKmqiJY2@4 zC4LkBiF;fY_`;%NZ@{73*^fdZ$#pkk-7eqt?CT|g+F?|hT0{v9 zWQ2=pgW;s+R{q;z`H>O5H;0Oglh3m%GM%=*M9v*Y>%G`Klc2axsc*n%FDr?OcTsA?7vS?XgWZ(%skL@{}uz2g08NvQ|=2_ z4eP}hRthV>fQ%NBmRpAc0jHyLf$4JIPue)@4E(C<@N;8nB{nYzp))0A^T*mrex?c-H#h6ZY;mncmM=Y=kvMzKcQFxmSXL*qC^*`TVA6n*l`O9F^B)ysaArGd{(J0t2&yI_8V zQXpLS4Wc3&>9pYdn|57S_QO}0v0QvZ?RtZzOMSusGQCa*O z;Vhu(-Xb;&1IX0{8T?+~GbmJt02NFM=b&P4^1@pT?u=&iigMA@+?b^IBxMz5CSx-D z#Aj<|C%}pEr$hnW82-)&)s_Bo7jNTb_tz`}=ZT|(p4SCqJ2`i2IV>7)^Bm9GGgr8D zj)Faw@|TL*O=tTid-sPyu(YqD{uBX*2(ocJL6p6{n$P2Bg9L%My_4{XS_hBNL!;mC zq`kXG1&*%4AH4p8Gi67 zLKl$MPvX0HcoxOiDGjqQPnmg0sMx542WQ`?^vS~!th^ z_qAri`}YU)m7yBgYG zj!T1!v9AexcI3A2eH=B@yF&TQba0CrRfCGTpEpMnpnd`4vcy@f!2hW9vfm|J{`0m< zT3Wg^5;}BXkcodsmG5Py zbQT=Kj~u;c&{gu-aox3ZU(wNi0p-=#>b0GIZs6mSLP@wSXYSdN?Zu!*GoIN9CRiRo z=3Oa89@XmH#)rri78z+`Vr5m|KFNtPE_hDI8N1eVw{JI19zI=cEVHlaoo^n=T5SlMbH#S%>7rO4WChBd+UAR!Pt;K;Sn z3Y>zA4_gH)T>~%U34>t(;<)P(b+F$u9$jG}StZSb1B>nNP=o*6?`=F3keYweedu+E z-!$o_X-RK3%1q=c&KUp_bANs$?ia7i%@)*Fdn8bnhw)Ba3tm#EW+pb|uCJrFsA0G6 za68zr4Qp;MsF_3#ZA|dZEqMx1`uMsEwBpd66yFf#`BJttP zSj5_~Nl``SK_1~oTcXg^j+l)?VWa-%*Y{>!`{0&5+>iZYZkvI&tLuDvi&7L;R*R12 zLrv!=(PjO6_eXK@5!s~ZYD&0FvEj7itA`PqWVi(i1)D;q(Q_n;Gj&~`_ZvRNFV#Ca$9(Tj3YB zw!sjGz4DQ3ulfJZaSU;S>Md&6>w7q3H`P8;1BQ(D?iLppwSO*&J7A=Ak0bJz`6nr&Y3s{`XZ6CjdoYZozWLzRS-IOv+T+ znnm2d?KYbw?@Meft=CITbpC>FHo~?tbTHuM%?VBl@`EvvQ7Kj-BNL&xt;`N=j#1t! zS-QHUKkw^=z6J9G<;eBsL>jCpbOpO98YKNAoa*6+uQ1A9yIoMTAK(oA2=}Iay~5zp!l zo3X5uJM{Tu`IdGMh6(p3z}l6GvF>ZAnUopY#OOrGmriIXxzR5lLggXTC5+|2hjiY2 zbyn<;#M!d3>03{%+^yOGgdx|?38P&?4y)#0$EtVpMX(FC)Po+cq!Rw$Ga;hTCkq8w zZYI4i53D}?m*(YJ!~uS=x8H%ZMv&Lw2v9qDOLv_?MdK8R_Q#(qEs za-P$#8@Gk|i#JE$sMSA$FLGv~{m5wb$O?wLL)6gZ$woSh9Qosaxu)+40tlgf$8Yhw zJ=p`L6FPdHhUm#28+X!FH23;8ZOh(e)EIwF#x;z%yXZlG*RwW`$Qf5j_|hwVyz1^D zB?S|?T(z1}?=0VOqhfftiuP1&J%(d?J!?O$6=wi72P-LzojZLpl5_1WOJ0y2`t;{| zC!`N-x%gkjA#rMs5`sz7UZWYZ^J9vfftfkN)f+dqb{G~AG)Q0svJ?H$y&xgiMtR!; z!TwA&;SbanGnbvoM#>4S#j5M!p>0MV zuMrXx3qfyG73^bDh3Y2Y#T<$zzHZaEB1bmRq!wvpIdo zrK(GM33H%?%etYd+Y1-cldmRXV{iN;s~_z{(di@iH3ufUEG@W;-XYz{&}KmEaC|lI z-*o2lsAsI~7AKgxtB3%QO87L81-C^-J~LRMh=rXJDS zs#SL^ckjt&dsqBXRO+UBGA>oRh0NbH&ud@kNODZ;Z^}(deDB_gglT+9xn$keQ;*s` zJBabC@K8eL>3@DFGhe?xDs3V9nV^qTJfW0@OHC+uwxuU^F8>`W6b5Favvapn2M7T} z(aUwR7>|npkFk+v`6|i>_y&2TN-FT@;)zdeX2%i1*!z=&W z`XFA5!XQXV6{O7QpW1(`jAI9RxPOo*pmgBwzr!-OLzIV-CR0>& z(RdUw+9d_&Fu!yky!wO?I?O>0LkeB}+Fk`=dD)y(E}y-O%&(PZ88el>N$H>;VVQ4dZojeEGbV~ZR4}9l39&r4olPeE|hH~y+(UJ+dIkl zt&?(2l#NvBDSxuAj+&RusiDax+Cy+|kQTXp7kJi41077<=pTaZZ} zmFkIJsKZr`eyY;D+p>B)D`V(=e)QfGNE;}B!OMm1v=vtrO2~jdSu4^tX>4vhwfW^s zW0jqGW>Ey1_MK0l33lFF^I=JTs#`g1Q~iY@)1e8qQ6nMJ$DTIV?$U?R9+B@f0S_T_6gmd^LR#$o5& z@2EHN#)UNC2qJB)zzQB>YhY-qdb``8q&UIN_^jkOqpcWnqsZF5qhY=?w68B=WE5*=<&<$^A$jXV;>GzK@ z@yXm<x72X+ZaCGNU4kd*ZXP1K{?KJfI~cX3T#WZct2;1}U;^tGrW6TDeLE z-Vh37im9UpK#8_3&&aBWhaB?qfTMqilF?6BNj7eT!=zETy7fUxiE+W0zo#P5*boYS&p9)YALJ@kUQWB7m5<YWo$UEn~A?nmz& zrn5kI@3;BdGnRUm`5qO};K39hK>s6vDq*d!I}EO1{P_MsD^UfL@>fsFti_n9=KrWw zpBIsmiOsB^eVE~S`fm?(93T|IMlQ57cir;5lfM@3Fw``$Wuif92tcE-6iE$>?I91M zdD~wP<;P=qvIRWR;i+w_ak1%mM`}tg5$u!IA87rS%3yB%~|o zo=!6Vcoi*ea^m_!wZ$&6W8XFsSH` z8Y&7Sf6_c7>rR7IO(uOzjhFwAa_3J&HT5tE>PU+Z+ z-OE#Lfw;gw2THF zZS?;=?*mOX_~!`7S#~qcoC*=AC^mn-U$a}JH63nFhE7I9zw2YEavmk5Y>W2b`ltAE zs!IP!l{`D}!Gr1Fl4uk?us?bJ^d2RuStu@-(-!h6$dU)=zqcG^ITS2My8OIy)XM#( zLl9}pev4ND(*`oIp{9=kFbO7WlngH!hL1eE#5_Q52%O%72izounUDY8R;CvCPI@x4 zHJz$UWWAp3L?PDrj2S$FY5}+`A9nHq338EwN?T}HA?%An*-qJJXsW0Msw)06E*6uJI41k~%D=2LVb^!4 z31E1E_S1}@+f{FuP&?Z+t2K)E?l7rUf$xp|F+n7ST`$sIW%Rqvj;x>htYG2{7?k^ za&WlGMIIyQY-J=k`|uP>G1JmA2J_5E@`2+p_5RRDI8y1b0XZxaI?I~0LN`Q;t>Q|Xm{71@QnB)w8K^G!1(AgWdf z+$8@?Fky5i69!WBgdy7erQ|DA@bK|d==^vdAVrN-maeNwmqQm8j9Z+L!jQ+a>S%q( z0bL<$Adn(dnbJ@CQg#L`cHAVi@{y-VYroR@BoWPc%2v1n@~?5tI9O+5X7E5o9|9_m zg+v9im$C6c9y{5;qF0!_;6w!^W^VhVZ_18or(lx*babfit9}h^>7pln(cL2hvtvC; zPJmI<``;mHe7!GUDmLbY3tkD}K2)_9zpvkxm~d$arZ!Z_y#3MODW>K}bJzV61Gh-W zlk?RHS8Zj7Goj7yj{EG|ad$;Wo?W{XE+wJ#y+qb%dp&!q6rbgFOr{n|MaukJg=)jH z(tM*VqkM6Vh;-vMdF{adTO~}2zwPa@2*VU;svifuWB<`{a^}?BJR6PGVDZ#hfI`6K zv0c|;TsP09E}o6;vuYvoBYNaX^TTmsrrqy6WMNh77cdUQ*#rN^Adag&YZPM4sFphER$;DWKCUX zi~ZSmmtD8}RKn(^oWs^{$cbA7ZG=l&Vlyu{a(i@j>eQm1G!6gSnx%7l8j3x=fsw~! zC5PXL&2PmGWpT$TsSD@3V#Omebv3QeKdx;yH~%1J3_DVKD?2aN^Tzn%v= zEoRv9)eA8%$I?8K87}w5v?xfx;cos?|0G7R#?@6Y5d%Z;H)%8MMHm)G#gBM{`4FS2Mq+bvK!|6;fMtdSogA>nAFOE6ZPf%x^t!q?V8 zD$RB&B~tB?mhki24tpD?dfT|elkUe@H*OXRxc0US{klcR8oR$f)_n(PQ9ZXq6?OG0 zT>*+rn}+R$Z6~LhZ@P)j$f_V{sX`LijxCeO>&-gP9QVv+(VmQ&s`dcIsA;lMdnzWT zb`{61Ki0$L&o~!!MQ3K+zJ%u&v`(eg()lpq>?sC@8^#vM6d0yGP^Xj}5b*u`+kH_{ z4)Nm}7r`V&1{n7@0Zm#l_{E3%?_a&tj-!hb<2n?I=Y6QwvQihB^y6u`BEo1TgT7rC zZ=!@TTq<13=n+G9Ay^sX9Ck7{jh;XMES09n5Z*;ujCJJ-+z#E_Kd(fZ)S-E1{mbUL zdSQg{I@=+gcIwg{JR3Ud2D_JX87r##oO*P0f2xjoxFTmr5{@;fYtA^T1X!0dlrmCM zt9E`*aPmISQpOJO=X1{f`APHwM*rO=^c#699U1F7XjZsvKVfS6?tASe3by-?3ckN? zsG7&$J|WgMELSs0lA=mUrhq}#eMFaOvxyxjk#s~YU|;E#rBt>yeAqnQkcoNa*5V&B zJ7#>!RdR~cXBNifhxt7H_NGH+Yeix#{&LFW@6K+|H2Vd4e{%i3h;Py?A9v8Vr~m_p z$#s{1vj@Le!~TnoM^FH3&yqvFvw|rH3a9)P_8EF;y}V2L!a{#e;az>k@55d#p}~nj zn8Xur=>^mr?@bYt=_o4Bu+8^!a+JI}b`}&mf4@F)NI|kRuzg{)y+%j-+Z9+*_%rCr z{NKIdz-L5t#(aO=q+TJOdL3(am*fky;7ga&*d2@s=xDeb?IX4;A$q|V`R$kY_7`tT z{5EsR36zaR)dRJb!~`~tJ2B2{;d7u2vzrLet`e@9&K%fWIubzbjqcL!y7&z_Wj^nD zpe!{P@LFEUCoAAeJe`7}AM2nf)Sx;)*ABc5fo)}&bvbxIpQ%>&k@in@O&(zOSh|AH?i!Dj#Y<}-&|{fz2&>-6V2{tgXRx|lYF;0K z4ihRNpVvm%x%PA0xv??c1;27bvw=UDyv1i@999l%7T=4UzgqXtz$QO1Rp=qi?)q^j zwdx2~*B?gTt1SIe^PwAy>!$~w6K~wOc>@tAaSNOD2#2NNSt-+D8+=Ek>)vm=tJ$x6 zNxw)SZycJ831w)(5v$cU+t&gL(QA~0Wa(41iP@t4L@rT|Pt{xz3MF#)Zv86~`+Bih zr!&&I8;9~4as#ho?nyC4^Q<7EixXnchlr&+<{MdR?vp&8k;zgPWH;btK~4urW!=1S zbH}6M^K7%2gyVFYh$zRaS9o}%Lf900ifz5{QCHWsqs2vLfOm5AVl z&4|22m*LU@v$>wz3{kvEQ`7|9+is>^uc^t8T3hE(2s`}4eEQ_)C349cKP_w?TmZ-43;IjWHh| zMwK?g_6Uw;T@oCY!{|`wg9Km9aK+Y3BI}#EU#-~LQd6rc_*)Z%B)a#{p%jLDJn!iR zl7;t7UDrwYbLX8!RCQ3FSjBzjlU-B36L_b@T{210fwwYkWNE&d5n`u78VU2MJJ-Z` zZ~5@4<@yM0Axd6&5OGbh-AJI=hO&C6DNxF%!4f>~Dy&VU*w@6Kjwe6%lcCAU%zPQ( zP@7?3dFD;xD9Ya8n$U4G=K3q1%Jg*rB_%JazoaQeUj6-Jk8kA z-j=&-kNE!knBh+6jqsYJ!;i4#@@l7Ud2r)TEDQZkJ%$C#oru(Q4+`|T@r!rJGi@qv zZ+iNKEQZKu=($5VWlpU%R39tOdgm8rW*Uf!zId5r{Y2qqi&4!0{G6(P`0^*Gb(4ur z-#euNZPXaQ-3~Ye_37wdKuGqP{Zu(yTk#Nko}R7#`JH=lh$4&Uf(DPc_K63xFQi+T z({&;z1$pQTUH7#v>23V>e*jD`O^--MEUpmec8eoNtw@P-#)^0;Q+&^TJSjKpkv9_z z#e=F_yZYH;y>WF%ua689H15az@Lmr&7TmetO_N#p^Q((HjP10@r^ijO^W~5X?Qil7 zUSmmEwp9S^pwq-HY9KSbM*FMbQ*I?PkW2o8_oc{1vV{*>0fno#X=#21&n039s?AW+ z;+*EP`}xZHQb=dy^PEp!d@4QLca)3W^Z@^J!}N>jTR0TwKic!ic~3RQzPQD9Hr?6Y z7Wo-A_UqPS9qcgytl784&)pFw-F`;WnP+h90EW|J03YZHewky3yT(BDayZsna^J1R zeP3&L7aDo#CC&m@#|Z!*2RHiC`NgDHl%h*j=@cJRdORw?C&}-TiA53YdY+D1U5Bo! zNZZ5P!GXz}N)_T?A3NMoiBC!+VDVj#yW*ec}=10P)#%^<2EKTbVz6 zLifbmE+30}*$wbRDD@}yXJuGdM)}`JPDeqU()|>|7VIYRnJ4$?!3%!j1Am*7U-Ga? zA7rrG{<02Nq|d#)nxDA)j4zxK`6MXqBF5&!sZaMvv3(l02BHE#*2%1@Z%+BOwHe@a zqN>GKw{ZCMj@Gj$&V>vnKg-9iSvy7B&rmC$R%Pvxb0wX79Tawz7O=75PzY`HRr5UW zw6GLHzkS+Al&yCd=^k&=zihpxC78fP`?<}TfZ&eck<&__63uqnl(FI7(u8Yc(Zhe+ zct;Drwp)$UAUpf(GPR~*u4_13yr~X39h%q72lFzX;?#U&!xbDZ*oT-tWnxrwxIeU% zW~Xs0`?*5Sv?Pa2gUz1FrKz>MN)yK6j~IS$4oPDJ@9KtRo$I>!iSo9<*L#cT$5;{ODkSi(|&0Gwc)%f znbET4!*a-zUeJJy{B>2c!#Y%+W54ReCYR0Fn7812duDU+-4~N7@IWOz>`_^w)Tg4QqH2fwTy3A*(>c>0lOsnih{+rogTxr$5`IrUFvq}Yq@Jq8ZZZD#D zE!mv@q}JXI0y*?gQ1C2uc?v0v!6k!po}KfD4y@$ihSEVzT_tKP;g5-2ZOwPQ&%;_i zUaw0!F6;`tA63150eC;5z8PxMOR9RnDQA9s#9 zslR$y`xL#+;wB=KgJKg@ctKCMYEC#!TAjA~aE9ZCb>Js?^X6tXTH1%b*GKjav1QeV ze^gY=(t5DPc5*D*Ly848i~nGuMl<9**Of9hE5t>;_JSLHYQl=3OB8%m&X?kNc(Ere zU$~jueVKrKbaT_j7rS!;fjU#hY7i*VJl?d{oz7LAfJ(E>OT{CruR5-9uO#;YJ{hUC zBPIuN_33TYYj@QqODt<;$rBHf({dnXGo^)g@WRa9H~R;f4}HLR9{s+1`;VkWD%DC8hb{5v7Zu{$aKH8Xvw&@v@~h-GCZi>4Q#r8$n^^W&KL@S%ie#jYDu28tD7E5$ z7Af}*MUy&!2bb5S{~vL09ad%ZwGG+R~vyT4eeZRTpn``Eq`D32H;Ba_q@4eQ2-)rr)G>>>b ziSnoVE2_CFuy>OME)!StsZFMu>o-Y=Eza27CCzxKKvIo@pP@l${$0tDZzC!IrOzkW z^Wyu6tArPwuP$w&HrJUQ*5@@P^dD5|Y7o`nl9a2e9-o}J@O@p~CA)ZZC&E=PwLE7z zh*>n!c)H)upQY8nI zwSNq2&n@Vts6cJ}$1oP-;&VJ$A>;$w;lsp(j~K{|RI8dz_gG zj{?do%0CvYgoV*V#bnguYWPm!IRU4$3~{n67ry6H<71+sNhbrJ()MS4l!e@vmG2ft zd$HzcAfz)CjybO@qIaSH;#KjTm+O?gZ#H(;NCSaKHDA>BjZLB{LtN&uYGJ zBHPM4HK{Y-%)aBW8?1Qu<2x5& z!w?)didbfnoSLQ%cu)4)av_I305d_`0G3u97E`~w;qJGTUZAML zufeaE&j4PkGYs9{L9G1Rrr9Ja!Vh#%Z$nnyD^$%t_$NJA z;v;|~@20}af=ZTouRnOrUMuQh0m%{STtrJ{D${x_J9@bvWZffTPZ1sQ#fnD$;NR6* zjR}W`+Sbe_=hfj7q>;9AJLL8==T}RC&9e2f!!XH$ZcO|ehfBAPI0a{4-g{^Gt06_D z!}0;&AHE^3;#LNGciFRr6melA6-0ePyE&Urs5YYy09~of4=i|vy^p1n6_p(qfU~JP zxdodTOJ`?>6vNA$xPHCXMX{)xe|KV_J^jor@!65+_?0~LXxISqe2x1C6 zrlEQy_g ztgO{8!(hk5Dw(Z1lyDy>UdEG@C}Ul`zHSxSnb`FL&Es=O52cJr$91yS)_eFqMB-OxH~Xm7azfy z7<$xRJDQjFZQDzADAC6!SvQ3@b7@WlbTcD5y+puBObpb_wdKyq!)-G|72Ph{jP&zH zg0TMqVcA)|5A_=p`IahO-w&Eke6hos3d)ip0C!Zs=Qxv?3m9wvm-Om9I41@zp=2zf zn4+img;U~L&Vb8Rc-6n@o^QfWyl4vU^7{E-P%H2bp~RM_!?t{SZ(LFoKFNepbE^z{ z;nH}>FBGdOC9^zoolJV1cSBMB<>B&N0XS#vO18O~IjkMeLT;CA&As|T^UPe|wIOiE zsKfNpW5`6%E-}1~pr@vmpv>pl!Ea6xTDEPrG!7YsUIG)k4olarn&;S9jrpB_ zh}B!V%dQ2_R>Q=54EHL6>>8j(kqMV%+bpeCbQ&fNyWC0nfJv90iRr*tCb3ghRkc;`cv=ya6tziTUxnM=(J@wOlPZT4XT)c` zDAdVGRYo;Z>%5Ld6(MnYc1Chl&3r@czTA@tbdcE^*x=NkFY3F2IBk`U5N(|CZ{e&4jk z#naheAl;)IqV zB06U8sZ&ImiqZk#&P=44=QR;Zs3T<9^VG(;3?=G+#gQZ+(zJF@>&xd~!jotkxf;Fj zImrv}_gxL3T{7r95m}G(^4%-VZ?~Z`5E;)V-9O&+rQldm&`7bVvlE%D&gHvusVC#e z*;^0(e#umFv*imRlLUUv1BJ)X?J(fA;dfN3Us@)tN1xSs zNv#U+gb25|$@u*x0#7r0Me@H>nxjJaSqymjnT=O`<%tE9{Pp{vLT2T<2i;tD{mmLJ z_sdmoP88X%ETVTuEvYpGN#Am#U|?T4>AOw$*=f>3_*)rts+YMtXMwtusQh0rD4X1e z{)Uj~yo#WmqO&zK=ws|Bgzl}7y%|BIQZUu&g7Hjqqs6`L5v)sT{=%N9iK6NESM)Ta zr!`*fC(Lp(E*H2+B?T55l2%*nV^BUiaAF%lO$JyUdwn7?cT zNrEcl+OvhNEL1hoNVInBPsv~^Fr9Xi@G$x6a4im&?%As8zG;G1xhS5WwcfXpgJH_g z+s>8o;5hm5Nx9-Jb?TXdzEw5U%E9)D|uWg_|AO5ZMAxSg3YF0CgYhPTu`X!y= zImxE}y0+8l0?dnU`J1R&S!ok>J1<6}tro}Kk)uWLl+sH1iPatYw9LOR>6>$mv_ydc zZi%EtCl>kTOJCUz-92S&Uy&;h@+uE%E>h)xXb=CRoz#zr*ls{z(iiSoFhon4l@DD; zBRhb~s+TrZK}ZDgncqoD$gt;|4AEpVw|CM~^zdgbxkl{P5tKq1QVy|>4Oug7xj*l4 z_I5w%UMyUUH{*~0ISTt;g?!IH`>WdA>ADBEYkIH(=dRsO-^ZrywnieR^|HXWn|DmV zPGH92VtH#dy>%MYv&NegT+N1M=R}q#IHB6eiyFzgjm$)gyzH@dZ3XwJqi`A1uU$X` zDR#}yVbETwvYMGDa)uPIwG3;GTA$CHRE11%hP5_6R;*D0;mywv8UWC#6<(v6H;Tz( zphndcaKY@rl9ZJqW;IQtr2mEV<7i6f3MmG32C01-Zf@^J`5$>(f@&ioTW^3v2hD-2YG>9nI4i;iox$%U1kQeATTlNW) zq`VWL)M+vdMHv<05{B-T+~or<^;4}rCMk*=U_m~kpyJfz)JC45*PL;x%aso}v>%jg z>WJLJ$q*`=m3e_4hBKcHhM%?a{^VtL&b1D8jB$ENpOlw+>;6E44^YjkGO9kGU`O-M z7={8nj(F)stOwLPXc%{ZP=^%zUJ*u2&C3xB6#}WrpVXwtI{?yksdH!tM+hS%ICx{U zpGPo5nKsqcQrdb`qkHtpcS}yFcj&4cIF|laI#iPG+epi?|W(4z4oyP(6 zpd3s$LJKn_;i~`}qKs=bne-_p<|a01H~@4g3?XlHIzE=|9KtN~_EmxRm1(0Db3X-# z+J0aV5p%4d7IFKL zB<6U-F?uE)YG@J1?W510{joQ>5F{Dtwc@ClH`f9;hB&Mi%$KJ0xHvngv>b&Ex(U#S zy|AQ2kui4MlCuUUv2$^2%ciKGz5zU_yaDIdL}e2gZkGR8607<`m zW<*8E;k70d*oGQI0Ir#X@Vsj;R|$d~l>`kkj0W_ytN7T@=;Wnt`HTu@ql{<$qi9@+ zF+?^*dd))o#(Dnj%%1)8Q*|kW%rjZg=gvMW({2TaF+$yo#7;1{S{Hw`z($GjFY;** zX50LxUw^oubX4N7VBtJQrj6yE@3@vWWb^$+c;O<>_Yu^D{)5DAt4^N!6q;`Hy|n0D z@pOf!QI_oPWJ(iJ1d}J#!_yN*rjqA>7c=Qy-ALQD+w-rYhA`CmKw>0}EJBJuz9%Uv z+Hx@E1LcTOotddpJ?){W1#NVP(fM0tTBoCW6UT)e2Wv(jdWZD1G+>uM*HINcOnKnB zL99Id>3gNQB)Vt^Jpe>+P-f~3M(;Vib2~?8^8T_g=jQOi^bEcsPG;lf-eIWOZ^=p4 z@gt7ctuG5>3t*{UskOk9fI9^2wm;HdhZF;*Gz!U8rqx6RufVCrdS~r>IenKY(k55o zv2>a^);=oSy83~%eqYSne8&&HpmHj2NB?4#X*f@qD1;mrfp^VD4&8XF|FlMy_gZZP z-Z#Dbs@*Mgzs+{3$D7KgH_RHXhwYZ8LvKI0GF1CR7wvvHTrdt$=; z11w;yiFG=dTR*F=1%xK%RPbZ`diVCQV4k}uOKd|afI)An>RiHJ(coaSK>&L!vVyD7 z$A@sM8DHzar7-tHKs2M{zn3%6PVVTrlKH3c8-3BP>#5{9yFbbhua7`75}6t%^58be|6IVLY#nk)6O^2cju z(J@(@EhN)E1-QA54Hm1q0IB%?3(xBH50JV288tcTzKuGpv;BQmGGkYJ>i>n{JloWj zzo*XJ^0#15`10k*$15W65=e!p5F!M#VCbc!q+*IZLs4PBwcj*BJlFL|Pa1l=tQ24R zvxs$~(Y4qEuR%FCharc*z-5Q$LS%f`^wx&;e}@xsL(*P}K6~9*g^AR2?S(hiAWpjY z`i}XLz5b){L|4Ha2vI_0tIWb?2sVUWdKq%oN4s4w^`ZdzS_}UsqM;1U67^VRjxrjl z`;l^j>Bpa;D$56{%n+8E32!hAO1igmn-2+Hl%;>^8?!b`*-QydF+KvI5G^>p{JS3h3*y@8~Ht^K>3PI#lFFW2Q@k? zl_pUwd(By~XloGp8mtKsr*(!E+h4(fhnbO)0%`kItRDn9(2#bdF*;86&+k|sE*YP* zsjS0#@7`skrR8;AS5Fo60y&LQ`|Hyk?7(JhJUlTA!qC=%fdTNw5+Dk+=UFJM#o zQh)PWv!*7~ad;C=0*VFPt?Cf&YsC+j`m)+*$A~oejs2vw$IveYbM+mI&%GPswfz4c zf`t#U^4eUr%UwB!BKUj!o8riVEB#joo#H>h&=E$ZHqUG?oPSbWDYqDgQjgQNP-tkG z1<@M9RDYP^u++sbc#o7+S3~0nR$OAC-tAj=O3Kmxlt!1|wp4j?o4Q_M(a2^2%}pW^ zYlbgj^-J(AjQjr-9U6$XK0*AlTGD(EZGcD z%!Ql|<=FZPs=$iSw>`V}tiNj;7>6hniYM>b(<%r1Vb1H5V$za7C&ErYTbzD0qd(*d z{U^ZFkelUq`;ISY+5FbhAhpiF}_mL8gK$7j!nEY`}=-Ap`O0YNuZ8<+1-s1A8dF>* z*U?pV8WbGTRi%co#BhGM&__uvKxn7EQ(&zyguhO1^a%v@-8D?vyTD(y;)}|O>?^Ik z*?k5}QTxx5y}rH|AsLUsS5P*Y-y;=WZmIy~7NoQIJwk<#sD(yZ`zVbeX_SDE+{Wvg zumr$!0*mA0&!}=(jMerF9qBfIQav8_5)*|K~1TJpRr6@74!@YR>(z6+-J|!#`elzJo)vgD%W)B{o!b4 zUy$lX!7gXPRouxk&*>f?xXn;vmZaMsM3Qibsr5brCiyDXj1RIk1m12jpbeX5$+!i1 ztI|dTKv6oDglrDTdgwpFHL#UkI|SvO<6;PWJ+%3y0*=pZb7=`QzqztS%ICO(x zJ}!JPKF|R9AMUqmwq4QcYPHpKlxbF;B;%0Y&f7@?Ez-wfy9W{;sKUsWI*tJB?h5l&8k$d+B12u(}h3xo(Zb1THU$h>OzS7;*5daq8@ zAbB4);Q?d(9$ZyTtfmNhHW;_)rI#V`FMfgkBOAxtl9=)UQioLQIU!HV>P4Nq#Rl)O z8%RgBkI^=gSr!Wg=~|R>DhIj&$nEu+mwWH+3_&JBt6Jes8nuHVczSqy00VODy#77n zE55ge;Hh53G8%3_?)F{-MHbrKGK^g!>C)UzG>XVjr~6tc#aPmE;iOqBcKk` z13gbWC_EySx!dh?&W2cDO7#)+IxZ6-ho;cp-rh=C(i&C#nNBMN`L#HuD#5KpooKPM&@#=nU##UNuA}CDChU2OSA` zdWssSHmDsty&t9h>08bHDN~r$_;*xgsq*h_Bb&9XK-uA~h(NAW2R0ubAWo2$!hHK* zdAUnZk@NkB5~4*_c!-EV?xt z&q8+0f%Ch?@)!8Dj{k1z61$CHXn5RDn>^nu4h{|iMIe3+<*Cpu4(F+;#E+c@zu}Rh zee5E#cngf|Qp2`^(!t+EX87;gg|!`yCq}v|l2sZ;M!&{JlK-P%f|r&|tOlg=?~u9k zH437p}jX-2=l;u7i<|Ep*FAFf?E zggh}&gs8>e&H4^7^`niJ~hw9J3f4(jLsA3xr_$CgF4K3UFYw3Csw`Gdi{ z{J3-QVx-Pu=}Wq>z-KW5ABTOR0duEj=U0CO5$?VRFb=O`+KY1eP&Yo!M-%*@rS#bn+;W^H&6YP+a+MD~hVTgl0_**8nr_MscO5|@p+su?_!{LLSzN%SfvCa3@_fw#Ms~txj)dba-{8>D75JpZ0K2~G=*@t8 zRx>+yWIMZ0BeKaw`%kU4t3g=1p_E2-h`4_M2FWU`;Oy`C8!Vn9JvYekU|!S*9-?H> zGTcB+GVFTk@tR7l;X;hQl6FH{&iD*+3WWRqy;ku7^L^++4Fzu64b4XmZ+&lVy+gns z#}bnqSvory-6V?72P?wq)xT4j!gjixWvR3Aqn);o3K0>!$+88iNHmIMUQxi?KsUg* z)lB*{m`09_#QCG+QRAYmwnD*S(JCr_A>Rqznt7N4Z-YV%Luhb=%594D2mO^zz3M5; zyYZnfl9P0iZY_<1)!lN6L9n+p^3>3K z-s{|xltZ?lYK_N6h?_gkMJ(z*Iji}+g#Yu1*wh9nw%<(_ii`+yUftwJD%DXjFf1L~ zo$K$s4cW#C34J$OXOaE08zkS&TRDIC$1+4{7I>TQ8u~xCJNyxGBX=kwIWjUfl?*yN zEu{w@CbHDI)8L}j>G~iSWqOZccEiRJk;^F*G5Qj&W|6Jsuv%v zIrwJV!tQfMGjFVnj7*_9o0gAN<{|I~LgCdo1_jv<53E21M#{+N>9^1=#J9>YtX_yW z29|9<5?$(E8q7;Y^PgRa)tygP$R9*5J*gqC&KNY$jdZW87u>h5SeTNVCK9W<&Q1&NPwTFj?%Ehs;F$w7vsA7_FMzL_hG^JB5{G`uU<{S7? zo*EahRDqZljC-7JovB$<8LW-+76Xl9`zQPJiC1s(YmeaH2|&8JHQ^oZC~n@#zZ>;6 zMB8=K?W-6xe52-nG(#wpEz9W3p|8I|t*Ia{Uo;W}Ery-yF3txqg=Xot-*k3$x!Lb3 z4GgX)CAGD+3h^A#Jcdl|-|3ztWRe=SZyBYQ8v-!uf(dQfBgd6oeJ_?|EG4)pUY_yw zd?|pH$^K!qG{x#$zJJnO8v`Et#qmdWwAj*id1-w)O+vDzl8ZIRJcYhoCEO?C>hv+? zYs38&l#yo8YEc^NO-^)og;ln5NvVTuDo=A>L#`X1*lHlzPR+57-g*|+D?auYclZ4? zxseSQ3kyquIfIRjjRRj>4BC0TYb(y!nBy?SCIoPK$>E1Z_77y-t@+MeV2*^6P!+x;o^?i=QB_>tMm!j{s%w)KTwyox=( zzn%Fts9a)R&inYW9}B1Z0QC|&KH5!K!^g*X44LD*nxWLi>hx+wItxrIdw~#tbCL*ODJ%W((;Ei}sAj%0usjcFKW{P!VvKvEXIbn6k6AV^1V$86&=5Km) z!$RM|IR4Oi`$^yAnq>eI9bEcb%kzij@J@~`{3!T2dPlWTaf5rQJA=WmO zl1WHtt&NQ6(?YA#xO(dm(#>BCp=@XfH9=N1g9Fvb$;;r0RH$*YyOYcYOdj*QlheM1 zj6``802u78pWNfdLg$~)0CDTRu$ zQ@zvDZ9+z>xB4NFVbLMK-6>6NUS17`_q5}6cI8(DYy6(O7p%Ct12LD?fp@E4@b2qC zWl-K^#)l7|rpt4ibh6V=27&=8mgCp0%w~=9Yw~o0a6?)=it+5j1gKD|xsC4dwv|YU zK&@U`Su0A7EwkD>H<7C<|MR1~vqzRDt$WwJzAS#?Igjyw;g zVt->SLtmEG=brQ|Oc{$ML#2QGzP8ju*wq*o(?Qwl~+Tb4$8=P zc}cGF-6?F1<(*J)R-|PYJpO8D;PRQSFk<9m7DIyTmyT$40Q| zg30(Q*3J%)u}wRz$~YolOMdoJgK5liydMj<{voO*<3-R&T--osqR4F$U3*5#*>nT+ z&cdb5AU~nJ3?`fI?BJ|T908dO0yN|<(yUNWq4NP@4IORXtn?oC*UvGm06JiX<@%_g zGA<$lN!@KvzqmOzCl83t%3YD>I?%yW>dmU*@(@CTBk+8dzi&|5}3oF#_#wFk?z~2d-73(x* zHWuCN`C8R=y}g@4;+tp|lCt$y+%L|ih`FDZ*6`@<^dRwO?zojv2)_8eh^cr~X3L&B zb$Y$KCXqlkf3QnZTA3PmkJ2WTwt}1NWoV0PPFWn+!qAEx8qVXyo|hf zGx|+*6O*N1veNfDDJVSe>NDdDj#t!mCC}H(%4MV9agUEpz32#10~vqCjn2E!@7*_c zFUkE9Sxp4z4Ojs z3)rhjYU&aM5SACiD`zMBAAiZ|6F=soYSVezws6O7bd(2P2ebP?4ln<^jBJ9Ybm7`@ z@a`Oc9B$JxiDQ$$X?*&|#Wm&2PmS9r2W#S`_uQ8gx958;O=&iF|0-m1UURI@ z`5{3@49{K0o>Ams;`Bq;aWu<;kC86cgV98m>!N(DJm;DF4W&6*(fmPmA3tugk3T1> z_=5;NHm!wYwKrpNIA=>_y7}yN=j~m7cwE2q75$J`uY%wf7iQ$R9ea1MElw|5 z)98eVcGvqh>(r}7syo=c)JvWUt@xO0187!Hl6bnWrX0KwwluZH7|b{@hOrT$3cM>n zK&ES5VEs1`zW<#r!7VZsjGFDRX~*&BL?MaJu6A%WU@<>yp|h70<&#orr*_E;a4x-V zC-M8BnQQtMsYp5i^{M_)N(5--nc0t?gLV{?)yGx zv6}lV%NY^U(%LF7{Th=Cd^=qX6V4#Ue#iqNoG0?~i=yeh%Q8a&SOR6~`rjr+*mJI- z%pe#R`HVo@l@Th^>@jLHj|2D7%N?F8xc3JEaX}ou_Vn~KnUA6FFRA4xyiXO3F~VD1 zB?eJ2`o=u#qk#oSRP|ODmZ^ns_P$T<`>A80IAP}!aeo}Ga1>qBOZ?2_&`rK&9$6=$ zM^_Q!JWe7AQwvCqjQXJ_pFao$qbf;r#E{ji#EGuORJCrW`b)i8$E>L1gv0SKf~`PS zg>Rzi^8ClkWVmSl+gSYFa1(+rx=!8NPjlRe10OVl$9mNoxjz@4vHD4wYrV@iF}p+$Twwhdk-s?t(ip7 z-VppH%-kB64P4Tan!AQ3OP{z?_=`s`{;bh{8^_V#U>>=QmN8x>CO#dunHOYjR5FU z8>Zc6urs|6BaoM?lL)MlH*+)Qpj8IVi&(cGE@!*~XFJ6}-K78GJExq_^#FiY^Qd<| zwQAh1+jDY12H4kB`b?*w`wIzN6^>V9AD~b!Vx9JMBGbW0)W1bj|8#$tas_p_W$gcWEO&zqYrJ9%BOCsm`Yn_=%T87w z7B2Dl17k9uo3@08veP-V8e4DTt z*mG(U_hlAP7;+f&!i!e=awC<=b8k6ENh=?-#7pH`;$-}>15f$y@Pn|j8P2^~+Yvh7 z4YjQ6@xruHDXNm6KJ;)}jlqT+Bd-7cCT~3@{paKfeL8pA5$jTx)?XcH;+__RVSSwD z91dUBT3YJY0rgzEM8N523IJZMKo`2KH&01x)KWiwYZYvs2;dQGOM zMx(`L>FHOmcOUI~%^7+$qbg9`6(e2m`sF;M);+)8k7B*u8Tn+^BR%Qh&9NEodHZik zzQDO_hUeT`bt}nMc&75JE!`3)ETpvbBteH(gW~Udt1WXB#l7z6xr#a9WVf-hI52h^aC5ZQA6Dd?0 zkMn4?1~Y%g5}7jrHUrKB`VuvE^ItDuk)1<*{2X}Xk>xn2W@Nnu;CdLl<>XYKBmeA3 zFv*?{(@)_`-nr~Bgg~K_vu}J7*e$Xhd#{Ip>K_f~2P$Q6d4cX$J8g7u{el544B|Y6 zvz>DT{n}ekB2Gpn)xq8Mys{4?d*J;HN#vxNH@xPrAC^B{$l5vAB9Q?zTLL#`b%2Ieq@at(JBdY%?E86<4Myn9Qj#v35O$IS7)LBY5Yw)(z#BRpUZi5E~~cCOm<$X?uepR)k0 z&iLJDpsbR=c!YbKDPAm;Si_PvStzv)Klp7=-k^EjBl!1eBH&>V4+w1txL}kno?7SP z`O=}!h8Y!TnQu-swkT$n+i9HdcH(Y(r2IPNIqrR(oviDzfKT`Z?_NR;s)*5wwa zO^yzC8zr?&vs))fVX&ZlDy(X1iYDPLKrT)SQ}|ohHS!uW*1~yhOeI~uhk~XWH#qbi zSXSzNlONNKP1lsI!4iOsSt~^h(}kTokCQdc2bz~0zpD=u71lobh<)6;HC`DWUgLgq z$1`YIGe=2z;MMt=#=iJB{2KQSTCz4^ zQO}c|j_|0NIcP_fv}pfgo_OtV2jZ5Vf<(dzOp8lo-& zI^2kvXeoSzUUqgv<;)o%k%>ABs==uHf2fRh$XCr_+Ta-f`c47qkgr-1%=leP3t-jf zv(i}U-UWpapM0O&LxLv*y;XEj^6=wbeT@C@OU4%En&p~ji>p4hRmWruwa#&YN}!75 zk_s{Es&7LVm!-XUHc&4XuWOWRTFp9?){Rma&;eKHswdTJ#)sC1*8^V6Buri3qRUUf z(q=58KaQ;3C`=48aPzAWem!$fkBymmdQm30c_wFr(ew|uVBbDitDD!ZZD+!RDBba0 z3_^swE8#jK{#E?70Bmql8Cie^qjmx$oJ?h(rBKJ*Pj`E?6s~GH|0C5G=CBy0gERlI(FFk z0U-Yc{aXo?V(K@dL2Zl5{HaQ>$LTpDU(bq}@GCxX-K$>gttJUE@h>)+B=NmZ^t!l2 zI26YpNWtO5=!3(TA?jP_M1MfPjO-E4*s^z*lv7y6DS=17^rrDWGa{=d6RLPyZRsu@ z2=He>CsdRom%(M`J;m#?%Q&}-Yq!}|ux&3Z;b@R7$B{w>NqZ#hjfaE=r~7J3@2XVZ zed^54JTFm=e!ae`E^3tXn424>wc&sO$$k4O$jfRs+-T-__WJeyXlx+uUItn&IOqIH z*SZnIgvx2Rtv3{&2}I|2qs_D1O{wcDKz0EM5?53JL>|0gQT37Nyr?Srb=rg>RLUP= zk}Vnvn3^gi(8C)&DbLC2P<_G_kt4);B59~{9+vU$vXRai?)kZWRV{hc886!izx<68|vazBtl(Vdu&W~<@0&=uHI*Zag)#zNdSkz^s0;*AY8 zowc9xwQa&oiqF)zXjvg?oj#_eX65->2%Xb6yvs+er_EC7MH*fm` zmewS?l-;~S(jhysHwd?%8N3ugfod~|KoV1qbOJ=FgvTT`QTuM|1^26%hOOVIjw$T8 z-GeOhVqo0Tp1l8`@{Q%d3gMGW{=VfOCOy^lS82-m)-&!m-7Wpr9}Rcz(=g8|hRVwM zrlH~=?S1Rc9XQEHu0-ux*W%wbO{-9c|MTaN2FtM*f78JOJRN90L`Uy$`CQbzYa6x= zcoB;p+8~ujT+mP&;N{LXVn3cKXW>A1Q42BHjwU@Ht2|QhTd3pPL|)Z*aePFkkx@gE zfQbvY;jq=C#2388F%>0}PeN!q3=3RhONdljvLN@_LCNJ`R|W`3aLQ==d>`$uG8y;t zE4!`m!iN@}ZwA7XnTmnU3YN50?i-p)2dFuWIyRqoQv3MT=xTd1GF^z7#X~?r;xTLd zI@AJFD>Ts6`uD9%rnsGqpg|CaJ^xtTV`{k?_MgwcO%(Agf=>SL_)jqg)Gs}KkN(pg z0@w)2-x>}7r;l~mk{eKIooS6=-5miCirRqEbp~dR$f*I=CRhq?@ShOFK`KVJN0m52 z1Faf}egL&qK)5V+eE@?B3Uo?YStr>iUM7|N!54~nu=NBQI(2n*nSDz>-xiM9eq(#y z+1}Nzv9l`Wq7xJp@+r2fLB~-fgeACze7#}`!$evRAN0p1o!~n}yk$01f}}&Zq*2Rv zEXv0KlIISZqvWu2IyzlQQte{6rAE;do$G~}*#E5R#CGl7`7$or_55=jpk|E2mg~r; zFYcrH*Gws{ny2@2Llnb_PyLc9^}pa9-gkrI&+1jXz>N2%Ac%*PC6Ek~oNE5QF%rD_ zzlViM&HmEow}0{CFPZxN#5qCkjNvu2WC1g?QWF6>{%Sb)^XJd+8UONxC=A!lyC}BA z$(hxPdi0(Z$Ff1Vml~%H%{eB0fc{)p-EESK9inkZ_L=F>w;d@x@3;B_$f-0UGNNPVR^*8X@?SNT#(Tof6r1;3Vujc#a zt189qWd=vAu`);N{M5KX3KZhizikJ8MBuhvenq*|fB06KGI+DEYWS+aW&>CC_}RgP zkBwvKg;U+uWZ}Vt$3e*lyXJ;J>Ut z{GbLjTmT=!Ob7%5loph>b4Iy-Y~YgK`(rC!!155u)Ua*n2iFA!c^UWq0;4VSKP;~k z;Oci1eEK&0AVv|%s??IYyRITW_n0~!<-&*qj)SnnSs4B$!T{KBC{Vq2YRC#F zs2r!GrG>mJS~|LX{*qBk;1JNYIwRwGllqpr+{MtaDS$wD%8$iavUUTo_Ijq ze06&Sc4nsSfU*jR78VRdU^&E2yhz=tMG7V_IIfU6DO<9Fu?@#((RREoJ`;c#9mUvP z7x)_r_qJ(1iJG9$B*ac<;Eb1g@j`$L9_22XAi1Z8wl?v-d(Q=ct>%vy^7;sdGYzio zJ9e+TH8%%_->OlTe+jWXh{0+9LDA?@9v+DNb$8kEO{3^0Ryi*!#46jhGv_F@Mcl>b zBUl8lfMCv6j80tSclC3@nB)l*-G)2q1OKBCJnm*sv)pJzyN$$2`IJJ4%y&#sJ?Nq(jdc&m9QtLxE{!c!i zdb^sD^&OV{??_wNQGRK=6{4&3crPHTyoax$zV`aTJ1jgJNI=MLH_V`S*I&6DJM|Nu zfhRRqZ7!B$@F5h=Vds76V7`hIE+jiAo-==KD=x?JdQDxxl_I%kR^Gt<5CbmTDLExK zm^!}|nM2zRXE1pJQG-7^Iue+@J+oyMnuJLqW?kI=n75cwh)-2u+Ba2kDdEA5H?Mut zFr22JJ2vQOYp=8R^}ZUm-|R}?j(wD+#?-0~4__Z8js?k#P$gk~yfT&P-VKXYTcV4f zOjUIV#1Ywp6#!gi4`R)pg%pGNShg{Tc^{WX7`%-v7&l@*<792s)!4~n>Tcd&8}43O zSaIZ?S!DmQyd6OS^sx<#=+)x4>?3H2E=(T5O?)?cbbEUTv-bCDdVgv;Lwn_@WeAH< z17AtnXQcW9Z-_1cK2(I50O2{k20>q;@d_`v-unmudh%pYW4eV>2^JXv0(dyQLFKg> zFo=MCz*6K4nm2%$Z?d~*o3fb+ix6~GUKMIruvBY1-!s975>x0%u%pwo1NAeOGMe%J4LSUR1nV`<&Om^&SW4vUl!JcYnB0fJ6f zN3xv|1=DpzG41!%D{QIJ@=2q=*i4=8?j|;I>3BPP`b)|QN@kZ;T>c1jT3l2t%X+fR zW4LRg#(7AcS#(5F|85gxEcnxD*EtU^Og~)0@IU^u0lS%Y`J<|#NKa4dr8CQ7br=;| zZH)mdOkSrT$hJd6vu>e>&)g4xU@KgY2a5!v&LS|A%`wS179 zt3OP|Dw;M=s0V;?#v=?>PJhJ`a}0%R{@}Xzz7NuzF~TnKK4pQB=+pGHKe=kP)t3c) z7wL%Z1fb|GHimNlC$mTZEO7ToK_Cdt;$bj>bZHqFGPSRIvq@8FIKJ69DpjJ!h0M78 zads{`-8z;2*r4oP+LTSO$4AHyZkN$rAUHJMQ!#17{f{)dVdHGMA%8x7^gQ`RK|KrrI{CSBVR2JAn6B+j#5+9pWNLdaV-FTOWCHZH&~rZwAF8(?7hDzwHiMPjbX<0chiX zV+KDUsZsq4sUP$Km*4V7AWa=Ws2fSY)PD$j`vvaOfiyUa(AAb5vS7yd6MkXJn+?GI zGfU6Id4AbYw6Cry*8*GT4438yXr)FZmR_^`X~xt5mYfw~pnNtTS)f(7g@1{i6C&%b zmU96jcCG`^JlR-Wm*27|@38oQt&6U0xzdFv)!P2hhs&`ALqpzbjyxlxun8NQOHXV~ z<`wqQdQMGDtE&nWj6JAvq3TNMM5XJLBT03_0v$>7Pe&^@7{!@N$BT&kA}1mHW6x8U zv<}yK_gmweiE1a04cN=_F%H(rtvQOWf?lpou*-*!y5mxq4YywsCaf*E>MYvbVlSw5 zK08K%3Vyr@!Zu5snLB@)ZU}gGG=+z7dVyZ6psExfu=sB3qaY}@y6*MaPVWkxscCx)EYxDD zhL9#p{Ms2^{KFXOKZRl!lttd%hU5#hd|B6#_l)uQ2uIU>p=%v)rXM`tqk1aDmtE%i zBm3nh;_`EdQ!#3PL7AjvL5D05B5_sr1O+ox^M#*3Kh%qfT{akL_NPW3x&1iaX~U)n z2q)xW<>NB}s05~fkY?ceC8vJF1%7J@+?%cE4$BuWRt@-R+hd4Blg*04Qc?4?isQJ+ zN6PS7pjbiPd&uRT#4JoNdT$U(1A=g5`=>$kw$qghQw4~i1^eho9L($$@F3i;oM{1z zT4Hidsbr?2iSQBf&l#k+IBWxewTDSP=s@lmOPZmIwD}BZ5)9HY=(%93A(bxqM#FYi z($q|JMou$--t#vMPP`;K#l7aBl)-wF6Vjr`3(|jpi*NceyYc0Ak0xZcJOONZ&l=2o z0FX*E8qZor5*-0Hn7fwTGVw^Oag&z;<> zkxLNAWFT002u4?|Kvjsttz=un_oi}31Z`fmb|b1<6krt7uKlqU_hzI(UhF^7a{Emk zVs3UeNzSrBu%=bG@!^t|QS6`q1xgt3UwuMeaD1As}CVozZ zR2^iyUXBrFw7B*xjk0b=@C=BjEgjLMSFq}ZF!`5^AfN#8fdz_1NYdDLI>Sy!dp9Nb z@d8?m-gjCF6!f((z)Tq%dvfuk_4anm`uH7%r zd{V8)wW?|FajY0?Z?NLuu^29Tpjua=PJjBi2YZK|_}EjY>p8@G88D)$(i#c7UI4MN z=PJ4unq|i|Ws*!+Iy5wBq2{mmy^~nrFn7Gdae;GD&Ie5)zmBJvRItX~UhPq|d7~@7 z)}th`1ljA?-T7@KVx=+S4mxhq?YJ1Y@57}4G+>AMr;93^msKo07cs@#fKWuABZJf1 z1)X|N4abF6xin;lBMW`PTzmXh_tkt-w1W`@!t}j@fY#Ml0fSLH*#CPmk|n4)cHivq zyz#S((Y>LQwon~LPc01%nh1$%672<>A}s4!8MJpxK~ot_rI3Oj+(DlS0i5V|&>){^ zfB$&W^*c0h9rwNp!p039bzA4?vLqiJk)m?|Ok* zP!a%%EPBmPs`+kG=}0V7OazlZ9p6^+oYB%m=qTmpYH0srMiF&y?Os!N0_hc3JtvTI zHQ&M-P{d=HZ4cSwXtQaiK6v)Eew#AX`Up~s{4#lQQWItVQ#i}~=~4P#7zi?+)|~qn zAi@l&OO`40sxeKw4)`t7la1Tak*6z- zMve6uqys5;Q7{SloOx_1?6W|yXb(VIftLq{3f2jPyjRQfL9@UbGWt|p=u`+LxRf7+ zkUfaLfo$}ydv-eo{+31;3A7xf-NPq%EpaFga8Q`cxMuyfrxeSj@k)29j+Y|@X`GOh zlO~v=Pql}9(`Q5}BUhsD7coNgP3E1LXw~@pfDCRuRyT)g{zEHAhyAS(+e^yM&Rt-U zk8GR-T)y|tHP6l(Fwt4dPlw-4s^$X7199Y?(x})}q3$zwc2LQ>9yHgkk}aJezv2Ic zEJA468aMPHjbPWxYiM;@>`U|U^7(@|S5A@8QhA83vGMT~hVJn<|GifhZucLJ;Y3ha zOKC1FQ!?l7)gxEV8Z_)(f6!%mH!9|;jWX`VWmI_OBd15kz`qYax3eq$>EjR_RQMa0 zI4tL};8Zzt`FCN9&+gx)(t8iVG)D<6zuBp7k=4`T2!m-qtL=0W1u1L(b8pxM(pH50 zw}=Hj{Vpt-@kJ`t*{$+&u)Cu*l8La(Ba@RUG@tE}Y}EFn)(vc%s?O~TRkKN$Qe}MIiEP=z zwnt&HMD|@|&k(6MV=qkkW0U8N0xy4yO?c@Un))64ps4C~bY|6t`&o|#ugs=}Q3=@= zK?FA6$w|&d4UJg~z5{d2gwyYfvNPdzqlT#yHKD*zH?ArhD;y4;yus-a&CtNTlIvYB znQ`&(`o8^utZ&HJrZc(}<~3`lyFdpJ7O;Tl!@|HJbtk)+;qyQ4#qCiL9F1KYFsUtk zo{n|D=zgmmHSfi}~@tYK|-*FM~>}62eE(i*NOP6~2K^9i#qf}{O!E+^;Mc+Jca6qD)%HOYRzVRuY=iNY7ZjS{HQsa zYB^!fjK53|VqRHe+uE*vk|QltGgu-wCvCMvZ}T_)8v*?WNh!Of&)Q~pl~N+(Mjrlq ziZ`V4bFZN+__ySi>^TcVR)Vva<`Xl4DgD4Q<2EJt_mSyY{H?Ir6KNa?z}=sz_A7`< zg6rErm^>!GBd687msx)_yGrz`8!frqxzSvEy&JicGtdOOU1ll(6$o~9!!tqlfJ)Tm zW!Bhk9ShG4?VwNF_STTWY4vTV8ZUSO;Q7*HN=3(3LskaQ8PQnG9{!L~yuu2|pZC3T zmCX6Y8>jeuxzR+kB~;7;jwDIgXH)FBqKGPRhZU~pI=#eHgzPeK7ktV=u?`hmtc$7~ zd@pkhaAivE3#+0h-=u>`|41CZ!YxqXD81K58j6m^*=T%7h=|yzSQO%Zf%xlEmWM`n zhJ}w0*)ZZZoK>zn2GEX_%K|E6mz1!c_uY&ohfCX<>~v;Iz{Zt^i!&QY8aj29nxdgC zak8~Vefh!DBna~#98{_oh=&_-=^i9hL9(6lUxgIi!cOV+F>FEj&qI6_K7x{!rK9%U zDM+Zi!n$dm0;v+H zu2H!rk*5smpO}uIip&utwq25EtC`r8siKQ)pO?Aq3?IDG+-c0b^;Zm@j)qD~-NR2H z1vn??huQ?(%d42oVkS}MdXyww3*uI&7(ziILYpyG;&GEGlvy+{CwI8^JA#!{UNbXt zr0kyfmuvUU@e!Z@H|E|ts><-|7R5qBQV>K!L_|P9N|2NmQ0Xp_?(R|n=@JkGY3Y(~ zP?V7F?(Xh9YlFXUeCM7q?j7g+aqs0XP&WJB&-=XVS!=Gj=IkM7WPj-BwGupvC!FSJ6K_NWYc1-RI+mV`dt3;qK?;nO!=L5flhoeerTKDG<= zwJvKkEtyvJW5oNw=rM~OmYA_#vfRy;#ua2FeX-Yjx#nIQ=9jV{ ze`IcpgDOa$t-c!%Lyag0;$tIW2zj;OfT&EjsPWCGTO>&FqK8Ksljg1KVc9Co^$(?$ z!e6--&cEXwHn}0Yg1fjLR5h{wW0YXjlhHP*u(0DGQ-D|iaa+^Sv*jz`2`N&3%|Lgj z8IA^+7>O#Bv187T=vAEl;_+xt$CFe1vrML`#siJWJ0rj9j&1my%GBzPq}Z62#;si( zoDw0Pbb^{`SAvVZxuoQUfJDDvZb|;=$?tuuyA^Z@!K(C8n(&wWL&bnU*jA`*SN!0g z&aGadf=d_)2bdZ$a|0*~9F*3M^FZ!B?1G$}5COj^X>sCd169Iy472q16N{e2`$qQ8 z8{cnrr_L``avs(ezAZi)%5Yy(D6`(K(`(w!&=8_b(~v-aeUe~ZOWVh>UPS&@nG6&& z5!f-{K;GWo;Q3xZ00`E&gC3oh|MOYZrte*Y1$r`sI+L}YuO4W^OjbXD>}aT{4nT>G z)%%bW4cU}6hZ+Sdv_mGeE-4*=O4i2L^UBu@dZ>LIR?A>-I%%lHKG5JhNz9u~j(Vhh zJ;#B{{`JRfK51EaRba1n67g`ML4omL7m-5fUu{e$wZz5Rl|f)1)>r?HW8_YNxDK?q zySF~o4@3EZ)T3l>Ztks|-M<`NPBHPtWWLz?c;clA(FQ(Q{lcY19 z??eE7XD*dG^M%QO7pEwFJlgx;v?+*z{|Ed#xO~y3DIiIyD3kvANAw~G00QaVMF)NN z5;RC;5FxS?;9Vap>egnWY>E6!7|qD73G~4oo?O|>j>;`9V?ZYL+8v*9Qt7Rh??P7v zT*1&A=1{D-77ZWLFnzuQO^M+Xz9r!IfPtd$Zs;&cWnQ(L{?x}li<_hU*B6OP=VIP( zEGdX&igb@;(B> zYUN#Kc=TIay-85^mtgf%x&yvBOX#Gr=vBuWsyzyYfsJF8Vq>KO-B!DC7X?VrBbrT~ zMUVQx$pF!Ac$JlHN&DbO0`vrcWy@TDdCozO3E*~GLeSh7NEIHnMEbmh2H*=T1iIy) z2cty5PUkx~>t9^Fz@z^{yU4-WnCpf}p|Z&(7Xi^Z0i+QyCq$Ue?9H*anFR(TWM*&x z0i&zB-jNcIn3|qG#THs7O6sl!n}M5w5u0L*Qgd;of@_urvL79fIj=;>YeYX?8uE|= zaiJW0bH0VB>%8@f^|bwu{AswG2BegiY|K3v>*)v3zGnUA_Ghf;xS1m=6TldDR_rI0 zEOLx&Hcm)rV`MTIX~%y|nvzVZp|&M4BhCrGg}(Nqz@u30+}-V+@^UFh3^XY>o@+Gx z)5Ay*@UpbDblhFqoe7m-s)ufP7l_e=W&r)R7#9qy!7x^C|F&_+f6;ANR`Ou$zBE-DuQ8#_z<7p|#W(R`8!cj*q2?Pvu@Q`S?)2ppb0%AGBeDbrh%!(P1TZ3wOe!i~ z&lw!OKDkU<#qkMG_iqG$r>Av9JZBZK#_TOp>9}~}uV`UggkGyP6DQ2eIcjdL#k{il z@eFV6N&1>VZz_mM-8>(+%Ng72YAwlJj+D%rN0q42h2EkwLUl+^uJ_w>t1-887Z}O@ z71Gt!Ra?ss@)dz3oPFdxFlr-PDqLVT?s^7uZeU=9iHZvMtxdpKHKi?oDU~}>RuP7u zj9Y4NpaVhI+-3fVg6r@LBZv&e04FYClgB>~QKjVe19V|ellvpMT3@B}f#y|n+rVMk z3_#J-_CO%5e?!=Vn}9T=!X39r6!a=8m4G`L?~v#p1aS_=3wx_woZ3Xo%cz=4XD14 zWmhEDWv|ah7`lJ_ABTS&!3e&r*B+b)h{}6iwc7dl!-szyUdM8XTZF>(&OLmTa=}0p zOaB4TO*SB%&ybi0=5WZ_Sw_YF@sYDsUFZ&70Jm}Qil#)NmA(1f6K@bwGAr9}evWwfYX2(pEf=Ye z%$BmX4|?)V&e_#eLc>33$<5|+h!?DmPQ9u z_4ba}YvQ)VykXEe7OB+q5@MD*LrHGiiU6bzMjF2N48o`hRRR$BBoz}(^i{xq8W`S= zaa&qK(0rBjR*uQHzPs9d!If6G77D+d9z1fmoF4F7?4{-8Oa-_Ph8&?YonrDY8->Xq z_^#iu2u2LVfggId;FIyo!426%hEVr%FbMFaF=D(MfV|d4hr+|yanf0$30(Sb(-bfd zoBlTx!jX)Y1CD%5`jP{Qq1OW@)<@Y$TJufgV~gjGaG3h5)G2S#v%E3)$SXZNTk-0; zRX^}tg~XkrcUT=4^Bm3=PM_T6pqI&A5)5x{0#{WHWsYkkfv0$IqNZ(*bWt0V1oxFhKAqp=Jy)Zk8y|T#q0=5>88@ z&W-j)dINL;H3s}~7*7%s67G7#P1Yk5N`>l9p&kq2`#onJv|p-}=%5G2Biu_#^cUq3Q9;VI+s8xI zLt2FNs0^H;xJbhCW%xmi|8PYVFb#Qwc{+N?qOJpaw zLbqL=oScNFE68}bXilD>AI_U(e@tdFpfWkAQsZdWW@6Y+lzc4s+npMF;>jfuhU>XS zEu0&&(y>?XhM_qD*cK+_=dn8svwwH0H{QWsDtGACQ{lxCk|2b91cvFpmzI`dTA_9q zL)DI#m2hrvg4eX0#(c?i%W`pQ)f+CB(Q)N@+VGnXRtb}oWdSI~9^}zP5|FIFU)T)a_Wcibk>h!P4P_8K{ADt-c-b$o$Pb!RtgF7Ge|k{CjnT#N&5!QtU&Cgv<0&)_-n=-#N>ga%lZ>1h)kY zSj|)QKOSWvRueRA+&_MdbzGvZk3@)ww90z*PMX8+oKB8V&mS$dJp1q`v7>s+H&fmr zvMFmlx*$FXR+Qx};#rW+DlHw*aYI8}Vzswf zxg7-EK$ed~4(S!{P0j7?jg9t>OS1Km=0B{bV-Opx{&u3g%&g^SfKAMPZJ%tt7p}~4 zaSDL3=}5-V`n;|qK!%pbofs_k%rr4!=q)OWti*z_2|hMmS;hH^|a!KaYNq0OgeEA43_Tz9WFJsPo{0N$&aEg7rcpn_PTTd9%rxWLASLJf>!3Q z-tRVT2uw2_=P;oAx2N^6XUjKJ-~gDt%M`G;HQStM@|>u*3z{X>-j;TLMsaDi8SOsX8^rVO zN9`qdXJ^^cUu9WwKaT(!A4sxH{c>SYh}V{$M1z6zNnW>@SbE22KMvhxCkZGu#5(WH zkNWi0sN5y~{0x^N=NYql*_X-LJ=I1s zik_i8;i4D#tJ&(o&=$LxWB#{`a1p2PGPpz?F*6(1N-TZtFbO|?i4~Wub|BvNT6i!!K)givX$a|Ifud7WK zyTOf1PZUh6feE?u0REUO20Ex`5u~wqAwkz2vG+^L1X!0iG&w z37Q`7RbEKiXhDsh>-Xm@_&9G`8KYpyFe!n!Y zu^%;}wq8*J*j|O`+2lY9}~&ALZ-~B&T2F)mq$LNz!<#36OBD+J9-01@iQhlqjvPZ zJM!Ct!KNltjOblJC|G>VeNH91GHy~nyLI1U?(IsNz#c<|hGuAr%{3$zm49kt6?VC~ z*LorTgOtPz*MpZ#bgU2a1s?P8hMxY6=cD0?Zy zqUe%K!Gy%PRRXq+YkFo&ZIBdfpB@l7(igt{b@l9xrDeW;49(pB#wPw(moxRnem>pI zC+JI4!Cx@{Mp|^&nB=AZjHt?vhIkM8*qPRD^ob6P;t0viAaI>RV%vJmfm6(blP2I2 z{&eCw{ZcNa>re3+TRyxDdn(3#Oo~2jM9F(wS!NfB%TogW`F?7KUH=|6He}CS~p7Lg@;- zJ=iW}T7HV4G0YtsYZL_rO(Y@+rn4KfLa2xjbG!E7Kf`GMKOI1OLlg2csvJ`B%dgkM z4?_O;X`+dX|^R@2jDrj2nD+GMgu1tmo25e*Y4L@5Iuz{p&yq-(xcbx~`Lz+R0){ zCE=}nx zz)a#pa1TijrFvd7KGA9SS`kpk3n49;c?R;M{*l?5VsaCHkpEPr4+7hTuId@MLT3gr za_g?J6DSf^U~OA3!9t96^rV5sO|)6%81CAa#jV`pyj0No1LL}rlduc_GO=)`<3B#a z%Lc9B?ez=l1`nz$YlbS!&Rse?ad4EI>^&>~HsbuIW}iBlG5gKS z#wL{-MX2Luy`JM_yt4p;fI73Yc&yD_TO<;{pPMi6f`*$1BOX|57YULQFuiyHvLW4L^;wL1s|5;#Qfa zK8-a?6P%_Xsx-cyo1*!I2DiFBlkRD~pgX&V+}l)%7=BN}k?ifidc(MJF2d>3TPoIA zbj+z&L~1{@C(4kk3Ysw0KQkWr-fc5Yw-JLD9Rp&d2-Sal6-~E+)ya%xKlPMRFc$-D zw2n7mqbM;Nk6B85eO2|b!oU?Xv;|*B%99aKKbUg>oqwB%BxC!wUGNd=CA7F5V{7MC z00wXEEs^vYD9wJ3-mcFVS6o2T4aB-Dk9@ZC{A}rN&Dx(S9Qi>crc z7L;u3nXRq$M#(Pwb7CU=NaI6laL3bc@jripLjE@3LW#HV+Ea;;*2G>vt;yX;{Jy!z z?_lT8m@IaeWYlxr5%g#ga;axd+X4L`Op9>!+n&3ZYc{lD3LCN3wW|pN&83%2_b0mu zdPfla<|rvXTP<;182MtiB@A~RyrOz*5aY!g#z#HW;2xKy)!>^;&|i>#p}=xxXFHCQO3J=Sz^wY<b3O8NL$?k|HnE5mtKJm|kP&F?9gdov(z=MNk}mXeb$iL^)ecad@Np8yb9;UH9Ihr&|7&^vxT$AoAB{txpCl{2w{Bm^}(SI51Wc>3$Odcm2p%|DYZv-@Z zP&j<-#Eq~LoPpr^i3mqG9vmgRp|N8vwblAdV7KP+CK#DzmHo+*r8an*YE@@e&XN$h zQ}^-X8cocP_lMj#I6(9rak=NC9NIj~a{MZZ6fqIebDR4CkBwLjXesZyJ?ebM682dW z9FiQ>yWbV175s54A;ApX^E*s`dPGfKv@W%L`PtS81 zqFQxb9i}y7h*VO_BWv4sIu<$XeBb#4%mVg49Y{Bu@Zx1~NJf*r-ZVJTM>M3*E?WDeP>PQryAq zXx|BBHdAiDIZb%~@#!n<(PU;`?4}j$q7~=JM4t~_&RK0#aSwt>ExA$1OJiA))i-Vijp$ zdfqI6mP&N;<-4;D#|TmO3>k6{t&jy-6op4zIPc?V+im1P@(~nCiPp(?z2sO->qDUWV0vjhS=dzqYGDW zwMKq^I`8%KI@L*u3{?ae3F55r+uw(fDgizPD(VHMRU1#!mBPg+IhfaY>%6BYF66WBtLv;WmdgtP(T?lNj&*ySvf3=ZsH>0b+47{y9CfXnKk zhG>KaKiB)!q-jJGawvZ0Mm=FoT{bT%`o^QKU&{?_culnvLCfH2G4&h;3|y0?^Oo+O z3f@CAa}k;*Snz!*OP=$`n4Xp)HO|QR5KbPO6+$|E9pMh8MCE&l7@m_@nY}bEOexQ= zS3M`M{D^GU5S`6VGcPL9+|<;(C>>0iAeD%XL4j)m-mvahuL(u?ojmbr`lb5#@nf2D zT$}`aAu_J`o`>z*2h#h3^8t)0{c)rq#Vv*98JDts;^RD|)k!ZHI;tDTPR`ZaB9~I^ zJs%Wa-X!DtSaQl?fG9I|#cpo_A?H9!YN>6HRe#iv7kF5?=arlL2xXurA#*r(O`p ztDO*#iYjLQ_Vm7@miC`}T)uo?K?df5V4Zx7l&bq@$F!Bq3WK|kqo$eed7@F2--Dhs zUBG`XnL$rT%AbhgwFlxRE|Q1IOuvwXtzKFI*9*2!)Myj*&k|&54CbUJcZe}8dD}M| zxFFIc_Q!#l-FCyX+Cfd#L@89R{M%iR1nDE9#aq_sEh~)yYC`PYOdjcSi)0b`u~)~^ zwA|J;qq5tNZ;j^lKkN9-+d2@-9UvrRS;hqhjn>pJefa$u8FCd4m2ff8r&wQCGW>2x zdUo>LM%}ACRhC)^$c=^U5`^i@QlIch6ur5 zEO&O3WU0v(I#0nW6bnD$AObt?t`{mU^#!Uj1YT&a826tD3-|uPoo`EGx@}gy>6o1o zI$UAq29uDC&%hvMlFRPGGsxf$SFM+_=dksT_ug=rp{3$1CUmzR zZQq*w1n1}?_@^aXAI@lY1rw>5D2fhkK-ADhS~5$gu}TO5)x?DMY; zvtGi&LvE?5sflI1PXDA!qE~dr(xJA8x;EzxF>l+bHjDMdXvOluI#Nw?ZeG?W>|AC3 zBqxs=DgQhrw^%U5oUW7cxP7{zNx>Q@z4>WlIu>-uPp_i$s`40nNnDpv*;xk9rjPVP zLKKdI_I23hs`Ek;U{K`1%Z;6zu*|iIfmHa)6(|I3PKXuh6hNL-UBE-1|8?d#_jv<# zAjbU{DgEmM0e5w7r%#?m+Z(-gp$48x&a%%c+gzY8|NfE4-&B9b^#-QM*13|toZEqv zIP?gy-<>lUw;b z=P36xC;dhgm)t*K8MHR)iNVD8({oEzka;~)+|Xj5o+A!?-U6a|<8LZ(i5@QG8B5{g zpPBph9m3m1bcbzdW7I41ec-dFe%ULk|51JN5y+`8<;Ou>)Iva8YE(2m(q0eZFZFRd zJs8@uNeIW{9G8Boc25G2DzP>r^ZX;pY0tS315#xqMXZAaa=dM9Lwgg-lzP<;f zyqlpFtPTqz>;w$wMR={%Gl5S7DL7bM-xrAqU3t$L^LtWX{g7fOds_8(rSOhg5g2~% zkkuS07H_etYgK;#4hnFvv6S`Rs;aIHS|!>pB=A{Bv{{yo2xP^0rFkC9fjJ9CxnTeG zlNx32?@->quNRQ`;pua2EI#jHSil44xbY|u+t+Gh)a;iYQ(mp}dt2 z1y-u*VPuH|oY9%*B_f5WaZwG-lVS9U4^CmVBBZ};wTF;Jc_re5aVCL~1Qbv*DbfMl zI0=8>3(bE+y?Xu9x&-e=4b+IT?Aa17C)P`08;aG>?Y-Sn;0Ab-3|CwAAD*0)uX@tg zeQo$gz$0Fm_5xL+5Qp+{*>Cp*APmjG$P&PgcQ0+8LVHX3>>CS30j4lNyIIlq#aX}5u=wn&s?(2{U(m1u8fa7!aX2;4^8WpHK+*y8)dTY zq~2&mw*auH&4}t6JcG$^xh6>8=+t)d**uMjJhp*e^WKbJC_g`cZ*6oKXs_@x{W)y1 zGC!Eo9NW-w_Hdqsf7cmv?A->3W2Ogu_#GRcj^M z-Ro&SGEx-UmI(YQ_}#@rT|6x4$y`i2BI)~pbJjKJek9G(Y8b7kO(@`iw9!n^#qR1%Re9LNwmwoxNi)!lPV=+8v}pX*YbJP%Q6C>3IwVF`h>i*GWbzD?v|Tw?ax0I{Iq_EI32Bz^NFoWdU9gI9=OHatgnO06`S%ML~(}d z6B^B>FeunWt71oE!^pS1O0Q7rZjZSfAATx`{W=KH1R~d5+AVyJn8ZAR5D(sj>ptG` zY@T-?JeXxO18x=rNeV@h5G<;9Ax3p3I3S z15AIJUxBS9dGqA%wa+-t{%;PzrW_?y8;)wwuIwXA&mW8w>?)TWn)3yb#fPud7t%5^ z@`qNQRa7PHSzcHcRy2Ehp2VQvxIw8~@TNaN-LSS6;#B*$-EWT_1k+{52uM!B*+c@h zOj1%()|wIlWK}`RRjizKq5~cRnRQY5E8*Ztf}icMcH)2*7<`e?_rWrQ=+@5{;nLvc zH6`vj+Q#818~M$$?1yAda0v#+?w%lGKfu>}J7>=7PkBt@p0yGg17>^C#EP>&zTRvS zD3-fXxRsffRX9u%P;LYe+3AF-H`)z(OdahFJ8)lx+y`=Jn(#zv3c$(;wSaY*6ag!| z7=rLsU$2mrS66@cY&(##e#px!BC-`Qmoc{g0KdC4%LgxYhw4{D_>u5&#~QL?uPaSzz|yxlZWk3rrXNBDl?9xD4e_#&5}p z3z>4&T;5hf<_jl7P=<%noVSNU?Po3%uY& zjgLNU29&aX8@e+9WpZx7jRs z?!MdmzKYLEOH3bt#ssz5eF!jM*F;;^nPL-s@?CC_vV&NDcNwMTM?0;K(C6U3Uv+F^ z%j2%#Gib9i0Kgs8%F=HdBG2#1#UaaG*n12b&)sf~6mQ8rTMgiF#*leS37P51mY?HG zg0m;L4>Fd;FdFy4e*DLk1IhZM^c3+o0lIfBFaXj<&^GL=052dYSJyiKNVHK`#=-3qTD9f zyj9-S71!rGX2k%oZ{T2u6+@Wmm=0~MEuNn`=aCu^IR6v}(D-XXEL>h0#4aU-!3CQ- zR=<9wnI3#VtNDj>h^ulJ2OBOz0ycmL+P>|MfQ=gaQ+iXtlAuo1;7gaKSKHZwRV-N_ z@icQmq#ZA?6w)v`s*<{G3Y4?JJ$^B{*YNahbHmQIXq78iw86?j`Rt$f>lzsyO*wzv z=v^&5=|h1LB&d0uXN@3?ebT$vhK%LR!nXfJf)L_>Oo=lwU=-lxOQ;2IOYzb)Y^G=L z-;mH1DZ6DJ3yXWAQh;Y&Y1%^5#D}1xvlqZ2H0`>+iBqo#8(i(dF0EdZ8k@4{iSb$B zvKF2kxiqyFxH;h6mMX!-)Tfj|ete=*l<}J$VNLn&F0&rD9oUr9go`O6_mY(Hzws1e z*R;US>Cji*?IWrmAe%zAAB+Qx8FF|)-qWAju>g_{cU;5y5Z~prd*#{5)O&=H=o6J4 zCT?=Rzjla4N$QXLLOUZX;xAULN5WaZ{?l`I7`o_0Y~NqM1cMjG2UC*5$Qnzks<#9e zzJp;ZxwDKS9vnsOem8E^3aSxtzvks+V2y6&ou9My_udc%|JI3|-s{swjRE;v@kpMD ze{w;orB0$K2PLbLL%wrQ-0$3mx9HWQ5V6%_8gNSr7rRF3>YwM^)WosA46t^%v?wJn zmpQ#EL~%J9Ify0Op=9g1u8+}Ko@9*<8}<9)zJRcyLMN|26E3GgEJ^lww-B_((aB0c zDPZE-$r%^L_Kye!5Gg87NU-$$78E*LneN#4u2a;iBuvAlR};i>fbFd0?7=8++xf{4r&DS9gEag~o72De9BgOF#e-|dbz%6~=G!&d2=a0Tf3^vDoK-qtJSdJ11 zkK+Ln{%beDnau-)Q{#Pr+U%C6UiTyy6^G#ew+T@&vH6=l+uDy?rQwTAAelH zNqj|DY1m}eGCFS5v}W(-VEDoNCMRWlUL0AW(l+_SnP*Pfk!2BX9(U8K0%<%_Uoh0VIb#$)P01vdw!0s$fgnw1t z(xGbs2M42^@eaO?zc;qLgJ0lU?Q#JJL-MBNF7-1w3V%jDbMs)FGiUcT3oF8uEi9)u zDoCod*51I-sS5~hy5|}*px$$m4`r4PHp5&Y9BOq8g00pHu>?iy-ZhK7@BkDG!EUvJ~9-fp{scVWs~OD5(L9Wn@3NC;0}8G@Wnu4j%c zW+v;^r_j~te#p0j^D2(RbE)iE=O$>-s`2N;Bs|cWm=WD?Z6>9FdmeWF#{RBpAKf2f zavD)q9sa28kukLM_UiH=(fyE03rYsPpYH{9!i6K5%iA;7Y!bm%1P%6+zs99L~P3QnfMTz=x=HKdX3OKqDX7#^C#g_jfrjw)rpZQe4#PLcx7T@ntYToqM1`DKWM5%VppBNTjZA#i=V(V=Ath%} zK*5g44gwmQqY#Z)^L>MqE#2;hp2*&@t^Gw9DwYhA7`3_#RvJsdfkBFo zg=h{j9ZEva5JXRwPO`ucB+i=X`l9`dFwu7Qx52fDiMQt7EE`=TVnX75{V#NHZ!|yn z-51TB#M2ZAYw5ZCt&}x*B#{bHAm0O5$`QKc^jY|MVy(}A=|A-h5)0}Dat8nYzum7k zO4&X}e7>J*0!;(!*=%dsPq0elkU3UfkH+XGs6L_QPFwC+LhV=0o3}}DH6;< z{OSP?hUv0~CH*IA_d`I*4pbZHBRC&^*2qMS8*X3GMJI@`EC zw`x+lMXPzh9GuW`?5?U+SUCnmX8hs=Ro|c_=&6GDf3N$xX`sWh`x;7MDY@p#ho-HB z*+;h=ZzAbi!ej{}9$uO(jn{7rfl&*M5!{>GOMcR|0~0ObCgNLnwaUtBe#mbruNHc} zVO#$C6(VI57&CkE^y@<+0506>;MN8*Me_IR;n_t%FPs3848259x{&m7Yf8ozq?E>b zs`S^uvTI(&j5wsk6rpESs1I6!?1UhH1cMAZ&$ygV+|T!-CR^pPV$QNmM5|kMf!q&7 z6uE%W=6ZObpL~mGArx2ILkr62hz<%MRr8WWu=`(ZTQe|;RNmKI8Edjc-2SL9W)Slr z1Deicym!;>>p<}7E65iYyvibVK*ePqzFpLC{PrwxNm`&B09&{P2DUULHJLCD+S=!c(=N)=!Y z==h*TNBf2D5Q-+q*^ z(?NB%tCc`lEn4z)9G&y@a~FR}YLDrOEybl@agM>qz#ZB7Qg0v~L*4_;ww>+R!m2jf=Ght-A=k@bSK4wgp(ApJ z&Gtgp?T^(l0Fy@JEoJ&ue0qLkIhLiheA#lM%`s*+h2j& z+d&4LieBQ+=0!by+ePthmH&jTJ-ws^z8*37T?PL ztkB;OzHlZMbebpG*l;ze04bh{KL)^SV9AD(?IS^NCoKm>P z6^>gZ=wgF$V6I|<6}1>yR0_e~{Sq`yQIbf^_R#m5*7@_Db4nXV(r|6@!1}gA1%~ja zcbqJZc0A9+8b4wND9e%WrtXvM#tuf9*51|HK0itvG`^!Vz*G+%z^66cDM#rM=;+|( zr}5-*DFcUcx-9h94CkvC7U0e%V!sGjUA7+e_4U=K_5C4maT9xf<@(7WO z0$2!R>vIlNbdX%LLSq{%Ch+P5Sf+fJdHSWYiln#xfAP0cQ(vVd7cLYjd?CQcZ~eAQ zto7tMHKXPdo~AwptRplb6C~?kZ^M{B)t3iMhyvurD@1oyir<=FtVP$=^%E9JEn9ml zcLikM&PCALb_K64j>)1`gs^78MGbpsWoil}s*(KF0r|~|k6=jMq(HJWY1$sXe#CQs zasMnNUG9))1jxNC%sjDTE5%46o`2R;JKZufGJMN-1mdR2HulN5ii*U~$RP;nPHc0r zciq4AMKm2bxiV@4W?^6)29UP1C&u|mOE)&KG1B9IcJOe0WBdZnsFw{?{Z43t(j;&F zOgQf;K0QuMg2sV=9<-hzV}kC#K*^5dsX^v!NiXz)#9MU7-oncOm+&QOY2wZMR^dTSM1&2F(G=Xh&*=#)3eS z=~h!{ZH`woLWKbq5zt2Dt@@694%@wO2%1Af>?5w!_YB2gm9O@V9uXW`2!oP#R@61&y_vL9h zvv$tavcX$|BrU>kH<7t$39-RBcY4dfj+W;jOk10@t&!{16-?4xsDfEEHN&#|e7`_PyX&nsG6dRF=3iSvc_>&tVQNbGxh2BbaR}SwulY zJmq>QUv>!tikg)KxYWzd`5JwF1ru12+12vPJE7>s{Bz@zr1fo#eb3EXIj>BPN4&BB z#Bm>n2P<8YRymfW4SC@EGa`)AMekih*EfKByMFyg4CQU zbP9(=T1f8v{;V?RlT$mM%v&4nr)p-W?#!e-8)EYs1xeN4K+-&?arkUMNPLZRJ9lAw z@!CH9f$5)d(}Nq`^1JEn8Hh>{KM1c>^@G@3$#4vwVo!w4v0Gc~ti-pYowZfxI1R01 z59#L!gVSvJ2)l!@)8>2rKtLPX$T7cR_1El}j)kaZq(ENgN*ePnizFVUh5FY95V1v+R1mtLt}G&H6CGbc zSgXzgs2JnfPYq@$z5!1Zgo_8hmYAwU4b3%C_YMo>KqaQ6j$cU_# zao8xcEv;`y$~ul8 z?wpN3dCoNxE?x6By-+>rgZ1w{gbyzgiI+S(D9c3kxnKai+QUtN2g4KC6HQ_FQ}kJe(`*=nK| zcy-^so%uD4UWB>j7A%)l!L9!}PLs|b%ibQl**Nku<(3zju86|8tASD1b`?yXc@Bn$p7mYKSpF8(_qlPf1`KIsY}oK zXjtJp|L26wYaDBCLucfB`Qz)SnQ_1Cm$=IqFtBg}IRXRM9%RMQSYKeVoM+%o9~bTP z41u!pv5b|(xlCQ}bx00jl}$+UdSfTi5O^oE$V5L)I^B6HkC7Kt_EtIB9t+NL^;I8} zs@XVL;T1hlXtXIeJ)x9Kwh6q_siR@s9viD-RT9;_pFTWD^`<9#9s)9}a)Ie7K=iij zIaX}1%`S;e+|L}XfzI-e0piJ8SE=_b8YnDukfA_}zVZOYUVeA+9veF6^@mg=dyg5m zVuhXZ?Jh>7+%86>Y)rowWL?X3-5PewV6-uVhKO@Z$tKQC$bhxZcC(~)D+cn$^QwJV zO+&h^mKgTAh-fm2wtHX6uOAvgy!?8%+u++%p#CO9-VjbhspBpA?W079c)r9psJID8 zM(fI$GTBy{>n*L?Gs2qGxyj;jza#PiI2?fKGFKIF{)C1mij!&+oNCViwQeuQXKf_( zyVns%KMjWtFe$fy5Qt9{09chA;&7{}Pf82Fa!NXBGo2z4gL|j1?Qj72BMJWga5&YX zR~yL0!bVIZCXq`8WVc5`y_#M%>Fcvu>WFo!S1}K=*dagfAWWMpX~yPt@dCUs=DgOA zHAUMoRG?gU^awK5;r!ihK+1e+%0AN0H}$U+dNq{9T4(CgfPcK=_B!Ume0z0nqqcuc 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�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 UEwJ Date: Fri, 1 Apr 2022 07:52:02 +0800 Subject: [PATCH 311/507] Codes Optimization * Improve on implementation in EditTaskCommand and add assertion for invalid task type after bug fix with Alfred. * Remove some repetitive usage messages for some exception handlings. * Optimize codes of CommandException and ParseException messages for AddTodoTask, AddDeadlineTask, AddEventTask and EditTaskCommand command and parser files to better show the exception handlings. --- .../manageezpz/commons/core/Messages.java | 21 +++++++---- .../commands/AddDeadlineTaskCommand.java | 2 +- .../logic/commands/AddEventTaskCommand.java | 2 +- .../logic/commands/AddTodoTaskCommand.java | 2 +- .../logic/commands/EditTaskCommand.java | 26 ++++++------- .../parser/AddDeadlineTaskCommandParser.java | 32 +++++++++------- .../parser/AddEmployeeCommandParser.java | 5 ++- .../parser/AddEventTaskCommandParser.java | 37 +++++++++++-------- .../parser/AddTodoTaskCommandParser.java | 17 ++++++--- .../logic/parser/AddressBookParser.java | 6 ++- .../parser/DeleteEmployeeCommandParser.java | 4 +- .../logic/parser/DeleteTaskCommandParser.java | 4 +- .../parser/EditEmployeeCommandParser.java | 4 +- .../logic/parser/EditTaskCommandParser.java | 6 +-- .../parser/FindEmployeeCommandParser.java | 2 +- .../logic/parser/FindTaskCommandParser.java | 4 +- .../logic/parser/MarkTaskCommandParser.java | 4 +- .../logic/parser/TagTaskCommandParser.java | 6 +-- .../parser/TagTaskPriorityCommandParser.java | 6 +-- .../logic/parser/UnmarkTaskCommandParser.java | 4 +- .../logic/parser/UntagTaskCommandParser.java | 6 +-- .../manageezpz/model/task/Description.java | 6 +-- .../logic/parser/AddCommandParserTest.java | 6 +-- .../logic/parser/AddressBookParserTest.java | 11 +++--- .../DeleteEmployeeCommandParserTest.java | 4 +- .../logic/parser/EditCommandParserTest.java | 4 +- .../parser/FindEmployeeCommandParserTest.java | 8 ++-- .../parser/FindTaskCommandParserTest.java | 21 +++++++---- 28 files changed, 142 insertions(+), 118 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 9dac2750268..7d9ae8d0369 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -6,22 +6,27 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command!"; - public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n\n%1$s"; + public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format!"; + public static final String MESSAGE_INVALID_COMMAND_FORMAT_BIND = "Invalid command format! \n\n%1$s"; + public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty! \n\n%1$s"; public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! \n\n%1$s"; - public static final String MESSAGE_INVALID_PRIORITY = - "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n\n%1$s"; public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n\n%1$s"; + public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; + public static final String MESSAGE_INVALID_PRIORITY = + "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n\n%1$s"; + public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; - public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update task success: %1$s"; - public static final String MESSAGE_UNEXPECTED_ERROR = "An unexpected error has occurred!"; - public static final String MESSAGE_DUPLICATE_TASK = "Task with the same description '%1$s' already exists!\n"; - public static final String MESSAGE_INVALID_TIME_RANGE = "The time range you provided is invalid!"; - public static final String MESSAGE_EMPTY_ENDTIME = "The end time cannot be empty!"; + public static final String MESSAGE_INVALID_TASK_TYPE = "Task is an invalid Task Type!"; + public static final String MESSAGE_INVALID_TIME_FORMAT = "Invalid time format!"; + public static final String MESSAGE_INVALID_TIME_RANGE = + "The time range you provided is invalid! End time should be after start time!"; + public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update Task success: %1$s"; + public static final String MESSAGE_DUPLICATE_TASK = "Task with the same description '%1$s' already exists! \n\n"; } diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 5c272fdb096..645d1cf84c0 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -36,7 +36,7 @@ public CommandResult execute(Model model) throws CommandException { if (model.hasTask(toAdd)) { throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, - toAdd.getDescription()) + "\n" + MESSAGE_USAGE); + toAdd.getDescription()) + MESSAGE_USAGE); } model.addDeadline(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index 27560088d22..4ea5b46dcfb 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -36,7 +36,7 @@ public CommandResult execute(Model model) throws CommandException { if (model.hasTask(toAdd)) { throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, - toAdd.getDescription()) + "\n" + MESSAGE_USAGE); + toAdd.getDescription()) + MESSAGE_USAGE); } model.addEvent(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java index b7e46c54d44..e29daac7a50 100644 --- a/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddTodoTaskCommand.java @@ -37,7 +37,7 @@ public CommandResult execute(Model model) throws CommandException { if (model.hasTask(toAdd)) { throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, - toAdd.getDescription()) + "\n" + MESSAGE_USAGE); + toAdd.getDescription()) + MESSAGE_USAGE); } model.addTodo(toAdd); diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index d40b481a1e8..3c80bd90fa3 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -1,10 +1,10 @@ package manageezpz.logic.commands; import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_TYPE; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; -import static manageezpz.commons.core.Messages.MESSAGE_UNEXPECTED_ERROR; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -54,7 +54,7 @@ public class EditTaskCommand extends Command { + "For an event task, a start time and an end time " + "separated with an empty space must be provided " + "instead of a single time value.\n" - + "Examples: \n" + EXAMPLE_ONE + "\n" + EXAMPLE_TWO + "\n" + EXAMPLE_THREE; + + "Examples: " + EXAMPLE_ONE + "\n" + EXAMPLE_TWO + "\n" + EXAMPLE_THREE; private final Index index; private final String desc; @@ -86,7 +86,7 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } - Task currentTask = model.getFilteredTaskList().get(index.getZeroBased()); + Task currentTask = lastShownList.get(index.getZeroBased()); Task updatedTask = null; try { @@ -98,19 +98,19 @@ public CommandResult execute(Model model) throws CommandException { updatedTask = updateEvent((Event) currentTask, this.desc, this.date, this.time); } else { // Should not reach this as there are only three types of tasks - throw new CommandException(MESSAGE_UNEXPECTED_ERROR); + assert false : MESSAGE_INVALID_TASK_TYPE; } model.setTask(currentTask, updatedTask); return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, updatedTask)); - } catch (CommandException | ParseException e) { - throw new CommandException(e.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, e); + } catch (ParseException pe) { + throw new CommandException(pe.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, pe); } catch (DuplicateTaskException de) { - throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, updatedTask) + "\n" + MESSAGE_USAGE, de); + throw new CommandException(String.format(MESSAGE_DUPLICATE_TASK, this.desc) + MESSAGE_USAGE); } } - private Task updateTodo(Todo currentTask, String desc) throws CommandException, ParseException { + private Task updateTodo(Todo currentTask, String desc) throws ParseException { Todo updatedToDoTask = new Todo(currentTask); if (!desc.isEmpty()) { @@ -121,8 +121,7 @@ private Task updateTodo(Todo currentTask, String desc) throws CommandException, return updatedToDoTask; } - private Task updateDeadline(Deadline currentTask, String desc, String date, String time) - throws CommandException, ParseException { + private Task updateDeadline(Deadline currentTask, String desc, String date, String time) throws ParseException { Deadline updatedDeadlineTask = new Deadline(currentTask); if (!desc.isEmpty()) { @@ -143,8 +142,7 @@ private Task updateDeadline(Deadline currentTask, String desc, String date, Stri return updatedDeadlineTask; } - private Task updateEvent(Event currentTask, String desc, String date, String time) - throws CommandException, ParseException { + private Task updateEvent(Event currentTask, String desc, String date, String time) throws ParseException { Event updatedEventTask = new Event(currentTask); if (!desc.isEmpty()) { @@ -161,7 +159,7 @@ private Task updateEvent(Event currentTask, String desc, String date, String tim String[] newStartEndTimeStrParts = time.split(" "); if (newStartEndTimeStrParts.length != 2) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE)); + throw new ParseException(MESSAGE_INVALID_TIME_FORMAT); } Time newStartTime = ParserUtil.parseTime(newStartEndTimeStrParts[0]); diff --git a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java index b6c53156f21..2894db29ac1 100644 --- a/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddDeadlineTaskCommandParser.java @@ -1,6 +1,8 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; +import static manageezpz.logic.commands.AddDeadlineTaskCommand.MESSAGE_USAGE; import static manageezpz.logic.parser.CliSyntax.PREFIX_BY_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -26,25 +28,29 @@ public AddDeadlineTaskCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimapDeadline, PREFIX_DESCRIPTION, PREFIX_BY_DATETIME) || !argMultimapDeadline.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, AddDeadlineTaskCommand.MESSAGE_USAGE)); } - Description desc = ParserUtil.parseDescription(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); - String byDateTime = argMultimapDeadline.getValue(PREFIX_BY_DATETIME).get(); + try { + Description desc = ParserUtil.parseDescription(argMultimapDeadline.getValue(PREFIX_DESCRIPTION).get()); - String[] parseByDateTime = byDateTime.split(" "); - if (parseByDateTime.length != 2) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - AddDeadlineTaskCommand.MESSAGE_USAGE)); - } - Date date = ParserUtil.parseDate(parseByDateTime[0]); - Time time = ParserUtil.parseTime(parseByDateTime[1]); - Deadline deadline = new Deadline(desc, date, time); + String byDateTime = argMultimapDeadline.getValue(PREFIX_BY_DATETIME).get(); + String[] parseByDateTime = byDateTime.split(" "); - return new AddDeadlineTaskCommand(deadline); - } + if (parseByDateTime.length != 2) { + throw new ParseException(MESSAGE_INVALID_COMMAND_FORMAT); + } + Date date = ParserUtil.parseDate(parseByDateTime[0]); + Time time = ParserUtil.parseTime(parseByDateTime[1]); + + Deadline deadline = new Deadline(desc, date, time); + return new AddDeadlineTaskCommand(deadline); + } catch (ParseException pe) { + throw new ParseException(pe.getMessage() + "\n\n" + MESSAGE_USAGE); + } + } /** * Returns true if none of the prefixes contains empty {@code Optional} values in the given diff --git a/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java index 3dd5f5c988c..cc67d3783b4 100644 --- a/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEmployeeCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; @@ -30,7 +30,8 @@ public AddEmployeeCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEmployeeCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + AddEmployeeCommand.MESSAGE_USAGE)); } Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index f98f495337e..cc07ce5c0eb 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -1,7 +1,8 @@ package manageezpz.logic.parser; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; +import static manageezpz.logic.commands.AddEventTaskCommand.MESSAGE_USAGE; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -27,28 +28,32 @@ public AddEventTaskCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimapEvent, PREFIX_DESCRIPTION, PREFIX_AT_DATETIME) || !argMultimapEvent.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MESSAGE_USAGE)); } - Description desc = ParserUtil.parseDescription(argMultimapEvent.getValue(PREFIX_DESCRIPTION).get()); + try { + Description desc = ParserUtil.parseDescription(argMultimapEvent.getValue(PREFIX_DESCRIPTION).get()); - String atDateTime = argMultimapEvent.getValue(PREFIX_AT_DATETIME).get(); - String[] parseAtDateTime = atDateTime.split(" "); + String atDateTime = argMultimapEvent.getValue(PREFIX_AT_DATETIME).get(); + String[] parseAtDateTime = atDateTime.split(" "); - if (parseAtDateTime.length != 3) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEventTaskCommand.MESSAGE_USAGE)); - } + if (parseAtDateTime.length != 3) { + throw new ParseException(MESSAGE_INVALID_COMMAND_FORMAT); + } - Date date = ParserUtil.parseDate(parseAtDateTime[0]); - Time startTime = ParserUtil.parseTime(parseAtDateTime[1]); - Time endTime = ParserUtil.parseTime(parseAtDateTime[2]); + Date date = ParserUtil.parseDate(parseAtDateTime[0]); + Time startTime = ParserUtil.parseTime(parseAtDateTime[1]); + Time endTime = ParserUtil.parseTime(parseAtDateTime[2]); - if (endTime.getParsedTime().compareTo(startTime.getParsedTime()) < 0) { - throw new ParseException(MESSAGE_INVALID_TIME_RANGE); - } + if (endTime.getParsedTime().compareTo(startTime.getParsedTime()) < 0) { + throw new ParseException(Time.MESSAGE_CONSTRAINTS); + } - Event event = new Event(desc, date, startTime, endTime); - return new AddEventTaskCommand(event); + Event event = new Event(desc, date, startTime, endTime); + return new AddEventTaskCommand(event); + } catch (ParseException pe) { + throw new ParseException(pe.getMessage() + "\n\n" + MESSAGE_USAGE); + } } /** diff --git a/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java index 1dc28fc8320..f608151b338 100644 --- a/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddTodoTaskCommandParser.java @@ -1,6 +1,7 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; +import static manageezpz.logic.commands.AddTodoTaskCommand.MESSAGE_USAGE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import java.util.stream.Stream; @@ -22,13 +23,17 @@ public AddTodoTaskCommand parse(String args) throws ParseException { if (!arePrefixesPresent(argMultimapTodo, PREFIX_DESCRIPTION) || !argMultimapTodo.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTodoTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + AddTodoTaskCommand.MESSAGE_USAGE)); } - Description description = ParserUtil.parseDescription(argMultimapTodo.getValue(PREFIX_DESCRIPTION).get()); - Todo todoTask = new Todo(description); - - return new AddTodoTaskCommand(todoTask); + try { + Description desc = ParserUtil.parseDescription(argMultimapTodo.getValue(PREFIX_DESCRIPTION).get()); + Todo todoTask = new Todo(desc); + return new AddTodoTaskCommand(todoTask); + } catch (ParseException pe) { + throw new ParseException(pe.getMessage() + "\n\n" + MESSAGE_USAGE); + } } /** diff --git a/src/main/java/manageezpz/logic/parser/AddressBookParser.java b/src/main/java/manageezpz/logic/parser/AddressBookParser.java index a9c3f416f80..ae492036753 100644 --- a/src/main/java/manageezpz/logic/parser/AddressBookParser.java +++ b/src/main/java/manageezpz/logic/parser/AddressBookParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import java.util.regex.Matcher; @@ -48,12 +48,14 @@ public class AddressBookParser { */ public Command parseCommand(String userInput) 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)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, HelpCommand.MESSAGE_USAGE)); } final String commandWord = matcher.group("commandWord"); final String arguments = matcher.group("arguments"); + switch (commandWord) { case AddEmployeeCommand.COMMAND_WORD: diff --git a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index def4092c00e..efeba593cc6 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.DeleteEmployeeCommand; @@ -22,7 +22,7 @@ public DeleteEmployeeCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new DeleteEmployeeCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, DeleteEmployeeCommand.MESSAGE_USAGE), pe); } } diff --git a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java index 249f14d1eb7..056322ffd30 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.DeleteTaskCommand; @@ -22,7 +22,7 @@ public DeleteTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new DeleteTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, DeleteTaskCommand.MESSAGE_USAGE), pe); } } diff --git a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java index 1bd78d43bae..d2f0409a6fa 100644 --- a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java @@ -1,7 +1,7 @@ package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; @@ -34,7 +34,7 @@ public EditEmployeeCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE), pe); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MESSAGE_USAGE), pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index 094050e600c..fa5a81e17bc 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -1,7 +1,7 @@ package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -33,14 +33,14 @@ public EditTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, EditTaskCommand.MESSAGE_USAGE), pe); } if (argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty() && argMultimap.getValue(PREFIX_DATE).isEmpty() && argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, EditTaskCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java index 6551ae86b32..ba8cb4e9d4b 100644 --- a/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindEmployeeCommandParser.java @@ -39,7 +39,7 @@ public FindEmployeeCommand parse(String userInput) throws ParseException { if (hasError) { String finalMessage = errorMessage + FindEmployeeCommand.MESSAGE_USAGE; - String displayedMessage = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, finalMessage); + String displayedMessage = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, finalMessage); throw new ParseException(displayedMessage); } else { PersonMultiplePredicate predicate = new PersonMultiplePredicate(names, phone, email); diff --git a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java index bce7e161693..8319d2dc1ce 100644 --- a/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/FindTaskCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_ASSIGNEES; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DEADLINE; @@ -52,7 +52,7 @@ public FindTaskCommand parse(String args) throws ParseException { if (hasError) { String finalMessage = errorMessage + FindTaskCommand.MESSAGE_USAGE; - String displayedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, finalMessage); + String displayedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, finalMessage); throw new ParseException(displayedMessage); } else { return new FindTaskCommand(new TaskMultiplePredicate( diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java index be7b9b4d4b9..a09a97030a9 100644 --- a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.MarkTaskCommand; @@ -22,7 +22,7 @@ public MarkTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new MarkTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MarkTaskCommand.MESSAGE_USAGE), pe); } } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index 844b67f0c36..42ce3b0a260 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -3,7 +3,7 @@ import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import java.util.stream.Stream; @@ -31,12 +31,12 @@ public TagTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, TagTaskCommand.MESSAGE_USAGE), pe); } if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, TagTaskCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 43cb5fd1e8e..4c651581f58 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -2,7 +2,7 @@ import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PRIORITY; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; @@ -31,12 +31,12 @@ public TagTaskPriorityCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapPriority.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, TagTaskPriorityCommand.MESSAGE_USAGE), pe); } if (!arePrefixesPresent(argMultimapPriority, PREFIX_PRIORITY)) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, TagTaskPriorityCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java index 109dfa8496e..b0ae65e4621 100644 --- a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.UnmarkTaskCommand; @@ -22,7 +22,7 @@ public UnmarkTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new UnmarkTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, UnmarkTaskCommand.MESSAGE_USAGE), pe); } } diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index 7850f9027e6..d9a59e1691e 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -2,7 +2,7 @@ import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import java.util.stream.Stream; @@ -28,12 +28,12 @@ public UntagTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, UntagTaskCommand.MESSAGE_USAGE), pe); } if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, UntagTaskCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/manageezpz/model/task/Description.java b/src/main/java/manageezpz/model/task/Description.java index 664a4ad9b21..fc4f18d03c4 100644 --- a/src/main/java/manageezpz/model/task/Description.java +++ b/src/main/java/manageezpz/model/task/Description.java @@ -3,12 +3,8 @@ import static java.util.Objects.requireNonNull; import static manageezpz.commons.util.AppUtil.checkArgument; -import manageezpz.logic.commands.AddTodoTaskCommand; - public class Description { - public static final String MESSAGE_CONSTRAINTS = "Description should not be blank" - + "\r\n" - + AddTodoTaskCommand.MESSAGE_USAGE; + public static final String MESSAGE_CONSTRAINTS = "Description should not be blank!"; public final String description; diff --git a/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java index 6c9ac49f938..2b5266fc17d 100644 --- a/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddCommandParserTest.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; import static manageezpz.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; @@ -65,7 +65,7 @@ public void parse_optionalFieldsMissing_success() { @Test public void parse_compulsoryFieldMissing_failure() { - String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEmployeeCommand.MESSAGE_USAGE); + String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, AddEmployeeCommand.MESSAGE_USAGE); // missing name prefix assertParseFailure(parser, VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB, @@ -104,6 +104,6 @@ public void parse_invalidValue_failure() { // non-empty preamble assertParseFailure(parser, PREAMBLE_NON_EMPTY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB, - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddEmployeeCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, AddEmployeeCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java index 972998ca1c2..ed53391b9d2 100644 --- a/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java +++ b/src/test/java/manageezpz/logic/parser/AddressBookParserTest.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; import static manageezpz.testutil.Assert.assertThrows; @@ -58,8 +58,9 @@ public void parseCommand_delete() throws Exception { public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); - EditEmployeeCommand command = (EditEmployeeCommand) parser.parseCommand(EditEmployeeCommand.COMMAND_WORD + " " - + INDEX_FIRST.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + EditEmployeeCommand command = (EditEmployeeCommand) parser.parseCommand( + EditEmployeeCommand.COMMAND_WORD + " " + INDEX_FIRST.getOneBased() + + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); assertEquals(new EditEmployeeCommand(INDEX_FIRST, descriptor), command); } @@ -94,8 +95,8 @@ public void parseCommand_list() throws Exception { @Test public void parseCommand_unrecognisedInput_throwsParseException() { - assertThrows(ParseException.class, String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () - -> parser.parseCommand("")); + assertThrows(ParseException.class, String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + HelpCommand.MESSAGE_USAGE), () -> parser.parseCommand("")); } @Test diff --git a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index 6f4c1b79af7..07a28e42221 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; @@ -28,6 +28,6 @@ public void parse_validArgs_returnsDeleteCommand() { @Test public void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, "a", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteEmployeeCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, DeleteEmployeeCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java index 49a2bbb6a07..4e5e0f72294 100644 --- a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java @@ -1,6 +1,6 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; import static manageezpz.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; @@ -34,7 +34,7 @@ public class EditCommandParserTest { private static final String MESSAGE_INVALID_FORMAT = - String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE); + String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MESSAGE_USAGE); private EditEmployeeCommandParser parser = new EditEmployeeCommandParser(); diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index 009f1e03d5c..0d9b3bc14d2 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -20,13 +20,13 @@ class FindEmployeeCommandParserTest { private static final String EMPTY_STRING = ""; - private static final String NO_OPTION_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String NO_OPTION_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindEmployeeCommand.NO_OPTIONS + FindEmployeeCommand.MESSAGE_USAGE); - private static final String INVALID_NAME_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_NAME_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindEmployeeCommand.INVALID_NAME + FindEmployeeCommand.MESSAGE_USAGE); - private static final String INVALID_PHONE_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_PHONE_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindEmployeeCommand.INVALID_PHONE + FindEmployeeCommand.MESSAGE_USAGE); - private static final String INVALID_EMAIL_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_EMAIL_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindEmployeeCommand.INVALID_EMAIL + FindEmployeeCommand.MESSAGE_USAGE); private FindEmployeeCommandParser parser; diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index f0e709da269..f6229b01f1a 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -30,24 +30,29 @@ class FindTaskCommandParserTest { private static final String EMPTY_STRING = ""; - private static final String NO_OPTIONS_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String NO_OPTIONS_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.NO_OPTIONS + FindTaskCommand.MESSAGE_USAGE); private static final String INVALID_DESCRIPTION_ERROR_MESSAGE = - String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.INVALID_DESCRIPTION + FindTaskCommand.MESSAGE_USAGE); - private static final String INVALID_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_DATE_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.INVALID_DATE + FindTaskCommand.MESSAGE_USAGE); - private static final String INVALID_PRIORITY_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_PRIORITY_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.INVALID_PRIORITY + FindTaskCommand.MESSAGE_USAGE); private static final String INVALID_ASSIGNEE_COMMAND_MESSAGE = - String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.INVALID_ASSIGNEE + FindTaskCommand.MESSAGE_USAGE); - private static final String INVALID_BOOLEAN_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String INVALID_BOOLEAN_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.INVALID_BOOLEAN + FindTaskCommand.MESSAGE_USAGE); - private static final String TODO_DATE_ERROR_MESSAGE = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + private static final String TODO_DATE_ERROR_MESSAGE = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.TODO_AND_DATE_OPTION_TOGETHER + FindTaskCommand.MESSAGE_USAGE); private static final String MORE_THAN_ONE_TASK_TYPE_ERROR_MESSAGE = - String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND, FindTaskCommand.MORE_THAN_ONE_TASK_TYPE + FindTaskCommand.MESSAGE_USAGE); private FindTaskCommandParser parser; From 8c918977b0fa6caacc6ea42d4deaaf8a0f9de8d3 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sat, 2 Apr 2022 20:19:01 +0800 Subject: [PATCH 312/507] Update bugs found via PE-D. --- src/main/java/manageezpz/MainApp.java | 10 +++++----- .../manageezpz/logic/commands/AddEmployeeCommand.java | 7 ++++--- src/main/java/manageezpz/logic/parser/ParserUtil.java | 1 + src/main/java/manageezpz/model/person/Person.java | 5 ++++- src/main/java/manageezpz/model/person/Phone.java | 5 +++-- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index 8c64e66ddbd..ea5997c0f13 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -79,15 +79,15 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { try { addressBookOptional = storage.readAddressBook(); if (!addressBookOptional.isPresent()) { - logger.info("Data file not found. Will be starting with a sample AddressBook"); + logger.info("Data file not found. Will be starting with sample data in manageEZPZ"); } initialData = addressBookOptional.orElseGet(SampleDataUtil::getSampleAddressBook); storage.saveAddressBook(initialData); } catch (DataConversionException e) { - logger.warning("Data file not in the correct format. Will be starting with an empty AddressBook"); + logger.warning("Data file not in the correct format. Will be starting with an empty manageEZPZ"); initialData = new AddressBook(); } catch (IOException e) { - logger.warning("Problem while reading from the file. Will be starting with an empty AddressBook"); + logger.warning("Problem while reading from the file. Will be starting with an empty manageEZPZ"); initialData = new AddressBook(); } @@ -152,7 +152,7 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { + "Using default user prefs"); initializedPrefs = new UserPrefs(); } catch (IOException e) { - logger.warning("Problem while reading from the file. Will be starting with an empty AddressBook"); + logger.warning("Problem while reading from the file. Will be starting with an empty manageEZPZ"); initializedPrefs = new UserPrefs(); } @@ -168,7 +168,7 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { @Override public void start(Stage primaryStage) { - logger.info("Starting AddressBook " + MainApp.VERSION); + logger.info("Starting manageEZPZ " + MainApp.VERSION); ui.start(primaryStage); } diff --git a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java index 1cb61eab585..d117ce5aa05 100644 --- a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java @@ -29,7 +29,9 @@ public class AddEmployeeCommand extends Command { public static final String MESSAGE_SUCCESS = "New Employee added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "Employee %1$s already exists!\n"; + public static final String MESSAGE_DUPLICATE_PERSON = "Employee, phone number or " + + "Email already exists in manageEZPZ! " + + "Please Check again!\n"; private final Person toAdd; @@ -46,8 +48,7 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); if (model.hasPerson(toAdd)) { - throw new CommandException(String.format(MESSAGE_DUPLICATE_PERSON, - toAdd.getName().toString()) + "\n" + MESSAGE_USAGE); + throw new CommandException(MESSAGE_DUPLICATE_PERSON + "\n" + MESSAGE_USAGE); } model.addPerson(toAdd); diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 29562b976ff..c5b65791364 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -116,6 +116,7 @@ public static Time parseTime(String time) throws ParseException { */ public static Description parseDescription(String description) throws ParseException { requireNonNull(description); + description = description.replaceAll("[\\p{C}]", ""); //this filters the "invisible" characters String trimmedDescription = description.trim(); if (!Description.isValidDescription(trimmedDescription)) { throw new ParseException(Description.MESSAGE_CONSTRAINTS); diff --git a/src/main/java/manageezpz/model/person/Person.java b/src/main/java/manageezpz/model/person/Person.java index f9dda4af3b9..3fe9c28d26c 100644 --- a/src/main/java/manageezpz/model/person/Person.java +++ b/src/main/java/manageezpz/model/person/Person.java @@ -4,6 +4,7 @@ import java.util.Objects; + /** * Represents a Person in the address book. * Guarantees: details are present and not null, field values are validated, immutable. @@ -49,7 +50,9 @@ public boolean isSamePerson(Person otherPerson) { } return otherPerson != null - && otherPerson.getName().equals(getName()); + && (otherPerson.getName().equals(getName()) + || otherPerson.getEmail().equals(getEmail()) + || otherPerson.getPhone().equals(getPhone())); } /** diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index 0a69f43c78f..280c5d75a80 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -11,8 +11,9 @@ public class Phone { public static final String MESSAGE_CONSTRAINTS = - "Phone numbers should only contain numbers, and it should be at least 3 digits long"; - public static final String VALIDATION_REGEX = "\\d{3,}"; + "Phone numbers should only contain numbers, and it should be at " + + "least 3 digits long but not longer than 15 digits"; + public static final String VALIDATION_REGEX = "\\d{3,15}"; public final String value; /** From 5a31fe672846f314049c923266553fa259f005ef Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sat, 2 Apr 2022 21:36:15 +0800 Subject: [PATCH 313/507] Update model classes base on bugs found in PE-D. --- .../java/manageezpz/logic/parser/ParserUtil.java | 1 + src/main/java/manageezpz/model/person/Name.java | 8 +------- src/main/java/manageezpz/model/task/Date.java | 4 ++-- .../manageezpz/logic/commands/CommandTestUtil.java | 2 +- .../logic/parser/FindEmployeeCommandParserTest.java | 4 ++-- .../logic/parser/FindTaskCommandParserTest.java | 2 +- .../manageezpz/logic/parser/ParserUtilTest.java | 2 +- src/test/java/manageezpz/model/person/NameTest.java | 4 ++-- .../java/manageezpz/model/person/PersonTest.java | 13 ++++++++----- .../manageezpz/storage/JsonAdaptedPersonTest.java | 2 +- 10 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index c5b65791364..e2f157c6122 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -88,6 +88,7 @@ public static Email parseEmail(String email) throws ParseException { */ public static Date parseDate(String date) throws ParseException { requireNonNull(date); + System.out.println(Date.isValidDate(date)); if (!Date.isValidDate(date)) { throw new ParseException(Date.MESSAGE_CONSTRAINTS); } diff --git a/src/main/java/manageezpz/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java index 1ab73d1a561..7874f2a5465 100644 --- a/src/main/java/manageezpz/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -12,12 +12,6 @@ public class Name { public static final String MESSAGE_CONSTRAINTS = "Names should only contain alphanumeric characters and spaces, and it should not be blank"; - /* - * The first character of the address must not be a whitespace, - * otherwise " " (a blank string) becomes a valid input. - */ - public static final String VALIDATION_REGEX = "[\\p{Alnum}][\\p{Alnum} ]*"; - public final String fullName; /** @@ -35,7 +29,7 @@ public Name(String name) { * Returns true if a given string is a valid name. */ public static boolean isValidName(String test) { - return test.matches(VALIDATION_REGEX); + return !test.trim().isEmpty(); } diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 01445e8500c..21d7547e5b5 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -11,9 +11,9 @@ public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the format of yyyy-MM-dd.\n" - + "Month should be between 1 and 12 and Day should be between 1 and 31."; + + "Month should be between 1 and 12, Day should be between 1 and 31 & Year should be greater then 0000."; - public static final String VALIDATION_REGEX = "\\d{4}\\D\\d{2}\\D\\d{2}"; + public static final String VALIDATION_REGEX = "(?!0000)\\d{4}\\D\\d{2}\\D\\d{2}"; private String date; diff --git a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java index 43315736ae3..959bf0b5cab 100644 --- a/src/test/java/manageezpz/logic/commands/CommandTestUtil.java +++ b/src/test/java/manageezpz/logic/commands/CommandTestUtil.java @@ -43,7 +43,7 @@ public class CommandTestUtil { public static final String EMAIL_DESC_AMY = " " + PREFIX_EMAIL + VALID_EMAIL_AMY; public static final String EMAIL_DESC_BOB = " " + PREFIX_EMAIL + VALID_EMAIL_BOB; - public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + "James&"; // '&' not allowed in names + public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + " "; // space not allowed in names public static final String INVALID_PHONE_DESC = " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones public static final String INVALID_EMAIL_DESC = " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol public static final String PREAMBLE_WHITESPACE = "\t \r \n"; diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index 0d9b3bc14d2..980303c971c 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -56,8 +56,8 @@ void findEmployeeCommandParser_noName_throwsParseException() { @Test void findEmployeeCommandParser_invalidNamesUsed_throwParseException() { - String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), - VALID_NAME_AMY, "James&"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), " "); + System.out.println(userInput); assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); } diff --git a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java index f6229b01f1a..6735bc14256 100644 --- a/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindTaskCommandParserTest.java @@ -161,7 +161,7 @@ void findTaskCommandParser_emptyAssignee_throwParseException() { @Test void findTaskCommandParser_invalidAssignee_throwParseException() { - String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString(), "James&"); + String userInput = String.join(" ", EMPTY_STRING, PREFIX_ASSIGNEES.toString(), " "); assertParseFailure(parser, userInput, INVALID_ASSIGNEE_COMMAND_MESSAGE); } diff --git a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java index ba290a48915..ece54992009 100644 --- a/src/test/java/manageezpz/logic/parser/ParserUtilTest.java +++ b/src/test/java/manageezpz/logic/parser/ParserUtilTest.java @@ -13,7 +13,7 @@ import manageezpz.model.person.Phone; public class ParserUtilTest { - private static final String INVALID_NAME = "R@chel"; + private static final String INVALID_NAME = " "; private static final String INVALID_PHONE = "+651234"; private static final String INVALID_EMAIL = "example.com"; diff --git a/src/test/java/manageezpz/model/person/NameTest.java b/src/test/java/manageezpz/model/person/NameTest.java index 9376477913b..825013db831 100644 --- a/src/test/java/manageezpz/model/person/NameTest.java +++ b/src/test/java/manageezpz/model/person/NameTest.java @@ -27,8 +27,6 @@ public void isValidName() { // invalid name assertFalse(Name.isValidName("")); // empty string assertFalse(Name.isValidName(" ")); // spaces only - assertFalse(Name.isValidName("^")); // only non-alphanumeric characters - assertFalse(Name.isValidName("peter*")); // contains non-alphanumeric characters // valid name assertTrue(Name.isValidName("peter jack")); // alphabets only @@ -36,5 +34,7 @@ public void isValidName() { assertTrue(Name.isValidName("peter the 2nd")); // alphanumeric characters assertTrue(Name.isValidName("Capital Tan")); // with capital letters assertTrue(Name.isValidName("David Roger Jackson Ray Jr 2nd")); // long names + assertTrue(Name.isValidName("^")); // only non-alphanumeric characters + assertTrue(Name.isValidName("peter*")); // contains non-alphanumeric characters } } diff --git a/src/test/java/manageezpz/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java index 465e27371bc..9dee47b5547 100644 --- a/src/test/java/manageezpz/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -26,18 +26,21 @@ public void isSamePerson() { Person editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).build(); assertTrue(ALICE.isSamePerson(editedAlice)); - // different name, all other attributes same -> returns false + // different name, all other attributes same -> returns true editedAlice = new PersonBuilder(ALICE).withName(VALID_NAME_BOB).build(); - assertFalse(ALICE.isSamePerson(editedAlice)); + assertTrue(ALICE.isSamePerson(editedAlice)); - // name differs in case, all other attributes same -> returns false + // name differs in case, all other attributes same -> returns true Person editedBob = new PersonBuilder(BOB).withName(VALID_NAME_BOB.toLowerCase()).build(); - assertFalse(BOB.isSamePerson(editedBob)); + assertTrue(BOB.isSamePerson(editedBob)); // name has trailing spaces, all other attributes same -> returns false String nameWithTrailingSpaces = VALID_NAME_BOB + " "; editedBob = new PersonBuilder(BOB).withName(nameWithTrailingSpaces).build(); - assertFalse(BOB.isSamePerson(editedBob)); + assertTrue(BOB.isSamePerson(editedBob)); + + // different name, all other attributes are also different -> returns true + assertFalse(ALICE.isSamePerson(BOB)); } @Test diff --git a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java index 83637abf9e9..eb7bfae48d7 100644 --- a/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/manageezpz/storage/JsonAdaptedPersonTest.java @@ -14,7 +14,7 @@ import manageezpz.model.person.Phone; public class JsonAdaptedPersonTest { - private static final String INVALID_NAME = "R@chel"; + private static final String INVALID_NAME = " "; private static final String INVALID_PHONE = "+651234"; private static final String INVALID_EMAIL = "example.com"; From 525184a24dacc97bf948393a690f348b207382fa Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sat, 2 Apr 2022 21:46:01 +0800 Subject: [PATCH 314/507] Revert phone regrex to only check for <3. --- src/main/java/manageezpz/model/person/Phone.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index 280c5d75a80..c12c123063a 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -13,7 +13,7 @@ public class Phone { public static final String MESSAGE_CONSTRAINTS = "Phone numbers should only contain numbers, and it should be at " + "least 3 digits long but not longer than 15 digits"; - public static final String VALIDATION_REGEX = "\\d{3,15}"; + public static final String VALIDATION_REGEX = "\\d{3,}"; public final String value; /** From b26e71f540867ff3514dd811dddcf1230a0366a9 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 00:08:37 +0800 Subject: [PATCH 315/507] Update PPP. --- docs/team/chanweijie.md | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/docs/team/chanweijie.md b/docs/team/chanweijie.md index 6094e3afc77..21cea16ef7d 100644 --- a/docs/team/chanweijie.md +++ b/docs/team/chanweijie.md @@ -9,33 +9,45 @@ ManageEZPZ is a desktop application that allows managers or supervisors to manag Given below are my contributions to the project. -* **New Feature**: -* to be added soon +* **Enhancement**: Creation of the model component for `Task` as a baseline for the use by other teammates. [#64](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/64) + * What it does : The creation of the `Task` component allows for smoother creation of the different types of Task related commands. + * Justification : This enhancement is important as the different type of Task related command such as adding, deleting, editing and even finding. All relies on the methods created in the `Task` model. + * Highlights : This enhancement required me to constantly update the methods that are required by my teamamates as the methods in the `Task` Model changes as more commands are being added. As well as the importance of abstraction principles in the implementation of the new `Task` class. +* **Enhancement** : Creation of Enum class `Priority`. + * What it does : The Enum class `Priority` allows the different types of Task to be assigned with a Priority. + * Justification : This enhancement is important as the tagPriority command relies on Tasks having priorities. + * Highlights : Creating a separate enum class for `Priority` makes the `Task` class more readable as opposed to clustering them together. + * **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=chanweijie&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) * **Project management**: -* to be added soon + * Managed milestones `v1.1` - `v1.4` on GitHub. + * Ensured the team's completion of weekly deliverables. * **Enhancements to existing features**: -* to be added soon + * Changed the Employee class to not have `address` & `tag` fields. [#62](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/62) + * Updating `Description` to only validate empty descriptions [#104](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/104) * **Documentation**: * User Guide: - * Added Commands to be implemented in V1.2 + * Added Commands to be implemented in V1.2 [#21](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/21) + * Added back the `delete` command for Person but renamed it as `deleteEmployee` [#103](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/103) + * Developer Guide : + * Added implementation details of the `Task` Model, including two class diagrams [#120](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/120), [#127](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/127) * **Community**: -* to be added soon - - -* **Tools**: -* to be added soon + * Setting up the GitHub team org & repo + * Necessary general code enhancements such as renaming the product: [#175](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/175), [#176](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/176) + * PRs reviewed (with non-trivial review comments): [#73](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/73), [#30](https://github.com/AY2122S2-CS2103-F11-1/tp/pull/30) + * Reported bugs and suggestions for other teams in the same CS2103T class: [Dry run PE](https://github.com/ChanWeiJie/ped/issues) + From 8532e8708728caefe39b4a902fe7a7a0107113e8 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 00:15:59 +0800 Subject: [PATCH 316/507] Update duplicate persons message. --- .../java/manageezpz/logic/commands/AddEmployeeCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java index d117ce5aa05..e866c8342c5 100644 --- a/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEmployeeCommand.java @@ -30,8 +30,8 @@ public class AddEmployeeCommand extends Command { public static final String MESSAGE_SUCCESS = "New Employee added: %1$s"; public static final String MESSAGE_DUPLICATE_PERSON = "Employee, phone number or " - + "Email already exists in manageEZPZ! " - + "Please Check again!\n"; + + "email already exists in manageEZPZ! " + + "Please check again!\n"; private final Person toAdd; From 1e3529bcd9059255dee34e9e0fc8db98acc62377 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 01:08:01 +0800 Subject: [PATCH 317/507] Update test cases. --- .../manageezpz/model/task/DeadlineTest.java | 61 +++++++++++++++---- .../java/manageezpz/model/task/EventTest.java | 55 +++++++++++++++-- 2 files changed, 100 insertions(+), 16 deletions(-) diff --git a/src/test/java/manageezpz/model/task/DeadlineTest.java b/src/test/java/manageezpz/model/task/DeadlineTest.java index 15edef42c92..6abe5671f1d 100644 --- a/src/test/java/manageezpz/model/task/DeadlineTest.java +++ b/src/test/java/manageezpz/model/task/DeadlineTest.java @@ -1,32 +1,71 @@ package manageezpz.model.task; +import manageezpz.model.person.Email; + +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; public class DeadlineTest { - private final Deadline testDealine = new Deadline(new Description("testing"), + private final Deadline testDeadline = new Deadline(new Description("testing"), new Date("2022-11-08"), new Time("1800")); + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Deadline(null)); + } + + @Test + public void getDate_validDate_success() { + assertEquals("2022-11-08", testDeadline.getDate().getParsedDate().toString()); + } + + @Test + public void getDescription_validDescription_success() { + assertEquals("testing", testDeadline.getDescription().toString()); + } + + @Test + public void getTime_validTime_success() { + assertEquals("18:00", testDeadline.getTime().getParsedTime().toString()); + } + + @Test + public void getType_validType_success() { + assertEquals("deadline", testDeadline.getType()); + } + + @Test + public void getDateTime_validDateTime_success() { + String expected = "by Nov 08 2022 6:00 PM"; + assertEquals(expected, testDeadline.getDateTime()); + } + + @Test + public void setDescription_validDescription_success() { + testDeadline.setDescription(new Description("Finish Report")); + assertEquals(testDeadline.getDescription().toString(), "Finish Report"); + } + @Test - public void testGetters() { - assertEquals("testing", testDealine.getDescription().toString()); - assertEquals("2022-11-08", testDealine.getDate().getParsedDate().toString()); - assertEquals("18:00", testDealine.getTime().getParsedTime().toString()); - assertEquals("deadline", testDealine.getType()); + public void setDate_validDate_success() { + testDeadline.setDate(new Date("2022-08-08")); + assertEquals(testDeadline.getDate().getDate(), "2022-08-08"); } @Test - public void testSetters() { - assertEquals(" ", testDealine.getStatusIcon()); - testDealine.setTaskDone(); - assertEquals("X", testDealine.getStatusIcon()); + public void setTime_validTime_success() { + testDeadline.setTime(new Time("1800")); + assertEquals(testDeadline.getTime().getTime(), "1800"); } + @Test public void testToString() { String expected = "[D][ ] testing (by: Nov 08 2022 6:00 PM)"; - assertEquals(expected, testDealine.toString()); + assertEquals(expected, testDeadline.toString()); } } diff --git a/src/test/java/manageezpz/model/task/EventTest.java b/src/test/java/manageezpz/model/task/EventTest.java index 4ad5749809a..888e3bccc41 100644 --- a/src/test/java/manageezpz/model/task/EventTest.java +++ b/src/test/java/manageezpz/model/task/EventTest.java @@ -1,5 +1,6 @@ package manageezpz.model.task; +import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; @@ -10,19 +11,63 @@ public class EventTest { new Time("2000")); @Test - public void testGetters() { + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Event(null)); + } + + @Test + public void getDescription_validDescription_success() { assertEquals("testing", testEvent.getDescription().toString()); + } + + @Test + public void getDate_validDate_success() { assertEquals("2022-11-08", testEvent.getDate().getParsedDate().toString()); + } + + @Test + public void getStartTime_validTime_success() { assertEquals("18:00", testEvent.getStartTime().getParsedTime().toString()); + } + + @Test + public void getEndTime_validTime_success() { assertEquals("20:00", testEvent.getEndTime().getParsedTime().toString()); + } + + @Test + public void getType_validType_success() { assertEquals("event", testEvent.getType()); } @Test - public void testSetters() { - assertEquals(" ", testEvent.getStatusIcon()); - testEvent.setTaskDone(); - assertEquals("X", testEvent.getStatusIcon()); + public void getDateTime_validDateTime_success() { + String expected = "at Nov 08 2022 6:00 PM to 8:00 PM"; + assertEquals(expected, testEvent.getDateTime()); + } + + @Test + public void setDescription_validDescription_success() { + testEvent.setDescription(new Description("Finish Report")); + assertEquals(testEvent.getDescription().toString(), "Finish Report"); + } + + @Test + public void setDate_validDate_success() { + testEvent.setDate(new Date("2022-08-08")); + assertEquals(testEvent.getDate().getDate(), "2022-08-08"); + } + + @Test + public void setStartTime_validTime_success() { + testEvent.setStartTime(new Time("1700")); + assertEquals(testEvent.getStartTime().getTime(), "1700"); + } + + @Test + public void setEndTime_validTime_success() { + testEvent.setEndTime(new Time("1800")); + assertEquals(testEvent.getEndTime().getTime(), "1800"); } @Test From 091c782a45f952ab3063f9f485f9eaf9fbb2939a Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 17:51:04 +0800 Subject: [PATCH 318/507] Remove unnecessary print statments. --- src/main/java/manageezpz/logic/parser/ParserUtil.java | 1 - .../manageezpz/logic/parser/FindEmployeeCommandParserTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index e2f157c6122..c5b65791364 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -88,7 +88,6 @@ public static Email parseEmail(String email) throws ParseException { */ public static Date parseDate(String date) throws ParseException { requireNonNull(date); - System.out.println(Date.isValidDate(date)); if (!Date.isValidDate(date)) { throw new ParseException(Date.MESSAGE_CONSTRAINTS); } diff --git a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java index 980303c971c..817403b1e6a 100644 --- a/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/FindEmployeeCommandParserTest.java @@ -57,7 +57,6 @@ void findEmployeeCommandParser_noName_throwsParseException() { @Test void findEmployeeCommandParser_invalidNamesUsed_throwParseException() { String userInput = String.join(" ", EMPTY_STRING, PREFIX_NAME.getPrefix(), " "); - System.out.println(userInput); assertParseFailure(parser, userInput, INVALID_NAME_MESSAGE); } From 71b1704b95125cac64a16529c0e422d4a21e6c9a Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 17:52:08 +0800 Subject: [PATCH 319/507] Update comments. --- src/test/java/manageezpz/model/person/PersonTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/manageezpz/model/person/PersonTest.java b/src/test/java/manageezpz/model/person/PersonTest.java index 9dee47b5547..13f92824914 100644 --- a/src/test/java/manageezpz/model/person/PersonTest.java +++ b/src/test/java/manageezpz/model/person/PersonTest.java @@ -34,7 +34,7 @@ public void isSamePerson() { Person editedBob = new PersonBuilder(BOB).withName(VALID_NAME_BOB.toLowerCase()).build(); assertTrue(BOB.isSamePerson(editedBob)); - // name has trailing spaces, all other attributes same -> returns false + // name has trailing spaces, all other attributes same -> returns true String nameWithTrailingSpaces = VALID_NAME_BOB + " "; editedBob = new PersonBuilder(BOB).withName(nameWithTrailingSpaces).build(); assertTrue(BOB.isSamePerson(editedBob)); From 7da8d02122e5a7eac01b173f303212069a48a3b2 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 17:55:18 +0800 Subject: [PATCH 320/507] Update checkstyle --- src/test/java/manageezpz/model/task/DeadlineTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/manageezpz/model/task/DeadlineTest.java b/src/test/java/manageezpz/model/task/DeadlineTest.java index 6abe5671f1d..ee85083bd45 100644 --- a/src/test/java/manageezpz/model/task/DeadlineTest.java +++ b/src/test/java/manageezpz/model/task/DeadlineTest.java @@ -1,7 +1,5 @@ package manageezpz.model.task; -import manageezpz.model.person.Email; - import static manageezpz.testutil.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; From 8f1263621ac2c13d6096386a3d317e9c17a0eb6c Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 20:58:19 +0800 Subject: [PATCH 321/507] Revert back error message of Phone class --- src/main/java/manageezpz/model/person/Phone.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index c12c123063a..c14dc1b1ea9 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -12,7 +12,7 @@ public class Phone { public static final String MESSAGE_CONSTRAINTS = "Phone numbers should only contain numbers, and it should be at " - + "least 3 digits long but not longer than 15 digits"; + + "least 3 digits long."; public static final String VALIDATION_REGEX = "\\d{3,}"; public final String value; From 25715137f4be6047dbd5eda59168ed959c76b0d5 Mon Sep 17 00:00:00 2001 From: ChanWeiJie <30587813+ChanWeiJie@users.noreply.github.com> Date: Sun, 3 Apr 2022 21:24:48 +0800 Subject: [PATCH 322/507] Remove invisible character check from description. Updated the invisible character check at Logic Manager, execute method as an overarching check. --- src/main/java/manageezpz/logic/LogicManager.java | 13 +++++++++++++ .../java/manageezpz/logic/parser/ParserUtil.java | 1 - 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/manageezpz/logic/LogicManager.java b/src/main/java/manageezpz/logic/LogicManager.java index eefb699dbea..f7ce1686702 100644 --- a/src/main/java/manageezpz/logic/LogicManager.java +++ b/src/main/java/manageezpz/logic/LogicManager.java @@ -3,6 +3,8 @@ import java.io.IOException; import java.nio.file.Path; import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javafx.collections.ObservableList; import manageezpz.commons.core.GuiSettings; @@ -23,6 +25,9 @@ */ public class LogicManager implements Logic { public static final String FILE_OPS_ERROR_MESSAGE = "Could not save data to file: "; + + public static final String INPUT_CONTAINS_SPECIAL_CHARACTERS = "Please do not use invisible characters!"; + private final Logger logger = LogsCenter.getLogger(LogicManager.class); private final Model model; @@ -42,6 +47,14 @@ public LogicManager(Model model, Storage storage) { public CommandResult execute(String commandText) throws CommandException, ParseException { logger.info("----------------[USER COMMAND][" + commandText + "]"); + Pattern pattern = Pattern.compile("[\\p{C}]"); + Matcher matcher = pattern.matcher(commandText); + boolean isInvalid = matcher.find(); + + if (isInvalid) { + throw new ParseException(INPUT_CONTAINS_SPECIAL_CHARACTERS); + } + CommandResult commandResult; Command command = addressBookParser.parseCommand(commandText); commandResult = command.execute(model); diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index c5b65791364..29562b976ff 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -116,7 +116,6 @@ public static Time parseTime(String time) throws ParseException { */ public static Description parseDescription(String description) throws ParseException { requireNonNull(description); - description = description.replaceAll("[\\p{C}]", ""); //this filters the "invisible" characters String trimmedDescription = description.trim(); if (!Description.isValidDescription(trimmedDescription)) { throw new ParseException(Description.MESSAGE_CONSTRAINTS); From a619da0176992442469e32893e8b43ab5cc89be9 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Mon, 4 Apr 2022 23:41:22 +0800 Subject: [PATCH 323/507] Update bugs found in PE-D related to usage of wrong exception messages --- .../manageezpz/commons/core/Messages.java | 10 ++++-- .../commands/AddDeadlineTaskCommand.java | 2 +- .../logic/commands/AddEventTaskCommand.java | 2 +- .../logic/commands/EditEmployeeCommand.java | 4 +-- .../logic/commands/EditTaskCommand.java | 32 ++++++++++++------- .../logic/commands/TagTaskCommand.java | 2 +- .../logic/commands/UntagTaskCommand.java | 4 +-- .../parser/AddEventTaskCommandParser.java | 7 ++-- .../parser/DeleteEmployeeCommandParser.java | 5 +-- .../logic/parser/DeleteTaskCommandParser.java | 5 +-- .../parser/EditEmployeeCommandParser.java | 9 +++--- .../logic/parser/EditTaskCommandParser.java | 12 ++++--- .../logic/parser/MarkTaskCommandParser.java | 6 +--- .../manageezpz/logic/parser/ParserUtil.java | 2 +- .../logic/parser/TagTaskCommandParser.java | 7 ++-- .../parser/TagTaskPriorityCommandParser.java | 3 +- .../logic/parser/UnmarkTaskCommandParser.java | 6 +--- .../logic/parser/UntagTaskCommandParser.java | 10 +++--- .../java/manageezpz/model/person/Name.java | 2 +- .../java/manageezpz/model/person/Phone.java | 3 +- src/main/java/manageezpz/model/task/Date.java | 2 +- src/main/java/manageezpz/model/task/Time.java | 6 ++-- 22 files changed, 70 insertions(+), 71 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 7d9ae8d0369..1e895202131 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -14,7 +14,7 @@ public class Messages { public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n\n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = - "The person index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; + "The person index provided is invalid as it exceeds the amount of persons in the displayed list! \n\n%1$s"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; public static final String MESSAGE_INVALID_PRIORITY = @@ -26,7 +26,11 @@ public class Messages { public static final String MESSAGE_INVALID_TASK_TYPE = "Task is an invalid Task Type!"; public static final String MESSAGE_INVALID_TIME_FORMAT = "Invalid time format!"; public static final String MESSAGE_INVALID_TIME_RANGE = - "The time range you provided is invalid! End time should be after start time!"; - public static final String MESSAGE_TASK_UPDATE_SUCCESS = "Update Task success: %1$s"; + "The time range you provided is invalid as end time should be after start time!"; + public static final String MESSAGE_EMPTY_START_TIME_END_TIME = + "Please enter a start time and end time for the event!"; + public static final String MESSAGE_DUPLICATE_TASK = "Task with the same description '%1$s' already exists! \n\n"; + + public static final String MESSAGE_FIELD_NOT_EDITED = "At least one field to edit must be provided.\n\n"; } diff --git a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java index 645d1cf84c0..c705feeaeed 100644 --- a/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddDeadlineTaskCommand.java @@ -17,7 +17,7 @@ public class AddDeadlineTaskCommand extends Command { + ": Adds a Deadline Task to ManageEZPZ.\n" + "Parameters: " + PREFIX_DESCRIPTION + "DESCRIPTION " - + PREFIX_BY_DATETIME + "DATETIME\n" + + PREFIX_BY_DATETIME + "DATE TIME\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Do Daily Commissions " + PREFIX_BY_DATETIME + "2022-03-15 0400"; diff --git a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java index 4ea5b46dcfb..d8d36fe43a3 100644 --- a/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/AddEventTaskCommand.java @@ -17,7 +17,7 @@ public class AddEventTaskCommand extends Command { + ": Adds an Event Task to ManageEZPZ.\n" + "Parameters: " + PREFIX_DESCRIPTION + "DESCRIPTION " - + PREFIX_AT_DATETIME + "[DATE] [START_TIME] [END_TIME]\n" + + PREFIX_AT_DATETIME + "DATE START_TIME END_TIME\n" + "Example: " + COMMAND_WORD + " " + PREFIX_DESCRIPTION + "Finish 160 Resins " + PREFIX_AT_DATETIME + "2022-03-15 1800 2000"; diff --git a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java index 78754a098f1..8e634e51a3c 100644 --- a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java @@ -40,9 +40,7 @@ public class EditEmployeeCommand extends Command { + PREFIX_PHONE + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; - public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Employee: %1$s"; - - public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided.\n"; + public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Update Employee success: %1$s"; public static final String MESSAGE_DUPLICATE_PERSON = "Employee %1$s already exists!\n"; diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index 3c80bd90fa3..a3ce717ab50 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -1,10 +1,11 @@ package manageezpz.logic.commands; +import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_TYPE; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; -import static manageezpz.commons.core.Messages.MESSAGE_TASK_UPDATE_SUCCESS; +import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -33,7 +34,7 @@ public class EditTaskCommand extends Command { public static final String COMMAND_WORD = "editTask"; - public static final String EXAMPLE_ONE = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + " Eat bananas"; + public static final String EXAMPLE_ONE = COMMAND_WORD + " 1 " + PREFIX_DESCRIPTION + "Eat bananas"; public static final String EXAMPLE_TWO = COMMAND_WORD + " 2 " + PREFIX_DESCRIPTION + "Eat Apple " + PREFIX_DATE + "2022-09-05 " + PREFIX_AT_DATETIME + "1800"; @@ -46,15 +47,21 @@ public class EditTaskCommand extends Command { + "by the index number used in the displayed task list.\n" + "Existing values will be overwritten by the input values.\n" + "Parameters: INDEX (must exist in the Address Book) " - + PREFIX_DESCRIPTION + " NAME " - + PREFIX_DATE + " DATE " - + PREFIX_AT_DATETIME + " TIME\n" + + PREFIX_DESCRIPTION + "DESCRIPTION " + + PREFIX_DATE + "DATE " + + PREFIX_AT_DATETIME + "TIME\n" + "At least one of " + PREFIX_DESCRIPTION + " " + PREFIX_DATE + " " + PREFIX_AT_DATETIME + " must have a value.\n" + "For an event task, a start time and an end time " + "separated with an empty space must be provided " + "instead of a single time value.\n" - + "Examples: " + EXAMPLE_ONE + "\n" + EXAMPLE_TWO + "\n" + EXAMPLE_THREE; + + "Example 1: " + EXAMPLE_ONE + "\n" + + "Example 2: " + EXAMPLE_TWO + "\n" + + "Example 3: " + EXAMPLE_THREE; + + public static final String MESSAGE_EDIT_TASK_SUCCESS = "Update Task success: %1$s"; + + public static final String MESSAGE_TODO_SHOULD_NOT_HAVE_DATETIME = "Todo Task should not have date or time!"; private final Index index; private final String desc; @@ -72,6 +79,7 @@ public class EditTaskCommand extends Command { * @param time New time of the Task */ public EditTaskCommand(Index index, String desc, String date, String time) { + requireAllNonNull(index, desc, date, time); this.index = index; this.desc = desc; this.date = date; @@ -80,6 +88,8 @@ public EditTaskCommand(Index index, String desc, String date, String time) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); if (index.getZeroBased() >= lastShownList.size()) { @@ -87,7 +97,7 @@ public CommandResult execute(Model model) throws CommandException { } Task currentTask = lastShownList.get(index.getZeroBased()); - Task updatedTask = null; + Task updatedTask; try { if (currentTask.getType().equalsIgnoreCase("todo")) { @@ -98,11 +108,11 @@ public CommandResult execute(Model model) throws CommandException { updatedTask = updateEvent((Event) currentTask, this.desc, this.date, this.time); } else { // Should not reach this as there are only three types of tasks - assert false : MESSAGE_INVALID_TASK_TYPE; + throw new CommandException(MESSAGE_INVALID_TASK_TYPE); } model.setTask(currentTask, updatedTask); - return new CommandResult(String.format(MESSAGE_TASK_UPDATE_SUCCESS, updatedTask)); + return new CommandResult(String.format(MESSAGE_EDIT_TASK_SUCCESS, updatedTask)); } catch (ParseException pe) { throw new CommandException(pe.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, pe); } catch (DuplicateTaskException de) { @@ -165,7 +175,7 @@ private Task updateEvent(Event currentTask, String desc, String date, String tim Time newStartTime = ParserUtil.parseTime(newStartEndTimeStrParts[0]); Time newEndTime = ParserUtil.parseTime(newStartEndTimeStrParts[1]); - if (newEndTime.getParsedTime().compareTo(newStartTime.getParsedTime()) < 0) { + if (newEndTime.getParsedTime().compareTo(newStartTime.getParsedTime()) < 1) { throw new ParseException(MESSAGE_INVALID_TIME_RANGE); } @@ -175,4 +185,4 @@ private Task updateEvent(Event currentTask, String desc, String date, String tim return updatedEventTask; } -} +} \ No newline at end of file diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index 5d97e23f5cd..13cee3229d7 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -26,7 +26,7 @@ public class TagTaskCommand extends Command { public static final String MESSAGE_TAG_TASK_SUCCESS = "Employee %1$s is tagged to the task: "; - public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the name %1$s!"; + public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the full name %1$s!"; public static final String MESSAGE_PERSON_TAGGED_TO_TASK = "Employee %1$s is already tagged to the task: "; diff --git a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java index 6335854da4c..c5595edb7df 100644 --- a/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UntagTaskCommand.java @@ -21,12 +21,12 @@ public class UntagTaskCommand extends Command { + ": Untags the specified employee from the task identified by the " + "index number used in the displayed task list.\n" + "Parameters: INDEX (must be a positive integer) " - + PREFIX_NAME + "EMPLOYEE_NAME\n" + + PREFIX_NAME + "EMPLOYEE_FULL_NAME\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_NAME + "Alex Yeoh"; public static final String MESSAGE_UNTAG_TASK_SUCCESS = "Employee %1$s is untagged from the task: "; - public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the name %1$s!"; + public static final String MESSAGE_NO_SUCH_PERSON = "There is no employee with the full name %1$s!"; public static final String MESSAGE_PERSON_NOT_TAGGED_TO_TASK = "Employee %1$s is not tagged to the task: "; diff --git a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java index cc07ce5c0eb..12d02ceebcb 100644 --- a/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/AddEventTaskCommandParser.java @@ -2,6 +2,7 @@ import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; import static manageezpz.logic.commands.AddEventTaskCommand.MESSAGE_USAGE; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -45,8 +46,10 @@ public AddEventTaskCommand parse(String args) throws ParseException { Time startTime = ParserUtil.parseTime(parseAtDateTime[1]); Time endTime = ParserUtil.parseTime(parseAtDateTime[2]); - if (endTime.getParsedTime().compareTo(startTime.getParsedTime()) < 0) { - throw new ParseException(Time.MESSAGE_CONSTRAINTS); + System.out.println(endTime.getParsedTime().compareTo(startTime.getParsedTime())); + + if (endTime.getParsedTime().compareTo(startTime.getParsedTime()) < 1) { + throw new ParseException(MESSAGE_INVALID_TIME_RANGE); } Event event = new Event(desc, date, startTime, endTime); diff --git a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index efeba593cc6..f9cb1a45842 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -1,7 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; - import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -22,8 +20,7 @@ public DeleteEmployeeCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new DeleteEmployeeCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - DeleteEmployeeCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + DeleteEmployeeCommand.MESSAGE_USAGE, pe); } } diff --git a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java index 056322ffd30..cff2887cc9f 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteTaskCommandParser.java @@ -1,7 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; - import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.DeleteTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -22,8 +20,7 @@ public DeleteTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new DeleteTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - DeleteTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + DeleteTaskCommand.MESSAGE_USAGE, pe); } } diff --git a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java index d2f0409a6fa..29df3cdd10a 100644 --- a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java @@ -1,8 +1,7 @@ package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; -import static manageezpz.logic.commands.EditEmployeeCommand.MESSAGE_USAGE; +import static manageezpz.commons.core.Messages.MESSAGE_FIELD_NOT_EDITED; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; @@ -34,7 +33,7 @@ public EditEmployeeCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + EditEmployeeCommand.MESSAGE_USAGE, pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); @@ -50,11 +49,11 @@ public EditEmployeeCommand parse(String args) throws ParseException { editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); } } catch (ParseException pe) { - throw new ParseException(pe.getMessage() + "\n" + MESSAGE_USAGE, pe); + throw new ParseException(pe.getMessage() + "\n\n" + EditEmployeeCommand.MESSAGE_USAGE, pe); } if (!editPersonDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditEmployeeCommand.MESSAGE_NOT_EDITED + "\n" + MESSAGE_USAGE); + throw new ParseException(MESSAGE_FIELD_NOT_EDITED + EditEmployeeCommand.MESSAGE_USAGE); } return new EditEmployeeCommand(index, editPersonDescriptor); diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index fa5a81e17bc..ef1ce43c976 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -6,6 +6,7 @@ import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; +import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -33,15 +34,18 @@ public EditTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - EditTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, pe); } + System.out.println(argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty()); + System.out.println(argMultimap.getValue(PREFIX_DATE).isEmpty()); + System.out.println(argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()); + if (argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty() && argMultimap.getValue(PREFIX_DATE).isEmpty() && argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - EditTaskCommand.MESSAGE_USAGE)); + throw new ParseException(Messages.MESSAGE_FIELD_NOT_EDITED + + EditTaskCommand.MESSAGE_USAGE); } String desc = argMultimap.getValue(PREFIX_DESCRIPTION).orElse(""); diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java index a09a97030a9..f1cd452f52f 100644 --- a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -1,7 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; - import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -22,9 +20,7 @@ public MarkTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new MarkTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - MarkTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + MarkTaskCommand.MESSAGE_USAGE, pe); } } - } diff --git a/src/main/java/manageezpz/logic/parser/ParserUtil.java b/src/main/java/manageezpz/logic/parser/ParserUtil.java index 29562b976ff..892ec8f6c7b 100644 --- a/src/main/java/manageezpz/logic/parser/ParserUtil.java +++ b/src/main/java/manageezpz/logic/parser/ParserUtil.java @@ -19,7 +19,7 @@ */ public class ParserUtil { - public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; + public static final String MESSAGE_INVALID_INDEX = "Index specified is not a non-zero unsigned integer."; /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index 42ce3b0a260..fabd984228b 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -31,8 +31,7 @@ public TagTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - TagTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + TagTaskCommand.MESSAGE_USAGE, pe); } if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { @@ -48,14 +47,12 @@ public TagTaskCommand parse(String args) throws ParseException { String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { - throw new ParseException(String.format(MESSAGE_EMPTY_NAME, - TagTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_EMPTY_NAME, TagTaskCommand.MESSAGE_USAGE)); } return new TagTaskCommand(index, name); } - /** * Returns true if none of the prefixes contains empty {@code Optional} values in the given * {@code ArgumentMultimap}. diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 4c651581f58..5ea99e2f6c1 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -31,8 +31,7 @@ public TagTaskPriorityCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapPriority.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - TagTaskPriorityCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + TagTaskPriorityCommand.MESSAGE_USAGE, pe); } if (!arePrefixesPresent(argMultimapPriority, PREFIX_PRIORITY)) { diff --git a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java index b0ae65e4621..5f328b2b1a2 100644 --- a/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UnmarkTaskCommandParser.java @@ -1,7 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; - import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.UnmarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -22,9 +20,7 @@ public UnmarkTaskCommand parse(String args) throws ParseException { Index index = ParserUtil.parseIndex(args); return new UnmarkTaskCommand(index); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - UnmarkTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + UnmarkTaskCommand.MESSAGE_USAGE, pe); } } - } diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index d9a59e1691e..5db2a8d8381 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -1,5 +1,6 @@ package manageezpz.logic.parser; +import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; @@ -20,6 +21,8 @@ public class UntagTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public UntagTaskCommand parse(String args) throws ParseException { + requireNonNull(args); + ArgumentMultimap argMultimapTag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); @@ -28,8 +31,7 @@ public UntagTaskCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - UntagTaskCommand.MESSAGE_USAGE), pe); + throw new ParseException(pe.getMessage() + "\n\n" + UntagTaskCommand.MESSAGE_USAGE, pe); } if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { @@ -45,14 +47,12 @@ public UntagTaskCommand parse(String args) throws ParseException { String name = argMultimapTag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { - throw new ParseException(String.format(MESSAGE_EMPTY_NAME, - UntagTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_EMPTY_NAME, UntagTaskCommand.MESSAGE_USAGE)); } return new UntagTaskCommand(index, name); } - /** * Returns true if none of the prefixes contains empty {@code Optional} values in the given * {@code ArgumentMultimap}. diff --git a/src/main/java/manageezpz/model/person/Name.java b/src/main/java/manageezpz/model/person/Name.java index 1ab73d1a561..54d72807239 100644 --- a/src/main/java/manageezpz/model/person/Name.java +++ b/src/main/java/manageezpz/model/person/Name.java @@ -10,7 +10,7 @@ public class Name { public static final String MESSAGE_CONSTRAINTS = - "Names should only contain alphanumeric characters and spaces, and it should not be blank"; + "Names should only contain alphanumeric characters and spaces, and it should not be blank."; /* * The first character of the address must not be a whitespace, diff --git a/src/main/java/manageezpz/model/person/Phone.java b/src/main/java/manageezpz/model/person/Phone.java index 0a69f43c78f..0d3870cf6c1 100644 --- a/src/main/java/manageezpz/model/person/Phone.java +++ b/src/main/java/manageezpz/model/person/Phone.java @@ -9,9 +9,8 @@ */ public class Phone { - public static final String MESSAGE_CONSTRAINTS = - "Phone numbers should only contain numbers, and it should be at least 3 digits long"; + "Phone numbers should only contain numbers, and it should be at least 3 digits long."; public static final String VALIDATION_REGEX = "\\d{3,}"; public final String value; diff --git a/src/main/java/manageezpz/model/task/Date.java b/src/main/java/manageezpz/model/task/Date.java index 01445e8500c..666520f1bb1 100644 --- a/src/main/java/manageezpz/model/task/Date.java +++ b/src/main/java/manageezpz/model/task/Date.java @@ -11,7 +11,7 @@ public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the format of yyyy-MM-dd.\n" - + "Month should be between 1 and 12 and Day should be between 1 and 31."; + + "Month should only be between 1 and 12 and Day should only be between 1 and 31."; public static final String VALIDATION_REGEX = "\\d{4}\\D\\d{2}\\D\\d{2}"; diff --git a/src/main/java/manageezpz/model/task/Time.java b/src/main/java/manageezpz/model/task/Time.java index 233f8a36e9b..cc03f702083 100644 --- a/src/main/java/manageezpz/model/task/Time.java +++ b/src/main/java/manageezpz/model/task/Time.java @@ -7,9 +7,9 @@ import java.time.format.DateTimeFormatter; public class Time { - public static final String MESSAGE_CONSTRAINTS = "Time should strictly be in the format of HHMM.\n" - + "It should only contain numbers, 4 digits long and should not be blank.\n" - + "Time should also be in the range of 0000 and 2359."; + public static final String MESSAGE_CONSTRAINTS = "Time should be in the format of HHmm, " + + "where it should only contain numbers that is 4 digits long.\n" + + "HH should only be between 00 and 23 and mm should only be between 00 and 59."; public static final String VALIDATION_REGEX = "\\d{4}"; From ff4ac2939504cee737655f1480e92575b4fa32e0 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Mon, 4 Apr 2022 23:48:50 +0800 Subject: [PATCH 324/507] Fix checkstyle issues --- src/main/java/manageezpz/logic/commands/EditTaskCommand.java | 2 +- .../java/manageezpz/logic/parser/EditTaskCommandParser.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index a3ce717ab50..e229f9738e6 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -185,4 +185,4 @@ private Task updateEvent(Event currentTask, String desc, String date, String tim return updatedEventTask; } -} \ No newline at end of file +} diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index ef1ce43c976..11323719c40 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -1,7 +1,6 @@ package manageezpz.logic.parser; import static java.util.Objects.requireNonNull; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; @@ -44,8 +43,7 @@ public EditTaskCommand parse(String args) throws ParseException { if (argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty() && argMultimap.getValue(PREFIX_DATE).isEmpty() && argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()) { - throw new ParseException(Messages.MESSAGE_FIELD_NOT_EDITED + - EditTaskCommand.MESSAGE_USAGE); + throw new ParseException(Messages.MESSAGE_FIELD_NOT_EDITED + EditTaskCommand.MESSAGE_USAGE); } String desc = argMultimap.getValue(PREFIX_DESCRIPTION).orElse(""); From 5b3f98fd8fc20eae2fe22866a2c4ca905872a9d3 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Mon, 4 Apr 2022 23:49:27 +0800 Subject: [PATCH 325/507] Refractor EditCommandParserTest to EditEmployeeCommandParserTest --- ...andParserTest.java => EditEmployeeCommandParserTest.java} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename src/test/java/manageezpz/logic/parser/{EditCommandParserTest.java => EditEmployeeCommandParserTest.java} (97%) diff --git a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java similarity index 97% rename from src/test/java/manageezpz/logic/parser/EditCommandParserTest.java rename to src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java index 4e5e0f72294..33207f53625 100644 --- a/src/test/java/manageezpz/logic/parser/EditCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java @@ -1,5 +1,6 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_FIELD_NOT_EDITED; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; import static manageezpz.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; @@ -31,7 +32,7 @@ import manageezpz.model.person.Phone; import manageezpz.testutil.EditPersonDescriptorBuilder; -public class EditCommandParserTest { +public class EditEmployeeCommandParserTest { private static final String MESSAGE_INVALID_FORMAT = String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, MESSAGE_USAGE); @@ -45,7 +46,7 @@ public void parse_missingParts_failure() { // no field specified assertParseFailure(parser, "1", - EditEmployeeCommand.MESSAGE_NOT_EDITED + "\n" + MESSAGE_USAGE); + MESSAGE_FIELD_NOT_EDITED + "\n" + MESSAGE_USAGE); // no index and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); From f9b092ad47d3f6c643b7d1a64ea165f4c1d6dae0 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 5 Apr 2022 08:44:07 +0800 Subject: [PATCH 326/507] Fix UG inconsistencies and missed details. --- docs/UserGuide.md | 52 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e561f6a48bf..ae5cc769b53 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -28,7 +28,7 @@ ManageEZPZ is a **desktop app for that allows managers or supervisors to manage * **`deleteTask`**`3` : Deletes the 3rd Task shown in the Task list. - * **`clear`** : Deletes everything from ManageEZPZ. + * **`clear`** : Deletes **ALL** data from ManageEZPZ. * **`addTodo desc/read book`** : Adds a todo task with a description of `read book` to the Task list. @@ -78,6 +78,9 @@ Format: `help` Adds an employee to ManageEZPZ. +Note: +- Adding a duplicated Employee will result in an error. + Format: `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL` Examples: @@ -97,6 +100,7 @@ Finds employee(s) based on multiple conditions provided. Note: * Parameters for finding employees can be entered together in any order. * You must enter at least one parameter. +* Names are case-insensitive Format: `findEmployee n/NAMES p/PHONE_NUMBER e/EMAIL` * `findEmployee n/[LIST OF NAMES]` finds employees whose names contain any of the words in [LIST OF NAMES]. @@ -146,7 +150,7 @@ Adds a task to ManageEZPZ. Format: * `addTodo desc/TASK_DESCRIPTION` * `addDeadline desc/TASK_DESCRIPTION by/DATE TIME` -* `addEvent desc/TASK_DESCRIPTION at/[DATE] START_TIME END_TIME` +* `addEvent desc/TASK_DESCRIPTION at/DATE START_TIME END_TIME` Examples: * `addTodo desc/Powerpoint Slides for Company XYZ` @@ -157,10 +161,17 @@ Examples: **:bulb: Take Note:** -For deadline and event, the DATE must be in this format: YYYY-MM-DD and the TIME in this format: HHmm (in 24 hr format). +For creation of Tasks, ManageEZPZ will allow past deadlines and events to be added for the Managers to track. + +For deadline and event, the DATE must be in this format: YYYY-MM-DD + +For deadline and event, any TIME related fields must be in the format HHmm, where HH should only be between 00 and 23 +and mm should only be between 00 and 59. For event, the START_TIME must be earlier than the END_TIME. +Adding a duplicated Task will result in an error. +
### Listing all Tasks : `listTask` @@ -177,7 +188,8 @@ Note: * Parameters for finding tasks can be entered together in any order. * You must enter at least one parameter from either Task Type or the valid options. * Task Type is optional, however, when entered, only one task type is allowed. -* Any other invalid options not stated below will be ignored. +* The first option must be valid. +* After the first valid option, any other invalid options that is not stated below will be ignored. Task Type Available: * `todo/`: Todos @@ -199,7 +211,8 @@ Format: * `findTask date/YYYY-MM-DD` finds all deadlines and events with the date * `findTask priority/PRIORITY` find all tasks with the given PRIORITY [HIGH, MEDIUM, LOW, NONE] * `findTask assignees/ASSIGNEE FULL NAME` finds all tasks assigned to the stated assignee (in full name) -* `findTask isMarked/BOOLEAN` finds all tasks that is already marked as done (`true`) or unmarked i.e., not done (`false`) +* `findTask isMarked/true` finds all tasks that is already marked as done. +* `findTask isMarked/false` finds all tasks that is already marked as not done. Example: * `findTask desc/homework` @@ -245,9 +258,22 @@ Given a task list as follows...
3. Type: `Event`, Description: `Final Exam`, Date: `2022-06-04`, Time: `1700 2000` * `editTask 1 desc/Drink Water` edits the task description of a `Todo` task. -* `editTask 2 date/2022-05-10 at/ 2000` edits the date and the time of a `Deadline` task. +* `editTask 2 date/2022-05-10 at/2000` edits the date and the time of a `Deadline` task. * `editTask 3 at/1800 2100` edits the time of an `Event` task. +
+ +**:bulb: Take Note:** + +For deadline and event, the DATE must be in this format: YYYY-MM-DD + +For deadline and event, any TIME related fields must be in the format HHmm, where HH should only be between 00 and 23 +and mm should only be between 00 and 59. + +For event, the START_TIME must be earlier than the END_TIME. + +
+ ### Marking a Task : `markTask` Marks the specified task in ManageEZPZ as done. @@ -299,9 +325,10 @@ Assigns the specified task to an employee. Format: `tagTask INDEX n/NAME` * Assigns the task at the specified `INDEX` to the employee with the specified `NAME`. -* The index refers to the index number shown in the displayed task list. +* The index refers to the index number shown in the current displayed task list. * The index **must be a positive integer** 1, 2, 3, …​ -* The name must be a valid employee name in ManageEZPZ. +* The employee you are tagging **must** be in the current displayed employees list. +* The name must be a valid employee **full name** in ManageEZPZ. Example: `tagTask 1 n/Alex Yeoh` * `tagTask 1 n/Alex Yeoh` assigns the 1st task in the displayed task list to the employee with the name Alex Yeoh. @@ -314,9 +341,10 @@ Deallocates the specified task from an employee. Format: `untagTask INDEX n/NAME` * Deallocates the task at the specified `INDEX` from the employee with the specified `NAME`. -* The index refers to the index number shown in the displayed task list. +* The index refers to the index number shown in the current displayed task list. * The index **must be a positive integer** 1, 2, 3, …​ -* The name must be a valid employee name in ManageEZPZ. +* The employee you are tagging **must** be in the current displayed employees list. +* The name must be a valid employee **full name** in ManageEZPZ. Example: * `untagTask 1 n/Alex Yeoh` deallocates the 1st task in the displayed task list from the employee with the name Alex Yeoh. @@ -343,7 +371,7 @@ Example: ### Clearing all entries : `clear` -Clears all entries from the employee list and task list. +Delete all entries from the employee list and task list. Format: `clear` @@ -385,7 +413,7 @@ If your changes to the data file makes its format invalid, ManageEZPZ will disca |---------------------|------------------------------------------------------------------------------------------------------------------| | **Add Employee** | `addEmployee n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `addEmployee n/James Ho p/22224444 e/jamesho@example.com` | | **List Employees** | `listEmployee` | -| **Find Employee** | `findEmployee OPTIONS`
`findEmployee n/Alex Yeoh` | +| **Find Employee** | `findEmployee OPTIONS`
e.g. `findEmployee n/Alex Yeoh` | | **Edit Employee** | `editEmployee INDEX n/NAME p/PHONE_NUMBER e/EMAIL`
e.g., `edit 2 n/James Lee e/jameslee@example.com` | | **Delete Employee** | `deleteEmployee INDEX`
e.g., `deleteEmployee 3` | From 3989fcd30b23cd29c77ab1946764f20e6f07aa80 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 5 Apr 2022 09:15:26 +0800 Subject: [PATCH 327/507] Update bugs found in PE-D related to unclear exception messages when parsing commands --- .../manageezpz/commons/core/Messages.java | 17 +++++--- .../logic/commands/DeleteEmployeeCommand.java | 4 +- .../logic/commands/DeleteTaskCommand.java | 4 +- .../logic/commands/EditEmployeeCommand.java | 5 +-- .../logic/commands/EditTaskCommand.java | 6 +-- .../logic/commands/MarkTaskCommand.java | 4 +- .../logic/commands/TagTaskCommand.java | 6 +-- .../commands/TagTaskPriorityCommand.java | 4 +- .../logic/commands/UnmarkTaskCommand.java | 4 +- .../parser/DeleteEmployeeCommandParser.java | 9 +++- .../logic/parser/DeleteTaskCommandParser.java | 9 +++- .../parser/EditEmployeeCommandParser.java | 22 +++++----- .../logic/parser/EditTaskCommandParser.java | 20 +++++---- .../logic/parser/MarkTaskCommandParser.java | 8 ++++ .../logic/parser/TagTaskCommandParser.java | 34 +++++++++------ .../parser/TagTaskPriorityCommandParser.java | 43 ++++++++++++------- .../logic/parser/UnmarkTaskCommandParser.java | 8 ++++ .../logic/parser/UntagTaskCommandParser.java | 34 +++++++++------ .../DeleteEmployeeCommandParserTest.java | 3 +- .../parser/EditEmployeeCommandParserTest.java | 20 +++++---- 20 files changed, 162 insertions(+), 102 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/Messages.java b/src/main/java/manageezpz/commons/core/Messages.java index 1e895202131..cb4292dda8d 100644 --- a/src/main/java/manageezpz/commons/core/Messages.java +++ b/src/main/java/manageezpz/commons/core/Messages.java @@ -10,15 +10,11 @@ public class Messages { public static final String MESSAGE_INVALID_COMMAND_FORMAT_BIND = "Invalid command format! \n\n%1$s"; public static final String MESSAGE_EMPTY_NAME = "Name field cannot be empty! \n\n%1$s"; - public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! \n\n%1$s"; - public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n\n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid as it exceeds the amount of persons in the displayed list! \n\n%1$s"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid as it exceeds the amount of tasks in the displayed list! \n\n%1$s"; - public static final String MESSAGE_INVALID_PRIORITY = - "Invalid priority! " + "Valid priorities are NONE/LOW/MEDIUM/HIGH. \n\n%1$s"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; @@ -27,10 +23,17 @@ public class Messages { public static final String MESSAGE_INVALID_TIME_FORMAT = "Invalid time format!"; public static final String MESSAGE_INVALID_TIME_RANGE = "The time range you provided is invalid as end time should be after start time!"; - public static final String MESSAGE_EMPTY_START_TIME_END_TIME = - "Please enter a start time and end time for the event!"; public static final String MESSAGE_DUPLICATE_TASK = "Task with the same description '%1$s' already exists! \n\n"; - public static final String MESSAGE_FIELD_NOT_EDITED = "At least one field to edit must be provided.\n\n"; + public static final String MESSAGE_FIELD_NOT_EDITED = "At least one of the fields to edit must be provided.\n\n"; + + // Not used, will delete before end of V1.4 + + public static final String MESSAGE_EMPTY_TASK_NUMBER = "Task number field cannot be empty! \n\n%1$s"; + + public static final String MESSAGE_TODO_SHOULD_NOT_HAVE_DATETIME = "Todo Task should not have date or time!"; + + public static final String MESSAGE_EMPTY_START_TIME_END_TIME = + "Please enter a start time and end time for the event!"; } diff --git a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java index 83110f75378..109f2241066 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteEmployeeCommand.java @@ -1,11 +1,11 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; import java.util.List; import java.util.stream.Collectors; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -46,7 +46,7 @@ public CommandResult execute(Model model) throws CommandException { List fullTaskList = model.getAddressBook().getTaskList(); if (targetIndex.getZeroBased() >= lastShownPersonList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } Person personToDelete = lastShownPersonList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java index 285c45e7c81..9b7cef8648c 100644 --- a/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/DeleteTaskCommand.java @@ -1,10 +1,10 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -45,7 +45,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownTaskList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownTaskList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToDelete = lastShownTaskList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java index 8e634e51a3c..7fa7b1686bd 100644 --- a/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditEmployeeCommand.java @@ -1,6 +1,7 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; @@ -10,7 +11,6 @@ import java.util.Optional; import java.util.stream.Collectors; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.commons.util.CollectionUtil; import manageezpz.logic.commands.exceptions.CommandException; @@ -70,8 +70,7 @@ public CommandResult execute(Model model) throws CommandException { List fullTaskList = model.getAddressBook().getTaskList(); if (index.getZeroBased() >= lastShownPersonList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, - MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, MESSAGE_USAGE)); } Person personToEdit = lastShownPersonList.get(index.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java index e229f9738e6..e8f399f2b78 100644 --- a/src/main/java/manageezpz/logic/commands/EditTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/EditTaskCommand.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_DUPLICATE_TASK; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_TYPE; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TIME_RANGE; @@ -12,7 +13,6 @@ import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.logic.parser.ParserUtil; @@ -61,8 +61,6 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_EDIT_TASK_SUCCESS = "Update Task success: %1$s"; - public static final String MESSAGE_TODO_SHOULD_NOT_HAVE_DATETIME = "Todo Task should not have date or time!"; - private final Index index; private final String desc; private final String date; @@ -93,7 +91,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownList = model.getFilteredTaskList(); if (index.getZeroBased() >= lastShownList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task currentTask = lastShownList.get(index.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java index c8743062d29..b5054084d39 100644 --- a/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/MarkTaskCommand.java @@ -1,10 +1,10 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -44,7 +44,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToMark = lastShownList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java index 13cee3229d7..85147aaa9ad 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskCommand.java @@ -1,12 +1,12 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -21,7 +21,7 @@ public class TagTaskCommand extends Command { + ": Tags the specified employee to the task identified by the " + "index number used in the displayed task list.\n" + "Parameters: INDEX (must be a positive integer) " - + PREFIX_NAME + "EMPLOYEE_NAME\n" + + PREFIX_NAME + "EMPLOYEE_FULL_NAME\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_NAME + "Alex Yeoh"; public static final String MESSAGE_TAG_TASK_SUCCESS = "Employee %1$s is tagged to the task: "; @@ -54,7 +54,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownPersonList = model.getFilteredPersonList(); if (targetIndex.getZeroBased() >= lastShownTaskList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToTagEmployee = lastShownTaskList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java index 7f4806c9c2e..0c9af733cf5 100644 --- a/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java +++ b/src/main/java/manageezpz/logic/commands/TagTaskPriorityCommand.java @@ -1,12 +1,12 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import static manageezpz.commons.util.CollectionUtil.requireAllNonNull; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -49,7 +49,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToTagPriority = lastShownList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java index 09eb5407602..f64743c5ca3 100644 --- a/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java +++ b/src/main/java/manageezpz/logic/commands/UnmarkTaskCommand.java @@ -1,10 +1,10 @@ package manageezpz.logic.commands; import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import java.util.List; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.exceptions.CommandException; import manageezpz.model.Model; @@ -47,7 +47,7 @@ public CommandResult execute(Model model) throws CommandException { List lastShownList = model.getFilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(String.format(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); + throw new CommandException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, MESSAGE_USAGE)); } Task taskToUnmark = lastShownList.get(targetIndex.getZeroBased()); diff --git a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java index f9cb1a45842..1a06f673d98 100644 --- a/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/DeleteEmployeeCommandParser.java @@ -1,5 +1,7 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.DeleteEmployeeCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -16,6 +18,12 @@ public class DeleteEmployeeCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public DeleteTaskCommand parse(String args) throws ParseException { + // Invalid command if args after trimming is empty or contains whitespaces + if (args.trim().isEmpty() || args.trim().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + DeleteTaskCommand.MESSAGE_USAGE)); + } + try { Index index = ParserUtil.parseIndex(args); return new DeleteTaskCommand(index); @@ -23,5 +31,4 @@ public DeleteTaskCommand parse(String args) throws ParseException { throw new ParseException(pe.getMessage() + "\n\n" + DeleteTaskCommand.MESSAGE_USAGE, pe); } } - } diff --git a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java index 29df3cdd10a..b4e58c2eec3 100644 --- a/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditEmployeeCommandParser.java @@ -1,7 +1,7 @@ package manageezpz.logic.parser; -import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_FIELD_NOT_EDITED; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_EMAIL; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; import static manageezpz.logic.parser.CliSyntax.PREFIX_PHONE; @@ -12,7 +12,7 @@ import manageezpz.logic.parser.exceptions.ParseException; /** - * Parses input arguments and creates a new EditCommand object + * Parses input arguments and creates a new EditEmployeeCommand object */ public class EditEmployeeCommandParser implements Parser { @@ -23,22 +23,22 @@ public class EditEmployeeCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public EditEmployeeCommand parse(String args) throws ParseException { - requireNonNull(args); - ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL); - Index index; - - try { - index = ParserUtil.parseIndex(argMultimap.getPreamble()); - } catch (ParseException pe) { - throw new ParseException(pe.getMessage() + "\n\n" + EditEmployeeCommand.MESSAGE_USAGE, pe); + // Invalid command if getPreamble() is empty or contains other whitespaces + if (argMultimap.getPreamble().isEmpty() || argMultimap.getPreamble().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + EditEmployeeCommand.MESSAGE_USAGE)); } + Index index; + EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + if (argMultimap.getValue(PREFIX_NAME).isPresent()) { editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); } @@ -48,6 +48,8 @@ public EditEmployeeCommand parse(String args) throws ParseException { if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); } + + } catch (ParseException pe) { throw new ParseException(pe.getMessage() + "\n\n" + EditEmployeeCommand.MESSAGE_USAGE, pe); } diff --git a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java index 11323719c40..bf3c6b7c7f1 100644 --- a/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/EditTaskCommandParser.java @@ -1,11 +1,11 @@ package manageezpz.logic.parser; -import static java.util.Objects.requireNonNull; +import static manageezpz.commons.core.Messages.MESSAGE_FIELD_NOT_EDITED; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_AT_DATETIME; import static manageezpz.logic.parser.CliSyntax.PREFIX_DATE; import static manageezpz.logic.parser.CliSyntax.PREFIX_DESCRIPTION; -import manageezpz.commons.core.Messages; import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.EditTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -23,11 +23,17 @@ public class EditTaskCommandParser implements Parser { */ @Override public EditTaskCommand parse(String args) throws ParseException { - requireNonNull(args); - ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_DESCRIPTION, PREFIX_AT_DATETIME, PREFIX_DATE); + System.out.println(argMultimap.getPreamble()); + + // Invalid command if getPreamble() is empty or contains whitespaces + if (argMultimap.getPreamble().isEmpty() || argMultimap.getPreamble().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + EditTaskCommand.MESSAGE_USAGE)); + } + Index index; try { @@ -36,14 +42,10 @@ public EditTaskCommand parse(String args) throws ParseException { throw new ParseException(pe.getMessage() + "\n\n" + EditTaskCommand.MESSAGE_USAGE, pe); } - System.out.println(argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty()); - System.out.println(argMultimap.getValue(PREFIX_DATE).isEmpty()); - System.out.println(argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()); - if (argMultimap.getValue(PREFIX_DESCRIPTION).isEmpty() && argMultimap.getValue(PREFIX_DATE).isEmpty() && argMultimap.getValue(PREFIX_AT_DATETIME).isEmpty()) { - throw new ParseException(Messages.MESSAGE_FIELD_NOT_EDITED + EditTaskCommand.MESSAGE_USAGE); + throw new ParseException(MESSAGE_FIELD_NOT_EDITED + EditTaskCommand.MESSAGE_USAGE); } String desc = argMultimap.getValue(PREFIX_DESCRIPTION).orElse(""); diff --git a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java index f1cd452f52f..62ad9351d5b 100644 --- a/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/MarkTaskCommandParser.java @@ -1,5 +1,7 @@ package manageezpz.logic.parser; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; + import manageezpz.commons.core.index.Index; import manageezpz.logic.commands.MarkTaskCommand; import manageezpz.logic.parser.exceptions.ParseException; @@ -16,6 +18,12 @@ public class MarkTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public MarkTaskCommand parse(String args) throws ParseException { + // Invalid command if args after trimming is empty or contains whitespaces + if (args.trim().isEmpty() || args.trim().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + MarkTaskCommand.MESSAGE_USAGE)); + } + try { Index index = ParserUtil.parseIndex(args); return new MarkTaskCommand(index); diff --git a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java index fabd984228b..7b35381013c 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskCommandParser.java @@ -1,8 +1,7 @@ package manageezpz.logic.parser; -import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; @@ -14,6 +13,9 @@ public class TagTaskCommandParser implements Parser { + public static final String MESSAGE_TAG_EMPLOYEE_TO_TASK_INSTRUCTIONS = + "Tag an employee to a task by specifying prefix n/ followed by the employee's full name!\n\n%1$s"; + /** * Parses the given {@code String} of arguments in the context of the TagTaskCommand * and returns an TagTaskCommand object for execution. @@ -21,30 +23,34 @@ public class TagTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public TagTaskCommand parse(String args) throws ParseException { - requireNonNull(args); + ArgumentMultimap argMultimapTagTask = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + + // Invalid command if getPreamble() is empty + if (argMultimapTagTask.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + TagTaskCommand.MESSAGE_USAGE)); + } - ArgumentMultimap argMultimapTag = - ArgumentTokenizer.tokenize(args, PREFIX_NAME); + // Invalid command if getPreamble() contains whitespaces + if (argMultimapTagTask.getPreamble().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT + " " + + MESSAGE_TAG_EMPLOYEE_TO_TASK_INSTRUCTIONS, TagTaskCommand.MESSAGE_USAGE)); + } Index index; try { - index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); + index = ParserUtil.parseIndex(argMultimapTagTask.getPreamble()); } catch (ParseException pe) { throw new ParseException(pe.getMessage() + "\n\n" + TagTaskCommand.MESSAGE_USAGE, pe); } - if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - TagTaskCommand.MESSAGE_USAGE)); - } - - if (argMultimapTag.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, + if (!arePrefixesPresent(argMultimapTagTask, PREFIX_NAME)) { + throw new ParseException(String.format(MESSAGE_TAG_EMPLOYEE_TO_TASK_INSTRUCTIONS, TagTaskCommand.MESSAGE_USAGE)); } - String name = argMultimapTag.getValue(PREFIX_NAME).get(); + String name = argMultimapTagTask.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, TagTaskCommand.MESSAGE_USAGE)); diff --git a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java index 5ea99e2f6c1..fb18edb0b96 100644 --- a/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/TagTaskPriorityCommandParser.java @@ -1,9 +1,7 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_PRIORITY; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_PRIORITY; import static manageezpz.logic.parser.CliSyntax.PREFIX_PRIORITY; import java.util.stream.Stream; @@ -15,6 +13,16 @@ public class TagTaskPriorityCommandParser implements Parser { + public static final String MESSAGE_TAG_PRIORITY_TO_TASK_INSTRUCTIONS = + "Tag a priority to a task by specifying prefix priority/ " + + "followed by the priority values (NONE/LOW/MEDIUM/HIGH)!\n\n%1$s"; + + public static final String MESSAGE_EMPTY_PRIORITY = "Priority field cannot be empty! " + + "Valid priority values are NONE/LOW/MEDIUM/HIGH.\n\n%1$s"; + + public static final String MESSAGE_INVALID_PRIORITY = + "Invalid priority! " + "Valid priority values are NONE/LOW/MEDIUM/HIGH. \n\n%1$s"; + /** * Parses the given {@code String} of arguments in the context of the TagTaskPriorityCommand * and returns a TagTaskPriorityCommand object for execution. @@ -22,29 +30,35 @@ public class TagTaskPriorityCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public UnmarkTaskCommand parse(String args) throws ParseException { + // Invalid command if args after trimming is empty or contains whitespaces + if (args.trim().isEmpty() || args.trim().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + UnmarkTaskCommand.MESSAGE_USAGE)); + } + try { Index index = ParserUtil.parseIndex(args); return new UnmarkTaskCommand(index); diff --git a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java index 5db2a8d8381..7e56d72c050 100644 --- a/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java +++ b/src/main/java/manageezpz/logic/parser/UntagTaskCommandParser.java @@ -1,8 +1,7 @@ package manageezpz.logic.parser; -import static java.util.Objects.requireNonNull; import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_NAME; -import static manageezpz.commons.core.Messages.MESSAGE_EMPTY_TASK_NUMBER; +import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CliSyntax.PREFIX_NAME; @@ -14,6 +13,9 @@ public class UntagTaskCommandParser implements Parser { + public static final String MESSAGE_UNTAG_EMPLOYEE_TO_TASK_INSTRUCTIONS = + "Untag an employee from a task by specifying prefix n/ followed by the employee's full name!\n\n%1$s"; + /** * Parses the given {@code String} of arguments in the context of the UntagTaskCommand * and returns an UntagTaskCommand object for execution. @@ -21,30 +23,34 @@ public class UntagTaskCommandParser implements Parser { * @throws ParseException if the user input does not conform the expected format */ public UntagTaskCommand parse(String args) throws ParseException { - requireNonNull(args); + ArgumentMultimap argMultimapUntag = ArgumentTokenizer.tokenize(args, PREFIX_NAME); + + // Invalid command if getPreamble() is empty + if (argMultimapUntag.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, + UntagTaskCommand.MESSAGE_USAGE)); + } - ArgumentMultimap argMultimapTag = - ArgumentTokenizer.tokenize(args, PREFIX_NAME); + // Invalid command if getPreamble() contains whitespaces + if (argMultimapUntag.getPreamble().contains(" ")) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT + " " + + MESSAGE_UNTAG_EMPLOYEE_TO_TASK_INSTRUCTIONS, UntagTaskCommand.MESSAGE_USAGE)); + } Index index; try { - index = ParserUtil.parseIndex(argMultimapTag.getPreamble()); + index = ParserUtil.parseIndex(argMultimapUntag.getPreamble()); } catch (ParseException pe) { throw new ParseException(pe.getMessage() + "\n\n" + UntagTaskCommand.MESSAGE_USAGE, pe); } - if (!arePrefixesPresent(argMultimapTag, PREFIX_NAME)) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, - UntagTaskCommand.MESSAGE_USAGE)); - } - - if (argMultimapTag.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_EMPTY_TASK_NUMBER, + if (!arePrefixesPresent(argMultimapUntag, PREFIX_NAME)) { + throw new ParseException(String.format(MESSAGE_UNTAG_EMPLOYEE_TO_TASK_INSTRUCTIONS, UntagTaskCommand.MESSAGE_USAGE)); } - String name = argMultimapTag.getValue(PREFIX_NAME).get(); + String name = argMultimapUntag.getValue(PREFIX_NAME).get(); if (name.isEmpty()) { throw new ParseException(String.format(MESSAGE_EMPTY_NAME, UntagTaskCommand.MESSAGE_USAGE)); diff --git a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java index 07a28e42221..8d656730d41 100644 --- a/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/DeleteEmployeeCommandParserTest.java @@ -1,6 +1,5 @@ package manageezpz.logic.parser; -import static manageezpz.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT_BIND; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseFailure; import static manageezpz.logic.parser.CommandParserTestUtil.assertParseSuccess; import static manageezpz.testutil.TypicalIndexes.INDEX_FIRST; @@ -28,6 +27,6 @@ public void parse_validArgs_returnsDeleteCommand() { @Test public void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, "a", - String.format(MESSAGE_INVALID_COMMAND_FORMAT_BIND, DeleteEmployeeCommand.MESSAGE_USAGE)); + ParserUtil.MESSAGE_INVALID_INDEX + "\n\n" + DeleteEmployeeCommand.MESSAGE_USAGE); } } diff --git a/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java b/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java index 33207f53625..459e667a8c3 100644 --- a/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java +++ b/src/test/java/manageezpz/logic/parser/EditEmployeeCommandParserTest.java @@ -46,7 +46,7 @@ public void parse_missingParts_failure() { // no field specified assertParseFailure(parser, "1", - MESSAGE_FIELD_NOT_EDITED + "\n" + MESSAGE_USAGE); + MESSAGE_FIELD_NOT_EDITED + MESSAGE_USAGE); // no index and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); @@ -55,10 +55,12 @@ public void parse_missingParts_failure() { @Test public void parse_invalidPreamble_failure() { // negative index - assertParseFailure(parser, "-5" + NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, "-5" + NAME_DESC_AMY, + ParserUtil.MESSAGE_INVALID_INDEX + "\n\n" + MESSAGE_USAGE); // zero index - assertParseFailure(parser, "0" + NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, "0" + NAME_DESC_AMY, + ParserUtil.MESSAGE_INVALID_INDEX + "\n\n" + MESSAGE_USAGE); // invalid arguments being parsed as preamble assertParseFailure(parser, "1 some random string", MESSAGE_INVALID_FORMAT); @@ -70,24 +72,24 @@ public void parse_invalidPreamble_failure() { @Test public void parse_invalidValue_failure() { assertParseFailure(parser, "1" + INVALID_NAME_DESC, - Name.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); // invalid name + Name.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); // invalid name assertParseFailure(parser, "1" + INVALID_PHONE_DESC, - Phone.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); // invalid phone + Phone.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); // invalid phone assertParseFailure(parser, "1" + INVALID_EMAIL_DESC, - Email.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); // invalid email + Email.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); // invalid email // invalid phone followed by valid email assertParseFailure(parser, "1" + INVALID_PHONE_DESC + EMAIL_DESC_AMY, - Phone.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); + Phone.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); // valid phone followed by invalid phone. The test case for invalid phone followed by valid phone // is tested at {@code parse_invalidValueFollowedByValidValue_success()} assertParseFailure(parser, "1" + PHONE_DESC_BOB + INVALID_PHONE_DESC, - Phone.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); + Phone.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); // multiple invalid values, but only the first invalid value is captured assertParseFailure(parser, "1" + INVALID_NAME_DESC + INVALID_EMAIL_DESC + VALID_PHONE_AMY, - Name.MESSAGE_CONSTRAINTS + "\n" + MESSAGE_USAGE); + Name.MESSAGE_CONSTRAINTS + "\n\n" + MESSAGE_USAGE); } @Test From 4010d27f2ee70f151d0aa3a96613da1028e6d704 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 5 Apr 2022 09:22:02 +0800 Subject: [PATCH 328/507] Expand preferred height of result display textbox --- src/main/resources/view/MainWindow.fxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index c59fe58b79a..b76fa12c567 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -41,7 +41,7 @@ - + From d27758b8aabbf92c6284c004413bef88daf7a2d7 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 5 Apr 2022 09:45:49 +0800 Subject: [PATCH 329/507] Solve JSON modified crashing ManageEZPZ, set-up defensive programming for JsonAdaptedTask --- src/main/java/manageezpz/MainApp.java | 7 +- .../manageezpz/storage/JsonAdaptedTask.java | 140 +++++++++--------- .../storage/JsonSerializableAddressBook.java | 29 ++++ 3 files changed, 100 insertions(+), 76 deletions(-) diff --git a/src/main/java/manageezpz/MainApp.java b/src/main/java/manageezpz/MainApp.java index 8c64e66ddbd..a04623e2eb2 100644 --- a/src/main/java/manageezpz/MainApp.java +++ b/src/main/java/manageezpz/MainApp.java @@ -73,7 +73,7 @@ public void init() throws Exception { * The data from the sample address book will be used instead if {@code storage}'s address book is not found, * or an empty address book will be used instead if errors occur when reading {@code storage}'s address book. */ - private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { + private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) throws IOException { Optional addressBookOptional; ReadOnlyAddressBook initialData; try { @@ -86,11 +86,12 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { } catch (DataConversionException e) { logger.warning("Data file not in the correct format. Will be starting with an empty AddressBook"); initialData = new AddressBook(); - } catch (IOException e) { + storage.saveAddressBook(initialData); + } catch (IOException | IllegalArgumentException e) { logger.warning("Problem while reading from the file. Will be starting with an empty AddressBook"); initialData = new AddressBook(); + storage.saveAddressBook(initialData); } - return new ModelManager(initialData, userPrefs); } diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index fee80fb42e5..2de5f490e83 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -9,13 +9,7 @@ import javafx.collections.ObservableList; import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.model.person.Person; -import manageezpz.model.task.Date; -import manageezpz.model.task.Deadline; -import manageezpz.model.task.Description; -import manageezpz.model.task.Event; -import manageezpz.model.task.Task; -import manageezpz.model.task.Time; -import manageezpz.model.task.Todo; +import manageezpz.model.task.*; import manageezpz.model.tasktag.Tag; /** @@ -92,89 +86,89 @@ public JsonAdaptedTask(Task source) { * @throws IllegalValueException if there were any data constraints violated in the adapted person. */ public Task toModelType(ObservableList persons) throws IllegalValueException { - if (description == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, - Description.class.getSimpleName())); - } - if (type == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); - } - if (status == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); - } - if (tag == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Tag.class.getSimpleName())); - } - + handleGeneralNullChecks(description, type, status, tag, priority); Description desc = new Description(description); boolean isDone = status.equals("X"); - if (type.equals("todo")) { Todo newTodo = new Todo(desc); - if (isDone) { - newTodo.setTaskDone(); - } - if (priority != null && !priority.isEmpty()) { - newTodo.setPriority(priority); - } - String[] tagList = tag.split(","); - for (int i = 0; i < tagList.length; i++) { - String currentTag = tagList[i].trim(); - for (int j = 0; j < persons.size(); j++) { - Person matchedPerson = null; - - if (persons.get(j).getName().toString().equals(currentTag)) { - matchedPerson = persons.get(j); - newTodo.addAssignees(matchedPerson); - } - } - } + handleLoad(newTodo, isDone, priority, tag, persons); return newTodo; } else if (type.equals("deadline")) { + handleDeadlineNullChecks(date, deadlineTime); Date currDeadlineDate = new Date(date); Time currDeadlineTime = new Time(deadlineTime); Deadline newDeadline = new Deadline(desc, currDeadlineDate, currDeadlineTime); - if (isDone) { - newDeadline.setTaskDone(); - } - if (priority != null && !priority.isEmpty()) { - newDeadline.setPriority(priority); - } - String[] tagList = tag.split(","); - for (int i = 0; i < tagList.length; i++) { - String currentTag = tagList[i].trim(); - for (int j = 0; j < persons.size(); j++) { - Person matchedPerson = null; - if (persons.get(j).getName().toString().equals(currentTag)) { - matchedPerson = persons.get(j); - newDeadline.addAssignees(matchedPerson); - } - } - } + handleLoad(newDeadline, isDone, priority, tag, persons); return newDeadline; } else { + handleEventNullChecks(date, eventStartTime, eventEndTime); Date currEventDate = new Date(date); Time currEventStartTime = new Time(eventStartTime); Time currEventEndTime = new Time(eventEndTime); Event newEvent = new Event(desc, currEventDate, currEventStartTime, currEventEndTime); - if (isDone) { - newEvent.setTaskDone(); - } - if (priority != null && !priority.isEmpty()) { - newEvent.setPriority(priority); - } - String[] tagList = tag.split(","); - for (int i = 0; i < tagList.length; i++) { - String currentTag = tagList[i].trim(); - for (int j = 0; j < persons.size(); j++) { - Person matchedPerson = null; - if (persons.get(j).getName().toString().equals(currentTag)) { - matchedPerson = persons.get(j); - newEvent.addAssignees(matchedPerson); - } + handleLoad(newEvent, isDone, priority, tag, persons); + return newEvent; + } + } + + public void handleLoad(Task task, boolean isDone, String priority, + String tag, ObservableList persons) { + if (isDone) { + task.setTaskDone(); + } + if (priority != null && !priority.isEmpty()) { + task.setPriority(priority); + } + String[] tagList = tag.split(","); + for (int i = 0; i < tagList.length; i++) { + String currentTag = tagList[i].trim(); + for (int j = 0; j < persons.size(); j++) { + Person matchedPerson; + if (persons.get(j).getName().toString().equals(currentTag)) { + matchedPerson = persons.get(j); + task.addAssignees(matchedPerson); } } - return newEvent; + } + } + public void handleGeneralNullChecks(String description, String type, String status, String tag, String priority) + throws IllegalValueException { + if (description == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + Description.class.getSimpleName())); + } + if (type == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); + } + if (status == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Task.class.getSimpleName())); + } + if (tag == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Tag.class.getSimpleName())); + } + if (priority == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Priority.class.getSimpleName())); + } + } + + public void handleDeadlineNullChecks(String date, String deadlineTime) throws IllegalValueException { + if (date == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName())); + } + if (deadlineTime == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName())); + } + } + + public void handleEventNullChecks(String date, String eventStartTime, String eventEndTime) throws IllegalValueException { + if (date == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName())); + } + if (eventStartTime == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName())); + } + if (eventEndTime == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Time.class.getSimpleName())); } } } diff --git a/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java index 46b6c87f167..929d27e2c6f 100644 --- a/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java +++ b/src/main/java/manageezpz/storage/JsonSerializableAddressBook.java @@ -1,6 +1,7 @@ package manageezpz.storage; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -22,6 +23,7 @@ class JsonSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; public static final String MESSAGE_DUPLICATE_TASKS = "Tasks list contains duplicate task(s)."; + public static final String MESSAGE_INVALID_JSON_VALUE = "Fields in JSON files are incorrect."; private final List persons = new ArrayList<>(); private final List tasks = new ArrayList<>(); @@ -53,12 +55,14 @@ public JsonSerializableAddressBook(ReadOnlyAddressBook source) { */ public AddressBook toModelType() throws IllegalValueException { AddressBook addressBook = new AddressBook(); + HashMap hm = new HashMap<>(); for (JsonAdaptedPerson jsonAdaptedPerson : persons) { Person person = jsonAdaptedPerson.toModelType(); if (addressBook.hasPerson(person)) { throw new IllegalValueException(MESSAGE_DUPLICATE_PERSON); } addressBook.addPerson(person); + hm.put(person, 0); } for (JsonAdaptedTask jsonAdaptedTask : tasks) { @@ -68,7 +72,32 @@ public AddressBook toModelType() throws IllegalValueException { } addressBook.addTask(task); } + + handleNumOfTask(addressBook.getTaskList(), addressBook.getPersonList(), hm); + return addressBook; } + + public void handleNumOfTask(List taskList, List personList, HashMap hm) + throws IllegalValueException { + for (Task task : taskList) { + List assigneesList = task.getAssignees(); + for (int i = 0; i < assigneesList.size(); i++) { + Person currentPerson = assigneesList.get(i); + if (hm.containsKey(currentPerson)) { + hm.put(currentPerson, hm.get(currentPerson) + 1); + } else { + hm.put(currentPerson, 1); + } + } + + for (Person person : personList) { + int numOfTask = hm.get(person); + if (numOfTask != person.getNumOfTasks()) { + throw new IllegalValueException(MESSAGE_INVALID_JSON_VALUE); + } + } + } + } } From 933ac41155997f5d487add60127339cc5031da52 Mon Sep 17 00:00:00 2001 From: Alfred Koh Date: Tue, 5 Apr 2022 09:47:03 +0800 Subject: [PATCH 330/507] Fix Gradle Errors --- .../java/manageezpz/storage/JsonAdaptedTask.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/manageezpz/storage/JsonAdaptedTask.java b/src/main/java/manageezpz/storage/JsonAdaptedTask.java index 2de5f490e83..177c271b5ba 100644 --- a/src/main/java/manageezpz/storage/JsonAdaptedTask.java +++ b/src/main/java/manageezpz/storage/JsonAdaptedTask.java @@ -9,7 +9,14 @@ import javafx.collections.ObservableList; import manageezpz.commons.exceptions.IllegalValueException; import manageezpz.model.person.Person; -import manageezpz.model.task.*; +import manageezpz.model.task.Date; +import manageezpz.model.task.Deadline; +import manageezpz.model.task.Description; +import manageezpz.model.task.Event; +import manageezpz.model.task.Priority; +import manageezpz.model.task.Task; +import manageezpz.model.task.Time; +import manageezpz.model.task.Todo; import manageezpz.model.tasktag.Tag; /** @@ -147,7 +154,8 @@ public void handleGeneralNullChecks(String description, String type, String stat throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Tag.class.getSimpleName())); } if (priority == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Priority.class.getSimpleName())); + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, + Priority.class.getSimpleName())); } } @@ -160,7 +168,8 @@ public void handleDeadlineNullChecks(String date, String deadlineTime) throws Il } } - public void handleEventNullChecks(String date, String eventStartTime, String eventEndTime) throws IllegalValueException { + public void handleEventNullChecks(String date, String eventStartTime, String eventEndTime) + throws IllegalValueException { if (date == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Date.class.getSimpleName())); } From 98deb5fdc96e963702bf0f88532000b78741dbf0 Mon Sep 17 00:00:00 2001 From: dannytayjy Date: Tue, 5 Apr 2022 10:53:58 +0800 Subject: [PATCH 331/507] Optimize GUI and modify some properties --- .../manageezpz/commons/core/GuiSettings.java | 4 ++-- src/main/java/manageezpz/ui/MainWindow.java | 1 + src/main/java/manageezpz/ui/UiManager.java | 2 +- src/main/resources/view/DarkTheme.css | 2 +- src/main/resources/view/MainWindow.fxml | 2 +- src/main/resources/view/PersonListCard.fxml | 6 +++--- src/main/resources/view/TaskListCard.fxml | 20 +++++++++---------- 7 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/main/java/manageezpz/commons/core/GuiSettings.java b/src/main/java/manageezpz/commons/core/GuiSettings.java index 8ad3cc6da9a..6c4e6f6b973 100644 --- a/src/main/java/manageezpz/commons/core/GuiSettings.java +++ b/src/main/java/manageezpz/commons/core/GuiSettings.java @@ -11,7 +11,7 @@ public class GuiSettings implements Serializable { private static final double DEFAULT_HEIGHT = 600; - private static final double DEFAULT_WIDTH = 740; + private static final double DEFAULT_WIDTH = 850; private final double windowWidth; private final double windowHeight; @@ -52,7 +52,7 @@ public boolean equals(Object other) { if (other == this) { return true; } - if (!(other instanceof GuiSettings)) { //this handles null as well. + if (!(other instanceof GuiSettings)) { // this handles null as well return false; } diff --git a/src/main/java/manageezpz/ui/MainWindow.java b/src/main/java/manageezpz/ui/MainWindow.java index 3297937d968..a86b647293e 100644 --- a/src/main/java/manageezpz/ui/MainWindow.java +++ b/src/main/java/manageezpz/ui/MainWindow.java @@ -136,6 +136,7 @@ void fillInnerParts() { private void setWindowDefaultSize(GuiSettings guiSettings) { primaryStage.setHeight(guiSettings.getWindowHeight()); primaryStage.setWidth(guiSettings.getWindowWidth()); + if (guiSettings.getWindowCoordinates() != null) { primaryStage.setX(guiSettings.getWindowCoordinates().getX()); primaryStage.setY(guiSettings.getWindowCoordinates().getY()); diff --git a/src/main/java/manageezpz/ui/UiManager.java b/src/main/java/manageezpz/ui/UiManager.java index 25d5fed225f..4ba91c56f61 100644 --- a/src/main/java/manageezpz/ui/UiManager.java +++ b/src/main/java/manageezpz/ui/UiManager.java @@ -41,7 +41,7 @@ public void start(Stage primaryStage) { try { mainWindow = new MainWindow(primaryStage, logic); - mainWindow.show(); //This should be called before creating other UI parts + mainWindow.show(); // This should be called before creating other UI parts mainWindow.fillInnerParts(); } catch (Throwable e) { logger.severe(StringUtil.getDetails(e)); diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 1d611d04321..815b35f35a0 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -29,7 +29,7 @@ } .label-list-header { - -fx-font-size: 16pt; + -fx-font-size: 15pt; -fx-font-family: "Segoe UI Semibold"; -fx-text-fill: white; -fx-opacity: 1; diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index b76fa12c567..676d49d702f 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -14,7 +14,7 @@ - + diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index ff989de6210..eaaeea9f8d7 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -33,7 +33,7 @@