Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Project 1 / docs
diff options
context:
space:
mode:
Commit24bdf39e6c21ab846f6c86803761d78a094e05c0 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-26 20:31:26 +0300
Files1b2077b088098cc7ae6afc946b10a4d680110294 /Year 1/Object-oriented Programming/Project 1/docs
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.tar.gz
uni-projects-24bdf39e6c21ab846f6c86803761d78a094e05c0.zip
Parentcbe944835cc0951a946d01f034b4d28ff9874a4e (diff)
Added files from project 1 (mirror)
302 files changed, 28346 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/Doxyfile8
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h.html95
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h_source.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h.html173
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h_source.html132
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h.html100
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h_source.html147
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h.html218
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h_source.html141
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/FMI-OOP-P1_TicketSystem Overview.svg571
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h.html129
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h_source.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h.html98
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h_source.html108
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h.html172
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h_source.html119
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp.html180
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp_source.html353
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h.html97
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h_source.html117
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp_source.html121
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h.html108
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h_source.html124
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h.html128
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h_source.html104
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/String_8h.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/String_8h_source.html129
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h.html172
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h_source.html114
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp.html750
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp_source.html182
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/annotated.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classCommand-members.html82
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classCommand.html166
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classDate-members.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classDate.html371
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classEvent-members.html90
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classEvent.html218
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classEventService-members.html94
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classEventService.html678
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classHall-members.html87
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classHall.html206
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classHallService-members.html82
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classHallService.html154
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classList-members.html103
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classList.html426
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classList.pngbin0 -> 471 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classMenu-members.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classMenu.html330
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList-members.html108
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.html287
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.pngbin0 -> 465 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classReservation-members.html89
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classReservation.html297
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classString-members.html96
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classString.html388
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classTicket-members.html85
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classTicket.html198
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/classes.html108
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/closed.pngbin0 -> 132 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html79
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_36df885461d6bd14211edf06510d126c.html95
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html79
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html95
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_6aea3fadc932e04aa9fe3b3b27672cd7.html92
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_7224707058fb4969194ce052045af3c4.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html86
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html91
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html89
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html92
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/doc.pngbin0 -> 746 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.css1841
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.svg26
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/dynsections.js121
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/files.html104
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/folderclosed.pngbin0 -> 616 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/folderopen.pngbin0 -> 597 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/functions.html211
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/functions_func.html209
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/functions_rela.html76
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/globals.html145
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/globals_enum.html75
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/globals_func.html144
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/hierarchy.html100
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/index.html126
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/jquery.js35
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/main_8cpp.html116
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/menu.js127
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/menudata.js98
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/open.pngbin0 -> 123 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.js16
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.js14
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.js14
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.js23
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.js11
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.js13
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.js8
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/close.svg31
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.js15
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.js11
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.js6
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.js13
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.js23
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.js9
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.js7
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/mag_sel.svg74
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/nomatches.html13
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.js4
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.html37
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.js5
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/search.css263
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/search.js794
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/search_l.pngbin0 -> 567 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/search_r.pngbin0 -> 553 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/search/searchdata.js33
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/splitbar.pngbin0 -> 314 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/tab_b.pngbin0 -> 169 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/html/tabs.css1
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/images/FMI-OOP-P1_TicketSystem Overview.svg571
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/index.md67
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h.tex17
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h_source.tex22
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h.tex60
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h_source.tex44
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h.tex22
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h_source.tex49
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h.tex101
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h_source.tex48
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/FMI-OOP-P1_TicketSystem Overview.svg571
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h.tex33
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h_source.tex15
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h.tex20
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h_source.tex26
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h.tex59
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h_source.tex36
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp.tex67
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp_source.tex263
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Makefile23
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h.tex19
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h_source.tex34
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp.tex18
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp_source.tex41
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h.tex29
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h_source.tex39
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h.tex46
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h_source.tex30
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h.tex19
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h_source.tex46
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h.tex59
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h_source.tex32
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp.tex423
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp_source.tex86
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/annotated.tex15
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classCommand.tex68
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classDate.tex207
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classEvent.tex118
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classEventService.tex314
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classHall.tex109
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classHallService.tex70
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classList.eps197
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classList.pdf116
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classList.tex267
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classMenu.tex156
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.eps197
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.pdf117
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.tex94
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classReservation.tex149
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classString.tex194
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/classTicket.tex103
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/doxygen.sty601
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/files.tex19
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/hierarchy.tex34
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/index.tex62
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/longtable_doxygen.sty448
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/main_8cpp.tex31
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/refman.pdfbin0 -> 288245 bytes
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/refman.tex240
-rw-r--r--Year 1/Object-oriented Programming/Project 1/docs/latex/tabu_doxygen.sty2557
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/Doxyfile b/Year 1/Object-oriented Programming/Project 1/docs/Doxyfile
new file mode 100644
index 0000000..390442a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/Doxyfile
@@ -0,0 +1,8 @@
+INPUT = ../src/ ./
+IMAGE_PATH = images
+FILE_PATTERNS = *.h *.hpp *.cpp *.md
+STRIP_FROM_PATH = /home/kamen/Programming/GitHub-repos/FMI-OOP-P1_TicketSystem/
+RECURSIVE = YES
+
+PROJECT_NAME = "FMI Ticket System"
+PROJECT_BRIEF = "| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |"
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h.html
new file mode 100644
index 0000000..acf7b35
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Command.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Command.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>.
+<a href="#details">More...</a></p>
+
+<p><a href="Command_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html">Command</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a> <a href="classCommand.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h_source.html
new file mode 100644
index 0000000..4888f3f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Command_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Command.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Command.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Command_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_COMMAND</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_COMMAND</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classCommand.html"> 12</a></span><span class="keyword">class </span><a class="code hl_class" href="classCommand.html">Command</a> {</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">char</span> nameInMenu[256];</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> void (*exec)();</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_function" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>();</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_function" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nameInMenu, <span class="keywordtype">void</span> (*exec)());</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">run</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* get_nameInMenu() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>};</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassCommand_html"><div class="ttname"><a href="classCommand.html">Command</a></div><div class="ttdoc">Stores a 256 character name and a function pointer to be executed when calling run()</div><div class="ttdef"><b>Definition:</b> Command.h:12</div></div>
+<div class="ttc" id="aclassCommand_html_a18df2d81039392daeb0b78c346a70537"><div class="ttname"><a href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command::Command</a></div><div class="ttdeci">Command()</div><div class="ttdoc">Leaves name empty and exec function pointer to nullptr.</div><div class="ttdef"><b>Definition:</b> Command.cpp:4</div></div>
+<div class="ttc" id="aclassCommand_html_a44689093b812bfc97b2787c2ba0303ce"><div class="ttname"><a href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">Command::run</a></div><div class="ttdeci">void run() const</div><div class="ttdoc">Executes the stored function pointer.</div><div class="ttdef"><b>Definition:</b> Command.cpp:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h.html
new file mode 100644
index 0000000..3dfea47
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/Date/Date.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_7224707058fb4969194ce052045af3c4.html">Date</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Date.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+<code>#include &quot;<a class="el" href="String_8h_source.html">../String/String.h</a>&quot;</code><br />
+</div>
+<p><a href="Date_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html">Date</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a day, month and year. <a href="classDate.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae020cf1772268f1a43d172d3adfc9797"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classDate.html">Date</a> &amp;dt)</td></tr>
+<tr class="memdesc:ae020cf1772268f1a43d172d3adfc9797"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads date from stream with &gt;&gt; operator. <a href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">More...</a><br /></td></tr>
+<tr class="separator:ae020cf1772268f1a43d172d3adfc9797"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad12d4bbc4f7919efdec583d1478a6a76"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classDate.html">Date</a> &amp;dt)</td></tr>
+<tr class="memdesc:ad12d4bbc4f7919efdec583d1478a6a76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes date to stream with &lt;&lt; operator. <a href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">More...</a><br /></td></tr>
+<tr class="separator:ad12d4bbc4f7919efdec583d1478a6a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ad12d4bbc4f7919efdec583d1478a6a76" name="ad12d4bbc4f7919efdec583d1478a6a76"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad12d4bbc4f7919efdec583d1478a6a76">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>dt</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes date to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the date in the format "day.month.year"</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="ae020cf1772268f1a43d172d3adfc9797" name="ae020cf1772268f1a43d172d3adfc9797"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae020cf1772268f1a43d172d3adfc9797">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>dt</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads date from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse the day, month and year.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h_source.html
new file mode 100644
index 0000000..2abaa4b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Date_8h_source.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/Date/Date.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_7224707058fb4969194ce052045af3c4.html">Date</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Date.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Date_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_DATE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_DATE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;../String/String.h&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classDate.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classDate.html">Date</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> day;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> month;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> year;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">bool</span> isLeapYear();</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> daysInMonth();</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_function" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a>();</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_function" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_function" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> day, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> month, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> year);</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code hl_function" href="classDate.html#a2e4dc4249f8cccd40acc5950b42e1339">get_day</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">set_day</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> day);</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code hl_function" href="classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc">get_month</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classDate.html#ad0a591a557ddde0871389c3d716e6044">set_month</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> month);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code hl_function" href="classDate.html#a025aae2b290ba357e049d054085f91e3">get_year</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">set_year</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> year);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">createString</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classDate.html#a9c728831f35f27abf3348132a13b7844">write</a>(std::ostream&amp; ostr);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>std::istream&amp; <a class="code hl_function" href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classDate.html">Date</a>&amp; dt);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>std::ostream&amp; <a class="code hl_function" href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; dt);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aDate_8h_html_ad12d4bbc4f7919efdec583d1478a6a76"><div class="ttname"><a href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const Date &amp;dt)</div><div class="ttdoc">Writes date to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Date.cpp:171</div></div>
+<div class="ttc" id="aDate_8h_html_ae020cf1772268f1a43d172d3adfc9797"><div class="ttname"><a href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, Date &amp;dt)</div><div class="ttdoc">Reads date from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> Date.cpp:159</div></div>
+<div class="ttc" id="aclassDate_html"><div class="ttname"><a href="classDate.html">Date</a></div><div class="ttdoc">Stores a day, month and year.</div><div class="ttdef"><b>Definition:</b> Date.h:14</div></div>
+<div class="ttc" id="aclassDate_html_a025aae2b290ba357e049d054085f91e3"><div class="ttname"><a href="classDate.html#a025aae2b290ba357e049d054085f91e3">Date::get_year</a></div><div class="ttdeci">unsigned short get_year() const</div><div class="ttdoc">Returns the year.</div><div class="ttdef"><b>Definition:</b> Date.cpp:87</div></div>
+<div class="ttc" id="aclassDate_html_a2e4dc4249f8cccd40acc5950b42e1339"><div class="ttname"><a href="classDate.html#a2e4dc4249f8cccd40acc5950b42e1339">Date::get_day</a></div><div class="ttdeci">unsigned short get_day() const</div><div class="ttdoc">Returns the day.</div><div class="ttdef"><b>Definition:</b> Date.cpp:57</div></div>
+<div class="ttc" id="aclassDate_html_a3cda588bf2f65b84639303a1aa1105be"><div class="ttname"><a href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">Date::compare</a></div><div class="ttdeci">int compare(const Date &amp;other) const</div><div class="ttdoc">Compares two dates.</div><div class="ttdef"><b>Definition:</b> Date.cpp:145</div></div>
+<div class="ttc" id="aclassDate_html_a4e59ed4ba66eec61c27460c5d09fa1bd"><div class="ttname"><a href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date::Date</a></div><div class="ttdeci">Date()</div><div class="ttdoc">Sets date as 01 May 2022.</div><div class="ttdef"><b>Definition:</b> Date.cpp:21</div></div>
+<div class="ttc" id="aclassDate_html_a6a0f3124e1850cd9f1514ebffcdd0cae"><div class="ttname"><a href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">Date::set_year</a></div><div class="ttdeci">bool set_year(unsigned short year)</div><div class="ttdoc">Sets the year.</div><div class="ttdef"><b>Definition:</b> Date.cpp:95</div></div>
+<div class="ttc" id="aclassDate_html_a6e00ace9f8c923c96188bd76f1e064c2"><div class="ttname"><a href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">Date::createString</a></div><div class="ttdeci">String createString() const</div><div class="ttdoc">Returns the date as a String object.</div><div class="ttdef"><b>Definition:</b> Date.cpp:112</div></div>
+<div class="ttc" id="aclassDate_html_a79ebbf3cb46f892604dc79ffc82bcfcc"><div class="ttname"><a href="classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc">Date::get_month</a></div><div class="ttdeci">unsigned short get_month() const</div><div class="ttdoc">Returns the month.</div><div class="ttdef"><b>Definition:</b> Date.cpp:72</div></div>
+<div class="ttc" id="aclassDate_html_a982c0c9098056aa33c5cbc9eba093852"><div class="ttname"><a href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">Date::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads date from stream.</div><div class="ttdef"><b>Definition:</b> Date.cpp:124</div></div>
+<div class="ttc" id="aclassDate_html_a9c728831f35f27abf3348132a13b7844"><div class="ttname"><a href="classDate.html#a9c728831f35f27abf3348132a13b7844">Date::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr)</div><div class="ttdoc">Writes date to stream.</div><div class="ttdef"><b>Definition:</b> Date.cpp:137</div></div>
+<div class="ttc" id="aclassDate_html_acaf0c3ee1b2d36edf4f870ddd8acce08"><div class="ttname"><a href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">Date::set_day</a></div><div class="ttdeci">bool set_day(unsigned short day)</div><div class="ttdoc">Sets the day.</div><div class="ttdef"><b>Definition:</b> Date.cpp:65</div></div>
+<div class="ttc" id="aclassDate_html_ad0a591a557ddde0871389c3d716e6044"><div class="ttname"><a href="classDate.html#ad0a591a557ddde0871389c3d716e6044">Date::set_month</a></div><div class="ttdeci">bool set_month(unsigned short month)</div><div class="ttdoc">Sets the month.</div><div class="ttdef"><b>Definition:</b> Date.cpp:80</div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.h:11</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h.html
new file mode 100644
index 0000000..1552dcc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/EventService.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">EventService.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="OrderedList_8hpp_source.html">../Generic/List/OrderedList.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Date_8h_source.html">../Generic/Date/Date.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Event_8h_source.html">../Models/Event.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="HallService_8h_source.html">HallService.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="StatusCode_8h_source.html">StatusCode.h</a>&quot;</code><br />
+</div>
+<p><a href="EventService_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html">EventService</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> stores all events and a pointer to <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>. <a href="classEventService.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h_source.html
new file mode 100644
index 0000000..8eb2513
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/EventService_8h_source.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/EventService.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">EventService.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="EventService_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_SERVICES_EVENTSERVICE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_SERVICES_EVENTSERVICE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;../Generic/List/OrderedList.hpp&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Generic/Date/Date.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;../Models/Event.h&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="HallService_8h.html">HallService.h</a>&quot;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="StatusCode_8h.html">StatusCode.h</a>&quot;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="classEventService.html"> 16</a></span><span class="keyword">class </span><a class="code hl_class" href="classEventService.html">EventService</a> {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Event&gt;</a> events;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">const</span> <a class="code hl_class" href="classHallService.html">HallService</a>* hs;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">unsigned</span> indexOfEvent(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date);</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_function" href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService</a>(<span class="keyword">const</span> <a class="code hl_class" href="classHallService.html">HallService</a>* hs);</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_function" href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService</a>(<span class="keyword">const</span> <a class="code hl_class" href="classHallService.html">HallService</a>* hs, <span class="keyword">const</span> <a class="code hl_class" href="classEvent.html">Event</a>* events, <span class="keywordtype">unsigned</span> eventCount);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#a7a21a5909116215e402254510d6d81d6">createEvent</a>(<span class="keywordtype">int</span> hallNumber, <span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date);</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">cancelEvent</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date);</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">reserveTicket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keyword">const</span> <span class="keywordtype">char</span>* password, <span class="keyword">const</span> <span class="keywordtype">char</span>* note, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">cancelTicketReservation</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">ticketIsReserved</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">buyTicket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket, <span class="keyword">const</span> <span class="keywordtype">char</span>* password, <a class="code hl_class" href="classString.html">String</a>* reservationNoteOutput);</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">buyTicket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="classString.html">String</a> <a class="code hl_function" href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">createSeatingString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date, <span class="keywordtype">unsigned</span>* seatsPerRow);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_class" href="classList.html">List&lt;Event&gt;</a> <a class="code hl_function" href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">queryMostWatched</a>(<span class="keywordtype">unsigned</span> topN);</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_class" href="classList.html">List&lt;Event&gt;</a> <a class="code hl_function" href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">queryInsufficientlyVisited</a>();</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">reportReservations</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; date);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">reportBoughtTickets</a>(<span class="keywordtype">int</span> hallNumber, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; start, <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; end, <span class="keywordtype">bool</span> all = <span class="keyword">false</span>);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">load</a>();</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">save</a>();</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>};</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aHallService_8h_html"><div class="ttname"><a href="HallService_8h.html">HallService.h</a></div><div class="ttdoc">Stores the declaration of class HallService.</div></div>
+<div class="ttc" id="aStatusCode_8h_html"><div class="ttname"><a href="StatusCode_8h.html">StatusCode.h</a></div><div class="ttdoc">Stores declaration of enum StatusCode.</div></div>
+<div class="ttc" id="aStatusCode_8h_html_ae98a46f4ea1a43ca48acaf15d2eb7113"><div class="ttname"><a href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a></div><div class="ttdeci">StatusCode</div><div class="ttdoc">Used for communication between Services and what uses them.</div><div class="ttdef"><b>Definition:</b> StatusCode.h:14</div></div>
+<div class="ttc" id="aclassDate_html"><div class="ttname"><a href="classDate.html">Date</a></div><div class="ttdoc">Stores a day, month and year.</div><div class="ttdef"><b>Definition:</b> Date.h:14</div></div>
+<div class="ttc" id="aclassEventService_html"><div class="ttname"><a href="classEventService.html">EventService</a></div><div class="ttdoc">Each EventService stores all events and a pointer to HallService.</div><div class="ttdef"><b>Definition:</b> EventService.h:16</div></div>
+<div class="ttc" id="aclassEventService_html_a1225c23dae83fa928da47113cd1c5617"><div class="ttname"><a href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">EventService::load</a></div><div class="ttdeci">StatusCode load()</div><div class="ttdoc">Loads Events from a database file.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:336</div></div>
+<div class="ttc" id="aclassEventService_html_a277194aea79a2c9bf955b7706a20c54c"><div class="ttname"><a href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">EventService::reportReservations</a></div><div class="ttdeci">StatusCode reportReservations(const char *name, const Date &amp;date)</div><div class="ttdoc">Creates a report that lists all Events (with given name and date) and their reserved tickets.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:257</div></div>
+<div class="ttc" id="aclassEventService_html_a3c0d2a05e2a3026044b9e13e6802fbdb"><div class="ttname"><a href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">EventService::reserveTicket</a></div><div class="ttdeci">StatusCode reserveTicket(const char *name, const Date &amp;date, const char *password, const char *note, const Ticket &amp;ticket)</div><div class="ttdoc">Creates a Reservation for an Event by name and date.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:72</div></div>
+<div class="ttc" id="aclassEventService_html_a5aac3df17ef30f84c1c28277c256ec32"><div class="ttname"><a href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">EventService::save</a></div><div class="ttdeci">StatusCode save()</div><div class="ttdoc">Saves Events to a database file.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:352</div></div>
+<div class="ttc" id="aclassEventService_html_a6700bd4f9da6d12a47812b9c8549556e"><div class="ttname"><a href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">EventService::queryMostWatched</a></div><div class="ttdeci">List&lt; Event &gt; queryMostWatched(unsigned topN)</div><div class="ttdef"><b>Definition:</b> EventService.cpp:212</div></div>
+<div class="ttc" id="aclassEventService_html_a7a21a5909116215e402254510d6d81d6"><div class="ttname"><a href="classEventService.html#a7a21a5909116215e402254510d6d81d6">EventService::createEvent</a></div><div class="ttdeci">StatusCode createEvent(int hallNumber, const String &amp;name, const Date &amp;date)</div><div class="ttdoc">Creates an Event, with the given hallNumber, name and date.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:38</div></div>
+<div class="ttc" id="aclassEventService_html_a7f4632e3beae5d24087047ab0223f85e"><div class="ttname"><a href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">EventService::createSeatingString</a></div><div class="ttdeci">String createSeatingString(const char *name, const Date &amp;date, unsigned *seatsPerRow)</div><div class="ttdoc">Creates a special String for status of all seats in given Event (by name and date) and returns seatsP...</div><div class="ttdef"><b>Definition:</b> EventService.cpp:173</div></div>
+<div class="ttc" id="aclassEventService_html_a814de3510f72150f2e54d44f8c8948bb"><div class="ttname"><a href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">EventService::queryInsufficientlyVisited</a></div><div class="ttdeci">List&lt; Event &gt; queryInsufficientlyVisited()</div><div class="ttdef"><b>Definition:</b> EventService.cpp:224</div></div>
+<div class="ttc" id="aclassEventService_html_a9b30bb95890abac259ba27b53cabe545"><div class="ttname"><a href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService::EventService</a></div><div class="ttdeci">EventService(const HallService *hs)</div><div class="ttdoc">Sets HallService pointer and initializes events List.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:22</div></div>
+<div class="ttc" id="aclassEventService_html_aa6fd620de878f225f7c51bb0df6ea749"><div class="ttname"><a href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">EventService::cancelTicketReservation</a></div><div class="ttdeci">StatusCode cancelTicketReservation(const char *name, const Date &amp;date, const Ticket &amp;ticket)</div><div class="ttdoc">Cancels a Reservation for a ticket.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:98</div></div>
+<div class="ttc" id="aclassEventService_html_ac447cac3e4974b9cc676d9bb90152979"><div class="ttname"><a href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">EventService::buyTicket</a></div><div class="ttdeci">StatusCode buyTicket(const char *name, const Date &amp;date, const Ticket &amp;ticket, const char *password, String *reservationNoteOutput)</div><div class="ttdoc">Buys ticket, assuming it is reserved and stores the reservation note.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:142</div></div>
+<div class="ttc" id="aclassEventService_html_ac7ea565af5ad78e84749558477ceaf26"><div class="ttname"><a href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">EventService::cancelEvent</a></div><div class="ttdeci">StatusCode cancelEvent(const char *name, const Date &amp;date)</div><div class="ttdoc">Cancels an Event with the given name and date.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:57</div></div>
+<div class="ttc" id="aclassEventService_html_ad1efbed6111da8e755d86b5bc9ada806"><div class="ttname"><a href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">EventService::ticketIsReserved</a></div><div class="ttdeci">StatusCode ticketIsReserved(const char *name, const Date &amp;date, const Ticket &amp;ticket)</div><div class="ttdoc">Whether a ticket is a reserved or not.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:116</div></div>
+<div class="ttc" id="aclassEventService_html_afc74fc6d44fca054bce8e54997c0cd3e"><div class="ttname"><a href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">EventService::reportBoughtTickets</a></div><div class="ttdeci">StatusCode reportBoughtTickets(int hallNumber, const Date &amp;start, const Date &amp;end, bool all=false)</div><div class="ttdoc">Creates a report that Lists all Events (with given name and date) and number of bought tickets.</div><div class="ttdef"><b>Definition:</b> EventService.cpp:308</div></div>
+<div class="ttc" id="aclassEvent_html"><div class="ttname"><a href="classEvent.html">Event</a></div><div class="ttdoc">Stores an event's hall, name, date, bought tickets and reservations.</div><div class="ttdef"><b>Definition:</b> Event.h:19</div></div>
+<div class="ttc" id="aclassHallService_html"><div class="ttname"><a href="classHallService.html">HallService</a></div><div class="ttdoc">Each HallService stores all halls.</div><div class="ttdef"><b>Definition:</b> HallService.h:14</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List&lt; Event &gt;</a></div></div>
+<div class="ttc" id="aclassOrderedList_html"><div class="ttname"><a href="classOrderedList.html">OrderedList&lt; Event &gt;</a></div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.h:11</div></div>
+<div class="ttc" id="aclassTicket_html"><div class="ttname"><a href="classTicket.html">Ticket</a></div><div class="ttdoc">Each Ticket contains a row and a seat number.</div><div class="ttdef"><b>Definition:</b> Ticket.h:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h.html
new file mode 100644
index 0000000..252203a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Event.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Event.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="OrderedList_8hpp_source.html">../Generic/List/OrderedList.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Date_8h_source.html">../Generic/Date/Date.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="String_8h_source.html">../Generic/String/String.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Hall_8h_source.html">Hall.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Ticket_8h_source.html">Ticket.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Reservation_8h_source.html">Reservation.h</a>&quot;</code><br />
+<code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="Event_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEvent.html">Event</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores an event's hall, name, date, bought tickets and reservations. <a href="classEvent.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a31d9c76919809491b346728ec6659b19"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Event_8h.html#a31d9c76919809491b346728ec6659b19">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classEvent.html">Event</a> &amp;event)</td></tr>
+<tr class="memdesc:a31d9c76919809491b346728ec6659b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> from stream with &gt;&gt; operator. <a href="Event_8h.html#a31d9c76919809491b346728ec6659b19">More...</a><br /></td></tr>
+<tr class="separator:a31d9c76919809491b346728ec6659b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad423797aa9adadabb5651f8955c001bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">configureEventInsertionOp</a> (unsigned setting)</td></tr>
+<tr class="memdesc:ad423797aa9adadabb5651f8955c001bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures how <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> should be shown, when written to stream with &lt;&lt; operator. <a href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">More...</a><br /></td></tr>
+<tr class="separator:ad423797aa9adadabb5651f8955c001bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08eaf45abee385d26c4934afeb9be163"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classEvent.html">Event</a> &amp;event)</td></tr>
+<tr class="memdesc:a08eaf45abee385d26c4934afeb9be163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> to stream with &lt;&lt; operator. <a href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">More...</a><br /></td></tr>
+<tr class="separator:a08eaf45abee385d26c4934afeb9be163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ad423797aa9adadabb5651f8955c001bb" name="ad423797aa9adadabb5651f8955c001bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad423797aa9adadabb5651f8955c001bb">&#9670;&nbsp;</a></span>configureEventInsertionOp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void configureEventInsertionOp </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>setting</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Configures how <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> should be shown, when written to stream with &lt;&lt; operator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">setting</td><td>A number, defining the different options. It's best if it is passed as binary number.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Sets a configuration setting for how operator&lt;&lt; should behave. Setting is stored as a global variable in the cpp file, so it's independent of <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> instance.</p>
+<p >Each bit in the number is a certain setting. Each bit from left to right represents one of these options, from top to bottom:</p><ol type="1">
+<li>Write count of bought tickets (available only if 5. is set)</li>
+<li>Write count of reserved tickets (available only if 5. is set)</li>
+<li>Write reservations</li>
+<li>Write bought tickets</li>
+<li>Write <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> information</li>
+</ol>
+<dl class="section user"><dt>Example</dt><dd>To configure printing the <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> information, bought tickets count and the bought tickets themselves, you would do: <div class="fragment"><div class="line"><a class="code hl_function" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">configureEventInsertionOp</a>(0b10011);</div>
+<div class="ttc" id="aEvent_8h_html_ad423797aa9adadabb5651f8955c001bb"><div class="ttname"><a href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">configureEventInsertionOp</a></div><div class="ttdeci">void configureEventInsertionOp(unsigned setting)</div><div class="ttdoc">Configures how Event should be shown, when written to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Event.cpp:120</div></div>
+</div><!-- fragment --> </dd></dl>
+
+</div>
+</div>
+<a id="a08eaf45abee385d26c4934afeb9be163" name="a08eaf45abee385d26c4934afeb9be163"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a08eaf45abee385d26c4934afeb9be163">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classEvent.html">Event</a> &amp;&#160;</td>
+ <td class="paramname"><em>event</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write all internal data, following setting from <a class="el" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb" title="Configures how Event should be shown, when written to stream with &lt;&lt; operator.">configureEventInsertionOp()</a> Stored types must have defined operator &lt;&lt;.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a31d9c76919809491b346728ec6659b19" name="a31d9c76919809491b346728ec6659b19"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a31d9c76919809491b346728ec6659b19">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classEvent.html">Event</a> &amp;&#160;</td>
+ <td class="paramname"><em>event</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse all internal values. Stored types must have defined operator &gt;&gt;.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h_source.html
new file mode 100644
index 0000000..fd176b2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Event_8h_source.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Event.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Event.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Event_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_MODEL_EVENT</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_MODEL_EVENT</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;../Generic/List/OrderedList.hpp&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Generic/Date/Date.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;../Generic/String/String.h&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="Hall_8h.html">Hall.h</a>&quot;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="Ticket_8h.html">Ticket.h</a>&quot;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="Reservation_8h.html">Reservation.h</a>&quot;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classEvent.html"> 19</a></span><span class="keyword">class </span><a class="code hl_class" href="classEvent.html">Event</a> {</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classHall.html">Hall</a> hall;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_class" href="classString.html">String</a> name;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_class" href="classDate.html">Date</a> date;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Ticket&gt;</a> tickets;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Reservation&gt;</a> reservations;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_function" href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event</a>();</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_function" href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event</a>(<span class="keyword">const</span> <a class="code hl_class" href="classHall.html">Hall</a>&amp; hall, <a class="code hl_class" href="classString.html">String</a> name, <a class="code hl_class" href="classDate.html">Date</a> date);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">const</span> <a class="code hl_class" href="classHall.html">Hall</a>&amp; <a class="code hl_function" href="classEvent.html#ae3023ae2c487f46b3235f67554e58615">get_hall</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classEvent.html#a7bf717630c32826689df41e0bb3ecbce">get_name</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <a class="code hl_class" href="classDate.html">Date</a>&amp; <a class="code hl_function" href="classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293">get_date</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Ticket&gt;</a>&amp; <a class="code hl_function" href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">get_tickets</a>();</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">const</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Ticket&gt;</a>&amp; <a class="code hl_function" href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">get_tickets</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Reservation&gt;</a>&amp; <a class="code hl_function" href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">get_reservations</a>();</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Reservation&gt;</a>&amp; <a class="code hl_function" href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">get_reservations</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classEvent.html#a05a302aa998977c30950987c07f0fbba">write</a>(std::ostream&amp; ostr);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classEvent.html">Event</a>&amp; other);</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>};</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>std::istream&amp; <a class="code hl_function" href="Event_8h.html#a31d9c76919809491b346728ec6659b19">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classEvent.html">Event</a>&amp; event);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keywordtype">void</span> <a class="code hl_function" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">configureEventInsertionOp</a>(<span class="keywordtype">unsigned</span> setting);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>std::ostream&amp; <a class="code hl_function" href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classEvent.html">Event</a>&amp; event);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aEvent_8h_html_a08eaf45abee385d26c4934afeb9be163"><div class="ttname"><a href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const Event &amp;event)</div><div class="ttdoc">Writes Event to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Event.cpp:130</div></div>
+<div class="ttc" id="aEvent_8h_html_a31d9c76919809491b346728ec6659b19"><div class="ttname"><a href="Event_8h.html#a31d9c76919809491b346728ec6659b19">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, Event &amp;event)</div><div class="ttdoc">Reads Event from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> Event.cpp:86</div></div>
+<div class="ttc" id="aEvent_8h_html_ad423797aa9adadabb5651f8955c001bb"><div class="ttname"><a href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">configureEventInsertionOp</a></div><div class="ttdeci">void configureEventInsertionOp(unsigned setting)</div><div class="ttdoc">Configures how Event should be shown, when written to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Event.cpp:120</div></div>
+<div class="ttc" id="aHall_8h_html"><div class="ttname"><a href="Hall_8h.html">Hall.h</a></div><div class="ttdoc">Stores the declaration of class Hall.</div></div>
+<div class="ttc" id="aReservation_8h_html"><div class="ttname"><a href="Reservation_8h.html">Reservation.h</a></div><div class="ttdoc">Stores the declaration of class Reservation.</div></div>
+<div class="ttc" id="aTicket_8h_html"><div class="ttname"><a href="Ticket_8h.html">Ticket.h</a></div><div class="ttdoc">Stores the declaration of class Ticket.</div></div>
+<div class="ttc" id="aclassDate_html"><div class="ttname"><a href="classDate.html">Date</a></div><div class="ttdoc">Stores a day, month and year.</div><div class="ttdef"><b>Definition:</b> Date.h:14</div></div>
+<div class="ttc" id="aclassEvent_html"><div class="ttname"><a href="classEvent.html">Event</a></div><div class="ttdoc">Stores an event's hall, name, date, bought tickets and reservations.</div><div class="ttdef"><b>Definition:</b> Event.h:19</div></div>
+<div class="ttc" id="aclassEvent_html_a05a302aa998977c30950987c07f0fbba"><div class="ttname"><a href="classEvent.html#a05a302aa998977c30950987c07f0fbba">Event::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr)</div><div class="ttdoc">Writes Event to stream.</div><div class="ttdef"><b>Definition:</b> Event.cpp:64</div></div>
+<div class="ttc" id="aclassEvent_html_a16a84fced8e02f756232c54c27bb22ad"><div class="ttname"><a href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">Event::get_tickets</a></div><div class="ttdeci">OrderedList&lt; Ticket &gt; &amp; get_tickets()</div><div class="ttdoc">Returns reference to bought tickets.</div><div class="ttdef"><b>Definition:</b> Event.cpp:12</div></div>
+<div class="ttc" id="aclassEvent_html_a222904d44dfaf3f1f96e2190c5ea4293"><div class="ttname"><a href="classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293">Event::get_date</a></div><div class="ttdeci">const Date &amp; get_date() const</div><div class="ttdoc">Returns constant reference to date on which event will be held.</div><div class="ttdef"><b>Definition:</b> Event.cpp:36</div></div>
+<div class="ttc" id="aclassEvent_html_a43c6b2bddd42435eb6c8cd0f15d75c6f"><div class="ttname"><a href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">Event::get_reservations</a></div><div class="ttdeci">OrderedList&lt; Reservation &gt; &amp; get_reservations()</div><div class="ttdoc">Returns reference to reservations.</div><div class="ttdef"><b>Definition:</b> Event.cpp:20</div></div>
+<div class="ttc" id="aclassEvent_html_a5a40dd4708297f7031e29b39e039ae10"><div class="ttname"><a href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event::Event</a></div><div class="ttdeci">Event()</div><div class="ttdoc">Calls default constructors on data.</div><div class="ttdef"><b>Definition:</b> Event.cpp:4</div></div>
+<div class="ttc" id="aclassEvent_html_a7bf717630c32826689df41e0bb3ecbce"><div class="ttname"><a href="classEvent.html#a7bf717630c32826689df41e0bb3ecbce">Event::get_name</a></div><div class="ttdeci">const String &amp; get_name() const</div><div class="ttdoc">Returns constant reference to name of event.</div><div class="ttdef"><b>Definition:</b> Event.cpp:32</div></div>
+<div class="ttc" id="aclassEvent_html_ae3023ae2c487f46b3235f67554e58615"><div class="ttname"><a href="classEvent.html#ae3023ae2c487f46b3235f67554e58615">Event::get_hall</a></div><div class="ttdeci">const Hall &amp; get_hall() const</div><div class="ttdoc">Returns constant reference Hall in which event will be held.</div><div class="ttdef"><b>Definition:</b> Event.cpp:28</div></div>
+<div class="ttc" id="aclassEvent_html_ae58d2ed716836adcdacaeec4dd08c1cf"><div class="ttname"><a href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">Event::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads Event from stream.</div><div class="ttdef"><b>Definition:</b> Event.cpp:48</div></div>
+<div class="ttc" id="aclassEvent_html_af5c84a902db8f29f8b8737026011f1f6"><div class="ttname"><a href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">Event::compare</a></div><div class="ttdeci">int compare(const Event &amp;other)</div><div class="ttdoc">Compares two events.</div><div class="ttdef"><b>Definition:</b> Event.cpp:74</div></div>
+<div class="ttc" id="aclassHall_html"><div class="ttname"><a href="classHall.html">Hall</a></div><div class="ttdoc">Each hall contains a number, rows and seats per row.</div><div class="ttdef"><b>Definition:</b> Hall.h:13</div></div>
+<div class="ttc" id="aclassOrderedList_html"><div class="ttname"><a href="classOrderedList.html">OrderedList&lt; Ticket &gt;</a></div></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.h:11</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/FMI-OOP-P1_TicketSystem Overview.svg b/Year 1/Object-oriented Programming/Project 1/docs/html/FMI-OOP-P1_TicketSystem Overview.svg
new file mode 100644
index 0000000..6e35d2f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/FMI-OOP-P1_TicketSystem Overview.svg
@@ -0,0 +1,571 @@
+<svg version="1.1" baseProfile="full" width="1076.5" height="1271.0" viewbox="0 0 1076.5 1271" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+ <title >FMI-OOP-P1_TicketSystem Overview</title>
+ <desc >#title: FMI-OOP-P1_TicketSystem Overview
+ #background: #fdf6e3
+ #bendSize: 0
+ #fillArrows: true
+ #lineWidth: 2
+ #leading: 1.3
+
+ #.groupui: title=italic fill=#b2ee97 direction=right
+ #.groupes: title=italic fill=#97c8ee direction=right
+ #.groupm: title=italic fill=#ee9797 direction=down
+ #.groupv: title=italic fill=#eee997 direction=right
+ #.groupgc: title=italic fill=#c0baac direction=right
+
+ [main.cpp|
+ EventService es
+ HallService hs
+ ]
+
+ [&lt;groupui&gt; User Interface|
+ [FMITicketSystemConsoleUI.cpp|
+ EventService* es
+ HallService* hs
+ runUI()
+ ]
+ ]
+ [main.cpp]-&gt;[User Interface]
+
+ [&lt;groupes&gt; Services|
+ [EventService|
+ OrderedList&lt;Event&gt; events
+ |
+ + createEvent()
+ . cancelEvent()
+ + reserveTicket()
+ + cancelTicketReservation()
+ + buyTicket()
+ . queryEventHall()
+ . queryTickets()
+ . queryReservations()
+ ~ queryMostVisited()
+ ~ queryInsufficientlyVisited()
+ + reportBoughtTickets()
+ + reportReservations()
+ ]
+
+ [HallService|
+ OrderedList&lt;Hall&gt; halls
+ |
+ hallExists()
+ ]
+ [EventService]--&gt;[HallService]
+
+ [StatusCodes.h|
+ enum StatusCode
+ ]
+ ]
+ [User Interface]-&gt;[Services]
+
+ [&lt;groupm&gt; Models|
+ [Ticket|
+ unsigned row
+ unsigned seat
+ ]
+
+ [Reservation|
+ Ticket ticket
+ char\[8\] password
+ char\[32\] note
+ ]
+
+ [Event|
+ Hall* hall
+ String name
+ Date date
+ OrderedList&lt;Ticket&gt; tickets
+ OrderedList&lt;Reservation&gt; reservations
+ ]
+ [Ticket]--&gt;[Event]
+ [Reservation]--&gt;[Event]
+
+ [Hall|
+ int number
+ unsigned rowCount
+ unsigned seatsPerRow
+ ]
+ [&lt;hidden&gt;H]-/-[Hall]
+ ]
+ [Services]&lt;--[Models]
+
+ [&lt;groupgc&gt; Generic Classes|
+ [List&lt;T&gt;|
+ add(elem)
+ insertAt(elem, index)
+ removeAt(index)
+ findIndex(elem);
+ contain(elem);
+ operator\[\](index)
+ ]
+
+ [OrderedList&lt;T&gt;|
+ insert(elem)
+ remove(elem)
+ ]
+ [List&lt;T&gt;]&lt;:-[OrderedList&lt;T&gt;]
+
+ [Date|
+ unsigned day
+ unsigned month
+ int year
+ ]
+
+ [String|
+ char* str
+ unsigned length
+ unsigned count
+ ]
+ [String]-/-[Date]
+
+ [Command|
+ String name
+ void (*exec)()
+ ]
+
+ [Menu|
+ List&lt;Command&gt; commands
+ navigate()
+ ]
+ [Menu]--&gt;[Command]
+ ]
+ [&lt;hidden&gt;H1]-/-[&lt;hidden&gt;H2]
+ [H2]-/-[Generic Classes]</desc>
+ <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="bold" font-style="normal">
+ <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E">
+ <g stroke="transparent" fill="#fdf6e3">
+ <rect x="0.0" y="0.0" height="1271.0" width="1076.5" stroke="none"></rect>
+ </g>
+ <g transform="translate(8, 8)" fill="#33322E">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal">
+ <path d="M286.0 79.0 L286 99 L286 112.33333333333333 L286.0 112.3 " fill="none"></path>
+ <path d="M280.7 105.7 L286.0 105.7 L291.3 105.7 L286.0 119.0 Z"></path>
+ <path d="M286.0 302.0 L286 322 L286 347.8333333333333 L286.0 347.8 " fill="none"></path>
+ <path d="M280.7 341.2 L286.0 341.2 L291.3 341.2 L286.0 354.5 Z"></path>
+ <g stroke-dasharray="4 4">
+ <path d="M286.0 820.2 L286 846 L286 866 L286.0 866.0 " fill="none"></path>
+ </g>
+ <path d="M291.3 826.8 L286.0 826.8 L280.7 826.8 L286.0 813.5 Z"></path>
+ <g data-name="main.cpp">
+ <g fill="#eee8d5" stroke="#33322E" data-name="main.cpp">
+ <rect x="220.0" y="0.0" height="79.0" width="132.0" data-name="main.cpp"></rect>
+ <path d="M220.0 32.0 L352.0 32.0" fill="none" data-name="main.cpp"></path>
+ </g>
+ <g transform="translate(220, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="main.cpp">
+ <text x="58.0" y="13.8" stroke="none" text-anchor="middle" data-name="main.cpp">main.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(220, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="main.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="main.cpp">EventService es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="main.cpp">HallService hs</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="User Interface">
+ <g fill="#b2ee97" stroke="#33322E" data-name="User Interface">
+ <rect x="129.0" y="119.0" height="183.0" width="314.0" data-name="User Interface"></rect>
+ <path d="M129.0 151.0 L443.0 151.0" fill="none" data-name="User Interface"></path>
+ </g>
+ <g transform="translate(129, 119)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="User Interface">
+ <text x="149.0" y="13.8" stroke="none" text-anchor="middle" data-name="User Interface">User Interface</text>
+
+ </g>
+ </g>
+ <g transform="translate(129, 151)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="User Interface">
+ <g transform="translate(20, 20)" data-name="User Interface">
+ <g data-name="FMITicketSystemConsoleUI.cpp">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="FMITicketSystemConsoleUI.cpp">
+ <rect x="0.0" y="0.0" height="95.0" width="258.0" data-name="FMITicketSystemConsoleUI.cpp"></rect>
+ <path d="M0.0 32.0 L258.0 32.0" fill="none" data-name="FMITicketSystemConsoleUI.cpp"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="121.0" y="13.8" stroke="none" text-anchor="middle" data-name="FMITicketSystemConsoleUI.cpp">FMITicketSystemConsoleUI.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">EventService* es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">HallService* hs</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">runUI()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Services">
+ <g fill="#97c8ee" stroke="#33322E" data-name="Services">
+ <rect x="39.0" y="355.0" height="459.0" width="495.0" data-name="Services"></rect>
+ <path d="M39.0 387.0 L534.0 387.0" fill="none" data-name="Services"></path>
+ </g>
+ <g transform="translate(39, 355)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Services">
+ <text x="239.5" y="13.8" stroke="none" text-anchor="middle" data-name="Services">Services</text>
+
+ </g>
+ </g>
+ <g transform="translate(39, 387)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Services">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g stroke-dasharray="4 4" data-name="Services">
+ <path d="M216.0 133.5 L236 133.5 L249.33333333333334 133.5 L249.3 133.5 " fill="none" data-name="Services"></path>
+ </g>
+ <path d="M242.7 138.8 L242.7 133.5 L242.7 128.2 L256.0 133.5 Z" data-name="Services"></path>
+ <g data-name="EventService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="EventService">
+ <rect x="0.0" y="0.0" height="267.0" width="216.0" data-name="EventService"></rect>
+ <path d="M0.0 32.0 L216.0 32.0" fill="none" data-name="EventService"></path>
+ <path d="M0.0 64.0 L216.0 64.0" fill="none" data-name="EventService"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="EventService">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="EventService">EventService</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">OrderedList&lt;Event&gt; events</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">+ createEvent()</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="EventService">. cancelEvent()</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="EventService">+ reserveTicket()</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="EventService">+ cancelTicketReservation()</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="EventService">+ buyTicket()</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="EventService">. queryEventHall()</text>
+ <text x="0.0" y="107.4" stroke="none" data-name="EventService">. queryTickets()</text>
+ <text x="0.0" y="123.0" stroke="none" data-name="EventService">. queryReservations()</text>
+ <text x="0.0" y="138.6" stroke="none" data-name="EventService">~ queryMostVisited()</text>
+ <text x="0.0" y="154.2" stroke="none" data-name="EventService">~ queryInsufficientlyVisited()</text>
+ <text x="0.0" y="169.8" stroke="none" data-name="EventService">+ reportBoughtTickets()</text>
+ <text x="0.0" y="185.4" stroke="none" data-name="EventService">+ reportReservations()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="HallService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="HallService">
+ <rect x="256.0" y="86.0" height="96.0" width="183.0" data-name="HallService"></rect>
+ <path d="M256.0 118.0 L439.0 118.0" fill="none" data-name="HallService"></path>
+ <path d="M256.0 150.0 L439.0 150.0" fill="none" data-name="HallService"></path>
+ </g>
+ <g transform="translate(256, 86)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="HallService">
+ <text x="83.5" y="13.8" stroke="none" text-anchor="middle" data-name="HallService">HallService</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 118)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">OrderedList&lt;Hall&gt; halls</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 150)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">hallExists()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="StatusCodes.h">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="StatusCodes.h">
+ <rect x="36.0" y="307.0" height="64.0" width="144.0" data-name="StatusCodes.h"></rect>
+ <path d="M36.0 339.0 L180.0 339.0" fill="none" data-name="StatusCodes.h"></path>
+ </g>
+ <g transform="translate(36, 307)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="StatusCodes.h">
+ <text x="64.0" y="13.8" stroke="none" text-anchor="middle" data-name="StatusCodes.h">StatusCodes.h</text>
+
+ </g>
+ </g>
+ <g transform="translate(36, 339)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="StatusCodes.h">
+ <text x="0.0" y="13.8" stroke="none" data-name="StatusCodes.h">enum StatusCode</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Models">
+ <g fill="#ee9797" stroke="#33322E" data-name="Models">
+ <rect x="0.0" y="866.0" height="349.0" width="572.0" data-name="Models"></rect>
+ <path d="M0.0 898.0 L572.0 898.0" fill="none" data-name="Models"></path>
+ </g>
+ <g transform="translate(0, 866)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Models">
+ <text x="278.0" y="13.8" stroke="none" text-anchor="middle" data-name="Models">Models</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 898)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Models">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M64.0 87.0 L64 115 L79.39230174726517 130.30013227572465 L79.4 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M70.9 129.4 L74.7 125.6 L78.4 121.8 L84.1 135.0 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M231.8 95.0 L231.75 115 L216.19793977786054 130.3213174888733 L216.2 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M217.2 121.8 L220.9 125.6 L224.7 129.4 L211.4 135.0 Z" data-name="Models"></path>
+ <g data-name="Ticket">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Ticket">
+ <rect x="6.0" y="8.0" height="79.0" width="116.0" data-name="Ticket"></rect>
+ <path d="M6.0 40.0 L122.0 40.0" fill="none" data-name="Ticket"></path>
+ </g>
+ <g transform="translate(6, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Ticket">
+ <text x="50.0" y="13.8" stroke="none" text-anchor="middle" data-name="Ticket">Ticket</text>
+
+ </g>
+ </g>
+ <g transform="translate(6, 40)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Ticket">
+ <text x="0.0" y="13.8" stroke="none" data-name="Ticket">unsigned row</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Ticket">unsigned seat</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Reservation">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Reservation">
+ <rect x="163.0" y="0.0" height="95.0" width="138.0" data-name="Reservation"></rect>
+ <path d="M163.0 32.0 L301.0 32.0" fill="none" data-name="Reservation"></path>
+ </g>
+ <g transform="translate(163, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Reservation">
+ <text x="61.0" y="13.8" stroke="none" text-anchor="middle" data-name="Reservation">Reservation</text>
+
+ </g>
+ </g>
+ <g transform="translate(163, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Reservation">
+ <text x="0.0" y="13.8" stroke="none" data-name="Reservation">Ticket ticket</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Reservation">char[8] password</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Reservation">char[32] note</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Event">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Event">
+ <rect x="0.0" y="135.0" height="126.0" width="295.0" data-name="Event"></rect>
+ <path d="M0.0 167.0 L295.0 167.0" fill="none" data-name="Event"></path>
+ </g>
+ <g transform="translate(0, 135)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Event">
+ <text x="139.5" y="13.8" stroke="none" text-anchor="middle" data-name="Event">Event</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 167)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Event">
+ <text x="0.0" y="13.8" stroke="none" data-name="Event">Hall* hall</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Event">String name</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Event">Date date</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="Event">OrderedList&lt;Ticket&gt; tickets</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="Event">OrderedList&lt;Reservation&gt; reservations</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Hall">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Hall">
+ <rect x="335.0" y="151.0" height="95.0" width="181.0" data-name="Hall"></rect>
+ <path d="M335.0 183.0 L516.0 183.0" fill="none" data-name="Hall"></path>
+ </g>
+ <g transform="translate(335, 151)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Hall">
+ <text x="82.5" y="13.8" stroke="none" text-anchor="middle" data-name="Hall">Hall</text>
+
+ </g>
+ </g>
+ <g transform="translate(335, 183)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Hall">
+ <text x="0.0" y="13.8" stroke="none" data-name="Hall">int number</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Hall">unsigned rowCount</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Hall">unsigned seatsPerRow</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="H">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Generic Classes">
+ <g fill="#c0baac" stroke="#33322E" data-name="Generic Classes">
+ <rect x="574.0" y="342.0" height="484.0" width="447.0" data-name="Generic Classes"></rect>
+ <path d="M574.0 374.0 L1021.0 374.0" fill="none" data-name="Generic Classes"></path>
+ </g>
+ <g transform="translate(574, 342)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Generic Classes">
+ <text x="215.5" y="13.8" stroke="none" text-anchor="middle" data-name="Generic Classes">Generic Classes</text>
+
+ </g>
+ </g>
+ <g transform="translate(574, 374)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Generic Classes">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <path d="M202.8 71.0 L236 71 L256 71 L256.0 71.0 " fill="none" data-name="Generic Classes"></path>
+ <path d="M202.8 65.7 L202.8 71.0 L202.8 76.3 L189.5 71.0 Z" data-name="Generic Classes"></path>
+ <g stroke-dasharray="4 4" data-name="Generic Classes">
+ <path d="M216.0 356.5 L236 356.5 L261.3333333333333 356.5 L261.3 356.5 " fill="none" data-name="Generic Classes"></path>
+ </g>
+ <path d="M254.7 361.8 L254.7 356.5 L254.7 351.2 L268.0 356.5 Z" data-name="Generic Classes"></path>
+ <g data-name="List&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="List&lt;T&gt;">
+ <rect x="27.0" y="0.0" height="142.0" width="163.0" data-name="List&lt;T&gt;"></rect>
+ <path d="M27.0 32.0 L190.0 32.0" fill="none" data-name="List&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(27, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="List&lt;T&gt;">
+ <text x="73.5" y="13.8" stroke="none" text-anchor="middle" data-name="List&lt;T&gt;">List&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(27, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="List&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="List&lt;T&gt;">add(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="List&lt;T&gt;">insertAt(elem, index)</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="List&lt;T&gt;">removeAt(index)</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="List&lt;T&gt;">findIndex(elem)</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="List&lt;T&gt;">contain(elem)</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="List&lt;T&gt;">operator[](index)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="OrderedList&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="OrderedList&lt;T&gt;">
+ <rect x="256.0" y="32.0" height="79.0" width="135.0" data-name="OrderedList&lt;T&gt;"></rect>
+ <path d="M256.0 64.0 L391.0 64.0" fill="none" data-name="OrderedList&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(256, 32)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="OrderedList&lt;T&gt;">
+ <text x="59.5" y="13.8" stroke="none" text-anchor="middle" data-name="OrderedList&lt;T&gt;">OrderedList&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="OrderedList&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="OrderedList&lt;T&gt;">insert(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="OrderedList&lt;T&gt;">remove(elem)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Date">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Date">
+ <rect x="259.0" y="182.0" height="95.0" width="130.0" data-name="Date"></rect>
+ <path d="M259.0 214.0 L389.0 214.0" fill="none" data-name="Date"></path>
+ </g>
+ <g transform="translate(259, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Date">
+ <text x="57.0" y="13.8" stroke="none" text-anchor="middle" data-name="Date">Date</text>
+
+ </g>
+ </g>
+ <g transform="translate(259, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Date">
+ <text x="0.0" y="13.8" stroke="none" data-name="Date">unsigned day</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Date">unsigned month</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Date">int year</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="String">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="String">
+ <rect x="44.0" y="182.0" height="95.0" width="129.0" data-name="String"></rect>
+ <path d="M44.0 214.0 L173.0 214.0" fill="none" data-name="String"></path>
+ </g>
+ <g transform="translate(44, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="String">
+ <text x="56.5" y="13.8" stroke="none" text-anchor="middle" data-name="String">String</text>
+
+ </g>
+ </g>
+ <g transform="translate(44, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="String">
+ <text x="0.0" y="13.8" stroke="none" data-name="String">char* str</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="String">unsigned length</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="String">unsigned count</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Command">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Command">
+ <rect x="268.0" y="317.0" height="79.0" width="111.0" data-name="Command"></rect>
+ <path d="M268.0 349.0 L379.0 349.0" fill="none" data-name="Command"></path>
+ </g>
+ <g transform="translate(268, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Command">
+ <text x="47.5" y="13.8" stroke="none" text-anchor="middle" data-name="Command">Command</text>
+
+ </g>
+ </g>
+ <g transform="translate(268, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Command">
+ <text x="0.0" y="13.8" stroke="none" data-name="Command">String name</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Command">void (*exec)()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Menu">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Menu">
+ <rect x="0.0" y="317.0" height="79.0" width="216.0" data-name="Menu"></rect>
+ <path d="M0.0 349.0 L216.0 349.0" fill="none" data-name="Menu"></path>
+ </g>
+ <g transform="translate(0, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Menu">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="Menu">Menu</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Menu">
+ <text x="0.0" y="13.8" stroke="none" data-name="Menu">List&lt;Command&gt; commands</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Menu">navigate()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="H1">
+
+ </g>
+ <g data-name="H2">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h.html
new file mode 100644
index 0000000..2020235
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/UserInterface/FMITicketSystemConsoleUI.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">FMITicketSystemConsoleUI.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration of runUI function.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="EventService_8h_source.html">../Services/EventService.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="HallService_8h_source.html">../Services/HallService.h</a>&quot;</code><br />
+</div>
+<p><a href="FMITicketSystemConsoleUI_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a79d6833c27b5a32b6d9917f5cd6e32a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">runUI</a> (<a class="el" href="classEventService.html">EventService</a> *eventService, <a class="el" href="classHallService.html">HallService</a> *hallService)</td></tr>
+<tr class="memdesc:a79d6833c27b5a32b6d9917f5cd6e32a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the console interface for the ticket system. <a href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">More...</a><br /></td></tr>
+<tr class="separator:a79d6833c27b5a32b6d9917f5cd6e32a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration of runUI function. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a79d6833c27b5a32b6d9917f5cd6e32a3" name="a79d6833c27b5a32b6d9917f5cd6e32a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79d6833c27b5a32b6d9917f5cd6e32a3">&#9670;&nbsp;</a></span>runUI()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void runUI </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classEventService.html">EventService</a> *&#160;</td>
+ <td class="paramname"><em>eventService</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classHallService.html">HallService</a> *&#160;</td>
+ <td class="paramname"><em>hallService</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Runs the console interface for the ticket system. </p>
+<p >Stores <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> and <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> pointers in internal global variables, calls <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> and <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> load() functions, initializes all menus, navigates the main menu and finally calls <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> and <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> save() functions </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h_source.html
new file mode 100644
index 0000000..2b0ce84
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/FMITicketSystemConsoleUI_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/UserInterface/FMITicketSystemConsoleUI.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">FMITicketSystemConsoleUI.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="FMITicketSystemConsoleUI_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_FMITICKETSYSTEMCONSOLEUI</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_FMITICKETSYSTEMCONSOLEUI</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;../Services/EventService.h&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Services/HallService.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keywordtype">void</span> <a class="code hl_function" href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">runUI</a>(<a class="code hl_class" href="classEventService.html">EventService</a>* eventService, <a class="code hl_class" href="classHallService.html">HallService</a>* hallService);</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aFMITicketSystemConsoleUI_8h_html_a79d6833c27b5a32b6d9917f5cd6e32a3"><div class="ttname"><a href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">runUI</a></div><div class="ttdeci">void runUI(EventService *eventService, HallService *hallService)</div><div class="ttdoc">Runs the console interface for the ticket system.</div><div class="ttdef"><b>Definition:</b> FMITicketSystemConsoleUI.cpp:286</div></div>
+<div class="ttc" id="aclassEventService_html"><div class="ttname"><a href="classEventService.html">EventService</a></div><div class="ttdoc">Each EventService stores all events and a pointer to HallService.</div><div class="ttdef"><b>Definition:</b> EventService.h:16</div></div>
+<div class="ttc" id="aclassHallService_html"><div class="ttname"><a href="classHallService.html">HallService</a></div><div class="ttdoc">Each HallService stores all halls.</div><div class="ttdef"><b>Definition:</b> HallService.h:14</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h.html
new file mode 100644
index 0000000..e846db5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/HallService.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">HallService.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="OrderedList_8hpp_source.html">../Generic/List/OrderedList.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Hall_8h_source.html">../Models/Hall.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="StatusCode_8h_source.html">StatusCode.h</a>&quot;</code><br />
+</div>
+<p><a href="HallService_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHallService.html">HallService</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> stores all halls. <a href="classHallService.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h_source.html
new file mode 100644
index 0000000..d40fb32
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/HallService_8h_source.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/HallService.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">HallService.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="HallService_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_SERVICES_HALLSERVICE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_SERVICES_HALLSERVICE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;../Generic/List/OrderedList.hpp&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../Models/Hall.h&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &quot;<a class="code" href="StatusCode_8h.html">StatusCode.h</a>&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classHallService.html"> 14</a></span><span class="keyword">class </span><a class="code hl_class" href="classHallService.html">HallService</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Hall&gt;</a> halls;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_function" href="classHallService.html#a57a8117d8d510afb5351a3f7efc18dff">HallService</a>(<span class="keyword">const</span> <a class="code hl_class" href="classHall.html">Hall</a>* halls, <span class="keywordtype">unsigned</span> hallCount);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">const</span> <a class="code hl_class" href="classOrderedList.html">OrderedList&lt;Hall&gt;</a>&amp; <a class="code hl_function" href="classHallService.html#a641fdcc475e094687713e94094e2a623">get_halls</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">load</a>();</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> <a class="code hl_function" href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">save</a>();</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>};</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aStatusCode_8h_html"><div class="ttname"><a href="StatusCode_8h.html">StatusCode.h</a></div><div class="ttdoc">Stores declaration of enum StatusCode.</div></div>
+<div class="ttc" id="aStatusCode_8h_html_ae98a46f4ea1a43ca48acaf15d2eb7113"><div class="ttname"><a href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a></div><div class="ttdeci">StatusCode</div><div class="ttdoc">Used for communication between Services and what uses them.</div><div class="ttdef"><b>Definition:</b> StatusCode.h:14</div></div>
+<div class="ttc" id="aclassHallService_html"><div class="ttname"><a href="classHallService.html">HallService</a></div><div class="ttdoc">Each HallService stores all halls.</div><div class="ttdef"><b>Definition:</b> HallService.h:14</div></div>
+<div class="ttc" id="aclassHallService_html_a083e3d10ec89ee8c78a117c3754c66d2"><div class="ttname"><a href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">HallService::save</a></div><div class="ttdeci">StatusCode save()</div><div class="ttdoc">Saves Halls to a database file.</div><div class="ttdef"><b>Definition:</b> HallService.cpp:34</div></div>
+<div class="ttc" id="aclassHallService_html_a57a8117d8d510afb5351a3f7efc18dff"><div class="ttname"><a href="classHallService.html#a57a8117d8d510afb5351a3f7efc18dff">HallService::HallService</a></div><div class="ttdeci">HallService(const Hall *halls, unsigned hallCount)</div><div class="ttdoc">Copies halls from parameters.</div><div class="ttdef"><b>Definition:</b> HallService.cpp:4</div></div>
+<div class="ttc" id="aclassHallService_html_a641fdcc475e094687713e94094e2a623"><div class="ttname"><a href="classHallService.html#a641fdcc475e094687713e94094e2a623">HallService::get_halls</a></div><div class="ttdeci">const OrderedList&lt; Hall &gt; &amp; get_halls() const</div><div class="ttdoc">Returns a constant reference to halls.</div><div class="ttdef"><b>Definition:</b> HallService.cpp:8</div></div>
+<div class="ttc" id="aclassHallService_html_ab63c1ccff811ed3268f2fe5e996eb6ae"><div class="ttname"><a href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">HallService::load</a></div><div class="ttdeci">StatusCode load()</div><div class="ttdoc">Loads Halls to a database file.</div><div class="ttdef"><b>Definition:</b> HallService.cpp:18</div></div>
+<div class="ttc" id="aclassHall_html"><div class="ttname"><a href="classHall.html">Hall</a></div><div class="ttdoc">Each hall contains a number, rows and seats per row.</div><div class="ttdef"><b>Definition:</b> Hall.h:13</div></div>
+<div class="ttc" id="aclassOrderedList_html"><div class="ttname"><a href="classOrderedList.html">OrderedList&lt; Hall &gt;</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h.html
new file mode 100644
index 0000000..df42a38
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Hall.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Hall.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="Hall_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHall.html">Hall</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each hall contains a number, rows and seats per row. <a href="classHall.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac55d9db507637effdb1896e33c86d439"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classHall.html">Hall</a> &amp;hall)</td></tr>
+<tr class="memdesc:ac55d9db507637effdb1896e33c86d439"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> from stream with &gt;&gt; operator. <a href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">More...</a><br /></td></tr>
+<tr class="separator:ac55d9db507637effdb1896e33c86d439"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9671d0935caa6dd24b5f1b9be101c477"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classHall.html">Hall</a> &amp;hall)</td></tr>
+<tr class="memdesc:a9671d0935caa6dd24b5f1b9be101c477"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> to stream with &lt;&lt; operator. <a href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">More...</a><br /></td></tr>
+<tr class="separator:a9671d0935caa6dd24b5f1b9be101c477"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a9671d0935caa6dd24b5f1b9be101c477" name="a9671d0935caa6dd24b5f1b9be101c477"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9671d0935caa6dd24b5f1b9be101c477">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classHall.html">Hall</a> &amp;&#160;</td>
+ <td class="paramname"><em>hall</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write all internal data.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="ac55d9db507637effdb1896e33c86d439" name="ac55d9db507637effdb1896e33c86d439"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac55d9db507637effdb1896e33c86d439">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classHall.html">Hall</a> &amp;&#160;</td>
+ <td class="paramname"><em>hall</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse all internal values.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h_source.html
new file mode 100644
index 0000000..6053b27
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Hall_8h_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Hall.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Hall.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Hall_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_MODEL_HALL</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_MODEL_HALL</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="classHall.html"> 13</a></span><span class="keyword">class </span><a class="code hl_class" href="classHall.html">Hall</a> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">int</span> number;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">unsigned</span> rows;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">unsigned</span> seatsPerRow;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_function" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a>();</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_function" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a>(<span class="keywordtype">int</span> number);</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_function" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a>(<span class="keywordtype">int</span> number, <span class="keywordtype">unsigned</span> rows, <span class="keywordtype">unsigned</span> seatsPerRow);</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classHall.html#a84186aee50631f25b214f18f7b0dc178">get_number</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2">get_rows</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classHall.html#a42e1cd716086d8a42a627e00cde17a7e">get_seatsPerRow</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classHall.html#acef974f302d8131ef4608e15f96c2df9">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classHall.html">Hall</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>std::istream&amp; <a class="code hl_function" href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classHall.html">Hall</a>&amp; hall);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>std::ostream&amp; <a class="code hl_function" href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classHall.html">Hall</a>&amp; hall);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aHall_8h_html_a9671d0935caa6dd24b5f1b9be101c477"><div class="ttname"><a href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const Hall &amp;hall)</div><div class="ttdoc">Writes Hall to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:74</div></div>
+<div class="ttc" id="aHall_8h_html_ac55d9db507637effdb1896e33c86d439"><div class="ttname"><a href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, Hall &amp;hall)</div><div class="ttdoc">Reads Hall from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:61</div></div>
+<div class="ttc" id="aclassHall_html"><div class="ttname"><a href="classHall.html">Hall</a></div><div class="ttdoc">Each hall contains a number, rows and seats per row.</div><div class="ttdef"><b>Definition:</b> Hall.h:13</div></div>
+<div class="ttc" id="aclassHall_html_a0239d59ab0f832f16cf35c820d0eba5a"><div class="ttname"><a href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">Hall::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes Hall to steam.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:44</div></div>
+<div class="ttc" id="aclassHall_html_a122ed8085be305339c89cadb3e360b86"><div class="ttname"><a href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall::Hall</a></div><div class="ttdeci">Hall()</div><div class="ttdoc">Sets values to 0.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:3</div></div>
+<div class="ttc" id="aclassHall_html_a4259837f943c488c6b15ed6c80d5f30b"><div class="ttname"><a href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">Hall::compare</a></div><div class="ttdeci">int compare(const Hall &amp;other) const</div><div class="ttdoc">Compare two Halls.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:52</div></div>
+<div class="ttc" id="aclassHall_html_a42e1cd716086d8a42a627e00cde17a7e"><div class="ttname"><a href="classHall.html#a42e1cd716086d8a42a627e00cde17a7e">Hall::get_seatsPerRow</a></div><div class="ttdeci">unsigned get_seatsPerRow() const</div><div class="ttdoc">Return a Hall's seats per row count.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:20</div></div>
+<div class="ttc" id="aclassHall_html_a6b3c304a95d3f56980c6faf0cc2073a2"><div class="ttname"><a href="classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2">Hall::get_rows</a></div><div class="ttdeci">unsigned get_rows() const</div><div class="ttdoc">Returns a Hall's row count.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:16</div></div>
+<div class="ttc" id="aclassHall_html_a84186aee50631f25b214f18f7b0dc178"><div class="ttname"><a href="classHall.html#a84186aee50631f25b214f18f7b0dc178">Hall::get_number</a></div><div class="ttdeci">int get_number() const</div><div class="ttdoc">Returns a Hall's number.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:13</div></div>
+<div class="ttc" id="aclassHall_html_acef974f302d8131ef4608e15f96c2df9"><div class="ttname"><a href="classHall.html#acef974f302d8131ef4608e15f96c2df9">Hall::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads Hall from stream.</div><div class="ttdef"><b>Definition:</b> Hall.cpp:31</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp.html b/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp.html
new file mode 100644
index 0000000..4e58576
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/List/List.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">List.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="List_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html">List&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Templated class that stores an array of elements in dynamic memory. <a href="classList.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7469c3479753bfbada761697c539aa07"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a7469c3479753bfbada761697c539aa07"><td class="memTemplItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;obj)</td></tr>
+<tr class="memdesc:a7469c3479753bfbada761697c539aa07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> from stream with &gt;&gt; operator. <a href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">More...</a><br /></td></tr>
+<tr class="separator:a7469c3479753bfbada761697c539aa07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;obj)</td></tr>
+<tr class="memdesc:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> to stream with &lt;&lt; operator. <a href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">More...</a><br /></td></tr>
+<tr class="separator:ac8590f4d4ba6c820c34afe14df54f2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ac8590f4d4ba6c820c34afe14df54f2c2" name="ac8590f4d4ba6c820c34afe14df54f2c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8590f4d4ba6c820c34afe14df54f2c2">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td>
+ <td class="paramname"><em>obj</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the count and then all objects.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having the operator &lt;&lt; defined, which takes an std::ostream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a7469c3479753bfbada761697c539aa07" name="a7469c3479753bfbada761697c539aa07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7469c3479753bfbada761697c539aa07">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td>
+ <td class="paramname"><em>obj</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse the elements. The first item in the stream should be the count.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having the operator &gt;&gt; defined, which takes an std::istream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp_source.html
new file mode 100644
index 0000000..0a2b37a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/List_8hpp_source.html
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/List/List.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="List_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_LIST</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_LIST</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classList.html"> 22</a></span><span class="keyword">class </span><a class="code hl_class" href="classList.html">List</a> {</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">protected</span>:</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> T* elements;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">unsigned</span> length;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> count;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">void</span> resize();</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">void</span> free();</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61"> 34</a></span> <a class="code hl_function" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount);</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb"> 36</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(<span class="keyword">const</span> T&amp; element);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8"> 38</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a>(<span class="keyword">const</span> T&amp; element, <span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a"> 40</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classList.html#a3804f03273ef5e339b504e439c5b6534"> 42</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a>(<span class="keyword">const</span> T&amp; element) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1"> 43</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a>(<span class="keyword">const</span> T&amp; element) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classList.html#a321bb581943398344aad07198d1f02ac"> 45</a></span> T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">operator[]</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classList.html#a5fa582de3aec5094a871852b658cf853"> 47</a></span> <span class="keyword">const</span> T&amp; <a class="code hl_function" href="classList.html#a5fa582de3aec5094a871852b658cf853">operator[]</a>(<span class="keywordtype">unsigned</span> index) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classList.html#aa4332ce5a589da28528f035ded6d41e5"> 50</a></span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_function" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> other);</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e"> 53</a></span> std::istream&amp; <a class="code hl_function" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956"> 55</a></span> std::ostream&amp; <a class="code hl_function" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classList.html#aa32109b77dccd8241b125ebabdda876c"> 58</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b"> 60</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="classList.html">List</a>();</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_class" href="classList.html">List</a>&amp; operator=(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_class" href="classList.html">List</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other);</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_class" href="classList.html">~List</a>();</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_class" href="classList.html">List</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_class" href="classList.html">List</a>&amp; operator=(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>};</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>std::istream&amp; <a class="code hl_function" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj);</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>std::ostream&amp; <a class="code hl_function" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj);</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">/* Private */</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::resize</a>() {</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> length = (length == 0) ? 8 : length &lt;&lt; 1;</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> T* temp = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> temp[i] = elements[i];</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> elements = temp;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::free</a>() {</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>}</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keywordtype">void</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;::copyFrom</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> elements = <span class="keyword">new</span> T[other.length];</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; other.count; i++)</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> elements[i] = other.elements[i];</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> length = other.length;</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> count = other.count;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>}</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">/* Public */</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61"> 107</a></span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount) {</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> length = 8;</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> count = elementsCount;</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> this-&gt;elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> this-&gt;elements[i] = elements[i];</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>}</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb"> 119</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt;T&gt;::add</a>(<span class="keyword">const</span> T&amp; element) {</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">if</span> (length == count) resize();</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> elements[count++] = element;</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span>}</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8"> 132</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt;T&gt;::insertAt</a>(<span class="keyword">const</span> T&amp; element, <span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">if</span> (index &gt;= count) {</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> add(element);</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">if</span> (length == count) resize();</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = count; i &gt; index; i--)</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> elements[i] = elements[i - 1];</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> elements[index] = element;</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> count++;</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a"> 152</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt;T&gt;::removeAt</a>(<span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">if</span> (index &gt;= count) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index; i &lt; count; i++)</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> elements[i] = elements[i + 1];</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> count--;</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span>}</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classList.html#a3804f03273ef5e339b504e439c5b6534"> 167</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt;T&gt;::findIndex</a>(<span class="keyword">const</span> T&amp; element)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">unsigned</span> ind = 0;</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">while</span> (ind &lt; count &amp;&amp; elements[ind].compare(element) != 0)</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> ind++;</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">return</span> ind;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span>}</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1"> 180</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt;T&gt;::contain</a>(<span class="keyword">const</span> T&amp; element)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">return</span> findIndex(element) &lt; count;</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span>}</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="classList.html#a321bb581943398344aad07198d1f02ac"> 185</a></span>T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt;T&gt;::operator[]</a>(<span class="keywordtype">unsigned</span> index) {</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">return</span> elements[index];</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span>}</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classList.html#a5fa582de3aec5094a871852b658cf853"> 190</a></span><span class="keyword">const</span> T&amp; <a class="code hl_function" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt;T&gt;::operator[]</a>(<span class="keywordtype">unsigned</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">return</span> elements[index];</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span>}</div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classList.html#aa4332ce5a589da28528f035ded6d41e5"> 195</a></span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_function" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt;T&gt;::operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> other) {</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; other.length; i++)</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> add(other[i]);</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span>}</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e"> 211</a></span>std::istream&amp; <a class="code hl_function" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt;T&gt;::read</a>(std::istream&amp; istr) {</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> istr.read((<span class="keywordtype">char</span>*)&amp;length, <span class="keyword">sizeof</span>(length));</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> istr.read((<span class="keywordtype">char</span>*)&amp;count, <span class="keyword">sizeof</span>(count));</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">delete</span>[] elements;</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> elements = <span class="keyword">new</span> T[length];</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> elements[i].<a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(istr);</div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">return</span> istr;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span>}</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956"> 233</a></span>std::ostream&amp; <a class="code hl_function" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt;T&gt;::write</a>(std::ostream&amp; ostr)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> ostr.write((<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;length, <span class="keyword">sizeof</span>(length));</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> ostr.write((<span class="keyword">const</span> <span class="keywordtype">char</span>*)&amp;count, <span class="keyword">sizeof</span>(count));</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++)</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> elements[i].write(ostr);</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> ostr;</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="classList.html#aa32109b77dccd8241b125ebabdda876c"> 247</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt;T&gt;::get_length</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> length;</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>}</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b"> 255</a></span><span class="keywordtype">unsigned</span> <a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt;T&gt;::get_count</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">return</span> count;</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span>}</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="comment">// Rule of 4</span></div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>() : <a class="code hl_class" href="classList.html">List</a>(nullptr, 0) {}</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_class" href="classList.html">List&lt;T&gt;::operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> free();</div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> copyFrom(other);</div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span>}</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<span class="keyword">const</span> <a class="code hl_class" href="classList.html">List</a>&amp; other) {</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> copyFrom(other);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span>}</div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::~List</a>() {</div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> free();</div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span>}</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="comment">// Move semantics</span></div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><a class="code hl_class" href="classList.html">List&lt;T&gt;::List</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other) {</div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> length = other.length;</div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> count = other.count;</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> elements = other.elements;</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> other.elements = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span>}</div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; <a class="code hl_class" href="classList.html">List&lt;T&gt;::operator=</a>(<a class="code hl_class" href="classList.html">List</a>&amp;&amp; other) {</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> free();</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> length = other.length;</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> count = other.count;</div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> elements = other.elements;</div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> other.elements = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span>}</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment">/* Outside of class */</span></div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07"> 315</a></span>std::istream&amp; <a class="code hl_function" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj) {</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a> newObj;</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordtype">unsigned</span> count;</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> istr &gt;&gt; count;</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> T temp;</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> istr &gt;&gt; temp;</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> obj.<a class="code hl_function" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(temp);</div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> }</div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">return</span> istr;</div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span>}</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2"> 336</a></span>std::ostream&amp; <a class="code hl_function" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classList.html">List&lt;T&gt;</a>&amp; obj) {</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> ostr &lt;&lt; obj.<a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; obj.<a class="code hl_function" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>(); i++)</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> ostr &lt;&lt; obj[i];</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">return</span> ostr;</div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span>}</div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aList_8hpp_html_a7469c3479753bfbada761697c539aa07"><div class="ttname"><a href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, List&lt; T &gt; &amp;obj)</div><div class="ttdoc">Reads List from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> List.hpp:315</div></div>
+<div class="ttc" id="aList_8hpp_html_ac8590f4d4ba6c820c34afe14df54f2c2"><div class="ttname"><a href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const List&lt; T &gt; &amp;obj)</div><div class="ttdoc">Writes List to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> List.hpp:336</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a3c9098dc2b305107367c56ded5dec787"><div class="ttname"><a href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a></div><div class="ttdeci">void read(T *storage)</div><div class="ttdoc">Reads user input and stores it.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:58</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+<div class="ttc" id="aclassList_html_a163a070c7d5dc77ca3c1726b8f2d4bc1"><div class="ttname"><a href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List::contain</a></div><div class="ttdeci">bool contain(const T &amp;element) const</div><div class="ttdef"><b>Definition:</b> List.hpp:180</div></div>
+<div class="ttc" id="aclassList_html_a321bb581943398344aad07198d1f02ac"><div class="ttname"><a href="classList.html#a321bb581943398344aad07198d1f02ac">List::operator[]</a></div><div class="ttdeci">T &amp; operator[](unsigned index)</div><div class="ttdoc">Returns reference to element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:185</div></div>
+<div class="ttc" id="aclassList_html_a3804f03273ef5e339b504e439c5b6534"><div class="ttname"><a href="classList.html#a3804f03273ef5e339b504e439c5b6534">List::findIndex</a></div><div class="ttdeci">unsigned findIndex(const T &amp;element) const</div><div class="ttdoc">Finds the index of element.</div><div class="ttdef"><b>Definition:</b> List.hpp:167</div></div>
+<div class="ttc" id="aclassList_html_a3c1e3a3fc085f5b7ae68514c4758687b"><div class="ttname"><a href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List::get_count</a></div><div class="ttdeci">unsigned get_count() const</div><div class="ttdoc">Returns the count.</div><div class="ttdef"><b>Definition:</b> List.hpp:255</div></div>
+<div class="ttc" id="aclassList_html_a5e3581ee07649f462aa8bb3221a5466e"><div class="ttname"><a href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List::read</a></div><div class="ttdeci">std::istream &amp; read(std::istream &amp;istr)</div><div class="ttdoc">Reads from stream.</div><div class="ttdef"><b>Definition:</b> List.hpp:211</div></div>
+<div class="ttc" id="aclassList_html_a5fa582de3aec5094a871852b658cf853"><div class="ttname"><a href="classList.html#a5fa582de3aec5094a871852b658cf853">List::operator[]</a></div><div class="ttdeci">const T &amp; operator[](unsigned index) const</div><div class="ttdoc">Returns constant reference to element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:190</div></div>
+<div class="ttc" id="aclassList_html_a8d2babffd2fb4a5e0a40dbd306e19956"><div class="ttname"><a href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List::write</a></div><div class="ttdeci">std::ostream &amp; write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes to stream.</div><div class="ttdef"><b>Definition:</b> List.hpp:233</div></div>
+<div class="ttc" id="aclassList_html_a93cd36efc12aa5ef5fc28866edce7e61"><div class="ttname"><a href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List::List</a></div><div class="ttdeci">List(const T *elements, unsigned elementsCount)</div><div class="ttdoc">Copies all elements in given array.</div><div class="ttdef"><b>Definition:</b> List.hpp:107</div></div>
+<div class="ttc" id="aclassList_html_aa32109b77dccd8241b125ebabdda876c"><div class="ttname"><a href="classList.html#aa32109b77dccd8241b125ebabdda876c">List::get_length</a></div><div class="ttdeci">unsigned get_length() const</div><div class="ttdoc">Returns the length.</div><div class="ttdef"><b>Definition:</b> List.hpp:247</div></div>
+<div class="ttc" id="aclassList_html_aa4332ce5a589da28528f035ded6d41e5"><div class="ttname"><a href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List::operator+=</a></div><div class="ttdeci">List&lt; T &gt; &amp; operator+=(const List&lt; T &gt; other)</div><div class="ttdoc">Appends elements from other list.</div><div class="ttdef"><b>Definition:</b> List.hpp:195</div></div>
+<div class="ttc" id="aclassList_html_abfec4f2e7990d06c143852ecfdf907bb"><div class="ttname"><a href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List::add</a></div><div class="ttdeci">void add(const T &amp;element)</div><div class="ttdoc">Adds an element.</div><div class="ttdef"><b>Definition:</b> List.hpp:119</div></div>
+<div class="ttc" id="aclassList_html_ad9c0a5b5bca6286f458d6fab280de65a"><div class="ttname"><a href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List::removeAt</a></div><div class="ttdeci">bool removeAt(unsigned index)</div><div class="ttdoc">Removes element at index.</div><div class="ttdef"><b>Definition:</b> List.hpp:152</div></div>
+<div class="ttc" id="aclassList_html_ae4586debf72af33bccb3c2fbfce420e8"><div class="ttname"><a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List::insertAt</a></div><div class="ttdeci">void insertAt(const T &amp;element, unsigned index)</div><div class="ttdoc">Inserts element at given index.</div><div class="ttdef"><b>Definition:</b> List.hpp:132</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h.html
new file mode 100644
index 0000000..43f7642
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Menu.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">Menu.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Command_8h_source.html">Command.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="List_8hpp_source.html">../List/List.hpp</a>&quot;</code><br />
+</div>
+<p><a href="Menu_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html">Menu</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles navigation between multiple commands. <a href="classMenu.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h_source.html
new file mode 100644
index 0000000..88f81c1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Menu_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Menu.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Menu.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Menu_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_MENU</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_MENU</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Command_8h.html">Command.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;../List/List.hpp&quot;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classMenu.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classMenu.html">Menu</a> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">char</span> title[256];</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_class" href="classList.html">List&lt;Command&gt;</a> menuOptions;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">bool</span> backExistsApp;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">bool</span> isSubMenu;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_function" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>();</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_function" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* title, <span class="keywordtype">bool</span> backExistsApp, <span class="keywordtype">bool</span> isSubMenu);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_function" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* title, <span class="keywordtype">bool</span> backExistsApp, <span class="keywordtype">bool</span> isSubMenu, <span class="keyword">const</span> <a class="code hl_class" href="classCommand.html">Command</a>* commands, <span class="keywordtype">unsigned</span> commandCount);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">addCommand</a>(<span class="keyword">const</span> <a class="code hl_class" href="classCommand.html">Command</a>&amp; command);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">registerError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a5350b1addf9bf365351486cd161696ad">registerWarning</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">registerSuccess</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>};</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aCommand_8h_html"><div class="ttname"><a href="Command_8h.html">Command.h</a></div><div class="ttdoc">Stores the declaration of class Command.</div></div>
+<div class="ttc" id="aclassCommand_html"><div class="ttname"><a href="classCommand.html">Command</a></div><div class="ttdoc">Stores a 256 character name and a function pointer to be executed when calling run()</div><div class="ttdef"><b>Definition:</b> Command.h:12</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List&lt; Command &gt;</a></div></div>
+<div class="ttc" id="aclassMenu_html"><div class="ttname"><a href="classMenu.html">Menu</a></div><div class="ttdoc">Handles navigation between multiple commands.</div><div class="ttdef"><b>Definition:</b> Menu.h:17</div></div>
+<div class="ttc" id="aclassMenu_html_a0400751da7f8583029b7a12d3003c36d"><div class="ttname"><a href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu::navigate</a></div><div class="ttdeci">void navigate() const</div><div class="ttdoc">Lists commands and after user input executes an appropriate command run() function.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:93</div></div>
+<div class="ttc" id="aclassMenu_html_a1f022cc8b705369073f8fd7b90b30c8d"><div class="ttname"><a href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu::addCommand</a></div><div class="ttdeci">void addCommand(const Command &amp;command)</div><div class="ttdoc">Adds a command to the internal Command list.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:32</div></div>
+<div class="ttc" id="aclassMenu_html_a3504e28b5d05e1ad70dada190bbc3a9c"><div class="ttname"><a href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">Menu::registerSuccess</a></div><div class="ttdeci">void registerSuccess(const char *message) const</div><div class="ttdoc">Tell Menu to show a success message next time it prints.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:76</div></div>
+<div class="ttc" id="aclassMenu_html_a5350b1addf9bf365351486cd161696ad"><div class="ttname"><a href="classMenu.html#a5350b1addf9bf365351486cd161696ad">Menu::registerWarning</a></div><div class="ttdeci">void registerWarning(const char *message) const</div><div class="ttdoc">Tell Menu to show a warning message next time it prints.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:64</div></div>
+<div class="ttc" id="aclassMenu_html_aad506cb9a7f35dea98c60484bb2d095c"><div class="ttname"><a href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">Menu::registerError</a></div><div class="ttdeci">void registerError(const char *message) const</div><div class="ttdoc">Tell Menu to show an error message next time it prints.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:52</div></div>
+<div class="ttc" id="aclassMenu_html_ad466dd83355124a6ed958430450bfe94"><div class="ttname"><a href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu::Menu</a></div><div class="ttdeci">Menu()</div><div class="ttdoc">Sets name as &quot;Menu&quot;, leaves all flags to false and creates an empty Command list.</div><div class="ttdef"><b>Definition:</b> Menu.cpp:5</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp.html b/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp.html
new file mode 100644
index 0000000..7ffd78f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/List/OrderedList.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">OrderedList.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration and definition of templated class <a class="el" href="classOrderedList.html" title="Inherits List, but contains it&#39;s elements in a sorted manner.">OrderedList</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="List_8hpp_source.html">List.hpp</a>&quot;</code><br />
+</div>
+<p><a href="OrderedList_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inherits <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, but contains it's elements in a sorted manner. <a href="classOrderedList.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration and definition of templated class <a class="el" href="classOrderedList.html" title="Inherits List, but contains it&#39;s elements in a sorted manner.">OrderedList</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp_source.html
new file mode 100644
index 0000000..ea5a0e4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/OrderedList_8hpp_source.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/List/OrderedList.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">OrderedList.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="OrderedList_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_ORDEREDLIST</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_ORDEREDLIST</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="List_8hpp.html">List.hpp</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="classOrderedList.html"> 16</a></span><span class="keyword">class </span><a class="code hl_class" href="classOrderedList.html">OrderedList</a> : <span class="keyword">public</span> <a class="code hl_class" href="classList.html">List</a>&lt;T&gt; {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_class" href="classOrderedList.html">OrderedList</a>();</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_class" href="classOrderedList.html">OrderedList</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd"> 24</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">add</a>(T element) = <span class="keyword">delete</span>;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99"> 28</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">insertAt</a>(T element, <span class="keywordtype">unsigned</span> index) = <span class="keyword">delete</span>;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b"> 31</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">insert</a>(T element);</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><a class="code hl_class" href="classOrderedList.html">OrderedList&lt;T&gt;::OrderedList</a>() : <a class="code hl_class" href="classOrderedList.html">OrderedList</a>(nullptr, 0) {}</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><a class="code hl_class" href="classOrderedList.html">OrderedList&lt;T&gt;::OrderedList</a>(<span class="keyword">const</span> T* elements, <span class="keywordtype">unsigned</span> elementsCount) : <a class="code hl_class" href="classList.html">List</a>&lt;T&gt;::<a class="code hl_class" href="classList.html">List</a>(elements, elementsCount) {}</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b"> 45</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">OrderedList&lt;T&gt;::insert</a>(T element) {</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (<a class="code hl_class" href="classList.html">List&lt;T&gt;::length</a> == <a class="code hl_class" href="classList.html">List&lt;T&gt;::count</a>) <a class="code hl_class" href="classList.html">List&lt;T&gt;::resize</a>();</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">unsigned</span> insertionInd = 0;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">while</span> (insertionInd &lt; <a class="code hl_class" href="classList.html">List&lt;T&gt;::count</a> &amp;&amp; <a class="code hl_class" href="classList.html">List&lt;T&gt;::elements</a>[insertionInd].compare(element) &lt; 0)</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> insertionInd++;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt;T&gt;::insertAt</a>(element, insertionInd);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>}</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aList_8hpp_html"><div class="ttname"><a href="List_8hpp.html">List.hpp</a></div><div class="ttdoc">Stores declaration and definition of templated class List.</div></div>
+<div class="ttc" id="aclassList_html"><div class="ttname"><a href="classList.html">List</a></div><div class="ttdoc">Templated class that stores an array of elements in dynamic memory.</div><div class="ttdef"><b>Definition:</b> List.hpp:22</div></div>
+<div class="ttc" id="aclassList_html_ae4586debf72af33bccb3c2fbfce420e8"><div class="ttname"><a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List::insertAt</a></div><div class="ttdeci">void insertAt(const T &amp;element, unsigned index)</div><div class="ttdoc">Inserts element at given index.</div><div class="ttdef"><b>Definition:</b> List.hpp:132</div></div>
+<div class="ttc" id="aclassOrderedList_html"><div class="ttname"><a href="classOrderedList.html">OrderedList</a></div><div class="ttdoc">Inherits List, but contains it's elements in a sorted manner.</div><div class="ttdef"><b>Definition:</b> OrderedList.hpp:16</div></div>
+<div class="ttc" id="aclassOrderedList_html_a1132cd9c92901e9b9950a4a409b0fc8b"><div class="ttname"><a href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">OrderedList::insert</a></div><div class="ttdeci">void insert(T element)</div><div class="ttdoc">Inserts an element at a sorted position.</div><div class="ttdef"><b>Definition:</b> OrderedList.hpp:45</div></div>
+<div class="ttc" id="aclassOrderedList_html_a45af729846bacc77fc8292e5d0690f99"><div class="ttname"><a href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">OrderedList::insertAt</a></div><div class="ttdeci">void insertAt(T element, unsigned index)=delete</div></div>
+<div class="ttc" id="aclassOrderedList_html_a8b2748c3cdefe4869e0d7a2fc9b4b2cd"><div class="ttname"><a href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">OrderedList::add</a></div><div class="ttdeci">void add(T element)=delete</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h.html
new file mode 100644
index 0000000..8fd08e6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Reservation.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle"><div class="title">Reservation.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="Ticket_8h_source.html">Ticket.h</a>&quot;</code><br />
+<code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="Reservation_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html">Reservation</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each Reservations contains a ticket, a password and a note. <a href="classReservation.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a0fe437f408e254d25bd93c55b2a17371"><td class="memItemLeft" align="right" valign="top"><a id="a0fe437f408e254d25bd93c55b2a17371" name="a0fe437f408e254d25bd93c55b2a17371"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>PASSWORD_LEN</b>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:a0fe437f408e254d25bd93c55b2a17371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c10da010db9a0c17470973fea43566f"><td class="memItemLeft" align="right" valign="top"><a id="a3c10da010db9a0c17470973fea43566f" name="a3c10da010db9a0c17470973fea43566f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>NOTE_LEN</b>&#160;&#160;&#160;32</td></tr>
+<tr class="separator:a3c10da010db9a0c17470973fea43566f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h_source.html
new file mode 100644
index 0000000..52c470a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Reservation_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Reservation.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Reservation.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Reservation_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_MODEL_RESERVATION</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_MODEL_RESERVATION</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="Ticket_8h.html">Ticket.h</a>&quot;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#define PASSWORD_LEN 8</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define NOTE_LEN 32</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classReservation.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classReservation.html">Reservation</a> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <a class="code hl_class" href="classTicket.html">Ticket</a> ticket;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">char</span> password[PASSWORD_LEN];</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">char</span> note[NOTE_LEN];</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_function" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a>();</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_function" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a>(<span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_function" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a>(<span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket, <span class="keyword">const</span> <span class="keywordtype">char</span>* password, <span class="keyword">const</span> <span class="keywordtype">char</span>* note);</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; <a class="code hl_function" href="classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb">get_ticket</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9">get_password</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="classReservation.html#a2285881510bf07f469bf360bb1050f12">get_note</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classReservation.html">Reservation</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">friend</span> std::istream&amp; <a class="code hl_friend" href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classReservation.html">Reservation</a>&amp; reservation);</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">friend</span> std::ostream&amp; <a class="code hl_friend" href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classReservation.html">Reservation</a>&amp; reservation);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>};</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aTicket_8h_html"><div class="ttname"><a href="Ticket_8h.html">Ticket.h</a></div><div class="ttdoc">Stores the declaration of class Ticket.</div></div>
+<div class="ttc" id="aclassReservation_html"><div class="ttname"><a href="classReservation.html">Reservation</a></div><div class="ttdoc">Each Reservations contains a ticket, a password and a note.</div><div class="ttdef"><b>Definition:</b> Reservation.h:17</div></div>
+<div class="ttc" id="aclassReservation_html_a03f0d1a522edb2c5fba7538f0c879573"><div class="ttname"><a href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">Reservation::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads Reservation from stream.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:34</div></div>
+<div class="ttc" id="aclassReservation_html_a1aba46b8e181750bd89fdfca6ff8ba32"><div class="ttname"><a href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">Reservation::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes Reservation to stream.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:48</div></div>
+<div class="ttc" id="aclassReservation_html_a2285881510bf07f469bf360bb1050f12"><div class="ttname"><a href="classReservation.html#a2285881510bf07f469bf360bb1050f12">Reservation::get_note</a></div><div class="ttdeci">const char * get_note() const</div><div class="ttdoc">Returns constant C-style string to note.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:22</div></div>
+<div class="ttc" id="aclassReservation_html_a2b7331e532f77bbc67eab217bfeb1f25"><div class="ttname"><a href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">Reservation::operator&gt;&gt;</a></div><div class="ttdeci">friend std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, Reservation &amp;reservation)</div><div class="ttdoc">Reads Reservation from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:66</div></div>
+<div class="ttc" id="aclassReservation_html_a31cc66beeaf85befe2185dfc88086d38"><div class="ttname"><a href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">Reservation::compare</a></div><div class="ttdeci">int compare(const Reservation &amp;other) const</div><div class="ttdoc">Compares two Reservations.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:56</div></div>
+<div class="ttc" id="aclassReservation_html_a63b283053695e6f50fa44c50da2b3de5"><div class="ttname"><a href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation::Reservation</a></div><div class="ttdeci">Reservation()</div><div class="ttdoc">Sets ticket as default value and leaves password and note blank.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:4</div></div>
+<div class="ttc" id="aclassReservation_html_aa34cd16a057a4a483e569ec5d7527ad9"><div class="ttname"><a href="classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9">Reservation::get_password</a></div><div class="ttdeci">const char * get_password() const</div><div class="ttdoc">Returns constant C-style string to password.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:18</div></div>
+<div class="ttc" id="aclassReservation_html_abf734c0a55da55ef89dab1e2f12b8ebd"><div class="ttname"><a href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">Reservation::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const Reservation &amp;reservation)</div><div class="ttdoc">Writes Reservation to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:77</div></div>
+<div class="ttc" id="aclassReservation_html_af1b95b3d7c46f506dec4d275d6821cdb"><div class="ttname"><a href="classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb">Reservation::get_ticket</a></div><div class="ttdeci">const Ticket &amp; get_ticket() const</div><div class="ttdoc">Returns constant reference to ticket.</div><div class="ttdef"><b>Definition:</b> Reservation.cpp:14</div></div>
+<div class="ttc" id="aclassTicket_html"><div class="ttname"><a href="classTicket.html">Ticket</a></div><div class="ttdoc">Each Ticket contains a row and a seat number.</div><div class="ttdef"><b>Definition:</b> Ticket.h:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h.html
new file mode 100644
index 0000000..a365dd3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/StatusCode.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle"><div class="title">StatusCode.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration of enum StatusCode.
+<a href="#details">More...</a></p>
+
+<p><a href="StatusCode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ae98a46f4ea1a43ca48acaf15d2eb7113"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> { <br />
+&#160;&#160;<b>Success</b>
+, <b>W_TicketHadNotBeenReserved</b>
+, <b>E_FileCouldNotBeOpened</b>
+, <b>E_HallDoesntExist</b>
+, <br />
+&#160;&#160;<b>E_EventWillOverlap</b>
+, <b>E_EventDoesNotExist</b>
+, <b>E_TicketAlreadyBought</b>
+, <b>E_TicketAlreadyReserved</b>
+, <br />
+&#160;&#160;<b>E_ReservationDoesNotExist</b>
+, <b>E_WrongReservationPassword</b>
+<br />
+ }</td></tr>
+<tr class="memdesc:ae98a46f4ea1a43ca48acaf15d2eb7113"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for communication between Services and what uses them. <a href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">More...</a><br /></td></tr>
+<tr class="separator:ae98a46f4ea1a43ca48acaf15d2eb7113"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration of enum StatusCode. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="ae98a46f4ea1a43ca48acaf15d2eb7113" name="ae98a46f4ea1a43ca48acaf15d2eb7113"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae98a46f4ea1a43ca48acaf15d2eb7113">&#9670;&nbsp;</a></span>StatusCode</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Used for communication between Services and what uses them. </p>
+<p >Most functions in Services return a StatusCode.</p>
+<p >Those starting with W should be considered Warning, and those starting with E should be considered Errors. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h_source.html
new file mode 100644
index 0000000..c26fe90
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/StatusCode_8h_source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services/StatusCode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">StatusCode.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="StatusCode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_SERVICES_STATUSCODE</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_SERVICES_STATUSCODE</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113"> 14</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> Success,</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> W_TicketHadNotBeenReserved,</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> E_FileCouldNotBeOpened,</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> E_HallDoesntExist,</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> E_EventWillOverlap,</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> E_EventDoesNotExist,</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> E_TicketAlreadyBought,</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> E_TicketAlreadyReserved,</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> E_ReservationDoesNotExist,</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> E_WrongReservationPassword,</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aStatusCode_8h_html_ae98a46f4ea1a43ca48acaf15d2eb7113"><div class="ttname"><a href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a></div><div class="ttdeci">StatusCode</div><div class="ttdoc">Used for communication between Services and what uses them.</div><div class="ttdef"><b>Definition:</b> StatusCode.h:14</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h.html
new file mode 100644
index 0000000..16a3ce3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/String/String.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle"><div class="title">String.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores declaration of class <a class="el" href="classString.html">String</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="String_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html">String</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores declaration of class <a class="el" href="classString.html">String</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h_source.html
new file mode 100644
index 0000000..cc0e50f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/String_8h_source.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/String/String.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="String_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_STRING</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_STRING</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="classString.html"> 11</a></span><span class="keyword">class </span><a class="code hl_class" href="classString.html">String</a> {</div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">char</span>* str;</div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">unsigned</span> length;</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">void</span> free();</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">void</span> copyFrom(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keywordtype">unsigned</span> length);</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">get_cstr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">get_length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">char</span>&amp; <a class="code hl_function" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">operator[]</a>(<span class="keywordtype">unsigned</span> index);</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_class" href="classString.html">String</a>&amp; <a class="code hl_function" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(<span class="keywordtype">unsigned</span> number);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_class" href="classString.html">String</a>();</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <a class="code hl_class" href="classString.html">String</a>(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_class" href="classString.html">String</a>&amp; operator=(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_class" href="classString.html">~String</a>();</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_class" href="classString.html">String</a>(<a class="code hl_class" href="classString.html">String</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_class" href="classString.html">String</a>&amp; operator=(<a class="code hl_class" href="classString.html">String</a>&amp;&amp; other);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">friend</span> std::istream&amp; <a class="code hl_friend" href="classString.html#a1918adea635f3f340dbecd6fb05341f8">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classString.html">String</a>&amp; event);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">friend</span> std::ostream&amp; <a class="code hl_friend" href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classString.html">String</a>&amp; event);</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>};</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.h:11</div></div>
+<div class="ttc" id="aclassString_html_a1918adea635f3f340dbecd6fb05341f8"><div class="ttname"><a href="classString.html#a1918adea635f3f340dbecd6fb05341f8">String::operator&gt;&gt;</a></div><div class="ttdeci">friend std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, String &amp;event)</div><div class="ttdoc">Reads String from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> String.cpp:153</div></div>
+<div class="ttc" id="aclassString_html_a3d7f953737f3d4dca72d1cc4836f7dcc"><div class="ttname"><a href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String::get_cstr</a></div><div class="ttdeci">const char * get_cstr() const</div><div class="ttdoc">Returns internal C-style string.</div><div class="ttdef"><b>Definition:</b> String.cpp:35</div></div>
+<div class="ttc" id="aclassString_html_a3f420d69fbe3de91711dc69148d23cc7"><div class="ttname"><a href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String::compare</a></div><div class="ttdeci">int compare(const String &amp;other) const</div><div class="ttdoc">Compares two strings.</div><div class="ttdef"><b>Definition:</b> String.cpp:143</div></div>
+<div class="ttc" id="aclassString_html_a5d3b77a51619a8580a373d2cd1092a54"><div class="ttname"><a href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String::operator[]</a></div><div class="ttdeci">char &amp; operator[](unsigned index)</div><div class="ttdoc">Returns a character reference (from the underlying C-style string) at the given index.</div><div class="ttdef"><b>Definition:</b> String.cpp:43</div></div>
+<div class="ttc" id="aclassString_html_a64de9ab1af5df9397f8fbd8c79d5f4b6"><div class="ttname"><a href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String::operator+=</a></div><div class="ttdeci">String &amp; operator+=(const char *str)</div><div class="ttdoc">Appends a C-style string.</div><div class="ttdef"><b>Definition:</b> String.cpp:49</div></div>
+<div class="ttc" id="aclassString_html_a7793a7e9a7601d4c724dcc85566259bf"><div class="ttname"><a href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String::get_length</a></div><div class="ttdeci">unsigned get_length() const</div><div class="ttdoc">Returns number of characters in string.</div><div class="ttdef"><b>Definition:</b> String.cpp:39</div></div>
+<div class="ttc" id="aclassString_html_a7b0ea809587c21bc1d2b87bfee53e628"><div class="ttname"><a href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes String to stream.</div><div class="ttdef"><b>Definition:</b> String.cpp:135</div></div>
+<div class="ttc" id="aclassString_html_aa00d824f40064ff356aa7c15d6a9da12"><div class="ttname"><a href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">String::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const String &amp;event)</div><div class="ttdoc">Writes String to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> String.cpp:165</div></div>
+<div class="ttc" id="aclassString_html_ad76bb9eca15651c67332808cdaad6344"><div class="ttname"><a href="classString.html#ad76bb9eca15651c67332808cdaad6344">String::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads String from stream.</div><div class="ttdef"><b>Definition:</b> String.cpp:122</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h.html
new file mode 100644
index 0000000..cceb148
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Ticket.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Ticket.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores the declaration of class <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a>.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;istream&gt;</code><br />
+<code>#include &lt;ostream&gt;</code><br />
+</div>
+<p><a href="Ticket_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTicket.html">Ticket</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> contains a row and a seat number. <a href="classTicket.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac5c53ae039e173faa4cce85c2e32c920"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:ac5c53ae039e173faa4cce85c2e32c920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> from stream with &gt;&gt; operator. <a href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">More...</a><br /></td></tr>
+<tr class="separator:ac5c53ae039e173faa4cce85c2e32c920"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1686d3505df5e86e64e6e1b263e92ce"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:ae1686d3505df5e86e64e6e1b263e92ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> to stream with &lt;&lt; operator. <a href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">More...</a><br /></td></tr>
+<tr class="separator:ae1686d3505df5e86e64e6e1b263e92ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores the declaration of class <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae1686d3505df5e86e64e6e1b263e92ce" name="ae1686d3505df5e86e64e6e1b263e92ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1686d3505df5e86e64e6e1b263e92ce">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write row and seat, separated by a space.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="ac5c53ae039e173faa4cce85c2e32c920" name="ac5c53ae039e173faa4cce85c2e32c920"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac5c53ae039e173faa4cce85c2e32c920">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse row and seat.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h_source.html
new file mode 100644
index 0000000..1d9c133
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Ticket_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models/Ticket.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Ticket.h</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Ticket_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_HEADER_TICKET</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_HEADER_TICKET</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;istream&gt;</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;ostream&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="classTicket.html"> 13</a></span><span class="keyword">class </span><a class="code hl_class" href="classTicket.html">Ticket</a> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">unsigned</span> row;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">unsigned</span> seat;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">public</span>:</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_function" href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket</a>();</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <a class="code hl_function" href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket</a>(<span class="keywordtype">unsigned</span> row, <span class="keywordtype">unsigned</span> seat);</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classTicket.html#a94476de3cd6711185527d0fe4df9a278">get_row</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">unsigned</span> <a class="code hl_function" href="classTicket.html#af7b64cb77a676d0f7bdb32255283f005">get_seat</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">read</a>(std::istream&amp; istr);</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">write</a>(std::ostream&amp; ostr) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classTicket.html#a82a063f71be89f44dd969970855187c4">compare</a>(<span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; other) <span class="keyword">const</span>;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>};</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>std::istream&amp; <a class="code hl_function" href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">operator&gt;&gt;</a>(std::istream&amp; istr, <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>std::ostream&amp; <a class="code hl_function" href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">operator&lt;&lt;</a>(std::ostream&amp; ostr, <span class="keyword">const</span> <a class="code hl_class" href="classTicket.html">Ticket</a>&amp; ticket);</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aTicket_8h_html_ac5c53ae039e173faa4cce85c2e32c920"><div class="ttname"><a href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">operator&gt;&gt;</a></div><div class="ttdeci">std::istream &amp; operator&gt;&gt;(std::istream &amp;istr, Ticket &amp;ticket)</div><div class="ttdoc">Reads Ticket from stream with &gt;&gt; operator.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:57</div></div>
+<div class="ttc" id="aTicket_8h_html_ae1686d3505df5e86e64e6e1b263e92ce"><div class="ttname"><a href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;ostr, const Ticket &amp;ticket)</div><div class="ttdoc">Writes Ticket to stream with &lt;&lt; operator.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:69</div></div>
+<div class="ttc" id="aclassTicket_html"><div class="ttname"><a href="classTicket.html">Ticket</a></div><div class="ttdoc">Each Ticket contains a row and a seat number.</div><div class="ttdef"><b>Definition:</b> Ticket.h:13</div></div>
+<div class="ttc" id="aclassTicket_html_a584a11f6236fc96f3bdbd0592d3f60f4"><div class="ttname"><a href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">Ticket::write</a></div><div class="ttdeci">void write(std::ostream &amp;ostr) const</div><div class="ttdoc">Writes Ticket to stream.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:37</div></div>
+<div class="ttc" id="aclassTicket_html_a82a063f71be89f44dd969970855187c4"><div class="ttname"><a href="classTicket.html#a82a063f71be89f44dd969970855187c4">Ticket::compare</a></div><div class="ttdeci">int compare(const Ticket &amp;other) const</div><div class="ttdoc">Compares two Tickets.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:44</div></div>
+<div class="ttc" id="aclassTicket_html_a94476de3cd6711185527d0fe4df9a278"><div class="ttname"><a href="classTicket.html#a94476de3cd6711185527d0fe4df9a278">Ticket::get_row</a></div><div class="ttdeci">unsigned get_row() const</div><div class="ttdoc">Returns row.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:10</div></div>
+<div class="ttc" id="aclassTicket_html_aad2d0b7b92b54ec861db92c31f50f4ad"><div class="ttname"><a href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">Ticket::read</a></div><div class="ttdeci">void read(std::istream &amp;istr)</div><div class="ttdoc">Reads Ticket from stram.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:25</div></div>
+<div class="ttc" id="aclassTicket_html_aba3a46c9223efb6ab0bde93a09403537"><div class="ttname"><a href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket::Ticket</a></div><div class="ttdeci">Ticket()</div><div class="ttdoc">Sets row and seat to zeroes.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:3</div></div>
+<div class="ttc" id="aclassTicket_html_af7b64cb77a676d0f7bdb32255283f005"><div class="ttname"><a href="classTicket.html#af7b64cb77a676d0f7bdb32255283f005">Ticket::get_seat</a></div><div class="ttdeci">unsigned get_seat() const</div><div class="ttdoc">Returns seat.</div><div class="ttdef"><b>Definition:</b> Ticket.cpp:14</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp.html
new file mode 100644
index 0000000..3c48890
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp.html
@@ -0,0 +1,750 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Toolbox.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">Toolbox.hpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores a wide range of functions for simpler/more automated printing.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
+</div>
+<p><a href="Toolbox_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a09f908aa6474fe2b1f82b1aaade947f6"><td class="memItemLeft" align="right" valign="top"><a id="a09f908aa6474fe2b1f82b1aaade947f6" name="a09f908aa6474fe2b1f82b1aaade947f6"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>MAX_LINE_WIDTH</b>&#160;&#160;&#160;1024</td></tr>
+<tr class="separator:a09f908aa6474fe2b1f82b1aaade947f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
+<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the console screen. <a href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">More...</a><br /></td></tr>
+<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24a3fa9050ea032396c213ea85a1de0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">titleBox</a> (const char *title)</td></tr>
+<tr class="memdesc:a24a3fa9050ea032396c213ea85a1de0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a title box. <a href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">More...</a><br /></td></tr>
+<tr class="separator:a24a3fa9050ea032396c213ea85a1de0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad557e4a1167be4e0c57fe530ce74a120"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">subTitleBox</a> (const char *title)</td></tr>
+<tr class="memdesc:ad557e4a1167be4e0c57fe530ce74a120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a title sub box. <a href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">More...</a><br /></td></tr>
+<tr class="separator:ad557e4a1167be4e0c57fe530ce74a120"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c82ac6987703376c17c74a81fb0a91a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">successBox</a> (const char *message)</td></tr>
+<tr class="memdesc:a6c82ac6987703376c17c74a81fb0a91a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a success box. <a href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">More...</a><br /></td></tr>
+<tr class="separator:a6c82ac6987703376c17c74a81fb0a91a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa78e2e87fff9b64ca032a5b1c7054081"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">successSubBox</a> (const char *message)</td></tr>
+<tr class="memdesc:aa78e2e87fff9b64ca032a5b1c7054081"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a success box as a sub box. <a href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">More...</a><br /></td></tr>
+<tr class="separator:aa78e2e87fff9b64ca032a5b1c7054081"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52222c9ff8739ef87c89df899deb5052"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">warningBox</a> (const char *message)</td></tr>
+<tr class="memdesc:a52222c9ff8739ef87c89df899deb5052"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a warning box. <a href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">More...</a><br /></td></tr>
+<tr class="separator:a52222c9ff8739ef87c89df899deb5052"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22f8b3135115d1b9fca09eea98dc6d92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">warningSubBox</a> (const char *message)</td></tr>
+<tr class="memdesc:a22f8b3135115d1b9fca09eea98dc6d92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a warning box as a sub box. <a href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">More...</a><br /></td></tr>
+<tr class="separator:a22f8b3135115d1b9fca09eea98dc6d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d709a3db7de05368cc38671c896bb2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">errorBox</a> (const char *message)</td></tr>
+<tr class="memdesc:a9d709a3db7de05368cc38671c896bb2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints an error box. <a href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">More...</a><br /></td></tr>
+<tr class="separator:a9d709a3db7de05368cc38671c896bb2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade748c3f15151748c9f978097715d2e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">errorSubBox</a> (const char *message)</td></tr>
+<tr class="memdesc:ade748c3f15151748c9f978097715d2e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints an error box as a sub box. <a href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">More...</a><br /></td></tr>
+<tr class="separator:ade748c3f15151748c9f978097715d2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49b4d5a7b00249bc1fb08eec5e3aeaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">inputLineBox</a> (const char *label, char *output, unsigned maxWidth, bool ignore=true)</td></tr>
+<tr class="memdesc:aa49b4d5a7b00249bc1fb08eec5e3aeaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints label, gets a whole line of input and stores it to output. <a href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">More...</a><br /></td></tr>
+<tr class="separator:aa49b4d5a7b00249bc1fb08eec5e3aeaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2c61ce27ec52d14e427d6f6e93d38f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">inputLineSubBox</a> (const char *label, char *output, unsigned maxWidth, bool ignore=true)</td></tr>
+<tr class="memdesc:ad2c61ce27ec52d14e427d6f6e93d38f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints label as a sub box, gets a whole line of input and stores it to output. <a href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">More...</a><br /></td></tr>
+<tr class="separator:ad2c61ce27ec52d14e427d6f6e93d38f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7f54319bf4e70a46e3155ae1b39e832"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">pressEnterToContinue</a> (bool ignore=true)</td></tr>
+<tr class="memdesc:ac7f54319bf4e70a46e3155ae1b39e832"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for user to press enter. <a href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">More...</a><br /></td></tr>
+<tr class="separator:ac7f54319bf4e70a46e3155ae1b39e832"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4456d10f7e141c4fc1a29aff4ad29108"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">resetOrderedList</a> (int starter=1)</td></tr>
+<tr class="memdesc:a4456d10f7e141c4fc1a29aff4ad29108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the ordered list starting number. <a href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">More...</a><br /></td></tr>
+<tr class="separator:a4456d10f7e141c4fc1a29aff4ad29108"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c90056ede686f0319d0fb0a408d02e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">table</a> (unsigned startNumber, unsigned columns, const char *items)</td></tr>
+<tr class="memdesc:a6c90056ede686f0319d0fb0a408d02e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a string as a table. <a href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">More...</a><br /></td></tr>
+<tr class="separator:a6c90056ede686f0319d0fb0a408d02e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac17b91efad13dbe9e10e5550ee4707c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">_printSubBoxSpacing</a> ()</td></tr>
+<tr class="memdesc:ac17b91efad13dbe9e10e5550ee4707c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semi-internal function that prints the spacing for sub boxes. <a href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">More...</a><br /></td></tr>
+<tr class="separator:ac17b91efad13dbe9e10e5550ee4707c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3ce613add75d2385c8e1424527d2c3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">_printInputBoxLabel</a> (const char *label)</td></tr>
+<tr class="memdesc:ab3ce613add75d2385c8e1424527d2c3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semi-internal function that prints the label of an input box. <a href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">More...</a><br /></td></tr>
+<tr class="separator:ab3ce613add75d2385c8e1424527d2c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27b565355e018d36b6ce47169cc26fad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">_printOrderedListBeginning</a> ()</td></tr>
+<tr class="memdesc:a27b565355e018d36b6ce47169cc26fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semi-internal function that prints the latest ordered list index. <a href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">More...</a><br /></td></tr>
+<tr class="separator:a27b565355e018d36b6ce47169cc26fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c9098dc2b305107367c56ded5dec787"><td class="memTemplParams" colspan="2"><a id="a3c9098dc2b305107367c56ded5dec787" name="a3c9098dc2b305107367c56ded5dec787"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a3c9098dc2b305107367c56ded5dec787"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>read</b> (T *storage)</td></tr>
+<tr class="memdesc:a3c9098dc2b305107367c56ded5dec787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads user input and stores it. <br /></td></tr>
+<tr class="separator:a3c9098dc2b305107367c56ded5dec787"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06ca09434be2a02543a2371d477acfa0"><td class="memTemplParams" colspan="2"><a id="a06ca09434be2a02543a2371d477acfa0" name="a06ca09434be2a02543a2371d477acfa0"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a06ca09434be2a02543a2371d477acfa0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>read</b> (T &amp;storage)</td></tr>
+<tr class="memdesc:a06ca09434be2a02543a2371d477acfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads user input and stores it. <br /></td></tr>
+<tr class="separator:a06ca09434be2a02543a2371d477acfa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ca1093462d3266fceb8522e144c1e73"><td class="memTemplParams" colspan="2"><a id="a5ca1093462d3266fceb8522e144c1e73" name="a5ca1093462d3266fceb8522e144c1e73"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a5ca1093462d3266fceb8522e144c1e73"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>print</b> (const T *item)</td></tr>
+<tr class="memdesc:a5ca1093462d3266fceb8522e144c1e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item. <br /></td></tr>
+<tr class="separator:a5ca1093462d3266fceb8522e144c1e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memTemplParams" colspan="2"><a id="a9c0a0d7d3210ca5f12f02ac4cb88476e" name="a9c0a0d7d3210ca5f12f02ac4cb88476e"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>print</b> (const T &amp;item)</td></tr>
+<tr class="memdesc:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item. <br /></td></tr>
+<tr class="separator:a9c0a0d7d3210ca5f12f02ac4cb88476e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memTemplParams" colspan="2"><a id="a148d9d6b8b15bbfc2b1f4cdb16c2ee81" name="a148d9d6b8b15bbfc2b1f4cdb16c2ee81"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>printLine</b> (const T *item)</td></tr>
+<tr class="memdesc:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item and an endline character. <br /></td></tr>
+<tr class="separator:a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memTemplParams" colspan="2"><a id="a799f4cb5b4da3d40261e25d9e41995aa" name="a799f4cb5b4da3d40261e25d9e41995aa"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>printLine</b> (const T &amp;item)</td></tr>
+<tr class="memdesc:a799f4cb5b4da3d40261e25d9e41995aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints given item and an endline character. <br /></td></tr>
+<tr class="separator:a799f4cb5b4da3d40261e25d9e41995aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe3a449632ee6d40eb59101dd2d2f114"><td class="memTemplParams" colspan="2"><a id="abe3a449632ee6d40eb59101dd2d2f114" name="abe3a449632ee6d40eb59101dd2d2f114"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:abe3a449632ee6d40eb59101dd2d2f114"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>printOrderedListElem</b> (const T &amp;elem)</td></tr>
+<tr class="memdesc:abe3a449632ee6d40eb59101dd2d2f114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints the element as the latest list item. <br /></td></tr>
+<tr class="separator:abe3a449632ee6d40eb59101dd2d2f114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7651f0a92f8d0d0be3d63c1045eee1e"><td class="memTemplParams" colspan="2"><a id="ab7651f0a92f8d0d0be3d63c1045eee1e" name="ab7651f0a92f8d0d0be3d63c1045eee1e"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ab7651f0a92f8d0d0be3d63c1045eee1e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>inputBox</b> (const char *label, T *output)</td></tr>
+<tr class="memdesc:ab7651f0a92f8d0d0be3d63c1045eee1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a label and then reads user input and stores it. <br /></td></tr>
+<tr class="separator:ab7651f0a92f8d0d0be3d63c1045eee1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92da1c5f0023cd5c4809d9c1f682e92f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a92da1c5f0023cd5c4809d9c1f682e92f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f">inputSubBox</a> (const char *label, T *output)</td></tr>
+<tr class="separator:a92da1c5f0023cd5c4809d9c1f682e92f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores a wide range of functions for simpler/more automated printing. </p>
+<p >Adds a lot of functions for printing.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>iostream is included by necessity (templated functions), you should only use the provided functions, if you can. </dd></dl>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ab3ce613add75d2385c8e1424527d2c3d" name="ab3ce613add75d2385c8e1424527d2c3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab3ce613add75d2385c8e1424527d2c3d">&#9670;&nbsp;</a></span>_printInputBoxLabel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void _printInputBoxLabel </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>label</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Semi-internal function that prints the label of an input box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">label</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints "(+)" and then the given label. It doesn't create spacing after label, so it should exist in the label itself.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Semi-internal means the function is defined in the header out of necessity (for templated functions) </dd></dl>
+
+</div>
+</div>
+<a id="a27b565355e018d36b6ce47169cc26fad" name="a27b565355e018d36b6ce47169cc26fad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a27b565355e018d36b6ce47169cc26fad">&#9670;&nbsp;</a></span>_printOrderedListBeginning()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void _printOrderedListBeginning </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Semi-internal function that prints the latest ordered list index. </p>
+<p >Prints the latests ordered list index, surrounded by square brackets, and increments the ordered list index.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>There are no size checks, so list index could overflow.</dd>
+<dd>
+Semi-internal means the function is defined in the header out of necessity (for templated functions) </dd></dl>
+
+</div>
+</div>
+<a id="ac17b91efad13dbe9e10e5550ee4707c6" name="ac17b91efad13dbe9e10e5550ee4707c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac17b91efad13dbe9e10e5550ee4707c6">&#9670;&nbsp;</a></span>_printSubBoxSpacing()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void _printSubBoxSpacing </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Semi-internal function that prints the spacing for sub boxes. </p>
+<p >Sub boxes are like normal boxes, but indented with 4 spaces. </p>
+
+</div>
+</div>
+<a id="ac8bb3912a3ce86b15842e79d0b421204" name="ac8bb3912a3ce86b15842e79d0b421204"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8bb3912a3ce86b15842e79d0b421204">&#9670;&nbsp;</a></span>clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void clear </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Clears the console screen. </p>
+<p >Erases display and moves cursor to top left corner via ANSI escape sequences: <code>ESC</code>[2J <code>ESC</code>[1;1H</p>
+<dl class="section warning"><dt>Warning</dt><dd>Not all terminals support any or all ANSI escape sequences</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Source: <a href="https://stackoverflow.com/a/52895729/12036073">https://stackoverflow.com/a/52895729/12036073</a> </dd></dl>
+
+</div>
+</div>
+<a id="a9d709a3db7de05368cc38671c896bb2d" name="a9d709a3db7de05368cc38671c896bb2d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9d709a3db7de05368cc38671c896bb2d">&#9670;&nbsp;</a></span>errorBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void errorBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints an error box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Error boxes start with "&lt;E&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+
+</div>
+</div>
+<a id="ade748c3f15151748c9f978097715d2e7" name="ade748c3f15151748c9f978097715d2e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ade748c3f15151748c9f978097715d2e7">&#9670;&nbsp;</a></span>errorSubBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void errorSubBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints an error box as a sub box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Error boxes start with "&lt;E&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6" title="Semi-internal function that prints the spacing for sub boxes.">_printSubBoxSpacing()</a> </dd></dl>
+
+</div>
+</div>
+<a id="aa49b4d5a7b00249bc1fb08eec5e3aeaf" name="aa49b4d5a7b00249bc1fb08eec5e3aeaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa49b4d5a7b00249bc1fb08eec5e3aeaf">&#9670;&nbsp;</a></span>inputLineBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void inputLineBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>label</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>output</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>maxWidth</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignore</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints label, gets a whole line of input and stores it to output. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">label</td><td>C-style string, there are no size check so it could wrap </td></tr>
+ <tr><td class="paramname">output</td><td>Pointer to a char array </td></tr>
+ <tr><td class="paramname">maxWidth</td><td>Maximum count of characters to read from user input. output MUST be able to hold that many characters! </td></tr>
+ <tr><td class="paramname">ignore</td><td>Whether or not to ignore the first new-line delimiter. true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints "(+)" before the label. </p>
+
+</div>
+</div>
+<a id="ad2c61ce27ec52d14e427d6f6e93d38f2" name="ad2c61ce27ec52d14e427d6f6e93d38f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2c61ce27ec52d14e427d6f6e93d38f2">&#9670;&nbsp;</a></span>inputLineSubBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void inputLineSubBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>label</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>output</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>maxWidth</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignore</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints label as a sub box, gets a whole line of input and stores it to output. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">label</td><td>C-style string, there are no size check so it could wrap </td></tr>
+ <tr><td class="paramname">output</td><td>Pointer to a char array </td></tr>
+ <tr><td class="paramname">maxWidth</td><td>Maximum count of characters to read from user input. output MUST be able to hold that many characters! </td></tr>
+ <tr><td class="paramname">ignore</td><td>Whether or not to ignore the first new-line delimiter. true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints "(+)" before the label. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6" title="Semi-internal function that prints the spacing for sub boxes.">_printSubBoxSpacing()</a> </dd></dl>
+
+</div>
+</div>
+<a id="a92da1c5f0023cd5c4809d9c1f682e92f" name="a92da1c5f0023cd5c4809d9c1f682e92f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92da1c5f0023cd5c4809d9c1f682e92f">&#9670;&nbsp;</a></span>inputSubBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void inputSubBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>label</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T *&#160;</td>
+ <td class="paramname"><em>output</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p >Prints a label with sub box spacing and then reads user input and stores it </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6" title="Semi-internal function that prints the spacing for sub boxes.">_printSubBoxSpacing()</a> </dd></dl>
+
+</div>
+</div>
+<a id="ac7f54319bf4e70a46e3155ae1b39e832" name="ac7f54319bf4e70a46e3155ae1b39e832"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7f54319bf4e70a46e3155ae1b39e832">&#9670;&nbsp;</a></span>pressEnterToContinue()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void pressEnterToContinue </td>
+ <td>(</td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>ignore</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Waits for user to press enter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ignore</td><td>Whether or not to ignore the first new-line delimiter. true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints a "Press enter to continue" message and waits for the user </p>
+
+</div>
+</div>
+<a id="a4456d10f7e141c4fc1a29aff4ad29108" name="a4456d10f7e141c4fc1a29aff4ad29108"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4456d10f7e141c4fc1a29aff4ad29108">&#9670;&nbsp;</a></span>resetOrderedList()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void resetOrderedList </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>starter</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Resets the ordered list starting number. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">starter</td><td>Sets the starting number by which ordered list will enumerate</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Although starter can be a negative number, ordered list will always increment up the number. </dd></dl>
+
+</div>
+</div>
+<a id="ad557e4a1167be4e0c57fe530ce74a120" name="ad557e4a1167be4e0c57fe530ce74a120"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad557e4a1167be4e0c57fe530ce74a120">&#9670;&nbsp;</a></span>subTitleBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void subTitleBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>title</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a title sub box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">title</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints the title, surrounded by "---". </p>
+
+</div>
+</div>
+<a id="a6c82ac6987703376c17c74a81fb0a91a" name="a6c82ac6987703376c17c74a81fb0a91a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c82ac6987703376c17c74a81fb0a91a">&#9670;&nbsp;</a></span>successBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void successBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a success box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Success boxes start with "&lt;S&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+
+</div>
+</div>
+<a id="aa78e2e87fff9b64ca032a5b1c7054081" name="aa78e2e87fff9b64ca032a5b1c7054081"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa78e2e87fff9b64ca032a5b1c7054081">&#9670;&nbsp;</a></span>successSubBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void successSubBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a success box as a sub box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Success boxes start with "&lt;S&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6" title="Semi-internal function that prints the spacing for sub boxes.">_printSubBoxSpacing()</a> </dd></dl>
+
+</div>
+</div>
+<a id="a6c90056ede686f0319d0fb0a408d02e5" name="a6c90056ede686f0319d0fb0a408d02e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c90056ede686f0319d0fb0a408d02e5">&#9670;&nbsp;</a></span>table()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void table </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>startNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>columns</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>items</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a string as a table. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">startNumber</td><td>The number by which column and row enumeration begins </td></tr>
+ <tr><td class="paramname">columns</td><td>How many columns the table should have </td></tr>
+ <tr><td class="paramname">items</td><td>C-style string, each cell is a single character from the string</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints a string as a grid/table of characters from top to bottom, left to right. The first character is on the top left, the last one is on the bottom right.</p>
+<p >Table is printed until a terminating zero is encountered. The rows are "calculated" from the columns count and the items length. </p>
+
+</div>
+</div>
+<a id="a24a3fa9050ea032396c213ea85a1de0b" name="a24a3fa9050ea032396c213ea85a1de0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24a3fa9050ea032396c213ea85a1de0b">&#9670;&nbsp;</a></span>titleBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void titleBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>title</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a title box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">title</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Prints the title, surrounded by "===". </p>
+
+</div>
+</div>
+<a id="a52222c9ff8739ef87c89df899deb5052" name="a52222c9ff8739ef87c89df899deb5052"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a52222c9ff8739ef87c89df899deb5052">&#9670;&nbsp;</a></span>warningBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void warningBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a warning box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Warning boxes start with "&lt;W&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+
+</div>
+</div>
+<a id="a22f8b3135115d1b9fca09eea98dc6d92" name="a22f8b3135115d1b9fca09eea98dc6d92"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a22f8b3135115d1b9fca09eea98dc6d92">&#9670;&nbsp;</a></span>warningSubBox()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void warningSubBox </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prints a warning box as a sub box. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, there are no size checks so it could wrap</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Warning boxes start with "&lt;W&gt;" and print the message.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Success/Warning/Error boxes start with "&lt;C&gt;" where C is an appropriate character. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6" title="Semi-internal function that prints the spacing for sub boxes.">_printSubBoxSpacing()</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp_source.html b/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp_source.html
new file mode 100644
index 0000000..6d1f211
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/Toolbox_8hpp_source.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface/Toolbox.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Toolbox.hpp</div></div>
+</div><!--header-->
+<div class="contents">
+<a href="Toolbox_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef HEADER_CONSOLEINTERFACE_TOOLBOX</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define HEADER_CONSOLEINTERFACE_TOOLBOX</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#define MAX_LINE_WIDTH 1024</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>();</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">titleBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* title);</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">subTitleBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* title);</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">successBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">successSubBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">warningBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">warningSubBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">errorBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">errorSubBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message);</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">inputLineBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* label, <span class="keywordtype">char</span>* output, <span class="keywordtype">unsigned</span> maxWidth, <span class="keywordtype">bool</span> ignore = <span class="keyword">true</span>);</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">inputLineSubBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* label, <span class="keywordtype">char</span>* output, <span class="keywordtype">unsigned</span> maxWidth, <span class="keywordtype">bool</span> ignore = <span class="keyword">true</span>);</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">pressEnterToContinue</a>(<span class="keywordtype">bool</span> ignore = <span class="keyword">true</span>);</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">resetOrderedList</a>(<span class="keywordtype">int</span> starter = 1);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">table</a>(<span class="keywordtype">unsigned</span> startNumber, <span class="keywordtype">unsigned</span> columns, <span class="keyword">const</span> <span class="keywordtype">char</span>* items);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">_printSubBoxSpacing</a>();</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">_printInputBoxLabel</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* label);</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">_printOrderedListBeginning</a>();</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787"> 58</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(T* storage) {</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> std::cin &gt;&gt; storage;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>}</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0"> 64</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a>(T&amp; storage) {</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> std::cin &gt;&gt; storage;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>}</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73"> 70</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a>(<span class="keyword">const</span> T* item) {</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> std::cout &lt;&lt; item;</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e"> 76</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a>(<span class="keyword">const</span> T&amp; item) {</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> std::cout &lt;&lt; item;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>}</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81"> 82</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a>(<span class="keyword">const</span> T* item) {</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> std::cout &lt;&lt; item &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa"> 88</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a>(<span class="keyword">const</span> T&amp; item) {</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> std::cout &lt;&lt; item &lt;&lt; std::endl;</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>}</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114"> 94</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114">printOrderedListElem</a>(<span class="keyword">const</span> T&amp; elem) {</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_function" href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">_printOrderedListBeginning</a>();</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_function" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a>(elem);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e"> 101</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e">inputBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* label, T* output) {</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_function" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">_printInputBoxLabel</a>(label);</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> std::cin &gt;&gt; *output;</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f"> 109</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f">inputSubBox</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* label, T* output) {</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_function" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">_printSubBoxSpacing</a>();</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_function" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">_printInputBoxLabel</a>(label);</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> std::cin &gt;&gt; *output;</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>}</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aToolbox_8hpp_html_a148d9d6b8b15bbfc2b1f4cdb16c2ee81"><div class="ttname"><a href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">printLine</a></div><div class="ttdeci">void printLine(const T *item)</div><div class="ttdoc">Prints given item and an endline character.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:82</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a22f8b3135115d1b9fca09eea98dc6d92"><div class="ttname"><a href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">warningSubBox</a></div><div class="ttdeci">void warningSubBox(const char *message)</div><div class="ttdoc">Prints a warning box as a sub box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:74</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a24a3fa9050ea032396c213ea85a1de0b"><div class="ttname"><a href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">titleBox</a></div><div class="ttdeci">void titleBox(const char *title)</div><div class="ttdoc">Prints a title box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:27</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a27b565355e018d36b6ce47169cc26fad"><div class="ttname"><a href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">_printOrderedListBeginning</a></div><div class="ttdeci">void _printOrderedListBeginning()</div><div class="ttdoc">Semi-internal function that prints the latest ordered list index.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:162</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a3c9098dc2b305107367c56ded5dec787"><div class="ttname"><a href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">read</a></div><div class="ttdeci">void read(T *storage)</div><div class="ttdoc">Reads user input and stores it.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:58</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a4456d10f7e141c4fc1a29aff4ad29108"><div class="ttname"><a href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">resetOrderedList</a></div><div class="ttdeci">void resetOrderedList(int starter=1)</div><div class="ttdoc">Resets the ordered list starting number.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:170</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a52222c9ff8739ef87c89df899deb5052"><div class="ttname"><a href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">warningBox</a></div><div class="ttdeci">void warningBox(const char *message)</div><div class="ttdoc">Prints a warning box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:66</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a5ca1093462d3266fceb8522e144c1e73"><div class="ttname"><a href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">print</a></div><div class="ttdeci">void print(const T *item)</div><div class="ttdoc">Prints given item.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:70</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a6c82ac6987703376c17c74a81fb0a91a"><div class="ttname"><a href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">successBox</a></div><div class="ttdeci">void successBox(const char *message)</div><div class="ttdoc">Prints a success box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:47</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a6c90056ede686f0319d0fb0a408d02e5"><div class="ttname"><a href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">table</a></div><div class="ttdeci">void table(unsigned startNumber, unsigned columns, const char *items)</div><div class="ttdoc">Prints a string as a table.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:208</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a92da1c5f0023cd5c4809d9c1f682e92f"><div class="ttname"><a href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f">inputSubBox</a></div><div class="ttdeci">void inputSubBox(const char *label, T *output)</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:109</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_a9d709a3db7de05368cc38671c896bb2d"><div class="ttname"><a href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">errorBox</a></div><div class="ttdeci">void errorBox(const char *message)</div><div class="ttdoc">Prints an error box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:85</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_aa49b4d5a7b00249bc1fb08eec5e3aeaf"><div class="ttname"><a href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">inputLineBox</a></div><div class="ttdeci">void inputLineBox(const char *label, char *output, unsigned maxWidth, bool ignore=true)</div><div class="ttdoc">Prints label, gets a whole line of input and stores it to output.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:125</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_aa78e2e87fff9b64ca032a5b1c7054081"><div class="ttname"><a href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">successSubBox</a></div><div class="ttdeci">void successSubBox(const char *message)</div><div class="ttdoc">Prints a success box as a sub box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:55</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ab3ce613add75d2385c8e1424527d2c3d"><div class="ttname"><a href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">_printInputBoxLabel</a></div><div class="ttdeci">void _printInputBoxLabel(const char *label)</div><div class="ttdoc">Semi-internal function that prints the label of an input box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:107</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ab7651f0a92f8d0d0be3d63c1045eee1e"><div class="ttname"><a href="Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e">inputBox</a></div><div class="ttdeci">void inputBox(const char *label, T *output)</div><div class="ttdoc">Prints a label and then reads user input and stores it.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:101</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_abe3a449632ee6d40eb59101dd2d2f114"><div class="ttname"><a href="Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114">printOrderedListElem</a></div><div class="ttdeci">void printOrderedListElem(const T &amp;elem)</div><div class="ttdoc">Prints the element as the latest list item.</div><div class="ttdef"><b>Definition:</b> Toolbox.hpp:94</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ac17b91efad13dbe9e10e5550ee4707c6"><div class="ttname"><a href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">_printSubBoxSpacing</a></div><div class="ttdeci">void _printSubBoxSpacing()</div><div class="ttdoc">Semi-internal function that prints the spacing for sub boxes.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:17</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ac7f54319bf4e70a46e3155ae1b39e832"><div class="ttname"><a href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">pressEnterToContinue</a></div><div class="ttdeci">void pressEnterToContinue(bool ignore=true)</div><div class="ttdoc">Waits for user to press enter.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:145</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ac8bb3912a3ce86b15842e79d0b421204"><div class="ttname"><a href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears the console screen.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:10</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ad2c61ce27ec52d14e427d6f6e93d38f2"><div class="ttname"><a href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">inputLineSubBox</a></div><div class="ttdeci">void inputLineSubBox(const char *label, char *output, unsigned maxWidth, bool ignore=true)</div><div class="ttdoc">Prints label as a sub box, gets a whole line of input and stores it to output.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:134</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ad557e4a1167be4e0c57fe530ce74a120"><div class="ttname"><a href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">subTitleBox</a></div><div class="ttdeci">void subTitleBox(const char *title)</div><div class="ttdoc">Prints a title sub box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:35</div></div>
+<div class="ttc" id="aToolbox_8hpp_html_ade748c3f15151748c9f978097715d2e7"><div class="ttname"><a href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">errorSubBox</a></div><div class="ttdeci">void errorSubBox(const char *message)</div><div class="ttdoc">Prints an error box as a sub box.</div><div class="ttdef"><b>Definition:</b> Toolbox.cpp:93</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/annotated.html b/Year 1/Object-oriented Programming/Project 1/docs/html/annotated.html
new file mode 100644
index 0000000..9ac9b2c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/annotated.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCommand.html" target="_self">Command</a></td><td class="desc">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a> </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDate.html" target="_self">Date</a></td><td class="desc">Stores a day, month and year </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEvent.html" target="_self">Event</a></td><td class="desc">Stores an event's hall, name, date, bought tickets and reservations </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEventService.html" target="_self">EventService</a></td><td class="desc">Each <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> stores all events and a pointer to <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHall.html" target="_self">Hall</a></td><td class="desc">Each hall contains a number, rows and seats per row </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHallService.html" target="_self">HallService</a></td><td class="desc">Each <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> stores all halls </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List</a></td><td class="desc">Templated class that stores an array of elements in dynamic memory </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMenu.html" target="_self">Menu</a></td><td class="desc">Handles navigation between multiple commands </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList</a></td><td class="desc">Inherits <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, but contains it's elements in a sorted manner </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classReservation.html" target="_self">Reservation</a></td><td class="desc">Each Reservations contains a ticket, a password and a note </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTicket.html" target="_self">Ticket</a></td><td class="desc">Each <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> contains a row and a seat number </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/bc_s.png b/Year 1/Object-oriented Programming/Project 1/docs/html/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/bc_s.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/bdwn.png b/Year 1/Object-oriented Programming/Project 1/docs/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/bdwn.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand-members.html
new file mode 100644
index 0000000..2885b32
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Command Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCommand.html">Command</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a>()</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCommand.html#a4e22ce5bdf74f9c975494dddd280884a">Command</a>(const char *nameInMenu, void(*exec)())</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_nameInMenu</b>() const (defined in <a class="el" href="classCommand.html">Command</a>)</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">run</a>() const</td><td class="entry"><a class="el" href="classCommand.html">Command</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand.html
new file mode 100644
index 0000000..a6504b1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classCommand.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Command Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classCommand-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Command Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a>
+ <a href="classCommand.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Command_8h_source.html">Command.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a18df2d81039392daeb0b78c346a70537"><td class="memItemLeft" align="right" valign="top"><a id="a18df2d81039392daeb0b78c346a70537" name="a18df2d81039392daeb0b78c346a70537"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Command</b> ()</td></tr>
+<tr class="memdesc:a18df2d81039392daeb0b78c346a70537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leaves name empty and exec function pointer to nullptr. <br /></td></tr>
+<tr class="separator:a18df2d81039392daeb0b78c346a70537"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e22ce5bdf74f9c975494dddd280884a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html#a4e22ce5bdf74f9c975494dddd280884a">Command</a> (const char *nameInMenu, void(*exec)())</td></tr>
+<tr class="memdesc:a4e22ce5bdf74f9c975494dddd280884a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies contents of nameInMenu and stores exec. <a href="classCommand.html#a4e22ce5bdf74f9c975494dddd280884a">More...</a><br /></td></tr>
+<tr class="separator:a4e22ce5bdf74f9c975494dddd280884a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44689093b812bfc97b2787c2ba0303ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">run</a> () const</td></tr>
+<tr class="memdesc:a44689093b812bfc97b2787c2ba0303ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes the stored function pointer. <a href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">More...</a><br /></td></tr>
+<tr class="separator:a44689093b812bfc97b2787c2ba0303ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06adf2e6710dd57506449f0997f467c0"><td class="memItemLeft" align="right" valign="top"><a id="a06adf2e6710dd57506449f0997f467c0" name="a06adf2e6710dd57506449f0997f467c0"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_nameInMenu</b> () const</td></tr>
+<tr class="separator:a06adf2e6710dd57506449f0997f467c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a> </p>
+<p ><a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> uses this class for a more generic implementation of it's navigate function. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a4e22ce5bdf74f9c975494dddd280884a" name="a4e22ce5bdf74f9c975494dddd280884a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4e22ce5bdf74f9c975494dddd280884a">&#9670;&nbsp;</a></span>Command()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Command::Command </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>nameInMenu</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void(*)()&#160;</td>
+ <td class="paramname"><em>exec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies contents of nameInMenu and stores exec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">nameInMenu</td><td>C-style string, class stores at most 255 characters (last character is always terminating zero) </td></tr>
+ <tr><td class="paramname">exec</td><td>Function pointer that will be executed when <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a> is called. Can be nullptr. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a44689093b812bfc97b2787c2ba0303ce" name="a44689093b812bfc97b2787c2ba0303ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44689093b812bfc97b2787c2ba0303ce">&#9670;&nbsp;</a></span>run()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Command::run </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Executes the stored function pointer. </p>
+<p >Executes the stored function pointer, when it's not nullptr. Otherwise does nothing. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/ConsoleInterface/<a class="el" href="Command_8h_source.html">Command.h</a></li>
+<li>src/Generic/ConsoleInterface/Command.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classDate-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classDate-members.html
new file mode 100644
index 0000000..3d398f4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classDate-members.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Date Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classDate.html">Date</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">compare</a>(const Date &amp;other) const</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">createString</a>() const</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a>()</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#a99d57b698afdacd18f5a414cdc7524fd">Date</a>(const char *str)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a87b3c3ede7dee726e8779eebfcc0a299">Date</a>(unsigned short day, unsigned short month, unsigned short year)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#a2e4dc4249f8cccd40acc5950b42e1339">get_day</a>() const</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc">get_month</a>() const</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#a025aae2b290ba357e049d054085f91e3">get_year</a>() const</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">set_day</a>(unsigned short day)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#ad0a591a557ddde0871389c3d716e6044">set_month</a>(unsigned short month)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">set_year</a>(unsigned short year)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classDate.html#a9c728831f35f27abf3348132a13b7844">write</a>(std::ostream &amp;ostr)</td><td class="entry"><a class="el" href="classDate.html">Date</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classDate.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classDate.html
new file mode 100644
index 0000000..b37fe98
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classDate.html
@@ -0,0 +1,371 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Date Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classDate-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Date Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores a day, month and year.
+ <a href="classDate.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Date_8h_source.html">Date.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4e59ed4ba66eec61c27460c5d09fa1bd"><td class="memItemLeft" align="right" valign="top"><a id="a4e59ed4ba66eec61c27460c5d09fa1bd" name="a4e59ed4ba66eec61c27460c5d09fa1bd"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Date</b> ()</td></tr>
+<tr class="memdesc:a4e59ed4ba66eec61c27460c5d09fa1bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets date as 01 May 2022. <br /></td></tr>
+<tr class="separator:a4e59ed4ba66eec61c27460c5d09fa1bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99d57b698afdacd18f5a414cdc7524fd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a99d57b698afdacd18f5a414cdc7524fd">Date</a> (const char *str)</td></tr>
+<tr class="memdesc:a99d57b698afdacd18f5a414cdc7524fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses string. <a href="classDate.html#a99d57b698afdacd18f5a414cdc7524fd">More...</a><br /></td></tr>
+<tr class="separator:a99d57b698afdacd18f5a414cdc7524fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87b3c3ede7dee726e8779eebfcc0a299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a87b3c3ede7dee726e8779eebfcc0a299">Date</a> (unsigned short day, unsigned short month, unsigned short year)</td></tr>
+<tr class="memdesc:a87b3c3ede7dee726e8779eebfcc0a299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets day, month and year. <a href="classDate.html#a87b3c3ede7dee726e8779eebfcc0a299">More...</a><br /></td></tr>
+<tr class="separator:a87b3c3ede7dee726e8779eebfcc0a299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e4dc4249f8cccd40acc5950b42e1339"><td class="memItemLeft" align="right" valign="top"><a id="a2e4dc4249f8cccd40acc5950b42e1339" name="a2e4dc4249f8cccd40acc5950b42e1339"></a>
+unsigned short&#160;</td><td class="memItemRight" valign="bottom"><b>get_day</b> () const</td></tr>
+<tr class="memdesc:a2e4dc4249f8cccd40acc5950b42e1339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the day. <br /></td></tr>
+<tr class="separator:a2e4dc4249f8cccd40acc5950b42e1339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acaf0c3ee1b2d36edf4f870ddd8acce08"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">set_day</a> (unsigned short day)</td></tr>
+<tr class="memdesc:acaf0c3ee1b2d36edf4f870ddd8acce08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the day. <a href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">More...</a><br /></td></tr>
+<tr class="separator:acaf0c3ee1b2d36edf4f870ddd8acce08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79ebbf3cb46f892604dc79ffc82bcfcc"><td class="memItemLeft" align="right" valign="top"><a id="a79ebbf3cb46f892604dc79ffc82bcfcc" name="a79ebbf3cb46f892604dc79ffc82bcfcc"></a>
+unsigned short&#160;</td><td class="memItemRight" valign="bottom"><b>get_month</b> () const</td></tr>
+<tr class="memdesc:a79ebbf3cb46f892604dc79ffc82bcfcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the month. <br /></td></tr>
+<tr class="separator:a79ebbf3cb46f892604dc79ffc82bcfcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a591a557ddde0871389c3d716e6044"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#ad0a591a557ddde0871389c3d716e6044">set_month</a> (unsigned short month)</td></tr>
+<tr class="memdesc:ad0a591a557ddde0871389c3d716e6044"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the month. <a href="classDate.html#ad0a591a557ddde0871389c3d716e6044">More...</a><br /></td></tr>
+<tr class="separator:ad0a591a557ddde0871389c3d716e6044"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a025aae2b290ba357e049d054085f91e3"><td class="memItemLeft" align="right" valign="top"><a id="a025aae2b290ba357e049d054085f91e3" name="a025aae2b290ba357e049d054085f91e3"></a>
+unsigned short&#160;</td><td class="memItemRight" valign="bottom"><b>get_year</b> () const</td></tr>
+<tr class="memdesc:a025aae2b290ba357e049d054085f91e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the year. <br /></td></tr>
+<tr class="separator:a025aae2b290ba357e049d054085f91e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a0f3124e1850cd9f1514ebffcdd0cae"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">set_year</a> (unsigned short year)</td></tr>
+<tr class="memdesc:a6a0f3124e1850cd9f1514ebffcdd0cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the year. <a href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">More...</a><br /></td></tr>
+<tr class="separator:a6a0f3124e1850cd9f1514ebffcdd0cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e00ace9f8c923c96188bd76f1e064c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">createString</a> () const</td></tr>
+<tr class="memdesc:a6e00ace9f8c923c96188bd76f1e064c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the date as a <a class="el" href="classString.html">String</a> object. <a href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">More...</a><br /></td></tr>
+<tr class="separator:a6e00ace9f8c923c96188bd76f1e064c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a982c0c9098056aa33c5cbc9eba093852"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:a982c0c9098056aa33c5cbc9eba093852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads date from stream. <a href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">More...</a><br /></td></tr>
+<tr class="separator:a982c0c9098056aa33c5cbc9eba093852"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c728831f35f27abf3348132a13b7844"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a9c728831f35f27abf3348132a13b7844">write</a> (std::ostream &amp;ostr)</td></tr>
+<tr class="memdesc:a9c728831f35f27abf3348132a13b7844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes date to stream. <a href="classDate.html#a9c728831f35f27abf3348132a13b7844">More...</a><br /></td></tr>
+<tr class="separator:a9c728831f35f27abf3348132a13b7844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cda588bf2f65b84639303a1aa1105be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">compare</a> (const <a class="el" href="classDate.html">Date</a> &amp;other) const</td></tr>
+<tr class="memdesc:a3cda588bf2f65b84639303a1aa1105be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two dates. <a href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">More...</a><br /></td></tr>
+<tr class="separator:a3cda588bf2f65b84639303a1aa1105be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores a day, month and year. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a99d57b698afdacd18f5a414cdc7524fd" name="a99d57b698afdacd18f5a414cdc7524fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a99d57b698afdacd18f5a414cdc7524fd">&#9670;&nbsp;</a></span>Date() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Date::Date </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Parses string. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">str</td><td>C-style string</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Values are initialized with zeroes. Then it parses the string:</p>
+<p >Skips spaces, saves day with atoi, skips two characters, skips spaces, saves month with atoi, skips two characters, skips spaces, saves year with atoi.</p>
+<p >Values are validated with setters. You should always have spaces between day, month and year and no non-numeric characters between them.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>If there are non-numeric characters, as per atoi() spec, the appropriate property is zero. </dd></dl>
+
+</div>
+</div>
+<a id="a87b3c3ede7dee726e8779eebfcc0a299" name="a87b3c3ede7dee726e8779eebfcc0a299"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a87b3c3ede7dee726e8779eebfcc0a299">&#9670;&nbsp;</a></span>Date() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Date::Date </td>
+ <td>(</td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>day</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>month</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>year</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets day, month and year. </p>
+<p >Initializes values with zeroes and then uses setters to save the function arguments. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a3cda588bf2f65b84639303a1aa1105be" name="a3cda588bf2f65b84639303a1aa1105be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3cda588bf2f65b84639303a1aa1105be">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Date::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two dates. </p>
+<dl class="section return"><dt>Returns</dt><dd>-1 if this &lt; other, 1 if this &gt; other, 0 if this == other </dd></dl>
+
+</div>
+</div>
+<a id="a6e00ace9f8c923c96188bd76f1e064c2" name="a6e00ace9f8c923c96188bd76f1e064c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e00ace9f8c923c96188bd76f1e064c2">&#9670;&nbsp;</a></span>createString()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> Date::createString </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the date as a <a class="el" href="classString.html">String</a> object. </p>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classString.html">String</a> object in the format "day.month.year"</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Currently there isn't any way to change the formatting </dd></dl>
+
+</div>
+</div>
+<a id="a982c0c9098056aa33c5cbc9eba093852" name="a982c0c9098056aa33c5cbc9eba093852"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a982c0c9098056aa33c5cbc9eba093852">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Date::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads date from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852" title="Reads date from stream.">read()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="acaf0c3ee1b2d36edf4f870ddd8acce08" name="acaf0c3ee1b2d36edf4f870ddd8acce08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acaf0c3ee1b2d36edf4f870ddd8acce08">&#9670;&nbsp;</a></span>set_day()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Date::set_day </td>
+ <td>(</td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>newDay</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the day. </p>
+<dl class="section return"><dt>Returns</dt><dd>Whether newDay was saved or not</dd></dl>
+<p>If newDay is equal to 0, or is more than the appropriate days in the month, the day isn't set. </p>
+
+</div>
+</div>
+<a id="ad0a591a557ddde0871389c3d716e6044" name="ad0a591a557ddde0871389c3d716e6044"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0a591a557ddde0871389c3d716e6044">&#9670;&nbsp;</a></span>set_month()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Date::set_month </td>
+ <td>(</td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>newMonth</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the month. </p>
+<dl class="section return"><dt>Returns</dt><dd>Whether newMonth was saved or not</dd></dl>
+<p>If newMonth is equal to 0 or is more than 12, the month isn't set. </p>
+
+</div>
+</div>
+<a id="a6a0f3124e1850cd9f1514ebffcdd0cae" name="a6a0f3124e1850cd9f1514ebffcdd0cae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6a0f3124e1850cd9f1514ebffcdd0cae">&#9670;&nbsp;</a></span>set_year()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Date::set_year </td>
+ <td>(</td>
+ <td class="paramtype">unsigned short&#160;</td>
+ <td class="paramname"><em>newYear</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Sets the year. </p>
+<dl class="section return"><dt>Returns</dt><dd>Whether year was saved or not</dd></dl>
+<p>Year isn't set when newYear is zero </p>
+
+</div>
+</div>
+<a id="a9c728831f35f27abf3348132a13b7844" name="a9c728831f35f27abf3348132a13b7844"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c728831f35f27abf3348132a13b7844">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Date::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes date to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classDate.html#a9c728831f35f27abf3348132a13b7844" title="Writes date to stream.">write()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/Date/<a class="el" href="Date_8h_source.html">Date.h</a></li>
+<li>src/Generic/Date/Date.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent-members.html
new file mode 100644
index 0000000..e092374
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Event Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classEvent.html">Event</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">compare</a>(const Event &amp;other)</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event</a>()</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#a6ecbd134ada51629f30b2d1cf352d88f">Event</a>(const Hall &amp;hall, String name, Date date)</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293">get_date</a>() const</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#ae3023ae2c487f46b3235f67554e58615">get_hall</a>() const</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a7bf717630c32826689df41e0bb3ecbce">get_name</a>() const</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">get_reservations</a>()</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a7af1c5d57d41701e6411b7c251bf904e">get_reservations</a>() const</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">get_tickets</a>()</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a1f914fc91044a5c10d71f31b8e712c46">get_tickets</a>() const</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEvent.html#a05a302aa998977c30950987c07f0fbba">write</a>(std::ostream &amp;ostr)</td><td class="entry"><a class="el" href="classEvent.html">Event</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent.html
new file mode 100644
index 0000000..e190168
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classEvent.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Event Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classEvent-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Event Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Stores an event's hall, name, date, bought tickets and reservations.
+ <a href="classEvent.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Event_8h_source.html">Event.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5a40dd4708297f7031e29b39e039ae10"><td class="memItemLeft" align="right" valign="top"><a id="a5a40dd4708297f7031e29b39e039ae10" name="a5a40dd4708297f7031e29b39e039ae10"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Event</b> ()</td></tr>
+<tr class="memdesc:a5a40dd4708297f7031e29b39e039ae10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls default constructors on data. <br /></td></tr>
+<tr class="separator:a5a40dd4708297f7031e29b39e039ae10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ecbd134ada51629f30b2d1cf352d88f"><td class="memItemLeft" align="right" valign="top"><a id="a6ecbd134ada51629f30b2d1cf352d88f" name="a6ecbd134ada51629f30b2d1cf352d88f"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Event</b> (const <a class="el" href="classHall.html">Hall</a> &amp;hall, <a class="el" href="classString.html">String</a> name, <a class="el" href="classDate.html">Date</a> date)</td></tr>
+<tr class="memdesc:a6ecbd134ada51629f30b2d1cf352d88f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies given hall and sets name and date. <br /></td></tr>
+<tr class="separator:a6ecbd134ada51629f30b2d1cf352d88f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3023ae2c487f46b3235f67554e58615"><td class="memItemLeft" align="right" valign="top"><a id="ae3023ae2c487f46b3235f67554e58615" name="ae3023ae2c487f46b3235f67554e58615"></a>
+const <a class="el" href="classHall.html">Hall</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_hall</b> () const</td></tr>
+<tr class="memdesc:ae3023ae2c487f46b3235f67554e58615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> in which event will be held. <br /></td></tr>
+<tr class="separator:ae3023ae2c487f46b3235f67554e58615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bf717630c32826689df41e0bb3ecbce"><td class="memItemLeft" align="right" valign="top"><a id="a7bf717630c32826689df41e0bb3ecbce" name="a7bf717630c32826689df41e0bb3ecbce"></a>
+const <a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> () const</td></tr>
+<tr class="memdesc:a7bf717630c32826689df41e0bb3ecbce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to name of event. <br /></td></tr>
+<tr class="separator:a7bf717630c32826689df41e0bb3ecbce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a222904d44dfaf3f1f96e2190c5ea4293"><td class="memItemLeft" align="right" valign="top"><a id="a222904d44dfaf3f1f96e2190c5ea4293" name="a222904d44dfaf3f1f96e2190c5ea4293"></a>
+const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_date</b> () const</td></tr>
+<tr class="memdesc:a222904d44dfaf3f1f96e2190c5ea4293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to date on which event will be held. <br /></td></tr>
+<tr class="separator:a222904d44dfaf3f1f96e2190c5ea4293"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16a84fced8e02f756232c54c27bb22ad"><td class="memItemLeft" align="right" valign="top"><a id="a16a84fced8e02f756232c54c27bb22ad" name="a16a84fced8e02f756232c54c27bb22ad"></a>
+<a class="el" href="classOrderedList.html">OrderedList</a>&lt; <a class="el" href="classTicket.html">Ticket</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_tickets</b> ()</td></tr>
+<tr class="memdesc:a16a84fced8e02f756232c54c27bb22ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to bought tickets. <br /></td></tr>
+<tr class="separator:a16a84fced8e02f756232c54c27bb22ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f914fc91044a5c10d71f31b8e712c46"><td class="memItemLeft" align="right" valign="top"><a id="a1f914fc91044a5c10d71f31b8e712c46" name="a1f914fc91044a5c10d71f31b8e712c46"></a>
+const <a class="el" href="classOrderedList.html">OrderedList</a>&lt; <a class="el" href="classTicket.html">Ticket</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_tickets</b> () const</td></tr>
+<tr class="memdesc:a1f914fc91044a5c10d71f31b8e712c46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to bought tickets. <br /></td></tr>
+<tr class="separator:a1f914fc91044a5c10d71f31b8e712c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43c6b2bddd42435eb6c8cd0f15d75c6f"><td class="memItemLeft" align="right" valign="top"><a id="a43c6b2bddd42435eb6c8cd0f15d75c6f" name="a43c6b2bddd42435eb6c8cd0f15d75c6f"></a>
+<a class="el" href="classOrderedList.html">OrderedList</a>&lt; <a class="el" href="classReservation.html">Reservation</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_reservations</b> ()</td></tr>
+<tr class="memdesc:a43c6b2bddd42435eb6c8cd0f15d75c6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to reservations. <br /></td></tr>
+<tr class="separator:a43c6b2bddd42435eb6c8cd0f15d75c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7af1c5d57d41701e6411b7c251bf904e"><td class="memItemLeft" align="right" valign="top"><a id="a7af1c5d57d41701e6411b7c251bf904e" name="a7af1c5d57d41701e6411b7c251bf904e"></a>
+const <a class="el" href="classOrderedList.html">OrderedList</a>&lt; <a class="el" href="classReservation.html">Reservation</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_reservations</b> () const</td></tr>
+<tr class="memdesc:a7af1c5d57d41701e6411b7c251bf904e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to reservations. <br /></td></tr>
+<tr class="separator:a7af1c5d57d41701e6411b7c251bf904e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae58d2ed716836adcdacaeec4dd08c1cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:ae58d2ed716836adcdacaeec4dd08c1cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> from stream. <a href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">More...</a><br /></td></tr>
+<tr class="separator:ae58d2ed716836adcdacaeec4dd08c1cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05a302aa998977c30950987c07f0fbba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEvent.html#a05a302aa998977c30950987c07f0fbba">write</a> (std::ostream &amp;ostr)</td></tr>
+<tr class="memdesc:a05a302aa998977c30950987c07f0fbba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> to stream. <a href="classEvent.html#a05a302aa998977c30950987c07f0fbba">More...</a><br /></td></tr>
+<tr class="separator:a05a302aa998977c30950987c07f0fbba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5c84a902db8f29f8b8737026011f1f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">compare</a> (const <a class="el" href="classEvent.html">Event</a> &amp;other)</td></tr>
+<tr class="memdesc:af5c84a902db8f29f8b8737026011f1f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two events. <a href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">More...</a><br /></td></tr>
+<tr class="separator:af5c84a902db8f29f8b8737026011f1f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Stores an event's hall, name, date, bought tickets and reservations. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="af5c84a902db8f29f8b8737026011f1f6" name="af5c84a902db8f29f8b8737026011f1f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5c84a902db8f29f8b8737026011f1f6">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Event::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classEvent.html">Event</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two events. </p>
+<dl class="section return"><dt>Returns</dt><dd>compare of halls, or if they are equal, compare of dates </dd></dl>
+
+</div>
+</div>
+<a id="ae58d2ed716836adcdacaeec4dd08c1cf" name="ae58d2ed716836adcdacaeec4dd08c1cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae58d2ed716836adcdacaeec4dd08c1cf">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Event::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf" title="Reads Event from stream.">read()</a> function). Stored types must have defined a <a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf" title="Reads Event from stream.">read()</a> function.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a05a302aa998977c30950987c07f0fbba" name="a05a302aa998977c30950987c07f0fbba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05a302aa998977c30950987c07f0fbba">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Event::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classEvent.html#a05a302aa998977c30950987c07f0fbba" title="Writes Event to stream.">write()</a> function). Stored types must have defined a <a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf" title="Reads Event from stream.">read()</a> function.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="Event_8h_source.html">Event.h</a></li>
+<li>src/Models/Event.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService-members.html
new file mode 100644
index 0000000..00e6112
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService-members.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">EventService Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classEventService.html">EventService</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">buyTicket</a>(const char *name, const Date &amp;date, const Ticket &amp;ticket, const char *password, String *reservationNoteOutput)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#ad0a204aca9cc8287f562f42916248e9e">buyTicket</a>(const char *name, const Date &amp;date, const Ticket &amp;ticket)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">cancelEvent</a>(const char *name, const Date &amp;date)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">cancelTicketReservation</a>(const char *name, const Date &amp;date, const Ticket &amp;ticket)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a7a21a5909116215e402254510d6d81d6">createEvent</a>(int hallNumber, const String &amp;name, const Date &amp;date)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">createSeatingString</a>(const char *name, const Date &amp;date, unsigned *seatsPerRow)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService</a>(const HallService *hs)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#af35cde4a05edfec88496772b6d0b1e37">EventService</a>(const HallService *hs, const Event *events, unsigned eventCount)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">load</a>()</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">queryInsufficientlyVisited</a>()</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">queryMostWatched</a>(unsigned topN)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">reportBoughtTickets</a>(int hallNumber, const Date &amp;start, const Date &amp;end, bool all=false)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">reportReservations</a>(const char *name, const Date &amp;date)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">reserveTicket</a>(const char *name, const Date &amp;date, const char *password, const char *note, const Ticket &amp;ticket)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">save</a>()</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">ticketIsReserved</a>(const char *name, const Date &amp;date, const Ticket &amp;ticket)</td><td class="entry"><a class="el" href="classEventService.html">EventService</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService.html
new file mode 100644
index 0000000..3cabe28
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classEventService.html
@@ -0,0 +1,678 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: EventService Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classEventService-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">EventService Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Each <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> stores all events and a pointer to <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>.
+ <a href="classEventService.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="EventService_8h_source.html">EventService.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a9b30bb95890abac259ba27b53cabe545"><td class="memItemLeft" align="right" valign="top"><a id="a9b30bb95890abac259ba27b53cabe545" name="a9b30bb95890abac259ba27b53cabe545"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>EventService</b> (const <a class="el" href="classHallService.html">HallService</a> *hs)</td></tr>
+<tr class="memdesc:a9b30bb95890abac259ba27b53cabe545"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> pointer and initializes events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. <br /></td></tr>
+<tr class="separator:a9b30bb95890abac259ba27b53cabe545"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af35cde4a05edfec88496772b6d0b1e37"><td class="memItemLeft" align="right" valign="top"><a id="af35cde4a05edfec88496772b6d0b1e37" name="af35cde4a05edfec88496772b6d0b1e37"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>EventService</b> (const <a class="el" href="classHallService.html">HallService</a> *hs, const <a class="el" href="classEvent.html">Event</a> *events, unsigned eventCount)</td></tr>
+<tr class="memdesc:af35cde4a05edfec88496772b6d0b1e37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> pointer and copies values from events into events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. <br /></td></tr>
+<tr class="separator:af35cde4a05edfec88496772b6d0b1e37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a21a5909116215e402254510d6d81d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a7a21a5909116215e402254510d6d81d6">createEvent</a> (int hallNumber, const <a class="el" href="classString.html">String</a> &amp;name, const <a class="el" href="classDate.html">Date</a> &amp;date)</td></tr>
+<tr class="memdesc:a7a21a5909116215e402254510d6d81d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>, with the given hallNumber, name and date. <a href="classEventService.html#a7a21a5909116215e402254510d6d81d6">More...</a><br /></td></tr>
+<tr class="separator:a7a21a5909116215e402254510d6d81d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7ea565af5ad78e84749558477ceaf26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">cancelEvent</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date)</td></tr>
+<tr class="memdesc:ac7ea565af5ad78e84749558477ceaf26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date. <a href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">More...</a><br /></td></tr>
+<tr class="separator:ac7ea565af5ad78e84749558477ceaf26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c0d2a05e2a3026044b9e13e6802fbdb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">reserveTicket</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, const char *password, const char *note, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:a3c0d2a05e2a3026044b9e13e6802fbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> for an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> by name and date. <a href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">More...</a><br /></td></tr>
+<tr class="separator:a3c0d2a05e2a3026044b9e13e6802fbdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6fd620de878f225f7c51bb0df6ea749"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">cancelTicketReservation</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:aa6fd620de878f225f7c51bb0df6ea749"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels a <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> for a ticket. <a href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">More...</a><br /></td></tr>
+<tr class="separator:aa6fd620de878f225f7c51bb0df6ea749"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1efbed6111da8e755d86b5bc9ada806"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">ticketIsReserved</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:ad1efbed6111da8e755d86b5bc9ada806"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether a ticket is a reserved or not. <a href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">More...</a><br /></td></tr>
+<tr class="separator:ad1efbed6111da8e755d86b5bc9ada806"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac447cac3e4974b9cc676d9bb90152979"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">buyTicket</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket, const char *password, <a class="el" href="classString.html">String</a> *reservationNoteOutput)</td></tr>
+<tr class="memdesc:ac447cac3e4974b9cc676d9bb90152979"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buys ticket, assuming it is reserved and stores the reservation note. <a href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">More...</a><br /></td></tr>
+<tr class="separator:ac447cac3e4974b9cc676d9bb90152979"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a204aca9cc8287f562f42916248e9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#ad0a204aca9cc8287f562f42916248e9e">buyTicket</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:ad0a204aca9cc8287f562f42916248e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buys ticket, assuming it isn't reserved. <a href="classEventService.html#ad0a204aca9cc8287f562f42916248e9e">More...</a><br /></td></tr>
+<tr class="separator:ad0a204aca9cc8287f562f42916248e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f4632e3beae5d24087047ab0223f85e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">createSeatingString</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date, unsigned *seatsPerRow)</td></tr>
+<tr class="memdesc:a7f4632e3beae5d24087047ab0223f85e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a special <a class="el" href="classString.html">String</a> for status of all seats in given <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> (by name and date) and returns seatsPerRow in given pointer. <a href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">More...</a><br /></td></tr>
+<tr class="separator:a7f4632e3beae5d24087047ab0223f85e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6700bd4f9da6d12a47812b9c8549556e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classList.html">List</a>&lt; <a class="el" href="classEvent.html">Event</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">queryMostWatched</a> (unsigned topN)</td></tr>
+<tr class="separator:a6700bd4f9da6d12a47812b9c8549556e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a814de3510f72150f2e54d44f8c8948bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classList.html">List</a>&lt; <a class="el" href="classEvent.html">Event</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">queryInsufficientlyVisited</a> ()</td></tr>
+<tr class="separator:a814de3510f72150f2e54d44f8c8948bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a277194aea79a2c9bf955b7706a20c54c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">reportReservations</a> (const char *name, const <a class="el" href="classDate.html">Date</a> &amp;date)</td></tr>
+<tr class="memdesc:a277194aea79a2c9bf955b7706a20c54c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a report that lists all Events (with given name and date) and their reserved tickets. <a href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">More...</a><br /></td></tr>
+<tr class="separator:a277194aea79a2c9bf955b7706a20c54c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc74fc6d44fca054bce8e54997c0cd3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">reportBoughtTickets</a> (int hallNumber, const <a class="el" href="classDate.html">Date</a> &amp;start, const <a class="el" href="classDate.html">Date</a> &amp;end, bool all=false)</td></tr>
+<tr class="memdesc:afc74fc6d44fca054bce8e54997c0cd3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a report that Lists all Events (with given name and date) and number of bought tickets. <a href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">More...</a><br /></td></tr>
+<tr class="separator:afc74fc6d44fca054bce8e54997c0cd3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1225c23dae83fa928da47113cd1c5617"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">load</a> ()</td></tr>
+<tr class="memdesc:a1225c23dae83fa928da47113cd1c5617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads Events from a database file. <a href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">More...</a><br /></td></tr>
+<tr class="separator:a1225c23dae83fa928da47113cd1c5617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5aac3df17ef30f84c1c28277c256ec32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">save</a> ()</td></tr>
+<tr class="memdesc:a5aac3df17ef30f84c1c28277c256ec32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves Events to a database file. <a href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">More...</a><br /></td></tr>
+<tr class="separator:a5aac3df17ef30f84c1c28277c256ec32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Each <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> stores all events and a pointer to <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="ad0a204aca9cc8287f562f42916248e9e" name="ad0a204aca9cc8287f562f42916248e9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0a204aca9cc8287f562f42916248e9e">&#9670;&nbsp;</a></span>buyTicket() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::buyTicket </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Buys ticket, assuming it isn't reserved. </p>
+<p >Calls buyTicket with <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a>, but sets password and noteOutput to nullptr. </p><dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+E_TicketAlreadyBought <b>if</b> A ticket for the given row and seat has already been bought </dd>
+<dd>
+E_TicketAlreadyReserved <b>if</b> The seat and row are reserved, but given password is nullptr </dd>
+<dd>
+E_WrongReservationPassword <b>if</b> The seat and row are reserved, but given password is incorrect </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="ac447cac3e4974b9cc676d9bb90152979" name="ac447cac3e4974b9cc676d9bb90152979"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac447cac3e4974b9cc676d9bb90152979">&#9670;&nbsp;</a></span>buyTicket() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::buyTicket </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>password</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classString.html">String</a> *&#160;</td>
+ <td class="paramname"><em>reservationNoteOutput</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Buys ticket, assuming it is reserved and stores the reservation note. </p>
+<dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+E_TicketAlreadyBought <b>if</b> A ticket for the given row and seat has already been bought </dd>
+<dd>
+E_TicketAlreadyReserved <b>if</b> The seat and row are reserved, but given password is nullptr </dd>
+<dd>
+E_WrongReservationPassword <b>if</b> The seat and row are reserved, but given password is incorrect </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="ac7ea565af5ad78e84749558477ceaf26" name="ac7ea565af5ad78e84749558477ceaf26"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7ea565af5ad78e84749558477ceaf26">&#9670;&nbsp;</a></span>cancelEvent()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::cancelEvent </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Cancels an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date. </p>
+<dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="aa6fd620de878f225f7c51bb0df6ea749" name="aa6fd620de878f225f7c51bb0df6ea749"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa6fd620de878f225f7c51bb0df6ea749">&#9670;&nbsp;</a></span>cancelTicketReservation()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::cancelTicketReservation </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Cancels a <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> for a ticket. </p>
+<p >Canceling a reservation doesn't require password and doesn't return the <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a>'s note</p>
+<dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+W_TicketHadNotBeenReserved <b><a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a></b> hadn't been reserved in the first place </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a7a21a5909116215e402254510d6d81d6" name="a7a21a5909116215e402254510d6d81d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7a21a5909116215e402254510d6d81d6">&#9670;&nbsp;</a></span>createEvent()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::createEvent </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>hallNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>, with the given hallNumber, name and date. </p>
+<p >Uses <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> pointer to get <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> from hallNumber </p><dl class="section return"><dt>Returns</dt><dd>E_HallDoesntExist <b>if</b> hallNumber doesn't correspond to any <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>, saved in <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> </dd>
+<dd>
+E_EventWillOverlap <b>if</b> <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>'s date overlaps with another event in the same <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a7f4632e3beae5d24087047ab0223f85e" name="a7f4632e3beae5d24087047ab0223f85e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f4632e3beae5d24087047ab0223f85e">&#9670;&nbsp;</a></span>createSeatingString()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> EventService::createSeatingString </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned *&#160;</td>
+ <td class="paramname"><em>seatsPerRow</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a special <a class="el" href="classString.html">String</a> for status of all seats in given <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> (by name and date) and returns seatsPerRow in given pointer. </p>
+<p >Each seat in the <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> of the <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> is represented by a single character, where 'R' means the seat is reserved, 'B' means the seat is bought and ' ' if it's neither.</p>
+<dl class="section return"><dt>Returns</dt><dd>Empty <a class="el" href="classString.html">String</a> <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+Proper <a class="el" href="classString.html">String</a> <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a1225c23dae83fa928da47113cd1c5617" name="a1225c23dae83fa928da47113cd1c5617"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1225c23dae83fa928da47113cd1c5617">&#9670;&nbsp;</a></span>load()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::load </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Loads Events from a database file. </p>
+<p >Looks for file named "eventsDatabse.fmits", which is just a binary file, and then reads it with the "read" function in events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> The files couldn't be opened/Doesn't exist </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a814de3510f72150f2e54d44f8c8948bb" name="a814de3510f72150f2e54d44f8c8948bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a814de3510f72150f2e54d44f8c8948bb">&#9670;&nbsp;</a></span>queryInsufficientlyVisited()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classList.html">List</a>&lt; <a class="el" href="classEvent.html">Event</a> &gt; EventService::queryInsufficientlyVisited </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> of events which have attracted sales of less than 10% of the <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>'s seat </dd></dl>
+
+</div>
+</div>
+<a id="a6700bd4f9da6d12a47812b9c8549556e" name="a6700bd4f9da6d12a47812b9c8549556e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6700bd4f9da6d12a47812b9c8549556e">&#9670;&nbsp;</a></span>queryMostWatched()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classList.html">List</a>&lt; <a class="el" href="classEvent.html">Event</a> &gt; EventService::queryMostWatched </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>topN</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> of topN most watched Events</dd></dl>
+<p>Events are sorted from index 0 to last index decreasingly by number of watchers. Watchers count for an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> is the amount of bought tickets.</p>
+<p >If there are less events than topN, all events are returned. </p>
+
+</div>
+</div>
+<a id="afc74fc6d44fca054bce8e54997c0cd3e" name="afc74fc6d44fca054bce8e54997c0cd3e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc74fc6d44fca054bce8e54997c0cd3e">&#9670;&nbsp;</a></span>reportBoughtTickets()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::reportBoughtTickets </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>hallNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>start</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>all</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a report that Lists all Events (with given name and date) and number of bought tickets. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">hallNumber</td><td>Number of the <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>'s <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> </td></tr>
+ <tr><td class="paramname">start</td><td>Starting <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a> from which to take Events </td></tr>
+ <tr><td class="paramname">end</td><td>Ending <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a> until which to take Evnets (including)</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Report is saved in a file named "boughtTickets.txt" in the current directory.</p>
+<p >All Events are inserted into the file with the &lt;&lt; operator and a setting of 0b01001.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> Report file couldn't be created </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a277194aea79a2c9bf955b7706a20c54c" name="a277194aea79a2c9bf955b7706a20c54c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a277194aea79a2c9bf955b7706a20c54c">&#9670;&nbsp;</a></span>reportReservations()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::reportReservations </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a report that lists all Events (with given name and date) and their reserved tickets. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>C-style string, if it is equal to "ALL", reservations from all Events on the given date will be reported </td></tr>
+ <tr><td class="paramname">date</td><td>If day, month and year are equal to 0, reservations from all dates will be reported</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Report is saved in a file in the current directory, named "report-NAME-DATE.txt", where NAME is the given name, and DATE is the given date or "ALL" if the date is 0/0/0</p>
+<p >All Events are inserted into the file with the &lt;&lt; operator and a setting of 0b00101.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> Report file couldn't be created </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a3c0d2a05e2a3026044b9e13e6802fbdb" name="a3c0d2a05e2a3026044b9e13e6802fbdb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3c0d2a05e2a3026044b9e13e6802fbdb">&#9670;&nbsp;</a></span>reserveTicket()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::reserveTicket </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>password</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>note</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> for an <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> by name and date. </p>
+<dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+E_TicketAlreadyBought <b>if</b> A ticket for the given row and seat has already been bought </dd>
+<dd>
+E_TicketAlreadyReserved <b>if</b> A reservation has already been placed on the given row and seat </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a5aac3df17ef30f84c1c28277c256ec32" name="a5aac3df17ef30f84c1c28277c256ec32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5aac3df17ef30f84c1c28277c256ec32">&#9670;&nbsp;</a></span>save()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::save </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Saves Events to a database file. </p>
+<p >Looks for file named "eventsDatabse.fmits", which is just a binary file, and then writes to it with the "write" function in events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> The files couldn't be opened </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="ad1efbed6111da8e755d86b5bc9ada806" name="ad1efbed6111da8e755d86b5bc9ada806"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad1efbed6111da8e755d86b5bc9ada806">&#9670;&nbsp;</a></span>ticketIsReserved()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> EventService::ticketIsReserved </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classDate.html">Date</a> &amp;&#160;</td>
+ <td class="paramname"><em>date</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>ticket</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Whether a ticket is a reserved or not. </p>
+<dl class="section return"><dt>Returns</dt><dd>E_EventDoesNotExist <b>if</b> No <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> with the given name and date exists </dd>
+<dd>
+W_TicketHadNotBeenReserved <b><a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a></b> hadn't been reserved in the first place </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Services/<a class="el" href="EventService_8h_source.html">EventService.h</a></li>
+<li>src/Services/EventService.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classHall-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classHall-members.html
new file mode 100644
index 0000000..bdfb3f2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classHall-members.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Hall Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classHall.html">Hall</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">compare</a>(const Hall &amp;other) const</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHall.html#a84186aee50631f25b214f18f7b0dc178">get_number</a>() const</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2">get_rows</a>() const</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHall.html#a42e1cd716086d8a42a627e00cde17a7e">get_seatsPerRow</a>() const</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a>()</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHall.html#af88f012be2e7671366e10d4e154a8d8f">Hall</a>(int number)</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHall.html#ab93a2ca8463f3b3d398374a6efea4c71">Hall</a>(int number, unsigned rows, unsigned seatsPerRow)</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHall.html#acef974f302d8131ef4608e15f96c2df9">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classHall.html">Hall</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classHall.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classHall.html
new file mode 100644
index 0000000..2d9b2d2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classHall.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Hall Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classHall-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Hall Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Each hall contains a number, rows and seats per row.
+ <a href="classHall.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Hall_8h_source.html">Hall.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a122ed8085be305339c89cadb3e360b86"><td class="memItemLeft" align="right" valign="top"><a id="a122ed8085be305339c89cadb3e360b86" name="a122ed8085be305339c89cadb3e360b86"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Hall</b> ()</td></tr>
+<tr class="memdesc:a122ed8085be305339c89cadb3e360b86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets values to 0. <br /></td></tr>
+<tr class="separator:a122ed8085be305339c89cadb3e360b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af88f012be2e7671366e10d4e154a8d8f"><td class="memItemLeft" align="right" valign="top"><a id="af88f012be2e7671366e10d4e154a8d8f" name="af88f012be2e7671366e10d4e154a8d8f"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Hall</b> (int number)</td></tr>
+<tr class="memdesc:af88f012be2e7671366e10d4e154a8d8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets values, except number, to 0. <br /></td></tr>
+<tr class="separator:af88f012be2e7671366e10d4e154a8d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab93a2ca8463f3b3d398374a6efea4c71"><td class="memItemLeft" align="right" valign="top"><a id="ab93a2ca8463f3b3d398374a6efea4c71" name="ab93a2ca8463f3b3d398374a6efea4c71"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Hall</b> (int number, unsigned rows, unsigned seatsPerRow)</td></tr>
+<tr class="memdesc:ab93a2ca8463f3b3d398374a6efea4c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets values. <br /></td></tr>
+<tr class="separator:ab93a2ca8463f3b3d398374a6efea4c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84186aee50631f25b214f18f7b0dc178"><td class="memItemLeft" align="right" valign="top"><a id="a84186aee50631f25b214f18f7b0dc178" name="a84186aee50631f25b214f18f7b0dc178"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>get_number</b> () const</td></tr>
+<tr class="memdesc:a84186aee50631f25b214f18f7b0dc178"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>'s number. <br /></td></tr>
+<tr class="separator:a84186aee50631f25b214f18f7b0dc178"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b3c304a95d3f56980c6faf0cc2073a2"><td class="memItemLeft" align="right" valign="top"><a id="a6b3c304a95d3f56980c6faf0cc2073a2" name="a6b3c304a95d3f56980c6faf0cc2073a2"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_rows</b> () const</td></tr>
+<tr class="memdesc:a6b3c304a95d3f56980c6faf0cc2073a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>'s row count. <br /></td></tr>
+<tr class="separator:a6b3c304a95d3f56980c6faf0cc2073a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42e1cd716086d8a42a627e00cde17a7e"><td class="memItemLeft" align="right" valign="top"><a id="a42e1cd716086d8a42a627e00cde17a7e" name="a42e1cd716086d8a42a627e00cde17a7e"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_seatsPerRow</b> () const</td></tr>
+<tr class="memdesc:a42e1cd716086d8a42a627e00cde17a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>'s seats per row count. <br /></td></tr>
+<tr class="separator:a42e1cd716086d8a42a627e00cde17a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acef974f302d8131ef4608e15f96c2df9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHall.html#acef974f302d8131ef4608e15f96c2df9">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:acef974f302d8131ef4608e15f96c2df9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> from stream. <a href="classHall.html#acef974f302d8131ef4608e15f96c2df9">More...</a><br /></td></tr>
+<tr class="separator:acef974f302d8131ef4608e15f96c2df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0239d59ab0f832f16cf35c820d0eba5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a0239d59ab0f832f16cf35c820d0eba5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> to steam. <a href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">More...</a><br /></td></tr>
+<tr class="separator:a0239d59ab0f832f16cf35c820d0eba5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4259837f943c488c6b15ed6c80d5f30b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">compare</a> (const <a class="el" href="classHall.html">Hall</a> &amp;other) const</td></tr>
+<tr class="memdesc:a4259837f943c488c6b15ed6c80d5f30b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two Halls. <a href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">More...</a><br /></td></tr>
+<tr class="separator:a4259837f943c488c6b15ed6c80d5f30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Each hall contains a number, rows and seats per row. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a4259837f943c488c6b15ed6c80d5f30b" name="a4259837f943c488c6b15ed6c80d5f30b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4259837f943c488c6b15ed6c80d5f30b">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Hall::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classHall.html">Hall</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compare two Halls. </p>
+<dl class="section return"><dt>Returns</dt><dd>-1 if number &lt; other.number, 1 if number &gt; other.number, 0 if number == other.number </dd></dl>
+
+</div>
+</div>
+<a id="acef974f302d8131ef4608e15f96c2df9" name="acef974f302d8131ef4608e15f96c2df9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acef974f302d8131ef4608e15f96c2df9">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Hall::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classHall.html#acef974f302d8131ef4608e15f96c2df9" title="Reads Hall from stream.">read()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a0239d59ab0f832f16cf35c820d0eba5a" name="a0239d59ab0f832f16cf35c820d0eba5a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0239d59ab0f832f16cf35c820d0eba5a">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Hall::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> to steam. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a" title="Writes Hall to steam.">write()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="Hall_8h_source.html">Hall.h</a></li>
+<li>src/Models/Hall.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService-members.html
new file mode 100644
index 0000000..9bf0940
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">HallService Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classHallService.html">HallService</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classHallService.html#a641fdcc475e094687713e94094e2a623">get_halls</a>() const</td><td class="entry"><a class="el" href="classHallService.html">HallService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHallService.html#a57a8117d8d510afb5351a3f7efc18dff">HallService</a>(const Hall *halls, unsigned hallCount)</td><td class="entry"><a class="el" href="classHallService.html">HallService</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">load</a>()</td><td class="entry"><a class="el" href="classHallService.html">HallService</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">save</a>()</td><td class="entry"><a class="el" href="classHallService.html">HallService</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService.html
new file mode 100644
index 0000000..335a622
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classHallService.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: HallService Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classHallService-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">HallService Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Each <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> stores all halls.
+ <a href="classHallService.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="HallService_8h_source.html">HallService.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a57a8117d8d510afb5351a3f7efc18dff"><td class="memItemLeft" align="right" valign="top"><a id="a57a8117d8d510afb5351a3f7efc18dff" name="a57a8117d8d510afb5351a3f7efc18dff"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>HallService</b> (const <a class="el" href="classHall.html">Hall</a> *halls, unsigned hallCount)</td></tr>
+<tr class="memdesc:a57a8117d8d510afb5351a3f7efc18dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies halls from parameters. <br /></td></tr>
+<tr class="separator:a57a8117d8d510afb5351a3f7efc18dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a641fdcc475e094687713e94094e2a623"><td class="memItemLeft" align="right" valign="top"><a id="a641fdcc475e094687713e94094e2a623" name="a641fdcc475e094687713e94094e2a623"></a>
+const <a class="el" href="classOrderedList.html">OrderedList</a>&lt; <a class="el" href="classHall.html">Hall</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_halls</b> () const</td></tr>
+<tr class="memdesc:a641fdcc475e094687713e94094e2a623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a constant reference to halls. <br /></td></tr>
+<tr class="separator:a641fdcc475e094687713e94094e2a623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab63c1ccff811ed3268f2fe5e996eb6ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">load</a> ()</td></tr>
+<tr class="memdesc:ab63c1ccff811ed3268f2fe5e996eb6ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads Halls to a database file. <a href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">More...</a><br /></td></tr>
+<tr class="separator:ab63c1ccff811ed3268f2fe5e996eb6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a083e3d10ec89ee8c78a117c3754c66d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">save</a> ()</td></tr>
+<tr class="memdesc:a083e3d10ec89ee8c78a117c3754c66d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves Halls to a database file. <a href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">More...</a><br /></td></tr>
+<tr class="separator:a083e3d10ec89ee8c78a117c3754c66d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Each <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> stores all halls. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="ab63c1ccff811ed3268f2fe5e996eb6ae" name="ab63c1ccff811ed3268f2fe5e996eb6ae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab63c1ccff811ed3268f2fe5e996eb6ae">&#9670;&nbsp;</a></span>load()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> HallService::load </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Loads Halls to a database file. </p>
+<p >Looks for file named "hallsDatabse.fmits", which is just a binary file, and then reads it with the "read" function in events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> The files couldn't be opened/Doesn't exist </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<a id="a083e3d10ec89ee8c78a117c3754c66d2" name="a083e3d10ec89ee8c78a117c3754c66d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a083e3d10ec89ee8c78a117c3754c66d2">&#9670;&nbsp;</a></span>save()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode</a> HallService::save </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Saves Halls to a database file. </p>
+<p >Looks for file named "hallsDatabse.fmits", which is just a binary file, and then writes to it with the "write" function in events <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</p>
+<dl class="section return"><dt>Returns</dt><dd>E_FileCouldNotBeOpened <b>if</b> The files couldn't be opened </dd>
+<dd>
+Success <b>otherwise</b> </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Services/<a class="el" href="HallService_8h_source.html">HallService.h</a></li>
+<li>src/Services/HallService.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classList-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classList-members.html
new file mode 100644
index 0000000..b9f6cc3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classList-members.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List&lt; T &gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classList.html">List&lt; T &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a>(const T &amp;element)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>copyFrom</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>count</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>elements</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>free</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a>(const T &amp;element, unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>length</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List</a>(const T *elements, unsigned elementsCount)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>List</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>List</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">operator+=</a>(const List&lt; T &gt; other)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">operator[]</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a5fa582de3aec5094a871852b658cf853">operator[]</a>(unsigned index) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>resize</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classList.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classList.html
new file mode 100644
index 0000000..9193ce3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classList.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: List&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classList-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">List&lt; T &gt; Class Template Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Templated class that stores an array of elements in dynamic memory.
+ <a href="classList.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="List_8hpp_source.html">List.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for List&lt; T &gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classList.png" usemap="#List_3C_20T_20_3E_map" alt=""/>
+ <map id="List_3C_20T_20_3E_map" name="List_3C_20T_20_3E_map">
+<area href="classOrderedList.html" title="Inherits List, but contains it&#39;s elements in a sorted manner." alt="OrderedList&lt; T &gt;" shape="rect" coords="0,56,110,80"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a93cd36efc12aa5ef5fc28866edce7e61"><td class="memItemLeft" align="right" valign="top"><a id="a93cd36efc12aa5ef5fc28866edce7e61" name="a93cd36efc12aa5ef5fc28866edce7e61"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const T *elements, unsigned elementsCount)</td></tr>
+<tr class="memdesc:a93cd36efc12aa5ef5fc28866edce7e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies all elements in given array. <br /></td></tr>
+<tr class="separator:a93cd36efc12aa5ef5fc28866edce7e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfec4f2e7990d06c143852ecfdf907bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a> (const T &amp;element)</td></tr>
+<tr class="memdesc:abfec4f2e7990d06c143852ecfdf907bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an element. <a href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">More...</a><br /></td></tr>
+<tr class="separator:abfec4f2e7990d06c143852ecfdf907bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4586debf72af33bccb3c2fbfce420e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a> (const T &amp;element, unsigned index)</td></tr>
+<tr class="memdesc:ae4586debf72af33bccb3c2fbfce420e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts element at given index. <a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">More...</a><br /></td></tr>
+<tr class="separator:ae4586debf72af33bccb3c2fbfce420e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c0a5b5bca6286f458d6fab280de65a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a> (unsigned index)</td></tr>
+<tr class="memdesc:ad9c0a5b5bca6286f458d6fab280de65a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes element at index. <a href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">More...</a><br /></td></tr>
+<tr class="separator:ad9c0a5b5bca6286f458d6fab280de65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3804f03273ef5e339b504e439c5b6534"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a> (const T &amp;element) const</td></tr>
+<tr class="memdesc:a3804f03273ef5e339b504e439c5b6534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the index of element. <a href="classList.html#a3804f03273ef5e339b504e439c5b6534">More...</a><br /></td></tr>
+<tr class="separator:a3804f03273ef5e339b504e439c5b6534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a163a070c7d5dc77ca3c1726b8f2d4bc1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a> (const T &amp;element) const</td></tr>
+<tr class="separator:a163a070c7d5dc77ca3c1726b8f2d4bc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a321bb581943398344aad07198d1f02ac"><td class="memItemLeft" align="right" valign="top"><a id="a321bb581943398344aad07198d1f02ac" name="a321bb581943398344aad07198d1f02ac"></a>
+T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index)</td></tr>
+<tr class="memdesc:a321bb581943398344aad07198d1f02ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to element at index. <br /></td></tr>
+<tr class="separator:a321bb581943398344aad07198d1f02ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fa582de3aec5094a871852b658cf853"><td class="memItemLeft" align="right" valign="top"><a id="a5fa582de3aec5094a871852b658cf853" name="a5fa582de3aec5094a871852b658cf853"></a>
+const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index) const</td></tr>
+<tr class="memdesc:a5fa582de3aec5094a871852b658cf853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to element at index. <br /></td></tr>
+<tr class="separator:a5fa582de3aec5094a871852b658cf853"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4332ce5a589da28528f035ded6d41e5"><td class="memItemLeft" align="right" valign="top"><a id="aa4332ce5a589da28528f035ded6d41e5" name="aa4332ce5a589da28528f035ded6d41e5"></a>
+<a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="classList.html">List</a>&lt; T &gt; other)</td></tr>
+<tr class="memdesc:aa4332ce5a589da28528f035ded6d41e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends elements from other list. <br /></td></tr>
+<tr class="separator:aa4332ce5a589da28528f035ded6d41e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e3581ee07649f462aa8bb3221a5466e"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:a5e3581ee07649f462aa8bb3221a5466e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads from stream. <a href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">More...</a><br /></td></tr>
+<tr class="separator:a5e3581ee07649f462aa8bb3221a5466e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to stream. <a href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">More...</a><br /></td></tr>
+<tr class="separator:a8d2babffd2fb4a5e0a40dbd306e19956"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa32109b77dccd8241b125ebabdda876c"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a> () const</td></tr>
+<tr class="memdesc:aa32109b77dccd8241b125ebabdda876c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length. <a href="classList.html#aa32109b77dccd8241b125ebabdda876c">More...</a><br /></td></tr>
+<tr class="separator:aa32109b77dccd8241b125ebabdda876c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a> () const</td></tr>
+<tr class="memdesc:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count. <a href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">More...</a><br /></td></tr>
+<tr class="separator:a3c1e3a3fc085f5b7ae68514c4758687b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a248952759645a68a4a1ea5aa31bc089f"><td class="memItemLeft" align="right" valign="top"><a id="a248952759645a68a4a1ea5aa31bc089f" name="a248952759645a68a4a1ea5aa31bc089f"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a248952759645a68a4a1ea5aa31bc089f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43ce719b9dcc8aa532bad580c44e99f6"><td class="memItemLeft" align="right" valign="top"><a id="a43ce719b9dcc8aa532bad580c44e99f6" name="a43ce719b9dcc8aa532bad580c44e99f6"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a43ce719b9dcc8aa532bad580c44e99f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25feb644d97345e4f36bf54c7aab4ade"><td class="memItemLeft" align="right" valign="top"><a id="a25feb644d97345e4f36bf54c7aab4ade" name="a25feb644d97345e4f36bf54c7aab4ade"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a25feb644d97345e4f36bf54c7aab4ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3be35847f78c9fdb37c957eff55c1608"><td class="memItemLeft" align="right" valign="top"><a id="a3be35847f78c9fdb37c957eff55c1608" name="a3be35847f78c9fdb37c957eff55c1608"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a3be35847f78c9fdb37c957eff55c1608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a302d78384a6516a4d4dede84d4f0968e"><td class="memItemLeft" align="right" valign="top"><a id="a302d78384a6516a4d4dede84d4f0968e" name="a302d78384a6516a4d4dede84d4f0968e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>resize</b> ()</td></tr>
+<tr class="separator:a302d78384a6516a4d4dede84d4f0968e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29cb6681b3f5514f747d04661b08cfd6"><td class="memItemLeft" align="right" valign="top"><a id="a29cb6681b3f5514f747d04661b08cfd6" name="a29cb6681b3f5514f747d04661b08cfd6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
+<tr class="separator:a29cb6681b3f5514f747d04661b08cfd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef2dcec4a271f7ba2f71ef164535e273"><td class="memItemLeft" align="right" valign="top"><a id="aef2dcec4a271f7ba2f71ef164535e273" name="aef2dcec4a271f7ba2f71ef164535e273"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>copyFrom</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:aef2dcec4a271f7ba2f71ef164535e273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ab28a0d67da45b5d3bb755c72105a516c"><td class="memItemLeft" align="right" valign="top"><a id="ab28a0d67da45b5d3bb755c72105a516c" name="ab28a0d67da45b5d3bb755c72105a516c"></a>
+T *&#160;</td><td class="memItemRight" valign="bottom"><b>elements</b></td></tr>
+<tr class="separator:ab28a0d67da45b5d3bb755c72105a516c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af44323f3a486341510ad97b6bceda1be"><td class="memItemLeft" align="right" valign="top"><a id="af44323f3a486341510ad97b6bceda1be" name="af44323f3a486341510ad97b6bceda1be"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>length</b></td></tr>
+<tr class="separator:af44323f3a486341510ad97b6bceda1be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66db5f1795dd0530911f32552ddd9815"><td class="memItemLeft" align="right" valign="top"><a id="a66db5f1795dd0530911f32552ddd9815" name="a66db5f1795dd0530911f32552ddd9815"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>count</b></td></tr>
+<tr class="separator:a66db5f1795dd0530911f32552ddd9815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><div class="compoundTemplParams">template&lt;typename T&gt;<br />
+class List&lt; T &gt;</div><p >Templated class that stores an array of elements in dynamic memory. </p>
+<dl class="section warning"><dt>Warning</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a>, <a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain()</a>, <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a>, <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a>, operator&lt;&lt;() and operator&gt;&gt;() require the type to have defined a couple of functions. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a> </dd>
+<dd>
+<a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a> </dd>
+<dd>
+<a class="el" href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76" title="Writes date to stream with &lt;&lt; operator.">operator&lt;&lt;()</a> </dd>
+<dd>
+<a class="el" href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797" title="Reads date from stream with &gt;&gt; operator.">operator&gt;&gt;()</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="abfec4f2e7990d06c143852ecfdf907bb" name="abfec4f2e7990d06c143852ecfdf907bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abfec4f2e7990d06c143852ecfdf907bb">&#9670;&nbsp;</a></span>add()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classList.html">List</a>&lt; T &gt;::add </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Adds an element. </p>
+<p >Resizes internal array if there is no space for additional elements. </p>
+
+</div>
+</div>
+<a id="a163a070c7d5dc77ca3c1726b8f2d4bc1" name="a163a070c7d5dc77ca3c1726b8f2d4bc1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a163a070c7d5dc77ca3c1726b8f2d4bc1">&#9670;&nbsp;</a></span>contain()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classList.html">List</a>&lt; T &gt;::contain </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Whether the element is contained in the current <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a></dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>Function depends on <a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a>, which means the same "compare" function must be defined in the type </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534" title="Finds the index of element.">findIndex()</a> </dd></dl>
+
+</div>
+</div>
+<a id="a3804f03273ef5e339b504e439c5b6534" name="a3804f03273ef5e339b504e439c5b6534"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3804f03273ef5e339b504e439c5b6534">&#9670;&nbsp;</a></span>findIndex()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::findIndex </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Finds the index of element. </p>
+<dl class="section return"><dt>Returns</dt><dd>Index of element. If element isn't found, returns the count of element.</dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "compare" defined, which takes two elements and returns a number &lt;0 if elem1 &lt; elem2, &gt;0 if elem1 &gt; elem2, 0 if elem1 == elem2 </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Searching is done linearly </dd></dl>
+
+</div>
+</div>
+<a id="a3c1e3a3fc085f5b7ae68514c4758687b" name="a3c1e3a3fc085f5b7ae68514c4758687b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3c1e3a3fc085f5b7ae68514c4758687b">&#9670;&nbsp;</a></span>get_count()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::get_count</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the count. </p>
+<p >Count is the amount of elements that are stored. </p>
+
+</div>
+</div>
+<a id="aa32109b77dccd8241b125ebabdda876c" name="aa32109b77dccd8241b125ebabdda876c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa32109b77dccd8241b125ebabdda876c">&#9670;&nbsp;</a></span>get_length()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned <a class="el" href="classList.html">List</a>&lt; T &gt;::get_length</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the length. </p>
+<p >Length is the size of the underlying array (allocated memory). </p>
+
+</div>
+</div>
+<a id="ae4586debf72af33bccb3c2fbfce420e8" name="ae4586debf72af33bccb3c2fbfce420e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae4586debf72af33bccb3c2fbfce420e8">&#9670;&nbsp;</a></span>insertAt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classList.html">List</a>&lt; T &gt;::insertAt </td>
+ <td>(</td>
+ <td class="paramtype">const T &amp;&#160;</td>
+ <td class="paramname"><em>element</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Inserts element at given index. </p>
+<p >If index is after the last element, the element is just added. Otherwise all elements after the index are shifted right and element is put in place.</p>
+<p >Resizes internal array if there is no space for additional elements. </p>
+
+</div>
+</div>
+<a id="a5e3581ee07649f462aa8bb3221a5466e" name="a5e3581ee07649f462aa8bb3221a5466e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5e3581ee07649f462aa8bb3221a5466e">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; <a class="el" href="classList.html">List</a>&lt; T &gt;::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e" title="Reads from stream.">read()</a> function). Any stored values are deleted and replaced with those from the stream.</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "read" defined, which takes an std::istream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="ad9c0a5b5bca6286f458d6fab280de65a" name="ad9c0a5b5bca6286f458d6fab280de65a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad9c0a5b5bca6286f458d6fab280de65a">&#9670;&nbsp;</a></span>removeAt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classList.html">List</a>&lt; T &gt;::removeAt </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>index</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes element at index. </p>
+<dl class="section return"><dt>Returns</dt><dd>Wether element could be removed</dd></dl>
+<p>If index is after that of the last element, nothing is done and false is returned. Otherwise elements after index are shifted right and count is reduced. </p>
+
+</div>
+</div>
+<a id="a8d2babffd2fb4a5e0a40dbd306e19956" name="a8d2babffd2fb4a5e0a40dbd306e19956"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d2babffd2fb4a5e0a40dbd306e19956">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; <a class="el" href="classList.html">List</a>&lt; T &gt;::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956" title="Writes to stream.">write()</a> function).</p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "write" defined, which takes an std::ostream&amp; and writes it's data to it. Return type doesn't matter. </dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/Generic/List/<a class="el" href="List_8hpp_source.html">List.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classList.png b/Year 1/Object-oriented Programming/Project 1/docs/html/classList.png
new file mode 100644
index 0000000..6318642
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classList.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu-members.html
new file mode 100644
index 0000000..3ee7df1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Menu Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classMenu.html">Menu</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">addCommand</a>(const Command &amp;command)</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a>()</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#aeec919379638ad526df5167ed755a1f3">Menu</a>(const char *title, bool backExistsApp, bool isSubMenu)</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#a12057ad84f3a9d41bc7092cc2d86c87a">Menu</a>(const char *title, bool backExistsApp, bool isSubMenu, const Command *commands, unsigned commandCount)</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a>() const</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">registerError</a>(const char *message) const</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">registerSuccess</a>(const char *message) const</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classMenu.html#a5350b1addf9bf365351486cd161696ad">registerWarning</a>(const char *message) const</td><td class="entry"><a class="el" href="classMenu.html">Menu</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu.html
new file mode 100644
index 0000000..15580eb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classMenu.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Menu Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classMenu-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Menu Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Handles navigation between multiple commands.
+ <a href="classMenu.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Menu_8h_source.html">Menu.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad466dd83355124a6ed958430450bfe94"><td class="memItemLeft" align="right" valign="top"><a id="ad466dd83355124a6ed958430450bfe94" name="ad466dd83355124a6ed958430450bfe94"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Menu</b> ()</td></tr>
+<tr class="memdesc:ad466dd83355124a6ed958430450bfe94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name as "Menu", leaves all flags to false and creates an empty <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. <br /></td></tr>
+<tr class="separator:ad466dd83355124a6ed958430450bfe94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeec919379638ad526df5167ed755a1f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#aeec919379638ad526df5167ed755a1f3">Menu</a> (const char *title, bool backExistsApp, bool isSubMenu)</td></tr>
+<tr class="memdesc:aeec919379638ad526df5167ed755a1f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies title, saves flags and creates and empty <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. <a href="classMenu.html#aeec919379638ad526df5167ed755a1f3">More...</a><br /></td></tr>
+<tr class="separator:aeec919379638ad526df5167ed755a1f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12057ad84f3a9d41bc7092cc2d86c87a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#a12057ad84f3a9d41bc7092cc2d86c87a">Menu</a> (const char *title, bool backExistsApp, bool isSubMenu, const <a class="el" href="classCommand.html">Command</a> *commands, unsigned commandCount)</td></tr>
+<tr class="memdesc:a12057ad84f3a9d41bc7092cc2d86c87a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies title, saves flags and copies commands. <a href="classMenu.html#a12057ad84f3a9d41bc7092cc2d86c87a">More...</a><br /></td></tr>
+<tr class="separator:a12057ad84f3a9d41bc7092cc2d86c87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f022cc8b705369073f8fd7b90b30c8d"><td class="memItemLeft" align="right" valign="top"><a id="a1f022cc8b705369073f8fd7b90b30c8d" name="a1f022cc8b705369073f8fd7b90b30c8d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>addCommand</b> (const <a class="el" href="classCommand.html">Command</a> &amp;command)</td></tr>
+<tr class="memdesc:a1f022cc8b705369073f8fd7b90b30c8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a command to the internal <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. <br /></td></tr>
+<tr class="separator:a1f022cc8b705369073f8fd7b90b30c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad506cb9a7f35dea98c60484bb2d095c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">registerError</a> (const char *message) const</td></tr>
+<tr class="memdesc:aad506cb9a7f35dea98c60484bb2d095c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show an error message next time it prints. <a href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">More...</a><br /></td></tr>
+<tr class="separator:aad506cb9a7f35dea98c60484bb2d095c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5350b1addf9bf365351486cd161696ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#a5350b1addf9bf365351486cd161696ad">registerWarning</a> (const char *message) const</td></tr>
+<tr class="memdesc:a5350b1addf9bf365351486cd161696ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show a warning message next time it prints. <a href="classMenu.html#a5350b1addf9bf365351486cd161696ad">More...</a><br /></td></tr>
+<tr class="separator:a5350b1addf9bf365351486cd161696ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3504e28b5d05e1ad70dada190bbc3a9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">registerSuccess</a> (const char *message) const</td></tr>
+<tr class="memdesc:a3504e28b5d05e1ad70dada190bbc3a9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show a success message next time it prints. <a href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">More...</a><br /></td></tr>
+<tr class="separator:a3504e28b5d05e1ad70dada190bbc3a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0400751da7f8583029b7a12d3003c36d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">navigate</a> () const</td></tr>
+<tr class="memdesc:a0400751da7f8583029b7a12d3003c36d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lists commands and after user input executes an appropriate command run() function. <a href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">More...</a><br /></td></tr>
+<tr class="separator:a0400751da7f8583029b7a12d3003c36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Handles navigation between multiple commands. </p>
+<p >Shows the title, then below it an Error/Warning/Success message if set, lists all command options as an enumerated list, takes command index and calls the chosen command's run() function. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aeec919379638ad526df5167ed755a1f3" name="aeec919379638ad526df5167ed755a1f3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeec919379638ad526df5167ed755a1f3">&#9670;&nbsp;</a></span>Menu() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Menu::Menu </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>title</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>backExistsApp</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>isSubMenu</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies title, saves flags and creates and empty <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> list. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">title</td><td>C-style string, class stores at most 255 characters (last character is always terminating zero) </td></tr>
+ <tr><td class="paramname">backExistsApp</td><td>Flag whether or not to list the 0-th option as "Exit", rather than "Go Back" </td></tr>
+ <tr><td class="paramname">isSubMenu</td><td>Flag whether or not to show the title as a subTitle or not </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a12057ad84f3a9d41bc7092cc2d86c87a" name="a12057ad84f3a9d41bc7092cc2d86c87a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a12057ad84f3a9d41bc7092cc2d86c87a">&#9670;&nbsp;</a></span>Menu() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Menu::Menu </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>title</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>backExistsApp</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>isSubMenu</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classCommand.html">Command</a> *&#160;</td>
+ <td class="paramname"><em>commands</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>commandCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies title, saves flags and copies commands. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">title</td><td>C-style string, class stores at most 255 characters (last character is always terminating zero) </td></tr>
+ <tr><td class="paramname">backExistsApp</td><td>Flag whether or not to list the 0-th option as "Exit", rather than "Go Back" </td></tr>
+ <tr><td class="paramname">isSubMenu</td><td>Flag whether or not to show the title as a subTitle or not </td></tr>
+ <tr><td class="paramname">commands</td><td>Pointer to an array of <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> instances </td></tr>
+ <tr><td class="paramname">commandCount</td><td>Number of elements that "commands" points to </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0400751da7f8583029b7a12d3003c36d" name="a0400751da7f8583029b7a12d3003c36d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0400751da7f8583029b7a12d3003c36d">&#9670;&nbsp;</a></span>navigate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Menu::navigate </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lists commands and after user input executes an appropriate command run() function. </p>
+<p >Prints the title, then an Error/Warning/Sucess message (if set), prints all command names as an ordered list (starting from 1), waits for user input to select one of those commands (by list number) and finally executes the appropriate command's run() function.</p>
+<p >After the run() function exists, everything is reprinted. The 0 list index is always "Go Back"/"Exit" and it always stops the reprinting loop.</p>
+<p >If there are no commands, prints "Menu is empty!". If user input doesn't correspond to any command, registers an error message and reprints. </p>
+
+</div>
+</div>
+<a id="aad506cb9a7f35dea98c60484bb2d095c" name="aad506cb9a7f35dea98c60484bb2d095c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad506cb9a7f35dea98c60484bb2d095c">&#9670;&nbsp;</a></span>registerError()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Menu::registerError </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show an error message next time it prints. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, saves to pointer for later reuse when showing the message.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Stores the message pointer in a global variable (in the cpp file) and sets it's type as an Error in another global variable (in the cpp file).</p>
+<p >The next time the whole <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> is shown, the message will appear below the title. </p>
+
+</div>
+</div>
+<a id="a3504e28b5d05e1ad70dada190bbc3a9c" name="a3504e28b5d05e1ad70dada190bbc3a9c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3504e28b5d05e1ad70dada190bbc3a9c">&#9670;&nbsp;</a></span>registerSuccess()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Menu::registerSuccess </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show a success message next time it prints. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, saves to pointer for later reuse when showing the message.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Stores the message pointer in a global variable (in the cpp file) and sets it's type as Success in another global variable (in the cpp file).</p>
+<p >The next time the whole <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> is shown, the message will appear below the title. </p>
+
+</div>
+</div>
+<a id="a5350b1addf9bf365351486cd161696ad" name="a5350b1addf9bf365351486cd161696ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5350b1addf9bf365351486cd161696ad">&#9670;&nbsp;</a></span>registerWarning()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Menu::registerWarning </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>message</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Tell <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> to show a warning message next time it prints. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">message</td><td>C-style string, saves to pointer for later reuse when showing the message.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Stores the message pointer in a global variable (in the cpp file) and sets it's type as a Warning in another global variable (in the cpp file).</p>
+<p >The next time the whole <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> is shown, the message will appear below the title. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/ConsoleInterface/<a class="el" href="Menu_8h_source.html">Menu.h</a></li>
+<li>src/Generic/ConsoleInterface/Menu.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList-members.html
new file mode 100644
index 0000000..eddb5a8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList-members.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">OrderedList&lt; T &gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">add</a>(T element)=delete</td><td class="entry"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List::add</a>(const T &amp;element)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>copyFrom</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>count</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>elements</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a>(const T &amp;element) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>free</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a>() const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">insert</a>(T element)</td><td class="entry"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">insertAt</a>(T element, unsigned index)=delete</td><td class="entry"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List::insertAt</a>(const T &amp;element, unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>length</b> (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List</a>(const T *elements, unsigned elementsCount)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>List</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>List</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">operator+=</a>(const List&lt; T &gt; other)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(const List &amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(List &amp;&amp;other) (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">operator[]</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a5fa582de3aec5094a871852b658cf853">operator[]</a>(unsigned index) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>OrderedList</b>() (defined in <a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OrderedList</b>(const T *elements, unsigned elementsCount) (defined in <a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classOrderedList.html">OrderedList&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a>(unsigned index)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>resize</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~List</b>() (defined in <a class="el" href="classList.html">List&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classList.html">List&lt; T &gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.html
new file mode 100644
index 0000000..d3d44d3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.html
@@ -0,0 +1,287 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: OrderedList&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classOrderedList-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">OrderedList&lt; T &gt; Class Template Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Inherits <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, but contains it's elements in a sorted manner.
+ <a href="classOrderedList.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="OrderedList_8hpp_source.html">OrderedList.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for OrderedList&lt; T &gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classOrderedList.png" usemap="#OrderedList_3C_20T_20_3E_map" alt=""/>
+ <map id="OrderedList_3C_20T_20_3E_map" name="OrderedList_3C_20T_20_3E_map">
+<area href="classList.html" title="Templated class that stores an array of elements in dynamic memory." alt="List&lt; T &gt;" shape="rect" coords="0,0,110,24"/>
+ </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a736559aa9cd4d085e4bc76ae2c751097"><td class="memItemLeft" align="right" valign="top"><a id="a736559aa9cd4d085e4bc76ae2c751097" name="a736559aa9cd4d085e4bc76ae2c751097"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>OrderedList</b> (const T *elements, unsigned elementsCount)</td></tr>
+<tr class="separator:a736559aa9cd4d085e4bc76ae2c751097"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b2748c3cdefe4869e0d7a2fc9b4b2cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">add</a> (T element)=delete</td></tr>
+<tr class="separator:a8b2748c3cdefe4869e0d7a2fc9b4b2cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45af729846bacc77fc8292e5d0690f99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">insertAt</a> (T element, unsigned index)=delete</td></tr>
+<tr class="separator:a45af729846bacc77fc8292e5d0690f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1132cd9c92901e9b9950a4a409b0fc8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">insert</a> (T element)</td></tr>
+<tr class="memdesc:a1132cd9c92901e9b9950a4a409b0fc8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts an element at a sorted position. <a href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">More...</a><br /></td></tr>
+<tr class="separator:a1132cd9c92901e9b9950a4a409b0fc8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classList"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classList')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classList.html">List&lt; T &gt;</a></td></tr>
+<tr class="memitem:a93cd36efc12aa5ef5fc28866edce7e61 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a93cd36efc12aa5ef5fc28866edce7e61" name="a93cd36efc12aa5ef5fc28866edce7e61"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const T *elements, unsigned elementsCount)</td></tr>
+<tr class="memdesc:a93cd36efc12aa5ef5fc28866edce7e61 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies all elements in given array. <br /></td></tr>
+<tr class="separator:a93cd36efc12aa5ef5fc28866edce7e61 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfec4f2e7990d06c143852ecfdf907bb inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">add</a> (const T &amp;element)</td></tr>
+<tr class="memdesc:abfec4f2e7990d06c143852ecfdf907bb inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an element. <a href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">More...</a><br /></td></tr>
+<tr class="separator:abfec4f2e7990d06c143852ecfdf907bb inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4586debf72af33bccb3c2fbfce420e8 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">insertAt</a> (const T &amp;element, unsigned index)</td></tr>
+<tr class="memdesc:ae4586debf72af33bccb3c2fbfce420e8 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts element at given index. <a href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">More...</a><br /></td></tr>
+<tr class="separator:ae4586debf72af33bccb3c2fbfce420e8 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c0a5b5bca6286f458d6fab280de65a inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">removeAt</a> (unsigned index)</td></tr>
+<tr class="memdesc:ad9c0a5b5bca6286f458d6fab280de65a inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes element at index. <a href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">More...</a><br /></td></tr>
+<tr class="separator:ad9c0a5b5bca6286f458d6fab280de65a inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3804f03273ef5e339b504e439c5b6534 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">findIndex</a> (const T &amp;element) const</td></tr>
+<tr class="memdesc:a3804f03273ef5e339b504e439c5b6534 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the index of element. <a href="classList.html#a3804f03273ef5e339b504e439c5b6534">More...</a><br /></td></tr>
+<tr class="separator:a3804f03273ef5e339b504e439c5b6534 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a163a070c7d5dc77ca3c1726b8f2d4bc1 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">contain</a> (const T &amp;element) const</td></tr>
+<tr class="separator:a163a070c7d5dc77ca3c1726b8f2d4bc1 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a321bb581943398344aad07198d1f02ac inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a321bb581943398344aad07198d1f02ac" name="a321bb581943398344aad07198d1f02ac"></a>
+T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index)</td></tr>
+<tr class="memdesc:a321bb581943398344aad07198d1f02ac inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to element at index. <br /></td></tr>
+<tr class="separator:a321bb581943398344aad07198d1f02ac inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fa582de3aec5094a871852b658cf853 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a5fa582de3aec5094a871852b658cf853" name="a5fa582de3aec5094a871852b658cf853"></a>
+const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index) const</td></tr>
+<tr class="memdesc:a5fa582de3aec5094a871852b658cf853 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to element at index. <br /></td></tr>
+<tr class="separator:a5fa582de3aec5094a871852b658cf853 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4332ce5a589da28528f035ded6d41e5 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="aa4332ce5a589da28528f035ded6d41e5" name="aa4332ce5a589da28528f035ded6d41e5"></a>
+<a class="el" href="classList.html">List</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="classList.html">List</a>&lt; T &gt; other)</td></tr>
+<tr class="memdesc:aa4332ce5a589da28528f035ded6d41e5 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends elements from other list. <br /></td></tr>
+<tr class="separator:aa4332ce5a589da28528f035ded6d41e5 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e3581ee07649f462aa8bb3221a5466e inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:a5e3581ee07649f462aa8bb3221a5466e inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads from stream. <a href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">More...</a><br /></td></tr>
+<tr class="separator:a5e3581ee07649f462aa8bb3221a5466e inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d2babffd2fb4a5e0a40dbd306e19956 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a8d2babffd2fb4a5e0a40dbd306e19956 inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to stream. <a href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">More...</a><br /></td></tr>
+<tr class="separator:a8d2babffd2fb4a5e0a40dbd306e19956 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa32109b77dccd8241b125ebabdda876c inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">get_length</a> () const</td></tr>
+<tr class="memdesc:aa32109b77dccd8241b125ebabdda876c inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length. <a href="classList.html#aa32109b77dccd8241b125ebabdda876c">More...</a><br /></td></tr>
+<tr class="separator:aa32109b77dccd8241b125ebabdda876c inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c1e3a3fc085f5b7ae68514c4758687b inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">get_count</a> () const</td></tr>
+<tr class="memdesc:a3c1e3a3fc085f5b7ae68514c4758687b inherit pub_methods_classList"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count. <a href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">More...</a><br /></td></tr>
+<tr class="separator:a3c1e3a3fc085f5b7ae68514c4758687b inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a248952759645a68a4a1ea5aa31bc089f inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a248952759645a68a4a1ea5aa31bc089f" name="a248952759645a68a4a1ea5aa31bc089f"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a248952759645a68a4a1ea5aa31bc089f inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43ce719b9dcc8aa532bad580c44e99f6 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a43ce719b9dcc8aa532bad580c44e99f6" name="a43ce719b9dcc8aa532bad580c44e99f6"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:a43ce719b9dcc8aa532bad580c44e99f6 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25feb644d97345e4f36bf54c7aab4ade inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a25feb644d97345e4f36bf54c7aab4ade" name="a25feb644d97345e4f36bf54c7aab4ade"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>List</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a25feb644d97345e4f36bf54c7aab4ade inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3be35847f78c9fdb37c957eff55c1608 inherit pub_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a3be35847f78c9fdb37c957eff55c1608" name="a3be35847f78c9fdb37c957eff55c1608"></a>
+<a class="el" href="classList.html">List</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classList.html">List</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a3be35847f78c9fdb37c957eff55c1608 inherit pub_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classList"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classList')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classList.html">List&lt; T &gt;</a></td></tr>
+<tr class="memitem:a302d78384a6516a4d4dede84d4f0968e inherit pro_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a302d78384a6516a4d4dede84d4f0968e" name="a302d78384a6516a4d4dede84d4f0968e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>resize</b> ()</td></tr>
+<tr class="separator:a302d78384a6516a4d4dede84d4f0968e inherit pro_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29cb6681b3f5514f747d04661b08cfd6 inherit pro_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="a29cb6681b3f5514f747d04661b08cfd6" name="a29cb6681b3f5514f747d04661b08cfd6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
+<tr class="separator:a29cb6681b3f5514f747d04661b08cfd6 inherit pro_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef2dcec4a271f7ba2f71ef164535e273 inherit pro_methods_classList"><td class="memItemLeft" align="right" valign="top"><a id="aef2dcec4a271f7ba2f71ef164535e273" name="aef2dcec4a271f7ba2f71ef164535e273"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>copyFrom</b> (const <a class="el" href="classList.html">List</a> &amp;other)</td></tr>
+<tr class="separator:aef2dcec4a271f7ba2f71ef164535e273 inherit pro_methods_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classList"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classList')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classList.html">List&lt; T &gt;</a></td></tr>
+<tr class="memitem:ab28a0d67da45b5d3bb755c72105a516c inherit pro_attribs_classList"><td class="memItemLeft" align="right" valign="top"><a id="ab28a0d67da45b5d3bb755c72105a516c" name="ab28a0d67da45b5d3bb755c72105a516c"></a>
+T *&#160;</td><td class="memItemRight" valign="bottom"><b>elements</b></td></tr>
+<tr class="separator:ab28a0d67da45b5d3bb755c72105a516c inherit pro_attribs_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af44323f3a486341510ad97b6bceda1be inherit pro_attribs_classList"><td class="memItemLeft" align="right" valign="top"><a id="af44323f3a486341510ad97b6bceda1be" name="af44323f3a486341510ad97b6bceda1be"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>length</b></td></tr>
+<tr class="separator:af44323f3a486341510ad97b6bceda1be inherit pro_attribs_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66db5f1795dd0530911f32552ddd9815 inherit pro_attribs_classList"><td class="memItemLeft" align="right" valign="top"><a id="a66db5f1795dd0530911f32552ddd9815" name="a66db5f1795dd0530911f32552ddd9815"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>count</b></td></tr>
+<tr class="separator:a66db5f1795dd0530911f32552ddd9815 inherit pro_attribs_classList"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><div class="compoundTemplParams">template&lt;typename T&gt;<br />
+class OrderedList&lt; T &gt;</div><p >Inherits <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, but contains it's elements in a sorted manner. </p>
+<dl class="section warning"><dt>Warning</dt><dd>Outside those defined in <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, <a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> requires the type to have defined a "compare" of functions. </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a8b2748c3cdefe4869e0d7a2fc9b4b2cd" name="a8b2748c3cdefe4869e0d7a2fc9b4b2cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">&#9670;&nbsp;</a></span>add()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classOrderedList.html">OrderedList</a>&lt; T &gt;::add </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">delete</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>Function is deleted, use <a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> instead </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> </dd></dl>
+
+</div>
+</div>
+<a id="a1132cd9c92901e9b9950a4a409b0fc8b" name="a1132cd9c92901e9b9950a4a409b0fc8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1132cd9c92901e9b9950a4a409b0fc8b">&#9670;&nbsp;</a></span>insert()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classOrderedList.html">OrderedList</a>&lt; T &gt;::insert </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>element</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Inserts an element at a sorted position. </p>
+<dl class="section warning"><dt>Warning</dt><dd>The function depends on the type having a function "compare" defined, which takes two elements and returns a number &lt;0 if elem1 &lt; elem2, &gt;0 if elem1 &gt; elem2, 0 if elem1 == elem2 </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Insertion is done linearly </dd></dl>
+
+</div>
+</div>
+<a id="a45af729846bacc77fc8292e5d0690f99" name="a45af729846bacc77fc8292e5d0690f99"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45af729846bacc77fc8292e5d0690f99">&#9670;&nbsp;</a></span>insertAt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classOrderedList.html">OrderedList</a>&lt; T &gt;::insertAt </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>element</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">delete</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>Function is deleted, use <a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> instead </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b" title="Inserts an element at a sorted position.">insert()</a> </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/Generic/List/<a class="el" href="OrderedList_8hpp_source.html">OrderedList.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.png b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.png
new file mode 100644
index 0000000..eee579a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classOrderedList.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation-members.html
new file mode 100644
index 0000000..4ecc4d9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation-members.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Reservation Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classReservation.html">Reservation</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">compare</a>(const Reservation &amp;other) const</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classReservation.html#a2285881510bf07f469bf360bb1050f12">get_note</a>() const</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9">get_password</a>() const</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb">get_ticket</a>() const</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">operator&lt;&lt;</a></td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">operator&gt;&gt;</a></td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a>()</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#a7320a032f87c7d45cf287a146c73695c">Reservation</a>(const Ticket &amp;ticket)</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classReservation.html#ac6fdecd9bc06f3de2e28129ab370f4f7">Reservation</a>(const Ticket &amp;ticket, const char *password, const char *note)</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classReservation.html">Reservation</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation.html
new file mode 100644
index 0000000..eff838a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classReservation.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Reservation Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classReservation-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Reservation Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Each Reservations contains a ticket, a password and a note.
+ <a href="classReservation.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Reservation_8h_source.html">Reservation.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a63b283053695e6f50fa44c50da2b3de5"><td class="memItemLeft" align="right" valign="top"><a id="a63b283053695e6f50fa44c50da2b3de5" name="a63b283053695e6f50fa44c50da2b3de5"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Reservation</b> ()</td></tr>
+<tr class="memdesc:a63b283053695e6f50fa44c50da2b3de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets ticket as default value and leaves password and note blank. <br /></td></tr>
+<tr class="separator:a63b283053695e6f50fa44c50da2b3de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7320a032f87c7d45cf287a146c73695c"><td class="memItemLeft" align="right" valign="top"><a id="a7320a032f87c7d45cf287a146c73695c" name="a7320a032f87c7d45cf287a146c73695c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Reservation</b> (const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket)</td></tr>
+<tr class="memdesc:a7320a032f87c7d45cf287a146c73695c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets ticket and leaves password and note blank. <br /></td></tr>
+<tr class="separator:a7320a032f87c7d45cf287a146c73695c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6fdecd9bc06f3de2e28129ab370f4f7"><td class="memItemLeft" align="right" valign="top"><a id="ac6fdecd9bc06f3de2e28129ab370f4f7" name="ac6fdecd9bc06f3de2e28129ab370f4f7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Reservation</b> (const <a class="el" href="classTicket.html">Ticket</a> &amp;ticket, const char *password, const char *note)</td></tr>
+<tr class="memdesc:ac6fdecd9bc06f3de2e28129ab370f4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets ticket, password and note. <br /></td></tr>
+<tr class="separator:ac6fdecd9bc06f3de2e28129ab370f4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1b95b3d7c46f506dec4d275d6821cdb"><td class="memItemLeft" align="right" valign="top"><a id="af1b95b3d7c46f506dec4d275d6821cdb" name="af1b95b3d7c46f506dec4d275d6821cdb"></a>
+const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_ticket</b> () const</td></tr>
+<tr class="memdesc:af1b95b3d7c46f506dec4d275d6821cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant reference to ticket. <br /></td></tr>
+<tr class="separator:af1b95b3d7c46f506dec4d275d6821cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa34cd16a057a4a483e569ec5d7527ad9"><td class="memItemLeft" align="right" valign="top"><a id="aa34cd16a057a4a483e569ec5d7527ad9" name="aa34cd16a057a4a483e569ec5d7527ad9"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_password</b> () const</td></tr>
+<tr class="memdesc:aa34cd16a057a4a483e569ec5d7527ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant C-style string to password. <br /></td></tr>
+<tr class="separator:aa34cd16a057a4a483e569ec5d7527ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2285881510bf07f469bf360bb1050f12"><td class="memItemLeft" align="right" valign="top"><a id="a2285881510bf07f469bf360bb1050f12" name="a2285881510bf07f469bf360bb1050f12"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_note</b> () const</td></tr>
+<tr class="memdesc:a2285881510bf07f469bf360bb1050f12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns constant C-style string to note. <br /></td></tr>
+<tr class="separator:a2285881510bf07f469bf360bb1050f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03f0d1a522edb2c5fba7538f0c879573"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:a03f0d1a522edb2c5fba7538f0c879573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> from stream. <a href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">More...</a><br /></td></tr>
+<tr class="separator:a03f0d1a522edb2c5fba7538f0c879573"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1aba46b8e181750bd89fdfca6ff8ba32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a1aba46b8e181750bd89fdfca6ff8ba32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> to stream. <a href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">More...</a><br /></td></tr>
+<tr class="separator:a1aba46b8e181750bd89fdfca6ff8ba32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31cc66beeaf85befe2185dfc88086d38"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">compare</a> (const <a class="el" href="classReservation.html">Reservation</a> &amp;other) const</td></tr>
+<tr class="memdesc:a31cc66beeaf85befe2185dfc88086d38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two Reservations. <a href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">More...</a><br /></td></tr>
+<tr class="separator:a31cc66beeaf85befe2185dfc88086d38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a2b7331e532f77bbc67eab217bfeb1f25"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classReservation.html">Reservation</a> &amp;reservation)</td></tr>
+<tr class="memdesc:a2b7331e532f77bbc67eab217bfeb1f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> from stream with &gt;&gt; operator. <a href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">More...</a><br /></td></tr>
+<tr class="separator:a2b7331e532f77bbc67eab217bfeb1f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf734c0a55da55ef89dab1e2f12b8ebd"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classReservation.html">Reservation</a> &amp;reservation)</td></tr>
+<tr class="memdesc:abf734c0a55da55ef89dab1e2f12b8ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> to stream with &lt;&lt; operator. <a href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">More...</a><br /></td></tr>
+<tr class="separator:abf734c0a55da55ef89dab1e2f12b8ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Each Reservations contains a ticket, a password and a note. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a31cc66beeaf85befe2185dfc88086d38" name="a31cc66beeaf85befe2185dfc88086d38"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a31cc66beeaf85befe2185dfc88086d38">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Reservation::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classReservation.html">Reservation</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two Reservations. </p>
+<dl class="section return"><dt>Returns</dt><dd>Compares tickets </dd></dl>
+
+</div>
+</div>
+<a id="a03f0d1a522edb2c5fba7538f0c879573" name="a03f0d1a522edb2c5fba7538f0c879573"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03f0d1a522edb2c5fba7538f0c879573">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Reservation::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573" title="Reads Reservation from stream.">read()</a> function). Uses ticket's <a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573" title="Reads Reservation from stream.">read()</a> function.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a1aba46b8e181750bd89fdfca6ff8ba32" name="a1aba46b8e181750bd89fdfca6ff8ba32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1aba46b8e181750bd89fdfca6ff8ba32">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Reservation::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32" title="Writes Reservation to stream.">write()</a> function). Uses ticket's <a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32" title="Writes Reservation to stream.">write()</a> function.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="abf734c0a55da55ef89dab1e2f12b8ebd" name="abf734c0a55da55ef89dab1e2f12b8ebd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abf734c0a55da55ef89dab1e2f12b8ebd">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classReservation.html">Reservation</a> &amp;&#160;</td>
+ <td class="paramname"><em>reservation</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the ticket only.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a2b7331e532f77bbc67eab217bfeb1f25" name="a2b7331e532f77bbc67eab217bfeb1f25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b7331e532f77bbc67eab217bfeb1f25">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classReservation.html">Reservation</a> &amp;&#160;</td>
+ <td class="paramname"><em>reservation</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's &gt;&gt; operator to read and parse the ticket. Password and note are left blank.</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="Reservation_8h_source.html">Reservation.h</a></li>
+<li>src/Models/Reservation.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classString-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classString-members.html
new file mode 100644
index 0000000..806cff3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classString-members.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classString.html">String</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a>(const String &amp;other) const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">get_cstr</a>() const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">get_length</a>() const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a>(const char *str)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#aed8480111703abc1f281148c778b0445">operator+=</a>(unsigned number)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">operator&lt;&lt;</a></td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const String &amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(String &amp;&amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a1918adea635f3f340dbecd6fb05341f8">operator&gt;&gt;</a></td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">operator[]</a>(unsigned index)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a>(unsigned length)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">String</a>(const char *str)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>String</b>() (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>String</b>(const String &amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>String</b>(String &amp;&amp;other) (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~String</b>() (defined in <a class="el" href="classString.html">String</a>)</td><td class="entry"><a class="el" href="classString.html">String</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classString.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classString.html
new file mode 100644
index 0000000..7f0e1be
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classString.html
@@ -0,0 +1,388 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: String Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classString-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">String Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad3d65397e27bb3c4db1295208cfb1559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a> (unsigned length)</td></tr>
+<tr class="memdesc:ad3d65397e27bb3c4db1295208cfb1559"><td class="mdescLeft">&#160;</td><td class="mdescRight">The underlying array is allocated with length (+ 1) size. <a href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">More...</a><br /></td></tr>
+<tr class="separator:ad3d65397e27bb3c4db1295208cfb1559"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">String</a> (const char *str)</td></tr>
+<tr class="memdesc:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies str. <a href="classString.html#a3fba40cf6cb11735ffddc355a5ff68f4">More...</a><br /></td></tr>
+<tr class="separator:a3fba40cf6cb11735ffddc355a5ff68f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="memItemLeft" align="right" valign="top"><a id="a3d7f953737f3d4dca72d1cc4836f7dcc" name="a3d7f953737f3d4dca72d1cc4836f7dcc"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>get_cstr</b> () const</td></tr>
+<tr class="memdesc:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns internal C-style string. <br /></td></tr>
+<tr class="separator:a3d7f953737f3d4dca72d1cc4836f7dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7793a7e9a7601d4c724dcc85566259bf"><td class="memItemLeft" align="right" valign="top"><a id="a7793a7e9a7601d4c724dcc85566259bf" name="a7793a7e9a7601d4c724dcc85566259bf"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_length</b> () const</td></tr>
+<tr class="memdesc:a7793a7e9a7601d4c724dcc85566259bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of characters in string. <br /></td></tr>
+<tr class="separator:a7793a7e9a7601d4c724dcc85566259bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d3b77a51619a8580a373d2cd1092a54"><td class="memItemLeft" align="right" valign="top"><a id="a5d3b77a51619a8580a373d2cd1092a54" name="a5d3b77a51619a8580a373d2cd1092a54"></a>
+char &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned index)</td></tr>
+<tr class="memdesc:a5d3b77a51619a8580a373d2cd1092a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a character reference (from the underlying C-style string) at the given index. <br /></td></tr>
+<tr class="separator:a5d3b77a51619a8580a373d2cd1092a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">operator+=</a> (const char *str)</td></tr>
+<tr class="memdesc:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a C-style string. <a href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">More...</a><br /></td></tr>
+<tr class="separator:a64de9ab1af5df9397f8fbd8c79d5f4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed8480111703abc1f281148c778b0445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#aed8480111703abc1f281148c778b0445">operator+=</a> (unsigned number)</td></tr>
+<tr class="memdesc:aed8480111703abc1f281148c778b0445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a number. <a href="classString.html#aed8480111703abc1f281148c778b0445">More...</a><br /></td></tr>
+<tr class="separator:aed8480111703abc1f281148c778b0445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc158dffcdf56e601bd640cbacdfcd3c"><td class="memItemLeft" align="right" valign="top"><a id="afc158dffcdf56e601bd640cbacdfcd3c" name="afc158dffcdf56e601bd640cbacdfcd3c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>String</b> (const <a class="el" href="classString.html">String</a> &amp;other)</td></tr>
+<tr class="separator:afc158dffcdf56e601bd640cbacdfcd3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a734f34a0b7a42bcad30c368d6e8c5469"><td class="memItemLeft" align="right" valign="top"><a id="a734f34a0b7a42bcad30c368d6e8c5469" name="a734f34a0b7a42bcad30c368d6e8c5469"></a>
+<a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classString.html">String</a> &amp;other)</td></tr>
+<tr class="separator:a734f34a0b7a42bcad30c368d6e8c5469"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a553fcc11563b3d0f5c020309e8b68843"><td class="memItemLeft" align="right" valign="top"><a id="a553fcc11563b3d0f5c020309e8b68843" name="a553fcc11563b3d0f5c020309e8b68843"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>String</b> (<a class="el" href="classString.html">String</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a553fcc11563b3d0f5c020309e8b68843"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c0ede83ee25c89959a0c4369166d98a"><td class="memItemLeft" align="right" valign="top"><a id="a3c0ede83ee25c89959a0c4369166d98a" name="a3c0ede83ee25c89959a0c4369166d98a"></a>
+<a class="el" href="classString.html">String</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classString.html">String</a> &amp;&amp;other)</td></tr>
+<tr class="separator:a3c0ede83ee25c89959a0c4369166d98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad76bb9eca15651c67332808cdaad6344"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:ad76bb9eca15651c67332808cdaad6344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classString.html">String</a> from stream. <a href="classString.html#ad76bb9eca15651c67332808cdaad6344">More...</a><br /></td></tr>
+<tr class="separator:ad76bb9eca15651c67332808cdaad6344"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b0ea809587c21bc1d2b87bfee53e628"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a7b0ea809587c21bc1d2b87bfee53e628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classString.html">String</a> to stream. <a href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">More...</a><br /></td></tr>
+<tr class="separator:a7b0ea809587c21bc1d2b87bfee53e628"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f420d69fbe3de91711dc69148d23cc7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">compare</a> (const <a class="el" href="classString.html">String</a> &amp;other) const</td></tr>
+<tr class="memdesc:a3f420d69fbe3de91711dc69148d23cc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two strings. <a href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">More...</a><br /></td></tr>
+<tr class="separator:a3f420d69fbe3de91711dc69148d23cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a1918adea635f3f340dbecd6fb05341f8"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#a1918adea635f3f340dbecd6fb05341f8">operator&gt;&gt;</a> (std::istream &amp;istr, <a class="el" href="classString.html">String</a> &amp;event)</td></tr>
+<tr class="memdesc:a1918adea635f3f340dbecd6fb05341f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classString.html">String</a> from stream with &gt;&gt; operator. <a href="classString.html#a1918adea635f3f340dbecd6fb05341f8">More...</a><br /></td></tr>
+<tr class="separator:a1918adea635f3f340dbecd6fb05341f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa00d824f40064ff356aa7c15d6a9da12"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">operator&lt;&lt;</a> (std::ostream &amp;ostr, const <a class="el" href="classString.html">String</a> &amp;event)</td></tr>
+<tr class="memdesc:aa00d824f40064ff356aa7c15d6a9da12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classString.html">String</a> to stream with &lt;&lt; operator. <a href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">More...</a><br /></td></tr>
+<tr class="separator:aa00d824f40064ff356aa7c15d6a9da12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ad3d65397e27bb3c4db1295208cfb1559" name="ad3d65397e27bb3c4db1295208cfb1559"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3d65397e27bb3c4db1295208cfb1559">&#9670;&nbsp;</a></span>String() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">String::String </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>length</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The underlying array is allocated with length (+ 1) size. </p>
+<p >Allocated with length + 1 size, so there is a terminating zero at the end. </p>
+
+</div>
+</div>
+<a id="a3fba40cf6cb11735ffddc355a5ff68f4" name="a3fba40cf6cb11735ffddc355a5ff68f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3fba40cf6cb11735ffddc355a5ff68f4">&#9670;&nbsp;</a></span>String() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">String::String </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copies str. </p>
+<p >\params str C-style string </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a3f420d69fbe3de91711dc69148d23cc7" name="a3f420d69fbe3de91711dc69148d23cc7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f420d69fbe3de91711dc69148d23cc7">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int String::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two strings. </p>
+<p >\params other C-style string </p><dl class="section return"><dt>Returns</dt><dd>strcmp between underlying C-style string and "other" </dd></dl>
+
+</div>
+</div>
+<a id="a64de9ab1af5df9397f8fbd8c79d5f4b6" name="a64de9ab1af5df9397f8fbd8c79d5f4b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a64de9ab1af5df9397f8fbd8c79d5f4b6">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a C-style string. </p>
+<p >\params str C-style string </p>
+
+</div>
+</div>
+<a id="aed8480111703abc1f281148c778b0445" name="aed8480111703abc1f281148c778b0445"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed8480111703abc1f281148c778b0445">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classString.html">String</a> &amp; String::operator+= </td>
+ <td>(</td>
+ <td class="paramtype">unsigned&#160;</td>
+ <td class="paramname"><em>number</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Appends a number. </p>
+<p >Converts the number to a C-style string and then uses += to append it. </p>
+
+</div>
+</div>
+<a id="ad76bb9eca15651c67332808cdaad6344" name="ad76bb9eca15651c67332808cdaad6344"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad76bb9eca15651c67332808cdaad6344">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void String::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classString.html">String</a> from stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344" title="Reads String from stream.">read()</a> function). First reads the string length, then the underlying C-style string (including terminating zero).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a7b0ea809587c21bc1d2b87bfee53e628" name="a7b0ea809587c21bc1d2b87bfee53e628"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b0ea809587c21bc1d2b87bfee53e628">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void String::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classString.html">String</a> to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628" title="Writes String to stream.">write()</a> function). First writes the string length, then the underlying C-style string (including terminating zero).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="aa00d824f40064ff356aa7c15d6a9da12" name="aa00d824f40064ff356aa7c15d6a9da12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa00d824f40064ff356aa7c15d6a9da12">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>event</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classString.html">String</a> to stream with &lt;&lt; operator. </p>
+<p >Uses the stream's &lt;&lt; operator to write the underlying C-style string</p>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cout or text std::ofstream </dd></dl>
+
+</div>
+</div>
+<a id="a1918adea635f3f340dbecd6fb05341f8" name="a1918adea635f3f340dbecd6fb05341f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1918adea635f3f340dbecd6fb05341f8">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::istream &amp; operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
+ <td class="paramname"><em>event</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classString.html">String</a> from stream with &gt;&gt; operator. </p>
+<p >Uses the stream's getline function to read the data.</p>
+<dl class="section warning"><dt>Warning</dt><dd>It takes at most 1024 characters from the stream! </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with std::cin or text std::ifstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Generic/String/<a class="el" href="String_8h_source.html">String.h</a></li>
+<li>src/Generic/String/String.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket-members.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket-members.html
new file mode 100644
index 0000000..832c425
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Ticket Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classTicket.html">Ticket</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classTicket.html#a82a063f71be89f44dd969970855187c4">compare</a>(const Ticket &amp;other) const</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classTicket.html#a94476de3cd6711185527d0fe4df9a278">get_row</a>() const</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTicket.html#af7b64cb77a676d0f7bdb32255283f005">get_seat</a>() const</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">read</a>(std::istream &amp;istr)</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket</a>()</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classTicket.html#a6fa09371f1b70520b96dbb9ac9a71768">Ticket</a>(unsigned row, unsigned seat)</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">write</a>(std::ostream &amp;ostr) const</td><td class="entry"><a class="el" href="classTicket.html">Ticket</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket.html
new file mode 100644
index 0000000..fcb35eb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classTicket.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Ticket Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classTicket-members.html">List of all members</a> </div>
+ <div class="headertitle"><div class="title">Ticket Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Each <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> contains a row and a seat number.
+ <a href="classTicket.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="Ticket_8h_source.html">Ticket.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aba3a46c9223efb6ab0bde93a09403537"><td class="memItemLeft" align="right" valign="top"><a id="aba3a46c9223efb6ab0bde93a09403537" name="aba3a46c9223efb6ab0bde93a09403537"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Ticket</b> ()</td></tr>
+<tr class="memdesc:aba3a46c9223efb6ab0bde93a09403537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets row and seat to zeroes. <br /></td></tr>
+<tr class="separator:aba3a46c9223efb6ab0bde93a09403537"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fa09371f1b70520b96dbb9ac9a71768"><td class="memItemLeft" align="right" valign="top"><a id="a6fa09371f1b70520b96dbb9ac9a71768" name="a6fa09371f1b70520b96dbb9ac9a71768"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Ticket</b> (unsigned row, unsigned seat)</td></tr>
+<tr class="memdesc:a6fa09371f1b70520b96dbb9ac9a71768"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets row and seat. <br /></td></tr>
+<tr class="separator:a6fa09371f1b70520b96dbb9ac9a71768"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94476de3cd6711185527d0fe4df9a278"><td class="memItemLeft" align="right" valign="top"><a id="a94476de3cd6711185527d0fe4df9a278" name="a94476de3cd6711185527d0fe4df9a278"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_row</b> () const</td></tr>
+<tr class="memdesc:a94476de3cd6711185527d0fe4df9a278"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns row. <br /></td></tr>
+<tr class="separator:a94476de3cd6711185527d0fe4df9a278"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7b64cb77a676d0f7bdb32255283f005"><td class="memItemLeft" align="right" valign="top"><a id="af7b64cb77a676d0f7bdb32255283f005" name="af7b64cb77a676d0f7bdb32255283f005"></a>
+unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>get_seat</b> () const</td></tr>
+<tr class="memdesc:af7b64cb77a676d0f7bdb32255283f005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns seat. <br /></td></tr>
+<tr class="separator:af7b64cb77a676d0f7bdb32255283f005"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad2d0b7b92b54ec861db92c31f50f4ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">read</a> (std::istream &amp;istr)</td></tr>
+<tr class="memdesc:aad2d0b7b92b54ec861db92c31f50f4ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> from stram. <a href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">More...</a><br /></td></tr>
+<tr class="separator:aad2d0b7b92b54ec861db92c31f50f4ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a584a11f6236fc96f3bdbd0592d3f60f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">write</a> (std::ostream &amp;ostr) const</td></tr>
+<tr class="memdesc:a584a11f6236fc96f3bdbd0592d3f60f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> to stream. <a href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">More...</a><br /></td></tr>
+<tr class="separator:a584a11f6236fc96f3bdbd0592d3f60f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82a063f71be89f44dd969970855187c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTicket.html#a82a063f71be89f44dd969970855187c4">compare</a> (const <a class="el" href="classTicket.html">Ticket</a> &amp;other) const</td></tr>
+<tr class="memdesc:a82a063f71be89f44dd969970855187c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two Tickets. <a href="classTicket.html#a82a063f71be89f44dd969970855187c4">More...</a><br /></td></tr>
+<tr class="separator:a82a063f71be89f44dd969970855187c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Each <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> contains a row and a seat number. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a82a063f71be89f44dd969970855187c4" name="a82a063f71be89f44dd969970855187c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a82a063f71be89f44dd969970855187c4">&#9670;&nbsp;</a></span>compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Ticket::compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classTicket.html">Ticket</a> &amp;&#160;</td>
+ <td class="paramname"><em>other</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compares two Tickets. </p>
+<dl class="section return"><dt>Returns</dt><dd>If rows are equal, -1 if seat &lt; other.seat, 1 if seat &gt; other.seat, 0 if seat == other.seat, else the same, but for rows </dd></dl>
+
+</div>
+</div>
+<a id="aad2d0b7b92b54ec861db92c31f50f4ad" name="aad2d0b7b92b54ec861db92c31f50f4ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad2d0b7b92b54ec861db92c31f50f4ad">&#9670;&nbsp;</a></span>read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ticket::read </td>
+ <td>(</td>
+ <td class="paramtype">std::istream &amp;&#160;</td>
+ <td class="paramname"><em>istr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Reads <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> from stram. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">istr</td><td>An input stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly reads bytes from stream (calls <a class="el" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad" title="Reads Ticket from stram.">read()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ifstream </dd></dl>
+
+</div>
+</div>
+<a id="a584a11f6236fc96f3bdbd0592d3f60f4" name="a584a11f6236fc96f3bdbd0592d3f60f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a584a11f6236fc96f3bdbd0592d3f60f4">&#9670;&nbsp;</a></span>write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Ticket::write </td>
+ <td>(</td>
+ <td class="paramtype">std::ostream &amp;&#160;</td>
+ <td class="paramname"><em>ostr</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> to stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">ostr</td><td>An output stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Directly writes bytes to stream (calls <a class="el" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4" title="Writes Ticket to stream.">write()</a> function).</p>
+<dl class="section remark"><dt>Remarks</dt><dd>Doesn't alter the stream in any other way. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Best used with binary ofstream </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/Models/<a class="el" href="Ticket_8h_source.html">Ticket.h</a></li>
+<li>src/Models/Ticket.cpp</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/classes.html b/Year 1/Object-oriented Programming/Project 1/docs/html/classes.html
new file mode 100644
index 0000000..4e506c7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/classes.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class Index</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
+<dd><a class="el" href="classCommand.html">Command</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
+<dd><a class="el" href="classDate.html">Date</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
+<dd><a class="el" href="classEvent.html">Event</a></dd><dd><a class="el" href="classEventService.html">EventService</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
+<dd><a class="el" href="classHall.html">Hall</a></dd><dd><a class="el" href="classHallService.html">HallService</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
+<dd><a class="el" href="classList.html">List</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
+<dd><a class="el" href="classMenu.html">Menu</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_O" name="letter_O">O</a></dt>
+<dd><a class="el" href="classOrderedList.html">OrderedList</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
+<dd><a class="el" href="classReservation.html">Reservation</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
+<dd><a class="el" href="classString.html">String</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
+<dd><a class="el" href="classTicket.html">Ticket</a></dd></dl>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/closed.png b/Year 1/Object-oriented Programming/Project 1/docs/html/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/closed.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html
new file mode 100644
index 0000000..2fe1534
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_0b7ce500285c8e4ab35041e3e5c42da4.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/String Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">String Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="String_8h.html">String.h</a> <a href="String_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:String_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration of class <a class="el" href="classString.html">String</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html
new file mode 100644
index 0000000..08f3da1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: docs/doxygen Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_49e56c817e5e54854c35e136979f97ca.html">docs</a></li><li class="navelem"><a class="el" href="dir_359d2bec989c9a8deeeb9aee335c1c76.html">doxygen</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">doxygen Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_36df885461d6bd14211edf06510d126c.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_36df885461d6bd14211edf06510d126c.html
new file mode 100644
index 0000000..9d846a7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_36df885461d6bd14211edf06510d126c.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Models Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Models Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Event_8h.html">Event.h</a> <a href="Event_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Event_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Hall_8h.html">Hall.h</a> <a href="Hall_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Hall_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Reservation_8h.html">Reservation.h</a> <a href="Reservation_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Reservation_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Ticket_8h.html">Ticket.h</a> <a href="Ticket_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Ticket_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html
new file mode 100644
index 0000000..8372245
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_49e56c817e5e54854c35e136979f97ca.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: docs Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_49e56c817e5e54854c35e136979f97ca.html">docs</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">docs Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
new file mode 100644
index 0000000..577f8c1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">src Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html">Models</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html">main.cpp</a></td></tr>
+<tr class="memdesc:main_8cpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point for application. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_6aea3fadc932e04aa9fe3b3b27672cd7.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_6aea3fadc932e04aa9fe3b3b27672cd7.html
new file mode 100644
index 0000000..7f6a36a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_6aea3fadc932e04aa9fe3b3b27672cd7.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Services Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html">Services</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Services Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="EventService_8h.html">EventService.h</a> <a href="EventService_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:EventService_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="HallService_8h.html">HallService.h</a> <a href="HallService_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:HallService_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="StatusCode_8h.html">StatusCode.h</a> <a href="StatusCode_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:StatusCode_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration of enum StatusCode. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_7224707058fb4969194ce052045af3c4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_7224707058fb4969194ce052045af3c4.html
new file mode 100644
index 0000000..20e2c93
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_7224707058fb4969194ce052045af3c4.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/Date Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_7224707058fb4969194ce052045af3c4.html">Date</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Date Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Date_8h.html">Date.h</a> <a href="Date_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Date_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html
new file mode 100644
index 0000000..bb701d0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/UserInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html">UserInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">UserInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="FMITicketSystemConsoleUI_8h.html">FMITicketSystemConsoleUI.h</a> <a href="FMITicketSystemConsoleUI_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:FMITicketSystemConsoleUI_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration of runUI function. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html
new file mode 100644
index 0000000..8f6e326
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_b37d33ceb7f5c107fb027d4db224bc89.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Generic Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7224707058fb4969194ce052045af3c4.html">Date</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html">String</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html
new file mode 100644
index 0000000..8903f41
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_bba1b217f5afc342a21d50631c0a2103.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/List Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html">List</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">List Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="List_8hpp.html">List.hpp</a> <a href="List_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:List_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="OrderedList_8hpp.html">OrderedList.hpp</a> <a href="OrderedList_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:OrderedList_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores declaration and definition of templated class <a class="el" href="classOrderedList.html" title="Inherits List, but contains it&#39;s elements in a sorted manner.">OrderedList</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html
new file mode 100644
index 0000000..d1c1829
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dir_d8d09372644efb2ea8af4d02a2b08c8b.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/Generic/ConsoleInterface Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html">Generic</a></li><li class="navelem"><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html">ConsoleInterface</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">ConsoleInterface Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Command_8h.html">Command.h</a> <a href="Command_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Command_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Menu_8h.html">Menu.h</a> <a href="Menu_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:Menu_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Toolbox_8hpp.html">Toolbox.hpp</a> <a href="Toolbox_8hpp_source.html">[code]</a></td></tr>
+<tr class="memdesc:Toolbox_8hpp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a wide range of functions for simpler/more automated printing. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/doc.png b/Year 1/Object-oriented Programming/Project 1/docs/html/doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/doc.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.css b/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.css
new file mode 100644
index 0000000..9036737
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.css
@@ -0,0 +1,1841 @@
+/* The standard CSS for doxygen 1.9.3 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+ul.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+ column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+th p.starttd, th p.intertd, th p.endtd {
+ font-size: 100%;
+ font-weight: 700;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.navtab {
+ border-right: 1px solid #A3B4D7;
+ padding-right: 15px;
+ text-align: right;
+ line-height: 110%;
+}
+
+div.navtab table {
+ border-spacing: 0;
+}
+
+td.navtab {
+ padding-right: 6px;
+ padding-left: 6px;
+}
+td.navtabHL {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ padding-right: 6px;
+ padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+ font-weight: bold;
+}
+
+div.qindex{
+ text-align: center;
+ width: 100%;
+ line-height: 140%;
+ font-size: 130%;
+ color: #A0A0A0;
+}
+
+dt.alphachar{
+ font-size: 180%;
+ font-weight: bold;
+}
+
+.alphachar a{
+ color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+ text-decoration: none;
+}
+
+.classindex dl {
+ padding: 25px;
+ column-count:1
+}
+
+.classindex dd {
+ display:inline-block;
+ margin-left: 50px;
+ width: 90%;
+ line-height: 1.15em;
+}
+
+.classindex dl.odd {
+ background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+ .classindex dl {
+ column-count:2
+ }
+}
+
+@media(min-width: 1320px) {
+ .classindex dl {
+ column-count:3
+ }
+}
+
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+.contents a.qindexHL:visited {
+ color: #FFFFFF;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+ul {
+ overflow: visible;
+}
+
+#side-nav ul {
+ overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+ overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+ text-align: left;
+ direction: ltr;
+ overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+ overflow-y: hidden;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line:after {
+ content:"\000A";
+ white-space: pre;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ margin-right: 9px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+.lineno {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+div.ah, span.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #FFFFFF;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl, img.inline {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+.compoundTemplParams {
+ color: #4665A2;
+ font-size: 80%;
+ line-height: 120%;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+ border-left: 0;
+ border-right: 2px solid #9CAFD4;
+ margin: 0 4px 0 24px;
+ padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+ padding: 8px;
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ margin-bottom: -1px;
+ background-image: url('nav_f.png');
+ background-repeat: repeat-x;
+ background-color: #E2E8F2;
+ line-height: 1.25;
+ font-weight: 300;
+ float:left;
+}
+
+.permalink
+{
+ font-size: 65%;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: 400;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-color: #DFE5F1;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+ font-family: "courier new",courier,monospace;
+ font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype, .tparams .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir, .tparams .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #9CAFD4;
+ border-bottom: 1px solid #9CAFD4;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+.arrow {
+ color: #9CAFD4;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #728DC1;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable caption {
+ caption-side: top;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ font-weight: 400;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+table.classindex
+{
+ margin: 10px;
+ white-space: nowrap;
+ margin-left: 3%;
+ margin-right: 3%;
+ width: 94%;
+ border: 0;
+ border-spacing: 0;
+ padding: 0;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+ text-align: right;
+ direction: rtl;
+}
+
+dl {
+ padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+ margin-right: 0px;
+ padding-right: 0px;
+}
+
+dl.note {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #505050;
+}
+
+dl.todo {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug {
+ margin-left: -7px;
+ padding-left: 3px;
+ border-left: 4px solid;
+ border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectrow
+{
+ height: 56px;
+}
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectalign
+{
+ vertical-align: middle;
+ padding-left: 0.5em;
+}
+
+#projectname
+{
+ font: 200% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 90% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.plantumlgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+ text-align:right;
+ width:52px;
+}
+
+dl.citelist dd {
+ margin:2px 0 2px 72px;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 8px 10px 10px;
+ width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+ float: left !important;
+ text-align: right;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+ background-position-x: right !important;
+ padding-left: 0 !important;
+ padding-right: 10px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+span.emoji {
+ /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+ * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+ */
+}
+
+span.obfuscator {
+ display: none;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+ margin-left: 0 !important;
+ margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+ margin-left: 0 !important;
+ margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+ margin-left: 0 !important;
+ margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+ margin-left: 0 !important;
+ margin-right: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ /*white-space: nowrap;*/
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+ text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+ text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+ text-align: center
+}
+
+.DocNodeRTL {
+ text-align: right;
+ direction: rtl;
+}
+
+.DocNodeLTR {
+ text-align: left;
+ direction: ltr;
+}
+
+table.DocNodeRTL {
+ width: auto;
+ margin-right: 0;
+ margin-left: auto;
+}
+
+table.DocNodeLTR {
+ width: auto;
+ margin-right: auto;
+ margin-left: 0;
+}
+
+code.JavaDocCode
+ direction:ltr;
+}
+
+tt, code, kbd, samp
+{
+ display: inline-block;
+ direction:ltr;
+}
+/* @end */
+
+u {
+ text-decoration: underline;
+}
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.svg b/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.svg
new file mode 100644
index 0000000..d42dad5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/doxygen.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="a">
+ <stop stop-color="#5373B4" offset="0"/>
+ <stop stop-color="#7C95C6" offset="1"/>
+ </linearGradient>
+ <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#C0CCE3" offset="0"/>
+ <stop stop-color="#EEF1F7" offset="1"/>
+ </linearGradient>
+ <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+ <feGaussianBlur stdDeviation="0.45293203"/>
+ </filter>
+ </defs>
+ <g>
+ <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+ <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+ <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
+ <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+ <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/dynsections.js b/Year 1/Object-oriented Programming/Project 1/docs/html/dynsections.js
new file mode 100644
index 0000000..3174bd7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/dynsections.js
@@ -0,0 +1,121 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function() {
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+ a.html('&#9660;');
+ $(this).show();
+ } else if (l==level+1) {
+ i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+ a.html('&#9658;');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ // the clicked row
+ var currentRow = $('#row_'+id);
+
+ // all rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+ // only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() { return this.id.match(re); });
+
+ // first row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ // replace down arrow by right arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ currentRowSpans.filter(".arrow").html('&#9658;');
+ rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+ } else { // we are SHOWING
+ // replace right arrow by down arrow for current row
+ var currentRowSpans = currentRow.find("span");
+ currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+ currentRowSpans.filter(".arrow").html('&#9660;');
+ // replace down arrows by right arrows for child rows
+ var childRowsSpans = childRows.find("span");
+ childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+ childRowsSpans.filter(".arrow").html('&#9658;');
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/files.html b/Year 1/Object-oriented Programming/Project 1/docs/html/files.html
new file mode 100644
index 0000000..439d009
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/files.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">File List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_b37d33ceb7f5c107fb027d4db224bc89.html" target="_self">Generic</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_d8d09372644efb2ea8af4d02a2b08c8b.html" target="_self">ConsoleInterface</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Command_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Command_8h.html" target="_self">Command.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classCommand.html" title="Stores a 256 character name and a function pointer to be executed when calling run()">Command</a> </td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Menu_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Menu_8h.html" target="_self">Menu.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classMenu.html" title="Handles navigation between multiple commands.">Menu</a> </td></tr>
+<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Toolbox_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="Toolbox_8hpp.html" target="_self">Toolbox.hpp</a></td><td class="desc">Stores a wide range of functions for simpler/more automated printing </td></tr>
+<tr id="row_0_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_7224707058fb4969194ce052045af3c4.html" target="_self">Date</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="Date_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Date_8h.html" target="_self">Date.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a> </td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_2_" class="arrow" onclick="toggleFolder('0_0_2_')">&#9660;</span><span id="img_0_0_2_" class="iconfopen" onclick="toggleFolder('0_0_2_')">&#160;</span><a class="el" href="dir_bba1b217f5afc342a21d50631c0a2103.html" target="_self">List</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="List_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="List_8hpp.html" target="_self">List.hpp</a></td><td class="desc">Stores declaration and definition of templated class <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a> </td></tr>
+<tr id="row_0_0_2_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="OrderedList_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="OrderedList_8hpp.html" target="_self">OrderedList.hpp</a></td><td class="desc">Stores declaration and definition of templated class <a class="el" href="classOrderedList.html" title="Inherits List, but contains it&#39;s elements in a sorted manner.">OrderedList</a> </td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_3_" class="arrow" onclick="toggleFolder('0_0_3_')">&#9660;</span><span id="img_0_0_3_" class="iconfopen" onclick="toggleFolder('0_0_3_')">&#160;</span><a class="el" href="dir_0b7ce500285c8e4ab35041e3e5c42da4.html" target="_self">String</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="String_8h_source.html"><span class="icondoc"></span></a><a class="el" href="String_8h.html" target="_self">String.h</a></td><td class="desc">Stores declaration of class <a class="el" href="classString.html">String</a> </td></tr>
+<tr id="row_0_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_36df885461d6bd14211edf06510d126c.html" target="_self">Models</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Event_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Event_8h.html" target="_self">Event.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classEvent.html" title="Stores an event&#39;s hall, name, date, bought tickets and reservations.">Event</a> </td></tr>
+<tr id="row_0_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Hall_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Hall_8h.html" target="_self">Hall.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classHall.html" title="Each hall contains a number, rows and seats per row.">Hall</a> </td></tr>
+<tr id="row_0_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Reservation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Reservation_8h.html" target="_self">Reservation.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classReservation.html" title="Each Reservations contains a ticket, a password and a note.">Reservation</a> </td></tr>
+<tr id="row_0_1_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="Ticket_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Ticket_8h.html" target="_self">Ticket.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> </td></tr>
+<tr id="row_0_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="toggleFolder('0_2_')">&#9660;</span><span id="img_0_2_" class="iconfopen" onclick="toggleFolder('0_2_')">&#160;</span><a class="el" href="dir_6aea3fadc932e04aa9fe3b3b27672cd7.html" target="_self">Services</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="EventService_8h_source.html"><span class="icondoc"></span></a><a class="el" href="EventService_8h.html" target="_self">EventService.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> </td></tr>
+<tr id="row_0_2_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="HallService_8h_source.html"><span class="icondoc"></span></a><a class="el" href="HallService_8h.html" target="_self">HallService.h</a></td><td class="desc">Stores the declaration of class <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> </td></tr>
+<tr id="row_0_2_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="StatusCode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="StatusCode_8h.html" target="_self">StatusCode.h</a></td><td class="desc">Stores declaration of enum StatusCode </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_3_" class="arrow" onclick="toggleFolder('0_3_')">&#9660;</span><span id="img_0_3_" class="iconfopen" onclick="toggleFolder('0_3_')">&#160;</span><a class="el" href="dir_81e13ff2cf2ef9aa9f9e473f8360d78f.html" target="_self">UserInterface</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="FMITicketSystemConsoleUI_8h_source.html"><span class="icondoc"></span></a><a class="el" href="FMITicketSystemConsoleUI_8h.html" target="_self">FMITicketSystemConsoleUI.h</a></td><td class="desc">Stores declaration of runUI function </td></tr>
+<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc">Entry point for application </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/folderclosed.png b/Year 1/Object-oriented Programming/Project 1/docs/html/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/folderclosed.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/folderopen.png b/Year 1/Object-oriented Programming/Project 1/docs/html/folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/folderopen.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/functions.html b/Year 1/Object-oriented Programming/Project 1/docs/html/functions.html
new file mode 100644
index 0000000..2f0fd6d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/functions.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>add()&#160;:&#160;<a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt; T &gt;</a>, <a class="el" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">OrderedList&lt; T &gt;</a></li>
+<li>addCommand()&#160;:&#160;<a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>buyTicket()&#160;:&#160;<a class="el" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>cancelEvent()&#160;:&#160;<a class="el" href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">EventService</a></li>
+<li>cancelTicketReservation()&#160;:&#160;<a class="el" href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">EventService</a></li>
+<li>Command()&#160;:&#160;<a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a></li>
+<li>compare()&#160;:&#160;<a class="el" href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">Date</a>, <a class="el" href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">Event</a>, <a class="el" href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">Hall</a>, <a class="el" href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">Reservation</a>, <a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String</a>, <a class="el" href="classTicket.html#a82a063f71be89f44dd969970855187c4">Ticket</a></li>
+<li>contain()&#160;:&#160;<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt; T &gt;</a></li>
+<li>createEvent()&#160;:&#160;<a class="el" href="classEventService.html#a7a21a5909116215e402254510d6d81d6">EventService</a></li>
+<li>createSeatingString()&#160;:&#160;<a class="el" href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">EventService</a></li>
+<li>createString()&#160;:&#160;<a class="el" href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">Date</a></li>
+</ul>
+
+
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>Date()&#160;:&#160;<a class="el" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>Event()&#160;:&#160;<a class="el" href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event</a></li>
+<li>EventService()&#160;:&#160;<a class="el" href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>findIndex()&#160;:&#160;<a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>get_count()&#160;:&#160;<a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt; T &gt;</a></li>
+<li>get_cstr()&#160;:&#160;<a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String</a></li>
+<li>get_date()&#160;:&#160;<a class="el" href="classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293">Event</a></li>
+<li>get_day()&#160;:&#160;<a class="el" href="classDate.html#a2e4dc4249f8cccd40acc5950b42e1339">Date</a></li>
+<li>get_hall()&#160;:&#160;<a class="el" href="classEvent.html#ae3023ae2c487f46b3235f67554e58615">Event</a></li>
+<li>get_halls()&#160;:&#160;<a class="el" href="classHallService.html#a641fdcc475e094687713e94094e2a623">HallService</a></li>
+<li>get_length()&#160;:&#160;<a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String</a></li>
+<li>get_month()&#160;:&#160;<a class="el" href="classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc">Date</a></li>
+<li>get_name()&#160;:&#160;<a class="el" href="classEvent.html#a7bf717630c32826689df41e0bb3ecbce">Event</a></li>
+<li>get_note()&#160;:&#160;<a class="el" href="classReservation.html#a2285881510bf07f469bf360bb1050f12">Reservation</a></li>
+<li>get_number()&#160;:&#160;<a class="el" href="classHall.html#a84186aee50631f25b214f18f7b0dc178">Hall</a></li>
+<li>get_password()&#160;:&#160;<a class="el" href="classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9">Reservation</a></li>
+<li>get_reservations()&#160;:&#160;<a class="el" href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">Event</a></li>
+<li>get_row()&#160;:&#160;<a class="el" href="classTicket.html#a94476de3cd6711185527d0fe4df9a278">Ticket</a></li>
+<li>get_rows()&#160;:&#160;<a class="el" href="classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2">Hall</a></li>
+<li>get_seat()&#160;:&#160;<a class="el" href="classTicket.html#af7b64cb77a676d0f7bdb32255283f005">Ticket</a></li>
+<li>get_seatsPerRow()&#160;:&#160;<a class="el" href="classHall.html#a42e1cd716086d8a42a627e00cde17a7e">Hall</a></li>
+<li>get_ticket()&#160;:&#160;<a class="el" href="classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb">Reservation</a></li>
+<li>get_tickets()&#160;:&#160;<a class="el" href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">Event</a></li>
+<li>get_year()&#160;:&#160;<a class="el" href="classDate.html#a025aae2b290ba357e049d054085f91e3">Date</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>Hall()&#160;:&#160;<a class="el" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a></li>
+<li>HallService()&#160;:&#160;<a class="el" href="classHallService.html#a57a8117d8d510afb5351a3f7efc18dff">HallService</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>insert()&#160;:&#160;<a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">OrderedList&lt; T &gt;</a></li>
+<li>insertAt()&#160;:&#160;<a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt; T &gt;</a>, <a class="el" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">OrderedList&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>List()&#160;:&#160;<a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List&lt; T &gt;</a></li>
+<li>load()&#160;:&#160;<a class="el" href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">EventService</a>, <a class="el" href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">HallService</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>Menu()&#160;:&#160;<a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>navigate()&#160;:&#160;<a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator+=()&#160;:&#160;<a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt; T &gt;</a>, <a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String</a></li>
+<li>operator&lt;&lt;&#160;:&#160;<a class="el" href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">Reservation</a>, <a class="el" href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">String</a></li>
+<li>operator&gt;&gt;&#160;:&#160;<a class="el" href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">Reservation</a>, <a class="el" href="classString.html#a1918adea635f3f340dbecd6fb05341f8">String</a></li>
+<li>operator[]()&#160;:&#160;<a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt; T &gt;</a>, <a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String</a></li>
+</ul>
+
+
+<h3><a id="index_q" name="index_q"></a>- q -</h3><ul>
+<li>queryInsufficientlyVisited()&#160;:&#160;<a class="el" href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">EventService</a></li>
+<li>queryMostWatched()&#160;:&#160;<a class="el" href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>read()&#160;:&#160;<a class="el" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">Date</a>, <a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">Event</a>, <a class="el" href="classHall.html#acef974f302d8131ef4608e15f96c2df9">Hall</a>, <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt; T &gt;</a>, <a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">Reservation</a>, <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">String</a>, <a class="el" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">Ticket</a></li>
+<li>registerError()&#160;:&#160;<a class="el" href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">Menu</a></li>
+<li>registerSuccess()&#160;:&#160;<a class="el" href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">Menu</a></li>
+<li>registerWarning()&#160;:&#160;<a class="el" href="classMenu.html#a5350b1addf9bf365351486cd161696ad">Menu</a></li>
+<li>removeAt()&#160;:&#160;<a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt; T &gt;</a></li>
+<li>reportBoughtTickets()&#160;:&#160;<a class="el" href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">EventService</a></li>
+<li>reportReservations()&#160;:&#160;<a class="el" href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">EventService</a></li>
+<li>Reservation()&#160;:&#160;<a class="el" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a></li>
+<li>reserveTicket()&#160;:&#160;<a class="el" href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">EventService</a></li>
+<li>run()&#160;:&#160;<a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">Command</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>save()&#160;:&#160;<a class="el" href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">EventService</a>, <a class="el" href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">HallService</a></li>
+<li>set_day()&#160;:&#160;<a class="el" href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">Date</a></li>
+<li>set_month()&#160;:&#160;<a class="el" href="classDate.html#ad0a591a557ddde0871389c3d716e6044">Date</a></li>
+<li>set_year()&#160;:&#160;<a class="el" href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">Date</a></li>
+<li>String()&#160;:&#160;<a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>Ticket()&#160;:&#160;<a class="el" href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket</a></li>
+<li>ticketIsReserved()&#160;:&#160;<a class="el" href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>write()&#160;:&#160;<a class="el" href="classDate.html#a9c728831f35f27abf3348132a13b7844">Date</a>, <a class="el" href="classEvent.html#a05a302aa998977c30950987c07f0fbba">Event</a>, <a class="el" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">Hall</a>, <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt; T &gt;</a>, <a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">Reservation</a>, <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String</a>, <a class="el" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">Ticket</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/functions_func.html b/Year 1/Object-oriented Programming/Project 1/docs/html/functions_func.html
new file mode 100644
index 0000000..9465932
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/functions_func.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>add()&#160;:&#160;<a class="el" href="classList.html#abfec4f2e7990d06c143852ecfdf907bb">List&lt; T &gt;</a>, <a class="el" href="classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd">OrderedList&lt; T &gt;</a></li>
+<li>addCommand()&#160;:&#160;<a class="el" href="classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>buyTicket()&#160;:&#160;<a class="el" href="classEventService.html#ac447cac3e4974b9cc676d9bb90152979">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>cancelEvent()&#160;:&#160;<a class="el" href="classEventService.html#ac7ea565af5ad78e84749558477ceaf26">EventService</a></li>
+<li>cancelTicketReservation()&#160;:&#160;<a class="el" href="classEventService.html#aa6fd620de878f225f7c51bb0df6ea749">EventService</a></li>
+<li>Command()&#160;:&#160;<a class="el" href="classCommand.html#a18df2d81039392daeb0b78c346a70537">Command</a></li>
+<li>compare()&#160;:&#160;<a class="el" href="classDate.html#a3cda588bf2f65b84639303a1aa1105be">Date</a>, <a class="el" href="classEvent.html#af5c84a902db8f29f8b8737026011f1f6">Event</a>, <a class="el" href="classHall.html#a4259837f943c488c6b15ed6c80d5f30b">Hall</a>, <a class="el" href="classReservation.html#a31cc66beeaf85befe2185dfc88086d38">Reservation</a>, <a class="el" href="classString.html#a3f420d69fbe3de91711dc69148d23cc7">String</a>, <a class="el" href="classTicket.html#a82a063f71be89f44dd969970855187c4">Ticket</a></li>
+<li>contain()&#160;:&#160;<a class="el" href="classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1">List&lt; T &gt;</a></li>
+<li>createEvent()&#160;:&#160;<a class="el" href="classEventService.html#a7a21a5909116215e402254510d6d81d6">EventService</a></li>
+<li>createSeatingString()&#160;:&#160;<a class="el" href="classEventService.html#a7f4632e3beae5d24087047ab0223f85e">EventService</a></li>
+<li>createString()&#160;:&#160;<a class="el" href="classDate.html#a6e00ace9f8c923c96188bd76f1e064c2">Date</a></li>
+</ul>
+
+
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>Date()&#160;:&#160;<a class="el" href="classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd">Date</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>Event()&#160;:&#160;<a class="el" href="classEvent.html#a5a40dd4708297f7031e29b39e039ae10">Event</a></li>
+<li>EventService()&#160;:&#160;<a class="el" href="classEventService.html#a9b30bb95890abac259ba27b53cabe545">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>findIndex()&#160;:&#160;<a class="el" href="classList.html#a3804f03273ef5e339b504e439c5b6534">List&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>get_count()&#160;:&#160;<a class="el" href="classList.html#a3c1e3a3fc085f5b7ae68514c4758687b">List&lt; T &gt;</a></li>
+<li>get_cstr()&#160;:&#160;<a class="el" href="classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc">String</a></li>
+<li>get_date()&#160;:&#160;<a class="el" href="classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293">Event</a></li>
+<li>get_day()&#160;:&#160;<a class="el" href="classDate.html#a2e4dc4249f8cccd40acc5950b42e1339">Date</a></li>
+<li>get_hall()&#160;:&#160;<a class="el" href="classEvent.html#ae3023ae2c487f46b3235f67554e58615">Event</a></li>
+<li>get_halls()&#160;:&#160;<a class="el" href="classHallService.html#a641fdcc475e094687713e94094e2a623">HallService</a></li>
+<li>get_length()&#160;:&#160;<a class="el" href="classList.html#aa32109b77dccd8241b125ebabdda876c">List&lt; T &gt;</a>, <a class="el" href="classString.html#a7793a7e9a7601d4c724dcc85566259bf">String</a></li>
+<li>get_month()&#160;:&#160;<a class="el" href="classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc">Date</a></li>
+<li>get_name()&#160;:&#160;<a class="el" href="classEvent.html#a7bf717630c32826689df41e0bb3ecbce">Event</a></li>
+<li>get_note()&#160;:&#160;<a class="el" href="classReservation.html#a2285881510bf07f469bf360bb1050f12">Reservation</a></li>
+<li>get_number()&#160;:&#160;<a class="el" href="classHall.html#a84186aee50631f25b214f18f7b0dc178">Hall</a></li>
+<li>get_password()&#160;:&#160;<a class="el" href="classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9">Reservation</a></li>
+<li>get_reservations()&#160;:&#160;<a class="el" href="classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f">Event</a></li>
+<li>get_row()&#160;:&#160;<a class="el" href="classTicket.html#a94476de3cd6711185527d0fe4df9a278">Ticket</a></li>
+<li>get_rows()&#160;:&#160;<a class="el" href="classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2">Hall</a></li>
+<li>get_seat()&#160;:&#160;<a class="el" href="classTicket.html#af7b64cb77a676d0f7bdb32255283f005">Ticket</a></li>
+<li>get_seatsPerRow()&#160;:&#160;<a class="el" href="classHall.html#a42e1cd716086d8a42a627e00cde17a7e">Hall</a></li>
+<li>get_ticket()&#160;:&#160;<a class="el" href="classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb">Reservation</a></li>
+<li>get_tickets()&#160;:&#160;<a class="el" href="classEvent.html#a16a84fced8e02f756232c54c27bb22ad">Event</a></li>
+<li>get_year()&#160;:&#160;<a class="el" href="classDate.html#a025aae2b290ba357e049d054085f91e3">Date</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>Hall()&#160;:&#160;<a class="el" href="classHall.html#a122ed8085be305339c89cadb3e360b86">Hall</a></li>
+<li>HallService()&#160;:&#160;<a class="el" href="classHallService.html#a57a8117d8d510afb5351a3f7efc18dff">HallService</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>insert()&#160;:&#160;<a class="el" href="classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b">OrderedList&lt; T &gt;</a></li>
+<li>insertAt()&#160;:&#160;<a class="el" href="classList.html#ae4586debf72af33bccb3c2fbfce420e8">List&lt; T &gt;</a>, <a class="el" href="classOrderedList.html#a45af729846bacc77fc8292e5d0690f99">OrderedList&lt; T &gt;</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>List()&#160;:&#160;<a class="el" href="classList.html#a93cd36efc12aa5ef5fc28866edce7e61">List&lt; T &gt;</a></li>
+<li>load()&#160;:&#160;<a class="el" href="classEventService.html#a1225c23dae83fa928da47113cd1c5617">EventService</a>, <a class="el" href="classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae">HallService</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>Menu()&#160;:&#160;<a class="el" href="classMenu.html#ad466dd83355124a6ed958430450bfe94">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>navigate()&#160;:&#160;<a class="el" href="classMenu.html#a0400751da7f8583029b7a12d3003c36d">Menu</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator+=()&#160;:&#160;<a class="el" href="classList.html#aa4332ce5a589da28528f035ded6d41e5">List&lt; T &gt;</a>, <a class="el" href="classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6">String</a></li>
+<li>operator[]()&#160;:&#160;<a class="el" href="classList.html#a321bb581943398344aad07198d1f02ac">List&lt; T &gt;</a>, <a class="el" href="classString.html#a5d3b77a51619a8580a373d2cd1092a54">String</a></li>
+</ul>
+
+
+<h3><a id="index_q" name="index_q"></a>- q -</h3><ul>
+<li>queryInsufficientlyVisited()&#160;:&#160;<a class="el" href="classEventService.html#a814de3510f72150f2e54d44f8c8948bb">EventService</a></li>
+<li>queryMostWatched()&#160;:&#160;<a class="el" href="classEventService.html#a6700bd4f9da6d12a47812b9c8549556e">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>read()&#160;:&#160;<a class="el" href="classDate.html#a982c0c9098056aa33c5cbc9eba093852">Date</a>, <a class="el" href="classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf">Event</a>, <a class="el" href="classHall.html#acef974f302d8131ef4608e15f96c2df9">Hall</a>, <a class="el" href="classList.html#a5e3581ee07649f462aa8bb3221a5466e">List&lt; T &gt;</a>, <a class="el" href="classReservation.html#a03f0d1a522edb2c5fba7538f0c879573">Reservation</a>, <a class="el" href="classString.html#ad76bb9eca15651c67332808cdaad6344">String</a>, <a class="el" href="classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad">Ticket</a></li>
+<li>registerError()&#160;:&#160;<a class="el" href="classMenu.html#aad506cb9a7f35dea98c60484bb2d095c">Menu</a></li>
+<li>registerSuccess()&#160;:&#160;<a class="el" href="classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c">Menu</a></li>
+<li>registerWarning()&#160;:&#160;<a class="el" href="classMenu.html#a5350b1addf9bf365351486cd161696ad">Menu</a></li>
+<li>removeAt()&#160;:&#160;<a class="el" href="classList.html#ad9c0a5b5bca6286f458d6fab280de65a">List&lt; T &gt;</a></li>
+<li>reportBoughtTickets()&#160;:&#160;<a class="el" href="classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e">EventService</a></li>
+<li>reportReservations()&#160;:&#160;<a class="el" href="classEventService.html#a277194aea79a2c9bf955b7706a20c54c">EventService</a></li>
+<li>Reservation()&#160;:&#160;<a class="el" href="classReservation.html#a63b283053695e6f50fa44c50da2b3de5">Reservation</a></li>
+<li>reserveTicket()&#160;:&#160;<a class="el" href="classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb">EventService</a></li>
+<li>run()&#160;:&#160;<a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce">Command</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>save()&#160;:&#160;<a class="el" href="classEventService.html#a5aac3df17ef30f84c1c28277c256ec32">EventService</a>, <a class="el" href="classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2">HallService</a></li>
+<li>set_day()&#160;:&#160;<a class="el" href="classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08">Date</a></li>
+<li>set_month()&#160;:&#160;<a class="el" href="classDate.html#ad0a591a557ddde0871389c3d716e6044">Date</a></li>
+<li>set_year()&#160;:&#160;<a class="el" href="classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae">Date</a></li>
+<li>String()&#160;:&#160;<a class="el" href="classString.html#ad3d65397e27bb3c4db1295208cfb1559">String</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>Ticket()&#160;:&#160;<a class="el" href="classTicket.html#aba3a46c9223efb6ab0bde93a09403537">Ticket</a></li>
+<li>ticketIsReserved()&#160;:&#160;<a class="el" href="classEventService.html#ad1efbed6111da8e755d86b5bc9ada806">EventService</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>write()&#160;:&#160;<a class="el" href="classDate.html#a9c728831f35f27abf3348132a13b7844">Date</a>, <a class="el" href="classEvent.html#a05a302aa998977c30950987c07f0fbba">Event</a>, <a class="el" href="classHall.html#a0239d59ab0f832f16cf35c820d0eba5a">Hall</a>, <a class="el" href="classList.html#a8d2babffd2fb4a5e0a40dbd306e19956">List&lt; T &gt;</a>, <a class="el" href="classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32">Reservation</a>, <a class="el" href="classString.html#a7b0ea809587c21bc1d2b87bfee53e628">String</a>, <a class="el" href="classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4">Ticket</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/functions_rela.html b/Year 1/Object-oriented Programming/Project 1/docs/html/functions_rela.html
new file mode 100644
index 0000000..e1e48e7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/functions_rela.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class Members - Related Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>operator&lt;&lt;&#160;:&#160;<a class="el" href="classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd">Reservation</a>, <a class="el" href="classString.html#aa00d824f40064ff356aa7c15d6a9da12">String</a></li>
+<li>operator&gt;&gt;&#160;:&#160;<a class="el" href="classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25">Reservation</a>, <a class="el" href="classString.html#a1918adea635f3f340dbecd6fb05341f8">String</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/globals.html b/Year 1/Object-oriented Programming/Project 1/docs/html/globals.html
new file mode 100644
index 0000000..7f68fc2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/globals.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
+
+<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
+<li>_printInputBoxLabel()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">Toolbox.hpp</a></li>
+<li>_printOrderedListBeginning()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">Toolbox.hpp</a></li>
+<li>_printSubBoxSpacing()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>clear()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">Toolbox.hpp</a></li>
+<li>configureEventInsertionOp()&#160;:&#160;<a class="el" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">Event.h</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>errorBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">Toolbox.hpp</a></li>
+<li>errorSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>inputBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e">Toolbox.hpp</a></li>
+<li>inputLineBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">Toolbox.hpp</a></li>
+<li>inputLineSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">Toolbox.hpp</a></li>
+<li>inputSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>main()&#160;:&#160;<a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator&lt;&lt;()&#160;:&#160;<a class="el" href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">Date.h</a>, <a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">List.hpp</a>, <a class="el" href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">Event.h</a>, <a class="el" href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">Hall.h</a>, <a class="el" href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">Ticket.h</a></li>
+<li>operator&gt;&gt;()&#160;:&#160;<a class="el" href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">Date.h</a>, <a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">List.hpp</a>, <a class="el" href="Event_8h.html#a31d9c76919809491b346728ec6659b19">Event.h</a>, <a class="el" href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">Hall.h</a>, <a class="el" href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">Ticket.h</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>pressEnterToContinue()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">Toolbox.hpp</a></li>
+<li>print()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">Toolbox.hpp</a></li>
+<li>printLine()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">Toolbox.hpp</a></li>
+<li>printOrderedListElem()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>read()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">Toolbox.hpp</a></li>
+<li>resetOrderedList()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">Toolbox.hpp</a></li>
+<li>runUI()&#160;:&#160;<a class="el" href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">FMITicketSystemConsoleUI.h</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>StatusCode&#160;:&#160;<a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode.h</a></li>
+<li>subTitleBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">Toolbox.hpp</a></li>
+<li>successBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">Toolbox.hpp</a></li>
+<li>successSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>table()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">Toolbox.hpp</a></li>
+<li>titleBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>warningBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">Toolbox.hpp</a></li>
+<li>warningSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">Toolbox.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/globals_enum.html b/Year 1/Object-oriented Programming/Project 1/docs/html/globals_enum.html
new file mode 100644
index 0000000..8f5e05c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/globals_enum.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>StatusCode&#160;:&#160;<a class="el" href="StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113">StatusCode.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/globals_func.html b/Year 1/Object-oriented Programming/Project 1/docs/html/globals_func.html
new file mode 100644
index 0000000..18c7680
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/globals_func.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
+<li>_printInputBoxLabel()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d">Toolbox.hpp</a></li>
+<li>_printOrderedListBeginning()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad">Toolbox.hpp</a></li>
+<li>_printSubBoxSpacing()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>clear()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">Toolbox.hpp</a></li>
+<li>configureEventInsertionOp()&#160;:&#160;<a class="el" href="Event_8h.html#ad423797aa9adadabb5651f8955c001bb">Event.h</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>errorBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d">Toolbox.hpp</a></li>
+<li>errorSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>inputBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e">Toolbox.hpp</a></li>
+<li>inputLineBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf">Toolbox.hpp</a></li>
+<li>inputLineSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2">Toolbox.hpp</a></li>
+<li>inputSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>main()&#160;:&#160;<a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>operator&lt;&lt;()&#160;:&#160;<a class="el" href="Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76">Date.h</a>, <a class="el" href="List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2">List.hpp</a>, <a class="el" href="Event_8h.html#a08eaf45abee385d26c4934afeb9be163">Event.h</a>, <a class="el" href="Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477">Hall.h</a>, <a class="el" href="Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce">Ticket.h</a></li>
+<li>operator&gt;&gt;()&#160;:&#160;<a class="el" href="Date_8h.html#ae020cf1772268f1a43d172d3adfc9797">Date.h</a>, <a class="el" href="List_8hpp.html#a7469c3479753bfbada761697c539aa07">List.hpp</a>, <a class="el" href="Event_8h.html#a31d9c76919809491b346728ec6659b19">Event.h</a>, <a class="el" href="Hall_8h.html#ac55d9db507637effdb1896e33c86d439">Hall.h</a>, <a class="el" href="Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920">Ticket.h</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>pressEnterToContinue()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832">Toolbox.hpp</a></li>
+<li>print()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73">Toolbox.hpp</a></li>
+<li>printLine()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81">Toolbox.hpp</a></li>
+<li>printOrderedListElem()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>read()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787">Toolbox.hpp</a></li>
+<li>resetOrderedList()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108">Toolbox.hpp</a></li>
+<li>runUI()&#160;:&#160;<a class="el" href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3">FMITicketSystemConsoleUI.h</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>subTitleBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120">Toolbox.hpp</a></li>
+<li>successBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a">Toolbox.hpp</a></li>
+<li>successSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>table()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5">Toolbox.hpp</a></li>
+<li>titleBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b">Toolbox.hpp</a></li>
+</ul>
+
+
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>warningBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052">Toolbox.hpp</a></li>
+<li>warningSubBox()&#160;:&#160;<a class="el" href="Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92">Toolbox.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/hierarchy.html b/Year 1/Object-oriented Programming/Project 1/docs/html/hierarchy.html
new file mode 100644
index 0000000..9e156e5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/hierarchy.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle"><div class="title">Class Hierarchy</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCommand.html" target="_self">Command</a></td><td class="desc">Stores a 256 character name and a function pointer to be executed when calling <a class="el" href="classCommand.html#a44689093b812bfc97b2787c2ba0303ce" title="Executes the stored function pointer.">run()</a> </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDate.html" target="_self">Date</a></td><td class="desc">Stores a day, month and year </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEvent.html" target="_self">Event</a></td><td class="desc">Stores an event's hall, name, date, bought tickets and reservations </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEventService.html" target="_self">EventService</a></td><td class="desc">Each <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> stores all events and a pointer to <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHall.html" target="_self">Hall</a></td><td class="desc">Each hall contains a number, rows and seats per row </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHallService.html" target="_self">HallService</a></td><td class="desc">Each <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> stores all halls </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; T &gt;</a></td><td class="desc">Templated class that stores an array of elements in dynamic memory </td></tr>
+<tr id="row_6_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList&lt; T &gt;</a></td><td class="desc">Inherits <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>, but contains it's elements in a sorted manner </td></tr>
+<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Command &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Event &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList&lt; Event &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Hall &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList&lt; Hall &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_10_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_10_" class="arrow" onclick="toggleFolder('10_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Reservation &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_10_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList&lt; Reservation &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classList.html" target="_self">List&lt; Ticket &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_11_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOrderedList.html" target="_self">OrderedList&lt; Ticket &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMenu.html" target="_self">Menu</a></td><td class="desc">Handles navigation between multiple commands </td></tr>
+<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classReservation.html" target="_self">Reservation</a></td><td class="desc">Each Reservations contains a ticket, a password and a note </td></tr>
+<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc"></td></tr>
+<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTicket.html" target="_self">Ticket</a></td><td class="desc">Each <a class="el" href="classTicket.html" title="Each Ticket contains a row and a seat number.">Ticket</a> contains a row and a seat number </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/index.html b/Year 1/Object-oriented Programming/Project 1/docs/html/index.html
new file mode 100644
index 0000000..ae068ae
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/index.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: FMI Tickets System</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div><div class="header">
+ <div class="headertitle"><div class="title">FMI Tickets System </div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p ><a class="anchor" id="mainpage"></a> </p><dl class="section author"><dt>Author</dt><dd>Kamen Mladenov; FMI Computer Science, Year 1, Group 6; Project 1, Topic 4 </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>12 May 2022 </dd></dl>
+<dl class="section copyright"><dt>Copyright</dt><dd>GNU General Public License v3.0</dd></dl>
+<dl>
+<dt>Source Code </dt>
+<dd><a href="https://github.com/Syndamia/FMI-OOP-P1_TicketSystem">https://github.com/Syndamia/FMI-OOP-P1_TicketSystem</a> </dd>
+</dl>
+<h1><a class="anchor" id="autotoc_md0"></a>
+About</h1>
+<p >The "FMI Ticket System" is a small project, designed for managing the seats for different events. You can create or cancel an event in any available hall, reserve or straight out buy tickets for any given event and create some reports.</p>
+<h1><a class="anchor" id="autotoc_md1"></a>
+Structure overview</h1>
+<p >The project is roughly divided into 4 main components: User Interface, Services, Models and Generic <a class="el" href="index.html#fig1">fig1</a>.</p><ul>
+<li>The User Interface is the messenger between a user and the underlying application. All input and output is handled here.</li>
+<li>Services contain the business logic of the whole application. All requests to do anything like buying a ticket or creating an event must be sent to here.</li>
+<li>Models are the general classes that are used in the previous two layers.</li>
+<li>Generic is a place for all code that is can be used independently from the project. Stuff like <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a>, <a class="el" href="classString.html">String</a> or <a class="el" href="classList.html" title="Templated class that stores an array of elements in dynamic memory.">List</a>.</li>
+</ul>
+<p >This offers a fairly modular and flexible architecture, which should make big changes or additions to the code easier and more pain-free.</p>
+<h1><a class="anchor" id="autotoc_md2"></a>
+Building the project</h1>
+<p >Instructions are all for <code>gcc</code>. All commands should be executed while in the <code>src</code> folder.</p>
+<h2><a class="anchor" id="autotoc_md3"></a>
+Linux/BSD/MacOS</h2>
+<div class="fragment"><div class="line">g++ *.cpp */*.cpp */*/*.cpp -o TicketSystem.out &amp;&amp; ./TicketSystem.out</div>
+</div><!-- fragment --><h2><a class="anchor" id="autotoc_md4"></a>
+Windows (PowerShell)</h2>
+<div class="fragment"><div class="line">g++ (Get-ChildItem -Recurse *.cpp) -o TicketSystem.exe &amp;&amp; ./TicketSystem.exe</div>
+</div><!-- fragment --><h1><a class="anchor" id="autotoc_md5"></a>
+Running the tests</h1>
+<p >Instructions are all for <code>gcc</code>. All commands should be executed while in the <code>tests</code> folder.</p>
+<h2><a class="anchor" id="autotoc_md6"></a>
+Linux/BSD/MacOS</h2>
+<div class="fragment"><div class="line">g++ Tests_ALL.cpp ../src/*/*.cpp ../src/*/*/*.cpp -o Tests_ALL.out &amp;&amp; ./Tests_ALL.out</div>
+</div><!-- fragment --><h1><a class="anchor" id="autotoc_md7"></a>
+Acknowledgements</h1>
+<dl>
+<dt>Wikipedia </dt>
+<dd>Leap year calculation for <a class="el" href="classDate.html" title="Stores a day, month and year.">Date</a> <br />
+ <a href="https://en.wikipedia.org/wiki/Leap_year#Gregorian_calendar">https://en.wikipedia.org/wiki/Leap_year#Gregorian_calendar</a> </dd>
+<dt>StackOverflow </dt>
+<dd>Way to clear the console in <a class="el" href="Toolbox_8hpp.html" title="Stores a wide range of functions for simpler/more automated printing.">Toolbox.hpp</a> <br />
+ <a href="https://stackoverflow.com/a/52895729/12036073">https://stackoverflow.com/a/52895729/12036073</a> </dd>
+</dl>
+<h1><a class="anchor" id="autotoc_md8"></a>
+Figures</h1>
+<p ><a class="anchor" id="fig1"></a><b>Figure 1:</b> Overview of the "FMI Ticket System" design</p>
+<div class="image">
+<object type="image/svg+xml" data="FMI-OOP-P1_TicketSystem Overview.svg" style="pointer-events: none;"></object>
+</div>
+ </div></div><!-- PageDoc -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/jquery.js b/Year 1/Object-oriented Programming/Project 1/docs/html/jquery.js
new file mode 100644
index 0000000..c9ed3d9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/jquery.js
@@ -0,0 +1,35 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+/*!
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ * jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
+ * http://www.smartmenus.org/
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/main_8cpp.html b/Year 1/Object-oriented Programming/Project 1/docs/html/main_8cpp.html
new file mode 100644
index 0000000..dc12ecd
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/main_8cpp.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>FMI Ticket System: src/main.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectalign">
+ <div id="projectname">FMI Ticket System
+ </div>
+ <div id="projectbrief">| Kamen Mladenov | FMI Computer Science Year 1 Group 6 | Project 1 | Project Topic 4 |</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">main.cpp File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Entry point for application.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="EventService_8h_source.html">Services/EventService.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="HallService_8h_source.html">Services/HallService.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="Hall_8h_source.html">Models/Hall.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="FMITicketSystemConsoleUI_8h_source.html">UserInterface/FMITicketSystemConsoleUI.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
+<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Entry point for application. </p>
+<p >Contains the <a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a> function. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int main </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p >Creates instances of <a class="el" href="classHallService.html" title="Each HallService stores all halls.">HallService</a> and <a class="el" href="classEventService.html" title="Each EventService stores all events and a pointer to HallService.">EventService</a> and executes <a class="el" href="FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3" title="Runs the console interface for the ticket system.">runUI()</a> function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/menu.js b/Year 1/Object-oriented Programming/Project 1/docs/html/menu.js
new file mode 100644
index 0000000..54e81cf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/menu.js
@@ -0,0 +1,127 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+ function makeTree(data,relPath) {
+ var result='';
+ if ('children' in data) {
+ result+='<ul>';
+ for (var i in data.children) {
+ result+='<li><a href="'+relPath+data.children[i].url+'">'+
+ data.children[i].text+'</a>'+
+ makeTree(data.children[i],relPath)+'</li>';
+ }
+ result+='</ul>';
+ }
+ return result;
+ }
+ var searchBox;
+ if (searchEnabled) {
+ if (serverSide) {
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<div class="left">'+
+ '<form id="FSearchBox" action="'+relPath+searchPage+
+ '" method="get"><img id="MSearchSelect" src="'+
+ relPath+'search/mag.svg" alt=""/>'+
+ '<input type="text" id="MSearchField" name="query" value="'+search+
+ '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+ ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+ '</form>'+
+ '</div>'+
+ '<div class="right"></div>'+
+ '</div>';
+ } else {
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<span class="left">'+
+ '<img id="MSearchSelect" src="'+relPath+
+ 'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+ ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+ '<input type="text" id="MSearchField" value="'+search+
+ '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+ 'onblur="searchBox.OnSearchFieldFocus(false)" '+
+ 'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+ '</span>'+
+ '<span class="right"><a id="MSearchClose" '+
+ 'href="javascript:searchBox.CloseResultsWindow()">'+
+ '<img id="MSearchCloseImg" border="0" src="'+relPath+
+ 'search/close.svg" alt=""/></a>'
+ '</span>'
+ '</div>';
+ }
+ }
+
+ $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+ '<label class="main-menu-btn" for="main-menu-state">'+
+ '<span class="main-menu-btn-icon"></span> '+
+ 'Toggle main menu visibility</label>'+
+ '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+ '</div>');
+ $('#main-nav').append(makeTree(menudata,relPath));
+ $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ if (searchBox) {
+ $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+ }
+ var $mainMenuState = $('#main-menu-state');
+ var prevWidth = 0;
+ if ($mainMenuState.length) {
+ function initResizableIfExists() {
+ if (typeof initResizable==='function') initResizable();
+ }
+ // animate mobile menu
+ $mainMenuState.change(function(e) {
+ var $menu = $('#main-menu');
+ var options = { duration: 250, step: initResizableIfExists };
+ if (this.checked) {
+ options['complete'] = function() { $menu.css('display', 'block') };
+ $menu.hide().slideDown(options);
+ } else {
+ options['complete'] = function() { $menu.css('display', 'none') };
+ $menu.show().slideUp(options);
+ }
+ });
+ // set default menu visibility
+ function resetState() {
+ var $menu = $('#main-menu');
+ var $mainMenuState = $('#main-menu-state');
+ var newWidth = $(window).outerWidth();
+ if (newWidth!=prevWidth) {
+ if ($(window).outerWidth()<768) {
+ $mainMenuState.prop('checked',false); $menu.hide();
+ $('#searchBoxPos1').html(searchBox);
+ $('#searchBoxPos2').hide();
+ } else {
+ $menu.show();
+ $('#searchBoxPos1').empty();
+ $('#searchBoxPos2').html(searchBox);
+ $('#searchBoxPos2').show();
+ }
+ prevWidth = newWidth;
+ }
+ }
+ $(window).ready(function() { resetState(); initResizableIfExists(); });
+ $(window).resize(resetState);
+ }
+ $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/menudata.js b/Year 1/Object-oriented Programming/Project 1/docs/html/menudata.js
new file mode 100644
index 0000000..d54564c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/menudata.js
@@ -0,0 +1,98 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Classes",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"c",url:"functions.html#index_c"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"h",url:"functions.html#index_h"},
+{text:"i",url:"functions.html#index_i"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"n",url:"functions.html#index_n"},
+{text:"o",url:"functions.html#index_o"},
+{text:"q",url:"functions.html#index_q"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"a",url:"functions_func.html#index_a"},
+{text:"b",url:"functions_func.html#index_b"},
+{text:"c",url:"functions_func.html#index_c"},
+{text:"d",url:"functions_func.html#index_d"},
+{text:"e",url:"functions_func.html#index_e"},
+{text:"f",url:"functions_func.html#index_f"},
+{text:"g",url:"functions_func.html#index_g"},
+{text:"h",url:"functions_func.html#index_h"},
+{text:"i",url:"functions_func.html#index_i"},
+{text:"l",url:"functions_func.html#index_l"},
+{text:"m",url:"functions_func.html#index_m"},
+{text:"n",url:"functions_func.html#index_n"},
+{text:"o",url:"functions_func.html#index_o"},
+{text:"q",url:"functions_func.html#index_q"},
+{text:"r",url:"functions_func.html#index_r"},
+{text:"s",url:"functions_func.html#index_s"},
+{text:"t",url:"functions_func.html#index_t"},
+{text:"w",url:"functions_func.html#index_w"}]},
+{text:"Related Functions",url:"functions_rela.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"File Members",url:"globals.html",children:[
+{text:"All",url:"globals.html",children:[
+{text:"_",url:"globals.html#index__5F"},
+{text:"c",url:"globals.html#index_c"},
+{text:"e",url:"globals.html#index_e"},
+{text:"i",url:"globals.html#index_i"},
+{text:"m",url:"globals.html#index_m"},
+{text:"o",url:"globals.html#index_o"},
+{text:"p",url:"globals.html#index_p"},
+{text:"r",url:"globals.html#index_r"},
+{text:"s",url:"globals.html#index_s"},
+{text:"t",url:"globals.html#index_t"},
+{text:"w",url:"globals.html#index_w"}]},
+{text:"Functions",url:"globals_func.html",children:[
+{text:"_",url:"globals_func.html#index__5F"},
+{text:"c",url:"globals_func.html#index_c"},
+{text:"e",url:"globals_func.html#index_e"},
+{text:"i",url:"globals_func.html#index_i"},
+{text:"m",url:"globals_func.html#index_m"},
+{text:"o",url:"globals_func.html#index_o"},
+{text:"p",url:"globals_func.html#index_p"},
+{text:"r",url:"globals_func.html#index_r"},
+{text:"s",url:"globals_func.html#index_s"},
+{text:"t",url:"globals_func.html#index_t"},
+{text:"w",url:"globals_func.html#index_w"}]},
+{text:"Enumerations",url:"globals_enum.html"}]}]}]}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/nav_f.png b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_f.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/nav_g.png b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_g.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/nav_h.png b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/nav_h.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/open.png b/Year 1/Object-oriented Programming/Project 1/docs/html/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/open.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.html
new file mode 100644
index 0000000..c36c9af
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.js
new file mode 100644
index 0000000..0a24301
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['_5fprintinputboxlabel_0',['_printInputBoxLabel',['../Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d',1,'Toolbox.cpp']]],
+ ['_5fprintorderedlistbeginning_1',['_printOrderedListBeginning',['../Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad',1,'Toolbox.cpp']]],
+ ['_5fprintsubboxspacing_2',['_printSubBoxSpacing',['../Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6',1,'Toolbox.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.html
new file mode 100644
index 0000000..91cfe8a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.js
new file mode 100644
index 0000000..2681e1e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List::add()'],['../classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd',1,'OrderedList::add()']]],
+ ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.html
new file mode 100644
index 0000000..765f584
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.js
new file mode 100644
index 0000000..d03186d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_10.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['read_0',['read',['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read():&#160;Toolbox.hpp'],['../classDate.html#a982c0c9098056aa33c5cbc9eba093852',1,'Date::read()'],['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf',1,'Event::read()'],['../classHall.html#acef974f302d8131ef4608e15f96c2df9',1,'Hall::read()'],['../classReservation.html#a03f0d1a522edb2c5fba7538f0c879573',1,'Reservation::read()'],['../classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad',1,'Ticket::read()'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read():&#160;Toolbox.hpp']]],
+ ['registererror_1',['registerError',['../classMenu.html#aad506cb9a7f35dea98c60484bb2d095c',1,'Menu']]],
+ ['registersuccess_2',['registerSuccess',['../classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c',1,'Menu']]],
+ ['registerwarning_3',['registerWarning',['../classMenu.html#a5350b1addf9bf365351486cd161696ad',1,'Menu']]],
+ ['removeat_4',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]],
+ ['reportboughttickets_5',['reportBoughtTickets',['../classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e',1,'EventService']]],
+ ['reportreservations_6',['reportReservations',['../classEventService.html#a277194aea79a2c9bf955b7706a20c54c',1,'EventService']]],
+ ['reservation_7',['Reservation',['../classReservation.html#a63b283053695e6f50fa44c50da2b3de5',1,'Reservation::Reservation()'],['../classReservation.html#a7320a032f87c7d45cf287a146c73695c',1,'Reservation::Reservation(const Ticket &amp;ticket)'],['../classReservation.html#ac6fdecd9bc06f3de2e28129ab370f4f7',1,'Reservation::Reservation(const Ticket &amp;ticket, const char *password, const char *note)'],['../classReservation.html',1,'Reservation']]],
+ ['reservation_2eh_8',['Reservation.h',['../Reservation_8h.html',1,'']]],
+ ['reserveticket_9',['reserveTicket',['../classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb',1,'EventService']]],
+ ['resetorderedlist_10',['resetOrderedList',['../Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108',1,'Toolbox.cpp']]],
+ ['run_11',['run',['../classCommand.html#a44689093b812bfc97b2787c2ba0303ce',1,'Command']]],
+ ['runui_12',['runUI',['../FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3',1,'FMITicketSystemConsoleUI.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.html
new file mode 100644
index 0000000..e2183ee
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.js
new file mode 100644
index 0000000..87de058
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_11.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['save_0',['save',['../classEventService.html#a5aac3df17ef30f84c1c28277c256ec32',1,'EventService::save()'],['../classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2',1,'HallService::save()']]],
+ ['set_5fday_1',['set_day',['../classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08',1,'Date']]],
+ ['set_5fmonth_2',['set_month',['../classDate.html#ad0a591a557ddde0871389c3d716e6044',1,'Date']]],
+ ['set_5fyear_3',['set_year',['../classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae',1,'Date']]],
+ ['statuscode_4',['StatusCode',['../StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113',1,'StatusCode.h']]],
+ ['statuscode_2eh_5',['StatusCode.h',['../StatusCode_8h.html',1,'']]],
+ ['string_6',['String',['../classString.html',1,'String'],['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]],
+ ['string_2eh_7',['String.h',['../String_8h.html',1,'']]],
+ ['subtitlebox_8',['subTitleBox',['../Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120',1,'Toolbox.cpp']]],
+ ['successbox_9',['successBox',['../Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a',1,'Toolbox.cpp']]],
+ ['successsubbox_10',['successSubBox',['../Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081',1,'Toolbox.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.html
new file mode 100644
index 0000000..9b9621c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.js
new file mode 100644
index 0000000..3e4b405
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_12.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['table_0',['table',['../Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5',1,'Toolbox.cpp']]],
+ ['ticket_1',['Ticket',['../classTicket.html',1,'Ticket'],['../classTicket.html#aba3a46c9223efb6ab0bde93a09403537',1,'Ticket::Ticket()'],['../classTicket.html#a6fa09371f1b70520b96dbb9ac9a71768',1,'Ticket::Ticket(unsigned row, unsigned seat)']]],
+ ['ticket_2eh_2',['Ticket.h',['../Ticket_8h.html',1,'']]],
+ ['ticketisreserved_3',['ticketIsReserved',['../classEventService.html#ad1efbed6111da8e755d86b5bc9ada806',1,'EventService']]],
+ ['titlebox_4',['titleBox',['../Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b',1,'Toolbox.cpp']]],
+ ['toolbox_2ehpp_5',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.html
new file mode 100644
index 0000000..4acb7f9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.js
new file mode 100644
index 0000000..957e495
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_13.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['warningbox_0',['warningBox',['../Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052',1,'Toolbox.cpp']]],
+ ['warningsubbox_1',['warningSubBox',['../Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92',1,'Toolbox.cpp']]],
+ ['write_2',['write',['../classDate.html#a9c728831f35f27abf3348132a13b7844',1,'Date::write()'],['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()'],['../classEvent.html#a05a302aa998977c30950987c07f0fbba',1,'Event::write()'],['../classHall.html#a0239d59ab0f832f16cf35c820d0eba5a',1,'Hall::write()'],['../classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32',1,'Reservation::write()'],['../classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4',1,'Ticket::write()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.html
new file mode 100644
index 0000000..259dde4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.js
new file mode 100644
index 0000000..3c047d0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['buyticket_0',['buyTicket',['../classEventService.html#ac447cac3e4974b9cc676d9bb90152979',1,'EventService::buyTicket(const char *name, const Date &amp;date, const Ticket &amp;ticket, const char *password, String *reservationNoteOutput)'],['../classEventService.html#ad0a204aca9cc8287f562f42916248e9e',1,'EventService::buyTicket(const char *name, const Date &amp;date, const Ticket &amp;ticket)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.html
new file mode 100644
index 0000000..1e60c94
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.js
new file mode 100644
index 0000000..7478e70
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_3.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['cancelevent_0',['cancelEvent',['../classEventService.html#ac7ea565af5ad78e84749558477ceaf26',1,'EventService']]],
+ ['cancelticketreservation_1',['cancelTicketReservation',['../classEventService.html#aa6fd620de878f225f7c51bb0df6ea749',1,'EventService']]],
+ ['clear_2',['clear',['../Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204',1,'Toolbox.cpp']]],
+ ['command_3',['Command',['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a4e22ce5bdf74f9c975494dddd280884a',1,'Command::Command(const char *nameInMenu, void(*exec)())'],['../classCommand.html',1,'Command']]],
+ ['command_2eh_4',['Command.h',['../Command_8h.html',1,'']]],
+ ['compare_5',['compare',['../classHall.html#a4259837f943c488c6b15ed6c80d5f30b',1,'Hall::compare()'],['../classTicket.html#a82a063f71be89f44dd969970855187c4',1,'Ticket::compare()'],['../classReservation.html#a31cc66beeaf85befe2185dfc88086d38',1,'Reservation::compare()'],['../classEvent.html#af5c84a902db8f29f8b8737026011f1f6',1,'Event::compare()'],['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String::compare()'],['../classDate.html#a3cda588bf2f65b84639303a1aa1105be',1,'Date::compare()']]],
+ ['configureeventinsertionop_6',['configureEventInsertionOp',['../Event_8h.html#ad423797aa9adadabb5651f8955c001bb',1,'Event.cpp']]],
+ ['contain_7',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]],
+ ['createevent_8',['createEvent',['../classEventService.html#a7a21a5909116215e402254510d6d81d6',1,'EventService']]],
+ ['createseatingstring_9',['createSeatingString',['../classEventService.html#a7f4632e3beae5d24087047ab0223f85e',1,'EventService']]],
+ ['createstring_10',['createString',['../classDate.html#a6e00ace9f8c923c96188bd76f1e064c2',1,'Date']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.html
new file mode 100644
index 0000000..08f1aed
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.js
new file mode 100644
index 0000000..38eab86
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['date_0',['Date',['../classDate.html',1,'Date'],['../classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd',1,'Date::Date()'],['../classDate.html#a99d57b698afdacd18f5a414cdc7524fd',1,'Date::Date(const char *str)'],['../classDate.html#a87b3c3ede7dee726e8779eebfcc0a299',1,'Date::Date(unsigned short day, unsigned short month, unsigned short year)']]],
+ ['date_2eh_1',['Date.h',['../Date_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.html
new file mode 100644
index 0000000..0d85fcc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.js
new file mode 100644
index 0000000..6ce9502
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_5.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['errorbox_0',['errorBox',['../Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d',1,'Toolbox.cpp']]],
+ ['errorsubbox_1',['errorSubBox',['../Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7',1,'Toolbox.cpp']]],
+ ['event_2',['Event',['../classEvent.html',1,'Event'],['../classEvent.html#a5a40dd4708297f7031e29b39e039ae10',1,'Event::Event()'],['../classEvent.html#a6ecbd134ada51629f30b2d1cf352d88f',1,'Event::Event(const Hall &amp;hall, String name, Date date)']]],
+ ['event_2eh_3',['Event.h',['../Event_8h.html',1,'']]],
+ ['eventservice_4',['EventService',['../classEventService.html',1,'EventService'],['../classEventService.html#a9b30bb95890abac259ba27b53cabe545',1,'EventService::EventService(const HallService *hs)'],['../classEventService.html#af35cde4a05edfec88496772b6d0b1e37',1,'EventService::EventService(const HallService *hs, const Event *events, unsigned eventCount)']]],
+ ['eventservice_2eh_5',['EventService.h',['../EventService_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.html
new file mode 100644
index 0000000..7e088b8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.js
new file mode 100644
index 0000000..8e7f303
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]],
+ ['fmi_20tickets_20system_1',['FMI Tickets System',['../index.html',1,'']]],
+ ['fmiticketsystemconsoleui_2eh_2',['FMITicketSystemConsoleUI.h',['../FMITicketSystemConsoleUI_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.html
new file mode 100644
index 0000000..d2b1825
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.js
new file mode 100644
index 0000000..b5d3390
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_7.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['get_5fcount_0',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]],
+ ['get_5fcstr_1',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]],
+ ['get_5fdate_2',['get_date',['../classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293',1,'Event']]],
+ ['get_5fday_3',['get_day',['../classDate.html#a2e4dc4249f8cccd40acc5950b42e1339',1,'Date']]],
+ ['get_5fhall_4',['get_hall',['../classEvent.html#ae3023ae2c487f46b3235f67554e58615',1,'Event']]],
+ ['get_5fhalls_5',['get_halls',['../classHallService.html#a641fdcc475e094687713e94094e2a623',1,'HallService']]],
+ ['get_5flength_6',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]],
+ ['get_5fmonth_7',['get_month',['../classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc',1,'Date']]],
+ ['get_5fname_8',['get_name',['../classEvent.html#a7bf717630c32826689df41e0bb3ecbce',1,'Event']]],
+ ['get_5fnote_9',['get_note',['../classReservation.html#a2285881510bf07f469bf360bb1050f12',1,'Reservation']]],
+ ['get_5fnumber_10',['get_number',['../classHall.html#a84186aee50631f25b214f18f7b0dc178',1,'Hall']]],
+ ['get_5fpassword_11',['get_password',['../classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9',1,'Reservation']]],
+ ['get_5freservations_12',['get_reservations',['../classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f',1,'Event::get_reservations()'],['../classEvent.html#a7af1c5d57d41701e6411b7c251bf904e',1,'Event::get_reservations() const']]],
+ ['get_5frow_13',['get_row',['../classTicket.html#a94476de3cd6711185527d0fe4df9a278',1,'Ticket']]],
+ ['get_5frows_14',['get_rows',['../classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2',1,'Hall']]],
+ ['get_5fseat_15',['get_seat',['../classTicket.html#af7b64cb77a676d0f7bdb32255283f005',1,'Ticket']]],
+ ['get_5fseatsperrow_16',['get_seatsPerRow',['../classHall.html#a42e1cd716086d8a42a627e00cde17a7e',1,'Hall']]],
+ ['get_5fticket_17',['get_ticket',['../classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb',1,'Reservation']]],
+ ['get_5ftickets_18',['get_tickets',['../classEvent.html#a16a84fced8e02f756232c54c27bb22ad',1,'Event::get_tickets()'],['../classEvent.html#a1f914fc91044a5c10d71f31b8e712c46',1,'Event::get_tickets() const']]],
+ ['get_5fyear_19',['get_year',['../classDate.html#a025aae2b290ba357e049d054085f91e3',1,'Date']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.html
new file mode 100644
index 0000000..f4e3a2a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.js
new file mode 100644
index 0000000..ab0e83d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_8.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['hall_0',['Hall',['../classHall.html',1,'Hall'],['../classHall.html#a122ed8085be305339c89cadb3e360b86',1,'Hall::Hall()'],['../classHall.html#af88f012be2e7671366e10d4e154a8d8f',1,'Hall::Hall(int number)'],['../classHall.html#ab93a2ca8463f3b3d398374a6efea4c71',1,'Hall::Hall(int number, unsigned rows, unsigned seatsPerRow)']]],
+ ['hall_2eh_1',['Hall.h',['../Hall_8h.html',1,'']]],
+ ['hallservice_2',['HallService',['../classHallService.html',1,'HallService'],['../classHallService.html#a57a8117d8d510afb5351a3f7efc18dff',1,'HallService::HallService()']]],
+ ['hallservice_2eh_3',['HallService.h',['../HallService_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.html
new file mode 100644
index 0000000..89177a8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.js
new file mode 100644
index 0000000..d2ee126
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_9.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['inputbox_0',['inputBox',['../Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e',1,'Toolbox.hpp']]],
+ ['inputlinebox_1',['inputLineBox',['../Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf',1,'Toolbox.cpp']]],
+ ['inputlinesubbox_2',['inputLineSubBox',['../Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2',1,'Toolbox.cpp']]],
+ ['inputsubbox_3',['inputSubBox',['../Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f',1,'Toolbox.hpp']]],
+ ['insert_4',['insert',['../classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b',1,'OrderedList']]],
+ ['insertat_5',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List::insertAt()'],['../classOrderedList.html#a45af729846bacc77fc8292e5d0690f99',1,'OrderedList::insertAt()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.html
new file mode 100644
index 0000000..1f90b7a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.js
new file mode 100644
index 0000000..edbd620
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_a.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html',1,'List&lt; T &gt;'],['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List::List()']]],
+ ['list_2ehpp_1',['List.hpp',['../List_8hpp.html',1,'']]],
+ ['list_3c_20command_20_3e_2',['List&lt; Command &gt;',['../classList.html',1,'']]],
+ ['list_3c_20event_20_3e_3',['List&lt; Event &gt;',['../classList.html',1,'']]],
+ ['list_3c_20hall_20_3e_4',['List&lt; Hall &gt;',['../classList.html',1,'']]],
+ ['list_3c_20reservation_20_3e_5',['List&lt; Reservation &gt;',['../classList.html',1,'']]],
+ ['list_3c_20ticket_20_3e_6',['List&lt; Ticket &gt;',['../classList.html',1,'']]],
+ ['load_7',['load',['../classEventService.html#a1225c23dae83fa928da47113cd1c5617',1,'EventService::load()'],['../classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae',1,'HallService::load()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.html
new file mode 100644
index 0000000..b7ad6e6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.js
new file mode 100644
index 0000000..2ccf14e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_b.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['main_0',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]],
+ ['main_2ecpp_1',['main.cpp',['../main_8cpp.html',1,'']]],
+ ['menu_2',['Menu',['../classMenu.html',1,'Menu'],['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#aeec919379638ad526df5167ed755a1f3',1,'Menu::Menu(const char *title, bool backExistsApp, bool isSubMenu)'],['../classMenu.html#a12057ad84f3a9d41bc7092cc2d86c87a',1,'Menu::Menu(const char *title, bool backExistsApp, bool isSubMenu, const Command *commands, unsigned commandCount)']]],
+ ['menu_2eh_3',['Menu.h',['../Menu_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.html
new file mode 100644
index 0000000..829c917
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.js
new file mode 100644
index 0000000..c3df1e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.html
new file mode 100644
index 0000000..d32b28e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.js
new file mode 100644
index 0000000..37a12a1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_d.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)']]],
+ ['operator_3c_3c_1',['operator&lt;&lt;',['../classString.html#aa00d824f40064ff356aa7c15d6a9da12',1,'String::operator&lt;&lt;()'],['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'operator&lt;&lt;(std::ostream &amp;ostr, const List&lt; T &gt; &amp;obj):&#160;List.hpp'],['../Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Date &amp;dt):&#160;Date.cpp'],['../Event_8h.html#a08eaf45abee385d26c4934afeb9be163',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Event &amp;event):&#160;Event.cpp'],['../Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Hall &amp;hall):&#160;Hall.cpp'],['../Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Ticket &amp;ticket):&#160;Ticket.cpp'],['../classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd',1,'Reservation::operator&lt;&lt;()']]],
+ ['operator_3e_3e_2',['operator&gt;&gt;',['../classString.html#a1918adea635f3f340dbecd6fb05341f8',1,'String::operator&gt;&gt;()'],['../classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25',1,'Reservation::operator&gt;&gt;()'],['../Date_8h.html#ae020cf1772268f1a43d172d3adfc9797',1,'operator&gt;&gt;(std::istream &amp;istr, Date &amp;dt):&#160;Date.cpp'],['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'operator&gt;&gt;(std::istream &amp;istr, List&lt; T &gt; &amp;obj):&#160;List.hpp'],['../Event_8h.html#a31d9c76919809491b346728ec6659b19',1,'operator&gt;&gt;(std::istream &amp;istr, Event &amp;event):&#160;Event.cpp'],['../Hall_8h.html#ac55d9db507637effdb1896e33c86d439',1,'operator&gt;&gt;(std::istream &amp;istr, Hall &amp;hall):&#160;Hall.cpp'],['../Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920',1,'operator&gt;&gt;(std::istream &amp;istr, Ticket &amp;ticket):&#160;Ticket.cpp']]],
+ ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[]()'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[]()']]],
+ ['orderedlist_4',['OrderedList',['../classOrderedList.html',1,'']]],
+ ['orderedlist_2ehpp_5',['OrderedList.hpp',['../OrderedList_8hpp.html',1,'']]],
+ ['orderedlist_3c_20event_20_3e_6',['OrderedList&lt; Event &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20hall_20_3e_7',['OrderedList&lt; Hall &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20reservation_20_3e_8',['OrderedList&lt; Reservation &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20ticket_20_3e_9',['OrderedList&lt; Ticket &gt;',['../classOrderedList.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.html
new file mode 100644
index 0000000..ce450a2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.js
new file mode 100644
index 0000000..b71ccda
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_e.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['pressentertocontinue_0',['pressEnterToContinue',['../Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832',1,'Toolbox.cpp']]],
+ ['print_1',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printline_2',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printorderedlistelem_3',['printOrderedListElem',['../Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114',1,'Toolbox.hpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.html
new file mode 100644
index 0000000..59cfe49
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.js
new file mode 100644
index 0000000..0066e45
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/all_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['queryinsufficientlyvisited_0',['queryInsufficientlyVisited',['../classEventService.html#a814de3510f72150f2e54d44f8c8948bb',1,'EventService']]],
+ ['querymostwatched_1',['queryMostWatched',['../classEventService.html#a6700bd4f9da6d12a47812b9c8549556e',1,'EventService']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.html
new file mode 100644
index 0000000..8361bcd
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.js
new file mode 100644
index 0000000..aa348fe
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['command_0',['Command',['../classCommand.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.html
new file mode 100644
index 0000000..3c668de
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.js
new file mode 100644
index 0000000..d8eed29
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['date_0',['Date',['../classDate.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.html
new file mode 100644
index 0000000..868c172
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.js
new file mode 100644
index 0000000..0678680
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['event_0',['Event',['../classEvent.html',1,'']]],
+ ['eventservice_1',['EventService',['../classEventService.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.html
new file mode 100644
index 0000000..995d5d2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.js
new file mode 100644
index 0000000..5a1d039
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['hall_0',['Hall',['../classHall.html',1,'']]],
+ ['hallservice_1',['HallService',['../classHallService.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.html
new file mode 100644
index 0000000..b61a53a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.js
new file mode 100644
index 0000000..61fcac2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_4.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html',1,'']]],
+ ['list_3c_20command_20_3e_1',['List&lt; Command &gt;',['../classList.html',1,'']]],
+ ['list_3c_20event_20_3e_2',['List&lt; Event &gt;',['../classList.html',1,'']]],
+ ['list_3c_20hall_20_3e_3',['List&lt; Hall &gt;',['../classList.html',1,'']]],
+ ['list_3c_20reservation_20_3e_4',['List&lt; Reservation &gt;',['../classList.html',1,'']]],
+ ['list_3c_20ticket_20_3e_5',['List&lt; Ticket &gt;',['../classList.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.html
new file mode 100644
index 0000000..004dd4b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.js
new file mode 100644
index 0000000..3ebc81d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['menu_0',['Menu',['../classMenu.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.html
new file mode 100644
index 0000000..21bf019
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.js
new file mode 100644
index 0000000..da6e845
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_6.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['orderedlist_0',['OrderedList',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20event_20_3e_1',['OrderedList&lt; Event &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20hall_20_3e_2',['OrderedList&lt; Hall &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20reservation_20_3e_3',['OrderedList&lt; Reservation &gt;',['../classOrderedList.html',1,'']]],
+ ['orderedlist_3c_20ticket_20_3e_4',['OrderedList&lt; Ticket &gt;',['../classOrderedList.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.html
new file mode 100644
index 0000000..0e94451
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.js
new file mode 100644
index 0000000..95231b7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['reservation_0',['Reservation',['../classReservation.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.html
new file mode 100644
index 0000000..4dfdb1c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.js
new file mode 100644
index 0000000..24c218f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['string_0',['String',['../classString.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.html
new file mode 100644
index 0000000..1cd66a9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.js
new file mode 100644
index 0000000..6b87bb0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/classes_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['ticket_0',['Ticket',['../classTicket.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/close.svg b/Year 1/Object-oriented Programming/Project 1/docs/html/search/close.svg
new file mode 100644
index 0000000..a933eea
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/close.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ viewBox="0 0 11 11"
+ height="11"
+ width="11"
+ id="svg2"
+ version="1.1">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <path
+ id="path12"
+ d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
+ style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.html
new file mode 100644
index 0000000..eb1f873
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.js
new file mode 100644
index 0000000..2c71d71
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/enums_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['statuscode_0',['StatusCode',['../StatusCode_8h.html#ae98a46f4ea1a43ca48acaf15d2eb7113',1,'StatusCode.h']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.html
new file mode 100644
index 0000000..da83704
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.js
new file mode 100644
index 0000000..b11c03c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['command_2eh_0',['Command.h',['../Command_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.html
new file mode 100644
index 0000000..f7e1582
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.js
new file mode 100644
index 0000000..1eb9b8c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['date_2eh_0',['Date.h',['../Date_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.html
new file mode 100644
index 0000000..99aca62
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.js
new file mode 100644
index 0000000..5078cc8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['event_2eh_0',['Event.h',['../Event_8h.html',1,'']]],
+ ['eventservice_2eh_1',['EventService.h',['../EventService_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.html
new file mode 100644
index 0000000..25e128c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.js
new file mode 100644
index 0000000..63fa030
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['fmiticketsystemconsoleui_2eh_0',['FMITicketSystemConsoleUI.h',['../FMITicketSystemConsoleUI_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.html
new file mode 100644
index 0000000..3c8ba6e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.js
new file mode 100644
index 0000000..544e16d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['hall_2eh_0',['Hall.h',['../Hall_8h.html',1,'']]],
+ ['hallservice_2eh_1',['HallService.h',['../HallService_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.html
new file mode 100644
index 0000000..7ff9613
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.js
new file mode 100644
index 0000000..1d78260
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['list_2ehpp_0',['List.hpp',['../List_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.html
new file mode 100644
index 0000000..cdd711b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.js
new file mode 100644
index 0000000..d6e8254
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_6.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]],
+ ['menu_2eh_1',['Menu.h',['../Menu_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.html
new file mode 100644
index 0000000..590e76a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.js
new file mode 100644
index 0000000..ef5e0ad
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['orderedlist_2ehpp_0',['OrderedList.hpp',['../OrderedList_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.html
new file mode 100644
index 0000000..5f47b07
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.js
new file mode 100644
index 0000000..d259504
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['reservation_2eh_0',['Reservation.h',['../Reservation_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.html
new file mode 100644
index 0000000..954127a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.js
new file mode 100644
index 0000000..6d81127
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_9.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['statuscode_2eh_0',['StatusCode.h',['../StatusCode_8h.html',1,'']]],
+ ['string_2eh_1',['String.h',['../String_8h.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.html
new file mode 100644
index 0000000..5b90468
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.js
new file mode 100644
index 0000000..632dd3a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/files_a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['ticket_2eh_0',['Ticket.h',['../Ticket_8h.html',1,'']]],
+ ['toolbox_2ehpp_1',['Toolbox.hpp',['../Toolbox_8hpp.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.html
new file mode 100644
index 0000000..2d2d950
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.js
new file mode 100644
index 0000000..0a24301
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['_5fprintinputboxlabel_0',['_printInputBoxLabel',['../Toolbox_8hpp.html#ab3ce613add75d2385c8e1424527d2c3d',1,'Toolbox.cpp']]],
+ ['_5fprintorderedlistbeginning_1',['_printOrderedListBeginning',['../Toolbox_8hpp.html#a27b565355e018d36b6ce47169cc26fad',1,'Toolbox.cpp']]],
+ ['_5fprintsubboxspacing_2',['_printSubBoxSpacing',['../Toolbox_8hpp.html#ac17b91efad13dbe9e10e5550ee4707c6',1,'Toolbox.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.html
new file mode 100644
index 0000000..3b96b90
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.js
new file mode 100644
index 0000000..2681e1e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['add_0',['add',['../classList.html#abfec4f2e7990d06c143852ecfdf907bb',1,'List::add()'],['../classOrderedList.html#a8b2748c3cdefe4869e0d7a2fc9b4b2cd',1,'OrderedList::add()']]],
+ ['addcommand_1',['addCommand',['../classMenu.html#a1f022cc8b705369073f8fd7b90b30c8d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.html
new file mode 100644
index 0000000..f0fe489
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.js
new file mode 100644
index 0000000..f5371b5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_10.js
@@ -0,0 +1,15 @@
+var searchData=
+[
+ ['read_0',['read',['../classList.html#a5e3581ee07649f462aa8bb3221a5466e',1,'List::read()'],['../classString.html#ad76bb9eca15651c67332808cdaad6344',1,'String::read()'],['../classEvent.html#ae58d2ed716836adcdacaeec4dd08c1cf',1,'Event::read()'],['../classHall.html#acef974f302d8131ef4608e15f96c2df9',1,'Hall::read()'],['../classReservation.html#a03f0d1a522edb2c5fba7538f0c879573',1,'Reservation::read()'],['../classTicket.html#aad2d0b7b92b54ec861db92c31f50f4ad',1,'Ticket::read()'],['../classDate.html#a982c0c9098056aa33c5cbc9eba093852',1,'Date::read()'],['../Toolbox_8hpp.html#a06ca09434be2a02543a2371d477acfa0',1,'read(T &amp;storage):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a3c9098dc2b305107367c56ded5dec787',1,'read(T *storage):&#160;Toolbox.hpp']]],
+ ['registererror_1',['registerError',['../classMenu.html#aad506cb9a7f35dea98c60484bb2d095c',1,'Menu']]],
+ ['registersuccess_2',['registerSuccess',['../classMenu.html#a3504e28b5d05e1ad70dada190bbc3a9c',1,'Menu']]],
+ ['registerwarning_3',['registerWarning',['../classMenu.html#a5350b1addf9bf365351486cd161696ad',1,'Menu']]],
+ ['removeat_4',['removeAt',['../classList.html#ad9c0a5b5bca6286f458d6fab280de65a',1,'List']]],
+ ['reportboughttickets_5',['reportBoughtTickets',['../classEventService.html#afc74fc6d44fca054bce8e54997c0cd3e',1,'EventService']]],
+ ['reportreservations_6',['reportReservations',['../classEventService.html#a277194aea79a2c9bf955b7706a20c54c',1,'EventService']]],
+ ['reservation_7',['Reservation',['../classReservation.html#a7320a032f87c7d45cf287a146c73695c',1,'Reservation::Reservation(const Ticket &amp;ticket)'],['../classReservation.html#ac6fdecd9bc06f3de2e28129ab370f4f7',1,'Reservation::Reservation(const Ticket &amp;ticket, const char *password, const char *note)'],['../classReservation.html#a63b283053695e6f50fa44c50da2b3de5',1,'Reservation::Reservation()']]],
+ ['reserveticket_8',['reserveTicket',['../classEventService.html#a3c0d2a05e2a3026044b9e13e6802fbdb',1,'EventService']]],
+ ['resetorderedlist_9',['resetOrderedList',['../Toolbox_8hpp.html#a4456d10f7e141c4fc1a29aff4ad29108',1,'Toolbox.cpp']]],
+ ['run_10',['run',['../classCommand.html#a44689093b812bfc97b2787c2ba0303ce',1,'Command']]],
+ ['runui_11',['runUI',['../FMITicketSystemConsoleUI_8h.html#a79d6833c27b5a32b6d9917f5cd6e32a3',1,'FMITicketSystemConsoleUI.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.html
new file mode 100644
index 0000000..fb95b05
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.js
new file mode 100644
index 0000000..7585664
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_11.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['save_0',['save',['../classEventService.html#a5aac3df17ef30f84c1c28277c256ec32',1,'EventService::save()'],['../classHallService.html#a083e3d10ec89ee8c78a117c3754c66d2',1,'HallService::save()']]],
+ ['set_5fday_1',['set_day',['../classDate.html#acaf0c3ee1b2d36edf4f870ddd8acce08',1,'Date']]],
+ ['set_5fmonth_2',['set_month',['../classDate.html#ad0a591a557ddde0871389c3d716e6044',1,'Date']]],
+ ['set_5fyear_3',['set_year',['../classDate.html#a6a0f3124e1850cd9f1514ebffcdd0cae',1,'Date']]],
+ ['string_4',['String',['../classString.html#ad3d65397e27bb3c4db1295208cfb1559',1,'String::String(unsigned length)'],['../classString.html#a3fba40cf6cb11735ffddc355a5ff68f4',1,'String::String(const char *str)']]],
+ ['subtitlebox_5',['subTitleBox',['../Toolbox_8hpp.html#ad557e4a1167be4e0c57fe530ce74a120',1,'Toolbox.cpp']]],
+ ['successbox_6',['successBox',['../Toolbox_8hpp.html#a6c82ac6987703376c17c74a81fb0a91a',1,'Toolbox.cpp']]],
+ ['successsubbox_7',['successSubBox',['../Toolbox_8hpp.html#aa78e2e87fff9b64ca032a5b1c7054081',1,'Toolbox.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.html
new file mode 100644
index 0000000..292fd4a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.js
new file mode 100644
index 0000000..e28d858
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_12.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['table_0',['table',['../Toolbox_8hpp.html#a6c90056ede686f0319d0fb0a408d02e5',1,'Toolbox.cpp']]],
+ ['ticket_1',['Ticket',['../classTicket.html#aba3a46c9223efb6ab0bde93a09403537',1,'Ticket::Ticket()'],['../classTicket.html#a6fa09371f1b70520b96dbb9ac9a71768',1,'Ticket::Ticket(unsigned row, unsigned seat)']]],
+ ['ticketisreserved_2',['ticketIsReserved',['../classEventService.html#ad1efbed6111da8e755d86b5bc9ada806',1,'EventService']]],
+ ['titlebox_3',['titleBox',['../Toolbox_8hpp.html#a24a3fa9050ea032396c213ea85a1de0b',1,'Toolbox.cpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.html
new file mode 100644
index 0000000..5fcdf9c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.js
new file mode 100644
index 0000000..957e495
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_13.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['warningbox_0',['warningBox',['../Toolbox_8hpp.html#a52222c9ff8739ef87c89df899deb5052',1,'Toolbox.cpp']]],
+ ['warningsubbox_1',['warningSubBox',['../Toolbox_8hpp.html#a22f8b3135115d1b9fca09eea98dc6d92',1,'Toolbox.cpp']]],
+ ['write_2',['write',['../classDate.html#a9c728831f35f27abf3348132a13b7844',1,'Date::write()'],['../classList.html#a8d2babffd2fb4a5e0a40dbd306e19956',1,'List::write()'],['../classString.html#a7b0ea809587c21bc1d2b87bfee53e628',1,'String::write()'],['../classEvent.html#a05a302aa998977c30950987c07f0fbba',1,'Event::write()'],['../classHall.html#a0239d59ab0f832f16cf35c820d0eba5a',1,'Hall::write()'],['../classReservation.html#a1aba46b8e181750bd89fdfca6ff8ba32',1,'Reservation::write()'],['../classTicket.html#a584a11f6236fc96f3bdbd0592d3f60f4',1,'Ticket::write()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.html
new file mode 100644
index 0000000..1f16d2a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.js
new file mode 100644
index 0000000..3c047d0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['buyticket_0',['buyTicket',['../classEventService.html#ac447cac3e4974b9cc676d9bb90152979',1,'EventService::buyTicket(const char *name, const Date &amp;date, const Ticket &amp;ticket, const char *password, String *reservationNoteOutput)'],['../classEventService.html#ad0a204aca9cc8287f562f42916248e9e',1,'EventService::buyTicket(const char *name, const Date &amp;date, const Ticket &amp;ticket)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.html
new file mode 100644
index 0000000..0b37ee2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.js
new file mode 100644
index 0000000..e1adcd6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_3.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['cancelevent_0',['cancelEvent',['../classEventService.html#ac7ea565af5ad78e84749558477ceaf26',1,'EventService']]],
+ ['cancelticketreservation_1',['cancelTicketReservation',['../classEventService.html#aa6fd620de878f225f7c51bb0df6ea749',1,'EventService']]],
+ ['clear_2',['clear',['../Toolbox_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204',1,'Toolbox.cpp']]],
+ ['command_3',['Command',['../classCommand.html#a18df2d81039392daeb0b78c346a70537',1,'Command::Command()'],['../classCommand.html#a4e22ce5bdf74f9c975494dddd280884a',1,'Command::Command(const char *nameInMenu, void(*exec)())']]],
+ ['compare_4',['compare',['../classDate.html#a3cda588bf2f65b84639303a1aa1105be',1,'Date::compare()'],['../classString.html#a3f420d69fbe3de91711dc69148d23cc7',1,'String::compare()'],['../classEvent.html#af5c84a902db8f29f8b8737026011f1f6',1,'Event::compare()'],['../classHall.html#a4259837f943c488c6b15ed6c80d5f30b',1,'Hall::compare()'],['../classReservation.html#a31cc66beeaf85befe2185dfc88086d38',1,'Reservation::compare()'],['../classTicket.html#a82a063f71be89f44dd969970855187c4',1,'Ticket::compare()']]],
+ ['configureeventinsertionop_5',['configureEventInsertionOp',['../Event_8h.html#ad423797aa9adadabb5651f8955c001bb',1,'Event.cpp']]],
+ ['contain_6',['contain',['../classList.html#a163a070c7d5dc77ca3c1726b8f2d4bc1',1,'List']]],
+ ['createevent_7',['createEvent',['../classEventService.html#a7a21a5909116215e402254510d6d81d6',1,'EventService']]],
+ ['createseatingstring_8',['createSeatingString',['../classEventService.html#a7f4632e3beae5d24087047ab0223f85e',1,'EventService']]],
+ ['createstring_9',['createString',['../classDate.html#a6e00ace9f8c923c96188bd76f1e064c2',1,'Date']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.html
new file mode 100644
index 0000000..0eaf2b4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.js
new file mode 100644
index 0000000..186d442
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['date_0',['Date',['../classDate.html#a4e59ed4ba66eec61c27460c5d09fa1bd',1,'Date::Date()'],['../classDate.html#a99d57b698afdacd18f5a414cdc7524fd',1,'Date::Date(const char *str)'],['../classDate.html#a87b3c3ede7dee726e8779eebfcc0a299',1,'Date::Date(unsigned short day, unsigned short month, unsigned short year)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.html
new file mode 100644
index 0000000..eaa2769
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.js
new file mode 100644
index 0000000..aa9e0b8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['errorbox_0',['errorBox',['../Toolbox_8hpp.html#a9d709a3db7de05368cc38671c896bb2d',1,'Toolbox.cpp']]],
+ ['errorsubbox_1',['errorSubBox',['../Toolbox_8hpp.html#ade748c3f15151748c9f978097715d2e7',1,'Toolbox.cpp']]],
+ ['event_2',['Event',['../classEvent.html#a5a40dd4708297f7031e29b39e039ae10',1,'Event::Event()'],['../classEvent.html#a6ecbd134ada51629f30b2d1cf352d88f',1,'Event::Event(const Hall &amp;hall, String name, Date date)']]],
+ ['eventservice_3',['EventService',['../classEventService.html#a9b30bb95890abac259ba27b53cabe545',1,'EventService::EventService(const HallService *hs)'],['../classEventService.html#af35cde4a05edfec88496772b6d0b1e37',1,'EventService::EventService(const HallService *hs, const Event *events, unsigned eventCount)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.html
new file mode 100644
index 0000000..25d1cc8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.js
new file mode 100644
index 0000000..88f9575
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['findindex_0',['findIndex',['../classList.html#a3804f03273ef5e339b504e439c5b6534',1,'List']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.html
new file mode 100644
index 0000000..b6392ea
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.js
new file mode 100644
index 0000000..b5d3390
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_7.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+ ['get_5fcount_0',['get_count',['../classList.html#a3c1e3a3fc085f5b7ae68514c4758687b',1,'List']]],
+ ['get_5fcstr_1',['get_cstr',['../classString.html#a3d7f953737f3d4dca72d1cc4836f7dcc',1,'String']]],
+ ['get_5fdate_2',['get_date',['../classEvent.html#a222904d44dfaf3f1f96e2190c5ea4293',1,'Event']]],
+ ['get_5fday_3',['get_day',['../classDate.html#a2e4dc4249f8cccd40acc5950b42e1339',1,'Date']]],
+ ['get_5fhall_4',['get_hall',['../classEvent.html#ae3023ae2c487f46b3235f67554e58615',1,'Event']]],
+ ['get_5fhalls_5',['get_halls',['../classHallService.html#a641fdcc475e094687713e94094e2a623',1,'HallService']]],
+ ['get_5flength_6',['get_length',['../classList.html#aa32109b77dccd8241b125ebabdda876c',1,'List::get_length()'],['../classString.html#a7793a7e9a7601d4c724dcc85566259bf',1,'String::get_length()']]],
+ ['get_5fmonth_7',['get_month',['../classDate.html#a79ebbf3cb46f892604dc79ffc82bcfcc',1,'Date']]],
+ ['get_5fname_8',['get_name',['../classEvent.html#a7bf717630c32826689df41e0bb3ecbce',1,'Event']]],
+ ['get_5fnote_9',['get_note',['../classReservation.html#a2285881510bf07f469bf360bb1050f12',1,'Reservation']]],
+ ['get_5fnumber_10',['get_number',['../classHall.html#a84186aee50631f25b214f18f7b0dc178',1,'Hall']]],
+ ['get_5fpassword_11',['get_password',['../classReservation.html#aa34cd16a057a4a483e569ec5d7527ad9',1,'Reservation']]],
+ ['get_5freservations_12',['get_reservations',['../classEvent.html#a43c6b2bddd42435eb6c8cd0f15d75c6f',1,'Event::get_reservations()'],['../classEvent.html#a7af1c5d57d41701e6411b7c251bf904e',1,'Event::get_reservations() const']]],
+ ['get_5frow_13',['get_row',['../classTicket.html#a94476de3cd6711185527d0fe4df9a278',1,'Ticket']]],
+ ['get_5frows_14',['get_rows',['../classHall.html#a6b3c304a95d3f56980c6faf0cc2073a2',1,'Hall']]],
+ ['get_5fseat_15',['get_seat',['../classTicket.html#af7b64cb77a676d0f7bdb32255283f005',1,'Ticket']]],
+ ['get_5fseatsperrow_16',['get_seatsPerRow',['../classHall.html#a42e1cd716086d8a42a627e00cde17a7e',1,'Hall']]],
+ ['get_5fticket_17',['get_ticket',['../classReservation.html#af1b95b3d7c46f506dec4d275d6821cdb',1,'Reservation']]],
+ ['get_5ftickets_18',['get_tickets',['../classEvent.html#a16a84fced8e02f756232c54c27bb22ad',1,'Event::get_tickets()'],['../classEvent.html#a1f914fc91044a5c10d71f31b8e712c46',1,'Event::get_tickets() const']]],
+ ['get_5fyear_19',['get_year',['../classDate.html#a025aae2b290ba357e049d054085f91e3',1,'Date']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.html
new file mode 100644
index 0000000..ecf6a89
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.js
new file mode 100644
index 0000000..d811893
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['hall_0',['Hall',['../classHall.html#a122ed8085be305339c89cadb3e360b86',1,'Hall::Hall()'],['../classHall.html#af88f012be2e7671366e10d4e154a8d8f',1,'Hall::Hall(int number)'],['../classHall.html#ab93a2ca8463f3b3d398374a6efea4c71',1,'Hall::Hall(int number, unsigned rows, unsigned seatsPerRow)']]],
+ ['hallservice_1',['HallService',['../classHallService.html#a57a8117d8d510afb5351a3f7efc18dff',1,'HallService']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.html
new file mode 100644
index 0000000..cd70e2b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.js
new file mode 100644
index 0000000..d2ee126
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_9.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['inputbox_0',['inputBox',['../Toolbox_8hpp.html#ab7651f0a92f8d0d0be3d63c1045eee1e',1,'Toolbox.hpp']]],
+ ['inputlinebox_1',['inputLineBox',['../Toolbox_8hpp.html#aa49b4d5a7b00249bc1fb08eec5e3aeaf',1,'Toolbox.cpp']]],
+ ['inputlinesubbox_2',['inputLineSubBox',['../Toolbox_8hpp.html#ad2c61ce27ec52d14e427d6f6e93d38f2',1,'Toolbox.cpp']]],
+ ['inputsubbox_3',['inputSubBox',['../Toolbox_8hpp.html#a92da1c5f0023cd5c4809d9c1f682e92f',1,'Toolbox.hpp']]],
+ ['insert_4',['insert',['../classOrderedList.html#a1132cd9c92901e9b9950a4a409b0fc8b',1,'OrderedList']]],
+ ['insertat_5',['insertAt',['../classList.html#ae4586debf72af33bccb3c2fbfce420e8',1,'List::insertAt()'],['../classOrderedList.html#a45af729846bacc77fc8292e5d0690f99',1,'OrderedList::insertAt()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.html
new file mode 100644
index 0000000..d2a3de9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.js
new file mode 100644
index 0000000..71aa63d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['list_0',['List',['../classList.html#a93cd36efc12aa5ef5fc28866edce7e61',1,'List']]],
+ ['load_1',['load',['../classEventService.html#a1225c23dae83fa928da47113cd1c5617',1,'EventService::load()'],['../classHallService.html#ab63c1ccff811ed3268f2fe5e996eb6ae',1,'HallService::load()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.html
new file mode 100644
index 0000000..e6f34bb
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.js
new file mode 100644
index 0000000..fbbbd65
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_b.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['main_0',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]],
+ ['menu_1',['Menu',['../classMenu.html#ad466dd83355124a6ed958430450bfe94',1,'Menu::Menu()'],['../classMenu.html#aeec919379638ad526df5167ed755a1f3',1,'Menu::Menu(const char *title, bool backExistsApp, bool isSubMenu)'],['../classMenu.html#a12057ad84f3a9d41bc7092cc2d86c87a',1,'Menu::Menu(const char *title, bool backExistsApp, bool isSubMenu, const Command *commands, unsigned commandCount)']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.html
new file mode 100644
index 0000000..87b4ce2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.js
new file mode 100644
index 0000000..c3df1e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['navigate_0',['navigate',['../classMenu.html#a0400751da7f8583029b7a12d3003c36d',1,'Menu']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.html
new file mode 100644
index 0000000..ada2b81
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.js
new file mode 100644
index 0000000..eb8016b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_d.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['operator_2b_3d_0',['operator+=',['../classList.html#aa4332ce5a589da28528f035ded6d41e5',1,'List::operator+=()'],['../classString.html#a64de9ab1af5df9397f8fbd8c79d5f4b6',1,'String::operator+=(const char *str)'],['../classString.html#aed8480111703abc1f281148c778b0445',1,'String::operator+=(unsigned number)']]],
+ ['operator_3c_3c_1',['operator&lt;&lt;',['../Date_8h.html#ad12d4bbc4f7919efdec583d1478a6a76',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Date &amp;dt):&#160;Date.cpp'],['../List_8hpp.html#ac8590f4d4ba6c820c34afe14df54f2c2',1,'operator&lt;&lt;(std::ostream &amp;ostr, const List&lt; T &gt; &amp;obj):&#160;List.hpp'],['../Event_8h.html#a08eaf45abee385d26c4934afeb9be163',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Event &amp;event):&#160;Event.cpp'],['../Hall_8h.html#a9671d0935caa6dd24b5f1b9be101c477',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Hall &amp;hall):&#160;Hall.cpp'],['../Ticket_8h.html#ae1686d3505df5e86e64e6e1b263e92ce',1,'operator&lt;&lt;(std::ostream &amp;ostr, const Ticket &amp;ticket):&#160;Ticket.cpp']]],
+ ['operator_3e_3e_2',['operator&gt;&gt;',['../Date_8h.html#ae020cf1772268f1a43d172d3adfc9797',1,'operator&gt;&gt;(std::istream &amp;istr, Date &amp;dt):&#160;Date.cpp'],['../List_8hpp.html#a7469c3479753bfbada761697c539aa07',1,'operator&gt;&gt;(std::istream &amp;istr, List&lt; T &gt; &amp;obj):&#160;List.hpp'],['../Event_8h.html#a31d9c76919809491b346728ec6659b19',1,'operator&gt;&gt;(std::istream &amp;istr, Event &amp;event):&#160;Event.cpp'],['../Hall_8h.html#ac55d9db507637effdb1896e33c86d439',1,'operator&gt;&gt;(std::istream &amp;istr, Hall &amp;hall):&#160;Hall.cpp'],['../Ticket_8h.html#ac5c53ae039e173faa4cce85c2e32c920',1,'operator&gt;&gt;(std::istream &amp;istr, Ticket &amp;ticket):&#160;Ticket.cpp']]],
+ ['operator_5b_5d_3',['operator[]',['../classList.html#a321bb581943398344aad07198d1f02ac',1,'List::operator[](unsigned index)'],['../classList.html#a5fa582de3aec5094a871852b658cf853',1,'List::operator[](unsigned index) const'],['../classString.html#a5d3b77a51619a8580a373d2cd1092a54',1,'String::operator[]()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.html
new file mode 100644
index 0000000..1297715
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.js
new file mode 100644
index 0000000..b71ccda
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_e.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['pressentertocontinue_0',['pressEnterToContinue',['../Toolbox_8hpp.html#ac7f54319bf4e70a46e3155ae1b39e832',1,'Toolbox.cpp']]],
+ ['print_1',['print',['../Toolbox_8hpp.html#a5ca1093462d3266fceb8522e144c1e73',1,'print(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a9c0a0d7d3210ca5f12f02ac4cb88476e',1,'print(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printline_2',['printLine',['../Toolbox_8hpp.html#a148d9d6b8b15bbfc2b1f4cdb16c2ee81',1,'printLine(const T *item):&#160;Toolbox.hpp'],['../Toolbox_8hpp.html#a799f4cb5b4da3d40261e25d9e41995aa',1,'printLine(const T &amp;item):&#160;Toolbox.hpp']]],
+ ['printorderedlistelem_3',['printOrderedListElem',['../Toolbox_8hpp.html#abe3a449632ee6d40eb59101dd2d2f114',1,'Toolbox.hpp']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.html
new file mode 100644
index 0000000..d2ae3cf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.js
new file mode 100644
index 0000000..0066e45
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/functions_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['queryinsufficientlyvisited_0',['queryInsufficientlyVisited',['../classEventService.html#a814de3510f72150f2e54d44f8c8948bb',1,'EventService']]],
+ ['querymostwatched_1',['queryMostWatched',['../classEventService.html#a6700bd4f9da6d12a47812b9c8549556e',1,'EventService']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/mag_sel.svg b/Year 1/Object-oriented Programming/Project 1/docs/html/search/mag_sel.svg
new file mode 100644
index 0000000..03626f6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/mag_sel.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="svg2"
+ width="20"
+ height="19"
+ viewBox="0 0 20 19"
+ sodipodi:docname="mag_sel.svg"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="2096"
+ id="namedview4"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="32"
+ inkscape:cx="5.9792688"
+ inkscape:cy="1.1436277"
+ inkscape:window-x="1920"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <circle
+ style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path4611"
+ cx="5.5"
+ cy="8.5"
+ r="3.5" />
+ <path
+ style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11,7 13.5,10 16,7 Z"
+ id="path4609"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.1085854,11.109059 2.7823556,2.782356"
+ id="path4630"
+ inkscape:connector-curvature="0" />
+</svg>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/nomatches.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/nomatches.html
new file mode 100644
index 0000000..2b9360b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/nomatches.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.html
new file mode 100644
index 0000000..e53c280
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.js
new file mode 100644
index 0000000..6cfe3e5
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['fmi_20tickets_20system_0',['FMI Tickets System',['../index.html',1,'']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.html b/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.html
new file mode 100644
index 0000000..28d304b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="related_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+ if (event.data == "take_focus") {
+ var elem = searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.js
new file mode 100644
index 0000000..6e66f56
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/related_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['operator_3c_3c_0',['operator&lt;&lt;',['../classString.html#aa00d824f40064ff356aa7c15d6a9da12',1,'String::operator&lt;&lt;()'],['../classReservation.html#abf734c0a55da55ef89dab1e2f12b8ebd',1,'Reservation::operator&lt;&lt;()']]],
+ ['operator_3e_3e_1',['operator&gt;&gt;',['../classString.html#a1918adea635f3f340dbecd6fb05341f8',1,'String::operator&gt;&gt;()'],['../classReservation.html#a2b7331e532f77bbc67eab217bfeb1f25',1,'Reservation::operator&gt;&gt;()']]]
+];
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.css b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.css
new file mode 100644
index 0000000..648a792
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.css
@@ -0,0 +1,263 @@
+/*---------------- Search Box */
+
+#MSearchBox {
+ white-space : nowrap;
+ background: white;
+ border-radius: 0.65em;
+ box-shadow: inset 0.5px 0.5px 3px 0px #555;
+ z-index: 102;
+}
+
+#MSearchBox .left {
+ display: inline-block;
+ vertical-align: middle;
+ height: 1.4em;
+}
+
+#MSearchSelect {
+ display: inline-block;
+ vertical-align: middle;
+ height: 19px;
+ padding: 0 0 0 0.3em;
+ margin: 0;
+}
+
+#MSearchField {
+ display: inline-block;
+ vertical-align: middle;
+ width: 7.5em;
+ height: 19px;
+ margin: 0 0.15em;
+ padding: 0;
+ line-height: 1em;
+ border:none;
+ color: #909090;
+ outline: none;
+ font-family: Arial, Verdana, sans-serif;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+ background: none;
+}
+
+@media(hover: none) {
+ /* to avoid zooming on iOS */
+ #MSearchField {
+ font-size: 16px;
+ }
+}
+
+#MSearchBox .right {
+ display: inline-block;
+ vertical-align: middle;
+ width: 1.4em;
+ height: 1.4em;
+}
+
+#MSearchClose {
+ display: none;
+ font-size: inherit;
+ background : none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ outline: none;
+
+}
+
+#MSearchCloseImg {
+ height: 1.4em;
+ padding: 0.3em;
+ margin: 0;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+#main-menu > li:last-child {
+ /* This <li> object is the parent of the search bar */
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 36px;
+ margin-right: 1em;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 10001;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ /*width: 60ex;*/
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+ z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+ font-family: Arial, Verdana, sans-serif;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+ font-family: Arial, Verdana, sans-serif;
+}
+
+.SRResult {
+ display: none;
+}
+
+div.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.js
new file mode 100644
index 0000000..ac8055d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search.js
@@ -0,0 +1,794 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, label, extension)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+ if (!extension || extension == "") { extension = ".html"; }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.searchLabel = label;
+ this.extension = extension;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else
+ {
+ window.frames.MSearchResults.postMessage("take_focus", "*");
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches' + this.extension;
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline-block';
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ var maxWidth = document.body.clientWidth;
+ var width = 400;
+ if (left<10) left=10;
+ if (width+left+8>maxWidth) width=maxWidth-left-8;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
+function init_search()
+{
+ var results = document.getElementById("MSearchSelectWindow");
+ for (var key in indexSectionLabels)
+ {
+ var link = document.createElement('a');
+ link.setAttribute('class','SelectItem');
+ link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+ link.href='javascript:void(0)';
+ link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+ results.appendChild(link);
+ }
+ searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_l.png b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_l.png
new file mode 100644
index 0000000..fd5f7da
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_l.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_m.png b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_m.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_r.png b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_r.png
new file mode 100644
index 0000000..1af5d21
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/search_r.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/search/searchdata.js b/Year 1/Object-oriented Programming/Project 1/docs/html/search/searchdata.js
new file mode 100644
index 0000000..9e9ba79
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/search/searchdata.js
@@ -0,0 +1,33 @@
+var indexSectionsWithContent =
+{
+ 0: "_abcdefghilmnopqrstw",
+ 1: "cdehlmorst",
+ 2: "cdefhlmorst",
+ 3: "_abcdefghilmnopqrstw",
+ 4: "s",
+ 5: "o",
+ 6: "f"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "files",
+ 3: "functions",
+ 4: "enums",
+ 5: "related",
+ 6: "pages"
+};
+
+var indexSectionLabels =
+{
+ 0: "All",
+ 1: "Classes",
+ 2: "Files",
+ 3: "Functions",
+ 4: "Enumerations",
+ 5: "Friends",
+ 6: "Pages"
+};
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/splitbar.png b/Year 1/Object-oriented Programming/Project 1/docs/html/splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/splitbar.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/sync_off.png b/Year 1/Object-oriented Programming/Project 1/docs/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/sync_off.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/sync_on.png b/Year 1/Object-oriented Programming/Project 1/docs/html/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/sync_on.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/tab_a.png b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_a.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/tab_b.png b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_b.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/tab_h.png b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_h.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/tab_s.png b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/tab_s.png
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/html/tabs.css b/Year 1/Object-oriented Programming/Project 1/docs/html/tabs.css
new file mode 100644
index 0000000..00d1c60
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/html/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/images/FMI-OOP-P1_TicketSystem Overview.svg b/Year 1/Object-oriented Programming/Project 1/docs/images/FMI-OOP-P1_TicketSystem Overview.svg
new file mode 100644
index 0000000..6e35d2f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/images/FMI-OOP-P1_TicketSystem Overview.svg
@@ -0,0 +1,571 @@
+<svg version="1.1" baseProfile="full" width="1076.5" height="1271.0" viewbox="0 0 1076.5 1271" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+ <title >FMI-OOP-P1_TicketSystem Overview</title>
+ <desc >#title: FMI-OOP-P1_TicketSystem Overview
+ #background: #fdf6e3
+ #bendSize: 0
+ #fillArrows: true
+ #lineWidth: 2
+ #leading: 1.3
+
+ #.groupui: title=italic fill=#b2ee97 direction=right
+ #.groupes: title=italic fill=#97c8ee direction=right
+ #.groupm: title=italic fill=#ee9797 direction=down
+ #.groupv: title=italic fill=#eee997 direction=right
+ #.groupgc: title=italic fill=#c0baac direction=right
+
+ [main.cpp|
+ EventService es
+ HallService hs
+ ]
+
+ [&lt;groupui&gt; User Interface|
+ [FMITicketSystemConsoleUI.cpp|
+ EventService* es
+ HallService* hs
+ runUI()
+ ]
+ ]
+ [main.cpp]-&gt;[User Interface]
+
+ [&lt;groupes&gt; Services|
+ [EventService|
+ OrderedList&lt;Event&gt; events
+ |
+ + createEvent()
+ . cancelEvent()
+ + reserveTicket()
+ + cancelTicketReservation()
+ + buyTicket()
+ . queryEventHall()
+ . queryTickets()
+ . queryReservations()
+ ~ queryMostVisited()
+ ~ queryInsufficientlyVisited()
+ + reportBoughtTickets()
+ + reportReservations()
+ ]
+
+ [HallService|
+ OrderedList&lt;Hall&gt; halls
+ |
+ hallExists()
+ ]
+ [EventService]--&gt;[HallService]
+
+ [StatusCodes.h|
+ enum StatusCode
+ ]
+ ]
+ [User Interface]-&gt;[Services]
+
+ [&lt;groupm&gt; Models|
+ [Ticket|
+ unsigned row
+ unsigned seat
+ ]
+
+ [Reservation|
+ Ticket ticket
+ char\[8\] password
+ char\[32\] note
+ ]
+
+ [Event|
+ Hall* hall
+ String name
+ Date date
+ OrderedList&lt;Ticket&gt; tickets
+ OrderedList&lt;Reservation&gt; reservations
+ ]
+ [Ticket]--&gt;[Event]
+ [Reservation]--&gt;[Event]
+
+ [Hall|
+ int number
+ unsigned rowCount
+ unsigned seatsPerRow
+ ]
+ [&lt;hidden&gt;H]-/-[Hall]
+ ]
+ [Services]&lt;--[Models]
+
+ [&lt;groupgc&gt; Generic Classes|
+ [List&lt;T&gt;|
+ add(elem)
+ insertAt(elem, index)
+ removeAt(index)
+ findIndex(elem);
+ contain(elem);
+ operator\[\](index)
+ ]
+
+ [OrderedList&lt;T&gt;|
+ insert(elem)
+ remove(elem)
+ ]
+ [List&lt;T&gt;]&lt;:-[OrderedList&lt;T&gt;]
+
+ [Date|
+ unsigned day
+ unsigned month
+ int year
+ ]
+
+ [String|
+ char* str
+ unsigned length
+ unsigned count
+ ]
+ [String]-/-[Date]
+
+ [Command|
+ String name
+ void (*exec)()
+ ]
+
+ [Menu|
+ List&lt;Command&gt; commands
+ navigate()
+ ]
+ [Menu]--&gt;[Command]
+ ]
+ [&lt;hidden&gt;H1]-/-[&lt;hidden&gt;H2]
+ [H2]-/-[Generic Classes]</desc>
+ <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="bold" font-style="normal">
+ <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E">
+ <g stroke="transparent" fill="#fdf6e3">
+ <rect x="0.0" y="0.0" height="1271.0" width="1076.5" stroke="none"></rect>
+ </g>
+ <g transform="translate(8, 8)" fill="#33322E">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal">
+ <path d="M286.0 79.0 L286 99 L286 112.33333333333333 L286.0 112.3 " fill="none"></path>
+ <path d="M280.7 105.7 L286.0 105.7 L291.3 105.7 L286.0 119.0 Z"></path>
+ <path d="M286.0 302.0 L286 322 L286 347.8333333333333 L286.0 347.8 " fill="none"></path>
+ <path d="M280.7 341.2 L286.0 341.2 L291.3 341.2 L286.0 354.5 Z"></path>
+ <g stroke-dasharray="4 4">
+ <path d="M286.0 820.2 L286 846 L286 866 L286.0 866.0 " fill="none"></path>
+ </g>
+ <path d="M291.3 826.8 L286.0 826.8 L280.7 826.8 L286.0 813.5 Z"></path>
+ <g data-name="main.cpp">
+ <g fill="#eee8d5" stroke="#33322E" data-name="main.cpp">
+ <rect x="220.0" y="0.0" height="79.0" width="132.0" data-name="main.cpp"></rect>
+ <path d="M220.0 32.0 L352.0 32.0" fill="none" data-name="main.cpp"></path>
+ </g>
+ <g transform="translate(220, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="main.cpp">
+ <text x="58.0" y="13.8" stroke="none" text-anchor="middle" data-name="main.cpp">main.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(220, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="main.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="main.cpp">EventService es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="main.cpp">HallService hs</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="User Interface">
+ <g fill="#b2ee97" stroke="#33322E" data-name="User Interface">
+ <rect x="129.0" y="119.0" height="183.0" width="314.0" data-name="User Interface"></rect>
+ <path d="M129.0 151.0 L443.0 151.0" fill="none" data-name="User Interface"></path>
+ </g>
+ <g transform="translate(129, 119)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="User Interface">
+ <text x="149.0" y="13.8" stroke="none" text-anchor="middle" data-name="User Interface">User Interface</text>
+
+ </g>
+ </g>
+ <g transform="translate(129, 151)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="User Interface">
+ <g transform="translate(20, 20)" data-name="User Interface">
+ <g data-name="FMITicketSystemConsoleUI.cpp">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="FMITicketSystemConsoleUI.cpp">
+ <rect x="0.0" y="0.0" height="95.0" width="258.0" data-name="FMITicketSystemConsoleUI.cpp"></rect>
+ <path d="M0.0 32.0 L258.0 32.0" fill="none" data-name="FMITicketSystemConsoleUI.cpp"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="121.0" y="13.8" stroke="none" text-anchor="middle" data-name="FMITicketSystemConsoleUI.cpp">FMITicketSystemConsoleUI.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">EventService* es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">HallService* hs</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">runUI()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Services">
+ <g fill="#97c8ee" stroke="#33322E" data-name="Services">
+ <rect x="39.0" y="355.0" height="459.0" width="495.0" data-name="Services"></rect>
+ <path d="M39.0 387.0 L534.0 387.0" fill="none" data-name="Services"></path>
+ </g>
+ <g transform="translate(39, 355)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Services">
+ <text x="239.5" y="13.8" stroke="none" text-anchor="middle" data-name="Services">Services</text>
+
+ </g>
+ </g>
+ <g transform="translate(39, 387)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Services">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g stroke-dasharray="4 4" data-name="Services">
+ <path d="M216.0 133.5 L236 133.5 L249.33333333333334 133.5 L249.3 133.5 " fill="none" data-name="Services"></path>
+ </g>
+ <path d="M242.7 138.8 L242.7 133.5 L242.7 128.2 L256.0 133.5 Z" data-name="Services"></path>
+ <g data-name="EventService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="EventService">
+ <rect x="0.0" y="0.0" height="267.0" width="216.0" data-name="EventService"></rect>
+ <path d="M0.0 32.0 L216.0 32.0" fill="none" data-name="EventService"></path>
+ <path d="M0.0 64.0 L216.0 64.0" fill="none" data-name="EventService"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="EventService">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="EventService">EventService</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">OrderedList&lt;Event&gt; events</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">+ createEvent()</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="EventService">. cancelEvent()</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="EventService">+ reserveTicket()</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="EventService">+ cancelTicketReservation()</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="EventService">+ buyTicket()</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="EventService">. queryEventHall()</text>
+ <text x="0.0" y="107.4" stroke="none" data-name="EventService">. queryTickets()</text>
+ <text x="0.0" y="123.0" stroke="none" data-name="EventService">. queryReservations()</text>
+ <text x="0.0" y="138.6" stroke="none" data-name="EventService">~ queryMostVisited()</text>
+ <text x="0.0" y="154.2" stroke="none" data-name="EventService">~ queryInsufficientlyVisited()</text>
+ <text x="0.0" y="169.8" stroke="none" data-name="EventService">+ reportBoughtTickets()</text>
+ <text x="0.0" y="185.4" stroke="none" data-name="EventService">+ reportReservations()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="HallService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="HallService">
+ <rect x="256.0" y="86.0" height="96.0" width="183.0" data-name="HallService"></rect>
+ <path d="M256.0 118.0 L439.0 118.0" fill="none" data-name="HallService"></path>
+ <path d="M256.0 150.0 L439.0 150.0" fill="none" data-name="HallService"></path>
+ </g>
+ <g transform="translate(256, 86)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="HallService">
+ <text x="83.5" y="13.8" stroke="none" text-anchor="middle" data-name="HallService">HallService</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 118)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">OrderedList&lt;Hall&gt; halls</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 150)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">hallExists()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="StatusCodes.h">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="StatusCodes.h">
+ <rect x="36.0" y="307.0" height="64.0" width="144.0" data-name="StatusCodes.h"></rect>
+ <path d="M36.0 339.0 L180.0 339.0" fill="none" data-name="StatusCodes.h"></path>
+ </g>
+ <g transform="translate(36, 307)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="StatusCodes.h">
+ <text x="64.0" y="13.8" stroke="none" text-anchor="middle" data-name="StatusCodes.h">StatusCodes.h</text>
+
+ </g>
+ </g>
+ <g transform="translate(36, 339)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="StatusCodes.h">
+ <text x="0.0" y="13.8" stroke="none" data-name="StatusCodes.h">enum StatusCode</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Models">
+ <g fill="#ee9797" stroke="#33322E" data-name="Models">
+ <rect x="0.0" y="866.0" height="349.0" width="572.0" data-name="Models"></rect>
+ <path d="M0.0 898.0 L572.0 898.0" fill="none" data-name="Models"></path>
+ </g>
+ <g transform="translate(0, 866)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Models">
+ <text x="278.0" y="13.8" stroke="none" text-anchor="middle" data-name="Models">Models</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 898)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Models">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M64.0 87.0 L64 115 L79.39230174726517 130.30013227572465 L79.4 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M70.9 129.4 L74.7 125.6 L78.4 121.8 L84.1 135.0 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M231.8 95.0 L231.75 115 L216.19793977786054 130.3213174888733 L216.2 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M217.2 121.8 L220.9 125.6 L224.7 129.4 L211.4 135.0 Z" data-name="Models"></path>
+ <g data-name="Ticket">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Ticket">
+ <rect x="6.0" y="8.0" height="79.0" width="116.0" data-name="Ticket"></rect>
+ <path d="M6.0 40.0 L122.0 40.0" fill="none" data-name="Ticket"></path>
+ </g>
+ <g transform="translate(6, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Ticket">
+ <text x="50.0" y="13.8" stroke="none" text-anchor="middle" data-name="Ticket">Ticket</text>
+
+ </g>
+ </g>
+ <g transform="translate(6, 40)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Ticket">
+ <text x="0.0" y="13.8" stroke="none" data-name="Ticket">unsigned row</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Ticket">unsigned seat</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Reservation">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Reservation">
+ <rect x="163.0" y="0.0" height="95.0" width="138.0" data-name="Reservation"></rect>
+ <path d="M163.0 32.0 L301.0 32.0" fill="none" data-name="Reservation"></path>
+ </g>
+ <g transform="translate(163, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Reservation">
+ <text x="61.0" y="13.8" stroke="none" text-anchor="middle" data-name="Reservation">Reservation</text>
+
+ </g>
+ </g>
+ <g transform="translate(163, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Reservation">
+ <text x="0.0" y="13.8" stroke="none" data-name="Reservation">Ticket ticket</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Reservation">char[8] password</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Reservation">char[32] note</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Event">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Event">
+ <rect x="0.0" y="135.0" height="126.0" width="295.0" data-name="Event"></rect>
+ <path d="M0.0 167.0 L295.0 167.0" fill="none" data-name="Event"></path>
+ </g>
+ <g transform="translate(0, 135)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Event">
+ <text x="139.5" y="13.8" stroke="none" text-anchor="middle" data-name="Event">Event</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 167)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Event">
+ <text x="0.0" y="13.8" stroke="none" data-name="Event">Hall* hall</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Event">String name</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Event">Date date</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="Event">OrderedList&lt;Ticket&gt; tickets</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="Event">OrderedList&lt;Reservation&gt; reservations</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Hall">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Hall">
+ <rect x="335.0" y="151.0" height="95.0" width="181.0" data-name="Hall"></rect>
+ <path d="M335.0 183.0 L516.0 183.0" fill="none" data-name="Hall"></path>
+ </g>
+ <g transform="translate(335, 151)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Hall">
+ <text x="82.5" y="13.8" stroke="none" text-anchor="middle" data-name="Hall">Hall</text>
+
+ </g>
+ </g>
+ <g transform="translate(335, 183)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Hall">
+ <text x="0.0" y="13.8" stroke="none" data-name="Hall">int number</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Hall">unsigned rowCount</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Hall">unsigned seatsPerRow</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="H">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Generic Classes">
+ <g fill="#c0baac" stroke="#33322E" data-name="Generic Classes">
+ <rect x="574.0" y="342.0" height="484.0" width="447.0" data-name="Generic Classes"></rect>
+ <path d="M574.0 374.0 L1021.0 374.0" fill="none" data-name="Generic Classes"></path>
+ </g>
+ <g transform="translate(574, 342)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Generic Classes">
+ <text x="215.5" y="13.8" stroke="none" text-anchor="middle" data-name="Generic Classes">Generic Classes</text>
+
+ </g>
+ </g>
+ <g transform="translate(574, 374)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Generic Classes">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <path d="M202.8 71.0 L236 71 L256 71 L256.0 71.0 " fill="none" data-name="Generic Classes"></path>
+ <path d="M202.8 65.7 L202.8 71.0 L202.8 76.3 L189.5 71.0 Z" data-name="Generic Classes"></path>
+ <g stroke-dasharray="4 4" data-name="Generic Classes">
+ <path d="M216.0 356.5 L236 356.5 L261.3333333333333 356.5 L261.3 356.5 " fill="none" data-name="Generic Classes"></path>
+ </g>
+ <path d="M254.7 361.8 L254.7 356.5 L254.7 351.2 L268.0 356.5 Z" data-name="Generic Classes"></path>
+ <g data-name="List&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="List&lt;T&gt;">
+ <rect x="27.0" y="0.0" height="142.0" width="163.0" data-name="List&lt;T&gt;"></rect>
+ <path d="M27.0 32.0 L190.0 32.0" fill="none" data-name="List&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(27, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="List&lt;T&gt;">
+ <text x="73.5" y="13.8" stroke="none" text-anchor="middle" data-name="List&lt;T&gt;">List&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(27, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="List&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="List&lt;T&gt;">add(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="List&lt;T&gt;">insertAt(elem, index)</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="List&lt;T&gt;">removeAt(index)</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="List&lt;T&gt;">findIndex(elem)</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="List&lt;T&gt;">contain(elem)</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="List&lt;T&gt;">operator[](index)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="OrderedList&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="OrderedList&lt;T&gt;">
+ <rect x="256.0" y="32.0" height="79.0" width="135.0" data-name="OrderedList&lt;T&gt;"></rect>
+ <path d="M256.0 64.0 L391.0 64.0" fill="none" data-name="OrderedList&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(256, 32)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="OrderedList&lt;T&gt;">
+ <text x="59.5" y="13.8" stroke="none" text-anchor="middle" data-name="OrderedList&lt;T&gt;">OrderedList&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="OrderedList&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="OrderedList&lt;T&gt;">insert(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="OrderedList&lt;T&gt;">remove(elem)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Date">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Date">
+ <rect x="259.0" y="182.0" height="95.0" width="130.0" data-name="Date"></rect>
+ <path d="M259.0 214.0 L389.0 214.0" fill="none" data-name="Date"></path>
+ </g>
+ <g transform="translate(259, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Date">
+ <text x="57.0" y="13.8" stroke="none" text-anchor="middle" data-name="Date">Date</text>
+
+ </g>
+ </g>
+ <g transform="translate(259, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Date">
+ <text x="0.0" y="13.8" stroke="none" data-name="Date">unsigned day</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Date">unsigned month</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Date">int year</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="String">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="String">
+ <rect x="44.0" y="182.0" height="95.0" width="129.0" data-name="String"></rect>
+ <path d="M44.0 214.0 L173.0 214.0" fill="none" data-name="String"></path>
+ </g>
+ <g transform="translate(44, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="String">
+ <text x="56.5" y="13.8" stroke="none" text-anchor="middle" data-name="String">String</text>
+
+ </g>
+ </g>
+ <g transform="translate(44, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="String">
+ <text x="0.0" y="13.8" stroke="none" data-name="String">char* str</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="String">unsigned length</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="String">unsigned count</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Command">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Command">
+ <rect x="268.0" y="317.0" height="79.0" width="111.0" data-name="Command"></rect>
+ <path d="M268.0 349.0 L379.0 349.0" fill="none" data-name="Command"></path>
+ </g>
+ <g transform="translate(268, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Command">
+ <text x="47.5" y="13.8" stroke="none" text-anchor="middle" data-name="Command">Command</text>
+
+ </g>
+ </g>
+ <g transform="translate(268, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Command">
+ <text x="0.0" y="13.8" stroke="none" data-name="Command">String name</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Command">void (*exec)()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Menu">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Menu">
+ <rect x="0.0" y="317.0" height="79.0" width="216.0" data-name="Menu"></rect>
+ <path d="M0.0 349.0 L216.0 349.0" fill="none" data-name="Menu"></path>
+ </g>
+ <g transform="translate(0, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Menu">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="Menu">Menu</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Menu">
+ <text x="0.0" y="13.8" stroke="none" data-name="Menu">List&lt;Command&gt; commands</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Menu">navigate()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="H1">
+
+ </g>
+ <g data-name="H2">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/index.md b/Year 1/Object-oriented Programming/Project 1/docs/index.md
new file mode 100644
index 0000000..c9e1134
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/index.md
@@ -0,0 +1,67 @@
+# FMI Tickets System {#mainpage}
+
+\author Kamen Mladenov; FMI Computer Science, Year 1, Group 6; Project 1, Topic 4
+\date 12 May 2022
+\copyright GNU General Public License v3.0
+
+<dl>
+ <dt>Source Code</dt>
+ <dd>https://github.com/Syndamia/FMI-OOP-P1_TicketSystem</dd>
+</dl>
+
+## About
+
+The "FMI Ticket System" is a small project, designed for managing the seats for different events. You can create or cancel an event in any available hall, reserve or straight out buy tickets for any given event and create some reports.
+
+## Structure overview
+
+The project is roughly divided into 4 main components: User Interface, Services, Models and Generic \ref fig1.
+- The User Interface is the messenger between a user and the underlying application. All input and output is handled here.
+- Services contain the business logic of the whole application. All requests to do anything like buying a ticket or creating an event must be sent to here.
+- Models are the general classes that are used in the previous two layers.
+- Generic is a place for all code that is can be used independently from the project. Stuff like Date, String or List.
+
+This offers a fairly modular and flexible architecture, which should make big changes or additions to the code easier and more pain-free.
+
+## Building the project
+
+Instructions are all for `gcc`. All commands should be executed while in the `src` folder.
+
+### Linux/BSD/MacOS
+
+```bash
+g++ *.cpp */*.cpp */*/*.cpp -o TicketSystem.out && ./TicketSystem.out
+```
+
+### Windows (PowerShell)
+
+```bash
+g++ (Get-ChildItem -Recurse *.cpp) -o TicketSystem.exe && ./TicketSystem.exe
+```
+
+## Running the tests
+
+Instructions are all for `gcc`. All commands should be executed while in the `tests` folder.
+
+### Linux/BSD/MacOS
+
+```bash
+g++ Tests_ALL.cpp ../src/*/*.cpp ../src/*/*/*.cpp -o Tests_ALL.out && ./Tests_ALL.out
+```
+
+## Acknowledgements
+
+<dl>
+ <dt>Wikipedia</dt>
+ <dd>Leap year calculation for Date <br> https://en.wikipedia.org/wiki/Leap_year#Gregorian_calendar</dd>
+ <dt>StackOverflow</dt>
+ <dd>Way to clear the console in Toolbox.hpp <br> https://stackoverflow.com/a/52895729/12036073</dd>
+</dl>
+
+## Figures
+
+\anchor fig1
+**Figure 1:** Overview of the "FMI Ticket System" design
+
+\image html "FMI-OOP-P1_TicketSystem Overview.svg" ""
+\image latex "FMI-OOP-P1_TicketSystem Overview.svg" "Not available in LaTeX!"
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h.tex
new file mode 100644
index 0000000..2928852
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h.tex
@@ -0,0 +1,17 @@
+\hypertarget{Command_8h}{}\doxysection{src/\+Generic/\+Console\+Interface/\+Command.h File Reference}
+\label{Command_8h}\index{src/Generic/ConsoleInterface/Command.h@{src/Generic/ConsoleInterface/Command.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classCommand}{Command}}.
+
+
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classCommand}{Command}}
+\begin{DoxyCompactList}\small\item\em Stores a 256 character name and a function pointer to be executed when calling \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run()}} \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classCommand}{Command}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h_source.tex
new file mode 100644
index 0000000..96a94d4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Command_8h_source.tex
@@ -0,0 +1,22 @@
+\hypertarget{Command_8h_source}{}\doxysection{Command.\+h}
+\label{Command_8h_source}\index{src/Generic/ConsoleInterface/Command.h@{src/Generic/ConsoleInterface/Command.h}}
+\mbox{\hyperlink{Command_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_CONSOLEINTERFACE\_COMMAND}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_CONSOLEINTERFACE\_COMMAND}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{12 \textcolor{keyword}{class }\mbox{\hyperlink{classCommand}{Command}} \{}
+\DoxyCodeLine{13 \textcolor{keywordtype}{char} nameInMenu[256];}
+\DoxyCodeLine{14 void (*exec)();}
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{keyword}{public}:}
+\DoxyCodeLine{18 \mbox{\hyperlink{classCommand_a18df2d81039392daeb0b78c346a70537}{Command}}();}
+\DoxyCodeLine{20 \mbox{\hyperlink{classCommand_a18df2d81039392daeb0b78c346a70537}{Command}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* nameInMenu, \textcolor{keywordtype}{void} (*exec)());}
+\DoxyCodeLine{22 \textcolor{keywordtype}{void} \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* get\_nameInMenu() \textcolor{keyword}{const};}
+\DoxyCodeLine{25 \};}
+\DoxyCodeLine{26 }
+\DoxyCodeLine{27 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h.tex
new file mode 100644
index 0000000..3143f33
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h.tex
@@ -0,0 +1,60 @@
+\hypertarget{Date_8h}{}\doxysection{src/\+Generic/\+Date/\+Date.h File Reference}
+\label{Date_8h}\index{src/Generic/Date/Date.h@{src/Generic/Date/Date.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classDate}{Date}}.
+
+
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+{\ttfamily \#include \char`\"{}../\+String/\+String.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classDate}{Date}}
+\begin{DoxyCompactList}\small\item\em Stores a day, month and year. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{Date_8h_ae020cf1772268f1a43d172d3adfc9797}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classDate}{Date}} \&dt)
+\begin{DoxyCompactList}\small\item\em Reads date from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{Date_8h_ad12d4bbc4f7919efdec583d1478a6a76}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classDate}{Date}} \&dt)
+\begin{DoxyCompactList}\small\item\em Writes date to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classDate}{Date}}.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{Date_8h_ad12d4bbc4f7919efdec583d1478a6a76}\label{Date_8h_ad12d4bbc4f7919efdec583d1478a6a76}}
+\index{Date.h@{Date.h}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!Date.h@{Date.h}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{dt }\end{DoxyParamCaption})}
+
+
+
+Writes date to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write the date in the format \char`\"{}day.\+month.\+year\char`\"{}
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{Date_8h_ae020cf1772268f1a43d172d3adfc9797}\label{Date_8h_ae020cf1772268f1a43d172d3adfc9797}}
+\index{Date.h@{Date.h}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!Date.h@{Date.h}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classDate}{Date}} \&}]{dt }\end{DoxyParamCaption})}
+
+
+
+Reads date from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse the day, month and year.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h_source.tex
new file mode 100644
index 0000000..fb3dfdc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Date_8h_source.tex
@@ -0,0 +1,44 @@
+\hypertarget{Date_8h_source}{}\doxysection{Date.\+h}
+\label{Date_8h_source}\index{src/Generic/Date/Date.h@{src/Generic/Date/Date.h}}
+\mbox{\hyperlink{Date_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_DATE}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_DATE}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#include "{}../String/String.h"{}}}
+\DoxyCodeLine{11 }
+\DoxyCodeLine{14 \textcolor{keyword}{class }\mbox{\hyperlink{classDate}{Date}} \{}
+\DoxyCodeLine{15 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} day;}
+\DoxyCodeLine{16 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} month;}
+\DoxyCodeLine{17 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} year;}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keywordtype}{bool} isLeapYear();}
+\DoxyCodeLine{20 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} daysInMonth();}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 \textcolor{keyword}{public}:}
+\DoxyCodeLine{24 \mbox{\hyperlink{classDate_a4e59ed4ba66eec61c27460c5d09fa1bd}{Date}}();}
+\DoxyCodeLine{26 \mbox{\hyperlink{classDate_a4e59ed4ba66eec61c27460c5d09fa1bd}{Date}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* str);}
+\DoxyCodeLine{28 \mbox{\hyperlink{classDate_a4e59ed4ba66eec61c27460c5d09fa1bd}{Date}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} day, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} month, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} year);}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{31 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{classDate_a2e4dc4249f8cccd40acc5950b42e1339}{get\_day}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{33 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDate_acaf0c3ee1b2d36edf4f870ddd8acce08}{set\_day}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} day);}
+\DoxyCodeLine{35 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{classDate_a79ebbf3cb46f892604dc79ffc82bcfcc}{get\_month}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{37 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDate_ad0a591a557ddde0871389c3d716e6044}{set\_month}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} month);}
+\DoxyCodeLine{39 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{classDate_a025aae2b290ba357e049d054085f91e3}{get\_year}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{41 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDate_a6a0f3124e1850cd9f1514ebffcdd0cae}{set\_year}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} year);}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{44 \mbox{\hyperlink{classString}{String}} \mbox{\hyperlink{classDate_a6e00ace9f8c923c96188bd76f1e064c2}{createString}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{47 \textcolor{keywordtype}{void} \mbox{\hyperlink{classDate_a982c0c9098056aa33c5cbc9eba093852}{read}}(std::istream\& istr);}
+\DoxyCodeLine{49 \textcolor{keywordtype}{void} \mbox{\hyperlink{classDate_a9c728831f35f27abf3348132a13b7844}{write}}(std::ostream\& ostr);}
+\DoxyCodeLine{51 \textcolor{keywordtype}{int} \mbox{\hyperlink{classDate_a3cda588bf2f65b84639303a1aa1105be}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& other) \textcolor{keyword}{const};}
+\DoxyCodeLine{52 \};}
+\DoxyCodeLine{53 }
+\DoxyCodeLine{55 std::istream\& \mbox{\hyperlink{Date_8h_ae020cf1772268f1a43d172d3adfc9797}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classDate}{Date}}\& dt);}
+\DoxyCodeLine{57 std::ostream\& \mbox{\hyperlink{Date_8h_ad12d4bbc4f7919efdec583d1478a6a76}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& dt);}
+\DoxyCodeLine{58 }
+\DoxyCodeLine{59 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h.tex
new file mode 100644
index 0000000..45099e1
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h.tex
@@ -0,0 +1,22 @@
+\hypertarget{EventService_8h}{}\doxysection{src/\+Services/\+Event\+Service.h File Reference}
+\label{EventService_8h}\index{src/Services/EventService.h@{src/Services/EventService.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classEventService}{Event\+Service}}.
+
+
+{\ttfamily \#include \char`\"{}../\+Generic/\+List/\+Ordered\+List.\+hpp\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Generic/\+Date/\+Date.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Models/\+Event.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Hall\+Service.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Status\+Code.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classEventService}{Event\+Service}}
+\begin{DoxyCompactList}\small\item\em Each \mbox{\hyperlink{classEventService}{Event\+Service}} stores all events and a pointer to \mbox{\hyperlink{classHallService}{Hall\+Service}}. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classEventService}{Event\+Service}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h_source.tex
new file mode 100644
index 0000000..07b9197
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/EventService_8h_source.tex
@@ -0,0 +1,49 @@
+\hypertarget{EventService_8h_source}{}\doxysection{Event\+Service.\+h}
+\label{EventService_8h_source}\index{src/Services/EventService.h@{src/Services/EventService.h}}
+\mbox{\hyperlink{EventService_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_SERVICES\_EVENTSERVICE}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_SERVICES\_EVENTSERVICE}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}../Generic/List/OrderedList.hpp"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include "{}../Generic/Date/Date.h"{}}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#include "{}../Models/Event.h"{}}}
+\DoxyCodeLine{11 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{HallService_8h}{HallService.h}}"{}}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{StatusCode_8h}{StatusCode.h}}"{}}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{16 \textcolor{keyword}{class }\mbox{\hyperlink{classEventService}{EventService}} \{}
+\DoxyCodeLine{17 \mbox{\hyperlink{classOrderedList}{OrderedList<Event>}} events;}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keyword}{const} \mbox{\hyperlink{classHallService}{HallService}}* hs;}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21 \textcolor{keywordtype}{unsigned} indexOfEvent(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date);}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 \textcolor{keyword}{public}:}
+\DoxyCodeLine{25 \mbox{\hyperlink{classEventService_a9b30bb95890abac259ba27b53cabe545}{EventService}}(\textcolor{keyword}{const} \mbox{\hyperlink{classHallService}{HallService}}* hs);}
+\DoxyCodeLine{27 \mbox{\hyperlink{classEventService_a9b30bb95890abac259ba27b53cabe545}{EventService}}(\textcolor{keyword}{const} \mbox{\hyperlink{classHallService}{HallService}}* hs, \textcolor{keyword}{const} \mbox{\hyperlink{classEvent}{Event}}* events, \textcolor{keywordtype}{unsigned} eventCount);}
+\DoxyCodeLine{28 }
+\DoxyCodeLine{30 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_a7a21a5909116215e402254510d6d81d6}{createEvent}}(\textcolor{keywordtype}{int} hallNumber, \textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date);}
+\DoxyCodeLine{32 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_ac7ea565af5ad78e84749558477ceaf26}{cancelEvent}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date);}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{35 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_a3c0d2a05e2a3026044b9e13e6802fbdb}{reserveTicket}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* password, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* note, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{37 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_aa6fd620de878f225f7c51bb0df6ea749}{cancelTicketReservation}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{39 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_ad1efbed6111da8e755d86b5bc9ada806}{ticketIsReserved}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{40 }
+\DoxyCodeLine{42 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_ac447cac3e4974b9cc676d9bb90152979}{buyTicket}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* password, \mbox{\hyperlink{classString}{String}}* reservationNoteOutput);}
+\DoxyCodeLine{44 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_ac447cac3e4974b9cc676d9bb90152979}{buyTicket}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{47 \mbox{\hyperlink{classString}{String}} \mbox{\hyperlink{classEventService_a7f4632e3beae5d24087047ab0223f85e}{createSeatingString}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date, \textcolor{keywordtype}{unsigned}* seatsPerRow);}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{50 \mbox{\hyperlink{classList}{List<Event>}} \mbox{\hyperlink{classEventService_a6700bd4f9da6d12a47812b9c8549556e}{queryMostWatched}}(\textcolor{keywordtype}{unsigned} topN);}
+\DoxyCodeLine{52 \mbox{\hyperlink{classList}{List<Event>}} \mbox{\hyperlink{classEventService_a814de3510f72150f2e54d44f8c8948bb}{queryInsufficientlyVisited}}();}
+\DoxyCodeLine{53 }
+\DoxyCodeLine{55 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_a277194aea79a2c9bf955b7706a20c54c}{reportReservations}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* name, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& date);}
+\DoxyCodeLine{57 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_afc74fc6d44fca054bce8e54997c0cd3e}{reportBoughtTickets}}(\textcolor{keywordtype}{int} hallNumber, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& start, \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& end, \textcolor{keywordtype}{bool} all = \textcolor{keyword}{false});}
+\DoxyCodeLine{58 }
+\DoxyCodeLine{60 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_a1225c23dae83fa928da47113cd1c5617}{load}}();}
+\DoxyCodeLine{62 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classEventService_a5aac3df17ef30f84c1c28277c256ec32}{save}}();}
+\DoxyCodeLine{63 \};}
+\DoxyCodeLine{64 }
+\DoxyCodeLine{65 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h.tex
new file mode 100644
index 0000000..8291350
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h.tex
@@ -0,0 +1,101 @@
+\hypertarget{Event_8h}{}\doxysection{src/\+Models/\+Event.h File Reference}
+\label{Event_8h}\index{src/Models/Event.h@{src/Models/Event.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classEvent}{Event}}.
+
+
+{\ttfamily \#include \char`\"{}../\+Generic/\+List/\+Ordered\+List.\+hpp\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Generic/\+Date/\+Date.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Generic/\+String/\+String.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Hall.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Ticket.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Reservation.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classEvent}{Event}}
+\begin{DoxyCompactList}\small\item\em Stores an event\textquotesingle{}s hall, name, date, bought tickets and reservations. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{Event_8h_a31d9c76919809491b346728ec6659b19}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classEvent}{Event}} \&event)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classEvent}{Event}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Event_8h_ad423797aa9adadabb5651f8955c001bb}{configure\+Event\+Insertion\+Op}} (unsigned setting)
+\begin{DoxyCompactList}\small\item\em Configures how \mbox{\hyperlink{classEvent}{Event}} should be shown, when written to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{Event_8h_a08eaf45abee385d26c4934afeb9be163}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classEvent}{Event}} \&event)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classEvent}{Event}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classEvent}{Event}}.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{Event_8h_ad423797aa9adadabb5651f8955c001bb}\label{Event_8h_ad423797aa9adadabb5651f8955c001bb}}
+\index{Event.h@{Event.h}!configureEventInsertionOp@{configureEventInsertionOp}}
+\index{configureEventInsertionOp@{configureEventInsertionOp}!Event.h@{Event.h}}
+\doxysubsubsection{\texorpdfstring{configureEventInsertionOp()}{configureEventInsertionOp()}}
+{\footnotesize\ttfamily void configure\+Event\+Insertion\+Op (\begin{DoxyParamCaption}\item[{unsigned}]{setting }\end{DoxyParamCaption})}
+
+
+
+Configures how \mbox{\hyperlink{classEvent}{Event}} should be shown, when written to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+
+\begin{DoxyParams}{Parameters}
+{\em setting} & A number, defining the different options. It\textquotesingle{}s best if it is passed as binary number.\\
+\hline
+\end{DoxyParams}
+Sets a configuration setting for how operator\texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} should behave. Setting is stored as a global variable in the cpp file, so it\textquotesingle{}s independent of \mbox{\hyperlink{classEvent}{Event}} instance.
+
+Each bit in the number is a certain setting. Each bit from left to right represents one of these options, from top to bottom\+:
+\begin{DoxyEnumerate}
+\item Write count of bought tickets (available only if 5. is set)
+\item Write count of reserved tickets (available only if 5. is set)
+\item Write reservations
+\item Write bought tickets
+\item Write \mbox{\hyperlink{classHall}{Hall}} information
+\end{DoxyEnumerate}
+
+\begin{DoxyParagraph}{Example}
+To configure printing the \mbox{\hyperlink{classHall}{Hall}} information, bought tickets count and the bought tickets themselves, you would do\+:
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{Event_8h_ad423797aa9adadabb5651f8955c001bb}{configureEventInsertionOp}}(0b10011);}
+
+\end{DoxyCode}
+
+\end{DoxyParagraph}
+\mbox{\Hypertarget{Event_8h_a08eaf45abee385d26c4934afeb9be163}\label{Event_8h_a08eaf45abee385d26c4934afeb9be163}}
+\index{Event.h@{Event.h}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!Event.h@{Event.h}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classEvent}{Event}} \&}]{event }\end{DoxyParamCaption})}
+
+
+
+Writes \mbox{\hyperlink{classEvent}{Event}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write all internal data, following setting from \mbox{\hyperlink{Event_8h_ad423797aa9adadabb5651f8955c001bb}{configure\+Event\+Insertion\+Op()}} Stored types must have defined operator \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<}.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{Event_8h_a31d9c76919809491b346728ec6659b19}\label{Event_8h_a31d9c76919809491b346728ec6659b19}}
+\index{Event.h@{Event.h}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!Event.h@{Event.h}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classEvent}{Event}} \&}]{event }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classEvent}{Event}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse all internal values. Stored types must have defined operator \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>}.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h_source.tex
new file mode 100644
index 0000000..26077d4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Event_8h_source.tex
@@ -0,0 +1,48 @@
+\hypertarget{Event_8h_source}{}\doxysection{Event.\+h}
+\label{Event_8h_source}\index{src/Models/Event.h@{src/Models/Event.h}}
+\mbox{\hyperlink{Event_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_MODEL\_EVENT}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_MODEL\_EVENT}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}../Generic/List/OrderedList.hpp"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include "{}../Generic/Date/Date.h"{}}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#include "{}../Generic/String/String.h"{}}}
+\DoxyCodeLine{11 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{Hall_8h}{Hall.h}}"{}}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{Ticket_8h}{Ticket.h}}"{}}}
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{Reservation_8h}{Reservation.h}}"{}}}
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{19 \textcolor{keyword}{class }\mbox{\hyperlink{classEvent}{Event}} \{}
+\DoxyCodeLine{20 \mbox{\hyperlink{classHall}{Hall}} hall;}
+\DoxyCodeLine{21 \mbox{\hyperlink{classString}{String}} name;}
+\DoxyCodeLine{22 \mbox{\hyperlink{classDate}{Date}} date;}
+\DoxyCodeLine{23 \mbox{\hyperlink{classOrderedList}{OrderedList<Ticket>}} tickets;}
+\DoxyCodeLine{24 \mbox{\hyperlink{classOrderedList}{OrderedList<Reservation>}} reservations;}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 \textcolor{keyword}{public}:}
+\DoxyCodeLine{28 \mbox{\hyperlink{classEvent_a5a40dd4708297f7031e29b39e039ae10}{Event}}();}
+\DoxyCodeLine{30 \mbox{\hyperlink{classEvent_a5a40dd4708297f7031e29b39e039ae10}{Event}}(\textcolor{keyword}{const} \mbox{\hyperlink{classHall}{Hall}}\& hall, \mbox{\hyperlink{classString}{String}} name, \mbox{\hyperlink{classDate}{Date}} date);}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{33 \textcolor{keyword}{const} \mbox{\hyperlink{classHall}{Hall}}\& \mbox{\hyperlink{classEvent_ae3023ae2c487f46b3235f67554e58615}{get\_hall}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{35 \textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& \mbox{\hyperlink{classEvent_a7bf717630c32826689df41e0bb3ecbce}{get\_name}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{37 \textcolor{keyword}{const} \mbox{\hyperlink{classDate}{Date}}\& \mbox{\hyperlink{classEvent_a222904d44dfaf3f1f96e2190c5ea4293}{get\_date}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{40 \mbox{\hyperlink{classOrderedList}{OrderedList<Ticket>}}\& \mbox{\hyperlink{classEvent_a16a84fced8e02f756232c54c27bb22ad}{get\_tickets}}();}
+\DoxyCodeLine{42 \textcolor{keyword}{const} \mbox{\hyperlink{classOrderedList}{OrderedList<Ticket>}}\& \mbox{\hyperlink{classEvent_a16a84fced8e02f756232c54c27bb22ad}{get\_tickets}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{44 \mbox{\hyperlink{classOrderedList}{OrderedList<Reservation>}}\& \mbox{\hyperlink{classEvent_a43c6b2bddd42435eb6c8cd0f15d75c6f}{get\_reservations}}();}
+\DoxyCodeLine{46 \textcolor{keyword}{const} \mbox{\hyperlink{classOrderedList}{OrderedList<Reservation>}}\& \mbox{\hyperlink{classEvent_a43c6b2bddd42435eb6c8cd0f15d75c6f}{get\_reservations}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{47 }
+\DoxyCodeLine{49 \textcolor{keywordtype}{void} \mbox{\hyperlink{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}{read}}(std::istream\& istr);}
+\DoxyCodeLine{51 \textcolor{keywordtype}{void} \mbox{\hyperlink{classEvent_a05a302aa998977c30950987c07f0fbba}{write}}(std::ostream\& ostr);}
+\DoxyCodeLine{53 \textcolor{keywordtype}{int} \mbox{\hyperlink{classEvent_af5c84a902db8f29f8b8737026011f1f6}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classEvent}{Event}}\& other);}
+\DoxyCodeLine{54 \};}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{57 std::istream\& \mbox{\hyperlink{Event_8h_a31d9c76919809491b346728ec6659b19}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classEvent}{Event}}\& event);}
+\DoxyCodeLine{59 \textcolor{keywordtype}{void} \mbox{\hyperlink{Event_8h_ad423797aa9adadabb5651f8955c001bb}{configureEventInsertionOp}}(\textcolor{keywordtype}{unsigned} setting);}
+\DoxyCodeLine{61 std::ostream\& \mbox{\hyperlink{Event_8h_a08eaf45abee385d26c4934afeb9be163}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classEvent}{Event}}\& event);}
+\DoxyCodeLine{62 }
+\DoxyCodeLine{63 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/FMI-OOP-P1_TicketSystem Overview.svg b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMI-OOP-P1_TicketSystem Overview.svg
new file mode 100644
index 0000000..6e35d2f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMI-OOP-P1_TicketSystem Overview.svg
@@ -0,0 +1,571 @@
+<svg version="1.1" baseProfile="full" width="1076.5" height="1271.0" viewbox="0 0 1076.5 1271" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
+ <title >FMI-OOP-P1_TicketSystem Overview</title>
+ <desc >#title: FMI-OOP-P1_TicketSystem Overview
+ #background: #fdf6e3
+ #bendSize: 0
+ #fillArrows: true
+ #lineWidth: 2
+ #leading: 1.3
+
+ #.groupui: title=italic fill=#b2ee97 direction=right
+ #.groupes: title=italic fill=#97c8ee direction=right
+ #.groupm: title=italic fill=#ee9797 direction=down
+ #.groupv: title=italic fill=#eee997 direction=right
+ #.groupgc: title=italic fill=#c0baac direction=right
+
+ [main.cpp|
+ EventService es
+ HallService hs
+ ]
+
+ [&lt;groupui&gt; User Interface|
+ [FMITicketSystemConsoleUI.cpp|
+ EventService* es
+ HallService* hs
+ runUI()
+ ]
+ ]
+ [main.cpp]-&gt;[User Interface]
+
+ [&lt;groupes&gt; Services|
+ [EventService|
+ OrderedList&lt;Event&gt; events
+ |
+ + createEvent()
+ . cancelEvent()
+ + reserveTicket()
+ + cancelTicketReservation()
+ + buyTicket()
+ . queryEventHall()
+ . queryTickets()
+ . queryReservations()
+ ~ queryMostVisited()
+ ~ queryInsufficientlyVisited()
+ + reportBoughtTickets()
+ + reportReservations()
+ ]
+
+ [HallService|
+ OrderedList&lt;Hall&gt; halls
+ |
+ hallExists()
+ ]
+ [EventService]--&gt;[HallService]
+
+ [StatusCodes.h|
+ enum StatusCode
+ ]
+ ]
+ [User Interface]-&gt;[Services]
+
+ [&lt;groupm&gt; Models|
+ [Ticket|
+ unsigned row
+ unsigned seat
+ ]
+
+ [Reservation|
+ Ticket ticket
+ char\[8\] password
+ char\[32\] note
+ ]
+
+ [Event|
+ Hall* hall
+ String name
+ Date date
+ OrderedList&lt;Ticket&gt; tickets
+ OrderedList&lt;Reservation&gt; reservations
+ ]
+ [Ticket]--&gt;[Event]
+ [Reservation]--&gt;[Event]
+
+ [Hall|
+ int number
+ unsigned rowCount
+ unsigned seatsPerRow
+ ]
+ [&lt;hidden&gt;H]-/-[Hall]
+ ]
+ [Services]&lt;--[Models]
+
+ [&lt;groupgc&gt; Generic Classes|
+ [List&lt;T&gt;|
+ add(elem)
+ insertAt(elem, index)
+ removeAt(index)
+ findIndex(elem);
+ contain(elem);
+ operator\[\](index)
+ ]
+
+ [OrderedList&lt;T&gt;|
+ insert(elem)
+ remove(elem)
+ ]
+ [List&lt;T&gt;]&lt;:-[OrderedList&lt;T&gt;]
+
+ [Date|
+ unsigned day
+ unsigned month
+ int year
+ ]
+
+ [String|
+ char* str
+ unsigned length
+ unsigned count
+ ]
+ [String]-/-[Date]
+
+ [Command|
+ String name
+ void (*exec)()
+ ]
+
+ [Menu|
+ List&lt;Command&gt; commands
+ navigate()
+ ]
+ [Menu]--&gt;[Command]
+ ]
+ [&lt;hidden&gt;H1]-/-[&lt;hidden&gt;H2]
+ [H2]-/-[Generic Classes]</desc>
+ <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="bold" font-style="normal">
+ <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E">
+ <g stroke="transparent" fill="#fdf6e3">
+ <rect x="0.0" y="0.0" height="1271.0" width="1076.5" stroke="none"></rect>
+ </g>
+ <g transform="translate(8, 8)" fill="#33322E">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal">
+ <path d="M286.0 79.0 L286 99 L286 112.33333333333333 L286.0 112.3 " fill="none"></path>
+ <path d="M280.7 105.7 L286.0 105.7 L291.3 105.7 L286.0 119.0 Z"></path>
+ <path d="M286.0 302.0 L286 322 L286 347.8333333333333 L286.0 347.8 " fill="none"></path>
+ <path d="M280.7 341.2 L286.0 341.2 L291.3 341.2 L286.0 354.5 Z"></path>
+ <g stroke-dasharray="4 4">
+ <path d="M286.0 820.2 L286 846 L286 866 L286.0 866.0 " fill="none"></path>
+ </g>
+ <path d="M291.3 826.8 L286.0 826.8 L280.7 826.8 L286.0 813.5 Z"></path>
+ <g data-name="main.cpp">
+ <g fill="#eee8d5" stroke="#33322E" data-name="main.cpp">
+ <rect x="220.0" y="0.0" height="79.0" width="132.0" data-name="main.cpp"></rect>
+ <path d="M220.0 32.0 L352.0 32.0" fill="none" data-name="main.cpp"></path>
+ </g>
+ <g transform="translate(220, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="main.cpp">
+ <text x="58.0" y="13.8" stroke="none" text-anchor="middle" data-name="main.cpp">main.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(220, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="main.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="main.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="main.cpp">EventService es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="main.cpp">HallService hs</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="User Interface">
+ <g fill="#b2ee97" stroke="#33322E" data-name="User Interface">
+ <rect x="129.0" y="119.0" height="183.0" width="314.0" data-name="User Interface"></rect>
+ <path d="M129.0 151.0 L443.0 151.0" fill="none" data-name="User Interface"></path>
+ </g>
+ <g transform="translate(129, 119)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="User Interface">
+ <text x="149.0" y="13.8" stroke="none" text-anchor="middle" data-name="User Interface">User Interface</text>
+
+ </g>
+ </g>
+ <g transform="translate(129, 151)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="User Interface">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="User Interface">
+ <g transform="translate(20, 20)" data-name="User Interface">
+ <g data-name="FMITicketSystemConsoleUI.cpp">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="FMITicketSystemConsoleUI.cpp">
+ <rect x="0.0" y="0.0" height="95.0" width="258.0" data-name="FMITicketSystemConsoleUI.cpp"></rect>
+ <path d="M0.0 32.0 L258.0 32.0" fill="none" data-name="FMITicketSystemConsoleUI.cpp"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="121.0" y="13.8" stroke="none" text-anchor="middle" data-name="FMITicketSystemConsoleUI.cpp">FMITicketSystemConsoleUI.cpp</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="FMITicketSystemConsoleUI.cpp">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="FMITicketSystemConsoleUI.cpp">
+ <text x="0.0" y="13.8" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">EventService* es</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">HallService* hs</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="FMITicketSystemConsoleUI.cpp">runUI()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Services">
+ <g fill="#97c8ee" stroke="#33322E" data-name="Services">
+ <rect x="39.0" y="355.0" height="459.0" width="495.0" data-name="Services"></rect>
+ <path d="M39.0 387.0 L534.0 387.0" fill="none" data-name="Services"></path>
+ </g>
+ <g transform="translate(39, 355)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Services">
+ <text x="239.5" y="13.8" stroke="none" text-anchor="middle" data-name="Services">Services</text>
+
+ </g>
+ </g>
+ <g transform="translate(39, 387)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Services">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Services">
+ <g stroke-dasharray="4 4" data-name="Services">
+ <path d="M216.0 133.5 L236 133.5 L249.33333333333334 133.5 L249.3 133.5 " fill="none" data-name="Services"></path>
+ </g>
+ <path d="M242.7 138.8 L242.7 133.5 L242.7 128.2 L256.0 133.5 Z" data-name="Services"></path>
+ <g data-name="EventService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="EventService">
+ <rect x="0.0" y="0.0" height="267.0" width="216.0" data-name="EventService"></rect>
+ <path d="M0.0 32.0 L216.0 32.0" fill="none" data-name="EventService"></path>
+ <path d="M0.0 64.0 L216.0 64.0" fill="none" data-name="EventService"></path>
+ </g>
+ <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="EventService">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="EventService">EventService</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">OrderedList&lt;Event&gt; events</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="EventService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="EventService">
+ <text x="0.0" y="13.8" stroke="none" data-name="EventService">+ createEvent()</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="EventService">. cancelEvent()</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="EventService">+ reserveTicket()</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="EventService">+ cancelTicketReservation()</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="EventService">+ buyTicket()</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="EventService">. queryEventHall()</text>
+ <text x="0.0" y="107.4" stroke="none" data-name="EventService">. queryTickets()</text>
+ <text x="0.0" y="123.0" stroke="none" data-name="EventService">. queryReservations()</text>
+ <text x="0.0" y="138.6" stroke="none" data-name="EventService">~ queryMostVisited()</text>
+ <text x="0.0" y="154.2" stroke="none" data-name="EventService">~ queryInsufficientlyVisited()</text>
+ <text x="0.0" y="169.8" stroke="none" data-name="EventService">+ reportBoughtTickets()</text>
+ <text x="0.0" y="185.4" stroke="none" data-name="EventService">+ reportReservations()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="HallService">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="HallService">
+ <rect x="256.0" y="86.0" height="96.0" width="183.0" data-name="HallService"></rect>
+ <path d="M256.0 118.0 L439.0 118.0" fill="none" data-name="HallService"></path>
+ <path d="M256.0 150.0 L439.0 150.0" fill="none" data-name="HallService"></path>
+ </g>
+ <g transform="translate(256, 86)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="HallService">
+ <text x="83.5" y="13.8" stroke="none" text-anchor="middle" data-name="HallService">HallService</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 118)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">OrderedList&lt;Hall&gt; halls</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 150)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="HallService">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="HallService">
+ <text x="0.0" y="13.8" stroke="none" data-name="HallService">hallExists()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="StatusCodes.h">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="StatusCodes.h">
+ <rect x="36.0" y="307.0" height="64.0" width="144.0" data-name="StatusCodes.h"></rect>
+ <path d="M36.0 339.0 L180.0 339.0" fill="none" data-name="StatusCodes.h"></path>
+ </g>
+ <g transform="translate(36, 307)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="StatusCodes.h">
+ <text x="64.0" y="13.8" stroke="none" text-anchor="middle" data-name="StatusCodes.h">StatusCodes.h</text>
+
+ </g>
+ </g>
+ <g transform="translate(36, 339)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="StatusCodes.h">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="StatusCodes.h">
+ <text x="0.0" y="13.8" stroke="none" data-name="StatusCodes.h">enum StatusCode</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Models">
+ <g fill="#ee9797" stroke="#33322E" data-name="Models">
+ <rect x="0.0" y="866.0" height="349.0" width="572.0" data-name="Models"></rect>
+ <path d="M0.0 898.0 L572.0 898.0" fill="none" data-name="Models"></path>
+ </g>
+ <g transform="translate(0, 866)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Models">
+ <text x="278.0" y="13.8" stroke="none" text-anchor="middle" data-name="Models">Models</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 898)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Models">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Models">
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M64.0 87.0 L64 115 L79.39230174726517 130.30013227572465 L79.4 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M70.9 129.4 L74.7 125.6 L78.4 121.8 L84.1 135.0 Z" data-name="Models"></path>
+ <g stroke-dasharray="4 4" data-name="Models">
+ <path d="M231.8 95.0 L231.75 115 L216.19793977786054 130.3213174888733 L216.2 130.3 " fill="none" data-name="Models"></path>
+ </g>
+ <path d="M217.2 121.8 L220.9 125.6 L224.7 129.4 L211.4 135.0 Z" data-name="Models"></path>
+ <g data-name="Ticket">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Ticket">
+ <rect x="6.0" y="8.0" height="79.0" width="116.0" data-name="Ticket"></rect>
+ <path d="M6.0 40.0 L122.0 40.0" fill="none" data-name="Ticket"></path>
+ </g>
+ <g transform="translate(6, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Ticket">
+ <text x="50.0" y="13.8" stroke="none" text-anchor="middle" data-name="Ticket">Ticket</text>
+
+ </g>
+ </g>
+ <g transform="translate(6, 40)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Ticket">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Ticket">
+ <text x="0.0" y="13.8" stroke="none" data-name="Ticket">unsigned row</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Ticket">unsigned seat</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Reservation">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Reservation">
+ <rect x="163.0" y="0.0" height="95.0" width="138.0" data-name="Reservation"></rect>
+ <path d="M163.0 32.0 L301.0 32.0" fill="none" data-name="Reservation"></path>
+ </g>
+ <g transform="translate(163, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Reservation">
+ <text x="61.0" y="13.8" stroke="none" text-anchor="middle" data-name="Reservation">Reservation</text>
+
+ </g>
+ </g>
+ <g transform="translate(163, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Reservation">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Reservation">
+ <text x="0.0" y="13.8" stroke="none" data-name="Reservation">Ticket ticket</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Reservation">char[8] password</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Reservation">char[32] note</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Event">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Event">
+ <rect x="0.0" y="135.0" height="126.0" width="295.0" data-name="Event"></rect>
+ <path d="M0.0 167.0 L295.0 167.0" fill="none" data-name="Event"></path>
+ </g>
+ <g transform="translate(0, 135)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Event">
+ <text x="139.5" y="13.8" stroke="none" text-anchor="middle" data-name="Event">Event</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 167)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Event">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Event">
+ <text x="0.0" y="13.8" stroke="none" data-name="Event">Hall* hall</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Event">String name</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Event">Date date</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="Event">OrderedList&lt;Ticket&gt; tickets</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="Event">OrderedList&lt;Reservation&gt; reservations</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Hall">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Hall">
+ <rect x="335.0" y="151.0" height="95.0" width="181.0" data-name="Hall"></rect>
+ <path d="M335.0 183.0 L516.0 183.0" fill="none" data-name="Hall"></path>
+ </g>
+ <g transform="translate(335, 151)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Hall">
+ <text x="82.5" y="13.8" stroke="none" text-anchor="middle" data-name="Hall">Hall</text>
+
+ </g>
+ </g>
+ <g transform="translate(335, 183)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Hall">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Hall">
+ <text x="0.0" y="13.8" stroke="none" data-name="Hall">int number</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Hall">unsigned rowCount</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Hall">unsigned seatsPerRow</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="H">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="Generic Classes">
+ <g fill="#c0baac" stroke="#33322E" data-name="Generic Classes">
+ <rect x="574.0" y="342.0" height="484.0" width="447.0" data-name="Generic Classes"></rect>
+ <path d="M574.0 374.0 L1021.0 374.0" fill="none" data-name="Generic Classes"></path>
+ </g>
+ <g transform="translate(574, 342)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="italic" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Generic Classes">
+ <text x="215.5" y="13.8" stroke="none" text-anchor="middle" data-name="Generic Classes">Generic Classes</text>
+
+ </g>
+ </g>
+ <g transform="translate(574, 374)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <g transform="translate(8, 8)" fill="#33322E" data-name="Generic Classes">
+ <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Generic Classes">
+ <path d="M202.8 71.0 L236 71 L256 71 L256.0 71.0 " fill="none" data-name="Generic Classes"></path>
+ <path d="M202.8 65.7 L202.8 71.0 L202.8 76.3 L189.5 71.0 Z" data-name="Generic Classes"></path>
+ <g stroke-dasharray="4 4" data-name="Generic Classes">
+ <path d="M216.0 356.5 L236 356.5 L261.3333333333333 356.5 L261.3 356.5 " fill="none" data-name="Generic Classes"></path>
+ </g>
+ <path d="M254.7 361.8 L254.7 356.5 L254.7 351.2 L268.0 356.5 Z" data-name="Generic Classes"></path>
+ <g data-name="List&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="List&lt;T&gt;">
+ <rect x="27.0" y="0.0" height="142.0" width="163.0" data-name="List&lt;T&gt;"></rect>
+ <path d="M27.0 32.0 L190.0 32.0" fill="none" data-name="List&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(27, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="List&lt;T&gt;">
+ <text x="73.5" y="13.8" stroke="none" text-anchor="middle" data-name="List&lt;T&gt;">List&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(27, 32)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="List&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="List&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="List&lt;T&gt;">add(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="List&lt;T&gt;">insertAt(elem, index)</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="List&lt;T&gt;">removeAt(index)</text>
+ <text x="0.0" y="60.6" stroke="none" data-name="List&lt;T&gt;">findIndex(elem)</text>
+ <text x="0.0" y="76.2" stroke="none" data-name="List&lt;T&gt;">contain(elem)</text>
+ <text x="0.0" y="91.8" stroke="none" data-name="List&lt;T&gt;">operator[](index)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="OrderedList&lt;T&gt;">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="OrderedList&lt;T&gt;">
+ <rect x="256.0" y="32.0" height="79.0" width="135.0" data-name="OrderedList&lt;T&gt;"></rect>
+ <path d="M256.0 64.0 L391.0 64.0" fill="none" data-name="OrderedList&lt;T&gt;"></path>
+ </g>
+ <g transform="translate(256, 32)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="OrderedList&lt;T&gt;">
+ <text x="59.5" y="13.8" stroke="none" text-anchor="middle" data-name="OrderedList&lt;T&gt;">OrderedList&lt;T&gt;</text>
+
+ </g>
+ </g>
+ <g transform="translate(256, 64)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="OrderedList&lt;T&gt;">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="OrderedList&lt;T&gt;">
+ <text x="0.0" y="13.8" stroke="none" data-name="OrderedList&lt;T&gt;">insert(elem)</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="OrderedList&lt;T&gt;">remove(elem)</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Date">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Date">
+ <rect x="259.0" y="182.0" height="95.0" width="130.0" data-name="Date"></rect>
+ <path d="M259.0 214.0 L389.0 214.0" fill="none" data-name="Date"></path>
+ </g>
+ <g transform="translate(259, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Date">
+ <text x="57.0" y="13.8" stroke="none" text-anchor="middle" data-name="Date">Date</text>
+
+ </g>
+ </g>
+ <g transform="translate(259, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Date">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Date">
+ <text x="0.0" y="13.8" stroke="none" data-name="Date">unsigned day</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Date">unsigned month</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="Date">int year</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="String">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="String">
+ <rect x="44.0" y="182.0" height="95.0" width="129.0" data-name="String"></rect>
+ <path d="M44.0 214.0 L173.0 214.0" fill="none" data-name="String"></path>
+ </g>
+ <g transform="translate(44, 182)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="String">
+ <text x="56.5" y="13.8" stroke="none" text-anchor="middle" data-name="String">String</text>
+
+ </g>
+ </g>
+ <g transform="translate(44, 214)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="String">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="String">
+ <text x="0.0" y="13.8" stroke="none" data-name="String">char* str</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="String">unsigned length</text>
+ <text x="0.0" y="45.0" stroke="none" data-name="String">unsigned count</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Command">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Command">
+ <rect x="268.0" y="317.0" height="79.0" width="111.0" data-name="Command"></rect>
+ <path d="M268.0 349.0 L379.0 349.0" fill="none" data-name="Command"></path>
+ </g>
+ <g transform="translate(268, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Command">
+ <text x="47.5" y="13.8" stroke="none" text-anchor="middle" data-name="Command">Command</text>
+
+ </g>
+ </g>
+ <g transform="translate(268, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Command">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Command">
+ <text x="0.0" y="13.8" stroke="none" data-name="Command">String name</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Command">void (*exec)()</text>
+
+ </g>
+ </g>
+ </g>
+ <g data-name="Menu">
+ <g fill="#fdf6e3" stroke="#33322E" data-name="Menu">
+ <rect x="0.0" y="317.0" height="79.0" width="216.0" data-name="Menu"></rect>
+ <path d="M0.0 349.0 L216.0 349.0" fill="none" data-name="Menu"></path>
+ </g>
+ <g transform="translate(0, 317)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Menu">
+ <text x="100.0" y="13.8" stroke="none" text-anchor="middle" data-name="Menu">Menu</text>
+
+ </g>
+ </g>
+ <g transform="translate(0, 349)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="Menu">
+ <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="Menu">
+ <text x="0.0" y="13.8" stroke="none" data-name="Menu">List&lt;Command&gt; commands</text>
+ <text x="0.0" y="29.4" stroke="none" data-name="Menu">navigate()</text>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g data-name="H1">
+
+ </g>
+ <g data-name="H2">
+
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h.tex
new file mode 100644
index 0000000..494d798
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h.tex
@@ -0,0 +1,33 @@
+\hypertarget{FMITicketSystemConsoleUI_8h}{}\doxysection{src/\+User\+Interface/\+FMITicket\+System\+Console\+UI.h File Reference}
+\label{FMITicketSystemConsoleUI_8h}\index{src/UserInterface/FMITicketSystemConsoleUI.h@{src/UserInterface/FMITicketSystemConsoleUI.h}}
+
+
+Stores declaration of run\+UI function.
+
+
+{\ttfamily \#include \char`\"{}../\+Services/\+Event\+Service.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Services/\+Hall\+Service.\+h\char`\"{}}\newline
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+void \mbox{\hyperlink{FMITicketSystemConsoleUI_8h_a79d6833c27b5a32b6d9917f5cd6e32a3}{run\+UI}} (\mbox{\hyperlink{classEventService}{Event\+Service}} $\ast$event\+Service, \mbox{\hyperlink{classHallService}{Hall\+Service}} $\ast$hall\+Service)
+\begin{DoxyCompactList}\small\item\em Runs the console interface for the ticket system. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores declaration of run\+UI function.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{FMITicketSystemConsoleUI_8h_a79d6833c27b5a32b6d9917f5cd6e32a3}\label{FMITicketSystemConsoleUI_8h_a79d6833c27b5a32b6d9917f5cd6e32a3}}
+\index{FMITicketSystemConsoleUI.h@{FMITicketSystemConsoleUI.h}!runUI@{runUI}}
+\index{runUI@{runUI}!FMITicketSystemConsoleUI.h@{FMITicketSystemConsoleUI.h}}
+\doxysubsubsection{\texorpdfstring{runUI()}{runUI()}}
+{\footnotesize\ttfamily void run\+UI (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classEventService}{Event\+Service}} $\ast$}]{event\+Service, }\item[{\mbox{\hyperlink{classHallService}{Hall\+Service}} $\ast$}]{hall\+Service }\end{DoxyParamCaption})}
+
+
+
+Runs the console interface for the ticket system.
+
+Stores \mbox{\hyperlink{classEventService}{Event\+Service}} and \mbox{\hyperlink{classHallService}{Hall\+Service}} pointers in internal global variables, calls \mbox{\hyperlink{classEventService}{Event\+Service}} and \mbox{\hyperlink{classHallService}{Hall\+Service}} load() functions, initializes all menus, navigates the main menu and finally calls \mbox{\hyperlink{classEventService}{Event\+Service}} and \mbox{\hyperlink{classHallService}{Hall\+Service}} save() functions \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h_source.tex
new file mode 100644
index 0000000..fb01e04
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/FMITicketSystemConsoleUI_8h_source.tex
@@ -0,0 +1,15 @@
+\hypertarget{FMITicketSystemConsoleUI_8h_source}{}\doxysection{FMITicket\+System\+Console\+UI.\+h}
+\label{FMITicketSystemConsoleUI_8h_source}\index{src/UserInterface/FMITicketSystemConsoleUI.h@{src/UserInterface/FMITicketSystemConsoleUI.h}}
+\mbox{\hyperlink{FMITicketSystemConsoleUI_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_FMITICKETSYSTEMCONSOLEUI}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_FMITICKETSYSTEMCONSOLEUI}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}../Services/EventService.h"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include "{}../Services/HallService.h"{}}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{12 \textcolor{keywordtype}{void} \mbox{\hyperlink{FMITicketSystemConsoleUI_8h_a79d6833c27b5a32b6d9917f5cd6e32a3}{runUI}}(\mbox{\hyperlink{classEventService}{EventService}}* eventService, \mbox{\hyperlink{classHallService}{HallService}}* hallService);}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h.tex
new file mode 100644
index 0000000..ea5dcb6
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h.tex
@@ -0,0 +1,20 @@
+\hypertarget{HallService_8h}{}\doxysection{src/\+Services/\+Hall\+Service.h File Reference}
+\label{HallService_8h}\index{src/Services/HallService.h@{src/Services/HallService.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classHallService}{Hall\+Service}}.
+
+
+{\ttfamily \#include \char`\"{}../\+Generic/\+List/\+Ordered\+List.\+hpp\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+Models/\+Hall.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Status\+Code.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classHallService}{Hall\+Service}}
+\begin{DoxyCompactList}\small\item\em Each \mbox{\hyperlink{classHallService}{Hall\+Service}} stores all halls. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classHallService}{Hall\+Service}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h_source.tex
new file mode 100644
index 0000000..968e984
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/HallService_8h_source.tex
@@ -0,0 +1,26 @@
+\hypertarget{HallService_8h_source}{}\doxysection{Hall\+Service.\+h}
+\label{HallService_8h_source}\index{src/Services/HallService.h@{src/Services/HallService.h}}
+\mbox{\hyperlink{HallService_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_SERVICES\_HALLSERVICE}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_SERVICES\_HALLSERVICE}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}../Generic/List/OrderedList.hpp"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include "{}../Models/Hall.h"{}}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{StatusCode_8h}{StatusCode.h}}"{}}}
+\DoxyCodeLine{11 }
+\DoxyCodeLine{14 \textcolor{keyword}{class }\mbox{\hyperlink{classHallService}{HallService}} \{}
+\DoxyCodeLine{15 \mbox{\hyperlink{classOrderedList}{OrderedList<Hall>}} halls;}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 \textcolor{keyword}{public}:}
+\DoxyCodeLine{19 \mbox{\hyperlink{classHallService_a57a8117d8d510afb5351a3f7efc18dff}{HallService}}(\textcolor{keyword}{const} \mbox{\hyperlink{classHall}{Hall}}* halls, \textcolor{keywordtype}{unsigned} hallCount);}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{22 \textcolor{keyword}{const} \mbox{\hyperlink{classOrderedList}{OrderedList<Hall>}}\& \mbox{\hyperlink{classHallService_a641fdcc475e094687713e94094e2a623}{get\_halls}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{25 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classHallService_ab63c1ccff811ed3268f2fe5e996eb6ae}{load}}();}
+\DoxyCodeLine{27 \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \mbox{\hyperlink{classHallService_a083e3d10ec89ee8c78a117c3754c66d2}{save}}();}
+\DoxyCodeLine{28 \};}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h.tex
new file mode 100644
index 0000000..51c1dd4
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h.tex
@@ -0,0 +1,59 @@
+\hypertarget{Hall_8h}{}\doxysection{src/\+Models/\+Hall.h File Reference}
+\label{Hall_8h}\index{src/Models/Hall.h@{src/Models/Hall.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classHall}{Hall}}.
+
+
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classHall}{Hall}}
+\begin{DoxyCompactList}\small\item\em Each hall contains a number, rows and seats per row. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{Hall_8h_ac55d9db507637effdb1896e33c86d439}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classHall}{Hall}} \&hall)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classHall}{Hall}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{Hall_8h_a9671d0935caa6dd24b5f1b9be101c477}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classHall}{Hall}} \&hall)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classHall}{Hall}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classHall}{Hall}}.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{Hall_8h_a9671d0935caa6dd24b5f1b9be101c477}\label{Hall_8h_a9671d0935caa6dd24b5f1b9be101c477}}
+\index{Hall.h@{Hall.h}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!Hall.h@{Hall.h}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classHall}{Hall}} \&}]{hall }\end{DoxyParamCaption})}
+
+
+
+Writes \mbox{\hyperlink{classHall}{Hall}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write all internal data.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{Hall_8h_ac55d9db507637effdb1896e33c86d439}\label{Hall_8h_ac55d9db507637effdb1896e33c86d439}}
+\index{Hall.h@{Hall.h}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!Hall.h@{Hall.h}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classHall}{Hall}} \&}]{hall }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classHall}{Hall}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse all internal values.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h_source.tex
new file mode 100644
index 0000000..d597f51
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Hall_8h_source.tex
@@ -0,0 +1,36 @@
+\hypertarget{Hall_8h_source}{}\doxysection{Hall.\+h}
+\label{Hall_8h_source}\index{src/Models/Hall.h@{src/Models/Hall.h}}
+\mbox{\hyperlink{Hall_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_MODEL\_HALL}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_MODEL\_HALL}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{13 \textcolor{keyword}{class }\mbox{\hyperlink{classHall}{Hall}} \{}
+\DoxyCodeLine{14 \textcolor{keywordtype}{int} number;}
+\DoxyCodeLine{15 \textcolor{keywordtype}{unsigned} rows;}
+\DoxyCodeLine{16 \textcolor{keywordtype}{unsigned} seatsPerRow;}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{public}:}
+\DoxyCodeLine{20 \mbox{\hyperlink{classHall_a122ed8085be305339c89cadb3e360b86}{Hall}}();}
+\DoxyCodeLine{22 \mbox{\hyperlink{classHall_a122ed8085be305339c89cadb3e360b86}{Hall}}(\textcolor{keywordtype}{int} number);}
+\DoxyCodeLine{24 \mbox{\hyperlink{classHall_a122ed8085be305339c89cadb3e360b86}{Hall}}(\textcolor{keywordtype}{int} number, \textcolor{keywordtype}{unsigned} rows, \textcolor{keywordtype}{unsigned} seatsPerRow);}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{27 \textcolor{keywordtype}{int} \mbox{\hyperlink{classHall_a84186aee50631f25b214f18f7b0dc178}{get\_number}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{29 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classHall_a6b3c304a95d3f56980c6faf0cc2073a2}{get\_rows}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{31 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classHall_a42e1cd716086d8a42a627e00cde17a7e}{get\_seatsPerRow}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{32 }
+\DoxyCodeLine{34 \textcolor{keywordtype}{void} \mbox{\hyperlink{classHall_acef974f302d8131ef4608e15f96c2df9}{read}}(std::istream\& istr);}
+\DoxyCodeLine{36 \textcolor{keywordtype}{void} \mbox{\hyperlink{classHall_a0239d59ab0f832f16cf35c820d0eba5a}{write}}(std::ostream\& ostr) \textcolor{keyword}{const};}
+\DoxyCodeLine{38 \textcolor{keywordtype}{int} \mbox{\hyperlink{classHall_a4259837f943c488c6b15ed6c80d5f30b}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classHall}{Hall}}\& other) \textcolor{keyword}{const};}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 \};}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{43 std::istream\& \mbox{\hyperlink{Hall_8h_ac55d9db507637effdb1896e33c86d439}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classHall}{Hall}}\& hall);}
+\DoxyCodeLine{45 std::ostream\& \mbox{\hyperlink{Hall_8h_a9671d0935caa6dd24b5f1b9be101c477}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classHall}{Hall}}\& hall);}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{47 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp.tex
new file mode 100644
index 0000000..a31d9c9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp.tex
@@ -0,0 +1,67 @@
+\hypertarget{List_8hpp}{}\doxysection{src/\+Generic/\+List/\+List.hpp File Reference}
+\label{List_8hpp}\index{src/Generic/List/List.hpp@{src/Generic/List/List.hpp}}
+
+
+Stores declaration and definition of templated class \mbox{\hyperlink{classList}{List}}.
+
+
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classList}{List$<$ T $>$}}
+\begin{DoxyCompactList}\small\item\em Templated class that stores an array of elements in dynamic memory. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+{\footnotesize template$<$typename T $>$ }\\std\+::istream \& \mbox{\hyperlink{List_8hpp_a7469c3479753bfbada761697c539aa07}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classList}{List}}$<$ T $>$ \&obj)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classList}{List}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+{\footnotesize template$<$typename T $>$ }\\std\+::ostream \& \mbox{\hyperlink{List_8hpp_ac8590f4d4ba6c820c34afe14df54f2c2}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classList}{List}}$<$ T $>$ \&obj)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classList}{List}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores declaration and definition of templated class \mbox{\hyperlink{classList}{List}}.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{List_8hpp_ac8590f4d4ba6c820c34afe14df54f2c2}\label{List_8hpp_ac8590f4d4ba6c820c34afe14df54f2c2}}
+\index{List.hpp@{List.hpp}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!List.hpp@{List.hpp}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classList}{List}}$<$ T $>$ \&}]{obj }\end{DoxyParamCaption})}
+
+
+
+Writes \mbox{\hyperlink{classList}{List}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write the count and then all objects.
+
+\begin{DoxyWarning}{Warning}
+The function depends on the type having the operator \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} defined, which takes an std\+::ostream\& and writes it\textquotesingle{}s data to it. Return type doesn\textquotesingle{}t matter.
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{List_8hpp_a7469c3479753bfbada761697c539aa07}\label{List_8hpp_a7469c3479753bfbada761697c539aa07}}
+\index{List.hpp@{List.hpp}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!List.hpp@{List.hpp}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classList}{List}}$<$ T $>$ \&}]{obj }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classList}{List}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse the elements. The first item in the stream should be the count.
+
+\begin{DoxyWarning}{Warning}
+The function depends on the type having the operator \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} defined, which takes an std\+::istream\& and writes it\textquotesingle{}s data to it. Return type doesn\textquotesingle{}t matter.
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp_source.tex
new file mode 100644
index 0000000..1d5b9a9
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/List_8hpp_source.tex
@@ -0,0 +1,263 @@
+\hypertarget{List_8hpp_source}{}\doxysection{List.\+hpp}
+\label{List_8hpp_source}\index{src/Generic/List/List.hpp@{src/Generic/List/List.hpp}}
+\mbox{\hyperlink{List_8hpp}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_LIST}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_LIST}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{21 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{22 \textcolor{keyword}{class }\mbox{\hyperlink{classList}{List}} \{}
+\DoxyCodeLine{23 \textcolor{keyword}{protected}:}
+\DoxyCodeLine{24 T* elements;}
+\DoxyCodeLine{25 \textcolor{keywordtype}{unsigned} length;}
+\DoxyCodeLine{26 \textcolor{keywordtype}{unsigned} count;}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28 \textcolor{keywordtype}{void} resize();}
+\DoxyCodeLine{29 \textcolor{keywordtype}{void} free();}
+\DoxyCodeLine{30 \textcolor{keywordtype}{void} copyFrom(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other);}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 \textcolor{keyword}{public}:}
+\DoxyCodeLine{34 \mbox{\hyperlink{classList_a93cd36efc12aa5ef5fc28866edce7e61}{List}}(\textcolor{keyword}{const} T* elements, \textcolor{keywordtype}{unsigned} elementsCount);}
+\DoxyCodeLine{36 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList_abfec4f2e7990d06c143852ecfdf907bb}{add}}(\textcolor{keyword}{const} T\& element);}
+\DoxyCodeLine{38 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList_ae4586debf72af33bccb3c2fbfce420e8}{insertAt}}(\textcolor{keyword}{const} T\& element, \textcolor{keywordtype}{unsigned} index);}
+\DoxyCodeLine{40 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classList_ad9c0a5b5bca6286f458d6fab280de65a}{removeAt}}(\textcolor{keywordtype}{unsigned} index);}
+\DoxyCodeLine{42 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{findIndex}}(\textcolor{keyword}{const} T\& element) \textcolor{keyword}{const};}
+\DoxyCodeLine{43 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}{contain}}(\textcolor{keyword}{const} T\& element) \textcolor{keyword}{const};}
+\DoxyCodeLine{45 T\& \mbox{\hyperlink{classList_a321bb581943398344aad07198d1f02ac}{operator[]}}(\textcolor{keywordtype}{unsigned} index);}
+\DoxyCodeLine{47 \textcolor{keyword}{const} T\& \mbox{\hyperlink{classList_a5fa582de3aec5094a871852b658cf853}{operator[]}}(\textcolor{keywordtype}{unsigned} index) \textcolor{keyword}{const};}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{50 \mbox{\hyperlink{classList}{List<T>}}\& \mbox{\hyperlink{classList_aa4332ce5a589da28528f035ded6d41e5}{operator+=}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List<T>}} other);}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{53 std::istream\& \mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{read}}(std::istream\& istr);}
+\DoxyCodeLine{55 std::ostream\& \mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{write}}(std::ostream\& ostr) \textcolor{keyword}{const};}
+\DoxyCodeLine{56 }
+\DoxyCodeLine{58 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_aa32109b77dccd8241b125ebabdda876c}{get\_length}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{60 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_a3c1e3a3fc085f5b7ae68514c4758687b}{get\_count}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{61 }
+\DoxyCodeLine{62 \mbox{\hyperlink{classList}{List}}();}
+\DoxyCodeLine{63 \mbox{\hyperlink{classList}{List}}\& operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other);}
+\DoxyCodeLine{64 \mbox{\hyperlink{classList}{List}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other);}
+\DoxyCodeLine{65 \mbox{\hyperlink{classList}{\string~List}}();}
+\DoxyCodeLine{66 }
+\DoxyCodeLine{67 \mbox{\hyperlink{classList}{List}}(\mbox{\hyperlink{classList}{List}}\&\& other);}
+\DoxyCodeLine{68 \mbox{\hyperlink{classList}{List}}\& operator=(\mbox{\hyperlink{classList}{List}}\&\& other);}
+\DoxyCodeLine{69 \};}
+\DoxyCodeLine{70 }
+\DoxyCodeLine{72 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{73 std::istream\& \mbox{\hyperlink{List_8hpp_a7469c3479753bfbada761697c539aa07}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classList}{List<T>}}\& obj);}
+\DoxyCodeLine{75 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{76 std::ostream\& \mbox{\hyperlink{List_8hpp_ac8590f4d4ba6c820c34afe14df54f2c2}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classList}{List<T>}}\& obj);}
+\DoxyCodeLine{77 }
+\DoxyCodeLine{78 \textcolor{comment}{/* Private */}}
+\DoxyCodeLine{79 }
+\DoxyCodeLine{80 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{81 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList}{List<T>::resize}}() \{}
+\DoxyCodeLine{82 length = (length == 0) ? 8 : length << 1;}
+\DoxyCodeLine{83 T* temp = \textcolor{keyword}{new} T[length];}
+\DoxyCodeLine{84 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < count; i++)}
+\DoxyCodeLine{85 temp[i] = elements[i];}
+\DoxyCodeLine{86 \textcolor{keyword}{delete}[] elements;}
+\DoxyCodeLine{87 elements = temp;}
+\DoxyCodeLine{88 \}}
+\DoxyCodeLine{89 }
+\DoxyCodeLine{90 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{91 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList}{List<T>::free}}() \{}
+\DoxyCodeLine{92 \textcolor{keyword}{delete}[] elements;}
+\DoxyCodeLine{93 \}}
+\DoxyCodeLine{94 }
+\DoxyCodeLine{95 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{96 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList}{List<T>::copyFrom}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other) \{}
+\DoxyCodeLine{97 elements = \textcolor{keyword}{new} T[other.length];}
+\DoxyCodeLine{98 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < other.count; i++)}
+\DoxyCodeLine{99 elements[i] = other.elements[i];}
+\DoxyCodeLine{100 length = other.length;}
+\DoxyCodeLine{101 count = other.count;}
+\DoxyCodeLine{102 \}}
+\DoxyCodeLine{103 }
+\DoxyCodeLine{104 \textcolor{comment}{/* Public */}}
+\DoxyCodeLine{105 }
+\DoxyCodeLine{106 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{107 \mbox{\hyperlink{classList}{List<T>::List}}(\textcolor{keyword}{const} T* elements, \textcolor{keywordtype}{unsigned} elementsCount) \{}
+\DoxyCodeLine{108 length = 8;}
+\DoxyCodeLine{109 count = elementsCount;}
+\DoxyCodeLine{110 this-\/>elements = \textcolor{keyword}{new} T[length];}
+\DoxyCodeLine{111 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{unsigned} i = 0; i < count; i++)}
+\DoxyCodeLine{112 this-\/>elements[i] = elements[i];}
+\DoxyCodeLine{113 \}}
+\DoxyCodeLine{114 }
+\DoxyCodeLine{118 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{119 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList_abfec4f2e7990d06c143852ecfdf907bb}{List<T>::add}}(\textcolor{keyword}{const} T\& element) \{}
+\DoxyCodeLine{120 \textcolor{keywordflow}{if} (length == count) resize();}
+\DoxyCodeLine{121 }
+\DoxyCodeLine{122 elements[count++] = element;}
+\DoxyCodeLine{123 \}}
+\DoxyCodeLine{124 }
+\DoxyCodeLine{131 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{132 \textcolor{keywordtype}{void} \mbox{\hyperlink{classList_ae4586debf72af33bccb3c2fbfce420e8}{List<T>::insertAt}}(\textcolor{keyword}{const} T\& element, \textcolor{keywordtype}{unsigned} index) \{}
+\DoxyCodeLine{133 \textcolor{keywordflow}{if} (index >= count) \{}
+\DoxyCodeLine{134 add(element);}
+\DoxyCodeLine{135 \textcolor{keywordflow}{return};}
+\DoxyCodeLine{136 \}}
+\DoxyCodeLine{137 \textcolor{keywordflow}{if} (length == count) resize();}
+\DoxyCodeLine{138 }
+\DoxyCodeLine{139 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{unsigned} i = count; i > index; i-\/-\/)}
+\DoxyCodeLine{140 elements[i] = elements[i -\/ 1];}
+\DoxyCodeLine{141 }
+\DoxyCodeLine{142 elements[index] = element;}
+\DoxyCodeLine{143 count++;}
+\DoxyCodeLine{144 \}}
+\DoxyCodeLine{145 }
+\DoxyCodeLine{151 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{152 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classList_ad9c0a5b5bca6286f458d6fab280de65a}{List<T>::removeAt}}(\textcolor{keywordtype}{unsigned} index) \{}
+\DoxyCodeLine{153 \textcolor{keywordflow}{if} (index >= count) \textcolor{keywordflow}{return} \textcolor{keyword}{false};}
+\DoxyCodeLine{154 }
+\DoxyCodeLine{155 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = index; i < count; i++)}
+\DoxyCodeLine{156 elements[i] = elements[i + 1];}
+\DoxyCodeLine{157 count-\/-\/;}
+\DoxyCodeLine{158 \textcolor{keywordflow}{return} \textcolor{keyword}{true};}
+\DoxyCodeLine{159 \}}
+\DoxyCodeLine{160 }
+\DoxyCodeLine{166 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{167 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{List<T>::findIndex}}(\textcolor{keyword}{const} T\& element)\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{168 \textcolor{keywordtype}{unsigned} ind = 0;}
+\DoxyCodeLine{169 \textcolor{keywordflow}{while} (ind < count \&\& elements[ind].compare(element) != 0)}
+\DoxyCodeLine{170 ind++;}
+\DoxyCodeLine{171 \textcolor{keywordflow}{return} ind;}
+\DoxyCodeLine{172 \}}
+\DoxyCodeLine{173 }
+\DoxyCodeLine{179 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{180 \textcolor{keywordtype}{bool} \mbox{\hyperlink{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}{List<T>::contain}}(\textcolor{keyword}{const} T\& element)\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{181 \textcolor{keywordflow}{return} findIndex(element) < count;}
+\DoxyCodeLine{182 \}}
+\DoxyCodeLine{183 }
+\DoxyCodeLine{184 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{185 T\& \mbox{\hyperlink{classList_a321bb581943398344aad07198d1f02ac}{List<T>::operator[]}}(\textcolor{keywordtype}{unsigned} index) \{}
+\DoxyCodeLine{186 \textcolor{keywordflow}{return} elements[index];}
+\DoxyCodeLine{187 \}}
+\DoxyCodeLine{188 }
+\DoxyCodeLine{189 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{190 \textcolor{keyword}{const} T\& \mbox{\hyperlink{classList_a321bb581943398344aad07198d1f02ac}{List<T>::operator[]}}(\textcolor{keywordtype}{unsigned} index)\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{191 \textcolor{keywordflow}{return} elements[index];}
+\DoxyCodeLine{192 \}}
+\DoxyCodeLine{193 }
+\DoxyCodeLine{194 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{195 \mbox{\hyperlink{classList}{List<T>}}\& \mbox{\hyperlink{classList_aa4332ce5a589da28528f035ded6d41e5}{List<T>::operator+=}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List<T>}} other) \{}
+\DoxyCodeLine{196 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{unsigned} i = 0; i < other.length; i++)}
+\DoxyCodeLine{197 add(other[i]);}
+\DoxyCodeLine{198 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
+\DoxyCodeLine{199 \}}
+\DoxyCodeLine{200 }
+\DoxyCodeLine{210 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{211 std::istream\& \mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{List<T>::read}}(std::istream\& istr) \{}
+\DoxyCodeLine{212 istr.read((\textcolor{keywordtype}{char}*)\&length, \textcolor{keyword}{sizeof}(length));}
+\DoxyCodeLine{213 istr.read((\textcolor{keywordtype}{char}*)\&count, \textcolor{keyword}{sizeof}(count));}
+\DoxyCodeLine{214 }
+\DoxyCodeLine{215 \textcolor{keyword}{delete}[] elements;}
+\DoxyCodeLine{216 elements = \textcolor{keyword}{new} T[length];}
+\DoxyCodeLine{217 }
+\DoxyCodeLine{218 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < count; i++)}
+\DoxyCodeLine{219 elements[i].\mbox{\hyperlink{Toolbox_8hpp_a3c9098dc2b305107367c56ded5dec787}{read}}(istr);}
+\DoxyCodeLine{220 }
+\DoxyCodeLine{221 \textcolor{keywordflow}{return} istr;}
+\DoxyCodeLine{222 \}}
+\DoxyCodeLine{223 }
+\DoxyCodeLine{232 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{233 std::ostream\& \mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{List<T>::write}}(std::ostream\& ostr)\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{234 ostr.write((\textcolor{keyword}{const} \textcolor{keywordtype}{char}*)\&length, \textcolor{keyword}{sizeof}(length));}
+\DoxyCodeLine{235 ostr.write((\textcolor{keyword}{const} \textcolor{keywordtype}{char}*)\&count, \textcolor{keyword}{sizeof}(count));}
+\DoxyCodeLine{236 }
+\DoxyCodeLine{237 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < count; i++)}
+\DoxyCodeLine{238 elements[i].write(ostr);}
+\DoxyCodeLine{239 }
+\DoxyCodeLine{240 \textcolor{keywordflow}{return} ostr;}
+\DoxyCodeLine{241 \}}
+\DoxyCodeLine{242 }
+\DoxyCodeLine{246 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{247 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_aa32109b77dccd8241b125ebabdda876c}{List<T>::get\_length}}()\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{248 \textcolor{keywordflow}{return} length;}
+\DoxyCodeLine{249 \}}
+\DoxyCodeLine{250 }
+\DoxyCodeLine{254 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{255 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classList_a3c1e3a3fc085f5b7ae68514c4758687b}{List<T>::get\_count}}()\textcolor{keyword}{ const }\{}
+\DoxyCodeLine{256 \textcolor{keywordflow}{return} count;}
+\DoxyCodeLine{257 \}}
+\DoxyCodeLine{258 }
+\DoxyCodeLine{259 \textcolor{comment}{// Rule of 4}}
+\DoxyCodeLine{260 }
+\DoxyCodeLine{261 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{262 \mbox{\hyperlink{classList}{List<T>::List}}() : \mbox{\hyperlink{classList}{List}}(nullptr, 0) \{\}}
+\DoxyCodeLine{263 }
+\DoxyCodeLine{264 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{265 \mbox{\hyperlink{classList}{List<T>}}\& \mbox{\hyperlink{classList}{List<T>::operator=}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other) \{}
+\DoxyCodeLine{266 \textcolor{keywordflow}{if} (\textcolor{keyword}{this} != \&other) \{}
+\DoxyCodeLine{267 free();}
+\DoxyCodeLine{268 copyFrom(other);}
+\DoxyCodeLine{269 \}}
+\DoxyCodeLine{270 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
+\DoxyCodeLine{271 \}}
+\DoxyCodeLine{272 }
+\DoxyCodeLine{273 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{274 \mbox{\hyperlink{classList}{List<T>::List}}(\textcolor{keyword}{const} \mbox{\hyperlink{classList}{List}}\& other) \{}
+\DoxyCodeLine{275 copyFrom(other);}
+\DoxyCodeLine{276 \}}
+\DoxyCodeLine{277 }
+\DoxyCodeLine{278 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{279 \mbox{\hyperlink{classList}{List<T>::\string~List}}() \{}
+\DoxyCodeLine{280 free();}
+\DoxyCodeLine{281 \}}
+\DoxyCodeLine{282 }
+\DoxyCodeLine{283 \textcolor{comment}{// Move semantics}}
+\DoxyCodeLine{284 }
+\DoxyCodeLine{285 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{286 \mbox{\hyperlink{classList}{List<T>::List}}(\mbox{\hyperlink{classList}{List}}\&\& other) \{}
+\DoxyCodeLine{287 length = other.length;}
+\DoxyCodeLine{288 count = other.count;}
+\DoxyCodeLine{289 elements = other.elements;}
+\DoxyCodeLine{290 other.elements = \textcolor{keyword}{nullptr};}
+\DoxyCodeLine{291 \}}
+\DoxyCodeLine{292 }
+\DoxyCodeLine{293 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{294 \mbox{\hyperlink{classList}{List<T>}}\& \mbox{\hyperlink{classList}{List<T>::operator=}}(\mbox{\hyperlink{classList}{List}}\&\& other) \{}
+\DoxyCodeLine{295 \textcolor{keywordflow}{if} (\textcolor{keyword}{this} != \&other) \{}
+\DoxyCodeLine{296 free();}
+\DoxyCodeLine{297 length = other.length;}
+\DoxyCodeLine{298 count = other.count;}
+\DoxyCodeLine{299 elements = other.elements;}
+\DoxyCodeLine{300 other.elements = \textcolor{keyword}{nullptr};}
+\DoxyCodeLine{301 \}}
+\DoxyCodeLine{302 \textcolor{keywordflow}{return} *\textcolor{keyword}{this};}
+\DoxyCodeLine{303 \}}
+\DoxyCodeLine{304 }
+\DoxyCodeLine{305 \textcolor{comment}{/* Outside of class */}}
+\DoxyCodeLine{306 }
+\DoxyCodeLine{314 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{315 std::istream\& \mbox{\hyperlink{List_8hpp_a7469c3479753bfbada761697c539aa07}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classList}{List<T>}}\& obj) \{}
+\DoxyCodeLine{316 \mbox{\hyperlink{classList}{List<T>}} newObj;}
+\DoxyCodeLine{317 \textcolor{keywordtype}{unsigned} count;}
+\DoxyCodeLine{318 istr >> count;}
+\DoxyCodeLine{319 }
+\DoxyCodeLine{320 T temp;}
+\DoxyCodeLine{321 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < count; i++) \{}
+\DoxyCodeLine{322 istr >> temp;}
+\DoxyCodeLine{323 obj.\mbox{\hyperlink{classList_abfec4f2e7990d06c143852ecfdf907bb}{add}}(temp);}
+\DoxyCodeLine{324 \}}
+\DoxyCodeLine{325 }
+\DoxyCodeLine{326 \textcolor{keywordflow}{return} istr;}
+\DoxyCodeLine{327 \}}
+\DoxyCodeLine{328 }
+\DoxyCodeLine{335 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{336 std::ostream\& \mbox{\hyperlink{List_8hpp_ac8590f4d4ba6c820c34afe14df54f2c2}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classList}{List<T>}}\& obj) \{}
+\DoxyCodeLine{337 ostr << obj.\mbox{\hyperlink{classList_a3c1e3a3fc085f5b7ae68514c4758687b}{get\_count}}() << std::endl;}
+\DoxyCodeLine{338 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < obj.\mbox{\hyperlink{classList_a3c1e3a3fc085f5b7ae68514c4758687b}{get\_count}}(); i++)}
+\DoxyCodeLine{339 ostr << obj[i];}
+\DoxyCodeLine{340 }
+\DoxyCodeLine{341 \textcolor{keywordflow}{return} ostr;}
+\DoxyCodeLine{342 \}}
+\DoxyCodeLine{343 }
+\DoxyCodeLine{344 }
+\DoxyCodeLine{345 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Makefile b/Year 1/Object-oriented Programming/Project 1/docs/latex/Makefile
new file mode 100644
index 0000000..877c9cc
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Makefile
@@ -0,0 +1,23 @@
+LATEX_CMD=pdflatex
+
+all: refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: clean refman.tex
+ $(LATEX_CMD) refman
+ makeindex refman.idx
+ $(LATEX_CMD) refman
+ latex_count=8 ; \
+ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ do \
+ echo "Rerunning latex...." ;\
+ $(LATEX_CMD) refman ;\
+ latex_count=`expr $$latex_count - 1` ;\
+ done
+ makeindex refman.idx
+ $(LATEX_CMD) refman
+
+
+clean:
+ rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h.tex
new file mode 100644
index 0000000..ea2d495
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h.tex
@@ -0,0 +1,19 @@
+\hypertarget{Menu_8h}{}\doxysection{src/\+Generic/\+Console\+Interface/\+Menu.h File Reference}
+\label{Menu_8h}\index{src/Generic/ConsoleInterface/Menu.h@{src/Generic/ConsoleInterface/Menu.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classMenu}{Menu}}.
+
+
+{\ttfamily \#include \char`\"{}Command.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}../\+List/\+List.\+hpp\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classMenu}{Menu}}
+\begin{DoxyCompactList}\small\item\em Handles navigation between multiple commands. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classMenu}{Menu}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h_source.tex
new file mode 100644
index 0000000..1190e08
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Menu_8h_source.tex
@@ -0,0 +1,34 @@
+\hypertarget{Menu_8h_source}{}\doxysection{Menu.\+h}
+\label{Menu_8h_source}\index{src/Generic/ConsoleInterface/Menu.h@{src/Generic/ConsoleInterface/Menu.h}}
+\mbox{\hyperlink{Menu_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_CONSOLEINTERFACE\_MENU}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_CONSOLEINTERFACE\_MENU}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{Command_8h}{Command.h}}"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include "{}../List/List.hpp"{}}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{17 \textcolor{keyword}{class }\mbox{\hyperlink{classMenu}{Menu}} \{}
+\DoxyCodeLine{18 \textcolor{keywordtype}{char} title[256];}
+\DoxyCodeLine{19 \mbox{\hyperlink{classList}{List<Command>}} menuOptions;}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21 \textcolor{keywordtype}{bool} backExistsApp;}
+\DoxyCodeLine{22 \textcolor{keywordtype}{bool} isSubMenu;}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24 \textcolor{keyword}{public}:}
+\DoxyCodeLine{26 \mbox{\hyperlink{classMenu_ad466dd83355124a6ed958430450bfe94}{Menu}}();}
+\DoxyCodeLine{28 \mbox{\hyperlink{classMenu_ad466dd83355124a6ed958430450bfe94}{Menu}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* title, \textcolor{keywordtype}{bool} backExistsApp, \textcolor{keywordtype}{bool} isSubMenu);}
+\DoxyCodeLine{30 \mbox{\hyperlink{classMenu_ad466dd83355124a6ed958430450bfe94}{Menu}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* title, \textcolor{keywordtype}{bool} backExistsApp, \textcolor{keywordtype}{bool} isSubMenu, \textcolor{keyword}{const} \mbox{\hyperlink{classCommand}{Command}}* commands, \textcolor{keywordtype}{unsigned} commandCount);}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{33 \textcolor{keywordtype}{void} \mbox{\hyperlink{classMenu_a1f022cc8b705369073f8fd7b90b30c8d}{addCommand}}(\textcolor{keyword}{const} \mbox{\hyperlink{classCommand}{Command}}\& command);}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{36 \textcolor{keywordtype}{void} \mbox{\hyperlink{classMenu_aad506cb9a7f35dea98c60484bb2d095c}{registerError}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message) \textcolor{keyword}{const};}
+\DoxyCodeLine{38 \textcolor{keywordtype}{void} \mbox{\hyperlink{classMenu_a5350b1addf9bf365351486cd161696ad}{registerWarning}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message) \textcolor{keyword}{const};}
+\DoxyCodeLine{40 \textcolor{keywordtype}{void} \mbox{\hyperlink{classMenu_a3504e28b5d05e1ad70dada190bbc3a9c}{registerSuccess}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message) \textcolor{keyword}{const};}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{43 \textcolor{keywordtype}{void} \mbox{\hyperlink{classMenu_a0400751da7f8583029b7a12d3003c36d}{navigate}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{44 \};}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{46 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp.tex
new file mode 100644
index 0000000..12ff026
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp.tex
@@ -0,0 +1,18 @@
+\hypertarget{OrderedList_8hpp}{}\doxysection{src/\+Generic/\+List/\+Ordered\+List.hpp File Reference}
+\label{OrderedList_8hpp}\index{src/Generic/List/OrderedList.hpp@{src/Generic/List/OrderedList.hpp}}
+
+
+Stores declaration and definition of templated class \mbox{\hyperlink{classOrderedList}{Ordered\+List}}.
+
+
+{\ttfamily \#include \char`\"{}List.\+hpp\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classOrderedList}{Ordered\+List$<$ T $>$}}
+\begin{DoxyCompactList}\small\item\em Inherits \mbox{\hyperlink{classList}{List}}, but contains it\textquotesingle{}s elements in a sorted manner. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores declaration and definition of templated class \mbox{\hyperlink{classOrderedList}{Ordered\+List}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp_source.tex
new file mode 100644
index 0000000..632ec54
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/OrderedList_8hpp_source.tex
@@ -0,0 +1,41 @@
+\hypertarget{OrderedList_8hpp_source}{}\doxysection{Ordered\+List.\+hpp}
+\label{OrderedList_8hpp_source}\index{src/Generic/List/OrderedList.hpp@{src/Generic/List/OrderedList.hpp}}
+\mbox{\hyperlink{OrderedList_8hpp}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_ORDEREDLIST}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_ORDEREDLIST}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{List_8hpp}{List.hpp}}"{}}}
+\DoxyCodeLine{9 }
+\DoxyCodeLine{15 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{16 \textcolor{keyword}{class }\mbox{\hyperlink{classOrderedList}{OrderedList}} : \textcolor{keyword}{public} \mbox{\hyperlink{classList}{List}}<T> \{}
+\DoxyCodeLine{17 \textcolor{keyword}{public}:}
+\DoxyCodeLine{18 \mbox{\hyperlink{classOrderedList}{OrderedList}}();}
+\DoxyCodeLine{19 \mbox{\hyperlink{classOrderedList}{OrderedList}}(\textcolor{keyword}{const} T* elements, \textcolor{keywordtype}{unsigned} elementsCount);}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{24 \textcolor{keywordtype}{void} \mbox{\hyperlink{classOrderedList_a8b2748c3cdefe4869e0d7a2fc9b4b2cd}{add}}(T element) = \textcolor{keyword}{delete};}
+\DoxyCodeLine{28 \textcolor{keywordtype}{void} \mbox{\hyperlink{classOrderedList_a45af729846bacc77fc8292e5d0690f99}{insertAt}}(T element, \textcolor{keywordtype}{unsigned} index) = \textcolor{keyword}{delete};}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{31 \textcolor{keywordtype}{void} \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert}}(T element);}
+\DoxyCodeLine{32 \};}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{35 \mbox{\hyperlink{classOrderedList}{OrderedList<T>::OrderedList}}() : \mbox{\hyperlink{classOrderedList}{OrderedList}}(nullptr, 0) \{\}}
+\DoxyCodeLine{36 }
+\DoxyCodeLine{37 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{38 \mbox{\hyperlink{classOrderedList}{OrderedList<T>::OrderedList}}(\textcolor{keyword}{const} T* elements, \textcolor{keywordtype}{unsigned} elementsCount) : \mbox{\hyperlink{classList}{List}}<T>::\mbox{\hyperlink{classList}{List}}(elements, elementsCount) \{\}}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{44 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{45 \textcolor{keywordtype}{void} \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{OrderedList<T>::insert}}(T element) \{}
+\DoxyCodeLine{46 \textcolor{keywordflow}{if} (\mbox{\hyperlink{classList}{List<T>::length}} == \mbox{\hyperlink{classList}{List<T>::count}}) \mbox{\hyperlink{classList}{List<T>::resize}}();}
+\DoxyCodeLine{47 }
+\DoxyCodeLine{48 \textcolor{keywordtype}{unsigned} insertionInd = 0;}
+\DoxyCodeLine{49 \textcolor{keywordflow}{while} (insertionInd < \mbox{\hyperlink{classList}{List<T>::count}} \&\& \mbox{\hyperlink{classList}{List<T>::elements}}[insertionInd].compare(element) < 0)}
+\DoxyCodeLine{50 insertionInd++;}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{52 \mbox{\hyperlink{classList_ae4586debf72af33bccb3c2fbfce420e8}{List<T>::insertAt}}(element, insertionInd);}
+\DoxyCodeLine{53 \}}
+\DoxyCodeLine{54 }
+\DoxyCodeLine{55 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h.tex
new file mode 100644
index 0000000..3df169e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h.tex
@@ -0,0 +1,29 @@
+\hypertarget{Reservation_8h}{}\doxysection{src/\+Models/\+Reservation.h File Reference}
+\label{Reservation_8h}\index{src/Models/Reservation.h@{src/Models/Reservation.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classReservation}{Reservation}}.
+
+
+{\ttfamily \#include \char`\"{}Ticket.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classReservation}{Reservation}}
+\begin{DoxyCompactList}\small\item\em Each Reservations contains a ticket, a password and a note. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{Reservation_8h_a0fe437f408e254d25bd93c55b2a17371}\label{Reservation_8h_a0fe437f408e254d25bd93c55b2a17371}}
+\#define {\bfseries PASSWORD\+\_\+\+LEN}~8
+\item
+\mbox{\Hypertarget{Reservation_8h_a3c10da010db9a0c17470973fea43566f}\label{Reservation_8h_a3c10da010db9a0c17470973fea43566f}}
+\#define {\bfseries NOTE\+\_\+\+LEN}~32
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classReservation}{Reservation}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h_source.tex
new file mode 100644
index 0000000..539658d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Reservation_8h_source.tex
@@ -0,0 +1,39 @@
+\hypertarget{Reservation_8h_source}{}\doxysection{Reservation.\+h}
+\label{Reservation_8h_source}\index{src/Models/Reservation.h@{src/Models/Reservation.h}}
+\mbox{\hyperlink{Reservation_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_MODEL\_RESERVATION}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_MODEL\_RESERVATION}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{Ticket_8h}{Ticket.h}}"{}}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{11 }
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#define PASSWORD\_LEN 8}}
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#define NOTE\_LEN 32}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{17 \textcolor{keyword}{class }\mbox{\hyperlink{classReservation}{Reservation}} \{}
+\DoxyCodeLine{18 \mbox{\hyperlink{classTicket}{Ticket}} ticket;}
+\DoxyCodeLine{19 \textcolor{keywordtype}{char} password[PASSWORD\_LEN];}
+\DoxyCodeLine{20 \textcolor{keywordtype}{char} note[NOTE\_LEN];}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 \textcolor{keyword}{public}:}
+\DoxyCodeLine{24 \mbox{\hyperlink{classReservation_a63b283053695e6f50fa44c50da2b3de5}{Reservation}}();}
+\DoxyCodeLine{26 \mbox{\hyperlink{classReservation_a63b283053695e6f50fa44c50da2b3de5}{Reservation}}(\textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{28 \mbox{\hyperlink{classReservation_a63b283053695e6f50fa44c50da2b3de5}{Reservation}}(\textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* password, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* note);}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{31 \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& \mbox{\hyperlink{classReservation_af1b95b3d7c46f506dec4d275d6821cdb}{get\_ticket}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{33 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \mbox{\hyperlink{classReservation_aa34cd16a057a4a483e569ec5d7527ad9}{get\_password}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{35 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \mbox{\hyperlink{classReservation_a2285881510bf07f469bf360bb1050f12}{get\_note}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{36 }
+\DoxyCodeLine{38 \textcolor{keywordtype}{void} \mbox{\hyperlink{classReservation_a03f0d1a522edb2c5fba7538f0c879573}{read}}(std::istream\& istr);}
+\DoxyCodeLine{40 \textcolor{keywordtype}{void} \mbox{\hyperlink{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}{write}}(std::ostream\& ostr) \textcolor{keyword}{const};}
+\DoxyCodeLine{42 \textcolor{keywordtype}{int} \mbox{\hyperlink{classReservation_a31cc66beeaf85befe2185dfc88086d38}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classReservation}{Reservation}}\& other) \textcolor{keyword}{const};}
+\DoxyCodeLine{43 }
+\DoxyCodeLine{45 \textcolor{keyword}{friend} std::istream\& \mbox{\hyperlink{classReservation_a2b7331e532f77bbc67eab217bfeb1f25}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classReservation}{Reservation}}\& reservation);}
+\DoxyCodeLine{47 \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{classReservation_abf734c0a55da55ef89dab1e2f12b8ebd}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classReservation}{Reservation}}\& reservation);}
+\DoxyCodeLine{48 \};}
+\DoxyCodeLine{49 }
+\DoxyCodeLine{50 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h.tex
new file mode 100644
index 0000000..4d61d13
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h.tex
@@ -0,0 +1,46 @@
+\hypertarget{StatusCode_8h}{}\doxysection{src/\+Services/\+Status\+Code.h File Reference}
+\label{StatusCode_8h}\index{src/Services/StatusCode.h@{src/Services/StatusCode.h}}
+
+
+Stores declaration of enum Status\+Code.
+
+
+\doxysubsection*{Enumerations}
+\begin{DoxyCompactItemize}
+\item
+enum \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \{ \newline
+{\bfseries Success}
+, {\bfseries W\+\_\+\+Ticket\+Had\+Not\+Been\+Reserved}
+, {\bfseries E\+\_\+\+File\+Could\+Not\+Be\+Opened}
+, {\bfseries E\+\_\+\+Hall\+Doesnt\+Exist}
+, \newline
+{\bfseries E\+\_\+\+Event\+Will\+Overlap}
+, {\bfseries E\+\_\+\+Event\+Does\+Not\+Exist}
+, {\bfseries E\+\_\+\+Ticket\+Already\+Bought}
+, {\bfseries E\+\_\+\+Ticket\+Already\+Reserved}
+, \newline
+{\bfseries E\+\_\+\+Reservation\+Does\+Not\+Exist}
+, {\bfseries E\+\_\+\+Wrong\+Reservation\+Password}
+ \}
+\begin{DoxyCompactList}\small\item\em Used for communication between Services and what uses them. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores declaration of enum Status\+Code.
+
+
+
+\doxysubsection{Enumeration Type Documentation}
+\mbox{\Hypertarget{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}\label{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}}
+\index{StatusCode.h@{StatusCode.h}!StatusCode@{StatusCode}}
+\index{StatusCode@{StatusCode}!StatusCode.h@{StatusCode.h}}
+\doxysubsubsection{\texorpdfstring{StatusCode}{StatusCode}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}}}
+
+
+
+Used for communication between Services and what uses them.
+
+Most functions in Services return a Status\+Code.
+
+Those starting with W should be considered Warning, and those starting with E should be considered Errors. \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h_source.tex
new file mode 100644
index 0000000..77cc2e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/StatusCode_8h_source.tex
@@ -0,0 +1,30 @@
+\hypertarget{StatusCode_8h_source}{}\doxysection{Status\+Code.\+h}
+\label{StatusCode_8h_source}\index{src/Services/StatusCode.h@{src/Services/StatusCode.h}}
+\mbox{\hyperlink{StatusCode_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_SERVICES\_STATUSCODE}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_SERVICES\_STATUSCODE}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{14 \textcolor{keyword}{enum} \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{StatusCode}} \{}
+\DoxyCodeLine{15 Success,}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 W\_TicketHadNotBeenReserved,}
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21 E\_FileCouldNotBeOpened,}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 E\_HallDoesntExist,}
+\DoxyCodeLine{24 }
+\DoxyCodeLine{25 E\_EventWillOverlap,}
+\DoxyCodeLine{26 E\_EventDoesNotExist,}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28 E\_TicketAlreadyBought,}
+\DoxyCodeLine{29 E\_TicketAlreadyReserved,}
+\DoxyCodeLine{30 E\_ReservationDoesNotExist,}
+\DoxyCodeLine{31 E\_WrongReservationPassword,}
+\DoxyCodeLine{32 \};}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h.tex
new file mode 100644
index 0000000..b8108e0
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h.tex
@@ -0,0 +1,19 @@
+\hypertarget{String_8h}{}\doxysection{src/\+Generic/\+String/\+String.h File Reference}
+\label{String_8h}\index{src/Generic/String/String.h@{src/Generic/String/String.h}}
+
+
+Stores declaration of class \mbox{\hyperlink{classString}{String}}.
+
+
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classString}{String}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores declaration of class \mbox{\hyperlink{classString}{String}}.
+
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h_source.tex
new file mode 100644
index 0000000..5db0734
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/String_8h_source.tex
@@ -0,0 +1,46 @@
+\hypertarget{String_8h_source}{}\doxysection{String.\+h}
+\label{String_8h_source}\index{src/Generic/String/String.h@{src/Generic/String/String.h}}
+\mbox{\hyperlink{String_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_STRING}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_STRING}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{11 \textcolor{keyword}{class }\mbox{\hyperlink{classString}{String}} \{}
+\DoxyCodeLine{12 \textcolor{keywordtype}{char}* str;}
+\DoxyCodeLine{13 \textcolor{keywordtype}{unsigned} length;}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 \textcolor{keywordtype}{void} free();}
+\DoxyCodeLine{16 \textcolor{keywordtype}{void} copyFrom(\textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& other);}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{public}:}
+\DoxyCodeLine{20 \mbox{\hyperlink{classString}{String}}(\textcolor{keywordtype}{unsigned} length);}
+\DoxyCodeLine{22 \mbox{\hyperlink{classString}{String}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* str);}
+\DoxyCodeLine{24 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* \mbox{\hyperlink{classString_a3d7f953737f3d4dca72d1cc4836f7dcc}{get\_cstr}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{26 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classString_a7793a7e9a7601d4c724dcc85566259bf}{get\_length}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{28 \textcolor{keywordtype}{char}\& \mbox{\hyperlink{classString_a5d3b77a51619a8580a373d2cd1092a54}{operator[]}}(\textcolor{keywordtype}{unsigned} index);}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{31 \mbox{\hyperlink{classString}{String}}\& \mbox{\hyperlink{classString_a64de9ab1af5df9397f8fbd8c79d5f4b6}{operator+=}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* str);}
+\DoxyCodeLine{33 \mbox{\hyperlink{classString}{String}}\& \mbox{\hyperlink{classString_a64de9ab1af5df9397f8fbd8c79d5f4b6}{operator+=}}(\textcolor{keywordtype}{unsigned} number);}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35 \mbox{\hyperlink{classString}{String}}();}
+\DoxyCodeLine{36 \mbox{\hyperlink{classString}{String}}(\textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& other);}
+\DoxyCodeLine{37 \mbox{\hyperlink{classString}{String}}\& operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& other);}
+\DoxyCodeLine{38 \mbox{\hyperlink{classString}{\string~String}}();}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 \mbox{\hyperlink{classString}{String}}(\mbox{\hyperlink{classString}{String}}\&\& other);}
+\DoxyCodeLine{41 \mbox{\hyperlink{classString}{String}}\& operator=(\mbox{\hyperlink{classString}{String}}\&\& other);}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{44 \textcolor{keywordtype}{void} \mbox{\hyperlink{classString_ad76bb9eca15651c67332808cdaad6344}{read}}(std::istream\& istr);}
+\DoxyCodeLine{46 \textcolor{keywordtype}{void} \mbox{\hyperlink{classString_a7b0ea809587c21bc1d2b87bfee53e628}{write}}(std::ostream\& ostr) \textcolor{keyword}{const};}
+\DoxyCodeLine{48 \textcolor{keywordtype}{int} \mbox{\hyperlink{classString_a3f420d69fbe3de91711dc69148d23cc7}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& other) \textcolor{keyword}{const};}
+\DoxyCodeLine{49 }
+\DoxyCodeLine{51 \textcolor{keyword}{friend} std::istream\& \mbox{\hyperlink{classString_a1918adea635f3f340dbecd6fb05341f8}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classString}{String}}\& event);}
+\DoxyCodeLine{53 \textcolor{keyword}{friend} std::ostream\& \mbox{\hyperlink{classString_aa00d824f40064ff356aa7c15d6a9da12}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classString}{String}}\& event);}
+\DoxyCodeLine{54 \};}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{56 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h.tex
new file mode 100644
index 0000000..42be99a
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h.tex
@@ -0,0 +1,59 @@
+\hypertarget{Ticket_8h}{}\doxysection{src/\+Models/\+Ticket.h File Reference}
+\label{Ticket_8h}\index{src/Models/Ticket.h@{src/Models/Ticket.h}}
+
+
+Stores the declaration of class \mbox{\hyperlink{classTicket}{Ticket}}.
+
+
+{\ttfamily \#include $<$istream$>$}\newline
+{\ttfamily \#include $<$ostream$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+class \mbox{\hyperlink{classTicket}{Ticket}}
+\begin{DoxyCompactList}\small\item\em Each \mbox{\hyperlink{classTicket}{Ticket}} contains a row and a seat number. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{Ticket_8h_ac5c53ae039e173faa4cce85c2e32c920}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classTicket}{Ticket}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{Ticket_8h_ae1686d3505df5e86e64e6e1b263e92ce}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classTicket}{Ticket}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores the declaration of class \mbox{\hyperlink{classTicket}{Ticket}}.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{Ticket_8h_ae1686d3505df5e86e64e6e1b263e92ce}\label{Ticket_8h_ae1686d3505df5e86e64e6e1b263e92ce}}
+\index{Ticket.h@{Ticket.h}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!Ticket.h@{Ticket.h}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Writes \mbox{\hyperlink{classTicket}{Ticket}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write row and seat, separated by a space.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{Ticket_8h_ac5c53ae039e173faa4cce85c2e32c920}\label{Ticket_8h_ac5c53ae039e173faa4cce85c2e32c920}}
+\index{Ticket.h@{Ticket.h}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!Ticket.h@{Ticket.h}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classTicket}{Ticket}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse row and seat.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h_source.tex
new file mode 100644
index 0000000..c605906
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Ticket_8h_source.tex
@@ -0,0 +1,32 @@
+\hypertarget{Ticket_8h_source}{}\doxysection{Ticket.\+h}
+\label{Ticket_8h_source}\index{src/Models/Ticket.h@{src/Models/Ticket.h}}
+\mbox{\hyperlink{Ticket_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_HEADER\_TICKET}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_HEADER\_TICKET}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <istream>}}
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <ostream>}}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{13 \textcolor{keyword}{class }\mbox{\hyperlink{classTicket}{Ticket}} \{}
+\DoxyCodeLine{14 \textcolor{keywordtype}{unsigned} row;}
+\DoxyCodeLine{15 \textcolor{keywordtype}{unsigned} seat;}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 \textcolor{keyword}{public}:}
+\DoxyCodeLine{19 \mbox{\hyperlink{classTicket_aba3a46c9223efb6ab0bde93a09403537}{Ticket}}();}
+\DoxyCodeLine{21 \mbox{\hyperlink{classTicket_aba3a46c9223efb6ab0bde93a09403537}{Ticket}}(\textcolor{keywordtype}{unsigned} row, \textcolor{keywordtype}{unsigned} seat);}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{24 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classTicket_a94476de3cd6711185527d0fe4df9a278}{get\_row}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{26 \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{classTicket_af7b64cb77a676d0f7bdb32255283f005}{get\_seat}}() \textcolor{keyword}{const};}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{29 \textcolor{keywordtype}{void} \mbox{\hyperlink{classTicket_aad2d0b7b92b54ec861db92c31f50f4ad}{read}}(std::istream\& istr);}
+\DoxyCodeLine{31 \textcolor{keywordtype}{void} \mbox{\hyperlink{classTicket_a584a11f6236fc96f3bdbd0592d3f60f4}{write}}(std::ostream\& ostr) \textcolor{keyword}{const};}
+\DoxyCodeLine{33 \textcolor{keywordtype}{int} \mbox{\hyperlink{classTicket_a82a063f71be89f44dd969970855187c4}{compare}}(\textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& other) \textcolor{keyword}{const};}
+\DoxyCodeLine{34 \};}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{37 std::istream\& \mbox{\hyperlink{Ticket_8h_ac5c53ae039e173faa4cce85c2e32c920}{operator>>}}(std::istream\& istr, \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{39 std::ostream\& \mbox{\hyperlink{Ticket_8h_ae1686d3505df5e86e64e6e1b263e92ce}{operator<<}}(std::ostream\& ostr, \textcolor{keyword}{const} \mbox{\hyperlink{classTicket}{Ticket}}\& ticket);}
+\DoxyCodeLine{40 }
+\DoxyCodeLine{41 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp.tex
new file mode 100644
index 0000000..246f05f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp.tex
@@ -0,0 +1,423 @@
+\hypertarget{Toolbox_8hpp}{}\doxysection{src/\+Generic/\+Console\+Interface/\+Toolbox.hpp File Reference}
+\label{Toolbox_8hpp}\index{src/Generic/ConsoleInterface/Toolbox.hpp@{src/Generic/ConsoleInterface/Toolbox.hpp}}
+
+
+Stores a wide range of functions for simpler/more automated printing.
+
+
+{\ttfamily \#include $<$iostream$>$}\newline
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{Toolbox_8hpp_a09f908aa6474fe2b1f82b1aaade947f6}\label{Toolbox_8hpp_a09f908aa6474fe2b1f82b1aaade947f6}}
+\#define {\bfseries MAX\+\_\+\+LINE\+\_\+\+WIDTH}~1024
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+void \mbox{\hyperlink{Toolbox_8hpp_ac8bb3912a3ce86b15842e79d0b421204}{clear}} ()
+\begin{DoxyCompactList}\small\item\em Clears the console screen. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a24a3fa9050ea032396c213ea85a1de0b}{title\+Box}} (const char $\ast$title)
+\begin{DoxyCompactList}\small\item\em Prints a title box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ad557e4a1167be4e0c57fe530ce74a120}{sub\+Title\+Box}} (const char $\ast$title)
+\begin{DoxyCompactList}\small\item\em Prints a title sub box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a6c82ac6987703376c17c74a81fb0a91a}{success\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints a success box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_aa78e2e87fff9b64ca032a5b1c7054081}{success\+Sub\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints a success box as a sub box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a52222c9ff8739ef87c89df899deb5052}{warning\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints a warning box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a22f8b3135115d1b9fca09eea98dc6d92}{warning\+Sub\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints a warning box as a sub box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a9d709a3db7de05368cc38671c896bb2d}{error\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints an error box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ade748c3f15151748c9f978097715d2e7}{error\+Sub\+Box}} (const char $\ast$message)
+\begin{DoxyCompactList}\small\item\em Prints an error box as a sub box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_aa49b4d5a7b00249bc1fb08eec5e3aeaf}{input\+Line\+Box}} (const char $\ast$label, char $\ast$output, unsigned max\+Width, bool ignore=true)
+\begin{DoxyCompactList}\small\item\em Prints label, gets a whole line of input and stores it to output. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ad2c61ce27ec52d14e427d6f6e93d38f2}{input\+Line\+Sub\+Box}} (const char $\ast$label, char $\ast$output, unsigned max\+Width, bool ignore=true)
+\begin{DoxyCompactList}\small\item\em Prints label as a sub box, gets a whole line of input and stores it to output. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ac7f54319bf4e70a46e3155ae1b39e832}{press\+Enter\+To\+Continue}} (bool ignore=true)
+\begin{DoxyCompactList}\small\item\em Waits for user to press enter. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a4456d10f7e141c4fc1a29aff4ad29108}{reset\+Ordered\+List}} (int starter=1)
+\begin{DoxyCompactList}\small\item\em Resets the ordered list starting number. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a6c90056ede686f0319d0fb0a408d02e5}{table}} (unsigned start\+Number, unsigned columns, const char $\ast$items)
+\begin{DoxyCompactList}\small\item\em Prints a string as a table. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing}} ()
+\begin{DoxyCompactList}\small\item\em Semi-\/internal function that prints the spacing for sub boxes. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}{\+\_\+print\+Input\+Box\+Label}} (const char $\ast$label)
+\begin{DoxyCompactList}\small\item\em Semi-\/internal function that prints the label of an input box. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{Toolbox_8hpp_a27b565355e018d36b6ce47169cc26fad}{\+\_\+print\+Ordered\+List\+Beginning}} ()
+\begin{DoxyCompactList}\small\item\em Semi-\/internal function that prints the latest ordered list index. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a3c9098dc2b305107367c56ded5dec787}\label{Toolbox_8hpp_a3c9098dc2b305107367c56ded5dec787}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries read} (T $\ast$storage)
+\begin{DoxyCompactList}\small\item\em Reads user input and stores it. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a06ca09434be2a02543a2371d477acfa0}\label{Toolbox_8hpp_a06ca09434be2a02543a2371d477acfa0}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries read} (T \&storage)
+\begin{DoxyCompactList}\small\item\em Reads user input and stores it. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a5ca1093462d3266fceb8522e144c1e73}\label{Toolbox_8hpp_a5ca1093462d3266fceb8522e144c1e73}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries print} (const T $\ast$item)
+\begin{DoxyCompactList}\small\item\em Prints given item. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a9c0a0d7d3210ca5f12f02ac4cb88476e}\label{Toolbox_8hpp_a9c0a0d7d3210ca5f12f02ac4cb88476e}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries print} (const T \&item)
+\begin{DoxyCompactList}\small\item\em Prints given item. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a148d9d6b8b15bbfc2b1f4cdb16c2ee81}\label{Toolbox_8hpp_a148d9d6b8b15bbfc2b1f4cdb16c2ee81}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries print\+Line} (const T $\ast$item)
+\begin{DoxyCompactList}\small\item\em Prints given item and an endline character. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_a799f4cb5b4da3d40261e25d9e41995aa}\label{Toolbox_8hpp_a799f4cb5b4da3d40261e25d9e41995aa}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries print\+Line} (const T \&item)
+\begin{DoxyCompactList}\small\item\em Prints given item and an endline character. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_abe3a449632ee6d40eb59101dd2d2f114}\label{Toolbox_8hpp_abe3a449632ee6d40eb59101dd2d2f114}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries print\+Ordered\+List\+Elem} (const T \&elem)
+\begin{DoxyCompactList}\small\item\em Prints the element as the latest list item. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{Toolbox_8hpp_ab7651f0a92f8d0d0be3d63c1045eee1e}\label{Toolbox_8hpp_ab7651f0a92f8d0d0be3d63c1045eee1e}}
+{\footnotesize template$<$typename T $>$ }\\void {\bfseries input\+Box} (const char $\ast$label, T $\ast$output)
+\begin{DoxyCompactList}\small\item\em Prints a label and then reads user input and stores it. \end{DoxyCompactList}\item
+{\footnotesize template$<$typename T $>$ }\\void \mbox{\hyperlink{Toolbox_8hpp_a92da1c5f0023cd5c4809d9c1f682e92f}{input\+Sub\+Box}} (const char $\ast$label, T $\ast$output)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores a wide range of functions for simpler/more automated printing.
+
+Adds a lot of functions for printing.
+
+\begin{DoxyRemark}{Remarks}
+iostream is included by necessity (templated functions), you should only use the provided functions, if you can.
+\end{DoxyRemark}
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}\label{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}}
+\index{Toolbox.hpp@{Toolbox.hpp}!\_printInputBoxLabel@{\_printInputBoxLabel}}
+\index{\_printInputBoxLabel@{\_printInputBoxLabel}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{\_printInputBoxLabel()}{\_printInputBoxLabel()}}
+{\footnotesize\ttfamily void \+\_\+print\+Input\+Box\+Label (\begin{DoxyParamCaption}\item[{const char $\ast$}]{label }\end{DoxyParamCaption})}
+
+
+
+Semi-\/internal function that prints the label of an input box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em label} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Prints \char`\"{}(+)\char`\"{} and then the given label. It doesn\textquotesingle{}t create spacing after label, so it should exist in the label itself.
+
+\begin{DoxyRemark}{Remarks}
+Semi-\/internal means the function is defined in the header out of necessity (for templated functions)
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_a27b565355e018d36b6ce47169cc26fad}\label{Toolbox_8hpp_a27b565355e018d36b6ce47169cc26fad}}
+\index{Toolbox.hpp@{Toolbox.hpp}!\_printOrderedListBeginning@{\_printOrderedListBeginning}}
+\index{\_printOrderedListBeginning@{\_printOrderedListBeginning}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{\_printOrderedListBeginning()}{\_printOrderedListBeginning()}}
+{\footnotesize\ttfamily void \+\_\+print\+Ordered\+List\+Beginning (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Semi-\/internal function that prints the latest ordered list index.
+
+Prints the latests ordered list index, surrounded by square brackets, and increments the ordered list index.
+
+\begin{DoxyRemark}{Remarks}
+There are no size checks, so list index could overflow.
+
+Semi-\/internal means the function is defined in the header out of necessity (for templated functions)
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}\label{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}}
+\index{Toolbox.hpp@{Toolbox.hpp}!\_printSubBoxSpacing@{\_printSubBoxSpacing}}
+\index{\_printSubBoxSpacing@{\_printSubBoxSpacing}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{\_printSubBoxSpacing()}{\_printSubBoxSpacing()}}
+{\footnotesize\ttfamily void \+\_\+print\+Sub\+Box\+Spacing (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Semi-\/internal function that prints the spacing for sub boxes.
+
+Sub boxes are like normal boxes, but indented with 4 spaces. \mbox{\Hypertarget{Toolbox_8hpp_ac8bb3912a3ce86b15842e79d0b421204}\label{Toolbox_8hpp_ac8bb3912a3ce86b15842e79d0b421204}}
+\index{Toolbox.hpp@{Toolbox.hpp}!clear@{clear}}
+\index{clear@{clear}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{clear()}{clear()}}
+{\footnotesize\ttfamily void clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Clears the console screen.
+
+Erases display and moves cursor to top left corner via ANSI escape sequences\+: {\ttfamily ESC}\mbox{[}2J {\ttfamily ESC}\mbox{[}1;1H
+
+\begin{DoxyWarning}{Warning}
+Not all terminals support any or all ANSI escape sequences
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Source\+: \href{https://stackoverflow.com/a/52895729/12036073}{\texttt{ https\+://stackoverflow.\+com/a/52895729/12036073}}
+\end{DoxyNote}
+\mbox{\Hypertarget{Toolbox_8hpp_a9d709a3db7de05368cc38671c896bb2d}\label{Toolbox_8hpp_a9d709a3db7de05368cc38671c896bb2d}}
+\index{Toolbox.hpp@{Toolbox.hpp}!errorBox@{errorBox}}
+\index{errorBox@{errorBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{errorBox()}{errorBox()}}
+{\footnotesize\ttfamily void error\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints an error box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Error boxes start with \char`\"{}$<$\+E$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_ade748c3f15151748c9f978097715d2e7}\label{Toolbox_8hpp_ade748c3f15151748c9f978097715d2e7}}
+\index{Toolbox.hpp@{Toolbox.hpp}!errorSubBox@{errorSubBox}}
+\index{errorSubBox@{errorSubBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{errorSubBox()}{errorSubBox()}}
+{\footnotesize\ttfamily void error\+Sub\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints an error box as a sub box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Error boxes start with \char`\"{}$<$\+E$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{Toolbox_8hpp_aa49b4d5a7b00249bc1fb08eec5e3aeaf}\label{Toolbox_8hpp_aa49b4d5a7b00249bc1fb08eec5e3aeaf}}
+\index{Toolbox.hpp@{Toolbox.hpp}!inputLineBox@{inputLineBox}}
+\index{inputLineBox@{inputLineBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{inputLineBox()}{inputLineBox()}}
+{\footnotesize\ttfamily void input\+Line\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{label, }\item[{char $\ast$}]{output, }\item[{unsigned}]{max\+Width, }\item[{bool}]{ignore }\end{DoxyParamCaption})}
+
+
+
+Prints label, gets a whole line of input and stores it to output.
+
+
+\begin{DoxyParams}{Parameters}
+{\em label} & C-\/style string, there are no size check so it could wrap \\
+\hline
+{\em output} & Pointer to a char array \\
+\hline
+{\em max\+Width} & Maximum count of characters to read from user input. output MUST be able to hold that many characters! \\
+\hline
+{\em ignore} & Whether or not to ignore the first new-\/line delimiter. true by default, should be set to false only when an input\+Line\+Box/\+Sub\+Box has been issued directly prior or when it\textquotesingle{}s the very first issued box command.\\
+\hline
+\end{DoxyParams}
+Prints \char`\"{}(+)\char`\"{} before the label. \mbox{\Hypertarget{Toolbox_8hpp_ad2c61ce27ec52d14e427d6f6e93d38f2}\label{Toolbox_8hpp_ad2c61ce27ec52d14e427d6f6e93d38f2}}
+\index{Toolbox.hpp@{Toolbox.hpp}!inputLineSubBox@{inputLineSubBox}}
+\index{inputLineSubBox@{inputLineSubBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{inputLineSubBox()}{inputLineSubBox()}}
+{\footnotesize\ttfamily void input\+Line\+Sub\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{label, }\item[{char $\ast$}]{output, }\item[{unsigned}]{max\+Width, }\item[{bool}]{ignore }\end{DoxyParamCaption})}
+
+
+
+Prints label as a sub box, gets a whole line of input and stores it to output.
+
+
+\begin{DoxyParams}{Parameters}
+{\em label} & C-\/style string, there are no size check so it could wrap \\
+\hline
+{\em output} & Pointer to a char array \\
+\hline
+{\em max\+Width} & Maximum count of characters to read from user input. output MUST be able to hold that many characters! \\
+\hline
+{\em ignore} & Whether or not to ignore the first new-\/line delimiter. true by default, should be set to false only when an input\+Line\+Box/\+Sub\+Box has been issued directly prior or when it\textquotesingle{}s the very first issued box command.\\
+\hline
+\end{DoxyParams}
+Prints \char`\"{}(+)\char`\"{} before the label. \begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{Toolbox_8hpp_a92da1c5f0023cd5c4809d9c1f682e92f}\label{Toolbox_8hpp_a92da1c5f0023cd5c4809d9c1f682e92f}}
+\index{Toolbox.hpp@{Toolbox.hpp}!inputSubBox@{inputSubBox}}
+\index{inputSubBox@{inputSubBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{inputSubBox()}{inputSubBox()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void input\+Sub\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{label, }\item[{T $\ast$}]{output }\end{DoxyParamCaption})}
+
+Prints a label with sub box spacing and then reads user input and stores it \begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{Toolbox_8hpp_ac7f54319bf4e70a46e3155ae1b39e832}\label{Toolbox_8hpp_ac7f54319bf4e70a46e3155ae1b39e832}}
+\index{Toolbox.hpp@{Toolbox.hpp}!pressEnterToContinue@{pressEnterToContinue}}
+\index{pressEnterToContinue@{pressEnterToContinue}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{pressEnterToContinue()}{pressEnterToContinue()}}
+{\footnotesize\ttfamily void press\+Enter\+To\+Continue (\begin{DoxyParamCaption}\item[{bool}]{ignore }\end{DoxyParamCaption})}
+
+
+
+Waits for user to press enter.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ignore} & Whether or not to ignore the first new-\/line delimiter. true by default, should be set to false only when an input\+Line\+Box/\+Sub\+Box has been issued directly prior or when it\textquotesingle{}s the very first issued box command.\\
+\hline
+\end{DoxyParams}
+Prints a \char`\"{}\+Press enter to continue\char`\"{} message and waits for the user \mbox{\Hypertarget{Toolbox_8hpp_a4456d10f7e141c4fc1a29aff4ad29108}\label{Toolbox_8hpp_a4456d10f7e141c4fc1a29aff4ad29108}}
+\index{Toolbox.hpp@{Toolbox.hpp}!resetOrderedList@{resetOrderedList}}
+\index{resetOrderedList@{resetOrderedList}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{resetOrderedList()}{resetOrderedList()}}
+{\footnotesize\ttfamily void reset\+Ordered\+List (\begin{DoxyParamCaption}\item[{int}]{starter }\end{DoxyParamCaption})}
+
+
+
+Resets the ordered list starting number.
+
+
+\begin{DoxyParams}{Parameters}
+{\em starter} & Sets the starting number by which ordered list will enumerate\\
+\hline
+\end{DoxyParams}
+\begin{DoxyRemark}{Remarks}
+Although starter can be a negative number, ordered list will always increment up the number.
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_ad557e4a1167be4e0c57fe530ce74a120}\label{Toolbox_8hpp_ad557e4a1167be4e0c57fe530ce74a120}}
+\index{Toolbox.hpp@{Toolbox.hpp}!subTitleBox@{subTitleBox}}
+\index{subTitleBox@{subTitleBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{subTitleBox()}{subTitleBox()}}
+{\footnotesize\ttfamily void sub\+Title\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{title }\end{DoxyParamCaption})}
+
+
+
+Prints a title sub box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em title} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Prints the title, surrounded by \char`\"{}-\/-\/-\/\char`\"{}. \mbox{\Hypertarget{Toolbox_8hpp_a6c82ac6987703376c17c74a81fb0a91a}\label{Toolbox_8hpp_a6c82ac6987703376c17c74a81fb0a91a}}
+\index{Toolbox.hpp@{Toolbox.hpp}!successBox@{successBox}}
+\index{successBox@{successBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{successBox()}{successBox()}}
+{\footnotesize\ttfamily void success\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints a success box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Success boxes start with \char`\"{}$<$\+S$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_aa78e2e87fff9b64ca032a5b1c7054081}\label{Toolbox_8hpp_aa78e2e87fff9b64ca032a5b1c7054081}}
+\index{Toolbox.hpp@{Toolbox.hpp}!successSubBox@{successSubBox}}
+\index{successSubBox@{successSubBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{successSubBox()}{successSubBox()}}
+{\footnotesize\ttfamily void success\+Sub\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints a success box as a sub box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Success boxes start with \char`\"{}$<$\+S$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{Toolbox_8hpp_a6c90056ede686f0319d0fb0a408d02e5}\label{Toolbox_8hpp_a6c90056ede686f0319d0fb0a408d02e5}}
+\index{Toolbox.hpp@{Toolbox.hpp}!table@{table}}
+\index{table@{table}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{table()}{table()}}
+{\footnotesize\ttfamily void table (\begin{DoxyParamCaption}\item[{unsigned}]{start\+Number, }\item[{unsigned}]{columns, }\item[{const char $\ast$}]{items }\end{DoxyParamCaption})}
+
+
+
+Prints a string as a table.
+
+
+\begin{DoxyParams}{Parameters}
+{\em start\+Number} & The number by which column and row enumeration begins \\
+\hline
+{\em columns} & How many columns the table should have \\
+\hline
+{\em items} & C-\/style string, each cell is a single character from the string\\
+\hline
+\end{DoxyParams}
+Prints a string as a grid/table of characters from top to bottom, left to right. The first character is on the top left, the last one is on the bottom right.
+
+Table is printed until a terminating zero is encountered. The rows are \char`\"{}calculated\char`\"{} from the columns count and the items length. \mbox{\Hypertarget{Toolbox_8hpp_a24a3fa9050ea032396c213ea85a1de0b}\label{Toolbox_8hpp_a24a3fa9050ea032396c213ea85a1de0b}}
+\index{Toolbox.hpp@{Toolbox.hpp}!titleBox@{titleBox}}
+\index{titleBox@{titleBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{titleBox()}{titleBox()}}
+{\footnotesize\ttfamily void title\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{title }\end{DoxyParamCaption})}
+
+
+
+Prints a title box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em title} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Prints the title, surrounded by \char`\"{}===\char`\"{}. \mbox{\Hypertarget{Toolbox_8hpp_a52222c9ff8739ef87c89df899deb5052}\label{Toolbox_8hpp_a52222c9ff8739ef87c89df899deb5052}}
+\index{Toolbox.hpp@{Toolbox.hpp}!warningBox@{warningBox}}
+\index{warningBox@{warningBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{warningBox()}{warningBox()}}
+{\footnotesize\ttfamily void warning\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints a warning box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Warning boxes start with \char`\"{}$<$\+W$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\mbox{\Hypertarget{Toolbox_8hpp_a22f8b3135115d1b9fca09eea98dc6d92}\label{Toolbox_8hpp_a22f8b3135115d1b9fca09eea98dc6d92}}
+\index{Toolbox.hpp@{Toolbox.hpp}!warningSubBox@{warningSubBox}}
+\index{warningSubBox@{warningSubBox}!Toolbox.hpp@{Toolbox.hpp}}
+\doxysubsubsection{\texorpdfstring{warningSubBox()}{warningSubBox()}}
+{\footnotesize\ttfamily void warning\+Sub\+Box (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption})}
+
+
+
+Prints a warning box as a sub box.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, there are no size checks so it could wrap\\
+\hline
+\end{DoxyParams}
+Warning boxes start with \char`\"{}$<$\+W$>$\char`\"{} and print the message.
+
+\begin{DoxyRemark}{Remarks}
+Success/\+Warning/\+Error boxes start with \char`\"{}$<$\+C$>$\char`\"{} where C is an appropriate character.
+\end{DoxyRemark}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\+\_\+print\+Sub\+Box\+Spacing()}}
+\end{DoxySeeAlso}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp_source.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp_source.tex
new file mode 100644
index 0000000..a505d11
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/Toolbox_8hpp_source.tex
@@ -0,0 +1,86 @@
+\hypertarget{Toolbox_8hpp_source}{}\doxysection{Toolbox.\+hpp}
+\label{Toolbox_8hpp_source}\index{src/Generic/ConsoleInterface/Toolbox.hpp@{src/Generic/ConsoleInterface/Toolbox.hpp}}
+\mbox{\hyperlink{Toolbox_8hpp}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef HEADER\_CONSOLEINTERFACE\_TOOLBOX}}
+\DoxyCodeLine{2 \textcolor{preprocessor}{\#define HEADER\_CONSOLEINTERFACE\_TOOLBOX}}
+\DoxyCodeLine{3 }
+\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <iostream>}}
+\DoxyCodeLine{5 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#define MAX\_LINE\_WIDTH 1024}}
+\DoxyCodeLine{15 }
+\DoxyCodeLine{17 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ac8bb3912a3ce86b15842e79d0b421204}{clear}}();}
+\DoxyCodeLine{19 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a24a3fa9050ea032396c213ea85a1de0b}{titleBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* title);}
+\DoxyCodeLine{21 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ad557e4a1167be4e0c57fe530ce74a120}{subTitleBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* title);}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{24 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a6c82ac6987703376c17c74a81fb0a91a}{successBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{26 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_aa78e2e87fff9b64ca032a5b1c7054081}{successSubBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{28 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a52222c9ff8739ef87c89df899deb5052}{warningBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{30 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a22f8b3135115d1b9fca09eea98dc6d92}{warningSubBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{32 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a9d709a3db7de05368cc38671c896bb2d}{errorBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{34 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ade748c3f15151748c9f978097715d2e7}{errorSubBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* message);}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{37 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_aa49b4d5a7b00249bc1fb08eec5e3aeaf}{inputLineBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* label, \textcolor{keywordtype}{char}* output, \textcolor{keywordtype}{unsigned} maxWidth, \textcolor{keywordtype}{bool} ignore = \textcolor{keyword}{true});}
+\DoxyCodeLine{39 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ad2c61ce27ec52d14e427d6f6e93d38f2}{inputLineSubBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* label, \textcolor{keywordtype}{char}* output, \textcolor{keywordtype}{unsigned} maxWidth, \textcolor{keywordtype}{bool} ignore = \textcolor{keyword}{true});}
+\DoxyCodeLine{41 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ac7f54319bf4e70a46e3155ae1b39e832}{pressEnterToContinue}}(\textcolor{keywordtype}{bool} ignore = \textcolor{keyword}{true});}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{44 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a4456d10f7e141c4fc1a29aff4ad29108}{resetOrderedList}}(\textcolor{keywordtype}{int} starter = 1);}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{47 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a6c90056ede686f0319d0fb0a408d02e5}{table}}(\textcolor{keywordtype}{unsigned} startNumber, \textcolor{keywordtype}{unsigned} columns, \textcolor{keyword}{const} \textcolor{keywordtype}{char}* items);}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{50 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\_printSubBoxSpacing}}();}
+\DoxyCodeLine{52 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}{\_printInputBoxLabel}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* label);}
+\DoxyCodeLine{54 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a27b565355e018d36b6ce47169cc26fad}{\_printOrderedListBeginning}}();}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{57 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{58 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a3c9098dc2b305107367c56ded5dec787}{read}}(T* storage) \{}
+\DoxyCodeLine{59 std::cin >> storage;}
+\DoxyCodeLine{60 \}}
+\DoxyCodeLine{61 }
+\DoxyCodeLine{63 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{64 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a3c9098dc2b305107367c56ded5dec787}{read}}(T\& storage) \{}
+\DoxyCodeLine{65 std::cin >> storage;}
+\DoxyCodeLine{66 \}}
+\DoxyCodeLine{67 }
+\DoxyCodeLine{69 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{70 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a5ca1093462d3266fceb8522e144c1e73}{print}}(\textcolor{keyword}{const} T* item) \{}
+\DoxyCodeLine{71 std::cout << item;}
+\DoxyCodeLine{72 \}}
+\DoxyCodeLine{73 }
+\DoxyCodeLine{75 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{76 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a5ca1093462d3266fceb8522e144c1e73}{print}}(\textcolor{keyword}{const} T\& item) \{}
+\DoxyCodeLine{77 std::cout << item;}
+\DoxyCodeLine{78 \}}
+\DoxyCodeLine{79 }
+\DoxyCodeLine{81 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{82 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a148d9d6b8b15bbfc2b1f4cdb16c2ee81}{printLine}}(\textcolor{keyword}{const} T* item) \{}
+\DoxyCodeLine{83 std::cout << item << std::endl;}
+\DoxyCodeLine{84 \}}
+\DoxyCodeLine{85 }
+\DoxyCodeLine{87 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{88 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a148d9d6b8b15bbfc2b1f4cdb16c2ee81}{printLine}}(\textcolor{keyword}{const} T\& item) \{}
+\DoxyCodeLine{89 std::cout << item << std::endl;}
+\DoxyCodeLine{90 \}}
+\DoxyCodeLine{91 }
+\DoxyCodeLine{93 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{94 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_abe3a449632ee6d40eb59101dd2d2f114}{printOrderedListElem}}(\textcolor{keyword}{const} T\& elem) \{}
+\DoxyCodeLine{95 \mbox{\hyperlink{Toolbox_8hpp_a27b565355e018d36b6ce47169cc26fad}{\_printOrderedListBeginning}}();}
+\DoxyCodeLine{96 \mbox{\hyperlink{Toolbox_8hpp_a148d9d6b8b15bbfc2b1f4cdb16c2ee81}{printLine}}(elem);}
+\DoxyCodeLine{97 \}}
+\DoxyCodeLine{98 }
+\DoxyCodeLine{100 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{101 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_ab7651f0a92f8d0d0be3d63c1045eee1e}{inputBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* label, T* output) \{}
+\DoxyCodeLine{102 \mbox{\hyperlink{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}{\_printInputBoxLabel}}(label);}
+\DoxyCodeLine{103 std::cin >> *output;}
+\DoxyCodeLine{104 \}}
+\DoxyCodeLine{105 }
+\DoxyCodeLine{108 \textcolor{keyword}{template} <\textcolor{keyword}{typename} T>}
+\DoxyCodeLine{109 \textcolor{keywordtype}{void} \mbox{\hyperlink{Toolbox_8hpp_a92da1c5f0023cd5c4809d9c1f682e92f}{inputSubBox}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char}* label, T* output) \{}
+\DoxyCodeLine{110 \mbox{\hyperlink{Toolbox_8hpp_ac17b91efad13dbe9e10e5550ee4707c6}{\_printSubBoxSpacing}}();}
+\DoxyCodeLine{111 \mbox{\hyperlink{Toolbox_8hpp_ab3ce613add75d2385c8e1424527d2c3d}{\_printInputBoxLabel}}(label);}
+\DoxyCodeLine{112 std::cin >> *output;}
+\DoxyCodeLine{113 \}}
+\DoxyCodeLine{114 }
+\DoxyCodeLine{115 \textcolor{preprocessor}{\#endif}}
+
+\end{DoxyCode}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/annotated.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/annotated.tex
new file mode 100644
index 0000000..ac5b211
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/annotated.tex
@@ -0,0 +1,15 @@
+\doxysection{Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\mbox{\hyperlink{classCommand}{Command}} \\*Stores a 256 character name and a function pointer to be executed when calling \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run()}} }{\pageref{classCommand}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classDate}{Date}} \\*Stores a day, month and year }{\pageref{classDate}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classEvent}{Event}} \\*Stores an event\textquotesingle{}s hall, name, date, bought tickets and reservations }{\pageref{classEvent}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classEventService}{Event\+Service}} \\*Each \mbox{\hyperlink{classEventService}{Event\+Service}} stores all events and a pointer to \mbox{\hyperlink{classHallService}{Hall\+Service}} }{\pageref{classEventService}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classHall}{Hall}} \\*Each hall contains a number, rows and seats per row }{\pageref{classHall}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classHallService}{Hall\+Service}} \\*Each \mbox{\hyperlink{classHallService}{Hall\+Service}} stores all halls }{\pageref{classHallService}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classList}{List$<$ T $>$}} \\*Templated class that stores an array of elements in dynamic memory }{\pageref{classList}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classMenu}{Menu}} \\*Handles navigation between multiple commands }{\pageref{classMenu}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classOrderedList}{Ordered\+List$<$ T $>$}} \\*Inherits \mbox{\hyperlink{classList}{List}}, but contains it\textquotesingle{}s elements in a sorted manner }{\pageref{classOrderedList}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classReservation}{Reservation}} \\*Each Reservations contains a ticket, a password and a note }{\pageref{classReservation}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classString}{String}} }{\pageref{classString}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classTicket}{Ticket}} \\*Each \mbox{\hyperlink{classTicket}{Ticket}} contains a row and a seat number }{\pageref{classTicket}}{}
+\end{DoxyCompactList}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classCommand.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classCommand.tex
new file mode 100644
index 0000000..e588b0d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classCommand.tex
@@ -0,0 +1,68 @@
+\hypertarget{classCommand}{}\doxysection{Command Class Reference}
+\label{classCommand}\index{Command@{Command}}
+
+
+Stores a 256 character name and a function pointer to be executed when calling \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run()}}
+
+
+
+
+{\ttfamily \#include $<$Command.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classCommand_a18df2d81039392daeb0b78c346a70537}\label{classCommand_a18df2d81039392daeb0b78c346a70537}}
+{\bfseries Command} ()
+\begin{DoxyCompactList}\small\item\em Leaves name empty and exec function pointer to nullptr. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classCommand_a4e22ce5bdf74f9c975494dddd280884a}{Command}} (const char $\ast$name\+In\+Menu, void($\ast$exec)())
+\begin{DoxyCompactList}\small\item\em Copies contents of name\+In\+Menu and stores exec. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run}} () const
+\begin{DoxyCompactList}\small\item\em Executes the stored function pointer. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classCommand_a06adf2e6710dd57506449f0997f467c0}\label{classCommand_a06adf2e6710dd57506449f0997f467c0}}
+const char $\ast$ {\bfseries get\+\_\+name\+In\+Menu} () const
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores a 256 character name and a function pointer to be executed when calling \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run()}}
+
+\mbox{\hyperlink{classMenu}{Menu}} uses this class for a more generic implementation of it\textquotesingle{}s navigate function.
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classCommand_a4e22ce5bdf74f9c975494dddd280884a}\label{classCommand_a4e22ce5bdf74f9c975494dddd280884a}}
+\index{Command@{Command}!Command@{Command}}
+\index{Command@{Command}!Command@{Command}}
+\doxysubsubsection{\texorpdfstring{Command()}{Command()}}
+{\footnotesize\ttfamily Command\+::\+Command (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name\+In\+Menu, }\item[{void($\ast$)()}]{exec }\end{DoxyParamCaption})}
+
+
+
+Copies contents of name\+In\+Menu and stores exec.
+
+
+\begin{DoxyParams}{Parameters}
+{\em name\+In\+Menu} & C-\/style string, class stores at most 255 characters (last character is always terminating zero) \\
+\hline
+{\em exec} & Function pointer that will be executed when \mbox{\hyperlink{classCommand_a44689093b812bfc97b2787c2ba0303ce}{run()}} is called. Can be nullptr. \\
+\hline
+\end{DoxyParams}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classCommand_a44689093b812bfc97b2787c2ba0303ce}\label{classCommand_a44689093b812bfc97b2787c2ba0303ce}}
+\index{Command@{Command}!run@{run}}
+\index{run@{run}!Command@{Command}}
+\doxysubsubsection{\texorpdfstring{run()}{run()}}
+{\footnotesize\ttfamily void Command\+::run (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+Executes the stored function pointer.
+
+Executes the stored function pointer, when it\textquotesingle{}s not nullptr. Otherwise does nothing.
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+Console\+Interface/\mbox{\hyperlink{Command_8h}{Command.\+h}}\item
+src/\+Generic/\+Console\+Interface/Command.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classDate.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classDate.tex
new file mode 100644
index 0000000..5a148e3
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classDate.tex
@@ -0,0 +1,207 @@
+\hypertarget{classDate}{}\doxysection{Date Class Reference}
+\label{classDate}\index{Date@{Date}}
+
+
+Stores a day, month and year.
+
+
+
+
+{\ttfamily \#include $<$Date.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classDate_a4e59ed4ba66eec61c27460c5d09fa1bd}\label{classDate_a4e59ed4ba66eec61c27460c5d09fa1bd}}
+{\bfseries Date} ()
+\begin{DoxyCompactList}\small\item\em Sets date as 01 May 2022. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classDate_a99d57b698afdacd18f5a414cdc7524fd}{Date}} (const char $\ast$str)
+\begin{DoxyCompactList}\small\item\em Parses string. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classDate_a87b3c3ede7dee726e8779eebfcc0a299}{Date}} (unsigned short day, unsigned short month, unsigned short year)
+\begin{DoxyCompactList}\small\item\em Sets day, month and year. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classDate_a2e4dc4249f8cccd40acc5950b42e1339}\label{classDate_a2e4dc4249f8cccd40acc5950b42e1339}}
+unsigned short {\bfseries get\+\_\+day} () const
+\begin{DoxyCompactList}\small\item\em Returns the day. \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classDate_acaf0c3ee1b2d36edf4f870ddd8acce08}{set\+\_\+day}} (unsigned short day)
+\begin{DoxyCompactList}\small\item\em Sets the day. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classDate_a79ebbf3cb46f892604dc79ffc82bcfcc}\label{classDate_a79ebbf3cb46f892604dc79ffc82bcfcc}}
+unsigned short {\bfseries get\+\_\+month} () const
+\begin{DoxyCompactList}\small\item\em Returns the month. \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classDate_ad0a591a557ddde0871389c3d716e6044}{set\+\_\+month}} (unsigned short month)
+\begin{DoxyCompactList}\small\item\em Sets the month. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classDate_a025aae2b290ba357e049d054085f91e3}\label{classDate_a025aae2b290ba357e049d054085f91e3}}
+unsigned short {\bfseries get\+\_\+year} () const
+\begin{DoxyCompactList}\small\item\em Returns the year. \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classDate_a6a0f3124e1850cd9f1514ebffcdd0cae}{set\+\_\+year}} (unsigned short year)
+\begin{DoxyCompactList}\small\item\em Sets the year. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classString}{String}} \mbox{\hyperlink{classDate_a6e00ace9f8c923c96188bd76f1e064c2}{create\+String}} () const
+\begin{DoxyCompactList}\small\item\em Returns the date as a \mbox{\hyperlink{classString}{String}} object. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classDate_a982c0c9098056aa33c5cbc9eba093852}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads date from stream. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classDate_a9c728831f35f27abf3348132a13b7844}{write}} (std\+::ostream \&ostr)
+\begin{DoxyCompactList}\small\item\em Writes date to stream. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classDate_a3cda588bf2f65b84639303a1aa1105be}{compare}} (const \mbox{\hyperlink{classDate}{Date}} \&other) const
+\begin{DoxyCompactList}\small\item\em Compares two dates. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores a day, month and year.
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classDate_a99d57b698afdacd18f5a414cdc7524fd}\label{classDate_a99d57b698afdacd18f5a414cdc7524fd}}
+\index{Date@{Date}!Date@{Date}}
+\index{Date@{Date}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{Date()}{Date()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily Date\+::\+Date (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}
+
+
+
+Parses string.
+
+
+\begin{DoxyParams}{Parameters}
+{\em str} & C-\/style string\\
+\hline
+\end{DoxyParams}
+Values are initialized with zeroes. Then it parses the string\+:
+
+Skips spaces, saves day with atoi, skips two characters, skips spaces, saves month with atoi, skips two characters, skips spaces, saves year with atoi.
+
+Values are validated with setters. You should always have spaces between day, month and year and no non-\/numeric characters between them.
+
+\begin{DoxyRemark}{Remarks}
+If there are non-\/numeric characters, as per atoi() spec, the appropriate property is zero.
+\end{DoxyRemark}
+\mbox{\Hypertarget{classDate_a87b3c3ede7dee726e8779eebfcc0a299}\label{classDate_a87b3c3ede7dee726e8779eebfcc0a299}}
+\index{Date@{Date}!Date@{Date}}
+\index{Date@{Date}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{Date()}{Date()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily Date\+::\+Date (\begin{DoxyParamCaption}\item[{unsigned short}]{day, }\item[{unsigned short}]{month, }\item[{unsigned short}]{year }\end{DoxyParamCaption})}
+
+
+
+Sets day, month and year.
+
+Initializes values with zeroes and then uses setters to save the function arguments.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classDate_a3cda588bf2f65b84639303a1aa1105be}\label{classDate_a3cda588bf2f65b84639303a1aa1105be}}
+\index{Date@{Date}!compare@{compare}}
+\index{compare@{compare}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int Date\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{other }\end{DoxyParamCaption}) const}
+
+
+
+Compares two dates.
+
+\begin{DoxyReturn}{Returns}
+-\/1 if this \texorpdfstring{$<$}{<} other, 1 if this \texorpdfstring{$>$}{>} other, 0 if this == other
+\end{DoxyReturn}
+\mbox{\Hypertarget{classDate_a6e00ace9f8c923c96188bd76f1e064c2}\label{classDate_a6e00ace9f8c923c96188bd76f1e064c2}}
+\index{Date@{Date}!createString@{createString}}
+\index{createString@{createString}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{createString()}{createString()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classString}{String}} Date\+::create\+String (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+Returns the date as a \mbox{\hyperlink{classString}{String}} object.
+
+\begin{DoxyReturn}{Returns}
+\mbox{\hyperlink{classString}{String}} object in the format \char`\"{}day.\+month.\+year\char`\"{}
+\end{DoxyReturn}
+\begin{DoxyNote}{Note}
+Currently there isn\textquotesingle{}t any way to change the formatting
+\end{DoxyNote}
+\mbox{\Hypertarget{classDate_a982c0c9098056aa33c5cbc9eba093852}\label{classDate_a982c0c9098056aa33c5cbc9eba093852}}
+\index{Date@{Date}!read@{read}}
+\index{read@{read}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void Date\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads date from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classDate_a982c0c9098056aa33c5cbc9eba093852}{read()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classDate_acaf0c3ee1b2d36edf4f870ddd8acce08}\label{classDate_acaf0c3ee1b2d36edf4f870ddd8acce08}}
+\index{Date@{Date}!set\_day@{set\_day}}
+\index{set\_day@{set\_day}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{set\_day()}{set\_day()}}
+{\footnotesize\ttfamily bool Date\+::set\+\_\+day (\begin{DoxyParamCaption}\item[{unsigned short}]{new\+Day }\end{DoxyParamCaption})}
+
+
+
+Sets the day.
+
+\begin{DoxyReturn}{Returns}
+Whether new\+Day was saved or not
+\end{DoxyReturn}
+If new\+Day is equal to 0, or is more than the appropriate days in the month, the day isn\textquotesingle{}t set. \mbox{\Hypertarget{classDate_ad0a591a557ddde0871389c3d716e6044}\label{classDate_ad0a591a557ddde0871389c3d716e6044}}
+\index{Date@{Date}!set\_month@{set\_month}}
+\index{set\_month@{set\_month}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{set\_month()}{set\_month()}}
+{\footnotesize\ttfamily bool Date\+::set\+\_\+month (\begin{DoxyParamCaption}\item[{unsigned short}]{new\+Month }\end{DoxyParamCaption})}
+
+
+
+Sets the month.
+
+\begin{DoxyReturn}{Returns}
+Whether new\+Month was saved or not
+\end{DoxyReturn}
+If new\+Month is equal to 0 or is more than 12, the month isn\textquotesingle{}t set. \mbox{\Hypertarget{classDate_a6a0f3124e1850cd9f1514ebffcdd0cae}\label{classDate_a6a0f3124e1850cd9f1514ebffcdd0cae}}
+\index{Date@{Date}!set\_year@{set\_year}}
+\index{set\_year@{set\_year}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{set\_year()}{set\_year()}}
+{\footnotesize\ttfamily bool Date\+::set\+\_\+year (\begin{DoxyParamCaption}\item[{unsigned short}]{new\+Year }\end{DoxyParamCaption})}
+
+
+
+Sets the year.
+
+\begin{DoxyReturn}{Returns}
+Whether year was saved or not
+\end{DoxyReturn}
+Year isn\textquotesingle{}t set when new\+Year is zero \mbox{\Hypertarget{classDate_a9c728831f35f27abf3348132a13b7844}\label{classDate_a9c728831f35f27abf3348132a13b7844}}
+\index{Date@{Date}!write@{write}}
+\index{write@{write}!Date@{Date}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void Date\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption})}
+
+
+
+Writes date to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classDate_a9c728831f35f27abf3348132a13b7844}{write()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+Date/\mbox{\hyperlink{Date_8h}{Date.\+h}}\item
+src/\+Generic/\+Date/Date.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classEvent.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classEvent.tex
new file mode 100644
index 0000000..2396976
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classEvent.tex
@@ -0,0 +1,118 @@
+\hypertarget{classEvent}{}\doxysection{Event Class Reference}
+\label{classEvent}\index{Event@{Event}}
+
+
+Stores an event\textquotesingle{}s hall, name, date, bought tickets and reservations.
+
+
+
+
+{\ttfamily \#include $<$Event.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classEvent_a5a40dd4708297f7031e29b39e039ae10}\label{classEvent_a5a40dd4708297f7031e29b39e039ae10}}
+{\bfseries Event} ()
+\begin{DoxyCompactList}\small\item\em Calls default constructors on data. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a6ecbd134ada51629f30b2d1cf352d88f}\label{classEvent_a6ecbd134ada51629f30b2d1cf352d88f}}
+{\bfseries Event} (const \mbox{\hyperlink{classHall}{Hall}} \&hall, \mbox{\hyperlink{classString}{String}} name, \mbox{\hyperlink{classDate}{Date}} date)
+\begin{DoxyCompactList}\small\item\em Copies given hall and sets name and date. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_ae3023ae2c487f46b3235f67554e58615}\label{classEvent_ae3023ae2c487f46b3235f67554e58615}}
+const \mbox{\hyperlink{classHall}{Hall}} \& {\bfseries get\+\_\+hall} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference \mbox{\hyperlink{classHall}{Hall}} in which event will be held. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a7bf717630c32826689df41e0bb3ecbce}\label{classEvent_a7bf717630c32826689df41e0bb3ecbce}}
+const \mbox{\hyperlink{classString}{String}} \& {\bfseries get\+\_\+name} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to name of event. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a222904d44dfaf3f1f96e2190c5ea4293}\label{classEvent_a222904d44dfaf3f1f96e2190c5ea4293}}
+const \mbox{\hyperlink{classDate}{Date}} \& {\bfseries get\+\_\+date} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to date on which event will be held. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a16a84fced8e02f756232c54c27bb22ad}\label{classEvent_a16a84fced8e02f756232c54c27bb22ad}}
+\mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ \mbox{\hyperlink{classTicket}{Ticket}} $>$ \& {\bfseries get\+\_\+tickets} ()
+\begin{DoxyCompactList}\small\item\em Returns reference to bought tickets. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a1f914fc91044a5c10d71f31b8e712c46}\label{classEvent_a1f914fc91044a5c10d71f31b8e712c46}}
+const \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ \mbox{\hyperlink{classTicket}{Ticket}} $>$ \& {\bfseries get\+\_\+tickets} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to bought tickets. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a43c6b2bddd42435eb6c8cd0f15d75c6f}\label{classEvent_a43c6b2bddd42435eb6c8cd0f15d75c6f}}
+\mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ \mbox{\hyperlink{classReservation}{Reservation}} $>$ \& {\bfseries get\+\_\+reservations} ()
+\begin{DoxyCompactList}\small\item\em Returns reference to reservations. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEvent_a7af1c5d57d41701e6411b7c251bf904e}\label{classEvent_a7af1c5d57d41701e6411b7c251bf904e}}
+const \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ \mbox{\hyperlink{classReservation}{Reservation}} $>$ \& {\bfseries get\+\_\+reservations} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to reservations. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classEvent}{Event}} from stream. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classEvent_a05a302aa998977c30950987c07f0fbba}{write}} (std\+::ostream \&ostr)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classEvent}{Event}} to stream. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classEvent_af5c84a902db8f29f8b8737026011f1f6}{compare}} (const \mbox{\hyperlink{classEvent}{Event}} \&other)
+\begin{DoxyCompactList}\small\item\em Compares two events. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Stores an event\textquotesingle{}s hall, name, date, bought tickets and reservations.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classEvent_af5c84a902db8f29f8b8737026011f1f6}\label{classEvent_af5c84a902db8f29f8b8737026011f1f6}}
+\index{Event@{Event}!compare@{compare}}
+\index{compare@{compare}!Event@{Event}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int Event\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classEvent}{Event}} \&}]{other }\end{DoxyParamCaption})}
+
+
+
+Compares two events.
+
+\begin{DoxyReturn}{Returns}
+compare of halls, or if they are equal, compare of dates
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}\label{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}}
+\index{Event@{Event}!read@{read}}
+\index{read@{read}!Event@{Event}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void Event\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classEvent}{Event}} from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}{read()}} function). Stored types must have defined a \mbox{\hyperlink{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}{read()}} function.
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classEvent_a05a302aa998977c30950987c07f0fbba}\label{classEvent_a05a302aa998977c30950987c07f0fbba}}
+\index{Event@{Event}!write@{write}}
+\index{write@{write}!Event@{Event}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void Event\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption})}
+
+
+
+Writes \mbox{\hyperlink{classEvent}{Event}} to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classEvent_a05a302aa998977c30950987c07f0fbba}{write()}} function). Stored types must have defined a \mbox{\hyperlink{classEvent_ae58d2ed716836adcdacaeec4dd08c1cf}{read()}} function.
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Models/\mbox{\hyperlink{Event_8h}{Event.\+h}}\item
+src/\+Models/Event.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classEventService.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classEventService.tex
new file mode 100644
index 0000000..d16cb71
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classEventService.tex
@@ -0,0 +1,314 @@
+\hypertarget{classEventService}{}\doxysection{Event\+Service Class Reference}
+\label{classEventService}\index{EventService@{EventService}}
+
+
+Each \mbox{\hyperlink{classEventService}{Event\+Service}} stores all events and a pointer to \mbox{\hyperlink{classHallService}{Hall\+Service}}.
+
+
+
+
+{\ttfamily \#include $<$Event\+Service.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classEventService_a9b30bb95890abac259ba27b53cabe545}\label{classEventService_a9b30bb95890abac259ba27b53cabe545}}
+{\bfseries Event\+Service} (const \mbox{\hyperlink{classHallService}{Hall\+Service}} $\ast$hs)
+\begin{DoxyCompactList}\small\item\em Sets \mbox{\hyperlink{classHallService}{Hall\+Service}} pointer and initializes events \mbox{\hyperlink{classList}{List}}. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classEventService_af35cde4a05edfec88496772b6d0b1e37}\label{classEventService_af35cde4a05edfec88496772b6d0b1e37}}
+{\bfseries Event\+Service} (const \mbox{\hyperlink{classHallService}{Hall\+Service}} $\ast$hs, const \mbox{\hyperlink{classEvent}{Event}} $\ast$events, unsigned event\+Count)
+\begin{DoxyCompactList}\small\item\em Sets \mbox{\hyperlink{classHallService}{Hall\+Service}} pointer and copies values from events into events \mbox{\hyperlink{classList}{List}}. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_a7a21a5909116215e402254510d6d81d6}{create\+Event}} (int hall\+Number, const \mbox{\hyperlink{classString}{String}} \&name, const \mbox{\hyperlink{classDate}{Date}} \&date)
+\begin{DoxyCompactList}\small\item\em Creates an \mbox{\hyperlink{classEvent}{Event}}, with the given hall\+Number, name and date. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_ac7ea565af5ad78e84749558477ceaf26}{cancel\+Event}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date)
+\begin{DoxyCompactList}\small\item\em Cancels an \mbox{\hyperlink{classEvent}{Event}} with the given name and date. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_a3c0d2a05e2a3026044b9e13e6802fbdb}{reserve\+Ticket}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, const char $\ast$password, const char $\ast$note, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Creates a \mbox{\hyperlink{classReservation}{Reservation}} for an \mbox{\hyperlink{classEvent}{Event}} by name and date. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_aa6fd620de878f225f7c51bb0df6ea749}{cancel\+Ticket\+Reservation}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Cancels a \mbox{\hyperlink{classReservation}{Reservation}} for a ticket. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_ad1efbed6111da8e755d86b5bc9ada806}{ticket\+Is\+Reserved}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Whether a ticket is a reserved or not. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_ac447cac3e4974b9cc676d9bb90152979}{buy\+Ticket}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket, const char $\ast$password, \mbox{\hyperlink{classString}{String}} $\ast$reservation\+Note\+Output)
+\begin{DoxyCompactList}\small\item\em Buys ticket, assuming it is reserved and stores the reservation note. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_ad0a204aca9cc8287f562f42916248e9e}{buy\+Ticket}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Buys ticket, assuming it isn\textquotesingle{}t reserved. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classString}{String}} \mbox{\hyperlink{classEventService_a7f4632e3beae5d24087047ab0223f85e}{create\+Seating\+String}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date, unsigned $\ast$seats\+Per\+Row)
+\begin{DoxyCompactList}\small\item\em Creates a special \mbox{\hyperlink{classString}{String}} for status of all seats in given \mbox{\hyperlink{classEvent}{Event}} (by name and date) and returns seats\+Per\+Row in given pointer. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classList}{List}}$<$ \mbox{\hyperlink{classEvent}{Event}} $>$ \mbox{\hyperlink{classEventService_a6700bd4f9da6d12a47812b9c8549556e}{query\+Most\+Watched}} (unsigned topN)
+\item
+\mbox{\hyperlink{classList}{List}}$<$ \mbox{\hyperlink{classEvent}{Event}} $>$ \mbox{\hyperlink{classEventService_a814de3510f72150f2e54d44f8c8948bb}{query\+Insufficiently\+Visited}} ()
+\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_a277194aea79a2c9bf955b7706a20c54c}{report\+Reservations}} (const char $\ast$name, const \mbox{\hyperlink{classDate}{Date}} \&date)
+\begin{DoxyCompactList}\small\item\em Creates a report that lists all Events (with given name and date) and their reserved tickets. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_afc74fc6d44fca054bce8e54997c0cd3e}{report\+Bought\+Tickets}} (int hall\+Number, const \mbox{\hyperlink{classDate}{Date}} \&start, const \mbox{\hyperlink{classDate}{Date}} \&end, bool all=false)
+\begin{DoxyCompactList}\small\item\em Creates a report that Lists all Events (with given name and date) and number of bought tickets. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_a1225c23dae83fa928da47113cd1c5617}{load}} ()
+\begin{DoxyCompactList}\small\item\em Loads Events from a database file. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classEventService_a5aac3df17ef30f84c1c28277c256ec32}{save}} ()
+\begin{DoxyCompactList}\small\item\em Saves Events to a database file. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Each \mbox{\hyperlink{classEventService}{Event\+Service}} stores all events and a pointer to \mbox{\hyperlink{classHallService}{Hall\+Service}}.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classEventService_ad0a204aca9cc8287f562f42916248e9e}\label{classEventService_ad0a204aca9cc8287f562f42916248e9e}}
+\index{EventService@{EventService}!buyTicket@{buyTicket}}
+\index{buyTicket@{buyTicket}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{buyTicket()}{buyTicket()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::buy\+Ticket (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Buys ticket, assuming it isn\textquotesingle{}t reserved.
+
+Calls buy\+Ticket with \mbox{\hyperlink{classReservation}{Reservation}}, but sets password and note\+Output to nullptr. \begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+E\+\_\+\+Ticket\+Already\+Bought {\bfseries{if}} A ticket for the given row and seat has already been bought
+
+E\+\_\+\+Ticket\+Already\+Reserved {\bfseries{if}} The seat and row are reserved, but given password is nullptr
+
+E\+\_\+\+Wrong\+Reservation\+Password {\bfseries{if}} The seat and row are reserved, but given password is incorrect
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_ac447cac3e4974b9cc676d9bb90152979}\label{classEventService_ac447cac3e4974b9cc676d9bb90152979}}
+\index{EventService@{EventService}!buyTicket@{buyTicket}}
+\index{buyTicket@{buyTicket}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{buyTicket()}{buyTicket()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::buy\+Ticket (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket, }\item[{const char $\ast$}]{password, }\item[{\mbox{\hyperlink{classString}{String}} $\ast$}]{reservation\+Note\+Output }\end{DoxyParamCaption})}
+
+
+
+Buys ticket, assuming it is reserved and stores the reservation note.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+E\+\_\+\+Ticket\+Already\+Bought {\bfseries{if}} A ticket for the given row and seat has already been bought
+
+E\+\_\+\+Ticket\+Already\+Reserved {\bfseries{if}} The seat and row are reserved, but given password is nullptr
+
+E\+\_\+\+Wrong\+Reservation\+Password {\bfseries{if}} The seat and row are reserved, but given password is incorrect
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_ac7ea565af5ad78e84749558477ceaf26}\label{classEventService_ac7ea565af5ad78e84749558477ceaf26}}
+\index{EventService@{EventService}!cancelEvent@{cancelEvent}}
+\index{cancelEvent@{cancelEvent}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{cancelEvent()}{cancelEvent()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::cancel\+Event (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date }\end{DoxyParamCaption})}
+
+
+
+Cancels an \mbox{\hyperlink{classEvent}{Event}} with the given name and date.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_aa6fd620de878f225f7c51bb0df6ea749}\label{classEventService_aa6fd620de878f225f7c51bb0df6ea749}}
+\index{EventService@{EventService}!cancelTicketReservation@{cancelTicketReservation}}
+\index{cancelTicketReservation@{cancelTicketReservation}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{cancelTicketReservation()}{cancelTicketReservation()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::cancel\+Ticket\+Reservation (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Cancels a \mbox{\hyperlink{classReservation}{Reservation}} for a ticket.
+
+Canceling a reservation doesn\textquotesingle{}t require password and doesn\textquotesingle{}t return the \mbox{\hyperlink{classReservation}{Reservation}}\textquotesingle{}s note
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+W\+\_\+\+Ticket\+Had\+Not\+Been\+Reserved {\bfseries{\mbox{\hyperlink{classTicket}{Ticket}}}} hadn\textquotesingle{}t been reserved in the first place
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a7a21a5909116215e402254510d6d81d6}\label{classEventService_a7a21a5909116215e402254510d6d81d6}}
+\index{EventService@{EventService}!createEvent@{createEvent}}
+\index{createEvent@{createEvent}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{createEvent()}{createEvent()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::create\+Event (\begin{DoxyParamCaption}\item[{int}]{hall\+Number, }\item[{const \mbox{\hyperlink{classString}{String}} \&}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date }\end{DoxyParamCaption})}
+
+
+
+Creates an \mbox{\hyperlink{classEvent}{Event}}, with the given hall\+Number, name and date.
+
+Uses \mbox{\hyperlink{classHallService}{Hall\+Service}} pointer to get \mbox{\hyperlink{classHall}{Hall}} from hall\+Number \begin{DoxyReturn}{Returns}
+E\+\_\+\+Hall\+Doesnt\+Exist {\bfseries{if}} hall\+Number doesn\textquotesingle{}t correspond to any \mbox{\hyperlink{classHall}{Hall}}, saved in \mbox{\hyperlink{classHallService}{Hall\+Service}}
+
+E\+\_\+\+Event\+Will\+Overlap {\bfseries{if}} \mbox{\hyperlink{classEvent}{Event}}\textquotesingle{}s date overlaps with another event in the same \mbox{\hyperlink{classHall}{Hall}}
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a7f4632e3beae5d24087047ab0223f85e}\label{classEventService_a7f4632e3beae5d24087047ab0223f85e}}
+\index{EventService@{EventService}!createSeatingString@{createSeatingString}}
+\index{createSeatingString@{createSeatingString}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{createSeatingString()}{createSeatingString()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classString}{String}} Event\+Service\+::create\+Seating\+String (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{unsigned $\ast$}]{seats\+Per\+Row }\end{DoxyParamCaption})}
+
+
+
+Creates a special \mbox{\hyperlink{classString}{String}} for status of all seats in given \mbox{\hyperlink{classEvent}{Event}} (by name and date) and returns seats\+Per\+Row in given pointer.
+
+Each seat in the \mbox{\hyperlink{classHall}{Hall}} of the \mbox{\hyperlink{classEvent}{Event}} is represented by a single character, where \textquotesingle{}R\textquotesingle{} means the seat is reserved, \textquotesingle{}B\textquotesingle{} means the seat is bought and \textquotesingle{} \textquotesingle{} if it\textquotesingle{}s neither.
+
+\begin{DoxyReturn}{Returns}
+Empty \mbox{\hyperlink{classString}{String}} {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+Proper \mbox{\hyperlink{classString}{String}} {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a1225c23dae83fa928da47113cd1c5617}\label{classEventService_a1225c23dae83fa928da47113cd1c5617}}
+\index{EventService@{EventService}!load@{load}}
+\index{load@{load}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{load()}{load()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::load (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Loads Events from a database file.
+
+Looks for file named \char`\"{}events\+Databse.\+fmits\char`\"{}, which is just a binary file, and then reads it with the \char`\"{}read\char`\"{} function in events \mbox{\hyperlink{classList}{List}}.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} The files couldn\textquotesingle{}t be opened/\+Doesn\textquotesingle{}t exist
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a814de3510f72150f2e54d44f8c8948bb}\label{classEventService_a814de3510f72150f2e54d44f8c8948bb}}
+\index{EventService@{EventService}!queryInsufficientlyVisited@{queryInsufficientlyVisited}}
+\index{queryInsufficientlyVisited@{queryInsufficientlyVisited}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{queryInsufficientlyVisited()}{queryInsufficientlyVisited()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classList}{List}}$<$ \mbox{\hyperlink{classEvent}{Event}} $>$ Event\+Service\+::query\+Insufficiently\+Visited (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\begin{DoxyReturn}{Returns}
+A \mbox{\hyperlink{classList}{List}} of events which have attracted sales of less than 10\% of the \mbox{\hyperlink{classHall}{Hall}}\textquotesingle{}s seat
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a6700bd4f9da6d12a47812b9c8549556e}\label{classEventService_a6700bd4f9da6d12a47812b9c8549556e}}
+\index{EventService@{EventService}!queryMostWatched@{queryMostWatched}}
+\index{queryMostWatched@{queryMostWatched}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{queryMostWatched()}{queryMostWatched()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classList}{List}}$<$ \mbox{\hyperlink{classEvent}{Event}} $>$ Event\+Service\+::query\+Most\+Watched (\begin{DoxyParamCaption}\item[{unsigned}]{topN }\end{DoxyParamCaption})}
+
+\begin{DoxyReturn}{Returns}
+A \mbox{\hyperlink{classList}{List}} of topN most watched Events
+\end{DoxyReturn}
+Events are sorted from index 0 to last index decreasingly by number of watchers. Watchers count for an \mbox{\hyperlink{classEvent}{Event}} is the amount of bought tickets.
+
+If there are less events than topN, all events are returned. \mbox{\Hypertarget{classEventService_afc74fc6d44fca054bce8e54997c0cd3e}\label{classEventService_afc74fc6d44fca054bce8e54997c0cd3e}}
+\index{EventService@{EventService}!reportBoughtTickets@{reportBoughtTickets}}
+\index{reportBoughtTickets@{reportBoughtTickets}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{reportBoughtTickets()}{reportBoughtTickets()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::report\+Bought\+Tickets (\begin{DoxyParamCaption}\item[{int}]{hall\+Number, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{start, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{end, }\item[{bool}]{all = {\ttfamily false} }\end{DoxyParamCaption})}
+
+
+
+Creates a report that Lists all Events (with given name and date) and number of bought tickets.
+
+
+\begin{DoxyParams}{Parameters}
+{\em hall\+Number} & Number of the \mbox{\hyperlink{classEvent}{Event}}\textquotesingle{}s \mbox{\hyperlink{classHall}{Hall}} \\
+\hline
+{\em start} & Starting \mbox{\hyperlink{classDate}{Date}} from which to take Events \\
+\hline
+{\em end} & Ending \mbox{\hyperlink{classDate}{Date}} until which to take Evnets (including)\\
+\hline
+\end{DoxyParams}
+Report is saved in a file named \char`\"{}bought\+Tickets.\+txt\char`\"{} in the current directory.
+
+All Events are inserted into the file with the \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator and a setting of 0b01001.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} Report file couldn\textquotesingle{}t be created
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a277194aea79a2c9bf955b7706a20c54c}\label{classEventService_a277194aea79a2c9bf955b7706a20c54c}}
+\index{EventService@{EventService}!reportReservations@{reportReservations}}
+\index{reportReservations@{reportReservations}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{reportReservations()}{reportReservations()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::report\+Reservations (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date }\end{DoxyParamCaption})}
+
+
+
+Creates a report that lists all Events (with given name and date) and their reserved tickets.
+
+
+\begin{DoxyParams}{Parameters}
+{\em name} & C-\/style string, if it is equal to \char`\"{}\+ALL\char`\"{}, reservations from all Events on the given date will be reported \\
+\hline
+{\em date} & If day, month and year are equal to 0, reservations from all dates will be reported\\
+\hline
+\end{DoxyParams}
+Report is saved in a file in the current directory, named \char`\"{}report-\/\+NAME-\/\+DATE.\+txt\char`\"{}, where NAME is the given name, and DATE is the given date or \char`\"{}\+ALL\char`\"{} if the date is 0/0/0
+
+All Events are inserted into the file with the \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator and a setting of 0b00101.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} Report file couldn\textquotesingle{}t be created
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a3c0d2a05e2a3026044b9e13e6802fbdb}\label{classEventService_a3c0d2a05e2a3026044b9e13e6802fbdb}}
+\index{EventService@{EventService}!reserveTicket@{reserveTicket}}
+\index{reserveTicket@{reserveTicket}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{reserveTicket()}{reserveTicket()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::reserve\+Ticket (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{const char $\ast$}]{password, }\item[{const char $\ast$}]{note, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Creates a \mbox{\hyperlink{classReservation}{Reservation}} for an \mbox{\hyperlink{classEvent}{Event}} by name and date.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+E\+\_\+\+Ticket\+Already\+Bought {\bfseries{if}} A ticket for the given row and seat has already been bought
+
+E\+\_\+\+Ticket\+Already\+Reserved {\bfseries{if}} A reservation has already been placed on the given row and seat
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_a5aac3df17ef30f84c1c28277c256ec32}\label{classEventService_a5aac3df17ef30f84c1c28277c256ec32}}
+\index{EventService@{EventService}!save@{save}}
+\index{save@{save}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{save()}{save()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::save (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Saves Events to a database file.
+
+Looks for file named \char`\"{}events\+Databse.\+fmits\char`\"{}, which is just a binary file, and then writes to it with the \char`\"{}write\char`\"{} function in events \mbox{\hyperlink{classList}{List}}.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} The files couldn\textquotesingle{}t be opened
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classEventService_ad1efbed6111da8e755d86b5bc9ada806}\label{classEventService_ad1efbed6111da8e755d86b5bc9ada806}}
+\index{EventService@{EventService}!ticketIsReserved@{ticketIsReserved}}
+\index{ticketIsReserved@{ticketIsReserved}!EventService@{EventService}}
+\doxysubsubsection{\texorpdfstring{ticketIsReserved()}{ticketIsReserved()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Event\+Service\+::ticket\+Is\+Reserved (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name, }\item[{const \mbox{\hyperlink{classDate}{Date}} \&}]{date, }\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{ticket }\end{DoxyParamCaption})}
+
+
+
+Whether a ticket is a reserved or not.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+Event\+Does\+Not\+Exist {\bfseries{if}} No \mbox{\hyperlink{classEvent}{Event}} with the given name and date exists
+
+W\+\_\+\+Ticket\+Had\+Not\+Been\+Reserved {\bfseries{\mbox{\hyperlink{classTicket}{Ticket}}}} hadn\textquotesingle{}t been reserved in the first place
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Services/\mbox{\hyperlink{EventService_8h}{Event\+Service.\+h}}\item
+src/\+Services/Event\+Service.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classHall.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classHall.tex
new file mode 100644
index 0000000..526db1e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classHall.tex
@@ -0,0 +1,109 @@
+\hypertarget{classHall}{}\doxysection{Hall Class Reference}
+\label{classHall}\index{Hall@{Hall}}
+
+
+Each hall contains a number, rows and seats per row.
+
+
+
+
+{\ttfamily \#include $<$Hall.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classHall_a122ed8085be305339c89cadb3e360b86}\label{classHall_a122ed8085be305339c89cadb3e360b86}}
+{\bfseries Hall} ()
+\begin{DoxyCompactList}\small\item\em Sets values to 0. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHall_af88f012be2e7671366e10d4e154a8d8f}\label{classHall_af88f012be2e7671366e10d4e154a8d8f}}
+{\bfseries Hall} (int number)
+\begin{DoxyCompactList}\small\item\em Sets values, except number, to 0. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHall_ab93a2ca8463f3b3d398374a6efea4c71}\label{classHall_ab93a2ca8463f3b3d398374a6efea4c71}}
+{\bfseries Hall} (int number, unsigned rows, unsigned seats\+Per\+Row)
+\begin{DoxyCompactList}\small\item\em Sets values. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHall_a84186aee50631f25b214f18f7b0dc178}\label{classHall_a84186aee50631f25b214f18f7b0dc178}}
+int {\bfseries get\+\_\+number} () const
+\begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{classHall}{Hall}}\textquotesingle{}s number. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHall_a6b3c304a95d3f56980c6faf0cc2073a2}\label{classHall_a6b3c304a95d3f56980c6faf0cc2073a2}}
+unsigned {\bfseries get\+\_\+rows} () const
+\begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{classHall}{Hall}}\textquotesingle{}s row count. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHall_a42e1cd716086d8a42a627e00cde17a7e}\label{classHall_a42e1cd716086d8a42a627e00cde17a7e}}
+unsigned {\bfseries get\+\_\+seats\+Per\+Row} () const
+\begin{DoxyCompactList}\small\item\em Return a \mbox{\hyperlink{classHall}{Hall}}\textquotesingle{}s seats per row count. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classHall_acef974f302d8131ef4608e15f96c2df9}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classHall}{Hall}} from stream. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classHall_a0239d59ab0f832f16cf35c820d0eba5a}{write}} (std\+::ostream \&ostr) const
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classHall}{Hall}} to steam. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classHall_a4259837f943c488c6b15ed6c80d5f30b}{compare}} (const \mbox{\hyperlink{classHall}{Hall}} \&other) const
+\begin{DoxyCompactList}\small\item\em Compare two Halls. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Each hall contains a number, rows and seats per row.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classHall_a4259837f943c488c6b15ed6c80d5f30b}\label{classHall_a4259837f943c488c6b15ed6c80d5f30b}}
+\index{Hall@{Hall}!compare@{compare}}
+\index{compare@{compare}!Hall@{Hall}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int Hall\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHall}{Hall}} \&}]{other }\end{DoxyParamCaption}) const}
+
+
+
+Compare two Halls.
+
+\begin{DoxyReturn}{Returns}
+-\/1 if number \texorpdfstring{$<$}{<} other.\+number, 1 if number \texorpdfstring{$>$}{>} other.\+number, 0 if number == other.\+number
+\end{DoxyReturn}
+\mbox{\Hypertarget{classHall_acef974f302d8131ef4608e15f96c2df9}\label{classHall_acef974f302d8131ef4608e15f96c2df9}}
+\index{Hall@{Hall}!read@{read}}
+\index{read@{read}!Hall@{Hall}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void Hall\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classHall}{Hall}} from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classHall_acef974f302d8131ef4608e15f96c2df9}{read()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classHall_a0239d59ab0f832f16cf35c820d0eba5a}\label{classHall_a0239d59ab0f832f16cf35c820d0eba5a}}
+\index{Hall@{Hall}!write@{write}}
+\index{write@{write}!Hall@{Hall}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void Hall\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption}) const}
+
+
+
+Writes \mbox{\hyperlink{classHall}{Hall}} to steam.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classHall_a0239d59ab0f832f16cf35c820d0eba5a}{write()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Models/\mbox{\hyperlink{Hall_8h}{Hall.\+h}}\item
+src/\+Models/Hall.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classHallService.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classHallService.tex
new file mode 100644
index 0000000..6ea0784
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classHallService.tex
@@ -0,0 +1,70 @@
+\hypertarget{classHallService}{}\doxysection{Hall\+Service Class Reference}
+\label{classHallService}\index{HallService@{HallService}}
+
+
+Each \mbox{\hyperlink{classHallService}{Hall\+Service}} stores all halls.
+
+
+
+
+{\ttfamily \#include $<$Hall\+Service.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classHallService_a57a8117d8d510afb5351a3f7efc18dff}\label{classHallService_a57a8117d8d510afb5351a3f7efc18dff}}
+{\bfseries Hall\+Service} (const \mbox{\hyperlink{classHall}{Hall}} $\ast$halls, unsigned hall\+Count)
+\begin{DoxyCompactList}\small\item\em Copies halls from parameters. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classHallService_a641fdcc475e094687713e94094e2a623}\label{classHallService_a641fdcc475e094687713e94094e2a623}}
+const \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ \mbox{\hyperlink{classHall}{Hall}} $>$ \& {\bfseries get\+\_\+halls} () const
+\begin{DoxyCompactList}\small\item\em Returns a constant reference to halls. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classHallService_ab63c1ccff811ed3268f2fe5e996eb6ae}{load}} ()
+\begin{DoxyCompactList}\small\item\em Loads Halls to a database file. \end{DoxyCompactList}\item
+\mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} \mbox{\hyperlink{classHallService_a083e3d10ec89ee8c78a117c3754c66d2}{save}} ()
+\begin{DoxyCompactList}\small\item\em Saves Halls to a database file. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Each \mbox{\hyperlink{classHallService}{Hall\+Service}} stores all halls.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classHallService_ab63c1ccff811ed3268f2fe5e996eb6ae}\label{classHallService_ab63c1ccff811ed3268f2fe5e996eb6ae}}
+\index{HallService@{HallService}!load@{load}}
+\index{load@{load}!HallService@{HallService}}
+\doxysubsubsection{\texorpdfstring{load()}{load()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Hall\+Service\+::load (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Loads Halls to a database file.
+
+Looks for file named \char`\"{}halls\+Databse.\+fmits\char`\"{}, which is just a binary file, and then reads it with the \char`\"{}read\char`\"{} function in events \mbox{\hyperlink{classList}{List}}.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} The files couldn\textquotesingle{}t be opened/\+Doesn\textquotesingle{}t exist
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classHallService_a083e3d10ec89ee8c78a117c3754c66d2}\label{classHallService_a083e3d10ec89ee8c78a117c3754c66d2}}
+\index{HallService@{HallService}!save@{save}}
+\index{save@{save}!HallService@{HallService}}
+\doxysubsubsection{\texorpdfstring{save()}{save()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{StatusCode_8h_ae98a46f4ea1a43ca48acaf15d2eb7113}{Status\+Code}} Hall\+Service\+::save (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Saves Halls to a database file.
+
+Looks for file named \char`\"{}halls\+Databse.\+fmits\char`\"{}, which is just a binary file, and then writes to it with the \char`\"{}write\char`\"{} function in events \mbox{\hyperlink{classList}{List}}.
+
+\begin{DoxyReturn}{Returns}
+E\+\_\+\+File\+Could\+Not\+Be\+Opened {\bfseries{if}} The files couldn\textquotesingle{}t be opened
+
+Success {\bfseries{otherwise}}
+\end{DoxyReturn}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Services/\mbox{\hyperlink{HallService_8h}{Hall\+Service.\+h}}\item
+src/\+Services/Hall\+Service.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.eps b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.eps
new file mode 100644
index 0000000..f3ba9f8
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 338.983063
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.475000 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(List< T >) cw
+(OrderedList< T >) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (List< T >) 0.000000 1.000000 box
+ (OrderedList< T >) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.pdf b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.pdf
new file mode 100644
index 0000000..072935e
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.pdf
@@ -0,0 +1,116 @@
+%PDF-1.5
+%Çì�¢
+%%Invocation: gs -q -dSAFER -dNOPAUSE -dBATCH -dCompatibilityLevel=1.5 -sDEVICE=pdfwrite -sOutputFile=? -dPDFSETTINGS#/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoRotatePages#/None -
+5 0 obj
+<</Length 6 0 R/Filter /FlateDecode>>
+stream
+xœ•‘¿NÄ0 Æw?…G`0¶“Ô�„� *ä î/ˆ=�îõIÓ–ö8PÇ–íï÷%2 rƸj�qH©âV-Þ%¸~6¬i0Á´…aBP4RÌ%õF S �¯Ÿ7˜ðö2½Á}‚‚’‰wxÌÐá4ý­ªÂ5åñ󜾩“J©®rzzŸÛöàŒ™œö 6lzÁæ^´"BDWQ,FžëÍa³>÷ó‹žØy¢ž4Òå� ¯·,ã-‹Å‘µÈg¢ãùz ý¾P åGÓÙ|^–ú‹Ä†RÇü/’›Ô+StËÊé–=l¯þRé€ Ê |IluUendstream
+endobj
+6 0 obj
+256
+endobj
+4 0 obj
+<</Type/Page/MediaBox [0 0 500 338.98]
+/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/Font 9 0 R
+>>
+/Contents 5 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+4 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+/Metadata 11 0 R
+>>
+endobj
+9 0 obj
+<</R7
+7 0 R>>
+endobj
+7 0 obj
+<</BaseFont/RTBSIO+Times-Roman/FontDescriptor 8 0 R/Type/Font
+/FirstChar 32/LastChar 116/Widths[
+250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 564 0 564 0
+0 0 0 0 0 0 0 0 0 0 0 0 611 0 0 722
+0 0 0 0 611 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 500 444 0 0 0 278 0 0 0 0 0 0
+0 0 333 389 278]
+/Encoding/WinAnsiEncoding/Subtype/Type1>>
+endobj
+8 0 obj
+<</Type/FontDescriptor/FontName/RTBSIO+Times-Roman/FontBBox[0 -14 688 683]/Flags 131104
+/Ascent 683
+/CapHeight 676
+/Descent -14
+/ItalicAngle 0
+/StemV 103
+/MissingWidth 250
+/XHeight 460
+/CharSet(/L/O/T/d/e/greater/i/less/r/s/space/t)/FontFile3 10 0 R>>
+endobj
+10 0 obj
+<</Filter/FlateDecode
+/Subtype/Type1C/Length 1186>>stream
+xœ�“PÓuÇ?_¾Û÷û¹œË¤é‘¸í¬³ ÉÙAà�‡W˜iri€€‰è„©Ûp?Ôñ{ÀãÃÉ�­ÆX2uâE'þˆ(Y¨]é¥yTzÕÕ•grýñ|¸uÍ®»ú»ÿžçyß=Ïs¯÷ópHƒ8Ž“eëôZsb¦Q_dx˜¯¢Ë8C—ó¤jnãÜ)UÊ‘ñD&é‹—ü¸|�Aý£`]„$—²5×ûÌŽÌÜU «Ó�e6“®¤Ô¢~^³6I]lSÿ£¨7jͺƒze48¢=d,Ók –×túb«Yý÷Xu¦¶Äz¨ÈôßÚ¿Ýþ_„�Ìd¶dìÓnÓe«×§!”…²Ñ”ˆ^F›�½Š’‡–#ZÅ€$¨ýÊ¥rõ1\LaÌ·|_Ë×óýü8xäp—øiªŸ»=÷-�†^a³»¢ÇÁ`C£—ßìpÚ»”½•^g7ÁÁ^ßàÉ#~]‘Ñš¾Sõ“ètgYKª²lqb�§£ÅKð»{TÌ#ºrŽŒZ,§qö@�Ÿ&÷/þð
+¬»±4ö|Ÿ+a¹´VpÖ;›ÄAìîÚ6K»¥ÍLðúÌÜô¬ÐÞ;»T“Nõ™É¡¸=�y›JGf-Ê
+¦éŽw¶º£ƒbóºˆ×ÕïÀ±çï5ú—M_�¼qÉ|r[XÅÐ5£¯2HâÞ»|âÀÚ~¥†íãTânÌðÐNs+ �.�SùzŠ^g(¯mp<ܤ©Ååqá�Ø„�r¢0rq$8~RYÝe=\Qg%qû+®ªàìQN�œ¥¿ù¹û³<œŸ{VÁNn:½Õît<¿]t¥WW¥7âcô´x^’š„ü…‡™¢oÒÜõžæ0¦zÑ}³»{º5
+¨)º×ƒÜÀ]8:ÃÓšIEu³ƒ4\Z×5¦¢×¢Œó+tµ[Ê£ŒÛ[ÚHÁg:ìÅ*¦µ¡²®½3ñ9&e+Øã·’€ÿdÄþ”j«ØÚO�KY§
+ÒÐPc¯-?zØn 8eÇ7°$oÝž¸�Ÿ£’Óíöë`�æèjHUìÚPhØJ2Iá�á²m¤!亂aJ¨ÿÌ>d
+éûûrÉN’oÓêò‹Ë6’u˜)¿Lñ—¯"€F•lV+º¦O�™"S$hìNÂò¹ýUaúg˜;M�‡?æR,‹Å³'YAbhÍD¦j2ã‡}ß ;!TPpßp7;¢Ê¸žN ¸D2FÆláƒo '¶€l¯Ùt$·ÎTn²XJK l9d7)x»d8oìÀ<™¼7zŸýàbàc‚£†Gïzrvñôì 3Kc¯¿µì½Â–¶†Žæ›@lô°5ÙÒÊ(S¯ÛÛÒIâ‚_n¥èz±ÎþJ޽’9�¢Ìb1ÖÁ�ÀÐ�%`P=ôÞOï�rp|–§yï(ÖµV{›oaÚ>!võ•‡ƒ‚Ò¤óS‚ƒ¥IƒB?p}>Ýxb¾IhN®³§8ñ18'Ê£ïG§h%ýY1¯a>©C¤6$ý]d(„ì’FåÛ—T>éqq^ƒÒ§Dˆ°"aQ±ª‡ætBA�0òÈw F<2Ù×­²…ý9>ç
+endstream
+endobj
+11 0 obj
+<</Type/Metadata
+/Subtype/XML/Length 1233>>stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<?adobe-xap-filters esc="CRLF"?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+<rdf:Description rdf:about="" xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.53.3'/>
+<rdf:Description rdf:about="" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2022-05-12T20:31:17+03:00</xmp:ModifyDate>
+<xmp:CreateDate>2022-05-12T20:31:17+03:00</xmp:CreateDate>
+<xmp:CreatorTool>Doxygen</xmp:CreatorTool></rdf:Description>
+<rdf:Description rdf:about="" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:e0ff0276-0a35-11f8-0000-07a3afc5922a'/>
+<rdf:Description rdf:about="" xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>ClassName</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li></rdf:li></rdf:Seq></dc:creator></rdf:Description>
+</rdf:RDF>
+</x:xmpmeta>
+
+
+<?xpacket end='w'?>
+endstream
+endobj
+2 0 obj
+<</Producer(GPL Ghostscript 9.53.3)
+/CreationDate(D:20220512203117+03'00')
+/ModDate(D:20220512203117+03'00')
+/Title(ClassName)
+/Creator(Doxygen)
+/Author()>>endobj
+xref
+0 12
+0000000000 65535 f
+0000000767 00000 n
+0000004058 00000 n
+0000000708 00000 n
+0000000573 00000 n
+0000000228 00000 n
+0000000554 00000 n
+0000000861 00000 n
+0000001210 00000 n
+0000000832 00000 n
+0000001477 00000 n
+0000002748 00000 n
+trailer
+<< /Size 12 /Root 1 0 R /Info 2 0 R
+/ID [<2C91EE083BFA5F7C036C26C82C94FBC4><2C91EE083BFA5F7C036C26C82C94FBC4>]
+>>
+startxref
+4229
+%%EOF
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.tex
new file mode 100644
index 0000000..a363eaf
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classList.tex
@@ -0,0 +1,267 @@
+\hypertarget{classList}{}\doxysection{List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
+\label{classList}\index{List$<$ T $>$@{List$<$ T $>$}}
+
+
+Templated class that stores an array of elements in dynamic memory.
+
+
+
+
+{\ttfamily \#include $<$List.\+hpp$>$}
+
+Inheritance diagram for List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classList}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classList_a93cd36efc12aa5ef5fc28866edce7e61}\label{classList_a93cd36efc12aa5ef5fc28866edce7e61}}
+{\bfseries List} (const T $\ast$elements, unsigned elements\+Count)
+\begin{DoxyCompactList}\small\item\em Copies all elements in given array. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classList_abfec4f2e7990d06c143852ecfdf907bb}{add}} (const T \&element)
+\begin{DoxyCompactList}\small\item\em Adds an element. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classList_ae4586debf72af33bccb3c2fbfce420e8}{insert\+At}} (const T \&element, unsigned index)
+\begin{DoxyCompactList}\small\item\em Inserts element at given index. \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classList_ad9c0a5b5bca6286f458d6fab280de65a}{remove\+At}} (unsigned index)
+\begin{DoxyCompactList}\small\item\em Removes element at index. \end{DoxyCompactList}\item
+unsigned \mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{find\+Index}} (const T \&element) const
+\begin{DoxyCompactList}\small\item\em Finds the index of element. \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}{contain}} (const T \&element) const
+\item
+\mbox{\Hypertarget{classList_a321bb581943398344aad07198d1f02ac}\label{classList_a321bb581943398344aad07198d1f02ac}}
+T \& {\bfseries operator\mbox{[}$\,$\mbox{]}} (unsigned index)
+\begin{DoxyCompactList}\small\item\em Returns reference to element at index. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classList_a5fa582de3aec5094a871852b658cf853}\label{classList_a5fa582de3aec5094a871852b658cf853}}
+const T \& {\bfseries operator\mbox{[}$\,$\mbox{]}} (unsigned index) const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to element at index. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classList_aa4332ce5a589da28528f035ded6d41e5}\label{classList_aa4332ce5a589da28528f035ded6d41e5}}
+\mbox{\hyperlink{classList}{List}}$<$ T $>$ \& {\bfseries operator+=} (const \mbox{\hyperlink{classList}{List}}$<$ T $>$ other)
+\begin{DoxyCompactList}\small\item\em Appends elements from other list. \end{DoxyCompactList}\item
+std\+::istream \& \mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads from stream. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{write}} (std\+::ostream \&ostr) const
+\begin{DoxyCompactList}\small\item\em Writes to stream. \end{DoxyCompactList}\item
+unsigned \mbox{\hyperlink{classList_aa32109b77dccd8241b125ebabdda876c}{get\+\_\+length}} () const
+\begin{DoxyCompactList}\small\item\em Returns the length. \end{DoxyCompactList}\item
+unsigned \mbox{\hyperlink{classList_a3c1e3a3fc085f5b7ae68514c4758687b}{get\+\_\+count}} () const
+\begin{DoxyCompactList}\small\item\em Returns the count. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classList_a248952759645a68a4a1ea5aa31bc089f}\label{classList_a248952759645a68a4a1ea5aa31bc089f}}
+\mbox{\hyperlink{classList}{List}} \& {\bfseries operator=} (const \mbox{\hyperlink{classList}{List}} \&other)
+\item
+\mbox{\Hypertarget{classList_a43ce719b9dcc8aa532bad580c44e99f6}\label{classList_a43ce719b9dcc8aa532bad580c44e99f6}}
+{\bfseries List} (const \mbox{\hyperlink{classList}{List}} \&other)
+\item
+\mbox{\Hypertarget{classList_a25feb644d97345e4f36bf54c7aab4ade}\label{classList_a25feb644d97345e4f36bf54c7aab4ade}}
+{\bfseries List} (\mbox{\hyperlink{classList}{List}} \&\&other)
+\item
+\mbox{\Hypertarget{classList_a3be35847f78c9fdb37c957eff55c1608}\label{classList_a3be35847f78c9fdb37c957eff55c1608}}
+\mbox{\hyperlink{classList}{List}} \& {\bfseries operator=} (\mbox{\hyperlink{classList}{List}} \&\&other)
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classList_a302d78384a6516a4d4dede84d4f0968e}\label{classList_a302d78384a6516a4d4dede84d4f0968e}}
+void {\bfseries resize} ()
+\item
+\mbox{\Hypertarget{classList_a29cb6681b3f5514f747d04661b08cfd6}\label{classList_a29cb6681b3f5514f747d04661b08cfd6}}
+void {\bfseries free} ()
+\item
+\mbox{\Hypertarget{classList_aef2dcec4a271f7ba2f71ef164535e273}\label{classList_aef2dcec4a271f7ba2f71ef164535e273}}
+void {\bfseries copy\+From} (const \mbox{\hyperlink{classList}{List}} \&other)
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classList_ab28a0d67da45b5d3bb755c72105a516c}\label{classList_ab28a0d67da45b5d3bb755c72105a516c}}
+T $\ast$ {\bfseries elements}
+\item
+\mbox{\Hypertarget{classList_af44323f3a486341510ad97b6bceda1be}\label{classList_af44323f3a486341510ad97b6bceda1be}}
+unsigned {\bfseries length}
+\item
+\mbox{\Hypertarget{classList_a66db5f1795dd0530911f32552ddd9815}\label{classList_a66db5f1795dd0530911f32552ddd9815}}
+unsigned {\bfseries count}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\subsubsection*{template$<$typename T$>$\newline
+class List$<$ T $>$}
+Templated class that stores an array of elements in dynamic memory.
+
+\begin{DoxyWarning}{Warning}
+\mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{find\+Index()}}, \mbox{\hyperlink{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}{contain()}}, \mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{read()}}, \mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{write()}}, operator$<$$<$() and operator$>$$>$() require the type to have defined a couple of functions.
+\end{DoxyWarning}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{find\+Index()}}
+
+\mbox{\hyperlink{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}{contain()}}
+
+\mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{read()}}
+
+\mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{write()}}
+
+\mbox{\hyperlink{Date_8h_ad12d4bbc4f7919efdec583d1478a6a76}{operator$<$$<$()}}
+
+\mbox{\hyperlink{Date_8h_ae020cf1772268f1a43d172d3adfc9797}{operator$>$$>$()}}
+\end{DoxySeeAlso}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classList_abfec4f2e7990d06c143852ecfdf907bb}\label{classList_abfec4f2e7990d06c143852ecfdf907bb}}
+\index{List$<$ T $>$@{List$<$ T $>$}!add@{add}}
+\index{add@{add}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{add()}{add()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::add (\begin{DoxyParamCaption}\item[{const T \&}]{element }\end{DoxyParamCaption})}
+
+
+
+Adds an element.
+
+Resizes internal array if there is no space for additional elements. \mbox{\Hypertarget{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}\label{classList_a163a070c7d5dc77ca3c1726b8f2d4bc1}}
+\index{List$<$ T $>$@{List$<$ T $>$}!contain@{contain}}
+\index{contain@{contain}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{contain()}{contain()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+bool \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::contain (\begin{DoxyParamCaption}\item[{const T \&}]{element }\end{DoxyParamCaption}) const}
+
+\begin{DoxyReturn}{Returns}
+Whether the element is contained in the current \mbox{\hyperlink{classList}{List}}
+\end{DoxyReturn}
+\begin{DoxyWarning}{Warning}
+Function depends on \mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{find\+Index()}}, which means the same \char`\"{}compare\char`\"{} function must be defined in the type
+\end{DoxyWarning}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{classList_a3804f03273ef5e339b504e439c5b6534}{find\+Index()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{classList_a3804f03273ef5e339b504e439c5b6534}\label{classList_a3804f03273ef5e339b504e439c5b6534}}
+\index{List$<$ T $>$@{List$<$ T $>$}!findIndex@{findIndex}}
+\index{findIndex@{findIndex}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{findIndex()}{findIndex()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+unsigned \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::find\+Index (\begin{DoxyParamCaption}\item[{const T \&}]{element }\end{DoxyParamCaption}) const}
+
+
+
+Finds the index of element.
+
+\begin{DoxyReturn}{Returns}
+Index of element. If element isn\textquotesingle{}t found, returns the count of element.
+\end{DoxyReturn}
+\begin{DoxyWarning}{Warning}
+The function depends on the type having a function \char`\"{}compare\char`\"{} defined, which takes two elements and returns a number \texorpdfstring{$<$}{<}0 if elem1 \texorpdfstring{$<$}{<} elem2, \texorpdfstring{$>$}{>}0 if elem1 \texorpdfstring{$>$}{>} elem2, 0 if elem1 == elem2
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Searching is done linearly
+\end{DoxyNote}
+\mbox{\Hypertarget{classList_a3c1e3a3fc085f5b7ae68514c4758687b}\label{classList_a3c1e3a3fc085f5b7ae68514c4758687b}}
+\index{List$<$ T $>$@{List$<$ T $>$}!get\_count@{get\_count}}
+\index{get\_count@{get\_count}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{get\_count()}{get\_count()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+unsigned \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::get\+\_\+count}
+
+
+
+Returns the count.
+
+Count is the amount of elements that are stored. \mbox{\Hypertarget{classList_aa32109b77dccd8241b125ebabdda876c}\label{classList_aa32109b77dccd8241b125ebabdda876c}}
+\index{List$<$ T $>$@{List$<$ T $>$}!get\_length@{get\_length}}
+\index{get\_length@{get\_length}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{get\_length()}{get\_length()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+unsigned \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::get\+\_\+length}
+
+
+
+Returns the length.
+
+Length is the size of the underlying array (allocated memory). \mbox{\Hypertarget{classList_ae4586debf72af33bccb3c2fbfce420e8}\label{classList_ae4586debf72af33bccb3c2fbfce420e8}}
+\index{List$<$ T $>$@{List$<$ T $>$}!insertAt@{insertAt}}
+\index{insertAt@{insertAt}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{insertAt()}{insertAt()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::insert\+At (\begin{DoxyParamCaption}\item[{const T \&}]{element, }\item[{unsigned}]{index }\end{DoxyParamCaption})}
+
+
+
+Inserts element at given index.
+
+If index is after the last element, the element is just added. Otherwise all elements after the index are shifted right and element is put in place.
+
+Resizes internal array if there is no space for additional elements. \mbox{\Hypertarget{classList_a5e3581ee07649f462aa8bb3221a5466e}\label{classList_a5e3581ee07649f462aa8bb3221a5466e}}
+\index{List$<$ T $>$@{List$<$ T $>$}!read@{read}}
+\index{read@{read}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+std\+::istream \& \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classList_a5e3581ee07649f462aa8bb3221a5466e}{read()}} function). Any stored values are deleted and replaced with those from the stream.
+
+\begin{DoxyWarning}{Warning}
+The function depends on the type having a function \char`\"{}read\char`\"{} defined, which takes an std\+::istream\& and writes it\textquotesingle{}s data to it. Return type doesn\textquotesingle{}t matter.
+\end{DoxyWarning}
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classList_ad9c0a5b5bca6286f458d6fab280de65a}\label{classList_ad9c0a5b5bca6286f458d6fab280de65a}}
+\index{List$<$ T $>$@{List$<$ T $>$}!removeAt@{removeAt}}
+\index{removeAt@{removeAt}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{removeAt()}{removeAt()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+bool \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::remove\+At (\begin{DoxyParamCaption}\item[{unsigned}]{index }\end{DoxyParamCaption})}
+
+
+
+Removes element at index.
+
+\begin{DoxyReturn}{Returns}
+Wether element could be removed
+\end{DoxyReturn}
+If index is after that of the last element, nothing is done and false is returned. Otherwise elements after index are shifted right and count is reduced. \mbox{\Hypertarget{classList_a8d2babffd2fb4a5e0a40dbd306e19956}\label{classList_a8d2babffd2fb4a5e0a40dbd306e19956}}
+\index{List$<$ T $>$@{List$<$ T $>$}!write@{write}}
+\index{write@{write}!List$<$ T $>$@{List$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+std\+::ostream \& \mbox{\hyperlink{classList}{List}}$<$ T $>$\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption}) const}
+
+
+
+Writes to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classList_a8d2babffd2fb4a5e0a40dbd306e19956}{write()}} function).
+
+\begin{DoxyWarning}{Warning}
+The function depends on the type having a function \char`\"{}write\char`\"{} defined, which takes an std\+::ostream\& and writes it\textquotesingle{}s data to it. Return type doesn\textquotesingle{}t matter.
+\end{DoxyWarning}
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+List/\mbox{\hyperlink{List_8hpp}{List.\+hpp}}\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classMenu.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classMenu.tex
new file mode 100644
index 0000000..3157f01
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classMenu.tex
@@ -0,0 +1,156 @@
+\hypertarget{classMenu}{}\doxysection{Menu Class Reference}
+\label{classMenu}\index{Menu@{Menu}}
+
+
+Handles navigation between multiple commands.
+
+
+
+
+{\ttfamily \#include $<$Menu.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classMenu_ad466dd83355124a6ed958430450bfe94}\label{classMenu_ad466dd83355124a6ed958430450bfe94}}
+{\bfseries Menu} ()
+\begin{DoxyCompactList}\small\item\em Sets name as \char`\"{}\+Menu\char`\"{}, leaves all flags to false and creates an empty \mbox{\hyperlink{classCommand}{Command}} list. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classMenu_aeec919379638ad526df5167ed755a1f3}{Menu}} (const char $\ast$title, bool back\+Exists\+App, bool is\+Sub\+Menu)
+\begin{DoxyCompactList}\small\item\em Copies title, saves flags and creates and empty \mbox{\hyperlink{classCommand}{Command}} list. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classMenu_a12057ad84f3a9d41bc7092cc2d86c87a}{Menu}} (const char $\ast$title, bool back\+Exists\+App, bool is\+Sub\+Menu, const \mbox{\hyperlink{classCommand}{Command}} $\ast$commands, unsigned command\+Count)
+\begin{DoxyCompactList}\small\item\em Copies title, saves flags and copies commands. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classMenu_a1f022cc8b705369073f8fd7b90b30c8d}\label{classMenu_a1f022cc8b705369073f8fd7b90b30c8d}}
+void {\bfseries add\+Command} (const \mbox{\hyperlink{classCommand}{Command}} \&command)
+\begin{DoxyCompactList}\small\item\em Adds a command to the internal \mbox{\hyperlink{classCommand}{Command}} list. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classMenu_aad506cb9a7f35dea98c60484bb2d095c}{register\+Error}} (const char $\ast$message) const
+\begin{DoxyCompactList}\small\item\em Tell \mbox{\hyperlink{classMenu}{Menu}} to show an error message next time it prints. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classMenu_a5350b1addf9bf365351486cd161696ad}{register\+Warning}} (const char $\ast$message) const
+\begin{DoxyCompactList}\small\item\em Tell \mbox{\hyperlink{classMenu}{Menu}} to show a warning message next time it prints. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classMenu_a3504e28b5d05e1ad70dada190bbc3a9c}{register\+Success}} (const char $\ast$message) const
+\begin{DoxyCompactList}\small\item\em Tell \mbox{\hyperlink{classMenu}{Menu}} to show a success message next time it prints. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classMenu_a0400751da7f8583029b7a12d3003c36d}{navigate}} () const
+\begin{DoxyCompactList}\small\item\em Lists commands and after user input executes an appropriate command run() function. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Handles navigation between multiple commands.
+
+Shows the title, then below it an Error/\+Warning/\+Success message if set, lists all command options as an enumerated list, takes command index and calls the chosen command\textquotesingle{}s run() function.
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classMenu_aeec919379638ad526df5167ed755a1f3}\label{classMenu_aeec919379638ad526df5167ed755a1f3}}
+\index{Menu@{Menu}!Menu@{Menu}}
+\index{Menu@{Menu}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{Menu()}{Menu()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily Menu\+::\+Menu (\begin{DoxyParamCaption}\item[{const char $\ast$}]{title, }\item[{bool}]{back\+Exists\+App, }\item[{bool}]{is\+Sub\+Menu }\end{DoxyParamCaption})}
+
+
+
+Copies title, saves flags and creates and empty \mbox{\hyperlink{classCommand}{Command}} list.
+
+
+\begin{DoxyParams}{Parameters}
+{\em title} & C-\/style string, class stores at most 255 characters (last character is always terminating zero) \\
+\hline
+{\em back\+Exists\+App} & Flag whether or not to list the 0-\/th option as \char`\"{}\+Exit\char`\"{}, rather than \char`\"{}\+Go Back\char`\"{} \\
+\hline
+{\em is\+Sub\+Menu} & Flag whether or not to show the title as a sub\+Title or not \\
+\hline
+\end{DoxyParams}
+\mbox{\Hypertarget{classMenu_a12057ad84f3a9d41bc7092cc2d86c87a}\label{classMenu_a12057ad84f3a9d41bc7092cc2d86c87a}}
+\index{Menu@{Menu}!Menu@{Menu}}
+\index{Menu@{Menu}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{Menu()}{Menu()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily Menu\+::\+Menu (\begin{DoxyParamCaption}\item[{const char $\ast$}]{title, }\item[{bool}]{back\+Exists\+App, }\item[{bool}]{is\+Sub\+Menu, }\item[{const \mbox{\hyperlink{classCommand}{Command}} $\ast$}]{commands, }\item[{unsigned}]{command\+Count }\end{DoxyParamCaption})}
+
+
+
+Copies title, saves flags and copies commands.
+
+
+\begin{DoxyParams}{Parameters}
+{\em title} & C-\/style string, class stores at most 255 characters (last character is always terminating zero) \\
+\hline
+{\em back\+Exists\+App} & Flag whether or not to list the 0-\/th option as \char`\"{}\+Exit\char`\"{}, rather than \char`\"{}\+Go Back\char`\"{} \\
+\hline
+{\em is\+Sub\+Menu} & Flag whether or not to show the title as a sub\+Title or not \\
+\hline
+{\em commands} & Pointer to an array of \mbox{\hyperlink{classCommand}{Command}} instances \\
+\hline
+{\em command\+Count} & Number of elements that \char`\"{}commands\char`\"{} points to \\
+\hline
+\end{DoxyParams}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classMenu_a0400751da7f8583029b7a12d3003c36d}\label{classMenu_a0400751da7f8583029b7a12d3003c36d}}
+\index{Menu@{Menu}!navigate@{navigate}}
+\index{navigate@{navigate}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{navigate()}{navigate()}}
+{\footnotesize\ttfamily void Menu\+::navigate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+Lists commands and after user input executes an appropriate command run() function.
+
+Prints the title, then an Error/\+Warning/\+Sucess message (if set), prints all command names as an ordered list (starting from 1), waits for user input to select one of those commands (by list number) and finally executes the appropriate command\textquotesingle{}s run() function.
+
+After the run() function exists, everything is reprinted. The 0 list index is always \char`\"{}\+Go Back\char`\"{}/\char`\"{}\+Exit\char`\"{} and it always stops the reprinting loop.
+
+If there are no commands, prints \char`\"{}\+Menu is empty!\char`\"{}. If user input doesn\textquotesingle{}t correspond to any command, registers an error message and reprints. \mbox{\Hypertarget{classMenu_aad506cb9a7f35dea98c60484bb2d095c}\label{classMenu_aad506cb9a7f35dea98c60484bb2d095c}}
+\index{Menu@{Menu}!registerError@{registerError}}
+\index{registerError@{registerError}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{registerError()}{registerError()}}
+{\footnotesize\ttfamily void Menu\+::register\+Error (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption}) const}
+
+
+
+Tell \mbox{\hyperlink{classMenu}{Menu}} to show an error message next time it prints.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, saves to pointer for later reuse when showing the message.\\
+\hline
+\end{DoxyParams}
+Stores the message pointer in a global variable (in the cpp file) and sets it\textquotesingle{}s type as an Error in another global variable (in the cpp file).
+
+The next time the whole \mbox{\hyperlink{classMenu}{Menu}} is shown, the message will appear below the title. \mbox{\Hypertarget{classMenu_a3504e28b5d05e1ad70dada190bbc3a9c}\label{classMenu_a3504e28b5d05e1ad70dada190bbc3a9c}}
+\index{Menu@{Menu}!registerSuccess@{registerSuccess}}
+\index{registerSuccess@{registerSuccess}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{registerSuccess()}{registerSuccess()}}
+{\footnotesize\ttfamily void Menu\+::register\+Success (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption}) const}
+
+
+
+Tell \mbox{\hyperlink{classMenu}{Menu}} to show a success message next time it prints.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, saves to pointer for later reuse when showing the message.\\
+\hline
+\end{DoxyParams}
+Stores the message pointer in a global variable (in the cpp file) and sets it\textquotesingle{}s type as Success in another global variable (in the cpp file).
+
+The next time the whole \mbox{\hyperlink{classMenu}{Menu}} is shown, the message will appear below the title. \mbox{\Hypertarget{classMenu_a5350b1addf9bf365351486cd161696ad}\label{classMenu_a5350b1addf9bf365351486cd161696ad}}
+\index{Menu@{Menu}!registerWarning@{registerWarning}}
+\index{registerWarning@{registerWarning}!Menu@{Menu}}
+\doxysubsubsection{\texorpdfstring{registerWarning()}{registerWarning()}}
+{\footnotesize\ttfamily void Menu\+::register\+Warning (\begin{DoxyParamCaption}\item[{const char $\ast$}]{message }\end{DoxyParamCaption}) const}
+
+
+
+Tell \mbox{\hyperlink{classMenu}{Menu}} to show a warning message next time it prints.
+
+
+\begin{DoxyParams}{Parameters}
+{\em message} & C-\/style string, saves to pointer for later reuse when showing the message.\\
+\hline
+\end{DoxyParams}
+Stores the message pointer in a global variable (in the cpp file) and sets it\textquotesingle{}s type as a Warning in another global variable (in the cpp file).
+
+The next time the whole \mbox{\hyperlink{classMenu}{Menu}} is shown, the message will appear below the title.
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+Console\+Interface/\mbox{\hyperlink{Menu_8h}{Menu.\+h}}\item
+src/\+Generic/\+Console\+Interface/Menu.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.eps b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.eps
new file mode 100644
index 0000000..7003121
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 338.983063
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.475000 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(OrderedList< T >) cw
+(List< T >) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (OrderedList< T >) 0.000000 0.000000 box
+ (List< T >) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.pdf b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.pdf
new file mode 100644
index 0000000..b49d530
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.pdf
@@ -0,0 +1,117 @@
+%PDF-1.5
+%Çì�¢
+%%Invocation: gs -q -dSAFER -dNOPAUSE -dBATCH -dCompatibilityLevel=1.5 -sDEVICE=pdfwrite -sOutputFile=? -dPDFSETTINGS#/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoRotatePages#/None -
+5 0 obj
+<</Length 6 0 R/Filter /FlateDecode>>
+stream
+xœ•�ÏNÃ0 Æï~
+�ƒqœ¤n$Ä qABƒ¼Áþ´6�öú8mÊ:mÔCl볿_¿=29äòÕwÙãöà†)ÖgÙãS†ûwÅÆ“Du˜70n8”†|Œ }C s7o‡Õú°^½~~ÿ<`ÆÇÛüÏ…Ô�G3y�=Nþœ{ˆÌ¥Ø�…ãH’µçutÔLƒšu²Í\ü�ÜI¢d# Ju€¿¤¾Â)Ž[²…J;µ•Ù»F¨mÎy}’uà•™¼k/ú!J:^šJœ¥1µ±udyîÆ_¿¾R5µ=1 ~óQQh"Vtm²@œ‰$SòóÉù•6w–Ñ/W1uUendstream
+endobj
+6 0 obj
+260
+endobj
+4 0 obj
+<</Type/Page/MediaBox [0 0 500 338.98]
+/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/Font 9 0 R
+>>
+/Contents 5 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+4 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+/Metadata 11 0 R
+>>
+endobj
+9 0 obj
+<</R7
+7 0 R>>
+endobj
+7 0 obj
+<</BaseFont/RTBSIO+Times-Roman/FontDescriptor 8 0 R/Type/Font
+/FirstChar 32/LastChar 116/Widths[
+250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 564 0 564 0
+0 0 0 0 0 0 0 0 0 0 0 0 611 0 0 722
+0 0 0 0 611 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 500 444 0 0 0 278 0 0 0 0 0 0
+0 0 333 389 278]
+/Encoding/WinAnsiEncoding/Subtype/Type1>>
+endobj
+8 0 obj
+<</Type/FontDescriptor/FontName/RTBSIO+Times-Roman/FontBBox[0 -14 688 683]/Flags 131104
+/Ascent 683
+/CapHeight 676
+/Descent -14
+/ItalicAngle 0
+/StemV 103
+/MissingWidth 250
+/XHeight 460
+/CharSet(/L/O/T/d/e/greater/i/less/r/s/space/t)/FontFile3 10 0 R>>
+endobj
+10 0 obj
+<</Filter/FlateDecode
+/Subtype/Type1C/Length 1186>>stream
+xœ�“PÓuÇ?_¾Û÷û¹œË¤é‘¸í¬³ ÉÙAà�‡W˜iri€€‰è„©Ûp?Ôñ{ÀãÃÉ�­ÆX2uâE'þˆ(Y¨]é¥yTzÕÕ•grýñ|¸uÍ®»ú»ÿžçyß=Ïs¯÷ópHƒ8Ž“eëôZsb¦Q_dx˜¯¢Ë8C—ó¤jnãÜ)UÊ‘ñD&é‹—ü¸|�Aý£`]„$—²5×ûÌŽÌÜU «Ó�e6“®¤Ô¢~^³6I]lSÿ£¨7jͺƒze48¢=d,Ók –×túb«Yý÷Xu¦¶Äz¨ÈôßÚ¿Ýþ_„�Ìd¶dìÓnÓe«×§!”…²Ñ”ˆ^F›�½Š’‡–#ZÅ€$¨ýÊ¥rõ1\LaÌ·|_Ë×óýü8xäp—øiªŸ»=÷-�†^a³»¢ÇÁ`C£—ßìpÚ»”½•^g7ÁÁ^ßàÉ#~]‘Ñš¾Sõ“ètgYKª²lqb�§£ÅKð»{TÌ#ºrŽŒZ,§qö@�Ÿ&÷/þð
+¬»±4ö|Ÿ+a¹´VpÖ;›ÄAìîÚ6K»¥ÍLðúÌÜô¬ÐÞ;»T“Nõ™É¡¸=�y›JGf-Ê
+¦éŽw¶º£ƒbóºˆ×ÕïÀ±çï5ú—M_�¼qÉ|r[XÅÐ5£¯2HâÞ»|âÀÚ~¥†íãTânÌðÐNs+ �.�SùzŠ^g(¯mp<ܤ©Ååqá�Ø„�r¢0rq$8~RYÝe=\Qg%qû+®ªàìQN�œ¥¿ù¹û³<œŸ{VÁNn:½Õît<¿]t¥WW¥7âcô´x^’š„ü…‡™¢oÒÜõžæ0¦zÑ}³»{º5
+¨)º×ƒÜÀ]8:ÃÓšIEu³ƒ4\Z×5¦¢×¢Œó+tµ[Ê£ŒÛ[ÚHÁg:ìÅ*¦µ¡²®½3ñ9&e+Øã·’€ÿdÄþ”j«ØÚO�KY§
+ÒÐPc¯-?zØn 8eÇ7°$oÝž¸�Ÿ£’Óíöë`�æèjHUìÚPhØJ2Iá�á²m¤!亂aJ¨ÿÌ>d
+éûûrÉN’oÓêò‹Ë6’u˜)¿Lñ—¯"€F•lV+º¦O�™"S$hìNÂò¹ýUaúg˜;M�‡?æR,‹Å³'YAbhÍD¦j2ã‡}ß ;!TPpßp7;¢Ê¸žN ¸D2FÆláƒo '¶€l¯Ùt$·ÎTn²XJK l9d7)x»d8oìÀ<™¼7zŸýàbàc‚£†Gïzrvñôì 3Kc¯¿µì½Â–¶†Žæ›@lô°5ÙÒÊ(S¯ÛÛÒIâ‚_n¥èz±ÎþJ޽’9�¢Ìb1ÖÁ�ÀÐ�%`P=ôÞOï�rp|–§yï(ÖµV{›oaÚ>!võ•‡ƒ‚Ò¤óS‚ƒ¥IƒB?p}>Ýxb¾IhN®³§8ñ18'Ê£ïG§h%ýY1¯a>©C¤6$ý]d(„ì’FåÛ—T>éqq^ƒÒ§Dˆ°"aQ±ª‡ætBA�0òÈw F<2Ù×­²…ý9>ç
+endstream
+endobj
+11 0 obj
+<</Type/Metadata
+/Subtype/XML/Length 1233>>stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<?adobe-xap-filters esc="CRLF"?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+<rdf:Description rdf:about="" xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.53.3'/>
+<rdf:Description rdf:about="" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2022-05-12T20:31:17+03:00</xmp:ModifyDate>
+<xmp:CreateDate>2022-05-12T20:31:17+03:00</xmp:CreateDate>
+<xmp:CreatorTool>Doxygen</xmp:CreatorTool></rdf:Description>
+<rdf:Description rdf:about="" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:e0ff0276-0a35-11f8-0000-265b83144446'/>
+<rdf:Description rdf:about="" xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>ClassName</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li></rdf:li></rdf:Seq></dc:creator></rdf:Description>
+</rdf:RDF>
+</x:xmpmeta>
+
+
+<?xpacket end='w'?>
+endstream
+endobj
+2 0 obj
+<</Producer(GPL Ghostscript 9.53.3)
+/CreationDate(D:20220512203117+03'00')
+/ModDate(D:20220512203117+03'00')
+/Title(ClassName)
+/Creator(Doxygen)
+/Author()>>endobj
+xref
+0 12
+0000000000 65535 f
+0000000771 00000 n
+0000004062 00000 n
+0000000712 00000 n
+0000000577 00000 n
+0000000228 00000 n
+0000000558 00000 n
+0000000865 00000 n
+0000001214 00000 n
+0000000836 00000 n
+0000001481 00000 n
+0000002752 00000 n
+trailer
+<< /Size 12 /Root 1 0 R /Info 2 0 R
+/ID [<497BA3445BC612F34C75267FB1F523CD><497BA3445BC612F34C75267FB1F523CD>]
+>>
+startxref
+4233
+%%EOF
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.tex
new file mode 100644
index 0000000..750b447
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classOrderedList.tex
@@ -0,0 +1,94 @@
+\hypertarget{classOrderedList}{}\doxysection{Ordered\+List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
+\label{classOrderedList}\index{OrderedList$<$ T $>$@{OrderedList$<$ T $>$}}
+
+
+Inherits \mbox{\hyperlink{classList}{List}}, but contains it\textquotesingle{}s elements in a sorted manner.
+
+
+
+
+{\ttfamily \#include $<$Ordered\+List.\+hpp$>$}
+
+Inheritance diagram for Ordered\+List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classOrderedList}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classOrderedList_a736559aa9cd4d085e4bc76ae2c751097}\label{classOrderedList_a736559aa9cd4d085e4bc76ae2c751097}}
+{\bfseries Ordered\+List} (const T $\ast$elements, unsigned elements\+Count)
+\item
+void \mbox{\hyperlink{classOrderedList_a8b2748c3cdefe4869e0d7a2fc9b4b2cd}{add}} (T element)=delete
+\item
+void \mbox{\hyperlink{classOrderedList_a45af729846bacc77fc8292e5d0690f99}{insert\+At}} (T element, unsigned index)=delete
+\item
+void \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert}} (T element)
+\begin{DoxyCompactList}\small\item\em Inserts an element at a sorted position. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+\subsubsection*{template$<$typename T$>$\newline
+class Ordered\+List$<$ T $>$}
+Inherits \mbox{\hyperlink{classList}{List}}, but contains it\textquotesingle{}s elements in a sorted manner.
+
+\begin{DoxyWarning}{Warning}
+Outside those defined in \mbox{\hyperlink{classList}{List}}, \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}} requires the type to have defined a \char`\"{}compare\char`\"{} of functions.
+\end{DoxyWarning}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}}
+\end{DoxySeeAlso}
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classOrderedList_a8b2748c3cdefe4869e0d7a2fc9b4b2cd}\label{classOrderedList_a8b2748c3cdefe4869e0d7a2fc9b4b2cd}}
+\index{OrderedList$<$ T $>$@{OrderedList$<$ T $>$}!add@{add}}
+\index{add@{add}!OrderedList$<$ T $>$@{OrderedList$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{add()}{add()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ T $>$\+::add (\begin{DoxyParamCaption}\item[{T}]{element }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
+
+\begin{DoxyWarning}{Warning}
+Function is deleted, use \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}} instead
+\end{DoxyWarning}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}}
+\end{DoxySeeAlso}
+\mbox{\Hypertarget{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}\label{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}}
+\index{OrderedList$<$ T $>$@{OrderedList$<$ T $>$}!insert@{insert}}
+\index{insert@{insert}!OrderedList$<$ T $>$@{OrderedList$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{insert()}{insert()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ T $>$\+::insert (\begin{DoxyParamCaption}\item[{T}]{element }\end{DoxyParamCaption})}
+
+
+
+Inserts an element at a sorted position.
+
+\begin{DoxyWarning}{Warning}
+The function depends on the type having a function \char`\"{}compare\char`\"{} defined, which takes two elements and returns a number \texorpdfstring{$<$}{<}0 if elem1 \texorpdfstring{$<$}{<} elem2, \texorpdfstring{$>$}{>}0 if elem1 \texorpdfstring{$>$}{>} elem2, 0 if elem1 == elem2
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Insertion is done linearly
+\end{DoxyNote}
+\mbox{\Hypertarget{classOrderedList_a45af729846bacc77fc8292e5d0690f99}\label{classOrderedList_a45af729846bacc77fc8292e5d0690f99}}
+\index{OrderedList$<$ T $>$@{OrderedList$<$ T $>$}!insertAt@{insertAt}}
+\index{insertAt@{insertAt}!OrderedList$<$ T $>$@{OrderedList$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{insertAt()}{insertAt()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classOrderedList}{Ordered\+List}}$<$ T $>$\+::insert\+At (\begin{DoxyParamCaption}\item[{T}]{element, }\item[{unsigned}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
+
+\begin{DoxyWarning}{Warning}
+Function is deleted, use \mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}} instead
+\end{DoxyWarning}
+\begin{DoxySeeAlso}{See also}
+\mbox{\hyperlink{classOrderedList_a1132cd9c92901e9b9950a4a409b0fc8b}{insert()}}
+\end{DoxySeeAlso}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+List/\mbox{\hyperlink{OrderedList_8hpp}{Ordered\+List.\+hpp}}\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classReservation.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classReservation.tex
new file mode 100644
index 0000000..ffe6aaa
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classReservation.tex
@@ -0,0 +1,149 @@
+\hypertarget{classReservation}{}\doxysection{Reservation Class Reference}
+\label{classReservation}\index{Reservation@{Reservation}}
+
+
+Each Reservations contains a ticket, a password and a note.
+
+
+
+
+{\ttfamily \#include $<$Reservation.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classReservation_a63b283053695e6f50fa44c50da2b3de5}\label{classReservation_a63b283053695e6f50fa44c50da2b3de5}}
+{\bfseries Reservation} ()
+\begin{DoxyCompactList}\small\item\em Sets ticket as default value and leaves password and note blank. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classReservation_a7320a032f87c7d45cf287a146c73695c}\label{classReservation_a7320a032f87c7d45cf287a146c73695c}}
+{\bfseries Reservation} (const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket)
+\begin{DoxyCompactList}\small\item\em Sets ticket and leaves password and note blank. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classReservation_ac6fdecd9bc06f3de2e28129ab370f4f7}\label{classReservation_ac6fdecd9bc06f3de2e28129ab370f4f7}}
+{\bfseries Reservation} (const \mbox{\hyperlink{classTicket}{Ticket}} \&ticket, const char $\ast$password, const char $\ast$note)
+\begin{DoxyCompactList}\small\item\em Sets ticket, password and note. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classReservation_af1b95b3d7c46f506dec4d275d6821cdb}\label{classReservation_af1b95b3d7c46f506dec4d275d6821cdb}}
+const \mbox{\hyperlink{classTicket}{Ticket}} \& {\bfseries get\+\_\+ticket} () const
+\begin{DoxyCompactList}\small\item\em Returns constant reference to ticket. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classReservation_aa34cd16a057a4a483e569ec5d7527ad9}\label{classReservation_aa34cd16a057a4a483e569ec5d7527ad9}}
+const char $\ast$ {\bfseries get\+\_\+password} () const
+\begin{DoxyCompactList}\small\item\em Returns constant C-\/style string to password. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classReservation_a2285881510bf07f469bf360bb1050f12}\label{classReservation_a2285881510bf07f469bf360bb1050f12}}
+const char $\ast$ {\bfseries get\+\_\+note} () const
+\begin{DoxyCompactList}\small\item\em Returns constant C-\/style string to note. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classReservation_a03f0d1a522edb2c5fba7538f0c879573}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classReservation}{Reservation}} from stream. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}{write}} (std\+::ostream \&ostr) const
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classReservation}{Reservation}} to stream. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classReservation_a31cc66beeaf85befe2185dfc88086d38}{compare}} (const \mbox{\hyperlink{classReservation}{Reservation}} \&other) const
+\begin{DoxyCompactList}\small\item\em Compares two Reservations. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{classReservation_a2b7331e532f77bbc67eab217bfeb1f25}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classReservation}{Reservation}} \&reservation)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classReservation}{Reservation}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{classReservation_abf734c0a55da55ef89dab1e2f12b8ebd}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classReservation}{Reservation}} \&reservation)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classReservation}{Reservation}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Each Reservations contains a ticket, a password and a note.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classReservation_a31cc66beeaf85befe2185dfc88086d38}\label{classReservation_a31cc66beeaf85befe2185dfc88086d38}}
+\index{Reservation@{Reservation}!compare@{compare}}
+\index{compare@{compare}!Reservation@{Reservation}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int Reservation\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classReservation}{Reservation}} \&}]{other }\end{DoxyParamCaption}) const}
+
+
+
+Compares two Reservations.
+
+\begin{DoxyReturn}{Returns}
+Compares tickets
+\end{DoxyReturn}
+\mbox{\Hypertarget{classReservation_a03f0d1a522edb2c5fba7538f0c879573}\label{classReservation_a03f0d1a522edb2c5fba7538f0c879573}}
+\index{Reservation@{Reservation}!read@{read}}
+\index{read@{read}!Reservation@{Reservation}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void Reservation\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classReservation}{Reservation}} from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classReservation_a03f0d1a522edb2c5fba7538f0c879573}{read()}} function). Uses ticket\textquotesingle{}s \mbox{\hyperlink{classReservation_a03f0d1a522edb2c5fba7538f0c879573}{read()}} function.
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}\label{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}}
+\index{Reservation@{Reservation}!write@{write}}
+\index{write@{write}!Reservation@{Reservation}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void Reservation\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption}) const}
+
+
+
+Writes \mbox{\hyperlink{classReservation}{Reservation}} to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}{write()}} function). Uses ticket\textquotesingle{}s \mbox{\hyperlink{classReservation_a1aba46b8e181750bd89fdfca6ff8ba32}{write()}} function.
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{classReservation_abf734c0a55da55ef89dab1e2f12b8ebd}\label{classReservation_abf734c0a55da55ef89dab1e2f12b8ebd}}
+\index{Reservation@{Reservation}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!Reservation@{Reservation}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classReservation}{Reservation}} \&}]{reservation }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Writes \mbox{\hyperlink{classReservation}{Reservation}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write the ticket only.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classReservation_a2b7331e532f77bbc67eab217bfeb1f25}\label{classReservation_a2b7331e532f77bbc67eab217bfeb1f25}}
+\index{Reservation@{Reservation}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!Reservation@{Reservation}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$}{operator>>}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classReservation}{Reservation}} \&}]{reservation }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Reads \mbox{\hyperlink{classReservation}{Reservation}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator to read and parse the ticket. Password and note are left blank.
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Models/\mbox{\hyperlink{Reservation_8h}{Reservation.\+h}}\item
+src/\+Models/Reservation.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classString.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classString.tex
new file mode 100644
index 0000000..d0d0396
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classString.tex
@@ -0,0 +1,194 @@
+\hypertarget{classString}{}\doxysection{String Class Reference}
+\label{classString}\index{String@{String}}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\hyperlink{classString_ad3d65397e27bb3c4db1295208cfb1559}{String}} (unsigned length)
+\begin{DoxyCompactList}\small\item\em The underlying array is allocated with length (+ 1) size. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classString_a3fba40cf6cb11735ffddc355a5ff68f4}{String}} (const char $\ast$str)
+\begin{DoxyCompactList}\small\item\em Copies str. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classString_a3d7f953737f3d4dca72d1cc4836f7dcc}\label{classString_a3d7f953737f3d4dca72d1cc4836f7dcc}}
+const char $\ast$ {\bfseries get\+\_\+cstr} () const
+\begin{DoxyCompactList}\small\item\em Returns internal C-\/style string. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classString_a7793a7e9a7601d4c724dcc85566259bf}\label{classString_a7793a7e9a7601d4c724dcc85566259bf}}
+unsigned {\bfseries get\+\_\+length} () const
+\begin{DoxyCompactList}\small\item\em Returns number of characters in string. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classString_a5d3b77a51619a8580a373d2cd1092a54}\label{classString_a5d3b77a51619a8580a373d2cd1092a54}}
+char \& {\bfseries operator\mbox{[}$\,$\mbox{]}} (unsigned index)
+\begin{DoxyCompactList}\small\item\em Returns a character reference (from the underlying C-\/style string) at the given index. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classString}{String}} \& \mbox{\hyperlink{classString_a64de9ab1af5df9397f8fbd8c79d5f4b6}{operator+=}} (const char $\ast$str)
+\begin{DoxyCompactList}\small\item\em Appends a C-\/style string. \end{DoxyCompactList}\item
+\mbox{\hyperlink{classString}{String}} \& \mbox{\hyperlink{classString_aed8480111703abc1f281148c778b0445}{operator+=}} (unsigned number)
+\begin{DoxyCompactList}\small\item\em Appends a number. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classString_afc158dffcdf56e601bd640cbacdfcd3c}\label{classString_afc158dffcdf56e601bd640cbacdfcd3c}}
+{\bfseries String} (const \mbox{\hyperlink{classString}{String}} \&other)
+\item
+\mbox{\Hypertarget{classString_a734f34a0b7a42bcad30c368d6e8c5469}\label{classString_a734f34a0b7a42bcad30c368d6e8c5469}}
+\mbox{\hyperlink{classString}{String}} \& {\bfseries operator=} (const \mbox{\hyperlink{classString}{String}} \&other)
+\item
+\mbox{\Hypertarget{classString_a553fcc11563b3d0f5c020309e8b68843}\label{classString_a553fcc11563b3d0f5c020309e8b68843}}
+{\bfseries String} (\mbox{\hyperlink{classString}{String}} \&\&other)
+\item
+\mbox{\Hypertarget{classString_a3c0ede83ee25c89959a0c4369166d98a}\label{classString_a3c0ede83ee25c89959a0c4369166d98a}}
+\mbox{\hyperlink{classString}{String}} \& {\bfseries operator=} (\mbox{\hyperlink{classString}{String}} \&\&other)
+\item
+void \mbox{\hyperlink{classString_ad76bb9eca15651c67332808cdaad6344}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classString}{String}} from stream. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classString_a7b0ea809587c21bc1d2b87bfee53e628}{write}} (std\+::ostream \&ostr) const
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classString}{String}} to stream. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classString_a3f420d69fbe3de91711dc69148d23cc7}{compare}} (const \mbox{\hyperlink{classString}{String}} \&other) const
+\begin{DoxyCompactList}\small\item\em Compares two strings. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item
+std\+::istream \& \mbox{\hyperlink{classString_a1918adea635f3f340dbecd6fb05341f8}{operator$>$$>$}} (std\+::istream \&istr, \mbox{\hyperlink{classString}{String}} \&event)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classString}{String}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator. \end{DoxyCompactList}\item
+std\+::ostream \& \mbox{\hyperlink{classString_aa00d824f40064ff356aa7c15d6a9da12}{operator$<$$<$}} (std\+::ostream \&ostr, const \mbox{\hyperlink{classString}{String}} \&event)
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classString}{String}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classString_ad3d65397e27bb3c4db1295208cfb1559}\label{classString_ad3d65397e27bb3c4db1295208cfb1559}}
+\index{String@{String}!String@{String}}
+\index{String@{String}!String@{String}}
+\doxysubsubsection{\texorpdfstring{String()}{String()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily String\+::\+String (\begin{DoxyParamCaption}\item[{unsigned}]{length }\end{DoxyParamCaption})}
+
+
+
+The underlying array is allocated with length (+ 1) size.
+
+Allocated with length + 1 size, so there is a terminating zero at the end. \mbox{\Hypertarget{classString_a3fba40cf6cb11735ffddc355a5ff68f4}\label{classString_a3fba40cf6cb11735ffddc355a5ff68f4}}
+\index{String@{String}!String@{String}}
+\index{String@{String}!String@{String}}
+\doxysubsubsection{\texorpdfstring{String()}{String()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily String\+::\+String (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}
+
+
+
+Copies str.
+
+\textbackslash{}params str C-\/style string
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classString_a3f420d69fbe3de91711dc69148d23cc7}\label{classString_a3f420d69fbe3de91711dc69148d23cc7}}
+\index{String@{String}!compare@{compare}}
+\index{compare@{compare}!String@{String}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int String\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classString}{String}} \&}]{other }\end{DoxyParamCaption}) const}
+
+
+
+Compares two strings.
+
+\textbackslash{}params other C-\/style string \begin{DoxyReturn}{Returns}
+strcmp between underlying C-\/style string and \char`\"{}other\char`\"{}
+\end{DoxyReturn}
+\mbox{\Hypertarget{classString_a64de9ab1af5df9397f8fbd8c79d5f4b6}\label{classString_a64de9ab1af5df9397f8fbd8c79d5f4b6}}
+\index{String@{String}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!String@{String}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classString}{String}} \& String\+::operator+= (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}
+
+
+
+Appends a C-\/style string.
+
+\textbackslash{}params str C-\/style string \mbox{\Hypertarget{classString_aed8480111703abc1f281148c778b0445}\label{classString_aed8480111703abc1f281148c778b0445}}
+\index{String@{String}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!String@{String}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classString}{String}} \& String\+::operator+= (\begin{DoxyParamCaption}\item[{unsigned}]{number }\end{DoxyParamCaption})}
+
+
+
+Appends a number.
+
+Converts the number to a C-\/style string and then uses += to append it. \mbox{\Hypertarget{classString_ad76bb9eca15651c67332808cdaad6344}\label{classString_ad76bb9eca15651c67332808cdaad6344}}
+\index{String@{String}!read@{read}}
+\index{read@{read}!String@{String}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void String\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classString}{String}} from stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classString_ad76bb9eca15651c67332808cdaad6344}{read()}} function). First reads the string length, then the underlying C-\/style string (including terminating zero).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classString_a7b0ea809587c21bc1d2b87bfee53e628}\label{classString_a7b0ea809587c21bc1d2b87bfee53e628}}
+\index{String@{String}!write@{write}}
+\index{write@{write}!String@{String}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void String\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption}) const}
+
+
+
+Writes \mbox{\hyperlink{classString}{String}} to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classString_a7b0ea809587c21bc1d2b87bfee53e628}{write()}} function). First writes the string length, then the underlying C-\/style string (including terminating zero).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{classString_aa00d824f40064ff356aa7c15d6a9da12}\label{classString_aa00d824f40064ff356aa7c15d6a9da12}}
+\index{String@{String}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!String@{String}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
+{\footnotesize\ttfamily std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr, }\item[{const \mbox{\hyperlink{classString}{String}} \&}]{event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Writes \mbox{\hyperlink{classString}{String}} to stream with \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator.
+
+Uses the stream\textquotesingle{}s \texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<} operator to write the underlying C-\/style string
+
+\begin{DoxyNote}{Note}
+Best used with std\+::cout or text std\+::ofstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classString_a1918adea635f3f340dbecd6fb05341f8}\label{classString_a1918adea635f3f340dbecd6fb05341f8}}
+\index{String@{String}!operator$>$$>$@{operator$>$$>$}}
+\index{operator$>$$>$@{operator$>$$>$}!String@{String}}
+\doxysubsubsection{\texorpdfstring{operator$>$$>$}{operator>>}}
+{\footnotesize\ttfamily std\+::istream \& operator$>$$>$ (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr, }\item[{\mbox{\hyperlink{classString}{String}} \&}]{event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Reads \mbox{\hyperlink{classString}{String}} from stream with \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} operator.
+
+Uses the stream\textquotesingle{}s getline function to read the data.
+
+\begin{DoxyWarning}{Warning}
+It takes at most 1024 characters from the stream!
+\end{DoxyWarning}
+\begin{DoxyNote}{Note}
+Best used with std\+::cin or text std\+::ifstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Generic/\+String/\mbox{\hyperlink{String_8h}{String.\+h}}\item
+src/\+Generic/\+String/String.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/classTicket.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/classTicket.tex
new file mode 100644
index 0000000..69d709f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/classTicket.tex
@@ -0,0 +1,103 @@
+\hypertarget{classTicket}{}\doxysection{Ticket Class Reference}
+\label{classTicket}\index{Ticket@{Ticket}}
+
+
+Each \mbox{\hyperlink{classTicket}{Ticket}} contains a row and a seat number.
+
+
+
+
+{\ttfamily \#include $<$Ticket.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\Hypertarget{classTicket_aba3a46c9223efb6ab0bde93a09403537}\label{classTicket_aba3a46c9223efb6ab0bde93a09403537}}
+{\bfseries Ticket} ()
+\begin{DoxyCompactList}\small\item\em Sets row and seat to zeroes. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classTicket_a6fa09371f1b70520b96dbb9ac9a71768}\label{classTicket_a6fa09371f1b70520b96dbb9ac9a71768}}
+{\bfseries Ticket} (unsigned row, unsigned seat)
+\begin{DoxyCompactList}\small\item\em Sets row and seat. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classTicket_a94476de3cd6711185527d0fe4df9a278}\label{classTicket_a94476de3cd6711185527d0fe4df9a278}}
+unsigned {\bfseries get\+\_\+row} () const
+\begin{DoxyCompactList}\small\item\em Returns row. \end{DoxyCompactList}\item
+\mbox{\Hypertarget{classTicket_af7b64cb77a676d0f7bdb32255283f005}\label{classTicket_af7b64cb77a676d0f7bdb32255283f005}}
+unsigned {\bfseries get\+\_\+seat} () const
+\begin{DoxyCompactList}\small\item\em Returns seat. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classTicket_aad2d0b7b92b54ec861db92c31f50f4ad}{read}} (std\+::istream \&istr)
+\begin{DoxyCompactList}\small\item\em Reads \mbox{\hyperlink{classTicket}{Ticket}} from stram. \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classTicket_a584a11f6236fc96f3bdbd0592d3f60f4}{write}} (std\+::ostream \&ostr) const
+\begin{DoxyCompactList}\small\item\em Writes \mbox{\hyperlink{classTicket}{Ticket}} to stream. \end{DoxyCompactList}\item
+int \mbox{\hyperlink{classTicket_a82a063f71be89f44dd969970855187c4}{compare}} (const \mbox{\hyperlink{classTicket}{Ticket}} \&other) const
+\begin{DoxyCompactList}\small\item\em Compares two Tickets. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Each \mbox{\hyperlink{classTicket}{Ticket}} contains a row and a seat number.
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classTicket_a82a063f71be89f44dd969970855187c4}\label{classTicket_a82a063f71be89f44dd969970855187c4}}
+\index{Ticket@{Ticket}!compare@{compare}}
+\index{compare@{compare}!Ticket@{Ticket}}
+\doxysubsubsection{\texorpdfstring{compare()}{compare()}}
+{\footnotesize\ttfamily int Ticket\+::compare (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classTicket}{Ticket}} \&}]{other }\end{DoxyParamCaption}) const}
+
+
+
+Compares two Tickets.
+
+\begin{DoxyReturn}{Returns}
+If rows are equal, -\/1 if seat \texorpdfstring{$<$}{<} other.\+seat, 1 if seat \texorpdfstring{$>$}{>} other.\+seat, 0 if seat == other.\+seat, else the same, but for rows
+\end{DoxyReturn}
+\mbox{\Hypertarget{classTicket_aad2d0b7b92b54ec861db92c31f50f4ad}\label{classTicket_aad2d0b7b92b54ec861db92c31f50f4ad}}
+\index{Ticket@{Ticket}!read@{read}}
+\index{read@{read}!Ticket@{Ticket}}
+\doxysubsubsection{\texorpdfstring{read()}{read()}}
+{\footnotesize\ttfamily void Ticket\+::read (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{istr }\end{DoxyParamCaption})}
+
+
+
+Reads \mbox{\hyperlink{classTicket}{Ticket}} from stram.
+
+
+\begin{DoxyParams}{Parameters}
+{\em istr} & An input stream\\
+\hline
+\end{DoxyParams}
+Directly reads bytes from stream (calls \mbox{\hyperlink{classTicket_aad2d0b7b92b54ec861db92c31f50f4ad}{read()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ifstream
+\end{DoxyNote}
+\mbox{\Hypertarget{classTicket_a584a11f6236fc96f3bdbd0592d3f60f4}\label{classTicket_a584a11f6236fc96f3bdbd0592d3f60f4}}
+\index{Ticket@{Ticket}!write@{write}}
+\index{write@{write}!Ticket@{Ticket}}
+\doxysubsubsection{\texorpdfstring{write()}{write()}}
+{\footnotesize\ttfamily void Ticket\+::write (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{ostr }\end{DoxyParamCaption}) const}
+
+
+
+Writes \mbox{\hyperlink{classTicket}{Ticket}} to stream.
+
+
+\begin{DoxyParams}{Parameters}
+{\em ostr} & An output stream\\
+\hline
+\end{DoxyParams}
+Directly writes bytes to stream (calls \mbox{\hyperlink{classTicket_a584a11f6236fc96f3bdbd0592d3f60f4}{write()}} function).
+
+\begin{DoxyRemark}{Remarks}
+Doesn\textquotesingle{}t alter the stream in any other way.
+\end{DoxyRemark}
+\begin{DoxyNote}{Note}
+Best used with binary ofstream
+\end{DoxyNote}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+src/\+Models/\mbox{\hyperlink{Ticket_8h}{Ticket.\+h}}\item
+src/\+Models/Ticket.\+cpp\end{DoxyCompactItemize}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/doxygen.sty b/Year 1/Object-oriented Programming/Project 1/docs/latex/doxygen.sty
new file mode 100644
index 0000000..7e01991
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/doxygen.sty
@@ -0,0 +1,601 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+
+% Packages used by this style file
+\RequirePackage{alltt}
+%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{calc}
+\RequirePackage{float}
+%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{verbatim}
+\RequirePackage[table]{xcolor}
+\RequirePackage{longtable_doxygen}
+\RequirePackage{tabu_doxygen}
+\RequirePackage{fancyvrb}
+\RequirePackage{tabularx}
+\RequirePackage{multicol}
+\RequirePackage{multirow}
+\RequirePackage{hanging}
+\RequirePackage{ifpdf}
+\RequirePackage{adjustbox}
+\RequirePackage{amssymb}
+\RequirePackage{stackengine}
+\RequirePackage{enumitem}
+\RequirePackage{alphalph}
+\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
+\RequirePackage{enumitem}
+
+%---------- Internal commands used in this style file ----------------
+
+\newcommand{\ensurespace}[1]{%
+ \begingroup%
+ \setlength{\dimen@}{#1}%
+ \vskip\z@\@plus\dimen@%
+ \penalty -100\vskip\z@\@plus -\dimen@%
+ \vskip\dimen@%
+ \penalty 9999%
+ \vskip -\dimen@%
+ \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
+ \endgroup%
+}
+
+\newcommand{\DoxyHorRuler}[1]{%
+ \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+ \ifthenelse{#1=0}%
+ {%
+ \hrule%
+ }%
+ {%
+ \hrulefilll%
+ }%
+}
+\newcommand{\DoxyLabelFont}{}
+\newcommand{\entrylabel}[1]{%
+ {%
+ \parbox[b]{\labelwidth-4pt}{%
+ \makebox[0pt][l]{\DoxyLabelFont#1}%
+ \vspace{1.5\baselineskip}%
+ }%
+ }%
+}
+
+\newenvironment{DoxyDesc}[1]{%
+ \ensurespace{4\baselineskip}%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{20pt}%
+ %\setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }%
+ \item[#1]%
+}{%
+ \end{list}%
+}
+
+\newsavebox{\xrefbox}
+\newlength{\xreflength}
+\newcommand{\xreflabel}[1]{%
+ \sbox{\xrefbox}{#1}%
+ \setlength{\xreflength}{\wd\xrefbox}%
+ \ifthenelse{\xreflength>\labelwidth}{%
+ \begin{minipage}{\textwidth}%
+ \setlength{\parindent}{0pt}%
+ \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
+ \end{minipage}%
+ }{%
+ \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
+ }%
+}
+
+%---------- Commands used by doxygen LaTeX output generator ----------
+
+% Used by <pre> ... </pre>
+\newenvironment{DoxyPre}{%
+ \small%
+ \begin{alltt}%
+}{%
+ \end{alltt}%
+ \normalsize%
+}
+% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
+\newlength{\CodeWidthChar}
+\newlength{\CodeHeightChar}
+\settowidth{\CodeWidthChar}{?}
+\settoheight{\CodeHeightChar}{?}
+% Necessary for hanging indent
+\newlength{\DoxyCodeWidth}
+
+\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
+
+\newcommand\NiceSpace{%
+ \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
+}
+
+% Used by @code ... @endcode
+\newenvironment{DoxyCode}[1]{%
+ \par%
+ \scriptsize%
+ \normalfont\ttfamily%
+ \rightskip0pt plus 1fil%
+ \settowidth{\DoxyCodeWidth}{000000}%
+ \settowidth{\CodeWidthChar}{?}%
+ \settoheight{\CodeHeightChar}{?}%
+ \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+ \ifthenelse{\equal{#1}{0}}
+ {
+ {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
+ }
+ {
+ {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
+ }
+
+}{%
+ \normalfont%
+ \normalsize%
+ \settowidth{\CodeWidthChar}{?}%
+ \settoheight{\CodeHeightChar}{?}%
+}
+
+% Redefining not defined characters, i.e. "Replacement Character" in tex output.
+\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
+ \textcolor{white}{\sffamily\bfseries\small ?}}{%
+ \rotatebox{45}{$\blacksquare$}}}}
+
+% Used by @example, @include, @includelineno and @dontinclude
+\newenvironment{DoxyCodeInclude}[1]{%
+ \DoxyCode{#1}%
+}{%
+ \endDoxyCode%
+}
+
+% Used by @verbatim ... @endverbatim
+\newenvironment{DoxyVerb}{%
+ \footnotesize%
+ \verbatim%
+}{%
+ \endverbatim%
+ \normalsize%
+}
+
+% Used by @verbinclude
+\newenvironment{DoxyVerbInclude}{%
+ \DoxyVerb%
+}{%
+ \endDoxyVerb%
+}
+
+% Used by numbered lists (using '-#' or <ol> ... </ol>)
+\setlistdepth{12}
+\newlist{DoxyEnumerate}{enumerate}{12}
+\setlist[DoxyEnumerate,1]{label=\arabic*.}
+\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,3]{label=\roman*.}
+\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
+\setlist[DoxyEnumerate,5]{label=\arabic*.}
+\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,7]{label=\roman*.}
+\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
+\setlist[DoxyEnumerate,9]{label=\arabic*.}
+\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,11]{label=\roman*.}
+\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
+
+% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
+\setlistdepth{12}
+\newlist{DoxyItemize}{itemize}{12}
+\setlist[DoxyItemize]{label=\textperiodcentered}
+
+\setlist[DoxyItemize,1]{label=\textbullet}
+\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
+\setlist[DoxyItemize,3]{label=\textasteriskcentered}
+\setlist[DoxyItemize,4]{label=\textperiodcentered}
+
+% Used by description lists (using <dl> ... </dl>)
+\newenvironment{DoxyDescription}{%
+ \description%
+}{%
+ \enddescription%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if caption is specified)
+\newenvironment{DoxyImage}{%
+ \begin{figure}[H]%
+ \centering%
+}{%
+ \end{figure}%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if no caption is specified)
+\newenvironment{DoxyImageNoCaption}{%
+ \begin{center}%
+}{%
+ \end{center}%
+}
+
+% Used by @image
+% (only if inline is specified)
+\newenvironment{DoxyInlineImage}{%
+}{%
+}
+
+% Used by @attention
+\newenvironment{DoxyAttention}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @author and @authors
+\newenvironment{DoxyAuthor}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @date
+\newenvironment{DoxyDate}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @invariant
+\newenvironment{DoxyInvariant}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @note
+\newenvironment{DoxyNote}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @post
+\newenvironment{DoxyPostcond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @pre
+\newenvironment{DoxyPrecond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @copyright
+\newenvironment{DoxyCopyright}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @remark
+\newenvironment{DoxyRemark}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @return and @returns
+\newenvironment{DoxyReturn}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @since
+\newenvironment{DoxySince}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @see
+\newenvironment{DoxySeeAlso}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @version
+\newenvironment{DoxyVersion}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @warning
+\newenvironment{DoxyWarning}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @internal
+\newenvironment{DoxyInternal}[1]{%
+ \paragraph*{#1}%
+}{%
+}
+
+% Used by @par and @paragraph
+\newenvironment{DoxyParagraph}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by parameter lists
+\newenvironment{DoxyParams}[2][]{%
+ \tabulinesep=1mm%
+ \par%
+ \ifthenelse{\equal{#1}{}}%
+ {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
+ {\ifthenelse{\equal{#1}{1}}%
+ {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
+ {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
+ }
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\newenvironment{DoxyFields}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
+ \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used for fields simple class style enums
+\newenvironment{DoxyEnumFields}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used for parameters within a detailed function description
+\newenvironment{DoxyParamCaption}{%
+ \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
+}{%
+}
+
+% Used by return value lists
+\newenvironment{DoxyRetVals}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used by exception lists
+\newenvironment{DoxyExceptions}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\newenvironment{DoxyTemplParams}[1]{%
+ \tabulinesep=1mm%
+ \par%
+ \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endfirsthead%
+ \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+ \hline%
+ \endhead%
+}{%
+ \end{longtabu*}%
+ \vspace{6pt}%
+}
+
+% Used for member lists
+\newenvironment{DoxyCompactItemize}{%
+ \begin{itemize}%
+ \setlength{\itemsep}{-3pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \setlength{\partopsep}{0pt}%
+}{%
+ \end{itemize}%
+}
+
+% Used for member descriptions
+\newenvironment{DoxyCompactList}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \renewcommand{\makelabel}{\hfill}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used for reference lists (@bug, @deprecated, @todo, etc.)
+\newenvironment{DoxyRefList}{%
+ \begin{list}{}{%
+ \setlength{\labelwidth}{10pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \renewcommand{\makelabel}{\xreflabel}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by @bug, @deprecated, @todo, etc.
+\newenvironment{DoxyRefDesc}[1]{%
+ \begin{list}{}{%
+ \renewcommand\makelabel[1]{\textbf{##1}}%
+ \settowidth\labelwidth{\makelabel{#1}}%
+ \setlength\leftmargin{\labelwidth+\labelsep}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by parameter lists and simple sections
+\newenvironment{Desc}
+{\begin{list}{}{%
+ \settowidth{\labelwidth}{20pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }
+}{%
+ \end{list}%
+}
+
+% Used by tables
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
+\newenvironment{TabularC}[1]%
+{\tabulinesep=1mm
+\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
+{\end{longtabu*}\par}%
+
+\newenvironment{TabularNC}[1]%
+{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
+{\end{tabu}\par}%
+
+% Used for member group headers
+\newenvironment{Indent}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ }%
+ \item[]\ignorespaces%
+}{%
+ \unskip%
+ \end{list}%
+}
+
+% Used when hyperlinks are turned off
+\newcommand{\doxyref}[3]{%
+ \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
+}
+
+% Used to link to a table when hyperlinks are turned on
+\newcommand{\doxytablelink}[2]{%
+ \ref{#1}%
+}
+
+% Used to link to a table when hyperlinks are turned off
+\newcommand{\doxytableref}[3]{%
+ \ref{#3}%
+}
+
+% Used by @addindex
+\newcommand{\lcurly}{\{}
+\newcommand{\rcurly}{\}}
+
+% Colors used for syntax highlighting
+\definecolor{comment}{rgb}{0.5,0.0,0.0}
+\definecolor{keyword}{rgb}{0.0,0.5,0.0}
+\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
+\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
+\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
+\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
+\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
+\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
+\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
+\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
+\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
+
+% Color used for table heading
+\newcommand{\tableheadbgcolor}{lightgray}%
+
+% Version of hypertarget with correct landing location
+\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
+
+% possibility to have sections etc. be within the margins
+% unfortunately had to copy part of book.cls and add \raggedright
+\makeatletter
+\newcommand\doxysection{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\raggedright\normalfont\Large\bfseries}}
+\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\raggedright\normalfont\large\bfseries}}
+\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\raggedright\normalfont\normalsize\bfseries}}
+\makeatother
+% Define caption that is also suitable in a table
+\makeatletter
+\def\doxyfigcaption{%
+\H@refstepcounter{figure}%
+\@dblarg{\@caption{figure}}}
+\makeatother
+
+% Define alpha enumarative names for counters > 26
+\makeatletter
+\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
+\def\@enumalphalphcnt#1{\alphalph{#1}}
+\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
+\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
+\makeatother
+\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
+\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/files.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/files.tex
new file mode 100644
index 0000000..42bfeb7
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/files.tex
@@ -0,0 +1,19 @@
+\doxysection{File List}
+Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{src/\mbox{\hyperlink{main_8cpp}{main.\+cpp}} \\*Entry point for application }{\pageref{main_8cpp}}{}
+\item\contentsline{section}{src/\+Generic/\+Console\+Interface/\mbox{\hyperlink{Command_8h}{Command.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classCommand}{Command}} }{\pageref{Command_8h}}{}
+\item\contentsline{section}{src/\+Generic/\+Console\+Interface/\mbox{\hyperlink{Menu_8h}{Menu.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classMenu}{Menu}} }{\pageref{Menu_8h}}{}
+\item\contentsline{section}{src/\+Generic/\+Console\+Interface/\mbox{\hyperlink{Toolbox_8hpp}{Toolbox.\+hpp}} \\*Stores a wide range of functions for simpler/more automated printing }{\pageref{Toolbox_8hpp}}{}
+\item\contentsline{section}{src/\+Generic/\+Date/\mbox{\hyperlink{Date_8h}{Date.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classDate}{Date}} }{\pageref{Date_8h}}{}
+\item\contentsline{section}{src/\+Generic/\+List/\mbox{\hyperlink{List_8hpp}{List.\+hpp}} \\*Stores declaration and definition of templated class \mbox{\hyperlink{classList}{List}} }{\pageref{List_8hpp}}{}
+\item\contentsline{section}{src/\+Generic/\+List/\mbox{\hyperlink{OrderedList_8hpp}{Ordered\+List.\+hpp}} \\*Stores declaration and definition of templated class \mbox{\hyperlink{classOrderedList}{Ordered\+List}} }{\pageref{OrderedList_8hpp}}{}
+\item\contentsline{section}{src/\+Generic/\+String/\mbox{\hyperlink{String_8h}{String.\+h}} \\*Stores declaration of class \mbox{\hyperlink{classString}{String}} }{\pageref{String_8h}}{}
+\item\contentsline{section}{src/\+Models/\mbox{\hyperlink{Event_8h}{Event.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classEvent}{Event}} }{\pageref{Event_8h}}{}
+\item\contentsline{section}{src/\+Models/\mbox{\hyperlink{Hall_8h}{Hall.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classHall}{Hall}} }{\pageref{Hall_8h}}{}
+\item\contentsline{section}{src/\+Models/\mbox{\hyperlink{Reservation_8h}{Reservation.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classReservation}{Reservation}} }{\pageref{Reservation_8h}}{}
+\item\contentsline{section}{src/\+Models/\mbox{\hyperlink{Ticket_8h}{Ticket.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classTicket}{Ticket}} }{\pageref{Ticket_8h}}{}
+\item\contentsline{section}{src/\+Services/\mbox{\hyperlink{EventService_8h}{Event\+Service.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classEventService}{Event\+Service}} }{\pageref{EventService_8h}}{}
+\item\contentsline{section}{src/\+Services/\mbox{\hyperlink{HallService_8h}{Hall\+Service.\+h}} \\*Stores the declaration of class \mbox{\hyperlink{classHallService}{Hall\+Service}} }{\pageref{HallService_8h}}{}
+\item\contentsline{section}{src/\+Services/\mbox{\hyperlink{StatusCode_8h}{Status\+Code.\+h}} \\*Stores declaration of enum Status\+Code }{\pageref{StatusCode_8h}}{}
+\item\contentsline{section}{src/\+User\+Interface/\mbox{\hyperlink{FMITicketSystemConsoleUI_8h}{FMITicket\+System\+Console\+UI.\+h}} \\*Stores declaration of run\+UI function }{\pageref{FMITicketSystemConsoleUI_8h}}{}
+\end{DoxyCompactList}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/hierarchy.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/hierarchy.tex
new file mode 100644
index 0000000..822760c
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/hierarchy.tex
@@ -0,0 +1,34 @@
+\doxysection{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
+\item \contentsline{section}{Command}{\pageref{classCommand}}{}
+\item \contentsline{section}{Date}{\pageref{classDate}}{}
+\item \contentsline{section}{Event}{\pageref{classEvent}}{}
+\item \contentsline{section}{Event\+Service}{\pageref{classEventService}}{}
+\item \contentsline{section}{Hall}{\pageref{classHall}}{}
+\item \contentsline{section}{Hall\+Service}{\pageref{classHallService}}{}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Ordered\+List\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}}{\pageref{classOrderedList}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} Command \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} Event \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Ordered\+List\texorpdfstring{$<$}{<} Event \texorpdfstring{$>$}{>}}{\pageref{classOrderedList}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} Hall \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Ordered\+List\texorpdfstring{$<$}{<} Hall \texorpdfstring{$>$}{>}}{\pageref{classOrderedList}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} Reservation \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Ordered\+List\texorpdfstring{$<$}{<} Reservation \texorpdfstring{$>$}{>}}{\pageref{classOrderedList}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{List\texorpdfstring{$<$}{<} Ticket \texorpdfstring{$>$}{>}}{\pageref{classList}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Ordered\+List\texorpdfstring{$<$}{<} Ticket \texorpdfstring{$>$}{>}}{\pageref{classOrderedList}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{Menu}{\pageref{classMenu}}{}
+\item \contentsline{section}{Reservation}{\pageref{classReservation}}{}
+\item \contentsline{section}{String}{\pageref{classString}}{}
+\item \contentsline{section}{Ticket}{\pageref{classTicket}}{}
+\end{DoxyCompactList}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/index.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/index.tex
new file mode 100644
index 0000000..7552a6f
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/index.tex
@@ -0,0 +1,62 @@
+\label{index_mainpage}%
+\Hypertarget{index_mainpage}%
+ \begin{DoxyAuthor}{Author}
+Kamen Mladenov; FMI Computer Science, Year 1, Group 6; Project 1, Topic 4
+\end{DoxyAuthor}
+\begin{DoxyDate}{Date}
+12 May 2022
+\end{DoxyDate}
+\begin{DoxyCopyright}{Copyright}
+GNU General Public License v3.\+0
+\end{DoxyCopyright}
+
+\begin{DoxyDescription}
+\item[Source Code ]\href{https://github.com/Syndamia/FMI-OOP-P1_TicketSystem}{\texttt{ https\+://github.\+com/\+Syndamia/\+FMI-\/\+OOP-\/\+P1\+\_\+\+Ticket\+System}}
+\end{DoxyDescription}\hypertarget{index_autotoc_md0}{}\doxysection{About}\label{index_autotoc_md0}
+The \char`\"{}\+FMI Ticket System\char`\"{} is a small project, designed for managing the seats for different events. You can create or cancel an event in any available hall, reserve or straight out buy tickets for any given event and create some reports.\hypertarget{index_autotoc_md1}{}\doxysection{Structure overview}\label{index_autotoc_md1}
+The project is roughly divided into 4 main components\+: User Interface, Services, Models and Generic \mbox{\hyperlink{index_fig1}{fig1}}.
+\begin{DoxyItemize}
+\item The User Interface is the messenger between a user and the underlying application. All input and output is handled here.
+\item Services contain the business logic of the whole application. All requests to do anything like buying a ticket or creating an event must be sent to here.
+\item Models are the general classes that are used in the previous two layers.
+\item Generic is a place for all code that is can be used independently from the project. Stuff like \mbox{\hyperlink{classDate}{Date}}, \mbox{\hyperlink{classString}{String}} or \mbox{\hyperlink{classList}{List}}.
+\end{DoxyItemize}
+
+This offers a fairly modular and flexible architecture, which should make big changes or additions to the code easier and more pain-\/free.\hypertarget{index_autotoc_md2}{}\doxysection{Building the project}\label{index_autotoc_md2}
+Instructions are all for {\ttfamily gcc}. All commands should be executed while in the {\ttfamily src} folder.\hypertarget{index_autotoc_md3}{}\doxysubsection{Linux/\+BSD/\+Mac\+OS}\label{index_autotoc_md3}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{g++ *.cpp */*.cpp */*/*.cpp -\/o TicketSystem.out \&\& ./TicketSystem.out}
+
+\end{DoxyCode}
+\hypertarget{index_autotoc_md4}{}\doxysubsection{Windows (\+Power\+Shell)}\label{index_autotoc_md4}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{g++ (Get-\/ChildItem -\/Recurse *.cpp) -\/o TicketSystem.exe \&\& ./TicketSystem.exe}
+
+\end{DoxyCode}
+\hypertarget{index_autotoc_md5}{}\doxysection{Running the tests}\label{index_autotoc_md5}
+Instructions are all for {\ttfamily gcc}. All commands should be executed while in the {\ttfamily tests} folder.\hypertarget{index_autotoc_md6}{}\doxysubsection{Linux/\+BSD/\+Mac\+OS}\label{index_autotoc_md6}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{g++ Tests\_ALL.cpp ../src/*/*.cpp ../src/*/*/*.cpp -\/o Tests\_ALL.out \&\& ./Tests\_ALL.out}
+
+\end{DoxyCode}
+\hypertarget{index_autotoc_md7}{}\doxysection{Acknowledgements}\label{index_autotoc_md7}
+
+\begin{DoxyDescription}
+\item[Wikipedia ]Leap year calculation for \mbox{\hyperlink{classDate}{Date}} ~\newline
+ \href{https://en.wikipedia.org/wiki/Leap_year\#Gregorian_calendar}{\texttt{ https\+://en.\+wikipedia.\+org/wiki/\+Leap\+\_\+year\#\+Gregorian\+\_\+calendar}}
+\item[Stack\+Overflow ]Way to clear the console in \mbox{\hyperlink{Toolbox_8hpp}{Toolbox.\+hpp}} ~\newline
+ \href{https://stackoverflow.com/a/52895729/12036073}{\texttt{ https\+://stackoverflow.\+com/a/52895729/12036073}}
+\end{DoxyDescription}\hypertarget{index_autotoc_md8}{}\doxysection{Figures}\label{index_autotoc_md8}
+\label{index_fig1}%
+\Hypertarget{index_fig1}%
+{\bfseries{Figure 1\+:}} Overview of the \char`\"{}\+FMI Ticket System\char`\"{} design
+
+
+\begin{DoxyImage}
+\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{FMI-OOP-P1_TicketSystem Overview.svg}
+\doxyfigcaption{Not available in La\+Te\+X!}
+\end{DoxyImage}
+ \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/longtable_doxygen.sty b/Year 1/Object-oriented Programming/Project 1/docs/latex/longtable_doxygen.sty
new file mode 100644
index 0000000..a0eb314
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/longtable_doxygen.sty
@@ -0,0 +1,448 @@
+%%
+%% This is file `longtable.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% longtable.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at http://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{longtable_doxygen}
+ [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
+\def\LT@err{\PackageError{longtable}}
+\def\LT@warn{\PackageWarning{longtable}}
+\def\LT@final@warn{%
+ \AtEndDocument{%
+ \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
+ \global\let\LT@final@warn\relax}
+\DeclareOption{errorshow}{%
+ \def\LT@warn{\PackageInfo{longtable}}}
+\DeclareOption{pausing}{%
+ \def\LT@warn#1{%
+ \LT@err{#1}{This is not really an error}}}
+\DeclareOption{set}{}
+\DeclareOption{final}{}
+\ProcessOptions
+\newskip\LTleft \LTleft=\fill
+\newskip\LTright \LTright=\fill
+\newskip\LTpre \LTpre=\bigskipamount
+\newskip\LTpost \LTpost=\bigskipamount
+\newcount\LTchunksize \LTchunksize=20
+\let\c@LTchunksize\LTchunksize
+\newdimen\LTcapwidth \LTcapwidth=4in
+\newbox\LT@head
+\newbox\LT@firsthead
+\newbox\LT@foot
+\newbox\LT@lastfoot
+\newcount\LT@cols
+\newcount\LT@rows
+\newcounter{LT@tables}
+\newcounter{LT@chunks}[LT@tables]
+\ifx\c@table\undefined
+ \newcounter{table}
+ \def\fnum@table{\tablename~\thetable}
+\fi
+\ifx\tablename\undefined
+ \def\tablename{Table}
+\fi
+\newtoks\LT@p@ftn
+\mathchardef\LT@end@pen=30000
+\def\longtable{%
+ \par
+ \ifx\multicols\@undefined
+ \else
+ \ifnum\col@number>\@ne
+ \@twocolumntrue
+ \fi
+ \fi
+ \if@twocolumn
+ \LT@err{longtable not in 1-column mode}\@ehc
+ \fi
+ \begingroup
+ \@ifnextchar[\LT@array{\LT@array[x]}}
+\def\LT@array[#1]#2{%
+ \refstepcounter{table}\stepcounter{LT@tables}%
+ \if l#1%
+ \LTleft\z@ \LTright\fill
+ \else\if r#1%
+ \LTleft\fill \LTright\z@
+ \else\if c#1%
+ \LTleft\fill \LTright\fill
+ \fi\fi\fi
+ \let\LT@mcol\multicolumn
+ \let\LT@@tabarray\@tabarray
+ \let\LT@@hl\hline
+ \def\@tabarray{%
+ \let\hline\LT@@hl
+ \LT@@tabarray}%
+ \let\\\LT@tabularcr\let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \ifx\extrarowheight\@undefined
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+ \def\@startpbox{\vtop\LT@startpbox}%
+ \let\@@startpbox\@startpbox
+ \let\@@endpbox\@endpbox
+ \let\LT@LL@FM@cr\@tabularcr
+ \else
+ \advance\@tempdima\extrarowheight
+ \col@sep\tabcolsep
+ \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+ \fi
+ \setbox\@arstrutbox\hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \let\@sharp##\let\protect\relax
+ \begingroup
+ \@mkpream{#2}%
+ \xdef\LT@bchunk{%
+ \global\advance\c@LT@chunks\@ne
+ \global\LT@rows\z@\setbox\z@\vbox\bgroup
+ \LT@setprevdepth
+ \tabskip\LTleft \noexpand\halign to\hsize\bgroup
+ \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th\let\par\@empty
+ \everycr{}\lineskip\z@\baselineskip\z@
+ \LT@bchunk}
+\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
+\def\LT@start{%
+ \let\LT@start\endgraf
+ \endgraf\penalty\z@\vskip\LTpre
+ \dimen@\pagetotal
+ \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \ht\LT@foot
+ \dimen@ii\vfuzz
+ \vfuzz\maxdimen
+ \setbox\tw@\copy\z@
+ \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+ \setbox\tw@\vbox{\unvbox\tw@}%
+ \vfuzz\dimen@ii
+ \advance\dimen@ \ht
+ \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@\dp
+ \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@ -\pagegoal
+ \ifdim \dimen@>\z@\vfil\break\fi
+ \global\@colroom\@colht
+ \ifvoid\LT@foot\else
+ \advance\vsize-\ht\LT@foot
+ \global\advance\@colroom-\ht\LT@foot
+ \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+ \maxdepth\z@
+ \fi
+ \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
+ \output{\LT@output}}
+\def\endlongtable{%
+ \crcr
+ \noalign{%
+ \let\LT@entry\LT@entry@chop
+ \xdef\LT@save@row{\LT@save@row}}%
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \if@filesw
+ {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+ \gdef\expandafter\noexpand
+ \csname LT@\romannumeral\c@LT@tables\endcsname
+ {\LT@save@row}}}%
+ \fi
+ \ifx\LT@save@row\LT@@save@row
+ \else
+ \LT@warn{Column \@width s have changed\MessageBreak
+ in table \thetable}%
+ \LT@final@warn
+ \fi
+ \endgraf\penalty -\LT@end@pen
+ \endgroup
+ \global\@mparbottom\z@
+ \pagegoal\vsize
+ \endgraf\penalty\z@\addvspace\LTpost
+ \ifvoid\footins\else\insert\footins{}\fi}
+\def\LT@nofcols#1&{%
+ \futurelet\@let@token\LT@n@fcols}
+\def\LT@n@fcols{%
+ \advance\LT@cols\@ne
+ \ifx\@let@token\LT@nofcols
+ \expandafter\@gobble
+ \else
+ \expandafter\LT@nofcols
+ \fi}
+\def\LT@tabularcr{%
+ \relax\iffalse{\fi\ifnum0=`}\fi
+ \@ifstar
+ {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
+ \LT@t@bularcr}%
+ {\LT@t@bularcr}}
+\let\LT@crcr\crcr
+\let\LT@setprevdepth\relax
+\def\LT@t@bularcr{%
+ \global\advance\LT@rows\@ne
+ \ifnum\LT@rows=\LTchunksize
+ \gdef\LT@setprevdepth{%
+ \prevdepth\z@\global
+ \global\let\LT@setprevdepth\relax}%
+ \expandafter\LT@xtabularcr
+ \else
+ \ifnum0=`{}\fi
+ \expandafter\LT@LL@FM@cr
+ \fi}
+\def\LT@xtabularcr{%
+ \@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
+\def\LT@ntabularcr{%
+ \ifnum0=`{}\fi
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \LT@bchunk}
+\def\LT@argtabularcr[#1]{%
+ \ifnum0=`{}\fi
+ \ifdim #1>\z@
+ \unskip\@xargarraycr{#1}%
+ \else
+ \@yargarraycr{#1}%
+ \fi
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \LT@bchunk}
+\def\LT@echunk{%
+ \crcr\LT@save@row\cr\egroup
+ \global\setbox\@ne\lastbox
+ \unskip
+ \egroup}
+\def\LT@entry#1#2{%
+ \ifhmode\@firstofone{&}\fi\omit
+ \ifnum#1=\c@LT@chunks
+ \else
+ \kern#2\relax
+ \fi}
+\def\LT@entry@chop#1#2{%
+ \noexpand\LT@entry
+ {\ifnum#1>\c@LT@chunks
+ 1}{0pt%
+ \else
+ #1}{#2%
+ \fi}}
+\def\LT@entry@write{%
+ \noexpand\LT@entry^^J%
+ \@spaces}
+\def\LT@kill{%
+ \LT@echunk
+ \LT@get@widths
+ \expandafter\LT@rebox\LT@bchunk}
+\def\LT@rebox#1\bgroup{%
+ #1\bgroup
+ \unvbox\z@
+ \unskip
+ \setbox\z@\lastbox}
+\def\LT@blank@row{%
+ \xdef\LT@save@row{\expandafter\LT@build@blank
+ \romannumeral\number\LT@cols 001 }}
+\def\LT@build@blank#1{%
+ \if#1m%
+ \noexpand\LT@entry{1}{0pt}%
+ \expandafter\LT@build@blank
+ \fi}
+\def\LT@make@row{%
+ \global\expandafter\let\expandafter\LT@save@row
+ \csname LT@\romannumeral\c@LT@tables\endcsname
+ \ifx\LT@save@row\relax
+ \LT@blank@row
+ \else
+ {\let\LT@entry\or
+ \if!%
+ \ifcase\expandafter\expandafter\expandafter\LT@cols
+ \expandafter\@gobble\LT@save@row
+ \or
+ \else
+ \relax
+ \fi
+ !%
+ \else
+ \aftergroup\LT@blank@row
+ \fi}%
+ \fi}
+\let\setlongtables\relax
+\def\LT@get@widths{%
+ \setbox\tw@\hbox{%
+ \unhbox\@ne
+ \let\LT@old@row\LT@save@row
+ \global\let\LT@save@row\@empty
+ \count@\LT@cols
+ \loop
+ \unskip
+ \setbox\tw@\lastbox
+ \ifhbox\tw@
+ \LT@def@row
+ \advance\count@\m@ne
+ \repeat}%
+ \ifx\LT@@save@row\@undefined
+ \let\LT@@save@row\LT@save@row
+ \fi}
+\def\LT@def@row{%
+ \let\LT@entry\or
+ \edef\@tempa{%
+ \ifcase\expandafter\count@\LT@old@row
+ \else
+ {1}{0pt}%
+ \fi}%
+ \let\LT@entry\relax
+ \xdef\LT@save@row{%
+ \LT@entry
+ \expandafter\LT@max@sel\@tempa
+ \LT@save@row}}
+\def\LT@max@sel#1#2{%
+ {\ifdim#2=\wd\tw@
+ #1%
+ \else
+ \number\c@LT@chunks
+ \fi}%
+ {\the\wd\tw@}}
+\def\LT@hline{%
+ \noalign{\ifnum0=`}\fi
+ \penalty\@M
+ \futurelet\@let@token\LT@@hline}
+\def\LT@@hline{%
+ \ifx\@let@token\hline
+ \global\let\@gtempa\@gobble
+ \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
+ \else
+ \global\let\@gtempa\@empty
+ \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
+ \fi
+ \ifnum0=`{\fi}%
+ \multispan\LT@cols
+ \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+ \noalign{\LT@sep}%
+ \multispan\LT@cols
+ \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+ \noalign{\penalty\@M}%
+ \@gtempa}
+\def\LT@caption{%
+ \noalign\bgroup
+ \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
+\def\LT@c@ption#1[#2]#3{%
+ \LT@makecaption#1\fnum@table{#3}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\let\\\space
+ \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
+ \fi}
+\def\LT@capti@n{%
+ \@ifstar
+ {\egroup\LT@c@ption\@gobble[]}%
+ {\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
+\def\LT@makecaption#1#2#3{%
+ \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
+ \sbox\@tempboxa{#1{#2: }#3}%
+ \ifdim\wd\@tempboxa>\hsize
+ #1{#2: }#3%
+ \else
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \endgraf\vskip\baselineskip}%
+ \hss}}}
+\def\LT@output{%
+ \ifnum\outputpenalty <-\@Mi
+ \ifnum\outputpenalty > -\LT@end@pen
+ \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+ \else
+ \setbox\z@\vbox{\unvbox\@cclv}%
+ \ifdim \ht\LT@lastfoot>\ht\LT@foot
+ \dimen@\pagegoal
+ \advance\dimen@-\ht\LT@lastfoot
+ \ifdim\dimen@<\ht\z@
+ \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+ \@makecol
+ \@outputpage
+ \setbox\z@\vbox{\box\LT@head}%
+ \fi
+ \fi
+ \global\@colroom\@colht
+ \global\vsize\@colht
+ \vbox
+ {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
+ \fi
+ \else
+ \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+ \@makecol
+ \@outputpage
+ \global\vsize\@colroom
+ \copy\LT@head\nobreak
+ \fi}
+\def\LT@end@hd@ft#1{%
+ \LT@echunk
+ \ifx\LT@start\endgraf
+ \LT@err
+ {Longtable head or foot not at start of table}%
+ {Increase LTchunksize}%
+ \fi
+ \setbox#1\box\z@
+ \LT@get@widths
+ \LT@bchunk}
+\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
+\def\endhead{\LT@end@hd@ft\LT@head}
+\def\endfoot{\LT@end@hd@ft\LT@foot}
+\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
+\def\LT@startpbox#1{%
+ \bgroup
+ \let\@footnotetext\LT@p@ftntext
+ \setlength\hsize{#1}%
+ \@arrayparboxrestore
+ \vrule \@height \ht\@arstrutbox \@width \z@}
+\def\LT@endpbox{%
+ \@finalstrut\@arstrutbox
+ \egroup
+ \the\LT@p@ftn
+ \global\LT@p@ftn{}%
+ \hfil}
+\def\LT@p@ftntext#1{%
+ \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
+ \global\LT@p@ftn\expandafter{\@tempa{#1}}}%
+
+\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
+\endinput
+%%
+%% End of file `longtable.sty'.
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/main_8cpp.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/main_8cpp.tex
new file mode 100644
index 0000000..31e87fd
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/main_8cpp.tex
@@ -0,0 +1,31 @@
+\hypertarget{main_8cpp}{}\doxysection{src/main.cpp File Reference}
+\label{main_8cpp}\index{src/main.cpp@{src/main.cpp}}
+
+
+Entry point for application.
+
+
+{\ttfamily \#include \char`\"{}Services/\+Event\+Service.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Services/\+Hall\+Service.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Models/\+Hall.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}User\+Interface/\+FMITicket\+System\+Console\+UI.\+h\char`\"{}}\newline
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+int \mbox{\hyperlink{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{main}} ()
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Entry point for application.
+
+Contains the \mbox{\hyperlink{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{main()}} function.
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}\label{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}}
+\index{main.cpp@{main.cpp}!main@{main}}
+\index{main@{main}!main.cpp@{main.cpp}}
+\doxysubsubsection{\texorpdfstring{main()}{main()}}
+{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+Creates instances of \mbox{\hyperlink{classHallService}{Hall\+Service}} and \mbox{\hyperlink{classEventService}{Event\+Service}} and executes \mbox{\hyperlink{FMITicketSystemConsoleUI_8h_a79d6833c27b5a32b6d9917f5cd6e32a3}{run\+UI()}} function. \ No newline at end of file
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.pdf b/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.pdf
new file mode 100644
index 0000000..86078ce
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.pdf
Binary files differ
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.tex b/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.tex
new file mode 100644
index 0000000..4d8b16b
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/refman.tex
@@ -0,0 +1,240 @@
+ % Handle batch mode
+ % to overcome problems with too many open files
+ \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
+ % Set document class depending on configuration
+ \documentclass[twoside]{book}
+ %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
+ \usepackage{ifthen}
+ \ifx\requestedLaTeXdate\undefined
+ \usepackage{array}
+ \else
+ \usepackage{array}[=2016-10-06]
+ \fi
+ %%
+ % Packages required by doxygen
+ \usepackage{fixltx2e} % for \textsubscript
+ \usepackage{doxygen}
+ \usepackage{graphicx}
+ \usepackage[utf8]{inputenc}
+ \usepackage{makeidx}
+ \PassOptionsToPackage{warn}{textcomp}
+ \usepackage{textcomp}
+ \usepackage[nointegrals]{wasysym}
+ \usepackage{ifxetex}
+ % NLS support packages
+ % Define default fonts
+ % Font selection
+ \usepackage[T1]{fontenc}
+ % set main and monospaced font
+ \usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\renewcommand{\familydefault}{\sfdefault}
+ \usepackage{sectsty}
+ \allsectionsfont{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+ }
+ \renewcommand{\DoxyLabelFont}{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+ }
+ \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
+ % Arguments of doxygenemoji:
+ % 1) ':<text>:' form of the emoji, already LaTeX-escaped
+ % 2) file with the name of the emoji without the .png extension
+ % in case image exist use this otherwise use the ':<text>:' form
+ \newcommand{\doxygenemoji}[2]{%
+ \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
+ }
+ % Page & text layout
+ \usepackage{geometry}
+ \geometry{%
+ a4paper,%
+ top=2.5cm,%
+ bottom=2.5cm,%
+ left=2.5cm,%
+ right=2.5cm%
+ }
+ % Allow a bit of overflow to go unnoticed by other means
+ \tolerance=750
+ \hfuzz=15pt
+ \hbadness=750
+ \setlength{\emergencystretch}{15pt}
+ \setlength{\parindent}{0cm}
+ \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
+ \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
+ \doxynormalparskip
+ % Redefine paragraph/subparagraph environments, using sectsty fonts
+ \makeatletter
+ \renewcommand{\paragraph}{%
+ \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@parafont%
+ }%
+ }
+ \renewcommand{\subparagraph}{%
+ \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@subparafont%
+ }%
+ }
+ \makeatother
+ \makeatletter
+ \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
+ \makeatother
+ % Headers & footers
+ \usepackage{fancyhdr}
+ \pagestyle{fancyplain}
+ \renewcommand{\footrulewidth}{0.4pt}
+ \fancypagestyle{fancyplain}{
+ \fancyhf{}
+ \fancyhead[LE, RO]{\bfseries\thepage}
+ \fancyhead[LO]{\bfseries\rightmark}
+ \fancyhead[RE]{\bfseries\leftmark}
+ \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
+ }
+ \fancypagestyle{plain}{
+ \fancyhf{}
+ \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
+ \renewcommand{\headrulewidth}{0pt}
+ }
+ \pagestyle{fancyplain}
+ \renewcommand{\chaptermark}[1]{%
+ \markboth{#1}{}%
+ }
+ \renewcommand{\sectionmark}[1]{%
+ \markright{\thesection\ #1}%
+ }
+ % ToC, LoF, LoT, bibliography, and index
+ % Indices & bibliography
+ \usepackage{natbib}
+ \usepackage[titles]{tocloft}
+ \setcounter{tocdepth}{3}
+ \setcounter{secnumdepth}{5}
+ % creating indexes
+ \makeindex
+ \usepackage{newunicodechar}
+ \newunicodechar{�}{${}^{-}$}% Superscript minus
+ \newunicodechar{²}{${}^{2}$}% Superscript two
+ \newunicodechar{³}{${}^{3}$}% Superscript three
+ % Hyperlinks
+ % Hyperlinks (required, but should be loaded last)
+ \ifpdf
+ \usepackage[pdftex,pagebackref=true]{hyperref}
+ \else
+ \ifxetex
+ \usepackage[pagebackref=true]{hyperref}
+ \else
+ \usepackage[ps2pdf,pagebackref=true]{hyperref}
+ \fi
+ \fi
+ \hypersetup{%
+ colorlinks=true,%
+ linkcolor=blue,%
+ citecolor=blue,%
+ unicode,%
+ pdftitle=FMI Ticket System,%
+ pdfsubject=$\vert$ Kamen Mladenov $\vert$ FMI Computer Science Year 1 Group 6 $\vert$ Project 1 $\vert$ Project Topic 4 $\vert$%
+ }
+ % Custom commands used by the header
+ % Custom commands
+ \newcommand{\clearemptydoublepage}{%
+ \newpage{\pagestyle{empty}\cleardoublepage}%
+ }
+ % caption style definition
+ \usepackage{caption}
+ \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
+ % in page table of contents
+ \usepackage{etoc}
+ \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
+ % prevent numbers overlap the titles in toc
+ \renewcommand{\numberline}[1]{#1~}
+% End of preamble, now comes the document contents
+%===== C O N T E N T S =====
+\begin{document}
+ \raggedbottom
+ % Titlepage & ToC
+ % To avoid duplicate page anchors due to reuse of same numbers for
+ % the index (be it as roman numbers)
+ \hypersetup{pageanchor=false,
+ bookmarksnumbered=true,
+ pdfencoding=unicode
+ }
+ \pagenumbering{alph}
+ \begin{titlepage}
+ \vspace*{7cm}
+ \begin{center}%
+ {\Large FMI Ticket System}\\
+ \vspace*{1cm}
+ {\large Generated by Doxygen 1.9.3}\\
+ \end{center}
+ \end{titlepage}
+ \clearemptydoublepage
+ \pagenumbering{roman}
+ \tableofcontents
+ \clearemptydoublepage
+ \pagenumbering{arabic}
+ % re-enable anchors again
+ \hypersetup{pageanchor=true}
+%--- Begin generated contents ---
+\chapter{FMI Tickets System}
+\label{index}\hypertarget{index}{}\input{index}
+\chapter{Hierarchical Index}
+\input{hierarchy}
+\chapter{Class Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Class Documentation}
+\input{classCommand}
+\input{classDate}
+\input{classEvent}
+\input{classEventService}
+\input{classHall}
+\input{classHallService}
+\input{classList}
+\input{classMenu}
+\input{classOrderedList}
+\input{classReservation}
+\input{classString}
+\input{classTicket}
+\chapter{File Documentation}
+\input{Command_8h}
+\input{Command_8h_source}
+\input{Menu_8h}
+\input{Menu_8h_source}
+\input{Toolbox_8hpp}
+\input{Toolbox_8hpp_source}
+\input{Date_8h}
+\input{Date_8h_source}
+\input{List_8hpp}
+\input{List_8hpp_source}
+\input{OrderedList_8hpp}
+\input{OrderedList_8hpp_source}
+\input{String_8h}
+\input{String_8h_source}
+\input{main_8cpp}
+\input{Event_8h}
+\input{Event_8h_source}
+\input{Hall_8h}
+\input{Hall_8h_source}
+\input{Reservation_8h}
+\input{Reservation_8h_source}
+\input{Ticket_8h}
+\input{Ticket_8h_source}
+\input{EventService_8h}
+\input{EventService_8h_source}
+\input{HallService_8h}
+\input{HallService_8h_source}
+\input{StatusCode_8h}
+\input{StatusCode_8h_source}
+\input{FMITicketSystemConsoleUI_8h}
+\input{FMITicketSystemConsoleUI_8h_source}
+%--- End generated contents ---
+% Index
+ \backmatter
+ \newpage
+ \phantomsection
+ \clearemptydoublepage
+ \addcontentsline{toc}{chapter}{\indexname}
+ \printindex
+% Required for some languages (in combination with latexdocumentpre from the header)
+\end{document}
diff --git a/Year 1/Object-oriented Programming/Project 1/docs/latex/tabu_doxygen.sty b/Year 1/Object-oriented Programming/Project 1/docs/latex/tabu_doxygen.sty
new file mode 100644
index 0000000..3f17d1d
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Project 1/docs/latex/tabu_doxygen.sty
@@ -0,0 +1,2557 @@
+%%
+%% This is file `tabu.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tabu.dtx (with options: `package')
+%%
+%% This is a generated file.
+%% Copyright (FC) 2010-2011 - lppl
+%%
+%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars
+%%
+%% **********************************************************************************************
+%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal
+%% \begin{tabu} to <dimen>{ preamble } => target specified
+%% \begin{tabu} spread <dimen>{ preamble } => target relative to the ``natural width''
+%%
+%% tabu works in text and in math modes.
+%%
+%% X columns: automatic width adjustment + horizontal and vertical alignment
+%% \begin{tabu} { X[4c] X[1c] X[-2ml] }
+%%
+%% Horizontal lines and / or leaders:
+%% \hline\hline => double horizontal line
+%% \firsthline\hline => for nested tabulars
+%% \lasthline\hline => for nested tabulars
+%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader)
+%% Automatic lines / leaders :
+%% \everyrow{\hline\hline}
+%%
+%% Vertical lines and / or leaders:
+%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }
+%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }
+%%
+%% Fixed vertical spacing adjustment:
+%% \extrarowheight=<dimen> \extrarowdepth=<dimen>
+%% or: \extrarowsep=<dimen> => may be prefixed by \global
+%%
+%% Dynamic vertical spacing adjustment:
+%% \abovetabulinesep=<dimen> \belowtabulinesep=<dimen>
+%% or: \tabulinesep=<dimen> => may be prefixed by \global
+%%
+%% delarray.sty shortcuts: in math and text modes
+%% \begin{tabu} .... \({ preamble }\)
+%%
+%% Algorithms reports:
+%% \tracingtabu=1 \tracingtabu=2
+%%
+%% **********************************************************************************************
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work consists of the main source file tabu.dtx
+%% and the derived files
+%% tabu.sty, tabu.pdf, tabu.ins
+%%
+%% tabu : Flexible LaTeX tabulars
+%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
+%%
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]
+\RequirePackage{array}[2008/09/09]
+\RequirePackage{varwidth}[2009/03/30]
+\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
+\let\tabu@AtEnd\@empty
+\def\TMP@EnsureCode#1={%
+ \edef\tabu@AtEnd{\tabu@AtEnd
+ \catcode#1 \the\catcode#1}%
+ \catcode#1=%
+}% \TMP@EnsureCode
+\TMP@EnsureCode 33 = 12 % !
+\TMP@EnsureCode 58 = 12 % : (for siunitx)
+\TMP@EnsureCode124 = 12 % |
+\TMP@EnsureCode 36 = 3 % $ = math shift
+\TMP@EnsureCode 38 = 4 % & = tab alignment character
+\TMP@EnsureCode 32 = 10 % space
+\TMP@EnsureCode 94 = 7 % ^
+\TMP@EnsureCode 95 = 8 % _
+%% Constants --------------------------------------------------------
+\newcount \c@taburow \def\thetaburow {\number\c@taburow}
+\newcount \tabu@nbcols
+\newcount \tabu@cnt
+\newcount \tabu@Xcol
+\let\tabu@start \@tempcnta
+\let\tabu@stop \@tempcntb
+\newcount \tabu@alloc \tabu@alloc=\m@ne
+\newcount \tabu@nested
+\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc}
+\newdimen \tabu@target
+\newdimen \tabu@spreadtarget
+\newdimen \tabu@naturalX
+\newdimen \tabucolX
+\let\tabu@DELTA \@tempdimc
+\let\tabu@thick \@tempdima
+\let\tabu@on \@tempdimb
+\let\tabu@off \@tempdimc
+\newdimen \tabu@Xsum
+\newdimen \extrarowdepth
+\newdimen \abovetabulinesep
+\newdimen \belowtabulinesep
+\newdimen \tabustrutrule \tabustrutrule \z@
+\newtoks \tabu@thebody
+\newtoks \tabu@footnotes
+\newsavebox \tabu@box
+\newsavebox \tabu@arstrutbox
+\newsavebox \tabu@hleads
+\newsavebox \tabu@vleads
+\newif \iftabu@colortbl
+\newif \iftabu@siunitx
+\newif \iftabu@measuring
+\newif \iftabu@spread
+\newif \iftabu@negcoef
+\newif \iftabu@everyrow
+\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue}
+\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse}
+\newif \iftabu@long
+\newif \iftabuscantokens
+\def\tabu@rescan {\tabu@verbatim \scantokens }
+%% Utilities (for internal usage) -----------------------------------
+\def\tabu@gobblespace #1 {#1}
+\def\tabu@gobbletoken #1#2{#1}
+\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex}
+\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble
+ \else\ifx \@sptoken\@let@token
+ \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX
+ \fi\fi
+}% \tabu@gobblex
+\def\tabu@X{^^J}
+{\obeyspaces
+\global\let\tabu@spxiii= % saves an active space (for \ifx)
+\gdef\tabu@@spxiii{ }}
+\def\tabu@ifenvir {% only for \multicolumn
+ \expandafter\tabu@if@nvir\csname\@currenvir\endcsname
+}% \tabu@ifenvir
+\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else
+ \ifx\longtabu#1first\else
+ second\fi\fi oftwo\endcsname
+}% \tabu@ifenvir
+\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi}
+{\catcode`\&=3
+\gdef\tabu@strtrim #1{% #1 = control sequence to trim
+ \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi
+ \let\tabu@c@l@r \@empty \let#1\@empty
+ \else \expandafter \tabu@trimspaces #1&#1\@nnil
+ \fi
+}% \tabu@strtrim
+\gdef\tabu@trimspaces #1&#2\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& &#2}%
+\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&}
+\gdef\tabu@lastspace #1&#2&#3{\def #3{#1}%
+ \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi
+ \tabu@trimspaces #1&#3\@nnil}
+}% \catcode
+\def\tabu@sanitizearg #1#2{{%
+ \csname \ifcsname if@safe@actives\endcsname % <babel>
+ @safe@activestrue\else
+ relax\fi \endcsname
+ \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2%
+ \expandafter}\expandafter\def\expandafter#2\expandafter{#2}%
+}% \tabu@sanitizearg
+\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}%
+ \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!!
+}% \tabu@textbar
+\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi}
+\def\tabu@everyrow@egroup{%
+ \iftabu@everyrow \expandafter \endgroup \the\toks@
+ \else \ifnum0=`{\fi}%
+ \fi
+}% \tabu@everyrow@egroup
+\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule
+ height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+ depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+ width \z@}%
+}% \tabu@arstrut
+\def\tabu@rearstrut {%
+ \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax
+ \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax
+ \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima
+ \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi
+ \tabu@mkarstrut
+ \fi
+}% \tabu@rearstrut
+\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi}
+\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox
+ \hbox to\z@{\hbox to\z@{\hss
+ {\tabu@DBG{cyan}\vrule
+ height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+ depth \z@
+ width \tabustrutrule}\kern-\tabustrutrule
+ {\tabu@DBG{pink}\vrule
+ height \z@
+ depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+ width \tabustrutrule}}}%
+}% \tabu@DBG@arstrut
+\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
+ \@nextchar}}%
+\def\tabu@savedecl{\ifcat$\d@llarend\else
+ \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode
+}% \tabu@savedecl
+\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@}
+\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k }
+\let\tabu@trialh@@k \@empty
+\def\tabu@nowrite #1#{{\afterassignment}\toks@}
+\let\tabu@write\write
+\let\tabu@immediate\immediate
+\def\tabu@WRITE{\begingroup
+ \def\immediate\write{\aftergroup\endgroup
+ \tabu@immediate\tabu@write}%
+}% \tabu@WRITE
+\expandafter\def\expandafter\tabu@GenericError\expandafter{%
+ \expandafter\tabu@WRITE\GenericError}
+\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}}
+\def\tabu@noxfootnote [#1]{\@gobble}
+\def\tabu@nocolor #1#{\@gobble}
+\newcommand*\tabu@norowcolor[2][]{}
+\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
+ \futurelet\@let@token \tabu@m@ybesiunitx}
+\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {%
+ \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi
+ \tabu@temp}% \tabu@m@ybesiunitx
+}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname
+\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}%
+%% Fixed vertical spacing adjustment: \extrarowsep ------------------
+\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}%
+ \iftabu@everyrow \aftergroup\tabu@Gextra
+ \else \aftergroup\tabu@n@Gextra
+ \fi
+ \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra
+}% \extrarowsep
+\def\tabu@extra {\@ifnextchar_%
+ {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}
+ {\ifx ^\@let@token \def\tabu@temp{%
+ \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}%
+ \else \let\tabu@temp \@empty
+ \afterassignment \tabu@setextrasep \extrarowdepth
+ \fi \tabu@temp}%
+}% \tabu@extra
+\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@extr@ #1#2{\@ifnextchar^%
+ {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}
+ {\ifx _\@let@token \def\tabu@temp{%
+ \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}%
+ \else \let\tabu@temp \@empty
+ \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+ \fi \tabu@temp}%
+}% \tabu@extr@
+\def\tabu@setextrasep {\extrarowheight=\extrarowdepth
+ \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+}% \tabu@setextrasep
+\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi}
+\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi}
+\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra}
+\let\tabu@C@extra \z@
+\let\tabu@G@extra \@empty
+%% Dynamic vertical spacing adjustment: \tabulinesep ----------------
+\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}%
+ \iftabu@everyrow \aftergroup\tabu@Glinesep
+ \else \aftergroup\tabu@n@Glinesep
+ \fi
+ \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep
+}% \tabulinesep
+\def\tabu@linesep {\@ifnextchar_%
+ {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}
+ {\ifx ^\@let@token \def\tabu@temp{%
+ \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}%
+ \else \let\tabu@temp \@empty
+ \afterassignment \tabu@setlinesep \abovetabulinesep
+ \fi \tabu@temp}%
+}% \tabu@linesep
+\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@sets@p #1#2{\@ifnextchar^%
+ {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}
+ {\ifx _\@let@token \def\tabu@temp{%
+ \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}%
+ \else \let\tabu@temp \@empty
+ \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+ \fi \tabu@temp}%
+}% \tabu@sets@p
+\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep
+ \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+}% \tabu@setlinesep
+\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi}
+\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi}
+\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep}
+\let\tabu@C@linesep \z@
+\let\tabu@G@linesep \@empty
+%% \global\extrarowsep and \global\tabulinesep -------------------
+\def\tabu@Gsave #1#2#3#4{\xdef#1{#1%
+ \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}%
+}% \tabu@Gsave
+\def\tabu@Grestore#1#2{%
+ \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax
+ \ifcat$\the\toks\currentgrouplevel$\else
+ \global\let#1\@empty \global\let#2\z@
+ \the\toks\currentgrouplevel
+ \fi
+}% \tabu@Grestore
+%% Setting code for every row ---------------------------------------
+\newcommand*\everyrow{\tabu@everyrow@bgroup
+ \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop
+}% \everyrow
+\def\tabu@evrstartstop {\@ifnextchar^%
+ {\afterassignment \tabu@evrstartstop \tabu@stop=}%
+ {\ifx ^\@let@token
+ \afterassignment\tabu@evrstartstop \tabu@start=%
+ \else \afterassignment\tabu@everyr@w \toks@
+ \fi}%
+}% \tabu@evrstartstop
+\def\tabu@everyr@w {%
+ \xdef\tabu@everyrow{%
+ \noexpand\tabu@everyrowfalse
+ \let\noalign \relax
+ \noexpand\tabu@rowfontreset
+ \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors
+ \let\noexpand\tabu@docline \noexpand\tabu@docline@evr
+ \the\toks@
+ \noexpand\tabu@evrh@@k
+ \noexpand\tabu@rearstrut
+ \global\advance\c@taburow \@ne}%
+ \iftabu@everyrow \toks@\expandafter
+ {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}%
+ \else \xdef\tabu@evr@G{\the\toks@}%
+ \fi
+ \tabu@everyrow@egroup
+}% \tabu@everyr@w
+\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only
+\tabu@evr{}
+%% line style and leaders -------------------------------------------
+\newcommand*\newtabulinestyle [1]{%
+ {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}%
+}% \newtabulinestyle
+\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}%
+ \tabu@sanitizearg {#1}\@tempa
+ \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi
+ \global\expandafter\let
+ \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi
+}% \tabu@newlinestyle
+\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}%
+ \iftabu@everyrow
+ \toks@\expandafter{\expandafter \def \expandafter
+ \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}%
+ \gdef\tabu@ls@{\tabu@ls@L}%
+ \else
+ \global\let\tabu@ls@G \tabu@thestyle
+ \gdef\tabu@ls@{\tabu@ls@G}%
+ \fi
+ \tabu@everyrow@egroup
+}% \tabulinestyle
+\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor}
+\def\tabu@rulecolor #1{\toks@{}%
+ \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1%
+ \tabu@temp
+ \tabu@rulearc
+}% \tabu@rulecolor
+\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp
+ \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}%
+ \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}%
+ \fi
+ \tabu@temp
+}% \tabu@ruledrsc@
+\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}}
+\def\tabu@rule@drsc@ #1#2{%
+ \iftabu@everyrow
+ \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}%
+ \else \toks@{\def\CT@drsc@{\color #1{#2}}}%
+ \fi
+ \else
+ \ifx \\#1#2\\\global\let\CT@drsc@ \relax
+ \else \gdef\CT@drsc@{\color #1{#2}}%
+ \fi
+ \fi
+ \tabu@rulearc
+}% \tabu@rule@drsc@
+\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}}
+\def\tabu@rule@arc@ #1#2{%
+ \iftabu@everyrow
+ \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}%
+ \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}%
+ \fi
+ \toks@\expandafter{\the\toks@
+ \let\tabu@arc@L \CT@arc@
+ \let\tabu@drsc@L \CT@drsc@
+ \ignorespaces}%
+ \else
+ \ifx \\#1#2\\\gdef\CT@arc@{}%
+ \else \gdef\CT@arc@{\color #1{#2}}%
+ \fi
+ \global\let\tabu@arc@G \CT@arc@
+ \global\let\tabu@drsc@G \CT@drsc@
+ \fi
+ \tabu@everyrow@egroup
+}% \tabu@rule@arc@
+\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1}
+\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}}
+\def\tabu@rowc@lors #1#2#3{%
+ \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil
+ \@defaultunits \tabu@start =\number0#1\relax \@nnil
+ \ifnum \count@<\tw@ \count@=\tw@ \fi
+ \advance\tabu@start \m@ne
+ \ifnum \tabu@start<\z@ \tabu@start \z@ \fi
+ \tabu@rowcolorseries #3\in@..\in@ \@nnil
+}% \tabu@rowcolors
+\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {%
+ \ifx \in@#1\relax
+ \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}%
+ \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@
+ \fi
+ \else
+ \ifx \\#2\\\tabu@rowcolorserieserror \fi
+ \tabu@sanitizearg{#1}\tabu@temp
+ \tabu@sanitizearg{#2}\@tempa
+ \advance\count@ \m@ne
+ \iftabu@everyrow
+ \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{%
+ \ifnum ##2=\c@taburow
+ \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi
+ \ifnum \c@taburow<##2 \else
+ \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@
+ \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+ \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+ \rowcolor{tabu@rc@\the\tabu@nested}\fi}%
+ }\edef\x{\noexpand\tabu@rc@ {\the\count@}
+ {\the\tabu@start}
+ {\tabu@temp}
+ {\@tempa}%
+ }\x
+ \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}%
+ \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}%
+ \else % inside \noalign
+ \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}%
+ \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}%
+ \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+ \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}%
+ \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{%
+ \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne
+ \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+ \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+ \rowcolor{tabu@rc@\the\tabu@nested}}%
+ }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x
+ \global\let\tabu@rc@G \tabu@rc@
+ \fi
+ \fi
+ \tabu@everyrow@egroup
+}% \tabu@rowcolorseries
+\tabuDisableCommands {\let\tabu@rc@ \@empty }
+\def\tabu@rowcolorserieserror {\PackageError{tabu}
+ {Invalid syntax for \string\taburowcolors
+ \MessageBreak Please look at the documentation!}\@ehd
+}% \tabu@rowcolorserieserror
+\newcommand*\tabureset {%
+ \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@
+ \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}%
+}% \tabureset
+%% Parsing the line styles ------------------------------------------
+\def\tabu@getline #1{\begingroup
+ \csname \ifcsname if@safe@actives\endcsname % <babel>
+ @safe@activestrue\else
+ relax\fi \endcsname
+ \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa
+ \let\tabu@thestyle \relax
+ \ifcsname tabu@linestyle@\@tempa \endcsname
+ \edef\tabu@thestyle{\endgroup
+ \def\tabu@thestyle{\expandafter\noexpand
+ \csname tabu@linestyle@\@tempa\endcsname}%
+ }\tabu@thestyle
+ \else \expandafter\tabu@definestyle \tabu@temp \@nil
+ \fi
+}% \tabu@getline
+\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter
+ \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen
+ \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined
+ \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs
+ \def\tabu@temp{\tabu@getparam{thick}}%
+ \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}%
+ \fi
+ {%
+ \let\tabu@ \relax
+ \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-))
+ \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}%
+ \expandafter}\expandafter
+ \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-)
+ \def\;{\def\:}%
+ \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10)
+ \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-)
+ \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi
+ \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi
+ \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi
+ \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen
+ \tabu@on \tabulineon \fi\fi
+ \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen
+ \tabu@off \tabulineoff \fi\fi
+ \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi
+ \in@true % <leaders>
+ \else \in@false % <rule>
+ \fi
+ \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}%
+ \else \edef\tabu@thick{\the\tabu@thick}%
+ \fi
+ \edef \tabu@thestyle ##1##2{\endgroup
+ \def\tabu@thestyle{%
+ \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick}
+ {\the\tabu@on}{##1}
+ {\the\tabu@off}{##2}%
+ \else \noexpand\tabu@rulesstyle
+ {##1\vrule width \tabu@thick}%
+ {##1\leaders \hrule height \tabu@thick \hfil}%
+ \fi}%
+ }\expandafter \expandafter
+ \expandafter \tabu@thestyle \expandafter
+ \expandafter \expandafter
+ {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}%
+}% \tabu@definestyle
+{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active
+ \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}}
+ \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space}
+}% \catcode
+\def\tabu@oxiii #1{%
+ \ifcase \ifx n#1\z@ \else
+ \ifx f#1\@ne\else
+ \tw@ \fi\fi
+ \expandafter\tabu@onxiii
+ \or \expandafter\tabu@ofxiii
+ \else o%
+ \fi#1}%
+\def\tabu@onxiii #1#2{%
+ \ifcase \ifx !#2\tw@ \else
+ \ifcat.\noexpand#2\z@ \else
+ \ifx \tabu@spxiii#2\@ne\else
+ \tw@ \fi\fi\fi
+ \tabu@getparam{on}#2\expandafter\@gobble
+ \or \expandafter\tabu@onxiii % (space is active)
+ \else o\expandafter\@firstofone
+ \fi{#1#2}}%
+\def\tabu@ofxiii #1#2{%
+ \ifx #2f\expandafter\tabu@offxiii
+ \else o\expandafter\@firstofone
+ \fi{#1#2}}
+\def\tabu@offxiii #1#2{%
+ \ifcase \ifx !#2\tw@ \else
+ \ifcat.\noexpand#2\z@ \else
+ \ifx\tabu@spxiii#2\@ne \else
+ \tw@ \fi\fi\fi
+ \tabu@getparam{off}#2\expandafter\@gobble
+ \or \expandafter\tabu@offxiii % (space is active)
+ \else o\expandafter\@firstofone
+ \fi{#1#2}}
+\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=}
+\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef
+ \ifx \tabu@#1\else % no more spec
+ \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi
+}% \tabu@getcolor
+\def\tabu@getc@l@r #1\tabu@ {%
+ \def\tabu@temp{#1}\tabu@strtrim \tabu@temp
+ \ifx \tabu@temp\@empty
+ \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists
+ \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r
+ \else \let\tabu@c@lon \tabu@c@l@r
+ \fi
+ %\else \tabu@warncolour{\tabu@temp}%
+ \fi%\fi
+ \tabu@ % next spec
+}% \tabu@getc@l@r
+\def\tabu@warncolour #1{\PackageWarning{tabu}
+ {Color #1 is not defined. Default color used}%
+}% \tabu@warncolour
+\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%
+ \ifx \tabu@leaders\tabu@leaders@G \else
+ \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi
+}% \tabu@leadersstyle
+\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined
+ \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}%
+}% \tabu@rulesstyle
+%% The leaders boxes ------------------------------------------------
+\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+ {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor
+ {% % but the leaders boxes should have colors !
+ \def\@therule{\vrule}\def\@thick{height}\def\@length{width}%
+ \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}%
+ \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}%
+ \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+ \global\let\tabu@thehleaders \tabu@theleaders
+ }%
+ {%
+ \def\@therule{\hrule}\def\@thick{width}\def\@length{height}%
+ \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}%
+ \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}%
+ \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+ \global\let\tabu@thevleaders \tabu@theleaders
+ }%
+ \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%
+ }%
+}% \tabu@LEADERS
+\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@}
+\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+ \global\setbox \tabu@leads=\@box{%
+ {#3\tabu@therule{#1}{#2}}%
+ \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi
+ {#3\tabu@therule{#1}{#2}}}%
+ \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss
+ {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}%
+ \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {%
+ {##1\tabu@therule{#1}{#2}}%
+ \xleaders \copy\tabu@leads \@ss
+ \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}%
+ }\tabu@theleaders{#3}%
+}% \tabu@l@@d@rs
+%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
+\newcommand*\tabu {\tabu@longfalse
+ \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
+ \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
+ \expandafter\let\csname tabu*\endcsname \tabu
+ \expandafter\def\csname endtabu*\endcsname{\endtabu}%
+ \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {tabu}
+\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
+\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu}
+\newcommand*\longtabu {\tabu@longtrue
+ \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
+ \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
+ \LTchunksize=\@M
+ \expandafter\let\csname tabu*\endcsname \tabu
+ \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}%
+ \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
+ \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {longtabu}
+\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu}
+\def\tabu@nolongtabu{\PackageError{tabu}
+ {longtabu requires the longtable package}\@ehd}
+%% Read the target and then : \tabular or \@array ------------------
+\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
+\def\tabu@sett@rget {\tabu@target \z@
+ \ifcase \ifx \bgroup\@let@token \z@ \else
+ \ifx \@sptoken\@let@token \@ne \else
+ \if t\@let@token \tw@ \else
+ \if s\@let@token \thr@@\else
+ \z@\fi\fi\fi\fi
+ \expandafter\tabu@begin
+ \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget
+ \or \expandafter\tabu@to
+ \or \expandafter\tabu@spread
+ \fi
+}% \tabu@sett@rget
+\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget}
+\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget}
+\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target }
+\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget }
+\def\tabu@linegoalt@rget {%
+ \ifx \tabu@temp\LNGL@setlinegoal
+ \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal
+ \tabu@begin
+}% \tabu@linegoalt@rget
+\def\tabu@begin #1#{%
+ \iftabu@measuring \expandafter\tabu@nestedmeasure \fi
+ \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty
+ \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}%
+ \fi
+ \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil
+}% \tabu@begin
+\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup
+ \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}%
+ \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }%
+}% \tabu@tabu@
+\def\tabu@nestedmeasure {%
+ \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax
+ \tabu@spreadtrue
+ \else \begingroup \iffalse{\fi \ifnum0=`}\fi
+ \toks@{}\def\tabu@stack{b}%
+ \expandafter\tabu@collectbody\expandafter\tabu@quickrule
+ \expandafter\endgroup
+ \fi
+}% \tabu@nestedmeasure
+\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target}
+%% \tabu@setup \tabu@init \tabu@indent
+\def\tabu@setup{\tabu@alloc@
+ \ifcase \tabu@nested
+ \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@
+ \let\tabu@afterendpar \par
+ \fi\fi\fi
+ \def\tabu@aligndefault{c}\tabu@init \tabu@indent
+ \else % <nested tabu>
+ \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth
+ \fi
+ \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined
+ \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}%
+ \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu...
+ \let\@endpbox \tabu@endpbox % idem " " " " " "
+ \let\@tabarray \tabu@tabarray % idem " " " " " "
+ \tabu@setcleanup \tabu@setreset
+}% \tabu@setup
+\def\tabu@init{\tabu@starttimer \tabu@measuringfalse
+ \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}%
+ \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline
+ \let\firstline \tabu@firstline \let\lastline \tabu@lastline
+ \let\hline \tabu@hline \let\@xhline \tabu@xhline
+ \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox
+ \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi
+ \tabu@trivlist %<restore \\=\@normalcr inside lists>
+ \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext
+ \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering
+ \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft
+ \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering
+ \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft
+ \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont
+ \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x
+ \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar
+ \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok
+ \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn
+ \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!!
+ \let\tabu@endpbox \@endpbox % idem " " " " " " "
+ \let\tabu@tabarray \@tabarray % idem " " " " " " "
+ \tabu@adl@fix \let\endarray \tabu@endarray % <fix> colortbl & arydshln (delarray)
+ \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi
+}% \tabu@init
+\def\tabu@indent{% correction for indentation
+ \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget
+ \everypar\expandafter{%
+ \the\everypar\everypar\expandafter{\the\everypar}%
+ \setbox\z@=\lastbox
+ \ifdim\wd\z@>\z@ \edef\tabu@thetarget
+ {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi
+ \box\z@}%
+ \fi\fi
+}% \tabu@indent
+\def\tabu@setcleanup {% saves last global assignments
+ \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax
+ \def\tabu@aftergroupcleanup{%
+ \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}%
+ \else
+ \def\tabu@aftergroupcleanup{%
+ \aftergroup\aftergroup\aftergroup\tabu@cleanup
+ \let\tabu@aftergroupcleanup \relax}%
+ \fi
+ \let\tabu@arc@Gsave \tabu@arc@G
+ \let\tabu@arc@G \tabu@arc@L % <init>
+ \let\tabu@drsc@Gsave \tabu@drsc@G
+ \let\tabu@drsc@G \tabu@drsc@L % <init>
+ \let\tabu@ls@Gsave \tabu@ls@G
+ \let\tabu@ls@G \tabu@ls@L % <init>
+ \let\tabu@rc@Gsave \tabu@rc@G
+ \let\tabu@rc@G \tabu@rc@L % <init>
+ \let\tabu@evr@Gsave \tabu@evr@G
+ \let\tabu@evr@G \tabu@evr@L % <init>
+ \let\tabu@celllalign@save \tabu@celllalign
+ \let\tabu@cellralign@save \tabu@cellralign
+ \let\tabu@cellleft@save \tabu@cellleft
+ \let\tabu@cellright@save \tabu@cellright
+ \let\tabu@@celllalign@save \tabu@@celllalign
+ \let\tabu@@cellralign@save \tabu@@cellralign
+ \let\tabu@@cellleft@save \tabu@@cellleft
+ \let\tabu@@cellright@save \tabu@@cellright
+ \let\tabu@rowfontreset@save \tabu@rowfontreset
+ \let\tabu@@rowfontreset@save\tabu@@rowfontreset
+ \let\tabu@rowfontreset \@empty
+ \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset
+ \edef\c@taburow@save {\the\c@taburow}%
+ \edef\tabu@naturalX@save {\the\tabu@naturalX}%
+ \let\tabu@naturalXmin@save \tabu@naturalXmin
+ \let\tabu@naturalXmax@save \tabu@naturalXmax
+ \let\tabu@mkarstrut@save \tabu@mkarstrut
+ \edef\tabu@clarstrut{%
+ \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax
+ \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax
+ \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}%
+}% \tabu@setcleanup
+\def\tabu@cleanup {\begingroup
+ \globaldefs\@ne \tabu@everyrowtrue
+ \let\tabu@arc@G \tabu@arc@Gsave
+ \let\CT@arc@ \tabu@arc@G
+ \let\tabu@drsc@G \tabu@drsc@Gsave
+ \let\CT@drsc@ \tabu@drsc@G
+ \let\tabu@ls@G \tabu@ls@Gsave
+ \let\tabu@ls@ \tabu@ls@G
+ \let\tabu@rc@G \tabu@rc@Gsave
+ \let\tabu@rc@ \tabu@rc@G
+ \let\CT@do@color \relax
+ \let\tabu@evr@G \tabu@evr@Gsave
+ \let\tabu@celllalign \tabu@celllalign@save
+ \let\tabu@cellralign \tabu@cellralign@save
+ \let\tabu@cellleft \tabu@cellleft@save
+ \let\tabu@cellright \tabu@cellright@save
+ \let\tabu@@celllalign \tabu@@celllalign@save
+ \let\tabu@@cellralign \tabu@@cellralign@save
+ \let\tabu@@cellleft \tabu@@cellleft@save
+ \let\tabu@@cellright \tabu@@cellright@save
+ \let\tabu@rowfontreset \tabu@rowfontreset@save
+ \let\tabu@@rowfontreset \tabu@@rowfontreset@save
+ \tabu@naturalX =\tabu@naturalX@save
+ \let\tabu@naturalXmax \tabu@naturalXmax@save
+ \let\tabu@naturalXmin \tabu@naturalXmin@save
+ \let\tabu@mkarstrut \tabu@mkarstrut@save
+ \c@taburow =\c@taburow@save
+ \ifcase \tabu@nested \tabu@alloc \m@ne\fi
+ \endgroup % <end of \globaldefs>
+ \ifcase \tabu@nested
+ \the\tabu@footnotes \global\tabu@footnotes{}%
+ \tabu@afterendpar \tabu@elapsedtime
+ \fi
+ \tabu@clarstrut
+ \everyrow\expandafter {\tabu@evr@G}%
+}% \tabu@cleanup
+\let\tabu@afterendpar \relax
+\def\tabu@setreset {%
+ \edef\tabu@savedparams {% \relax for \tabu@message@save
+ \ifmmode \col@sep \the\arraycolsep
+ \else \col@sep \the\tabcolsep \fi \relax
+ \arrayrulewidth \the\arrayrulewidth \relax
+ \doublerulesep \the\doublerulesep \relax
+ \extratabsurround \the\extratabsurround \relax
+ \extrarowheight \the\extrarowheight \relax
+ \extrarowdepth \the\extrarowdepth \relax
+ \abovetabulinesep \the\abovetabulinesep \relax
+ \belowtabulinesep \the\belowtabulinesep \relax
+ \def\noexpand\arraystretch{\arraystretch}%
+ \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}%
+ \begingroup
+ \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu
+ \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi
+ \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi
+ \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L
+ \expandafter \endgroup \expandafter
+ \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena
+ \let\tabu@arc@G \tabu@arc@L
+ \let\tabu@drsc@G \tabu@drsc@L
+ \let\tabu@ls@G \tabu@ls@L
+ \let\tabu@rc@G \tabu@rc@L
+ \let\tabu@evr@G \tabu@evr@L}%
+ \def\tabu@reset{\tabu@savedparams
+ \tabu@everyrowtrue \c@taburow \z@
+ \let\CT@arc@ \tabu@arc@L
+ \let\CT@drsc@ \tabu@drsc@L
+ \let\tabu@ls@ \tabu@ls@L
+ \let\tabu@rc@ \tabu@rc@L
+ \global\tabu@alloc \tabu@alloc@save
+ \everyrow\expandafter{\tabu@evr@L}}%
+}% \tabu@reset
+\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}}
+\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}}
+%% The Rewriting Process -------------------------------------------
+\def\tabu@newcolumntype #1{%
+ \expandafter\tabu@new@columntype
+ \csname NC@find@\string#1\expandafter\endcsname
+ \csname NC@rewrite@\string#1\endcsname
+ {#1}%
+}% \tabu@newcolumntype
+\def\tabu@new@columntype #1#2#3{%
+ \def#1##1#3{\NC@{##1}}%
+ \let#2\relax \newcommand*#2%
+}% \tabu@new@columntype
+\def\tabu@privatecolumntype #1{%
+ \expandafter\tabu@private@columntype
+ \csname NC@find@\string#1\expandafter\endcsname
+ \csname NC@rewrite@\string#1\expandafter\endcsname
+ \csname tabu@NC@find@\string#1\expandafter\endcsname
+ \csname tabu@NC@rewrite@\string#1\endcsname
+ {#1}%
+}% \tabu@privatecolumntype
+\def\tabu@private@columntype#1#2#3#4{%
+ \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}%
+ \tabu@new@columntype#3#4%
+}% \tabu@private@columntype
+\let\tabu@privatecolumns \@empty
+\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
+ \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
+ \NC@do #1}}%
+\let\tabu@highprioritycolumns \@empty
+%% The | ``column'' : rewriting process --------------------------
+\tabu@privatecolumntype |{\tabu@rewritevline}
+\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
+ \expandafter \NC@find \tabu@rewritten}
+\def\tabu@lines #1{%
+ \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi
+ \NC@list\expandafter{\the\NC@list \NC@do #1}%
+}% \tabu@lines@
+\def\tabu@vlinearg #1{%
+ \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}%
+ \else\tabu@getline {#1}%
+ \fi
+ \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}%
+ }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}%
+ \expandafter \tabu@keepls \tabu@thestyle \@nil
+}% \tabu@vlinearg
+\def\tabu@keepls #1\@nil{%
+ \ifcat $\@cdr #1\@nil $%
+ \ifx \relax#1\else
+ \ifx \tabu@ls@#1\else
+ \let#1\relax
+ \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+ \tabu@savels\noexpand#1}\fi\fi\fi
+}% \tabu@keepls
+\def\tabu@thevline {\begingroup
+ \ifdefined\tabu@leaders
+ \setbox\@tempboxa=\vtop to\dimexpr
+ \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}%
+ \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox
+ \box\@tempboxa
+ \else
+ \tabu@thevrule
+ \fi \endgroup
+}% \tabu@thevline
+\def\tabu@savels #1{%
+ \expandafter\let\csname\string#1\endcsname #1%
+ \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset
+ \tabu@resetls#1}}%
+\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}%
+%% \multicolumn inside tabu environment -----------------------------
+\tabu@newcolumntype \tabu@rewritemulticolumn{%
+ \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group
+ \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+ \tabu@savedecl
+ \tabu@privatecolumns
+ \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}%
+ \let\tabu@savels \relax
+ \NC@find
+}% \tabu@rewritemulticolumn
+\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup}
+\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI}
+\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup
+ \tabu@everyrowtrue
+ \NC@list{\NC@do \tabu@rewritemulticolumn}%
+ \expandafter\@gobbletwo % gobbles \multispan{#1}
+ \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}%
+ {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
+ {#3}}%
+}% \tabu@multic@lumn
+%% The X column(s): rewriting process -----------------------------
+\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
+\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
+\def\tabu@siunitx #1{\@ifnextchar \bgroup
+ {\tabu@rewriteX@Ss{#1}}
+ {\tabu@nosiunitx{#1}}}
+\def\tabu@rewriteX@Ss #1#2{\@temptokena{}%
+ \@defaultunits \let\tabu@temp =#2\relax\@nnil
+ \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi
+ \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}%
+ }\expandafter\NC@find \the\@temptokena \relax
+ }\expandafter\NC@rewrite@S \@gobble #2\relax
+ \else \tabu@siunitxerror
+ \fi
+ \expandafter \NC@find \tabu@rewritten
+}% \tabu@rewriteX@Ss
+\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column !
+ \MessageBreak X column can only embed siunitx S or s columns}\@ehd
+}% \tabu@siunitxerror
+\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}%
+ \iftabu@measuring
+ \else \tabu@measuringtrue % first X column found in the preamble
+ \let\@halignto \relax \let\tabu@halignto \relax
+ \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@
+ \else \tabu@spreadtarget \z@ \fi
+ \ifdim \tabu@target=\z@
+ \setlength\tabu@target \tabu@thetarget
+ \tabu@message{\tabu@message@defaulttarget}%
+ \else \tabu@message{\tabu@message@target}\fi
+ \fi
+}% \tabu@rewriteX
+\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax
+ \def\tabu@rewritten{l}}
+\def\tabu@Xarg #1#2#3{%
+ \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty
+ \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty
+ \ifx\\#1\\% <shortcut when no option>
+ \def\tabu@rewritten{p}\tabucolX \p@ % <default coef = 1>
+ \else
+ \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@
+ \tabu@Xparse {}#1\relax
+ \fi
+ \tabu@Xrewritten{#2}{#3}%
+}% \tabu@Xarg
+\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest}
+\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}}
+\def\tabu@Xtest{%
+ \ifcase \ifx \relax\@let@token \z@ \else
+ \if ,\@let@token \m@ne\else
+ \if p\@let@token 1\else
+ \if m\@let@token 2\else
+ \if b\@let@token 3\else
+ \if l\@let@token 4\else
+ \if c\@let@token 5\else
+ \if r\@let@token 6\else
+ \if j\@let@token 7\else
+ \if L\@let@token 8\else
+ \if C\@let@token 9\else
+ \if R\@let@token 10\else
+ \if J\@let@token 11\else
+ \ifx \@sptoken\@let@token 12\else
+ \if .\@let@token 13\else
+ \if -\@let@token 13\else
+ \ifcat $\@let@token 14\else
+ 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+ \or \tabu@Xtype {p}%
+ \or \tabu@Xtype {m}%
+ \or \tabu@Xtype {b}%
+ \or \tabu@Xalign \raggedright\relax
+ \or \tabu@Xalign \centering\relax
+ \or \tabu@Xalign \raggedleft\relax
+ \or \tabu@Xalign \tabu@justify\relax
+ \or \tabu@Xalign \RaggedRight\raggedright
+ \or \tabu@Xalign \Centering\centering
+ \or \tabu@Xalign \RaggedLeft\raggedleft
+ \or \tabu@Xalign \justifying\tabu@justify
+ \or \expandafter \tabu@Xparsespace
+ \or \expandafter \tabu@Xcoef
+ \or \expandafter \tabu@Xm@th
+ \or \tabu@Xcoef{}%
+ \else\expandafter \tabu@Xparse
+ \fi
+}% \tabu@Xtest
+\def\tabu@Xalign #1#2{%
+ \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu}
+ {Duplicate horizontal alignment specification}\fi
+ \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax
+ \else \def\tabu@Xlcr{#2}\let#2\relax\fi
+ \expandafter\tabu@Xparse
+}% \tabu@Xalign
+\def\tabu@Xtype #1{%
+ \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu}
+ {Duplicate vertical alignment specification}\fi
+ \def\tabu@rewritten{#1}\expandafter\tabu@Xparse
+}% \tabu@Xtype
+\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}%
+ \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi
+}% \tabu@Xcoef
+\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@
+ \tabu@Xparse{}%
+}% \tabu@Xc@ef
+\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp}
+\def\tabu@Xd@sp{\let\tabu@Xmath=$%
+ \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}%
+ \expandafter\tabu@Xparse
+ \else \expandafter\tabu@Xparse\expandafter{\expandafter}%
+ \fi
+}% \tabu@Xd@sp
+\def\tabu@Xrewritten {%
+ \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi
+ \ifdim \tabucolX<\z@ \tabu@negcoeftrue
+ \else\ifdim \tabucolX=\z@ \tabucolX \p@
+ \fi\fi
+ \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}%
+ \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}%
+ \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{%
+ >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}%
+ \tabu@rewritten {\tabu@hsize \tabu@temp}%
+ <{##2\ifx$\tabu@Xmath$\fi}}%
+ }\tabu@rewritten
+}% \tabu@Xrewritten
+\def\tabu@hsize #1#2{%
+ \ifdim #2\p@<\z@
+ \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else
+ \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi
+ \fi
+ \else #2\tabucolX
+ \fi
+}% \tabu@hsize
+%% \usetabu and \preamble: rewriting process ---------------------
+\tabu@privatecolumntype \usetabu [1]{%
+ \ifx\\#1\\\tabu@saveerr{}\else
+ \@ifundefined{tabu@saved@\string#1}
+ {\tabu@saveerr{#1}}
+ {\let\tabu@rewriteX \tabu@rewriteXrestore
+ \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}%
+ \fi
+}% \NC@rewrite@\usetabu
+\tabu@privatecolumntype \preamble [1]{%
+ \ifx\\#1\\\tabu@saveerr{}\else
+ \@ifundefined{tabu@saved@\string#1}
+ {\tabu@saveerr{#1}}
+ {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}%
+ \fi
+}% \NC@rewrite@\preamble
+%% Controlling the rewriting process -------------------------------
+\tabu@newcolumntype \tabu@rewritefirst{%
+ \iftabu@long \aftergroup \tabu@longpream % <the whole implementation is here !>
+ \else \aftergroup \tabu@pream
+ \fi
+ \let\tabu@ \relax \let\tabu@hsize \relax
+ \let\tabu@Xcoefs \@empty \let\tabu@savels \relax
+ \tabu@Xcol \z@ \tabu@cnt \tw@
+ \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse
+ \global\setbox\@arstrutbox \box\@arstrutbox
+ \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+ \NC@list\expandafter{\the\NC@list \NC@do X}%
+ \iftabu@siunitx % <siunitx S and s columns>
+ \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi
+ \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}%
+ \expandafter\def\expandafter\tabu@NC@list\expandafter{%
+ \the\expandafter\NC@list \tabu@NC@list}% % * | X S <original>
+ \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu
+ \expandafter \NC@do \expandafter\preamble
+ \the\NC@list \NC@do \tabu@rewritemiddle
+ \NC@do \tabu@rewritelast}%
+ \tabu@savedecl
+ \tabu@privatecolumns
+ \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle
+}% NC@rewrite@\tabu@rewritefirst
+\tabu@newcolumntype \tabu@rewritemiddle{%
+ \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast
+}% \NC@rewrite@\tabu@rewritemiddle
+\tabu@newcolumntype \tabu@rewritelast{%
+ \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne
+ \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle
+ \NC@do \tabu@rewritelast}%
+ \else \let\tabu@prev\tabu@temp
+ \fi
+ \ifcase \tabu@cnt \expandafter\tabu@endrewrite
+ \else \expandafter\NC@find \expandafter\tabu@rewritemiddle
+ \fi
+}% \NC@rewrite@\tabu@rewritelast
+%% Choosing the strategy --------------------------------------------
+\def\tabu@endrewrite {%
+ \let\tabu@temp \NC@find
+ \ifx \@arrayright\relax \let\@arrayright \@empty \fi
+ \count@=%
+ \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print
+ \iftabu@measuring
+ \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+ \tabu@target \csname tabu@\the\tabu@nested.T\endcsname
+ \tabucolX \csname tabu@\the\tabu@nested.X\endcsname
+ \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}%
+ \fi
+ \else\iftabu@measuring 4 % X columns
+ \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer
+ \tabu@target \the\tabu@target
+ \tabu@spreadtarget \the\tabu@spreadtarget}%
+ \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}%
+ \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}%
+ \let\tabu@Xcoefs \relax
+ \else\ifcase\tabu@nested \thr@@ % outer, no X
+ \global\let\tabu@afterendpar \relax
+ \else \@ne % inner, no X, outer in mode 1 or 2
+ \fi
+ \ifdefined\tabu@usetabu
+ \else \ifdim\tabu@target=\z@
+ \else \let\tabu@temp \tabu@extracolsep
+ \fi\fi
+ \fi
+ \fi
+ \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}%
+ \tabu@temp
+}% \tabu@endrewrite
+\def\tabu@extracolsep{\@defaultunits \expandafter\let
+ \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil
+ \ifx \tabu@temp\@sptoken
+ \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep
+ \else
+ \edef\tabu@temp{\noexpand\NC@find
+ \if |\noexpand\tabu@temp @%
+ \else\if !\noexpand\tabu@temp @%
+ \else !%
+ \fi\fi
+ {\noexpand\extracolsep\noexpand\@flushglue}}%
+ \fi
+ \tabu@temp
+}% \tabu@extrac@lsep
+%% Implementing the strategy ----------------------------------------
+\long\def\tabu@pream #1\@preamble {%
+ \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup
+ \NC@list\expandafter {\tabu@NC@list}% in case of nesting...
+ \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi
+ \let\tabu@savedpreamble \@preamble
+ \global\let\tabu@elapsedtime \relax
+ \tabu@thebody ={#1\tabu@aftergroupcleanup}%
+ \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody
+ \@preamble}%
+ \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+ \tabu@select
+}% \tabu@pream
+\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{%
+ \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup
+ \NC@list\expandafter {\tabu@NC@list}% in case of nesting...
+ \let\tabu@savedpreamble \@preamble
+ \global\let\tabu@elapsedtime \relax
+ \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}%
+ \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+ \tabu@select
+}% \tabu@longpream
+\def\tabu@select {%
+ \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi
+ \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi
+ \ifcase \count@
+ \global\let\tabu@elapsedtime \relax
+ \tabu@seteverycr
+ \expandafter \tabuthepreamble % vertical adjustment (inherited from outer)
+ \or % exit in vertical measure + struts per cell because no X and outer in mode 3
+ \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+ \def\tabu@cellralign{\tabu@verticalspacing}%
+ \tabu@seteverycr
+ \expandafter \tabuthepreamble
+ \or % exit without measure because no X and outer in mode 4
+ \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+ \tabu@seteverycr
+ \expandafter \tabuthepreamble
+ \else % needs trials
+ \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+ \tabu@savecounters
+ \expandafter \tabu@setstrategy
+ \fi
+}% \tabu@select
+\def\tabu@@ {\gdef\tabu@mkpreambuffer}
+%% Protections to set up before trials ------------------------------
+\def\tabu@setstrategy {\begingroup % <trials group>
+ \tabu@trialh@@k \tabu@cnt \z@ % number of trials
+ \hbadness \@M \let\hbadness \@tempcnta
+ \hfuzz \maxdimen \let\hfuzz \@tempdima
+ \let\write \tabu@nowrite\let\GenericError \tabu@GenericError
+ \let\savetabu \@gobble \let\tabudefaulttarget \linewidth
+ \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote
+ \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor
+ \let\tabu@aftergroupcleanup \relax % only after the last trial
+ \tabu@mkpreambuffer
+ \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init
+ \def\tabu@lasttry{\m@ne\p@}\fi
+ \begingroup \iffalse{\fi \ifnum0=`}\fi
+ \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi %
+ \tabu@collectbody \tabu@strategy %
+}% \tabu@setstrategy
+\def\tabu@savecounters{%
+ \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}%
+ \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax
+}% \tabu@savecounters
+\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0)
+ \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs
+ \ifdim \dimen@>\z@
+ \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax
+ \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+ \fi
+}% \tabucolX@init
+\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum
+ \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@
+ \else -#2\p@ \tabu@negcoeftrue
+ \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax
+ \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+ \tabu@wddef{#1}{0pt}%
+ \fi
+}% \tabu@Xinit
+%% Collecting the environment body ----------------------------------
+\long\def\tabu@collectbody #1#2\end #3{%
+ \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
+ \ifx \tabu@stack\@empty
+ \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
+ \def\tabu@end@envir{\end{#3}}%
+ \iftabuscantokens
+ \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}%
+ \else \def\tabu@endenvir {\let\endarray \@empty
+ \end{#3}\tabu@gobbleX}%
+ \fi
+ \else \def\tabu@endenvir {\end{#3}}\fi}%
+ \let\tabu@collectbody \tabu@endofcollect
+ \else\def\tabu@temp{#3}%
+ \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }%
+ \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}%
+ \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}%
+ \else \toks@\expandafter{\the\toks@ #2\end{#3}}%
+ \fi\fi\fi
+ \fi
+ \tabu@collectbody{#1}%
+}% \tabu@collectbody
+\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}%
+\def\tabu@endofcollect #1{\ifnum0=`{}\fi
+ \expandafter\endgroup \the\toks@ #1%
+}% \tabu@endofcollect
+%% The trials: switching between strategies -------------------------
+\def\tabu@strategy {\relax % stops \count@ assignment !
+ \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished)
+ \expandafter \tabu@endoftrials
+ \or % case 1 = exit in vertical measure (outer in mode 3)
+ \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}%
+ \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}%
+ \expandafter \tabu@endoftrials
+ \or % case 2 = exit with a rule replacing the table (outer in mode 4)
+ \expandafter \tabu@quickend
+ \or % case 3 = outer is in mode 3 because of no X
+ \begingroup
+ \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+ \def\tabu@cellralign{\tabu@verticalspacing}%
+ \expandafter \tabu@measuring
+ \else % case 4 = horizontal measure
+ \begingroup
+ \global\let\tabu@elapsedtime \tabu@message@etime
+ \long\def\multicolumn##1##2##3{\multispan{##1}}%
+ \let\tabu@startpboxORI \@startpbox
+ \iftabu@spread
+ \def\tabu@naturalXmax {\z@}%
+ \let\tabu@naturalXmin \tabu@naturalXmax
+ \tabu@evr{\global\tabu@naturalX \z@}%
+ \let\@startpbox \tabu@startpboxmeasure
+ \else\iftabu@negcoef
+ \let\@startpbox \tabu@startpboxmeasure
+ \else \let\@startpbox \tabu@startpboxquick
+ \fi\fi
+ \expandafter \tabu@measuring
+ \fi
+}% \tabu@strategy
+\def\tabu@measuring{\expandafter \tabu@trial \expandafter
+ \count@ \the\count@ \tabu@endtrial
+}% \tabu@measuring
+\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi}
+\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+ \ifx \tabu@savecounters\relax \else
+ \let\tabu@savecounters \relax \tabu@clckpt \fi
+ $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+ \expandafter{\expandafter \tabuthepreamble
+ \the\tabu@thebody
+ \csname tabu@adl@endtrial\endcsname
+ \endarray}$\egroup % got \tabu@box
+}% \tabu@shorttrial
+\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+ \ifx \tabu@savecounters\relax \else
+ \let\tabu@savecounters \relax \tabu@clckpt \fi
+ \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+ \expandafter{\expandafter \tabuthepreamble
+ \the\tabu@thebody
+ \tabuendlongtrial}\egroup % got \tabu@box
+}% \tabu@longtrial
+\def\tabuendlongtrial{% no @ allowed for \scantokens
+ \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne
+ \LT@get@widths
+}% \tabuendlongtrial
+\def\tabu@adl@endtrial{% <arydshln in nested trials - problem for global column counters!>
+ \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails !
+\def\tabu@seteverycr {\tabu@reset
+ \everycr \expandafter{\the\everycr \tabu@everycr}%
+ \let\everycr \tabu@noeverycr % <for ialign>
+}% \tabu@seteverycr
+\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@}
+\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr}
+\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi}
+\def\tabu@endoftrials {%
+ \iftabuscantokens \expandafter\@firstoftwo
+ \else \expandafter\@secondoftwo
+ \fi
+ {\expandafter \tabu@closetrialsgroup \expandafter
+ \tabu@rescan \expandafter{%
+ \expandafter\tabuthepreamble
+ \the\expandafter\tabu@thebody
+ \iftabu@long \else \endarray \fi}}
+ {\expandafter\tabu@closetrialsgroup \expandafter
+ \tabuthepreamble
+ \the\tabu@thebody}%
+ \tabu@endenvir % Finish !
+}% \tabu@endoftrials
+\def\tabu@closetrialsgroup {%
+ \toks@\expandafter{\tabu@endenvir}%
+ \edef\tabu@bufferX{\endgroup
+ \tabucolX \the\tabucolX
+ \tabu@target \the\tabu@target
+ \tabu@cnt \the\tabu@cnt
+ \def\noexpand\tabu@endenvir{\the\toks@}%
+ %Quid de \@halignto = \tabu@halignto ??
+ }% \tabu@bufferX
+ \tabu@bufferX
+ \ifcase\tabu@nested % print out (outer in mode 0)
+ \global\tabu@cnt \tabu@cnt
+ \tabu@evr{\tabu@verticaldynamicadjustment}%
+ \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty
+ \let\@finalstrut \tabu@finalstrut
+ \else % vertical measure of nested tabu
+ \tabu@evr{\tabu@verticalinit}%
+ \tabu@celllalign@def{\tabu@verticalmeasure}%
+ \def\tabu@cellralign{\tabu@verticalspacing}%
+ \fi
+ \tabu@clckpt \let\@halignto \tabu@halignto
+ \let\@halignto \@empty
+ \tabu@seteverycr
+ \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@
+ \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts)
+ \fi\fi
+}% \tabu@closetrialsgroup
+\def\tabu@quickend {\expandafter \endgroup \expandafter
+ \tabu@target \the\tabu@target \tabu@quickrule
+ \let\endarray \relax \tabu@endenvir
+}% \tabu@quickend
+\def\tabu@endtrial {\relax % stops \count@ assignment !
+ \ifcase \count@ \tabu@err % case 0 = impossible here
+ \or \tabu@err % case 1 = impossible here
+ \or \tabu@err % case 2 = impossible here
+ \or % case 3 = outer goes into mode 0
+ \def\tabu@bufferX{\endgroup}\count@ \z@
+ \else % case 4 = outer goes into mode 3
+ \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3)
+ \else \tabu@arith % or 2 (outer in mode 4)
+ \fi
+ \count@=%
+ \ifcase\tabu@nested \thr@@ % outer goes into mode 3
+ \else\iftabu@measuring \tw@ % outer is in mode 4
+ \else \@ne % outer is in mode 3
+ \fi\fi
+ \edef\tabu@bufferX{\endgroup
+ \tabucolX \the\tabucolX
+ \tabu@target \the\tabu@target}%
+ \fi
+ \expandafter \tabu@bufferX \expandafter
+ \count@ \the\count@ \tabu@strategy
+}% \tabu@endtrial
+\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}}
+%% The algorithms: compute the widths / stop or go on ---------------
+\def\tabu@arithnegcoef {%
+ \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs
+}% \tabu@arithnegcoef
+\def\tabu@arith@negcoef #1#2{%
+ \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition
+ \advance\@tempdima #2\tabucolX
+ \else
+ \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated
+ \advance\dimen@ -#2\p@
+ \advance\@tempdima -#2\tabucolX
+ \else
+ \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised
+ \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised
+ \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target)
+ \fi
+ \fi
+ \fi
+}% \tabu@arith@negcoef
+\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
+ \ifdim \@tempdima=\z@
+ \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}%
+ \else
+ \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2}
+ *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}%
+ \fi
+}% \tabu@givespace
+\def\tabu@arith {\advance\tabu@cnt \@ne
+ \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi
+ \tabu@arithnegcoef
+ \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % <incompressible material>
+ \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax
+ \tabu@message{\tabu@message@arith}%
+ \ifdim \tabu@DELTA <\tabu@hfuzz
+ \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ?
+ \let\tabu@ \tabu@givespace \tabu@Xcoefs
+ \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message
+ \else % already converged: nothing to do but nearly impossible...
+ \fi
+ \tabucolX \maxdimen
+ \tabu@measuringfalse
+ \else % need for narrower X columns
+ \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax
+ \tabu@measuringtrue
+ \@whilesw \iftabu@measuring\fi {%
+ \advance\tabu@cnt \@ne
+ \tabu@arithnegcoef
+ \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here
+ \tabu@message{\tabu@header
+ \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+ \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@
+ \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+ \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+ \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else
+ \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@
+ \fi}%
+ \ifdim -\tabu@DELTA<\tabu@hfuzz
+ \advance\@tempdima \@tempdimb % for message
+ \tabu@measuringfalse
+ \else
+ \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax
+ \fi
+ }%
+ \fi
+ \tabu@message{\tabu@message@reached}%
+ \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt
+ \tabucolX \the\tabucolX
+ \tabu@target \the\tabu@target}%
+}% \tabu@arith
+\def\tabu@spreadarith {%
+ \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs
+ \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}%
+ \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax
+ \iftabu@measuring
+ \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+ \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}%
+ \else
+ \tabu@message{\tabu@message@spreadarith}%
+ \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target
+ \tabu@message{(tabu) spread
+ \ifdim \@tempdimc>\tabu@target useless here: default target used%
+ \else too large: reduced to fit default target\fi.}%
+ \else
+ \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+ \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}%
+ \fi
+ \begingroup \let\tabu@wddef \@gobbletwo
+ \@tempdimb \@tempdima
+ \tabucolX@init
+ \tabu@arithnegcoef
+ \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax
+ \expandafter\endgroup \expandafter\tabucolX \the\tabucolX
+ \tabu@arith
+ \fi
+}% \tabu@spreadarith
+\def\tabu@spread@arith #1#2{%
+ \ifdim #2\p@>\z@ \advance\dimen@ #2\p@
+ \else \advance\@tempdima \tabu@wd{#1}\relax
+ \fi
+}% \tabu@spread@arith
+%% Reporting in the .log file ---------------------------------------
+\def\tabu@message@defaulttarget{%
+ \ifnum\tabu@nested=\z@^^J(tabu) Default target:
+ \ifx\tabudefaulttarget\linewidth \string\linewidth
+ \ifdim \tabu@thetarget=\linewidth \else
+ -\the\dimexpr\linewidth-\tabu@thetarget\fi =
+ \else\ifx\tabudefaulttarget\linegoal\string\linegoal=
+ \fi\fi
+ \else (tabu) Default target (nested): \fi
+ \the\tabu@target \on@line
+ \ifnum\tabu@nested=\z@ , page \the\c@page\fi}
+\def\tabu@message@target {^^J(tabu) Target specified:
+ \the\tabu@target \on@line, page \the\c@page}
+\def\tabu@message@arith {\tabu@header
+ \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+ \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@
+ \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+ \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+ \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else
+ \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@
+ \fi
+}% \tabu@message@arith
+\def\tabu@message@spreadarith {\tabu@spreadheader
+ \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@
+ \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@
+ \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@
+ \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@
+ \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target
+ \else \@tempdimc+\tabu@spreadtarget \fi
+ {}{}{}{}{}\@@}
+\def\tabu@message@negcoef #1#2{
+ \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]:
+ \space width = \tabu@wd {#1}
+ \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname
+ \ifdim -\tabu@pt#2\tabucolX<\tabu@target
+ < \number-\rem@pt#2 X
+ = \the\dimexpr -\tabu@pt#2\tabucolX \relax
+ \else
+ <= \the\tabu@target\space < \number-\rem@pt#2 X\fi}
+\def\tabu@message@reached{\tabu@header
+ ******* Reached Target:
+ hfuzz = \tabu@hfuzz\on@line\space *******}
+\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}%
+ \tabu@message{(tabu)\tabu@spaces Time elapsed during measure:
+ \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec
+ \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime)
+ -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax
+ *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space
+ cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}}
+\def\tabu@message@verticalsp {%
+ \ifdim \@tempdima>\tabu@ht
+ \ifdim \@tempdimb>\tabu@dp
+ \expandafter\expandafter\expandafter\string\tabu@ht =
+ \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@
+ \expandafter\expandafter\expandafter\string\tabu@dp =
+ \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J%
+ \else
+ \expandafter\expandafter\expandafter\string\tabu@ht =
+ \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J%
+ \fi
+ \else\ifdim \@tempdimb>\tabu@dp
+ \tabu@spaces\tabu@spaces\tabu@spaces
+ \expandafter\expandafter\expandafter\string\tabu@dp =
+ \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi
+ \fi
+}% \tabu@message@verticalsp
+\edef\tabu@spaces{\@spaces}
+\def\tabu@strippt{\expandafter\tabu@pt\the}
+{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}}
+\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr}
+\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt}
+\def\do #1{%
+ \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{%
+ \ifnum##1<10 #1 #1\else
+ \ifnum##1<100 #1 \else
+ \ifnum##1<\@m #1\fi\fi\fi
+ ##1.##2##3##4##5##6##7##8#1}%
+ \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }%
+ \def\tabu@titles{\ifnum \tabu@nested=\z@
+ (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target
+ #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}%
+ \def\tabu@spreadheader{%
+ (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.
+ #1 New Target^^J%
+ (tabu) sprd}
+ \def\tabu@message@save {\begingroup
+ \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@}
+ \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt
+ \dimexpr####1\p@{ }{ }}}%
+ \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}%
+ \let\CT@arc@ \relax \let\@preamble \@gobble
+ \let\tabu@savedpream \@firstofone
+ \let\tabu@savedparams \@firstofone
+ \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}%
+ \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}%
+ \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}%
+ \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}%
+ \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}%
+ \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}%
+ \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}%
+ \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}%
+ \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}%
+ \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}%
+ \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }%
+ \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}%
+ \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}%
+ \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}%
+ \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%
+ \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}%
+ \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}%
+ \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}%
+ \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}%
+ \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}%
+ \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo
+ \tabu@message{%
+ (tabu) \string\savetabu{\tabu@temp}: \on@line^^J%
+ \tabu@usetabu \@nil^^J}%
+ \endgroup}
+}\do{ }
+%% Measuring the natural width (varwidth) - store the results -------
+\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop
+ \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}%
+ \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ?
+ \iftabu@spread \else % if spread -> measure
+ \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure
+ \let\@startpbox \tabu@startpboxORI % restore immediately (nesting)
+ \tabu@measuringtrue % for the quick option...
+ \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi
+ \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target
+ \tabu@target=\tabu@temp\tabucolX \fi\fi
+ \setbox\tabu@box \hbox \bgroup
+ \begin{varwidth}\tabu@target
+ \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width...
+ \narrowragged \arraybackslash \parfillskip \@flushglue
+ \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi
+ \bgroup \aftergroup\tabu@endpboxmeasure
+ \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi
+ \else \expandafter\@gobble
+ \tabu@startpboxquick{#1}% \@gobble \bgroup
+ \fi
+}% \tabu@startpboxmeasure
+\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty
+ \bgroup\color@begingroup}
+\def\tabu@endpboxmeasure {%
+ \@finalstrut \@arstrutbox
+ \end{varwidth}\egroup % <got my \tabu@box>
+ \ifdim \tabu@temp\p@ <\z@ % neg coef
+ \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box
+ \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}%
+ \tabu@debug{\tabu@message@endpboxmeasure}%
+ \fi
+ \else % spread coef>0
+ \global\advance \tabu@naturalX \wd\tabu@box
+ \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax
+ \ifdim \tabu@naturalXmax <\tabu@naturalX
+ \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi
+ \ifdim \tabu@naturalXmin <\@tempdima
+ \xdef\tabu@naturalXmin {\the\@tempdima}\fi
+ \fi
+ \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target
+}% \tabu@endpboxmeasure
+\def\tabu@wddef #1{\expandafter\xdef
+ \csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd
+ \the\tabu@Xcol. X[\tabu@temp]:
+ target = \the\tabucolX \space
+ \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol
+ =\tabu@wd\tabu@Xcol
+}% \tabu@message@endpboxmeasure
+\def\tabu@startpboxquick {\bgroup
+ \let\@startpbox \tabu@startpboxORI % restore immediately
+ \let\tabu \tabu@quick % \begin is expanded before...
+ \expandafter\@gobble \@startpbox % gobbles \bgroup
+}% \tabu@startpboxquick
+\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
+ \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
+}% \tabu@quick
+\def\tabu@endquick {%
+ \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else
+ \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
+ \endgroup
+ \else \let\endtabu \relax
+ \tabu@end@envir
+ \fi
+}% \tabu@quick
+\def\tabu@endtabu {\end{tabu}}
+\def\tabu@endtabus {\end{tabu*}}
+%% Measuring the heights and depths - store the results -------------
+\def\tabu@verticalmeasure{\everypar{}%
+ \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group
+ \setbox\tabu@box =\hbox\bgroup
+ \let\tabu@verticalspacing \tabu@verticalsp@lcr
+ \d@llarbegin % after \hbox ...
+ \else
+ \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop
+ \else\ifnum\currentgrouptype=12\vcenter
+ \else\vbox\fi\fi}%
+ \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
+ \let\tabu@verticalspacing \tabu@verticalsp@pmb
+ \fi
+}% \tabu@verticalmeasure
+\def\tabu@verticalsp@lcr{%
+ \d@llarend \egroup % <got my \tabu@box>
+ \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+ \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+ \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+ \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi
+ \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi
+ \noindent\vrule height\@tempdima depth\@tempdimb
+}% \tabu@verticalsp@lcr
+\def\tabu@verticalsp@pmb{% inserts struts as needed
+ \par \expandafter\egroup
+ \expandafter$\expandafter
+ \egroup \expandafter
+ \@tempdimc \the\prevdepth
+ \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+ \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+ \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+ \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi
+ \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi
+ \let\@finalstrut \@gobble
+ \hrule height\@tempdima depth\@tempdimb width\hsize
+%% \box\tabu@box
+}% \tabu@verticalsp@pmb
+
+\def\tabu@verticalinit{%
+ \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset !
+ \advance\c@taburow \@ne
+ \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}%
+ \advance\c@taburow \m@ne
+}% \tabu@verticalinit
+\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@verticaldynamicadjustment {%
+ \advance\c@taburow \@ne
+ \extrarowheight \dimexpr\tabu@ht - \ht\strutbox
+ \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox
+ \let\arraystretch \@empty
+ \advance\c@taburow \m@ne
+}% \tabu@verticaldynamicadjustment
+\def\tabuphantomline{\crcr \noalign{%
+ {\globaldefs \@ne
+ \setbox\@arstrutbox \box\voidb@x
+ \let\tabu@@celllalign \tabu@celllalign
+ \let\tabu@@cellralign \tabu@cellralign
+ \let\tabu@@cellleft \tabu@cellleft
+ \let\tabu@@cellright \tabu@cellright
+ \let\tabu@@thevline \tabu@thevline
+ \let\tabu@celllalign \@empty
+ \let\tabu@cellralign \@empty
+ \let\tabu@cellright \@empty
+ \let\tabu@cellleft \@empty
+ \let\tabu@thevline \relax}%
+ \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}%
+ \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr
+ \noalign{\tabu@rearstrut
+ {\globaldefs\@ne
+ \let\tabu@celllalign \tabu@@celllalign
+ \let\tabu@cellralign \tabu@@cellralign
+ \let\tabu@cellleft \tabu@@cellleft
+ \let\tabu@cellright \tabu@@cellright
+ \let\tabu@thevline \tabu@@thevline}}}%
+ \expandafter}\the\toks@
+}% \tabuphantomline
+%% \firsthline and \lasthline corrections ---------------------------
+\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}}
+\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline}
+\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}}
+\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline}
+\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument)
+ \noalign{\ifnum0=`}\fi
+ {\CT@arc@\hrule height\arrayrulewidth}%
+ \futurelet \tabu@temp \tabu@xhline
+}% \tabu@hline
+\def\tabu@xhline{%
+ \ifx \tabu@temp \hline
+ {\ifx \CT@drsc@\relax \vskip
+ \else\ifx \CT@drsc@\@empty \vskip
+ \else \CT@drsc@\hrule height
+ \fi\fi
+ \doublerulesep}%
+ \fi
+ \ifnum0=`{\fi}%
+}% \tabu@xhline
+\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@
+ \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}%
+ \tabu@hlineAZsurround
+}% \tabu@hlineAZ
+\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{%
+ \extratabsurround #1\let\tabucline \tabucline@scan
+ \let\hline \tabu@hlinescan \let\firsthline \hline
+ \let\cline \tabu@clinescan \let\lasthline \hline
+ \expandafter \futurelet \expandafter \tabu@temp
+ \expandafter \tabu@nexthlineAZ \tabu@temp
+}% \tabu@hlineAZsurround
+\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline}
+\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}}
+\def\tabucline@scan{\@testopt \tabucline@sc@n {}}
+\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}}
+\def\tabu@nexthlineAZ{%
+ \ifx \tabu@temp\hline \else
+ \ifx \tabu@temp\cline \else
+ \ifx \tabu@temp\tabucline \else
+ \tabu@hlinecorrection
+ \fi\fi\fi
+}% \tabu@nexthlineAZ
+\def\tabu@xhlineAZ #1{%
+ \toks@\expandafter{\the\toks@ #1}%
+ \@tempdimc \tabu@thick % The last line width
+ \ifcase\count@ \@tempdimb \tabu@thick % The first line width
+ \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax
+ \fi
+ \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ
+}% \tabu@xhlineAZ
+\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1
+ \@tempdima \dimexpr \ht\@arstrutbox+\dimen@
+ \edef\firsthline{% <local in \noalign>
+ \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+ height \the\dimexpr\@tempdima+\extratabsurround
+ depth \dp\@arstrutbox
+ width \tabustrutrule}\hss}\cr
+ \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb
+ +\dp\@arstrutbox \relax}%
+ \the\toks@
+ }\ifnum0=`{\fi
+ \expandafter}\firsthline % we are then !
+}% \tabu@firsthlinecorrection
+\def\tabu@lasthlinecorrection{%
+ \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc
+ \edef\lasthline{% <local in \noalign>
+ \the\toks@
+ \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}%
+ \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+ depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@
+ +\extratabsurround-\@tempdimc
+ height \z@
+ width \tabustrutrule}\hss}\cr
+ }\ifnum0=`{\fi
+ \expandafter}\lasthline % we are then !
+}% \tabu@lasthlinecorrection
+\def\tabu@LT@@hline{%
+ \ifx\LT@next\hline
+ \global\let\LT@next \@gobble
+ \ifx \CT@drsc@\relax
+ \gdef\CT@LT@sep{%
+ \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
+ \else
+ \gdef\CT@LT@sep{%
+ \multispan\LT@cols{%
+ \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
+ \fi
+ \else
+ \global\let\LT@next\empty
+ \gdef\CT@LT@sep{%
+ \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
+ \fi
+ \ifnum0=`{\fi}%
+ \multispan\LT@cols
+ {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \CT@LT@sep
+ \multispan\LT@cols
+ {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \noalign{\penalty\@M}%
+ \LT@next
+}% \tabu@LT@@hline
+%% Horizontal lines : \tabucline ------------------------------------
+\let\tabu@start \@tempcnta
+\let\tabu@stop \@tempcntb
+\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline}
+\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}%
+ \ifnum \tabu@stop<\z@ \toks@{}%
+ \else \tabu@clinearg{#1}\tabu@thestyle
+ \edef\tabucline{\toks@{%
+ \ifnum \tabu@start>\z@ \omit
+ \tabu@multispan\tabu@start {\span\omit}&\fi
+ \omit \tabu@multispan\tabu@stop {\span\omit}%
+ \tabu@thehline\cr
+ }}\tabucline
+ \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}%
+ \fi
+ \futurelet \tabu@temp \tabu@xcline
+}% \tabu@cline
+\def\tabu@clinearg #1{%
+ \ifx\\#1\\\let\tabu@thestyle \tabu@ls@
+ \else \@defaultunits \expandafter\let\expandafter\@tempa
+ \romannumeral-`\0#1\relax \@nnil
+ \ifx \hbox\@tempa \tabu@clinebox{#1}%
+ \else\ifx \box\@tempa \tabu@clinebox{#1}%
+ \else\ifx \vbox\@tempa \tabu@clinebox{#1}%
+ \else\ifx \vtop\@tempa \tabu@clinebox{#1}%
+ \else\ifx \copy\@tempa \tabu@clinebox{#1}%
+ \else\ifx \leaders\@tempa \tabu@clineleads{#1}%
+ \else\ifx \cleaders\@tempa \tabu@clineleads{#1}%
+ \else\ifx \xleaders\@tempa \tabu@clineleads{#1}%
+ \else\tabu@getline {#1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi
+ \fi
+}% \tabu@clinearg
+\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}}
+\def\tabu@clineleads #1{%
+ \let\tabu@thestyle \relax \let\tabu@leaders \@undefined
+ \gdef\tabu@thehrule{#1}}
+\def\tabu@thehline{\begingroup
+ \ifdefined\tabu@leaders
+ \noexpand\tabu@thehleaders
+ \else \noexpand\tabu@thehrule
+ \fi \endgroup
+}% \tabu@thehline
+\def\tabu@xcline{%
+ \ifx \tabu@temp\tabucline
+ \toks@\expandafter{\the\toks@ \noalign
+ {\ifx\CT@drsc@\relax \vskip
+ \else \CT@drsc@\hrule height
+ \fi
+ \doublerulesep}}%
+ \fi
+ \tabu@docline
+}% \tabu@xcline
+\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@}
+\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}%
+ \ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
+\def\tabu@multispan #1#2{%
+ \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan
+ \else \expandafter\@gobbletwo
+ \fi {#1-1}{#2}%
+}% \tabu@multispan
+\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
+\def\tabu@start@stop #1-#2\@nnil{%
+ \@defaultunits \tabu@start\number 0#1\relax \@nnil
+ \@defaultunits \tabu@stop \number 0#2\relax \@nnil
+ \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne
+ \else\ifnum \tabu@stop=\z@ \tabu@nbcols
+ \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols
+ \else \tabu@stop
+ \fi\fi\fi
+ \advance\tabu@start \m@ne
+ \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi
+}% \tabu@start@stop
+%% Numbers: siunitx S columns (and \tabudecimal) -------------------
+\def\tabu@tabudecimal #1{%
+ \def\tabu@decimal{#1}\@temptokena{}%
+ \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces
+ \tabu@scandecimal
+}% \tabu@tabudecimal
+\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@}
+\def\tabu@skipdecimal#1{#1\tabu@scandecimal}
+\def\tabu@getdecimal@ignorespaces{%
+ \ifcase 0\ifx\tabu@temp\ignorespaces\else
+ \ifx\tabu@temp\@sptoken1\else
+ 2\fi\fi\relax
+ \let\tabu@getdecimal@ \tabu@getdecimal
+ \expandafter\tabu@skipdecimal
+ \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal
+ \else \expandafter\tabu@skipdecimal
+ \fi
+}% \tabu@getdecimal@ignorespaces
+\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}%
+ \tabu@scandecimal}
+\def\do#1{%
+ \def\tabu@get@decimalspace#1{%
+ \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}%
+}\do{ }
+\let\tabu@@tabudecimal \tabu@tabudecimal
+\def\tabu@getdecimal{%
+ \ifcase 0\ifx 0\tabu@temp\else
+ \ifx 1\tabu@temp\else
+ \ifx 2\tabu@temp\else
+ \ifx 3\tabu@temp\else
+ \ifx 4\tabu@temp\else
+ \ifx 5\tabu@temp\else
+ \ifx 6\tabu@temp\else
+ \ifx 7\tabu@temp\else
+ \ifx 8\tabu@temp\else
+ \ifx 9\tabu@temp\else
+ \ifx .\tabu@temp\else
+ \ifx ,\tabu@temp\else
+ \ifx -\tabu@temp\else
+ \ifx +\tabu@temp\else
+ \ifx e\tabu@temp\else
+ \ifx E\tabu@temp\else
+ \ifx\tabu@cellleft\tabu@temp1\else
+ \ifx\ignorespaces\tabu@temp1\else
+ \ifx\@sptoken\tabu@temp2\else
+ 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+ \expandafter\tabu@get@decimal
+ \or \expandafter\tabu@skipdecimal
+ \or \expandafter\tabu@get@decimalspace
+ \else\expandafter\tabu@printdecimal
+ \fi
+}% \tabu@getdecimal
+\def\tabu@printdecimal{%
+ \edef\tabu@temp{\the\@temptokena}%
+ \ifx\tabu@temp\@empty\else
+ \ifx\tabu@temp\space\else
+ \expandafter\tabu@decimal\expandafter{\the\@temptokena}%
+ \fi\fi
+}% \tabu@printdecimal
+%% Verbatim inside X columns ----------------------------------------
+\def\tabu@verbatim{%
+ \let\verb \tabu@verb
+ \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd
+}% \tabu@verbatim
+\let\tabu@ltx@verb \verb
+\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb}
+\def\tabu@fancyvrb {%
+ \def\tabu@FV@DefineCheckEnd ##1{%
+ \def\tabu@FV@DefineCheckEnd{%
+ ##1% <original definition (if fancyvrb is loaded)>
+ \let\FV@CheckEnd \tabu@FV@CheckEnd
+ \let\FV@@CheckEnd \tabu@FV@@CheckEnd
+ \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd
+ \edef\FV@EndScanning{%
+ \def\noexpand\next{\noexpand\end{\FV@EnvironName}}%
+ \global\let\noexpand\FV@EnvironName\relax
+ \noexpand\next}%
+ \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}%
+ }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd}
+}% \tabu@fancyvrb
+\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil}
+\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}}
+\begingroup
+\catcode`\[1 \catcode`\]2
+\@makeother\{ \@makeother\}
+ \edef\x[\endgroup
+ \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3%
+ ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}}
+\def\tabu@FV@ListProcessLine #1{%
+ \hbox {%to \hsize{%
+ \kern\leftmargin
+ \hbox {%to \linewidth{%
+ \FV@LeftListNumber
+ \FV@LeftListFrame
+ \FancyVerbFormatLine{#1}\hss
+%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
+%% \FV@RightListFrame}%
+ \FV@RightListFrame
+ \FV@RightListNumber}%
+%% DG/SR modification end
+ \hss}}
+%% \savetabu --------------------------------------------------------
+\newcommand*\savetabu[1]{\noalign{%
+ \tabu@sanitizearg{#1}\tabu@temp
+ \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else
+ \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}%
+ \ifdefined\tabu@restored \expandafter\let
+ \csname tabu@saved@\tabu@temp \endcsname \tabu@restored
+ \else {\tabu@save}%
+ \fi
+ \fi}%
+}% \savetabu
+\def\tabu@save {%
+ \toks0\expandafter{\tabu@saved@}%
+ \iftabu@negcoef
+ \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}%
+ \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi
+ \toks1\expandafter{\tabu@savedpream}%
+ \toks2\expandafter{\tabu@savedpreamble}%
+ \let\@preamble \relax
+ \let\tabu@savedpream \relax \let\tabu@savedparams \relax
+ \edef\tabu@preamble{%
+ \def\noexpand\tabu@aligndefault{\tabu@align}%
+ \def\tabu@savedparams {\noexpand\the\toks0}%
+ \def\tabu@savedpream {\noexpand\the\toks1}}%
+ \edef\tabu@usetabu{%
+ \def\@preamble {\noexpand\the\toks2}%
+ \tabu@target \the\tabu@target \relax
+ \tabucolX \the\tabucolX \relax
+ \tabu@nbcols \the\tabu@nbcols \relax
+ \def\noexpand\tabu@aligndefault{\tabu@align}%
+ \def\tabu@savedparams {\noexpand\the\toks0}%
+ \def\tabu@savedpream {\noexpand\the\toks1}}%
+ \let\tabu@aligndefault \relax \let\@sharp \relax
+ \edef\@tempa{\noexpand\tabu@s@ved
+ {\tabu@usetabu}
+ {\tabu@preamble}
+ {\the\toks1}}\@tempa
+ \tabu@message@save
+}% \tabu@save
+\long\def\tabu@s@ved #1#2#3{%
+ \def\tabu@usetabu{#1}% <for \tabu@message@save>
+ \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{%
+ \ifodd ##1% \usetabu
+ \tabu@measuringfalse \tabu@spreadfalse % Just in case...
+ \gdef\tabu@usetabu {%
+ \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi
+ \global\let\tabu@usetabu \@undefined
+ \def\@halignto {to\tabu@target}%
+ #1%
+ \ifx \tabu@align\tabu@aligndefault@text
+ \ifnum \tabu@nested=\z@
+ \let\tabu@align \tabu@aligndefault \fi\fi}%
+ \else % \preamble
+ \gdef\tabu@preamble {%
+ \global\let\tabu@preamble \@undefined
+ #2%
+ \ifx \tabu@align\tabu@aligndefault@text
+ \ifnum \tabu@nested=\z@
+ \let\tabu@align \tabu@aligndefault \fi\fi}%
+ \fi
+ #3}%
+}% \tabu@s@ved
+\def\tabu@aligndefault@text {\tabu@aligndefault}%
+\def\tabu@warn@usetabu {\PackageWarning{tabu}
+ {Specifying a target with \string\usetabu\space is useless
+ \MessageBreak The target cannot be changed!}}
+\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi}
+\def\tabu@savewarn#1#2{\PackageInfo{tabu}
+ {User-name `#1' already used for \string\savetabu
+ \MessageBreak #2}}%
+\def\tabu@saveerr#1{\PackageError{tabu}
+ {User-name `#1' is unknown for \string\usetabu
+ \MessageBreak I cannot restore an unknown preamble!}\@ehd}
+%% \rowfont ---------------------------------------------------------
+\newskip \tabu@cellskip
+\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi
+ {\ifnum0=`}\fi \tabu@row@font}
+\newcommand*\tabu@row@font[2][]{%
+ \ifnum7=\currentgrouptype
+ \global\let\tabu@@cellleft \tabu@cellleft
+ \global\let\tabu@@cellright \tabu@cellright
+ \global\let\tabu@@celllalign \tabu@celllalign
+ \global\let\tabu@@cellralign \tabu@cellralign
+ \global\let\tabu@@rowfontreset\tabu@rowfontreset
+ \fi
+ \global\let\tabu@rowfontreset \tabu@rowfont@reset
+ \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}%
+ \ifcsname tabu@cell@#1\endcsname % row alignment
+ \csname tabu@cell@#1\endcsname \fi
+ \ifnum0=`{\fi}% end of group / noalign group
+}% \rowfont
+\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}%
+\def\tabu@rowfont@reset{%
+ \global\let\tabu@rowfontreset \tabu@@rowfontreset
+ \global\let\tabu@cellleft \tabu@@cellleft
+ \global\let\tabu@cellright \tabu@@cellright
+ \global\let\tabu@cellfont \@empty
+ \global\let\tabu@celllalign \tabu@@celllalign
+ \global\let\tabu@cellralign \tabu@@cellralign
+}% \tabu@@rowfontreset
+\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl
+%% \tabu@prepnext@tok -----------------------------------------------
+\newif \iftabu@cellright
+\def\tabu@prepnext@tok{%
+ \ifnum \count@<\z@ % <first initialisation>
+ \@tempcnta \@M % <not initialized by array.sty>
+ \tabu@nbcols\z@
+ \let\tabu@fornoopORI \@fornoop
+ \tabu@cellrightfalse
+ \else
+ \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left
+ \advance \tabu@nbcols \@ne
+ \iftabu@cellright % before-previous token is right and is finished
+ \tabu@cellrightfalse % <only once>
+ \tabu@righttok
+ \fi
+ \tabu@lefttok
+ \or % (case 1) previous token is right
+ \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop
+ \else % special column: do not change the token
+ \iftabu@cellright % before-previous token is right
+ \tabu@cellrightfalse
+ \tabu@righttok
+ \fi
+ \fi % \ifcase
+ \fi
+ \tabu@prepnext@tokORI
+}% \tabu@prepnext@tok
+\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@}
+\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{%
+ \ifx \in@#2\else
+ \let\@fornoop \tabu@fornoopORI
+ \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}%
+ \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}%
+ \expandafter\prepnext@tok
+ \fi
+}% \tabu@lastnoop
+\def\tabu@righttok{%
+ \advance \count@ \m@ne
+ \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}%
+ \advance \count@ \@ne
+}% \tabu@righttok
+\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign
+ \the\toks\count@ \tabu@cellleft}% after because of $
+}% \tabu@lefttok
+%% Neutralisation of glues ------------------------------------------
+\let\tabu@cellleft \@empty
+\let\tabu@cellright \@empty
+\tabu@celllalign@def{\tabu@cellleft}%
+\let\tabu@cellralign \@empty
+\def\tabu@cell@align #1#2#3{%
+ \let\tabu@maybesiunitx \toks@ \tabu@celllalign
+ \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}%
+ \toks@\expandafter{\tabu@cellralign #2}%
+ \xdef\tabu@cellralign{\the\toks@}%
+ \toks@\expandafter{\tabu@cellleft #3}%
+ \xdef\tabu@cellleft{\the\toks@}%
+}% \tabu@cell@align
+\def\tabu@cell@l{% force alignment to left
+ \tabu@cell@align
+ {\tabu@removehfil \raggedright \tabu@cellleft}% left
+ {\tabu@flush1\tabu@ignorehfil}% right
+ \raggedright
+}% \tabu@cell@l
+\def\tabu@cell@c{% force alignment to center
+ \tabu@cell@align
+ {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft}
+ {\tabu@flush{.5}\tabu@ignorehfil}
+ \centering
+}% \tabu@cell@c
+\def\tabu@cell@r{% force alignment to right
+ \tabu@cell@align
+ {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft}
+ \tabu@ignorehfil
+ \raggedleft
+}% \tabu@cell@r
+\def\tabu@cell@j{% force justification (for p, m, b columns)
+ \tabu@cell@align
+ {\tabu@justify\tabu@cellleft}
+ {}
+ \tabu@justify
+}% \tabu@cell@j
+\def\tabu@justify{%
+ \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip
+ \parfillskip\@flushglue
+}% \tabu@justify
+%% ragged2e settings
+\def\tabu@cell@L{% force alignment to left (ragged2e)
+ \tabu@cell@align
+ {\tabu@removehfil \RaggedRight \tabu@cellleft}
+ {\tabu@flush 1\tabu@ignorehfil}
+ \RaggedRight
+}% \tabu@cell@L
+\def\tabu@cell@C{% force alignment to center (ragged2e)
+ \tabu@cell@align
+ {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft}
+ {\tabu@flush{.5}\tabu@ignorehfil}
+ \Centering
+}% \tabu@cell@C
+\def\tabu@cell@R{% force alignment to right (ragged2e)
+ \tabu@cell@align
+ {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft}
+ \tabu@ignorehfil
+ \RaggedLeft
+}% \tabu@cell@R
+\def\tabu@cell@J{% force justification (ragged2e)
+ \tabu@cell@align
+ {\justifying \tabu@cellleft}
+ {}
+ \justifying
+}% \tabu@cell@J
+\def\tabu@flush#1{%
+ \iftabu@colortbl % colortbl uses \hfill rather than \hfil
+ \hskip \ifnum13<\currentgrouptype \stretch{#1}%
+ \else \ifdim#1pt<\p@ \tabu@cellskip
+ \else \stretch{#1}
+ \fi\fi \relax
+ \else % array.sty
+ \ifnum 13<\currentgrouptype
+ \hfil \hskip1sp \relax \fi
+ \fi
+}% \tabu@flush
+\let\tabu@hfil \hfil
+\let\tabu@hfill \hfill
+\let\tabu@hskip \hskip
+\def\tabu@removehfil{%
+ \iftabu@colortbl
+ \unkern \tabu@cellskip =\lastskip
+ \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip
+ \else \tabu@cellskip \z@skip
+ \fi
+ \else
+ \ifdim\lastskip=1sp\unskip\fi
+ \ifnum\gluestretchorder\lastskip =\@ne
+ \hfilneg % \hfilneg for array.sty but not for colortbl...
+ \fi
+ \fi
+}% \tabu@removehfil
+\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
+\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil
+ \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group
+}% \tabu@nohfil
+\def\tabu@colortblalignments {% if colortbl
+ \def\tabu@nohfil{%
+ \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group
+ \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff...
+ \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local
+}% \tabu@colortblalignments
+%% Taking care of footnotes and hyperfootnotes ----------------------
+\long\def\tabu@footnotetext #1{%
+ \edef\@tempa{\the\tabu@footnotes
+ \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}%
+ \global\tabu@footnotes\expandafter{\@tempa {#1}}}%
+\long\def\tabu@xfootnotetext [#1]#2{%
+ \global\tabu@footnotes\expandafter{\the\tabu@footnotes
+ \footnotetext [{#1}]{#2}}}
+\let\tabu@xfootnote \@xfootnote
+\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }}
+\long\def\tabu@Hy@xfootnote [#1]{%
+ \begingroup
+ \value\@mpfn #1\relax
+ \protected@xdef \@thefnmark {\thempfn}%
+ \endgroup
+ \@footnotemark \tabu@Hy@ftntxt {#1}%
+}% \tabu@Hy@xfootnote
+\long\def\tabu@Hy@ftntxt #1#2{%
+ \edef\@tempa{%
+ \the\tabu@footnotes
+ \begingroup
+ \value\@mpfn #1\relax
+ \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}%
+ \expandafter \noexpand \expandafter
+ \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}%
+ }%
+ \global\tabu@footnotes\expandafter{\@tempa {#2}%
+ \endgroup}%
+}% \tabu@Hy@ftntxt
+\long\def\tabu@Hy@footnotetext #1#2{%
+ \H@@footnotetext{%
+ \ifHy@nesting
+ \hyper@@anchor {#1}{#2}%
+ \else
+ \Hy@raisedlink{%
+ \hyper@@anchor {#1}{\relax}%
+ }%
+ \def\@currentHref {#1}%
+ \let\@currentlabelname \@empty
+ #2%
+ \fi
+ }%
+}% \tabu@Hy@footnotetext
+%% No need for \arraybackslash ! ------------------------------------
+\def\tabu@latextwoe {%
+\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@centering \centering \arraybackslash
+\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash
+\tabu@temp \tabu@raggedright \raggedright \arraybackslash
+}% \tabu@latextwoe
+\def\tabu@raggedtwoe {%
+\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@Centering \Centering \arraybackslash
+\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash
+\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash
+\tabu@temp \tabu@justifying \justifying \arraybackslash
+}% \tabu@raggedtwoe
+\def\tabu@normalcrbackslash{\let\\\@normalcr}
+\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{%
+ \expandafter\tabu@normalcrbackslash \@trivlist}}
+%% Utilities: \fbox \fcolorbox and \tabudecimal -------------------
+\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox}
+\def\tabu@beginfbox {\bgroup \kern\fboxsep
+ \bgroup\aftergroup\tabu@endfbox}
+\def\tabu@endfbox {\kern\fboxsep\egroup\egroup
+ \@frameb@x\relax}
+\def\tabu@color@b@x #1#2{\leavevmode \bgroup
+ \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}%
+ \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox
+}% \tabu@color@b@x
+\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup
+ \aftergroup\tabu@endcolor@b@x \set@color}
+\def\tabu@endcolor@b@x {\kern\fboxsep \egroup
+ \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@
+ \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@
+ \tabu@docolor@b@x \egroup
+}% \tabu@endcolor@b@x
+%% Corrections (arydshln, delarray, colortbl) -----------------------
+\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray
+ \iftabu@colortbl
+ \ifdefined\adl@array % <colortbl + arydshln>
+ \def\tabu@endarray{%
+ \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup %<original>
+ \@arrayright % <FC>
+ \gdef\@preamble{}}% <FC>
+ \else % <colortbl / no arydshln>
+ \def\tabu@endarray{%
+ \crcr \egroup \egroup %<original>
+ \@arrayright % <FC>
+ \gdef\@preamble{}\CT@end}%
+ \fi
+ \else
+ \ifdefined\adl@array % <arydshln / no colortbl>
+ \def\tabu@endarray{%
+ \adl@endarray \egroup \adl@arrayrestore \egroup %<original>
+ \@arrayright % <FC>
+ \gdef\@preamble{}}% <FC>
+ \else % <no arydshln / no colotbl + \@arrayright missing>
+ \PackageWarning{tabu}
+ {\string\@arrayright\space is missing from the
+ \MessageBreak definition of \string\endarray.
+ \MessageBreak Compatibility with delarray.sty is broken.}%
+ \fi\fi
+}% \tabu@fix@arrayright
+\def\tabu@adl@xarraydashrule #1#2#3{%
+ \ifnum\@lastchclass=\adl@class@start\else
+ \ifnum\@lastchclass=\@ne\else
+ \ifnum\@lastchclass=5 \else % <FC> @-arg (class 5) and !-arg (class 1)
+ \adl@leftrulefalse \fi\fi % must be treated the same
+ \fi
+ \ifadl@zwvrule\else \ifadl@inactive\else
+ \@addtopreamble{\vrule\@width\arrayrulewidth
+ \@height\z@ \@depth\z@}\fi \fi
+ \ifadl@leftrule
+ \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
+ {\number#1}#3}%
+ \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
+ {\number#2}#3}
+ \fi
+}% \tabu@adl@xarraydashrule
+\def\tabu@adl@act@endpbox {%
+ \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox
+ \egroup \egroup
+ \adl@colhtdp \box\adl@box \hfil
+}% \tabu@adl@act@endpbox
+\def\tabu@adl@fix {%
+ \let\adl@xarraydashrule \tabu@adl@xarraydashrule % <fix> arydshln
+ \let\adl@act@endpbox \tabu@adl@act@endpbox % <fix> arydshln
+ \let\adl@act@@endpbox \tabu@adl@act@endpbox % <fix> arydshln
+ \let\@preamerror \@preamerr % <fix> arydshln
+}% \tabu@adl@fix
+%% Correction for longtable' \@startbox definition ------------------
+%% => \everypar is ``missing'' : TeX should be in vertical mode
+\def\tabu@LT@startpbox #1{%
+ \bgroup
+ \let\@footnotetext\LT@p@ftntext
+ \setlength\hsize{#1}%
+ \@arrayparboxrestore
+ \everypar{%
+ \vrule \@height \ht\@arstrutbox \@width \z@
+ \everypar{}}%
+}% \tabu@LT@startpbox
+%% \tracingtabu and the package options ------------------
+\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}}
+\DeclareOption{linegoal}{%
+ \AtEndOfPackage{%
+ \RequirePackage{linegoal}[2010/12/07]%
+ \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX
+}}
+\DeclareOption{scantokens}{\tabuscantokenstrue}
+\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}}
+\def\tracingtabu {\begingroup\@ifnextchar=%
+ {\afterassignment\tabu@tracing\count@}
+ {\afterassignment\tabu@tracing\count@1\relax}}
+\def\tabu@tracing{\expandafter\endgroup
+ \expandafter\tabu@tr@cing \the\count@ \relax
+}% \tabu@tracing
+\def\tabu@tr@cing #1\relax {%
+ \ifnum#1>\thr@@ \let\tabu@tracinglines\message
+ \else \let\tabu@tracinglines\@gobble
+ \fi
+ \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG
+ \def\tabu@mkarstrut {\tabu@DBG@arstrut}%
+ \tabustrutrule 1.5\p@
+ \else \let\tabu@DBG \@gobble
+ \def\tabu@mkarstrut {\tabu@arstrut}%
+ \tabustrutrule \z@
+ \fi
+ \ifnum#1>\@ne \let\tabu@debug \message
+ \else \let\tabu@debug \@gobble
+ \fi
+ \ifnum#1>\z@
+ \let\tabu@message \message
+ \let\tabu@tracing@save \tabu@message@save
+ \let\tabu@starttimer \tabu@pdftimer
+ \else
+ \let\tabu@message \@gobble
+ \let\tabu@tracing@save \@gobble
+ \let\tabu@starttimer \relax
+ \fi
+}% \tabu@tr@cing
+%% Setup \AtBeginDocument
+\AtBeginDocument{\tabu@AtBeginDocument}
+\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined
+ \ifdefined\arrayrulecolor \tabu@colortbltrue % <colortbl>
+ \tabu@colortblalignments % different glues are used
+ \else \tabu@colortblfalse \fi
+ \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi
+ \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi
+ \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@
+ \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % <siunitx: ok>
+ \expandafter\ifx
+ \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax
+ \tabu@siunitxtrue
+ \else \let\tabu@maybesiunitx \@firstofone % <not siunitx: setup>
+ \let\tabu@siunitx \tabu@nosiunitx
+ \tabu@siunitxfalse
+ \fi
+ \ifdefined\adl@array % <arydshln>
+ \else \let\tabu@adl@fix \relax
+ \let\tabu@adl@endtrial \@empty \fi
+ \ifdefined\longtable % <longtable>
+ \else \let\longtabu \tabu@nolongtabu \fi
+ \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi
+ \csname\ifcsname ifHy@hyperfootnotes\endcsname % <hyperfootnotes>
+ ifHy@hyperfootnotes\else iffalse\fi\endcsname
+ \let\tabu@footnotetext \tabu@Hy@ftntext
+ \let\tabu@xfootnote \tabu@Hy@xfootnote \fi
+ \ifdefined\FV@DefineCheckEnd% <fancyvrb>
+ \tabu@fancyvrb \fi
+ \ifdefined\color % <color / xcolor>
+ \let\tabu@color \color
+ \def\tabu@leavevmodecolor ##1{%
+ \def\tabu@leavevmodecolor {\leavevmode ##1}%
+ }\expandafter\tabu@leavevmodecolor\expandafter{\color}%
+ \else
+ \let\tabu@color \tabu@nocolor
+ \let\tabu@leavevmodecolor \@firstofone \fi
+ \tabu@latextwoe
+ \ifdefined\@raggedtwoe@everyselectfont % <ragged2e>
+ \tabu@raggedtwoe
+ \else
+ \let\tabu@cell@L \tabu@cell@l
+ \let\tabu@cell@R \tabu@cell@r
+ \let\tabu@cell@C \tabu@cell@c
+ \let\tabu@cell@J \tabu@cell@j \fi
+ \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}%
+ \ifin@ \let\tabu@endarray \endarray
+ \else \tabu@fix@arrayright \fi% <fix for colortbl & arydshln (delarray)>
+ \everyrow{}%
+}% \tabu@AtBeginDocument
+\def\tabu@warn@cellspace{%
+ \PackageWarning{tabu}{%
+ Package cellspace has some limitations
+ \MessageBreak And redefines some macros of array.sty.
+ \MessageBreak Please use \string\tabulinesep\space to control
+ \MessageBreak vertical spacing of lines inside tabu environment}%
+}% \tabu@warn@cellspace
+%% tabu Package initialisation
+\tabuscantokensfalse
+\let\tabu@arc@G \relax
+\let\tabu@drsc@G \relax
+\let\tabu@evr@G \@empty
+\let\tabu@rc@G \@empty
+\def\tabu@ls@G {\tabu@linestyle@}%
+\let\tabu@@rowfontreset \@empty % <init>
+\let\tabu@@celllalign \@empty
+\let\tabu@@cellralign \@empty
+\let\tabu@@cellleft \@empty
+\let\tabu@@cellright \@empty
+\def\tabu@naturalXmin {\z@}
+\def\tabu@naturalXmax {\z@}
+\let\tabu@rowfontreset \@empty
+\def\tabulineon {4pt}\let\tabulineoff \tabulineon
+\tabu@everyrowtrue
+\ifdefined\pdfelapsedtime % <pdfTeX>
+ \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}%
+\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax
+\fi
+\tracingtabu=\z@
+\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@
+\tabulinestyle{}
+\taburowcolors{}
+\let\tabudefaulttarget \linewidth
+\ProcessOptions* % \ProcessOptions* is quicker !
+\endinput
+%%
+%% End of file `tabu.sty'.