From 3e81ae3ce2fe14375954ecc37eeb6c2b5c39bbab Mon Sep 17 00:00:00 2001 From: Eric Pedley Date: Mon, 20 Nov 2023 13:33:50 -0800 Subject: [PATCH 01/20] Fix wrong term start date (#807) --- apps/antalmanac/src/lib/termData.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/antalmanac/src/lib/termData.ts b/apps/antalmanac/src/lib/termData.ts index a0519f7c9..dfd65778a 100644 --- a/apps/antalmanac/src/lib/termData.ts +++ b/apps/antalmanac/src/lib/termData.ts @@ -18,7 +18,7 @@ class Term { * Months are 0-indexed */ const termData = [ - new Term('2024 Winter', '2024 Winter Quarter', [2023, 0, 8]), + new Term('2024 Winter', '2024 Winter Quarter', [2024, 0, 8]), new Term('2023 Fall', '2023 Fall Quarter', [2023, 8, 28]), new Term('2023 Summer2', '2023 Summer Session 2', [2023, 7, 7]), new Term('2023 Summer10wk', '2023 10-wk Summer', [2023, 5, 26]), From 7f0ed2e130f4ca77aa5a5c92a6bc6b47007b5111 Mon Sep 17 00:00:00 2001 From: Kevin Wu Date: Thu, 23 Nov 2023 13:12:31 -0800 Subject: [PATCH 02/20] fix: Swap Popover to Tooltip for Restrictions Cell (#808) --- .../SectionTable/SectionTableBody.tsx | 32 +++++++------------ 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx index 5870504db..e7cc8a0ae 100644 --- a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx +++ b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx @@ -14,7 +14,6 @@ import { Link } from 'react-router-dom'; import { withStyles } from '@material-ui/core/styles'; import { ClassNameMap, Styles } from '@material-ui/core/styles/withStyles'; import classNames from 'classnames'; -import { bindHover, bindPopover, usePopupState } from 'material-ui-popup-state/hooks'; import { Fragment, useCallback, useEffect, useMemo, useState } from 'react'; import { AASection } from '@packages/antalmanac-types'; @@ -374,7 +373,6 @@ interface RestrictionsCellProps { const RestrictionsCell = withStyles(styles)((props: RestrictionsCellProps) => { const { classes, restrictions } = props; - const popupState = usePopupState({ popupId: 'RestrictionsCellPopup', variant: 'popover' }); const parseRestrictions = (restrictionCode: string) => { return restrictionCode.split(' ').map((code, index) => { @@ -393,25 +391,17 @@ const RestrictionsCell = withStyles(styles)((props: RestrictionsCellProps) => { return ( - - - {restrictions} - - - - {parseRestrictions(restrictions)} - + {parseRestrictions(restrictions)}}> + + + {restrictions} + + + ); From f61a31c15dbc7b7ae5198573f2f564ee1848c1a2 Mon Sep 17 00:00:00 2001 From: Kevin Wu Date: Thu, 23 Nov 2023 22:25:28 -0800 Subject: [PATCH 03/20] fix: Correct snapshot for Winter 2024 (#809) --- apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap b/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap index 859b45417..32bab2a46 100644 --- a/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap +++ b/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap @@ -49,7 +49,7 @@ Taught by placeholderInstructor1/placeholderInstructor2", }, { "end": [ - 2023, + 2024, 1, 8, 3, @@ -59,7 +59,7 @@ Taught by placeholderInstructor1/placeholderInstructor2", "productId": "antalmanac/ics", "recurrenceRule": "FREQ=WEEKLY;BYDAY=MO,WE,FR;INTERVAL=1;COUNT=30", "start": [ - 2023, + 2024, 1, 8, 1, From 6d325345254d11b74618ed0f310cd60b80239c9d Mon Sep 17 00:00:00 2001 From: Aponia Date: Thu, 23 Nov 2023 22:37:56 -0800 Subject: [PATCH 04/20] feat: locations for custom events (#726) Co-authored-by: Yukai Gu --- .../Calendar/CourseCalendarEvent.tsx | 14 +- .../CustomEventDialog/CustomEventDialog.tsx | 29 ++-- apps/antalmanac/src/components/Map/Map.tsx | 129 +++++++++++++++--- .../AddedCourses/CustomEventDetailView.tsx | 26 +++- .../src/components/inputs/building-select.tsx | 53 +++++++ apps/antalmanac/src/lib/analytics.ts | 2 +- apps/antalmanac/src/lib/course_data.types.ts | 5 +- apps/antalmanac/src/lib/websoc.ts | 18 +-- apps/antalmanac/src/lib/zotcourse.ts | 8 +- .../src/stores/calendarizeHelpers.ts | 5 +- .../tests/calendarize-helpers.test.ts | 4 + packages/types/src/customevent.ts | 3 + 12 files changed, 237 insertions(+), 59 deletions(-) create mode 100644 apps/antalmanac/src/components/inputs/building-select.tsx diff --git a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx index a36aa4784..c1c16b342 100644 --- a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx +++ b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx @@ -16,6 +16,7 @@ import locationIds from '$lib/location_ids'; import { useTabStore } from '$stores/TabStore'; import { formatTimes } from '$stores/calendarizeHelpers'; import { useTimeFormatStore } from '$stores/TimeStore'; +import buildingCatalogue from '$lib/buildingCatalogue'; const styles: Styles = { courseContainer: { @@ -141,6 +142,7 @@ export interface CourseEvent extends CommonCalendarEvent { export interface CustomEvent extends CommonCalendarEvent { customEventID: number; isCustomEvent: true; + building: string; days: string[]; } @@ -288,10 +290,20 @@ const CourseCalendarEvent = (props: CourseCalendarEventProps) => { ); } else { - const { title, customEventID } = courseInMoreInfo; + const { title, customEventID, building } = courseInMoreInfo; return (
{title}
+
+ Location:    + + {building ? buildingCatalogue[+building].name : ''} + +
void; @@ -58,6 +48,7 @@ const defaultCustomEvent: RepeatingCustomEvent = { title: '', days: [false, false, false, false, false, false, false], customEventID: 0, + building: undefined, }; class CustomEventDialog extends PureComponent { @@ -108,16 +99,21 @@ class CustomEventDialog extends PureComponent { + this.setState({ building: building?.id }); + }; + handleAddToCalendar = () => { if (!this.state.days.some((day) => day) || this.state.scheduleIndices.length === 0) return; - const newCustomEvent = { + const newCustomEvent: RepeatingCustomEvent = { color: this.props.customEvent ? this.props.customEvent.color : '#551a8b', title: this.state.title, days: this.state.days, start: this.state.start, end: this.state.end, customEventID: this.props.customEvent ? this.props.customEvent.customEventID : Date.now(), + building: this.state.building, }; if (this.props.customEvent) editCustomEvent(newCustomEvent, this.state.scheduleIndices); @@ -197,6 +193,7 @@ class CustomEventDialog extends PureComponent + event.locations.map((location) => location.building)); + const courseBuildings = courseEvents.flatMap((event) => event.locations.map((location) => location.building)); + + const allBuildingCodes = [...courseBuildings]; const uniqueBuildingCodes = new Set(allBuildingCodes); @@ -74,14 +77,66 @@ export function getCoursesPerBuilding() { return coursesPerBuilding; } -/** - * Get unique building names for the MUI Autocomplete. - * A building with a duplicate name will have a higher index then a `findIndex` for another building with the same name. - */ -const buildings = Object.entries(buildingCatalogue).filter( - ([_, building], index, array) => - array.findIndex(([_, otherBuilding]) => otherBuilding.name === building.name) === index -); +export function getCustomEventPerBuilding() { + const customEvents = AppStore.getCustomEvents(); + + const customEventBuildings = customEvents.map((e) => e.building).filter(notNull); + + // convert all digit to name in customEventBuilding for example: 83096 -> ICS + for (let i = 0; i < customEventBuildings.length; i++) { + customEventBuildings[i] = + Object.keys(locationIds).find((key) => locationIds[key] === parseInt(customEventBuildings[i])) || ''; + } + + const allBuildingCodes = [...customEventBuildings]; + + const uniqueBuildingCodes = new Set(allBuildingCodes); + + const validBuildingCodes = [...uniqueBuildingCodes].filter( + (buildingCode) => buildingCatalogue[locationIds[buildingCode]] != null + ); + + interface localCustomEventType { + title: string; + start: string; + end: string; + days: boolean[]; + customEventID: number; + color?: string | undefined; + building?: string | undefined; + } + + const customEventPerBuilding: Record = {}; + for (let i = 0; i < validBuildingCodes.length; i++) { + customEventPerBuilding[validBuildingCodes[i]] = customEvents + .filter((event) => { + return ( + Object.keys(locationIds).find( + (key) => locationIds[key] === parseInt(event.building ? event.building : '') + ) == validBuildingCodes[i] + ); + }) + .map((event) => { + const locationData = buildingCatalogue[locationIds[validBuildingCodes[i]]]; + const key = `${event.title} @ ${event.building}`; + const acronym = locationData.name.substring( + locationData.name.indexOf('(') + 1, + locationData.name.indexOf(')') + ); + const markerCustomEventData = { + key, + image: locationData.imageURLs[0], + acronym, + markerColor: event.color ? event.color : '', + location: locationData.name, + ...locationData, + ...event, + }; + return markerCustomEventData; + }); + } + return customEventPerBuilding; +} /** * Map of all course locations on UCI campus. @@ -93,6 +148,7 @@ export default function CourseMap() { const [searchParams] = useSearchParams(); const [selectedDayIndex, setSelectedDay] = useState(0); const [markers, setMarkers] = useState(getCoursesPerBuilding()); + const [customEventMarkers] = useState(getCustomEventPerBuilding()); const [calendarEvents, setCalendarEvents] = useState(AppStore.getCourseEventsInCalendar()); useEffect(() => { @@ -146,9 +202,9 @@ export default function CourseMap() { [setSelectedDay] ); - const handleSearch = useCallback( - (_event: React.SyntheticEvent, value: [string, Building] | null) => { - navigate(`/map?location=${value?.[0]}`); + const onBuildingChange = useCallback( + (building?: ExtendedBuilding | null) => { + navigate(`/map?location=${building?.id}`); }, [navigate] ); @@ -193,12 +249,27 @@ export default function CourseMap() { const markersToday = today === 'All' ? markerValues : markerValues.filter((course) => course.start.toString().includes(today)); - return markersToday .sort((a, b) => a.start.getTime() - b.start.getTime()) .filter((marker, i, arr) => arr.findIndex((other) => other.sectionCode === marker.sectionCode) === i); }, [markers, today]); + const customEventMarkersToDisplay = useMemo(() => { + const markerValues = Object.keys(customEventMarkers).flatMap((markerKey) => customEventMarkers[markerKey]); + + const markersToday = + today === 'All' + ? markerValues + : markerValues.filter((event) => { + return event.days.some((day, index) => day && WORK_WEEK[index] === today); + }); + return markersToday.sort((a, b) => { + const startDateA = new Date(`1970-01-01T${a.start}`); + const startDateB = new Date(`1970-01-01T${b.start}`); + return startDateA.getTime() - startDateB.getTime(); + }); + }, [customEventMarkers, today]); + /** * Every two markers grouped as [start, destination] tuples for the routes. */ @@ -222,12 +293,7 @@ export default function CourseMap() { ))} - option[1].name ?? ''} - onChange={handleSearch} - renderInput={(params) => } - /> + { + const customEventSameBuildingPrior = customEventMarkersToDisplay.slice(0, index); + + return ( + + + + Event: {customEventMarkers.title} + + + + ); + })} + {/* Render an additional marker if the user searched up a location. */} {/* A unique key based on the building is used to make sure the previous marker un-renders. */} {focusedLocation && ( diff --git a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx index 99e7547d9..e7fdc3d38 100644 --- a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx +++ b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx @@ -3,16 +3,25 @@ import { withStyles } from '@material-ui/core/styles'; import { ClassNameMap } from '@material-ui/core/styles/withStyles'; import { Delete } from '@material-ui/icons'; import moment from 'moment'; +import { Link } from 'react-router-dom'; +import { useCallback } from 'react'; import CustomEventDialog, { RepeatingCustomEvent } from '../../Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import ColorPicker from '../../ColorPicker'; import { deleteCustomEvent } from '$actions/AppStoreActions'; import analyticsEnum from '$lib/analytics'; +import buildingCatalogue from '$lib/buildingCatalogue'; +import { useTabStore } from '$stores/TabStore'; const styles = { root: { padding: '4px 4px 0px 8px', }, + customEventLocation: { + margin: '0.75rem', + color: '#bbbbbb', + fontSize: '1rem', + }, colorPicker: { cursor: 'pointer', '& > div': { @@ -51,6 +60,12 @@ const CustomEventDetailView = (props: CustomEventDetailViewProps) => { return `${startTime.format('h:mm A')} — ${endTime.format('h:mm A')} • ${daysString}`; }; + const { setActiveTab } = useTabStore(); + + const focusMap = useCallback(() => { + setActiveTab(2); + }, [setActiveTab]); + return ( { title={customEvent.title} subheader={readableDateAndTimeFormat(customEvent.start, customEvent.end, customEvent.days)} /> +
+ + {customEvent.building ? buildingCatalogue[+customEvent.building].name : ''} + +
{ analyticsCategory={analyticsEnum.addedClasses.title} />
+ { deleteCustomEvent(customEvent.customEventID); @@ -75,7 +100,6 @@ const CustomEventDetailView = (props: CustomEventDetailViewProps) => { > -
); diff --git a/apps/antalmanac/src/components/inputs/building-select.tsx b/apps/antalmanac/src/components/inputs/building-select.tsx new file mode 100644 index 000000000..477fbc814 --- /dev/null +++ b/apps/antalmanac/src/components/inputs/building-select.tsx @@ -0,0 +1,53 @@ +import { useCallback, useMemo } from 'react'; +import { Autocomplete, TextField } from '@mui/material'; +import buildingCatalogue, { Building } from '$lib/buildingCatalogue'; + +export interface ExtendedBuilding extends Building { + id: string; +} + +/** + * Get unique building names for the MUI Autocomplete. + * A building with a duplicate name will have a higher index then a `findIndex` for another building with the same name. + */ +const buildings: ExtendedBuilding[] = Object.entries(buildingCatalogue) + .filter( + ([_, building], index, array) => + array.findIndex(([_, otherBuilding]) => otherBuilding.name === building.name) === index + ) + .map(([id, building]) => ({ id, ...building })); + +export type BuildingSelectProps = { + value?: string; + onChange?: (building?: ExtendedBuilding | null) => unknown; +}; + +export function BuildingSelect(props: BuildingSelectProps) { + const handleChange = useCallback(async (_event: React.SyntheticEvent, value: ExtendedBuilding | null) => { + await props.onChange?.(value); + }, []); + + const value = useMemo(() => { + if (props.value == null) { + return; + } + + const building = buildingCatalogue[Number(props.value)]; + + return { + id: props.value, + ...building, + }; + }, [props.value]); + + return ( + option.id === value?.id} + getOptionLabel={(option) => option.name ?? ''} + onChange={handleChange} + renderInput={(params) => } + /> + ); +} diff --git a/apps/antalmanac/src/lib/analytics.ts b/apps/antalmanac/src/lib/analytics.ts index 8d0e558ec..f611ef628 100644 --- a/apps/antalmanac/src/lib/analytics.ts +++ b/apps/antalmanac/src/lib/analytics.ts @@ -89,7 +89,7 @@ export function logAnalytics({ category, action, label, value }: AnalyticsProps) /** * Converts course number to a decimal representation. * E.g., '122A' -> 122.1, '121' -> 121 - * + * * @param courseNumber A string that represents the course number of a course (eg. '122A', '121') * @returns Decimal representation of courseNumber */ diff --git a/apps/antalmanac/src/lib/course_data.types.ts b/apps/antalmanac/src/lib/course_data.types.ts index 1b4876c18..619d745d6 100644 --- a/apps/antalmanac/src/lib/course_data.types.ts +++ b/apps/antalmanac/src/lib/course_data.types.ts @@ -1,5 +1,4 @@ -import { WebsocSection } from "peterportal-api-next-types"; - +import { WebsocSection } from 'peterportal-api-next-types'; export interface CourseDetails { deptCode: string; @@ -12,4 +11,4 @@ export interface CourseDetails { export interface CourseInfo { courseDetails: CourseDetails; section: WebsocSection; -} \ No newline at end of file +} diff --git a/apps/antalmanac/src/lib/websoc.ts b/apps/antalmanac/src/lib/websoc.ts index fa2a6a11a..5bed3e793 100644 --- a/apps/antalmanac/src/lib/websoc.ts +++ b/apps/antalmanac/src/lib/websoc.ts @@ -12,7 +12,7 @@ class _WebSOC { constructor() { this.cache = {}; } - + clearCache() { Object.keys(this.cache).forEach((key) => delete this.cache[key]); //https://stackoverflow.com/a/19316873/14587004 } @@ -52,7 +52,7 @@ class _WebSOC { req[fieldName] = field; responses.push(await this.query(req)); } - + return this.combineSOCObjects(responses); } @@ -176,35 +176,35 @@ class _WebSOC { if ('term' in record) { const termValue = record['term']; const termParts = termValue.split(' '); - + if (termParts.length === 2) { const [year, quarter] = termParts; - + delete record['term']; - + record['quarter'] = quarter; record['year'] = year; } } - + if ('startTime' in record) { if (record['startTime'] === '') { delete record['startTime']; } } - + if ('endTime' in record) { if (record['endTime'] === '') { delete record['endTime']; } } - + if ('division' in record) { if (record['division'] === '') { delete record['division']; } } - + return record; } } diff --git a/apps/antalmanac/src/lib/zotcourse.ts b/apps/antalmanac/src/lib/zotcourse.ts index 78537ee1d..9d89c5912 100644 --- a/apps/antalmanac/src/lib/zotcourse.ts +++ b/apps/antalmanac/src/lib/zotcourse.ts @@ -1,6 +1,6 @@ -import { RepeatingCustomEvent } from "$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog"; -import AppStore from "$stores/AppStore"; -import trpc from "./api/trpc"; +import trpc from './api/trpc'; +import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; +import AppStore from '$stores/AppStore'; export interface ZotCourseResponse { codes: string[]; @@ -30,4 +30,4 @@ export async function queryZotCourse(schedule_name: string) { codes: codes, customEvents: customEvents, }; -} \ No newline at end of file +} diff --git a/apps/antalmanac/src/stores/calendarizeHelpers.ts b/apps/antalmanac/src/stores/calendarizeHelpers.ts index 6833baad0..8d36dcbe1 100644 --- a/apps/antalmanac/src/stores/calendarizeHelpers.ts +++ b/apps/antalmanac/src/stores/calendarizeHelpers.ts @@ -4,9 +4,9 @@ import { CourseEvent, CustomEvent, Location } from '$components/Calendar/CourseC import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import { notNull, getReferencesOccurring } from '$lib/utils'; -const COURSE_WEEK_DAYS = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa']; +export const COURSE_WEEK_DAYS = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa']; -const FINALS_WEEK_DAYS = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']; +export const FINALS_WEEK_DAYS = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']; export function getLocation(location: string): Location { const [building = '', room = ''] = location.split(' '); @@ -142,6 +142,7 @@ export function calendarizeCustomEvents(currentCustomEvents: RepeatingCustomEven isCustomEvent: true, end: new Date(2018, 0, dayIndex, endHour, endMin), title: customEvent.title, + building: customEvent.building ?? '', days, }; }); diff --git a/apps/antalmanac/tests/calendarize-helpers.test.ts b/apps/antalmanac/tests/calendarize-helpers.test.ts index 6f0358ae8..eb928d6b1 100644 --- a/apps/antalmanac/tests/calendarize-helpers.test.ts +++ b/apps/antalmanac/tests/calendarize-helpers.test.ts @@ -208,6 +208,7 @@ describe('calendarize-helpers', () => { start: new Date(2018, 0, 0, 1, 2), end: new Date(2018, 0, 0, 3, 4), title: 'title', + building: '', days: ['Su', 'Tu', 'Th', 'Sa'], }, { @@ -217,6 +218,7 @@ describe('calendarize-helpers', () => { start: new Date(2018, 0, 2, 1, 2), end: new Date(2018, 0, 2, 3, 4), title: 'title', + building: '', days: ['Su', 'Tu', 'Th', 'Sa'], }, { @@ -226,6 +228,7 @@ describe('calendarize-helpers', () => { start: new Date(2018, 0, 4, 1, 2), end: new Date(2018, 0, 4, 3, 4), title: 'title', + building: '', days: ['Su', 'Tu', 'Th', 'Sa'], }, { @@ -235,6 +238,7 @@ describe('calendarize-helpers', () => { start: new Date(2018, 0, 6, 1, 2), end: new Date(2018, 0, 6, 3, 4), title: 'title', + building: '', days: ['Su', 'Tu', 'Th', 'Sa'], }, ]; diff --git a/packages/types/src/customevent.ts b/packages/types/src/customevent.ts index 45f8268c8..0acd3b47f 100644 --- a/packages/types/src/customevent.ts +++ b/packages/types/src/customevent.ts @@ -7,4 +7,7 @@ export const RepeatingCustomEventSchema = type({ days: 'boolean[]', customEventID: 'number | parsedNumber', 'color?': 'string', + 'building?': 'string', }); + +export type RepeatingCustomEvent = typeof RepeatingCustomEventSchema.infer; From c3c24cc3bf77dec66512b9e00834ede2a8b7bff6 Mon Sep 17 00:00:00 2001 From: Dalton Adcock Date: Mon, 27 Nov 2023 21:51:33 -0800 Subject: [PATCH 05/20] 45/55 Ratio Calendar Split (#815) --- apps/antalmanac/src/routes/Home.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/antalmanac/src/routes/Home.tsx b/apps/antalmanac/src/routes/Home.tsx index ccf64d5b1..510007c6e 100644 --- a/apps/antalmanac/src/routes/Home.tsx +++ b/apps/antalmanac/src/routes/Home.tsx @@ -23,7 +23,7 @@ export default function Home() { ) : ( Date: Wed, 29 Nov 2023 22:50:17 -0800 Subject: [PATCH 06/20] feat: Update Settings Menu (#810) --- .../antalmanac/src/actions/AppStoreActions.ts | 9 - .../src/components/Calendar/CalendarRoot.tsx | 5 +- .../Calendar/CourseCalendarEvent.tsx | 2 +- .../src/components/Header/SettingsMenu.tsx | 243 ++++++++++++------ .../AddedCourses/CustomEventDetailView.tsx | 6 +- .../RightPane/SectionTable/SectionTable.tsx | 2 +- .../SectionTable/SectionTableBody.tsx | 2 +- apps/antalmanac/src/lib/helpers.ts | 4 +- apps/antalmanac/src/providers/Theme.tsx | 39 +-- apps/antalmanac/src/providers/Themev5.tsx | 39 +-- apps/antalmanac/src/stores/AppStore.ts | 17 -- apps/antalmanac/src/stores/ColumnStore.ts | 1 - apps/antalmanac/src/stores/SettingsStore.ts | 69 +++++ apps/antalmanac/src/stores/TimeStore.ts | 20 -- 14 files changed, 291 insertions(+), 167 deletions(-) create mode 100644 apps/antalmanac/src/stores/SettingsStore.ts delete mode 100644 apps/antalmanac/src/stores/TimeStore.ts diff --git a/apps/antalmanac/src/actions/AppStoreActions.ts b/apps/antalmanac/src/actions/AppStoreActions.ts index 8caab3f47..053d254d5 100644 --- a/apps/antalmanac/src/actions/AppStoreActions.ts +++ b/apps/antalmanac/src/actions/AppStoreActions.ts @@ -191,15 +191,6 @@ export const copySchedule = (to: number) => { AppStore.copySchedule(to); }; -export const toggleTheme = (radioGroupEvent: React.ChangeEvent) => { - AppStore.toggleTheme(radioGroupEvent.target.value); - logAnalytics({ - category: analyticsEnum.nav.title, - action: analyticsEnum.nav.actions.CHANGE_THEME, - label: radioGroupEvent.target.value, - }); -}; - export const addSchedule = (scheduleName: string) => { AppStore.addSchedule(scheduleName); }; diff --git a/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx b/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx index f1f8f9c66..704d8f87c 100644 --- a/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx +++ b/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx @@ -9,7 +9,7 @@ import { Calendar, DateLocalizer, momentLocalizer, Views } from 'react-big-calen import CalendarToolbar from './CalendarToolbar'; import CourseCalendarEvent, { CalendarEvent } from './CourseCalendarEvent'; import AppStore from '$stores/AppStore'; -import { useTimeFormatStore } from '$stores/TimeStore'; +import { useTimeFormatStore } from '$stores/SettingsStore'; const localizer = momentLocalizer(moment); @@ -239,6 +239,9 @@ export default function ScheduleCalendar(props: ScheduleCalendarProps) { views={[Views.WEEK, Views.WORK_WEEK]} defaultView={Views.WORK_WEEK} view={hasWeekendCourse ? Views.WEEK : Views.WORK_WEEK} + onView={() => { + return; + }} step={15} timeslots={2} defaultDate={new Date(2018, 0, 1)} diff --git a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx index c1c16b342..82dff4dc5 100644 --- a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx +++ b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx @@ -15,7 +15,7 @@ import AppStore from '$stores/AppStore'; import locationIds from '$lib/location_ids'; import { useTabStore } from '$stores/TabStore'; import { formatTimes } from '$stores/calendarizeHelpers'; -import { useTimeFormatStore } from '$stores/TimeStore'; +import { useTimeFormatStore } from '$stores/SettingsStore'; import buildingCatalogue from '$lib/buildingCatalogue'; const styles: Styles = { diff --git a/apps/antalmanac/src/components/Header/SettingsMenu.tsx b/apps/antalmanac/src/components/Header/SettingsMenu.tsx index cda60295e..f4b72b6f9 100644 --- a/apps/antalmanac/src/components/Header/SettingsMenu.tsx +++ b/apps/antalmanac/src/components/Header/SettingsMenu.tsx @@ -1,96 +1,185 @@ -import { - Box, - Button, - FormControl, - FormControlLabel, - Paper, - Popover, - Radio, - RadioGroup, - Typography, -} from '@material-ui/core'; -import { Settings } from '@material-ui/icons'; -import { ChangeEvent, useEffect, useState } from 'react'; - -import { toggleTheme } from '$actions/AppStoreActions'; -import AppStore from '$stores/AppStore'; -import { useTimeFormatStore } from '$stores/TimeStore'; +import { useCallback, useState } from 'react'; +import { Box, Button, ButtonGroup, Divider, Drawer, IconButton, Typography, useMediaQuery } from '@material-ui/core'; +import { CSSProperties } from '@material-ui/core/styles/withStyles'; +import { Close, DarkMode, LightMode, Settings, SettingsBrightness } from '@mui/icons-material'; -function SettingsMenu() { - const [anchorEl, setAnchorEl] = useState(); - const [theme, setTheme] = useState(AppStore.getTheme()); +import { useThemeStore, useTimeFormatStore } from '$stores/SettingsStore'; + +const lightSelectedStyle: CSSProperties = { + backgroundColor: '#F0F7FF', + borderColor: '#007FFF', + color: '#007FFF', +}; - const { isMilitaryTime } = useTimeFormatStore(); +const darkSelectedStyle: CSSProperties = { + backgroundColor: '#003A7570', + borderColor: '#0059B2', + color: '#99CCF3', +}; + +function getSelectedStyle(buttonValue: string, themeSetting: string, appTheme: string) { + return themeSetting === buttonValue ? (appTheme == 'dark' ? darkSelectedStyle : lightSelectedStyle) : {}; +} - const handleThemeChange = () => { - setTheme(AppStore.getTheme()); +function ThemeMenu() { + const [themeSetting, appTheme, setTheme] = useThemeStore((store) => [ + store.themeSetting, + store.appTheme, + store.setAppTheme, + ]); + + const handleThemeChange = (event: React.MouseEvent) => { + setTheme(event.currentTarget.value as 'light' | 'dark' | 'system'); }; - const handleTimeChange = (event: ChangeEvent) => { - useTimeFormatStore.getState().setTimeFormat(event.target.value == 'true'); + return ( + + + Theme + + + + + + + + + ); +} + +function TimeMenu() { + const [isMilitaryTime, setTimeFormat] = useTimeFormatStore((store) => [store.isMilitaryTime, store.setTimeFormat]); + const theme = useThemeStore((store) => store.appTheme); + + const handleTimeFormatChange = (event: React.MouseEvent) => { + setTimeFormat(event.currentTarget.value == 'true'); }; - useEffect(() => { - AppStore.on('themeToggle', handleThemeChange); + return ( + + + Time + + + + + + + + ); +} + +function SettingsMenu() { + const [drawerOpen, setDrawerOpen] = useState(false); + const isMobileScreen = useMediaQuery('(max-width:750px)'); + + const handleDrawerOpen = useCallback(() => { + setDrawerOpen(true); + }, []); - return () => { - AppStore.off('themeToggle', handleThemeChange); - }; + const handleDrawerClose = useCallback(() => { + setDrawerOpen(false); }, []); return ( <> - - { - setAnchorEl(undefined); - }} - anchorOrigin={{ - vertical: 'bottom', - horizontal: 'center', - }} - transformOrigin={{ - vertical: 'top', - horizontal: 'center', - }} + - - - Theme - - - } label="Light" /> - } label="Dark" /> - } label="Automatic" /> - - - - - Time Format - - - } label="12 Hour" /> - } label="24 Hour" /> - - + + + Settings + + + - - + + + + + + ); } diff --git a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx index e7fdc3d38..392e1aa35 100644 --- a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx +++ b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx @@ -10,6 +10,7 @@ import CustomEventDialog, { RepeatingCustomEvent } from '../../Calendar/Toolbar/ import ColorPicker from '../../ColorPicker'; import { deleteCustomEvent } from '$actions/AppStoreActions'; import analyticsEnum from '$lib/analytics'; +import { useTimeFormatStore } from '$stores/SettingsStore'; import buildingCatalogue from '$lib/buildingCatalogue'; import { useTabStore } from '$stores/TabStore'; @@ -42,6 +43,7 @@ interface CustomEventDetailViewProps { const CustomEventDetailView = (props: CustomEventDetailViewProps) => { const { classes, customEvent } = props; + const { isMilitaryTime } = useTimeFormatStore(); const readableDateAndTimeFormat = (start: string, end: string, days: boolean[]) => { const startTime = moment({ @@ -57,7 +59,9 @@ const CustomEventDetailView = (props: CustomEventDetailViewProps) => { const dayAbbreviations = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; const daysString = days.map((includeDate, index) => (includeDate ? dayAbbreviations[index] : '')).join(' '); - return `${startTime.format('h:mm A')} — ${endTime.format('h:mm A')} • ${daysString}`; + const timeFormat = isMilitaryTime ? 'HH:mm' : 'h:mm A'; + + return `${startTime.format(timeFormat)} — ${endTime.format(timeFormat)} • ${daysString}`; }; const { setActiveTab } = useTabStore(); diff --git a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTable.tsx b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTable.tsx index 9905c3f8e..9edb16f82 100644 --- a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTable.tsx +++ b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTable.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useState } from 'react'; +import { useMemo } from 'react'; import { Box, Paper, diff --git a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx index e7cc8a0ae..c2f23e89b 100644 --- a/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx +++ b/apps/antalmanac/src/components/RightPane/SectionTable/SectionTableBody.tsx @@ -33,7 +33,7 @@ import { useTabStore } from '$stores/TabStore'; import locationIds from '$lib/location_ids'; import { normalizeTime, parseDaysString, formatTimes } from '$stores/calendarizeHelpers'; import useColumnStore, { type SectionTableColumn } from '$stores/ColumnStore'; -import { useTimeFormatStore } from '$stores/TimeStore'; +import { useTimeFormatStore } from '$stores/SettingsStore'; const styles: Styles = (theme) => ({ sectionCode: { diff --git a/apps/antalmanac/src/lib/helpers.ts b/apps/antalmanac/src/lib/helpers.ts index 5c4e96fba..f4004dd51 100644 --- a/apps/antalmanac/src/lib/helpers.ts +++ b/apps/antalmanac/src/lib/helpers.ts @@ -2,7 +2,7 @@ import React from 'react'; import { PETERPORTAL_GRAPHQL_ENDPOINT } from './api/endpoints'; import { openSnackbar } from '$actions/AppStoreActions'; -import AppStore from '$stores/AppStore'; +import { useThemeStore } from '$stores/SettingsStore'; export async function queryGraphQL(queryString: string): Promise { const query = JSON.stringify({ @@ -42,7 +42,7 @@ export async function clickToCopy(event: React.MouseEvent [store.appTheme, store.setAppTheme]); useEffect(() => { - AppStore.on('themeToggle', () => { - setDarkMode(isDarkMode()); - }); - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { - if (AppStore.getTheme() === 'auto') { - setDarkMode(e.matches); - } - }); - }, []); - - const theme = createTheme({ + const onChange = (e: MediaQueryListEvent) => { + setAppTheme(e.matches ? 'dark' : 'light'); + }; + + const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)'); + + mediaQueryList.addEventListener('change', onChange); + + return () => { + mediaQueryList.removeEventListener('change', onChange); + }; + }, [setAppTheme, appTheme]); + + const AppTheme = createTheme({ overrides: { MuiCssBaseline: { '@global': { a: { - color: darkMode ? 'dodgerblue' : 'blue', + color: appTheme == 'dark' ? 'dodgerBlue' : 'blue', }, }, }, @@ -41,7 +44,7 @@ export default function AppThemeProvider(props: Props) { parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10) * 0.9, }, palette: { - type: darkMode ? 'dark' : 'light', + type: appTheme == 'dark' ? 'dark' : 'light', primary: { light: '#5191d6', main: '#305db7', @@ -58,5 +61,5 @@ export default function AppThemeProvider(props: Props) { spacing: 4, }); - return {props.children}; + return {props.children}; } diff --git a/apps/antalmanac/src/providers/Themev5.tsx b/apps/antalmanac/src/providers/Themev5.tsx index f2a4a8e5e..4f5bfa18a 100644 --- a/apps/antalmanac/src/providers/Themev5.tsx +++ b/apps/antalmanac/src/providers/Themev5.tsx @@ -1,7 +1,7 @@ -import { useEffect, useMemo, useState } from 'react'; +import { useEffect, useMemo } from 'react'; import { createTheme, CssBaseline, ThemeProvider, type PaletteOptions } from '@mui/material'; -import AppStore from '$stores/AppStore'; -import { isDarkMode } from '$lib/helpers'; + +import { useThemeStore } from '$stores/SettingsStore'; const lightTheme: PaletteOptions = { primary: { @@ -37,32 +37,35 @@ interface Props { * sets and provides the MUI theme for the app */ export default function AppThemev5Provider(props: Props) { - const [darkMode, setDarkMode] = useState(isDarkMode()); + const [appTheme, setAppTheme] = useThemeStore((store) => [store.appTheme, store.setAppTheme]); useEffect(() => { - AppStore.on('themeToggle', () => { - setDarkMode(isDarkMode()); - }); - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { - if (AppStore.getTheme() === 'auto') { - setDarkMode(e.matches); - } - }); - }, []); + const onChange = (e: MediaQueryListEvent) => { + setAppTheme(e.matches ? 'dark' : 'light'); + }; + + const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)'); + + mediaQueryList.addEventListener('change', onChange); + + return () => { + mediaQueryList.removeEventListener('change', onChange); + }; + }, [setAppTheme, appTheme]); - const theme = useMemo( + const AppTheme = useMemo( () => createTheme({ palette: { - mode: darkMode ? 'dark' : 'light', - ...(darkMode ? darkTheme : lightTheme), + mode: appTheme == 'dark' ? 'dark' : 'light', + ...(appTheme == 'dark' ? darkTheme : lightTheme), }, }), - [darkMode] + [appTheme] ); return ( - + {props.children} diff --git a/apps/antalmanac/src/stores/AppStore.ts b/apps/antalmanac/src/stores/AppStore.ts index 8be07c600..935083cff 100644 --- a/apps/antalmanac/src/stores/AppStore.ts +++ b/apps/antalmanac/src/stores/AppStore.ts @@ -8,11 +8,6 @@ import { CalendarEvent, CourseEvent } from '$components/Calendar/CourseCalendarE import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import { useTabStore } from '$stores/TabStore'; -function getCurrentTheme() { - const theme = typeof Storage === 'undefined' ? 'auto' : window.localStorage.getItem('theme'); - return theme === null ? 'auto' : theme; -} - class AppStore extends EventEmitter { schedule: Schedules; customEvents: RepeatingCustomEvent[]; @@ -22,7 +17,6 @@ class AppStore extends EventEmitter { snackbarDuration: number; snackbarPosition: SnackbarPosition; snackbarStyle: object; // not sure what this is. I don't think we ever use it - theme: string; eventsInCalendar: CalendarEvent[]; finalsEventsInCalendar: CourseEvent[]; unsavedChanges: boolean; @@ -43,7 +37,6 @@ class AppStore extends EventEmitter { this.finalsEventsInCalendar = []; this.unsavedChanges = false; this.skeletonMode = false; - this.theme = getCurrentTheme(); if (typeof window !== 'undefined') { window.addEventListener('beforeunload', (event) => { @@ -118,10 +111,6 @@ class AppStore extends EventEmitter { return this.snackbarStyle; } - getTheme() { - return this.theme; - } - getAddedSectionCodes() { return this.schedule.getAddedSectionCodes(); } @@ -300,12 +289,6 @@ class AppStore extends EventEmitter { this.emit('openSnackbar'); // sends event to NotificationSnackbar } - toggleTheme(theme: string) { - this.theme = theme; - this.emit('themeToggle'); - window.localStorage.setItem('theme', theme); - } - updateScheduleNote(newScheduleNote: string, scheduleIndex: number) { this.schedule.updateScheduleNote(newScheduleNote, scheduleIndex); this.emit('scheduleNotesChange'); diff --git a/apps/antalmanac/src/stores/ColumnStore.ts b/apps/antalmanac/src/stores/ColumnStore.ts index 850a2514d..2be51baf7 100644 --- a/apps/antalmanac/src/stores/ColumnStore.ts +++ b/apps/antalmanac/src/stores/ColumnStore.ts @@ -1,5 +1,4 @@ import { create } from 'zustand'; -import useTabStore from './TabStore'; import analyticsEnum, { logAnalytics } from '$lib/analytics'; /** diff --git a/apps/antalmanac/src/stores/SettingsStore.ts b/apps/antalmanac/src/stores/SettingsStore.ts new file mode 100644 index 000000000..5ca0d6dd4 --- /dev/null +++ b/apps/antalmanac/src/stores/SettingsStore.ts @@ -0,0 +1,69 @@ +import { create } from 'zustand'; +import analyticsEnum, { logAnalytics } from '$lib/analytics'; + +export interface ThemeStore { + /** + * The 'raw' theme, based on the user's selected setting + */ + themeSetting: 'light' | 'dark' | 'system'; + /** + * The 'derived' theme, based on user settings and device preferences + */ + appTheme: 'light' | 'dark'; + setAppTheme: (themeSetting: 'light' | 'dark' | 'system') => void; +} + +export const useThemeStore = create((set) => { + const themeSetting = typeof Storage !== 'undefined' ? window.localStorage.getItem('theme') ?? 'system' : 'system'; + + const appTheme = + themeSetting !== 'system' + ? themeSetting + : window.matchMedia('(prefers-color-scheme: dark)').matches + ? 'dark' + : 'light'; + + return { + themeSetting: themeSetting as 'light' | 'dark' | 'system', + appTheme: appTheme as 'light' | 'dark', + setAppTheme: (themeSetting) => { + if (typeof Storage !== 'undefined') { + window.localStorage.setItem('theme', themeSetting); + } + + const appTheme = + themeSetting !== 'system' + ? themeSetting + : window.matchMedia('(prefers-color-scheme: dark)').matches + ? 'dark' + : 'light'; + + set({ appTheme: appTheme, themeSetting: themeSetting }); + + logAnalytics({ + category: analyticsEnum.nav.title, + action: analyticsEnum.nav.actions.CHANGE_THEME, + label: appTheme, + }); + }, + }; +}); + +export interface TimeFormatStore { + isMilitaryTime: boolean; + setTimeFormat: (militaryTime: boolean) => void; +} + +export const useTimeFormatStore = create((set) => { + const isMilitaryTime = typeof Storage !== 'undefined' && window.localStorage.getItem('show24HourTime') == 'true'; + + return { + isMilitaryTime, + setTimeFormat: (isMilitaryTime) => { + if (typeof Storage !== 'undefined') { + window.localStorage.setItem('show24HourTime', isMilitaryTime.toString()); + } + set({ isMilitaryTime }); + }, + }; +}); diff --git a/apps/antalmanac/src/stores/TimeStore.ts b/apps/antalmanac/src/stores/TimeStore.ts deleted file mode 100644 index 9f4572a00..000000000 --- a/apps/antalmanac/src/stores/TimeStore.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { create } from 'zustand'; - -export interface TimeFormatStore { - isMilitaryTime: boolean; - setTimeFormat: (militaryTime: boolean) => void; -} - -export const useTimeFormatStore = create((set) => { - const isMilitaryTime = typeof Storage !== 'undefined' && window.localStorage.getItem('show24HourTime') == 'true'; - - return { - isMilitaryTime, - setTimeFormat: (isMilitaryTime) => { - if (typeof Storage !== 'undefined') { - window.localStorage.setItem('show24HourTime', isMilitaryTime.toString()); - } - set({ isMilitaryTime }); - }, - }; -}); From bda3a2708ebe462e8f128136b5b5e1963ac4550e Mon Sep 17 00:00:00 2001 From: Yukai_Gu <47913844+stevenguyukai@users.noreply.github.com> Date: Thu, 30 Nov 2023 01:39:32 -0800 Subject: [PATCH 07/20] Small Fix on the Custom Event style (#822) Co-authored-by: Yukai Gu --- .../src/components/Calendar/CalendarRoot.tsx | 19 ++++++++++++-- .../CustomEventDialog/CustomEventDialog.tsx | 26 ++++++++++--------- .../antalmanac/src/components/ColorPicker.tsx | 20 +++++++------- apps/antalmanac/src/components/Map/Map.tsx | 4 ++- .../AddedCourses/CustomEventDetailView.tsx | 18 +++++++------ 5 files changed, 55 insertions(+), 32 deletions(-) diff --git a/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx b/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx index 704d8f87c..47ce75da7 100644 --- a/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx +++ b/apps/antalmanac/src/components/Calendar/CalendarRoot.tsx @@ -9,14 +9,29 @@ import { Calendar, DateLocalizer, momentLocalizer, Views } from 'react-big-calen import CalendarToolbar from './CalendarToolbar'; import CourseCalendarEvent, { CalendarEvent } from './CourseCalendarEvent'; import AppStore from '$stores/AppStore'; +import locationIds from '$lib/location_ids'; import { useTimeFormatStore } from '$stores/SettingsStore'; const localizer = momentLocalizer(moment); const AntAlmanacEvent = ({ event }: { event: CalendarEvent }) => { return event.isCustomEvent ? ( - - {event.title} + + + {event.title} + + + + {Object.keys(locationIds).find((key) => locationIds[key] === parseInt(event.building))} + ) : ( diff --git a/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog.tsx b/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog.tsx index 69764d159..2d0abed8d 100644 --- a/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog.tsx +++ b/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog.tsx @@ -133,18 +133,20 @@ class CustomEventDialog extends PureComponent {this.props.customEvent !== undefined ? ( // Dumb ternary below added to get rid of TypeScript possibly undefined compile error - - this.setState({ - open: true, - scheduleIndices: AppStore.schedule.getIndexesOfCustomEvent( - this.props.customEvent ? this.props.customEvent.customEventID : 0 - ), - }) - } - > - - + + + this.setState({ + open: true, + scheduleIndices: AppStore.schedule.getIndexesOfCustomEvent( + this.props.customEvent ? this.props.customEvent.customEventID : 0 + ), + }) + } + > + + + ) : (
- { - deleteCustomEvent(customEvent.customEventID); - }} - > - - + + { + deleteCustomEvent(customEvent.customEventID); + }} + > + + + ); From 97edefc916bfadc2c40a9ec7bf2c4fb08ad4a95a Mon Sep 17 00:00:00 2001 From: Kevin Wu Date: Thu, 30 Nov 2023 10:52:11 -0800 Subject: [PATCH 08/20] Add Custom Events and Schedule Notes to Skeleton Mode (#702) --- .../antalmanac/src/actions/AppStoreActions.ts | 5 +- .../components/Calendar/CalendarToolbar.tsx | 29 +- .../Calendar/CourseCalendarEvent.tsx | 22 +- .../CustomEventDialog/CustomEventDialog.tsx | 342 +++++++++--------- .../CustomEventDialog/ScheduleSelector.tsx | 2 +- .../src/components/Header/Export.tsx | 18 +- .../src/components/Header/ImportStudyList.tsx | 6 +- .../Header/LoadSaveFunctionality.tsx | 23 +- apps/antalmanac/src/components/Map/Map.tsx | 2 +- .../AddedCourses/AddedCoursePane.tsx | 211 +++++++---- .../AddedCourses/CustomEventDetailView.tsx | 120 +++--- .../RightPane/CoursePane/CourseRenderPane.tsx | 9 +- pnpm-lock.yaml | 44 +-- 13 files changed, 477 insertions(+), 356 deletions(-) diff --git a/apps/antalmanac/src/actions/AppStoreActions.ts b/apps/antalmanac/src/actions/AppStoreActions.ts index 053d254d5..d421f4190 100644 --- a/apps/antalmanac/src/actions/AppStoreActions.ts +++ b/apps/antalmanac/src/actions/AppStoreActions.ts @@ -110,7 +110,6 @@ export const loadSchedule = async (userId: string, rememberMe: boolean) => { window.confirm(`Are you sure you want to load a different schedule? You have unsaved changes!`)) ) { userId = userId.replace(/\s+/g, ''); - if (userId.length > 0) { if (rememberMe) { window.localStorage.setItem('userID', userId); @@ -122,7 +121,7 @@ export const loadSchedule = async (userId: string, rememberMe: boolean) => { const res = await trpc.users.getUserData.query({ userId }); const scheduleSaveState = res?.userData; - if (scheduleSaveState === undefined) { + if (scheduleSaveState == null) { openSnackbar('error', `Couldn't find schedules for username "${userId}".`); } else if (await AppStore.loadSchedule(scheduleSaveState)) { openSnackbar('success', `Schedule for username "${userId}" loaded.`); @@ -130,7 +129,7 @@ export const loadSchedule = async (userId: string, rememberMe: boolean) => { AppStore.loadSkeletonSchedule(scheduleSaveState); openSnackbar( 'error', - `Network error loading course information for "${userId}". + `Network error loading course information for "${userId}". If this continues to happen, please submit a feedback form.` ); } diff --git a/apps/antalmanac/src/components/Calendar/CalendarToolbar.tsx b/apps/antalmanac/src/components/Calendar/CalendarToolbar.tsx index b30a2a4db..2b5bf0ad0 100644 --- a/apps/antalmanac/src/components/Calendar/CalendarToolbar.tsx +++ b/apps/antalmanac/src/components/Calendar/CalendarToolbar.tsx @@ -128,6 +128,7 @@ function AddScheduleButton() { */ function SelectSchedulePopover(props: { scheduleNames: string[] }) { const [currentScheduleIndex, setCurrentScheduleIndex] = useState(AppStore.getCurrentScheduleIndex()); + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); const [anchorEl, setAnchorEl] = useState(); @@ -156,17 +157,23 @@ function SelectSchedulePopover(props: { scheduleNames: string[] }) { setCurrentScheduleIndex(AppStore.getCurrentScheduleIndex()); }, []); + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + useEffect(() => { AppStore.on('addedCoursesChange', handleScheduleIndexChange); AppStore.on('customEventsChange', handleScheduleIndexChange); AppStore.on('colorChange', handleScheduleIndexChange); AppStore.on('currentScheduleIndexChange', handleScheduleIndexChange); + AppStore.on('skeletonModeChange', handleSkeletonModeChange); return () => { AppStore.off('addedCoursesChange', handleScheduleIndexChange); AppStore.off('customEventsChange', handleScheduleIndexChange); AppStore.off('colorChange', handleScheduleIndexChange); AppStore.off('currentScheduleIndexChange', handleScheduleIndexChange); + AppStore.off('skeletonModeChange', handleSkeletonModeChange); }; }, [handleScheduleIndexChange]); @@ -178,6 +185,7 @@ function SelectSchedulePopover(props: { scheduleNames: string[] }) { variant="outlined" onClick={handleClick} sx={{ minWidth, maxWidth, justifyContent: 'space-between' }} + disabled={skeletonMode} > {currentScheduleName} @@ -246,8 +254,8 @@ export interface CalendarPaneToolbarProps { */ function CalendarPaneToolbar(props: CalendarPaneToolbarProps) { const { showFinalsSchedule, toggleDisplayFinalsSchedule } = props; - const [scheduleNames, setScheduleNames] = useState(AppStore.getScheduleNames()); + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); const handleToggleFinals = useCallback(() => { logAnalytics({ @@ -261,6 +269,18 @@ function CalendarPaneToolbar(props: CalendarPaneToolbarProps) { setScheduleNames(AppStore.getScheduleNames()); }, []); + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + useEffect(() => { AppStore.on('scheduleNamesChange', handleScheduleNamesChange); @@ -290,6 +310,7 @@ function CalendarPaneToolbar(props: CalendarPaneToolbarProps) { variant={showFinalsSchedule ? 'contained' : 'outlined'} onClick={handleToggleFinals} size="small" + disabled={skeletonMode} > Finals @@ -301,20 +322,20 @@ function CalendarPaneToolbar(props: CalendarPaneToolbarProps) { - + - + - + diff --git a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx index 82dff4dc5..67c066283 100644 --- a/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx +++ b/apps/antalmanac/src/components/Calendar/CourseCalendarEvent.tsx @@ -294,16 +294,18 @@ const CourseCalendarEvent = (props: CourseCalendarEventProps) => { return (
{title}
-
- Location:    - - {building ? buildingCatalogue[+building].name : ''} - -
+ {building && ( +
+ Location:  + + {buildingCatalogue[+building].name} + +
+ )}
void; scheduleNames: string[]; } -interface CustomEventDialogState extends RepeatingCustomEvent { - open: boolean; - scheduleIndices: number[]; -} - -const defaultCustomEvent: RepeatingCustomEvent = { +const defaultCustomEventValues: RepeatingCustomEvent = { start: '10:30', end: '15:30', title: '', @@ -51,180 +38,199 @@ const defaultCustomEvent: RepeatingCustomEvent = { building: undefined, }; -class CustomEventDialog extends PureComponent { - state: CustomEventDialogState = { - open: false, - ...(this.props.customEvent || defaultCustomEvent), - scheduleIndices: [], +function CustomEventDialogs(props: CustomEventDialogProps) { + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); + + const [open, setOpen] = useState(false); + const [scheduleIndices, setScheduleIndices] = useState([]); + const [start, setStart] = useState(defaultCustomEventValues.start); + const [end, setEnd] = useState(defaultCustomEventValues.end); + const [title, setTitle] = useState(defaultCustomEventValues.title); + const [days, setDays] = useState(defaultCustomEventValues.days); + const [building, setBuilding] = useState(); + + const resetForm = () => { + setStart(defaultCustomEventValues.start); + setEnd(defaultCustomEventValues.end); + setTitle(defaultCustomEventValues.title); + setDays(defaultCustomEventValues.days); + setBuilding(undefined); }; - handleOpen = () => { - this.setState({ open: true, scheduleIndices: [AppStore.schedule.getCurrentScheduleIndex()] }); + const disabled = !(scheduleIndices.length && days.includes(true)); + + const handleSubmit = () => { + handleClose(); + handleAddToCalendar(); logAnalytics({ category: analyticsEnum.calendar.title, - action: analyticsEnum.calendar.actions.CLICK_CUSTOM_EVENT, + action: analyticsEnum.calendar.actions.ADD_CUSTOM_EVENT, }); }; - handleClose = (cancel: boolean) => { - if (!cancel) { - logAnalytics({ - category: analyticsEnum.calendar.title, - action: analyticsEnum.calendar.actions.ADD_CUSTOM_EVENT, - }); - if (this.props.onDialogClose) this.props.onDialogClose(); - this.handleAddToCalendar(); - } - - this.setState({ - ...this.state, - open: false, + const handleOpen = useCallback(() => { + setOpen(true); + setScheduleIndices([AppStore.schedule.getCurrentScheduleIndex()]); + + logAnalytics({ + category: analyticsEnum.calendar.title, + action: analyticsEnum.calendar.actions.CLICK_CUSTOM_EVENT, }); - }; + }, []); - handleEventNameChange: React.ChangeEventHandler = (event) => { - this.setState({ title: event.target.value }); - }; + const handleClose = useCallback(() => { + setOpen(false); + }, []); - handleEndTimeChange: React.ChangeEventHandler = (event) => { - this.setState({ end: event.target.value }); - }; + const handleEventNameChange = useCallback((event: React.ChangeEvent) => { + setTitle(event.target.value); + }, []); - handleStartTimeChange: React.ChangeEventHandler = (event) => { - this.setState({ start: event.target.value }); - }; + const handleStartTimeChange = useCallback((event: React.ChangeEvent) => { + setStart(event.target.value); + }, []); - handleDayChange = (days: boolean[]) => { - this.setState({ days: days }); - }; + const handleEndTimeChange = useCallback((event: React.ChangeEvent) => { + setEnd(event.target.value); + }, []); - handleBuildingChange = (building?: ExtendedBuilding | null) => { - this.setState({ building: building?.id }); + const handleDayChange = useCallback((days: boolean[]) => { + setDays(days); + }, []); + + const handleSelectScheduleIndices = useCallback((scheduleIndices: number[]) => { + setScheduleIndices(scheduleIndices); + }, []); + + const handleBuildingChange = (building?: ExtendedBuilding | null) => { + setBuilding(building?.id); }; - handleAddToCalendar = () => { - if (!this.state.days.some((day) => day) || this.state.scheduleIndices.length === 0) return; + const handleAddToCalendar = () => { + if (!days.some((day) => day) || scheduleIndices.length === 0) return; const newCustomEvent: RepeatingCustomEvent = { - color: this.props.customEvent ? this.props.customEvent.color : '#551a8b', - title: this.state.title, - days: this.state.days, - start: this.state.start, - end: this.state.end, - customEventID: this.props.customEvent ? this.props.customEvent.customEventID : Date.now(), - building: this.state.building, + color: props.customEvent ? props.customEvent.color : '#551a8b', + title: title, + days: days, + start: start, + end: end, + customEventID: props.customEvent ? props.customEvent.customEventID : Date.now(), + building: building, }; - if (this.props.customEvent) editCustomEvent(newCustomEvent, this.state.scheduleIndices); - else addCustomEvent(newCustomEvent, this.state.scheduleIndices); - }; + resetForm(); - handleSelectScheduleIndices = (scheduleIndices: number[]) => { - this.setState({ scheduleIndices: scheduleIndices }); + props.customEvent + ? editCustomEvent(newCustomEvent, scheduleIndices) + : addCustomEvent(newCustomEvent, scheduleIndices); }; - isAddDisabled = () => { - return !(this.state.scheduleIndices.length && this.state.days.some(Boolean)); - }; + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); - render() { - return ( - <> - {this.props.customEvent !== undefined ? ( - // Dumb ternary below added to get rid of TypeScript possibly undefined compile error - - - this.setState({ - open: true, - scheduleIndices: AppStore.schedule.getIndexesOfCustomEvent( - this.props.customEvent ? this.props.customEvent.customEventID : 0 - ), - }) - } - > - - - - ) : ( - - - - )} - - - - Event Name - - -
- - - - - - { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + + return ( + <> + {props.customEvent ? ( + + { + handleOpen(); + // Typecasting prevents TypeScript possibly undefined compile error + const customEvent = props.customEvent as RepeatingCustomEvent; + setScheduleIndices(AppStore.schedule.getIndexesOfCustomEvent(customEvent.customEventID)); + setStart(customEvent.start); + setEnd(customEvent.end); + setTitle(customEvent.title); + setDays(customEvent.days); + setBuilding(customEvent.building); + }} + > + + + + ) : ( + + + + )} + + + + Event Name + + +
+ + - - - - - - - - - - -
- - ); - } + + + + +
+ + + + + +
+ + ); } - -export default withStyles(styles)(CustomEventDialog); +export default CustomEventDialogs; diff --git a/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/ScheduleSelector.tsx b/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/ScheduleSelector.tsx index 684d80777..f763b6e75 100644 --- a/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/ScheduleSelector.tsx +++ b/apps/antalmanac/src/components/Calendar/Toolbar/CustomEventDialog/ScheduleSelector.tsx @@ -3,7 +3,7 @@ import FormControlLabel from '@material-ui/core/FormControlLabel'; import FormGroup from '@material-ui/core/FormGroup'; import React, { PureComponent } from 'react'; -import { RepeatingCustomEvent } from './CustomEventDialog'; +import type { RepeatingCustomEvent } from '@packages/antalmanac-types'; interface ScheduleSelectorProps { customEvent?: RepeatingCustomEvent; diff --git a/apps/antalmanac/src/components/Header/Export.tsx b/apps/antalmanac/src/components/Header/Export.tsx index 6d36ad617..145468c51 100644 --- a/apps/antalmanac/src/components/Header/Export.tsx +++ b/apps/antalmanac/src/components/Header/Export.tsx @@ -1,12 +1,26 @@ import { Button, Paper, Popover, Tooltip } from '@mui/material'; import { IosShare } from '@mui/icons-material'; -import { useCallback, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import AppStore from '$stores/AppStore'; import ExportCalendar from '$components/buttons/ExportCalendar'; import ScreenshotButton from '$components/buttons/Screenshot'; function Export() { const [anchorEl, setAnchorEl] = useState(); + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); + + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); const open = useMemo(() => Boolean(anchorEl), [anchorEl]); @@ -21,7 +35,7 @@ function Export() { return ( <> - diff --git a/apps/antalmanac/src/components/Header/ImportStudyList.tsx b/apps/antalmanac/src/components/Header/ImportStudyList.tsx index 665f5fee5..7a611cfda 100644 --- a/apps/antalmanac/src/components/Header/ImportStudyList.tsx +++ b/apps/antalmanac/src/components/Header/ImportStudyList.tsx @@ -69,11 +69,7 @@ class ImportStudyList extends PureComponent { + addCoursesMultiple = (courseInfo: { [sectionCode: string]: CourseInfo }, term: string, scheduleIndex: number) => { for (const section of Object.values(courseInfo)) { addCourse(section.section, section.courseDetails, term, scheduleIndex, true); } diff --git a/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx b/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx index b3d9675b2..28941297b 100644 --- a/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx +++ b/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx @@ -15,6 +15,7 @@ import { ChangeEvent, PureComponent, useEffect, useState } from 'react'; import { LoadingButton } from '@mui/lab'; import { loadSchedule, saveSchedule } from '$actions/AppStoreActions'; import { isDarkMode } from '$lib/helpers'; +import AppStore from '$stores/AppStore'; interface LoadSaveButtonBaseProps { action: typeof saveSchedule; @@ -138,6 +139,7 @@ class LoadSaveButtonBase extends PureComponent { const [loading, setLoading] = useState(false); + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); const loadScheduleAndSetLoading = async (userID: string, rememberMe: boolean) => { setLoading(true); @@ -145,6 +147,18 @@ const LoadSaveScheduleFunctionality = () => { setLoading(false); }; + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + useEffect(() => { if (typeof Storage !== 'undefined') { const savedUserID = window.localStorage.getItem('userID'); @@ -158,11 +172,16 @@ const LoadSaveScheduleFunctionality = () => { return ( <> - + diff --git a/apps/antalmanac/src/components/Map/Map.tsx b/apps/antalmanac/src/components/Map/Map.tsx index 08d9e306f..569a740ec 100644 --- a/apps/antalmanac/src/components/Map/Map.tsx +++ b/apps/antalmanac/src/components/Map/Map.tsx @@ -193,7 +193,7 @@ export default function CourseMap() { map.current?.flyTo([building.lat + 0.001, building.lng], 18, { duration: 250, animate: false }); markerRef.current?.openPopup(); }, 250); - }, [searchParams]); + }, [markerRef, searchParams]); const handleChange = useCallback( (_event: React.SyntheticEvent, newValue: number) => { diff --git a/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx b/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx index bebb71fce..bc976797c 100644 --- a/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx +++ b/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx @@ -1,19 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import PopupState, { bindMenu, bindTrigger } from 'material-ui-popup-state'; -import { - Box, - Chip, - Grid, - IconButton, - Menu, - MenuItem, - Paper, - SxProps, - TextField, - Tooltip, - Typography, -} from '@mui/material'; +import { Box, Chip, IconButton, Menu, MenuItem, Paper, SxProps, TextField, Tooltip, Typography } from '@mui/material'; import { ContentCopy, DeleteOutline } from '@mui/icons-material'; import { AACourse } from '@packages/antalmanac-types'; @@ -161,6 +149,127 @@ function CopyScheduleButton() { ); } +function CustomEventsBox() { + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); + + const [customEvents, setCustomEvents] = useState( + skeletonMode ? AppStore.getSkeletonSchedule().customEvents : AppStore.schedule.getCurrentCustomEvents() + ); + + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + + useEffect(() => { + const handleCustomEventsChange = () => { + setCustomEvents([...AppStore.schedule.getCurrentCustomEvents()]); + }; + + AppStore.on('customEventsChange', handleCustomEventsChange); + AppStore.on('currentScheduleIndexChange', handleCustomEventsChange); + + return () => { + AppStore.off('customEventsChange', handleCustomEventsChange); + AppStore.off('currentScheduleIndexChange', handleCustomEventsChange); + }; + }, []); + + if (customEvents.length <= 0) { + return null; + } + + return ( + + Custom Events + + {customEvents.map((customEvent) => { + return ( + + + + ); + })} + + + ); +} + +function ScheduleNoteBox() { + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); + const [scheduleNote, setScheduleNote] = useState( + skeletonMode ? AppStore.getSkeletonSchedule().scheduleNote : AppStore.getCurrentScheduleNote() + ); + const [scheduleIndex, setScheduleIndex] = useState(AppStore.getCurrentScheduleIndex()); + + const handleNoteChange = useCallback( + (event: React.ChangeEvent) => { + setScheduleNote(event.target.value); + updateScheduleNote(event.target.value, scheduleIndex); + }, + [scheduleIndex] + ); + + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + + useEffect(() => { + const handleScheduleNoteChange = () => { + setScheduleNote(AppStore.getCurrentScheduleNote()); + }; + + const handleScheduleIndexChange = () => { + setScheduleIndex(AppStore.getCurrentScheduleIndex()); + }; + + AppStore.on('scheduleNotesChange', handleScheduleNoteChange); + AppStore.on('currentScheduleIndexChange', handleScheduleIndexChange); + + return () => { + AppStore.off('scheduleNotesChange', handleScheduleNoteChange); + AppStore.off('currentScheduleIndexChange', handleScheduleIndexChange); + }; + }, []); + + return ( + + Schedule Notes + + + + ); +} + function SkeletonSchedule() { const [skeletonSchedule, setSkeletonSchedule] = useState(AppStore.getSkeletonSchedule()); @@ -187,8 +296,8 @@ function SkeletonSchedule() { }, [skeletonSchedule.courses]); return ( - - {skeletonSchedule.scheduleName} + + {skeletonSchedule.scheduleName} { // Sections organized under terms, in case the schedule contains multiple terms sectionsByTerm.map(([term, sections]) => ( @@ -216,6 +325,11 @@ function SkeletonSchedule() { )) } + + + + + PeterPortal or WebSoc is currently unreachable. This is the information that we can currently retrieve. @@ -225,55 +339,31 @@ function SkeletonSchedule() { function AddedSectionsGrid() { const [courses, setCourses] = useState(getCourses()); - const [customEvents, setCustomEvents] = useState(AppStore.schedule.getCurrentCustomEvents()); const [scheduleNames, setScheduleNames] = useState(AppStore.getScheduleNames()); - const [scheduleNote, setScheduleNote] = useState(AppStore.getCurrentScheduleNote()); const [scheduleIndex, setScheduleIndex] = useState(AppStore.getCurrentScheduleIndex()); - const handleNoteChange = useCallback( - (event: React.ChangeEvent) => { - setScheduleNote(event.target.value); - updateScheduleNote(event.target.value, scheduleIndex); - }, - [scheduleIndex] - ); - useEffect(() => { const handleCoursesChange = () => { setCourses(getCourses()); }; - const handleCustomEventsChange = () => { - setCustomEvents([...AppStore.schedule.getCurrentCustomEvents()]); - }; - const handleScheduleNamesChange = () => { setScheduleNames([...AppStore.getScheduleNames()]); }; - const handleScheduleNoteChange = () => { - setScheduleNote(AppStore.getCurrentScheduleNote()); - }; - const handleScheduleIndexChange = () => { setScheduleIndex(AppStore.getCurrentScheduleIndex()); }; AppStore.on('addedCoursesChange', handleCoursesChange); - AppStore.on('customEventsChange', handleCustomEventsChange); AppStore.on('currentScheduleIndexChange', handleCoursesChange); - AppStore.on('currentScheduleIndexChange', handleCustomEventsChange); AppStore.on('scheduleNamesChange', handleScheduleNamesChange); - AppStore.on('scheduleNotesChange', handleScheduleNoteChange); AppStore.on('currentScheduleIndexChange', handleScheduleIndexChange); return () => { AppStore.off('addedCoursesChange', handleCoursesChange); - AppStore.off('customEventsChange', handleCustomEventsChange); AppStore.off('currentScheduleIndexChange', handleCoursesChange); - AppStore.off('currentScheduleIndexChange', handleCustomEventsChange); AppStore.off('scheduleNamesChange', handleScheduleNamesChange); - AppStore.off('scheduleNotesChange', handleScheduleNoteChange); AppStore.off('currentScheduleIndexChange', handleScheduleIndexChange); }; }, []); @@ -305,10 +395,10 @@ function AddedSectionsGrid() { {`${scheduleName} (${scheduleUnits} Units)`} - + {courses.map((course) => { return ( - + - + ); })} - + - {customEvents.length > 0 && ( - - Custom Events - - {customEvents.map((customEvent) => { - return ( - - - - ); - })} - - - )} + - - Schedule Notes - - - + ); } diff --git a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx index cd4685ae5..9f7876ac4 100644 --- a/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx +++ b/apps/antalmanac/src/components/RightPane/AddedCourses/CustomEventDetailView.tsx @@ -1,50 +1,42 @@ -import { Card, CardActions, CardHeader, IconButton, Tooltip } from '@material-ui/core'; -import { withStyles } from '@material-ui/core/styles'; -import { ClassNameMap } from '@material-ui/core/styles/withStyles'; -import { Delete } from '@material-ui/icons'; +import { Box, Card, CardActions, CardHeader, IconButton, Tooltip } from '@mui/material'; +import { Delete } from '@mui/icons-material'; import moment from 'moment'; +import { useEffect, useState, useCallback } from 'react'; import { Link } from 'react-router-dom'; -import { useCallback } from 'react'; -import CustomEventDialog, { RepeatingCustomEvent } from '../../Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; +import type { RepeatingCustomEvent } from '@packages/antalmanac-types'; +import CustomEventDialog from '../../Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import ColorPicker from '../../ColorPicker'; import { deleteCustomEvent } from '$actions/AppStoreActions'; import analyticsEnum from '$lib/analytics'; +import AppStore from '$stores/AppStore'; import { useTimeFormatStore } from '$stores/SettingsStore'; import buildingCatalogue from '$lib/buildingCatalogue'; import { useTabStore } from '$stores/TabStore'; -const styles = { - root: { - padding: '4px 4px 0px 8px', - }, - customEventLocation: { - margin: '0.75rem', - color: '#bbbbbb', - fontSize: '1rem', - }, - colorPicker: { - cursor: 'pointer', - '& > div': { - margin: '0px 8px 0px 4px', - height: '20px', - width: '20px', - borderRadius: '50%', - }, - }, -}; - interface CustomEventDetailViewProps { - classes: ClassNameMap; - customEvent: RepeatingCustomEvent; - currentScheduleIndex: number; scheduleNames: string[]; + customEvent: RepeatingCustomEvent; } const CustomEventDetailView = (props: CustomEventDetailViewProps) => { - const { classes, customEvent } = props; + const { customEvent } = props; const { isMilitaryTime } = useTimeFormatStore(); + const [skeletonMode, setSkeletonMode] = useState(AppStore.getSkeletonMode()); + + useEffect(() => { + const handleSkeletonModeChange = () => { + setSkeletonMode(AppStore.getSkeletonMode()); + }; + + AppStore.on('skeletonModeChange', handleSkeletonModeChange); + + return () => { + AppStore.off('skeletonModeChange', handleSkeletonModeChange); + }; + }, []); + const readableDateAndTimeFormat = (start: string, end: string, days: boolean[]) => { const startTime = moment({ hours: parseInt(start.slice(0, 2)), @@ -74,41 +66,55 @@ const CustomEventDetailView = (props: CustomEventDetailViewProps) => { -
- + + {customEvent.building ? buildingCatalogue[+customEvent.building].name : ''} -
- -
- -
- - - { - deleteCustomEvent(customEvent.customEventID); + + + {!skeletonMode && ( + + div': { + margin: '0px 8px 0px 4px', + height: '20px', + width: '20px', + borderRadius: '50%', + }, }} > - - - -
+ + + + + + + { + deleteCustomEvent(customEvent.customEventID); + }} + size="large" + > + + + + + )}
); }; -export default withStyles(styles)(CustomEventDetailView); +export default CustomEventDetailView; diff --git a/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx b/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx index 2375e8b8b..9c2e31d13 100644 --- a/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx +++ b/apps/antalmanac/src/components/RightPane/CoursePane/CourseRenderPane.tsx @@ -203,11 +203,10 @@ export default function CourseRenderPane(props: { id?: number }) { ? WebSOC.queryMultiple(websocQueryParams, 'units') : WebSOC.query(websocQueryParams), // Catch the error here so that the course pane still loads even if the grades cache fails to populate - Grades.populateGradesCache(gradesQueryParams) - .catch((error) => { - console.error(error); - openSnackbar('error', 'Error loading grades information'); - }), + Grades.populateGradesCache(gradesQueryParams).catch((error) => { + console.error(error); + openSnackbar('error', 'Error loading grades information'); + }), ]); setError(false); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f4f683b4..66dccea1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -25,7 +25,7 @@ importers: version: 2.8.4 turbo: specifier: latest - version: 1.10.14 + version: 1.10.13 vitest: specifier: ^0.34.4 version: 0.34.4(jsdom@22.1.0) @@ -8313,64 +8313,64 @@ packages: fsevents: 2.3.2 dev: true - /turbo-darwin-64@1.10.14: - resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} + /turbo-darwin-64@1.10.13: + resolution: {integrity: sha512-vmngGfa2dlYvX7UFVncsNDMuT4X2KPyPJ2Jj+xvf5nvQnZR/3IeDEGleGVuMi/hRzdinoxwXqgk9flEmAYp0Xw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.10.14: - resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} + /turbo-darwin-arm64@1.10.13: + resolution: {integrity: sha512-eMoJC+k7gIS4i2qL6rKmrIQGP6Wr9nN4odzzgHFngLTMimok2cGLK3qbJs5O5F/XAtEeRAmuxeRnzQwTl/iuAw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.10.14: - resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} + /turbo-linux-64@1.10.13: + resolution: {integrity: sha512-0CyYmnKTs6kcx7+JRH3nPEqCnzWduM0hj8GP/aodhaIkLNSAGAa+RiYZz6C7IXN+xUVh5rrWTnU2f1SkIy7Gdg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.10.14: - resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} + /turbo-linux-arm64@1.10.13: + resolution: {integrity: sha512-0iBKviSGQQlh2OjZgBsGjkPXoxvRIxrrLLbLObwJo3sOjIH0loGmVIimGS5E323soMfi/o+sidjk2wU1kFfD7Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.10.14: - resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} + /turbo-windows-64@1.10.13: + resolution: {integrity: sha512-S5XySRfW2AmnTeY1IT+Jdr6Goq7mxWganVFfrmqU+qqq3Om/nr0GkcUX+KTIo9mPrN0D3p5QViBRzulwB5iuUQ==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.10.14: - resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} + /turbo-windows-arm64@1.10.13: + resolution: {integrity: sha512-nKol6+CyiExJIuoIc3exUQPIBjP9nIq5SkMJgJuxsot2hkgGrafAg/izVDRDrRduQcXj2s8LdtxJHvvnbI8hEQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.10.14: - resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} + /turbo@1.10.13: + resolution: {integrity: sha512-vOF5IPytgQPIsgGtT0n2uGZizR2N3kKuPIn4b5p5DdeLoI0BV7uNiydT7eSzdkPRpdXNnO8UwS658VaI4+YSzQ==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.10.14 - turbo-darwin-arm64: 1.10.14 - turbo-linux-64: 1.10.14 - turbo-linux-arm64: 1.10.14 - turbo-windows-64: 1.10.14 - turbo-windows-arm64: 1.10.14 + turbo-darwin-64: 1.10.13 + turbo-darwin-arm64: 1.10.13 + turbo-linux-64: 1.10.13 + turbo-linux-arm64: 1.10.13 + turbo-windows-64: 1.10.13 + turbo-windows-arm64: 1.10.13 dev: true /type-check@0.4.0: From a25147a85d2e9d05e2a95fc8aabd1338fad2a044 Mon Sep 17 00:00:00 2001 From: Jun Xia <110846941+JackyZzZz@users.noreply.github.com> Date: Thu, 30 Nov 2023 13:01:10 -0800 Subject: [PATCH 09/20] Optimized the logic of focus (#786) --- .../CoursePane/SearchForm/FuzzySearch.tsx | 16 +++++++++++++++- package.json | 3 +++ pnpm-lock.yaml | 8 ++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apps/antalmanac/src/components/RightPane/CoursePane/SearchForm/FuzzySearch.tsx b/apps/antalmanac/src/components/RightPane/CoursePane/SearchForm/FuzzySearch.tsx index 76354b742..bdcc8a0b1 100644 --- a/apps/antalmanac/src/components/RightPane/CoursePane/SearchForm/FuzzySearch.tsx +++ b/apps/antalmanac/src/components/RightPane/CoursePane/SearchForm/FuzzySearch.tsx @@ -2,6 +2,7 @@ import TextField from '@material-ui/core/TextField'; import Autocomplete, { AutocompleteInputChangeReason } from '@material-ui/lab/Autocomplete'; import { PureComponent } from 'react'; import search from 'websoc-fuzzy-search'; +import UAParser from 'ua-parser-js'; type SearchResult = ReturnType; @@ -17,6 +18,15 @@ const emojiMap: Record = { const romanArr = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII']; +const isMobile = () => { + const parser = new UAParser(); + return parser.getDevice().type === 'mobile' || parser.getDevice().type === 'tablet' || isIpad(); +}; + +const isIpad = () => { + return navigator.userAgent.includes('Mac') && 'ontouchend' in document; +}; + interface FuzzySearchProps { toggleSearch: () => void; toggleShowLegacySearch: () => void; @@ -171,7 +181,11 @@ class FuzzySearch extends PureComponent { renderInput={(params) => ( input && input.focus()} + inputRef={(input: HTMLInputElement | null) => { + if (input && !isMobile()) { + input.focus(); + } + }} fullWidth label={'Search'} /> diff --git a/package.json b/package.json index 0d6987628..61e04b590 100644 --- a/package.json +++ b/package.json @@ -26,5 +26,8 @@ "engines": { "pnpm": "^8.0.0", "node": ">=16" + }, + "dependencies": { + "ua-parser-js": "^1.0.37" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66dccea1c..fce89947e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,10 @@ settings: importers: .: + dependencies: + ua-parser-js: + specifier: ^1.0.37 + version: 1.0.37 devDependencies: cross-env: specifier: ^7.0.3 @@ -8423,6 +8427,10 @@ packages: hasBin: true dev: true + /ua-parser-js@1.0.37: + resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} + dev: false + /ufo@1.2.0: resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} dev: true From 93c9e5c520513c6351fcae0aa4fdc4267c9d3db0 Mon Sep 17 00:00:00 2001 From: Aponia Date: Fri, 1 Dec 2023 11:11:54 -0800 Subject: [PATCH 10/20] Update config (#825) --- .eslintignore | 42 +++++-- .eslintrc.cjs | 22 ++++ .gitignore | 60 ++++++--- .lintstagedrc.yml | 3 - .prettierignore | 43 ++++--- apps/antalmanac/LICENSE => LICENSE | 0 README.md | 187 +++++++++++++++++------------ apps/antalmanac/README.md | 7 ++ apps/backend/README.md | 57 ++++++--- lint-staged.config.cjs | 10 ++ package.json | 2 +- pnpm-lock.yaml | 12 +- prettier.config.cjs | 33 +++-- 13 files changed, 317 insertions(+), 161 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 .lintstagedrc.yml rename apps/antalmanac/LICENSE => LICENSE (100%) create mode 100644 apps/antalmanac/README.md create mode 100644 lint-staged.config.cjs diff --git a/.eslintignore b/.eslintignore index 738bd166c..8eb957ae0 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,15 +1,31 @@ -# dev environment -/node_modules/ -/.turbo/ -/dist/ -/static/ -/public/ - -# private -.env +##################################################################################### +# Generated +##################################################################################### + +## Packages installed by NPM. https://docs.npmjs.com/about-packages-and-modules +node_modules/ + +## Vitest coverage output. https://vitest.dev/guide/coverage.html +coverage/ + +## Turbo outputs. +.turbo/ + +## Vite build outputs for React. +build/ -# file system configs -desktop.ini -.DS_Store +## Build outputs from `tsc`, specified by `tsconfig.json`. +dist/ -tools/ + +##################################################################################### +# Development Environment +##################################################################################### + +## Static assets. +public/ + +## Private environment variables. +.env +.env.* +!.env.sample diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 000000000..0808a78cf --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,22 @@ +// @ts-check + +/** + * @type {import('eslint').Linter.Config} + */ +const config = { + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], + env: { + browser: true, + es6: true, + node: true, + }, + ignorePatterns: ['*.config.*', '*.cjs'], +}; + +module.exports = config; diff --git a/.gitignore b/.gitignore index b79356a55..430533410 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,52 @@ +##################################################################################### +# Generated +##################################################################################### + +## Packages installed by NPM. https://docs.npmjs.com/about-packages-and-modules node_modules/ -# Ignore build directories +## Vitest coverage output. https://vitest.dev/guide/coverage.html +coverage/ + +## ESLint cache. https://eslint.org/docs/latest/use/command-line-interface#caching +.eslintcache + +## Vite build output for React. build/ -dist/ -# Ignore cdk related directories -.cdk.staging -cdk.out +## `tsc` output, specified by tsconfig.json +dist/ -# Ignore Turbo directory -.turbo +## CDK output. +cdk.out/ -# Ignore .env files -*.env +## Logs. +*.log +.pnpm-debug.log* -# Ignore various editor-specific files -.idea -.vscode -# Ignore various log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* -*.log.* +##################################################################################### +# Operating System +##################################################################################### -# Misc +## MacOS folder settings. https://en.wikipedia.org/wiki/.DS_Store .DS_Store + +## Windows folder icon settings. https://learn.microsoft.com/en-us/windows/win32/shell/how-to-customize-folders-with-desktop-ini#use-a-desktopini-file +Desktop.ini + + +##################################################################################### +# Development Environment +##################################################################################### + +## Private environment variables. +.env +.env.* +!.env.example + +## JetBrains IDE settings. +.idea/ + +## VSCode settings. +.vscode/ diff --git a/.lintstagedrc.yml b/.lintstagedrc.yml deleted file mode 100644 index f6730990f..000000000 --- a/.lintstagedrc.yml +++ /dev/null @@ -1,3 +0,0 @@ -"*.{ts,js,tsx,jsx}": - - prettier --write - - eslint --fix diff --git a/.prettierignore b/.prettierignore index a74418889..8eb957ae0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,16 +1,31 @@ -# dev environment -/node_modules/ -/.turbo/ -/dist/ -/static/ -/public/ - -# private -.env +##################################################################################### +# Generated +##################################################################################### + +## Packages installed by NPM. https://docs.npmjs.com/about-packages-and-modules +node_modules/ + +## Vitest coverage output. https://vitest.dev/guide/coverage.html +coverage/ + +## Turbo outputs. +.turbo/ + +## Vite build outputs for React. +build/ -# file system configs -desktop.ini -.DS_Store +## Build outputs from `tsc`, specified by `tsconfig.json`. +dist/ -# misc -README.md \ No newline at end of file + +##################################################################################### +# Development Environment +##################################################################################### + +## Static assets. +public/ + +## Private environment variables. +.env +.env.* +!.env.sample diff --git a/apps/antalmanac/LICENSE b/LICENSE similarity index 100% rename from apps/antalmanac/LICENSE rename to LICENSE diff --git a/README.md b/README.md index bdd92fe57..b9327a414 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,155 @@ ![AntAlmanac](apps/antalmanac/public/banner.png) -## About +# About -AntAlmanac is a schedule planner website for classes at UC Irvine. Here are some of its features: +AntAlmanac is a schedule planner website for classes at UC Irvine. These are some of its features: -- Search bar to easily find classes by department (e.g COMPSCI), course code (e.g. ICS 31), and keywords (e.g. artificial intelligence) -- Calendar view to make it easier to see class times and spot conflicts -- Quick links to professor reviews, prerequisites, grade distributions, and past enrollment data. -- Notification system to tell you when a class goes from full to waitlist -- See where your classrooms are with the map view -- Clean UI (see below) - ![project screenshot](https://user-images.githubusercontent.com/48658337/177026240-be0f79b4-e909-486b-aa52-c1a435983781.png) +- ___Search bar___ to easily find classes by department (e.g COMPSCI), course code (e.g. ICS 31), and keywords (e.g. artificial intelligence). +- ___Integrated calendar___ to preview class times. +- ___Quick links___ to professor reviews, prerequisites, grade distributions, and past enrollment data. +- ___Interactive map___ with markers for your class locations. -### Tech Stack +![project screenshot](https://user-images.githubusercontent.com/48658337/177026240-be0f79b4-e909-486b-aa52-c1a435983781.png) -Our site is a React single page application bootstrapped with create-react-app and hosted on Github Pages. -We use the Material UI component library for most of our styling. -The site gets its course data from the [PeterPortal API](https://api.peterportal.org/), -which is also maintained by ICS Student Council (ICSSC). +## Technology +Our website is a single page React application hosted on Github Pages. +A summary of the libraries we use are listed below. -### History +### Frontend +- [MUI](https://mui.com) - React UI library. +- [React Big Calendar](https://github.com/jquense/react-big-calendar) - React calendar component. +- [Recharts](https://recharts.org/en-US) - React chart component. +- [Leaflet](https://leafletjs.com) - Interactive JS maps. +- [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction) - State management. + +### Backend +- [tRPC](https://trpc.io) - type-safe API access layer for the AntAlmanac API. +- [PeterPortal API](https://api.peterportal.org) - API maintained by ICSSC for retrieving UCI data. + +### Tooling +- [Vite](https://vitejs.dev) - Blazingly fast, modern bundler. +- [Vitest](https://vitest.dev) - Test runner. +- [AWS](https://aws.amazon.com) - Website deployment and hosting. +- [TypeScript](https://www.typescriptlang.org) - JavaScript with type-checking. + +## History AntAlmanac was created in 2018 by a small group of students under the leadership of @the-rango. They formed an AntAlmanac club to recruit other students and work on new features, so that the website would live on even after its makers graduated. + In 2019, @devsdevsdevs took over as AntAlmanac Project Lead and oversaw a massive rewrite of the codebase, laying the foundation for the AntAlmanac that we know and love today. -In 2020, AntAlmanac was adopted by the ICSSC Projects Committee. -ICSSC continues to provide funding, marketing, and engineering + +In 2020, AntAlmanac was adopted by the ICSSC Projects Committee, which continues to provide funding, marketing, and engineering to support the growing number of users and open-source developers that make up our AntAlmanac Community. -Since then, the project has continued to evolve and grow with successive generations of projects committee members! -| Year | Project Lead | -| ----------- | -------------------- | -| 2018 - 2019 | @the-rango (founder) | -| 2019 - 2021 | @devsdevsdevs | -| 2021 - 2022 | @ChaseC99 | -| 2022 - | @EricPedley | +Since then, the project has continued to evolve and grow with successive generations of projects committee members! -## Contributing +| Year | Project Lead | +| ---------------| -------------------- | +| 2018 - 2019 | @the-rango (founder) | +| 2019 - 2021 | @devsdevsdevs | +| 2021 - 2022 | @ChaseC99 | +| 2022 - Present | @EricPedley | +| 2023 - Present | @ap0nia | + + +# Contributing + +We welcome open-source contributions 🤗. +Here is a rough guide on how to contribute: + +## Steps +1. Look through the + [issue tracker](https://github.com/icssc/AntAlmanac/issues) or + [Kanban board](https://github.com/icssc/AntAlmanac/wiki/Kanban-Board-Docs) + to find an open issue (one that hasn't been assigned to anybody) + or create your own that describes the problem you want to fix. +2. [Fork the repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo) or + create a branch if you have the permission to do so. +3. [Setup your development environment](#get-setup-to-develop-locally) +4. Create a draft pull request with your new branch to track your progress. +5. Make any desired changes, commit, and push them. Repeat until the selected issue has been addressed. +6. Change the pull request from draft to open. If possible, request a review from a maintainer. +7. Wait for your pull request to get reviewed and address any requested changes. + Repeat until your pull request is approved. +8. Merge your pull request and your changes will appear on the live website shortly! 🥳 + +## Video Walkhrough +We also have a 30 minute contributor [video tutorial](https://www.youtube.com/watch?v=_v91cqGzu5o) available on YouTube. + +## Additional Help +If you ever need help, feel free to ask around on our [Discord server](https://discord.gg/Zu8KZHERtJ). -We welcome open-source contributions 🤗 Here is a rough guide on how to contribute: -1. Look through the [issue tracker](https://github.com/icssc/AntAlmanac/issues) or [Kanban board](https://github.com/icssc/AntAlmanac/wiki/Kanban-Board-Docs) to find an open issue (nobody else is assigned) or create your own that describes the problem you want to fix. -2. Fork the repository. If you're on the ICSSC Projects Committee and we've given you write access, create a branch instead of forking. -3. [Get setup to develop locally](#get-setup-to-develop-locally) -4. Create a draft pull request so others can track your progress. -5. Make your changes and push them as you complete them. Change the PR from draft to open once you're done. -6. Wait for your request to get reviewed and respond to any changes until you get approval. -7. Your PR gets merged and you see your changes live on the site 🥳 +# Development Environment -We have a 30 minute contributor video tutorial available on YouTube (https://www.youtube.com/watch?v=_v91cqGzu5o). +## Pre-requisites +1. Install `Node.js`. This allows you to run JavaScript on your computer (outside of a browser). + This is best done with a version manager that allows you to easily switch between + Node.js versions based on the requirements of different projects. + Try using any of the following. + - [nvm](https://github.com/nvm-sh/nvm) - Node-Version-Manager. + - [fnm](https://github.com/Schniz/fnm) - Fast-Node-Manager. + - [nvm-widows](https://github.com/coreybutler/nvm-windows) -If you ever need help, feel free to ask around on our [Discord server](https://discord.gg/Zu8KZHERtJ). + If none of those work for any reason, you can defer to your Operating System's + package manager or [the downloads from the official website](https://nodejs.org/en/download). + We will be using the latest LTS version, 20.10.0, lts/iron. -### Get Setup to Develop Locally +2. Install `pnpm`. This is our package manager of choice for this project. + It's responsible for installing, uninstalling, and keeping track of the app's dependencies. + `npm install --global pnpm` +## Developing 1. Clone the AntAlmanac repository or your fork. + `git clone https://github.com/icssc/AntAlmanac.git` 2. Navigate to the root directory and install the dependencies. - `npm i -g pnpm` - `cd AntAlmanac` - `pnpm install` - -3. Start the development server(s). - - Frontend only - `pnpm start:aa` - - Frontend and Backend - `pnpm start` + `cd AntAlmanac && pnpm install` -4. The website should be viewable at http://localhost:5173, - and the backend server at http://localhost:8080 (if started). - As you make changes to the React application in `src`, those changes will be automatically reflected on the website locally. +3. Start the development server for the frontend. + `pnpm start:aa` or `cd apps/antalmanac && pnpm dev` -#### Running Tests -1. Run `pnpm test` in the root directory +4. View the local website at http://localhost:5173. + As you make changes to the React application, those changes will be automatically reflected on the local website. -### Running the [Backend](https://github.com/icssc/antalmanac-backend) -The backend server __isn't necessary for frontend development__. -By default, your frontend will send requests to `dev.api.antalmanac.com`, which has it's own database that is separate from production's. +For more information on developing the frontend and backend projects locally, +see their respective READMEs. -If you want to run the backend locally, use `pnpm start:all` from the root of the repository. +- [frontend](/apps/antalmanac/README.md) +- [backend](/apps/backend/README.md) -[More in-depth instructions for working with the server can be found in its README](apps/backend/README.md) +Typically, you won't need to start the backend server locally +because an active development server is available for usage. -## Manual Deployment +However, if you would like to start both the frontend and the backend locally, +you can run `pnpm start` from the project root. -(For ICSSC Projects Committee members with write access to the repository only) +## Testing +From the root directory, run `pnpm test`. Or from any directory, run `pnpm -w test`. -We use GitHub Pages to deploy our site. -Usually deployments are done automatically through GitHub Actions, -but if we need to deploy manually the instructions are below. -Make sure you are on the latest version of `main` before running the deploy command. +# Troubleshooting -```bash -git checkout main -git pull -pnpm run deploy -``` - -## Troubleshooting - -### `npm i -g ` fails +## `npm i -g ` fails This is usually an issue with permissions because `npm` is trying to install a Node package into a globally accessible location like `/bin`, which needs admin permissions to do so. The best way to resolve this is to install Node via any version manager to properly handle -these sorts of permissions. -- [fnm](https://github.com/Schniz/fnm) -- [nvm](https://github.com/nvm-sh/nvm) - -The easier way to resolve this is to run the command with admin privileges. +these sorts of permissions. Here are the different version managers again. +- [nvm](https://github.com/nvm-sh/nvm) - Node-Version-Manager. +- [fnm](https://github.com/Schniz/fnm) - Fast-Node-Manager. +- [nvm-widows](https://github.com/coreybutler/nvm-windows) -### The React website doesn't seem to load at all -- Try disabling your adblocker. +A more convenient, but less secure way to resolve this is to run the command with admin privileges, e.g with `sudo`. +## The React website doesn't seem to load at all +Try disabling your adblocker. -### I need the env variables for the backend! +## I need the env variables for the backend! An example `.env.sample` is provided and can be used by renaming it to `.env` If you need real credentials to access the database or private resources, please contact a project lead. diff --git a/apps/antalmanac/README.md b/apps/antalmanac/README.md new file mode 100644 index 000000000..0b25fca99 --- /dev/null +++ b/apps/antalmanac/README.md @@ -0,0 +1,7 @@ +# AntAlmanac + +## Getting Started +1. Ensure the [pre-requisites](../../README.md#pre-requisites) are met. +2. Ensure all dependencies are installed by running `pnpm install` +3. Start the development server for the local frontend `pnpm dev` +4. View the local website at http://localhost:5173 diff --git a/apps/backend/README.md b/apps/backend/README.md index 405674c98..336ee6a70 100644 --- a/apps/backend/README.md +++ b/apps/backend/README.md @@ -1,26 +1,55 @@ # AntAlmanac Backend -This is the backend repository for [AntAlmanac](https://antalmanac.com). -## Routes -The backend serves the following routes +This is the dedicated backend for [AntAlmanac](https://antalmanac.com), +which is primarily responsible for managing user data and internal information. + +This is ___NOT___ for retrieving enrollment data from UCI; +[PeterPortal API](https://api.peterportal.org) is a separate ICSSC project dedicated +to providing us this information. + + +# Development + +## Non-Privileged +When developing as a non-privileged member, +the environment variables won't reflect real credentials to resources such as the database. + +The backend should still work, but with limited functionality. +Please request credentials from a project lead if you need them. + +1. Ensure that you're in the backend project. i.e. `cd apps/backend` from the project root. +1. Change the `.env.sample` to `.env`. +2. Start the server with `pnpm start`. + +## Privileged +ICSSC Project Committee Members can be given `.env` files with real credentials upon request. +These can be used to access real resources such as DynamoDB, MapBox, etc. + +Remove any `.env.*` files in the project root, and insert the `.env` you were given. + + +# Architecture + +## tRPC Routing (TODO) +We're currently migrating to [tRPC](https://trpc.io) and thus deprecating the +previous REST based architecture. +The desired functionality of the backend is still documented below. + +## REST Routing (Deprecating) +The backend provides the following functionality. + - `/banners` Returns the ads displayed above course search results. + - `/news` Returns a list of news announcements displayed on the top right navbar. + - `/notifications` Used to register for class notifications. + - `/users` Saves and returns user schedules. -### Deprecated Routes -Since AntAlmanac now uses the [PeterPortal API](https://api.peterportal.org) for course information, these routes are unnecessary. However we keep them around incase the API goes down. -- `/enrollmentData` +- `/enrollmentData` Returns information about course enrollment from previous terms. - -## Running Locally -__Only ICSSC Project Committee Members will the credentials necessary to connect to the databases.__ -1. Add the `.env` file - - Change the `.env.sample` to `.env` to get started with sample credentials. -2. Obtain AWS credentials -3. Run the backend: `pnpm start` -__Only do this if you just want to run the backend by itself. To run the whole project with the frontend and backend, you shoudl run `pnpm start:all` inside of the main [AntAlmanac repository](https://github.com/icssc-projects/AntAlmanac).__ +(Legacy - this information is provided by PeterPortal API) diff --git a/lint-staged.config.cjs b/lint-staged.config.cjs new file mode 100644 index 000000000..4d438d6dd --- /dev/null +++ b/lint-staged.config.cjs @@ -0,0 +1,10 @@ +// @ts-check + +/** + * @type {import('lint-staged').Config} + */ +const config = { + '*.?(c|m){js,ts}?(x)': ['prettier --write', 'eslint --quiet --fix'], +}; + +module.exports = config; diff --git a/package.json b/package.json index 61e04b590..6312d00c4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "husky": "^8.0.3", "jsdom": "^22.1.0", "lint-staged": "^13.1.1", - "prettier": "^2.8.4", + "prettier": "^3.1.0", "turbo": "latest", "vitest": "^0.34.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fce89947e..d3813ec6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -25,8 +25,8 @@ importers: specifier: ^13.1.1 version: 13.1.2 prettier: - specifier: ^2.8.4 - version: 2.8.4 + specifier: ^3.1.0 + version: 3.1.0 turbo: specifier: latest version: 1.10.13 @@ -7275,6 +7275,12 @@ packages: hasBin: true dev: true + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + engines: {node: '>=14'} + hasBin: true + dev: true + /pretty-format@26.6.2: resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} engines: {node: '>= 10'} diff --git a/prettier.config.cjs b/prettier.config.cjs index 493c6280e..e4285f82e 100644 --- a/prettier.config.cjs +++ b/prettier.config.cjs @@ -1,21 +1,20 @@ +//@ts-check + /** - * `cjs` format is required for plugins to work in VSCode. - * @see {@link https://github.com/tailwindlabs/prettier-plugin-tailwindcss/issues/113} + * @type {import('prettier').Config} */ - -/** @type {import('prettier').Config} */ const config = { - printWidth: 120, - tabWidth: 4, - useTabs: false, - semi: true, - singleQuote: true, - quoteProps: 'as-needed', - jsxSingleQuote: false, - trailingComma: 'es5', - bracketSpacing: true, - arrowParens: 'always', - endOfLine: 'lf', -} + printWidth: 120, + tabWidth: 4, + useTabs: false, + semi: true, + singleQuote: true, + quoteProps: 'as-needed', + jsxSingleQuote: false, + trailingComma: 'es5', + bracketSpacing: true, + arrowParens: 'always', + endOfLine: 'lf', +}; -module.exports = config +module.exports = config; From 49befe1872aa4f1636f238407abb395c4af48e6e Mon Sep 17 00:00:00 2001 From: Eric Pedley Date: Fri, 1 Dec 2023 12:07:50 -0800 Subject: [PATCH 11/20] Add Christmas Logo and move logos to assets folder (#826) --- apps/antalmanac/src/assets/christmas-logo.png | Bin 0 -> 220491 bytes .../src/assets/christmas-mobile-logo.png | Bin 0 -> 155461 bytes .../Header => assets}/halloween-logo.png | Bin .../halloween-mobile-logo.png | Bin .../src/{components/Header => assets}/logo.svg | 0 .../Header => assets}/mobile-logo.svg | 0 .../Header => assets}/thanksgiving-logo.png | Bin .../thanksgiving-mobile-logo.png | Bin .../src/components/Header/Header.tsx | 4 ++-- apps/antalmanac/vite.config.ts | 1 + 10 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 apps/antalmanac/src/assets/christmas-logo.png create mode 100644 apps/antalmanac/src/assets/christmas-mobile-logo.png rename apps/antalmanac/src/{components/Header => assets}/halloween-logo.png (100%) rename apps/antalmanac/src/{components/Header => assets}/halloween-mobile-logo.png (100%) rename apps/antalmanac/src/{components/Header => assets}/logo.svg (100%) rename apps/antalmanac/src/{components/Header => assets}/mobile-logo.svg (100%) rename apps/antalmanac/src/{components/Header => assets}/thanksgiving-logo.png (100%) rename apps/antalmanac/src/{components/Header => assets}/thanksgiving-mobile-logo.png (100%) diff --git a/apps/antalmanac/src/assets/christmas-logo.png b/apps/antalmanac/src/assets/christmas-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..00f4b9807247d8e36b96e3f411c87045e33b28d6 GIT binary patch literal 220491 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\($P1QO@ca7kweL}2v7F&?5Bn7AdSR}r*b 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
    sLoOX1GCRXDnMS6k7FN!6DAL@vaq=e<_ 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∋ot?--~%TF7%HPZSpW2cOY=r25N(5t9Lm!4$4n{ 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 literal 0 HcmV?d00001 diff --git a/apps/antalmanac/src/assets/christmas-mobile-logo.png b/apps/antalmanac/src/assets/christmas-mobile-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f934d7480782d1037a888a220c28db3d37547d0 GIT binary patch literal 155461 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%0AdZ68%|JPv5l1=kHec(H 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

    ^r^$7qs8dDADzwU-MZyN&nRW5!JJNn1 zRTMFhxq>;2^qp%MJth1s)vu7a^P9gEzOL&?r(to}CEmt&eT@XG;!t-#pgZ}T!|H-2 z*J_HqS7Nbv_*d%DR`wwSTVj&0vJ>#|dxyouEX(4WsQ03ghyMAEQeoExJs}zg#!+u> zjv)+_^!WsCCSf7K8+~`Lezh{YgrC_p4GS;q&>^T=p2y2alczAqB7gj<_aq=zeb48^ z51_3e@DR`RdE=xGX2Nv6G!}1P9&OFNV?a2cZC7u22A&_P(Gu(~e|4R>4(wXQkSKCD^@dSFpZahBAx! zLT$~MB;a-LAcoGS;q}t%&79-&*b1f|^UH^KcTCZQd>J6dE^Q~D$F5O#Wa>`PD)?jn z8N!vLLNJsXz?N9`zw6+R($*^(9?)996fSg$K z)$jt+MwC2+%=zn&>Z18lhH%Cf8>PS>etbCH1ufmj$_9{a|7AuqcpZF_TkY^ZXes^F zFb}_~&l(*bwX6~qm6e5KV9%q-8=i=*koz#md>l}o7AiP&b%#)V{tvmnT%uvt&8$9J zKnObLO@dComa()4s~Sg|>WZRSOrVzK<=uY%KW>g+v|)}EH+i6cWt)t={Yjaj@+@&gNh7AK)~&(aLCHJ)LwZCA^O1ntS^ zlYK_dNfke5Xs|VEo;if(3N)kmpY$u4V!MZ6H?8H2KWaDDyQ!^L`bTMe&as8~qn`o4 zjD$n=Mr{c|Xx)sO4WZ(gf_G6eAe#Ct)GUnG%%8W27+`0bH)#$c$ z1U_oE+ualEAOpX?P>v0Vk5M3=g4Pf7wxX7~lL%5dS&H1MO9cdbxdt$1BUN#p6-xTL z2I8qQIb&6=|D9WB%0yrdBgXT+1s~E_ojf9s`%0cRM%Vd>zAdI}#kX+2;~peHo*o}E zigh5{WhuTDci@;pXR~?3meG{Vi#%s4Nt(2)dgzD?cxnM^M?2=<&o6m`p_2#aZaFiH zon-!oVY4%FQ+;KMb2mJ3H6{C&1!_9BC$wW>cS9dlq;Ir!1=qt^$x*`1`38}1yCAG! znZVNXI8-8G7#JbxI+7K;%rsP;^zHAgj-&8(UtK2qi(3r3WTb7h*$#-?Uc`CR|c<8~92OtdPN<_OIjiAN|ut@ zS+2{pF`A~uMT9T5ObBjgjEJRsx-2xM(f zw)t~{uX^J%$}46`E_7Na#o1AuvY<*m6rq_&>w8k{VbdKf&uDaK=b&B^#`_ z>;>t>28Uru+*PQoI zv2u={1Ma6M7<^?pT0%V00qBtA;O=yOu}WZao>WOOOE8Wjo%Fb`w~c~O@XBoe%G4K| zBWv14wMAmpsNAMG_r(DCJu>1Iaj!wtoK~1x+|@PrDmLA%gc-R;yBBwloi*m@WV!DV zpHrjc?MyFKkXw&#bjuacf?t)GUVcsDEr&*dB)YlSV9FYwa?0b+lGz=~iOeOP9M>h( zR}czB<}}h6zDhLYO2WLFlLaA$Y)>$A(sI1{;c=X^9cgPw!1A@w|J4FG&T`~slM!Er zJsh?*2dgDY-i3yz&PJ<+Z$9tE(Wb|L>2L=r*v+~=EjPT; zaJkXPgQ>{<;hK}@%;`{UwAApE#jYaxA3{CfTk|Y84)xe+!R4c}rMj={YLD!N#Neg* z>awywt@wj?d?{;bwkB{6eHzkUikh9qt+|ya%-xQvGB`>QBB94}ghVj878jLFnEV{- zp7#LvUo;6Dtatd@er;yf9)!TaJNb(nqQxwPMH8zl{HmcIN7@?5>azIr1RMcndJiy+83)myVxpaf+luV#d4gn zM)V6Xg31>~L7sA14;j3(lKd97G9kC=SBGb$BJpKZbBawc6m~TjU4w^15Olo^a&)0o z{=HWoFz|?8=MHT9d$ydmQyR(pvJb*N*_}M}-?y)mh3c6|qjO*`&nu_Y#b<&E4aVEQ z+1{6Z$c>UJsqH_Y__ezaZYt?PWU4n)c6*VUPX^YI4}%SAiw+TwL-=;>ZG^sStrC?R zB;KpvV{Be_zJKAM9Rox_9rbHORVds^5_O6b1@YvmbXv(F{DO@h>a7|8&oZgH!;!kT zt!Kz+KIFj|xKdnA4&*j!L3-e2Ew)|-{ub+~Vn2$dxOyA2T;lrcn?f79420vyvS0Og1V= zQhfQQOO?F)Xs=wCAoz-X^4q0V0*6f7uPMwzT2}?zQ6c=&_K-JP1?*h}In#t7bi$)hh zR#sNB8A82RIybAty5i*DS*4v)=^{nWtvlaYdoVBCm2}z||CGH=y?IM8=1ac5{(37R zHj9bIRpzzAq+I!G^C+I1Ygu>)H+~b*LjRjCwqx9P{x|)BI3(y-`1}yd(YkWzUY-ot z3sjA?F06RqMcZY!Y2wf<5)kTGv)$ko$kaHR?Jc3;Ojq;3iZ>@gz-KyMM+`mz^Udm0 z^<^kkX`E3g&Nam91m7>`(|U)thg@-$z?-{sJ2t@+`{UC3%(V-Eq(Q;qEAOcY3AnGD z9lVU`DM-aSy+mB?a5f~}3{w)=RvB-^wDUHYqC z(_5NNG$mhYnMMtDJ&1%PmL%=2_bZsa(tgTKgf+|(HOrSTh$y1!4dM*TMq3u!mk#f~ zzBDGsHCZS%dDJ_HGBoH}lLDNE)BV=Oto&P4C1I|8157^HLmen-PpFM_W;;Ov@lq$H zy9b=N6!_q4|K(qp4b>0$pP=U3W8-`_vL-f4xkutg}Ngvpgc<=N}f?~>c%JAZLf zQ%Nkz;!d+$jeDx$kG@4I9EwATE1?P@2!;Lw5i8_}PqI4j9C2!d&NjMKo|k93^9da; z8i+W|eV+0X=IiuUku-f|2mOxdxl*c{^C!jnHJyyFcqlVC$1W>sF+WiU=tAokbc(zTOVy{m*_W17BCZ?CIpTi+44 ziZHv}z-Tq{Jr#Qm%`y2Gvv-H-x&kiddbho?MlClx{M@26lj;2S{p(8c>|bQwL)6^`nGMH@3rX& z%2+%5g4zr2`=3XhnEufkWO!t!)!a%Sy+KbISJr>0KcEnSHTKOrZlGR0y6A`71o6~- z3qij>4cIM`H%*B>p>ge3!p)?Y`g}g#VSkGm$^}Y2HmT*(ox~~xPCF-v!2?OWEwXZF z;0r3&XnA2-ZawWKXU{xuOz-VAgDQib6k%^zd{Po%FG%zj@Jx6*6 zhWo(e#A9Z{%eUU%;9sdVW)8nBi+q~sRGBT=I@>7<46f?M7*H1{U$V@<0%U z`KNA3&G-kh4Zo(^9{7N(U^k|627ZV>+v01p%Dbqz?VJ&vxMSjesejmd_w`-3X@lIh zv+xmr(%^Nle&1Xo*^w~AF@-kRfp3(?oJ1Sfpq2qU2BR@&3!{=|-Pdp|Y)xEA$ zvJ`%e6*(HJ<+}t=5Z=V8Ni3i5wEWI8>FMgk>TZw3)2tQyjpq$mNAID+g{p=D94OCWUtfq(T%r5QM%5It}{z=vMH7pDGe>6RJAl2{JpL@-S$jWSs?6T*j z@Xa0#dn9{hX1kIoNre*ON~G*?ZEj_hGD7x>GO|a=e9uR}_x^Rueb#x-KIb`yIe+HW zj<{m-=SVu04H-i(m^!<`)vn;Fs1y95wYagiKumC zVrIK0JL@IteC9r9jYzjw=5=l|~LQYHFn&Q(c8rgMZg1*2QSubjjGT z018>*Ibt#%37$!<_?xOP&MlGRah`rmt9j&vOPeTf)?3rw7atwawk}=c=kAL56S3J* zm!L`(7fn}3V$GE7=J8B#wnO?&ypJD;S$H2{%g&@!$CmaPCZdU}?RUA(ocqbTeELwJ zhnxNNIXkn9QGXr9Ka)$^%RcwD{I;%!rtjet;L^(=j{HsfYcUJX7DDop%4ZxlzTB|8 zJ*S!#!Q1tQZJ|nG{n-a?7Xua>B@Qh;);K4rFIix4ArgL^hKrtK&y%+jjjFhJs9$h9 zH`6)WKmgBs@>yN!<`{tK#K$8RUK3f^E_gq0R5oul8+YaIQI57dE(Ld7jN_E6>zMiU zD)qVk+sYM;q-sU!_h}uP*zfenH2Z3?)WmV4D)Y!CT`xDIm=(Sa)~q4=$t56<+WCs# z;+fua7TA&>?(^ph?WkCf%$EYLJ~s$BidjweQ0S!=8`as9k0+Juo8|#lFp1TH`No8r<2qe)1tPU-qX)o;V(JY>7o0eRZ1np z*Fb@T&gbu4NSanUZu;b-+}U&YM-D3vH1l4r3eM>ifHl)o^e9V@z{ zPcAc;{wq`I{QK?^38AF=-Q9a_uXCm2fZcgM7=PZ(fJJH{K`htsTJ>HB&Bw+Ebu@jl zmz~?Jy}x<-sZR@!@3=7K1ZCZJY4Xc5tr;QnpSk}q)E#}6itzP|@&-*@WF-HRRKI0h z+$8^Je3r0PHn4eJujYr=N3BU)e>4J)KWC<Zsm~Y-n*dosm)?L`L0Ohc|(_i z!GaTXFCB19WMJclJ6Mx8dkJQ-9^RL`t`yNEa4Pg@Tt^wInbbU#;pRvWz zW;ayDcNA3_OQiQlo=+fh)1Vxl?_0*#{0iEQc}NB5QY|F9V2LhYq+18u#7l*r1_wgc zY17TDyEF(7Bpw^FQFZG*^SI;uTG@0cg_yy{iA`cfTa-Jx-uzy$HMm*xN7d-bn-bUG zl@7H||4>csmT!C8>~$7gq3|SQ{!5o|2TK3!)G!J52LH-qu777C42I)r9bd1o7eub2 z$+&Dsh4sq5ePuSaPHQ<*|09Pi1VX&GS(44>7OQTC#BJm%NhA;*hXO}!|M?pj?-unu zi*`G@lTk+Re9Fl5SxC@bZU=`iWOUI6mB%swP}nI3DQE z)BRQPRt^2w@Vv9<7u^T;NxGJQ<+C+J)+SLa*-Gy2Qu1KoQ3S1JVH7$4XgWM0!cM!E zrZ-9LuPD?ARf5oXPt>h$0Hb*@I`Ftijf^7A(zhswmu0ek=P zp%0V~PT(C+*w$=9-w(1t@0MhRJ;@lNMNN4VS{$sg|gI?zQRkh0}f~VQu{6u$?O9fINR>nM>q_e zkJ_4-0=3qqQS|p~;an+X00KU_&@if5!H5Ys~(b4_+(7vwa0c3h7p)?XsWjEGk= zRGxizwq_$Rz*ZI5$|n+^3SY$()-A1CtoKP-k^6yQsUZ*|z(1tal)g5Y_E(b zH%?TjO8oxKxpb^NtV;apV{ISyxAuK9?CwQE@k8a44pr0x^e-93LX+$3D({nKOBV$N zIO^>w>r6q7s`U>VR{VbRAf5wcP4Xl6!@F*_VM2)#S-lol{UF!BM|fLhE~|231)m@3 z6yeCPSv<~m$#KrXIe^q zD85}R-@`Zm%fS~6_qn77_D>ZHZb%mt#pu0Lt96pB`MfJI1e(3uA<#m@faF8+3XbV1 zCKC%e&9=7P_x?L$Rwm`gjS!+ApD>!gLZYDpWxa^p4ACXQhhR5;=rah#7udy{Z7y?nQ|Y{F$G6maAf3>2>OXL1e@6Nt8u50w`(0x0EwG;G`2ze-KCQ^s-i_!!#5^r3-zk} zwO-eh#I1gkr@zz2Os`**9Ekl9jdwkNGsjd3Ryo9R!T5Ef zhGVTCM~oyOr+{c2RC`s50%xBHrlN{s;%;X%HX>Pyx7Wfg{lW&{u1uiCk;`rz4N9^t zMfY=>Icb6(>P*l_Oh;RvbP;d>M;hr}PeeqnlTzSIrDd7%dpnf9<@(Iq3#Jg~_j`IN zh-l$9N{@U8#v|E~Oskh{4A#VV&rfU8vfc+W^s0jX^W`)8#Nj05@}fR)Ba2f6M|W4V z(?vZg0`|Vztwbw#vf5`?NA*Q9nM=1d^Y)et{Qpc-(F_0d^~S-a^bZH?x6fUQS4W!bvt#hFb{_?um$fXAM3UoW&r)S z%L>`1_{kGE=$y8*(TR^smr2xR#|Y2D18n-FESZDyZNbU|CE_ht+d(@ZSY&EY zI86=?lc1RQWSJ@J7}C{hljpCr=NASmLrVGf#h~|-9@2&OF zVlX0im9PWg@QuuTXw}b`aC=EM;i2Yu;vmVX^`$bLW>I`aI#jxIlonr$Ugv2xwa~Ik zL@zU%T3N-^^X9y1Sk7OuOm7pC4-(2Lq(JTpW15#=7S8A|;+_S?6#KUbV|XO*AHz3- zY+MvCrtV0UyM^HEs!QlecL(dK78Pg@B3Jx#I29E{?~RFbv!%=TEIDvU@b*6(pA-lL zfmG-d_u**}z!R4|Twn3Y!#%o`p3cEHo~$U$g<@-zfDbcWmpzU`gYk!Du(f zh1Z%|gC?)a{EL(|xBO)?u+uTUY#)OCD{UWWmfa$pr|!jym9i4tDVKKFTOo`}5@{Lp zTB$gV#lJ?cL+Dn^P+2pgcS`vJ(UC3gf|e%|lF9y#`|mJpXEEC`DDrGH=3Vta3;Iy_brrE=% zZA4iacst%wKG6W;%2breAw-wjl!^3NmuIJE*ZIE4UkvvkU2yrfLsB=hEgG9W1dbS?yh`cZK;3s$=XbGe6lYxmU|hy)k|f=Jeu# zcZ)QytD_&do|Tds`Uan?nIi4*Hqwfd$U=aZuf7mz_9$$8=#r7MA%6d}M)C`+cQksF z?do+b-Pt0RUo0>^n5v&&k51iJ9#jvoSBI1`s!mX>yJqPT*&ms%g$h1(g6KVVBQgqdu_X2f?`zlc5yVMd9E>!P6pFqyk$ zM)yK<5<;>=`R13r+t-oad;VJU)g{}rM#8h3CFzdR)_02Pg9Iyc+N!y%Bf$4$`ZRaJQ5+VYe&dP6Y#pwMN^S_&#Dw-m6N4^u~=UF zkgqjU!G&}W!VReZ9SoGn1}mrH$8?z?&12`mcQ^I zBon$746gely~1!CuAd`5hMKrS)8Yb;3;oKRnV%XSj+j(G4I%{biPL+NJliF8ONPpd z0C|-`2Fr}cP^vBxf_wvBvLDwY=#x{>yMR+=+uo|tm>d)rAwW7Jf9RCbyD_BDqk?JY zjcu0b$He&dyN-9-?lgu8JL?p4A3(XS+_{*AQ<)Ac4-Qni9d40wpA|2(38&r)Ed=Xz zG0mD?Mk~;kAF)C!UAuBLo+`R_l^c<~&Lj28ry%39YY+ySENteomvARR1_k2sep1>? z5HML+lIQBO42OrTA%*V`>EUp#=Tr!x&C?t(P_lcQ2B85J+GXHPYaCL@SPT~^UWhkP zSf`y*W!5>ni`^J-m_Ck*uaapWYs2%NOFvM}#_4=);2(Qm`raq{)sxZ%Yc_U?tM5=j5~d$_!CDUD|rMz)+S##Oz~Q;m9jQ66}_@B_F>k_9vIW?AhB zsrc*Ii_%wx^6f(5)CalxK!pu(VQtB4t)YfiP9k%(g|=m4=CjceRQRhw59{*u!hOO= zz^cuusI?E+DP%0JELug_3+yX?n0iaxq&^cP+?}_G`87WVq7+ zI&W$bfi`z+;F4QA*c)M%y%m{2g)jY@fp_u8a>olF7h(IpGqDH4h?~#T&l5FGB@Q;P_2ofCcywN)5F~b6H8bP@EPD8P;&-4gMBg-Sa zUztn7Bv@e%2(_*DKB-!1fF>s_f4F=^I8S=+E5a*J81I!=-do z*-ub5;{CDCreBTUvwR_?ht(zFrcmKAs91|j3yxW6ykT-oHo{JFJsP9)s-Otl&gL-A;ImVx!lA0b`c^8(#kRP#oI15q_3nsqZoELA+MDP#M zb}AmAonDthc~g8xdbo`2DK^WX(9!82NCfV^iMKfNPl^(_EXU2>F~_FxV+M|!(e4~a zH)HvCo)%Gnuwneq!7zDbJCu!4*jrk?XZyG2l=z1$$m%t(q&ex3+T{S?v3Y@<>vJ0E zG9vMlA4+(pPFaH=f76LIEkaY4i42iM1GF(#LddIC#mXUNwxRXY-aPO5DU1+7rV{Y$ z%x&3Qx9ox&(4D57e$<}LLutIfA41;HJaH=LQdd50Cl=QRivHZQH!5I03J z$w=3+rOlJ+!w4o$5<^f9QcYvO?vSM|1y?iGcRnJuuT4vR(?*7{0{M0P;&fH_J%Fd*Ix@6C5Luqtxgg&Y%{PkRT@Rx$+|nLD z?|I3MJd_Y%IbOS$nRh4Uh}t8`kyw9Q;6hW6jX@uXaKzwkMe?Zi%E!x%ci*dF+Qn8j z5Y!9M|m!+{e-r*@-iv^QyH)^XRq&lXjo^ zLK84%u!geVJCZxMdAE=gPG)&9ZS~*nxDb8)&G`sJg!$)YYMb3{B8<>>q(ho0%*fhP zxt{DX$42wHS-1sI$hRGvS59@%f>*qUv|mmP-qJ=!_4gH^!+O#BgGK{oHfR=lN_xbB z=^PJc2l^czL@)iH1m(cPZBle@1erc@UZ+T3vC}8J$rD2i`||+a72eo^10Rn`1~nD# zqLlq2Tly_udOS_=!`Ak8`{)l3Z3?i6tO_W(cww|Ns=$>0&$d4FUabOa)h;x8In(Q& za~X6OOMqV}Rz@XxYA5|~E{>)aaVbh9`#l8mXp~0_PQ?Di1)iZ~T;&kwZ9B*r_)gS8 zEA08s^#ax*1@|!z&Q2R-V`;}{ka|$|BQUfZbu7LXabzl%fag|Q6EQdQ_%AFLZ%ZwU zX0A5&gHCW^#o^#B*3z?3EDXrk$<9d#kw|QaakV~gm7H`upX;}5Z--JKhm=tMSnz@g zo?~>6Q&78@1rPvCLp8E|12Y<0j7O|3W1&x4gd(TZhmwM72>MK=8wW`-1AjoDm3hAx zt>tqS-~-Mt5tBSfzl_)Bs1IxzE3)i$Y6H`cx<5%6vsk8l(yGcYeoc`c!L8TC-mW+J z+4ea!U5%lf|I?%}o3Z(tO%V^V$J;K@TM&mQr+qHTO~jaYo;9 z#`Kn!(XZm^rUJxb2tuTfpi^6Kd&5Io9A|B#@r6sveZL!@``W+cjtbIuki zkLCpil9J#;=4`9eaQ7NL=0*MkvI(vDk3Z!N#Jq_hou|T;$L;Dl<-nNG8mBDB(h=yI zmKYvxK1VnAG@N)c3|v(_i)|lT#aDK!QFJ13^2R*M`{3g1s9$!j`v|y8LT)mW#k&d8 zLR}Bw@FV5=7!t49#SOYq8A`E)H6#1Y1kh;YU3#f|A5wq@MtwTfdE!llI)xckyFv>; z@fr=W@3wx1q$-&<==cNjSskhDRv2XVzMfF~t?1+5R%-6f6MZDeqGfBEAXK(?OlUS2Gj%`9Lh#m(__L@^%_Q6AzN7&VFRp#XBB&yt# zp-<&kjNkbIdL2SVN%n|4g(O||cl<%V!5hi&ZBYRhx*=g5zoa+(Q(#NqoO@!M1NL91tdM==!-B@T?%<*l^;-hEFM-E#?c6>Atz zgXpD}ecR4C^*7*Q^;P`CMAc7gXG4aiZ-GDyWm@og z_iiA6lGF%m{XAF!4prss+b=>GODOza0LGH$zn;A4ZQ9QB6W^Hzr~&;GIG9}BIqf4` z83v>tG?g>H;&yxpx^!M;l-i2aQx+sU1}=AvOHze+UlsFv5vm%TW=X{ONJAy-ch|@P zMVexs@^Hjsz|*Sw!vE#`5^v0& z!HU*Wz?(}hEt4_PpWnSY&z=2~R-t30n( z>HyYCH4-$yVy+nwc>e&gnH7UG;P?FRw{9R!p?;^@=-OK91kIPQLEG4!Nq#4uy8^qD zwq8;!_x43jq*1CTytz zD^VpNp%nKURW6e5Q!=UymfiIJ>f)FLjt^2BAOJpTM=sObxcARw+vSmeV8kmjq7$G` zY*!70H{~B(k02Al5F&*QG@2xNjK1;R*VWcd7lFY%XJGLzE7mkqjW}AV*y`J`JVI0f zc13_F1HOTL;DTWfp2u&-ioxh3z)$7eYRdl*58qL(%b&vHs||@FF>RO7ft={$zl2Om zWFr|;)FDW@_n1ps^OOZk6ncVD;t6a{p;eBzzYy0`83@9B7|rW zo^xh2ee=db1eMOj#$cNjJWI-}ctvAzBUBQgNRM|dk3yUsmv1$Y6`(`$-6*}tLwRr{ z=ZKo9E91K>vj^hmPpEj@mM6V!HPleQN@vn}uphj77RdI0pqMxexKo6zH>dg6vhA0F zLd;LV>V;TXJ=I44r+;>av>pKxDbI6~w^EnhH^ z5CY4G63{0g#z)W|hck~fW981pt{7nxzmj&Mtq!V+7kkkHQ6gGi-2Yv_t*T)}iz4_bbLqye~N|GCB;+4tD$-Pg|` z7(VkHeKR4Jvet1Q;|#Ij`DE&T>~=@tx5cmi2NCZJZw#Hh4C@a8|AYx}bi!luzZ%^z zNQo{WmVw0UEUwLrEf)a3rT0qn8<9xmCQ_u%}S#0<2Gv2gcyYr=>FCdGW zD3nbhu!W1E)W;W5_x*OE-&vO7J%h=e5zJg|{f*HTy_ftn`q5m1Dp`P9IV-eMkL52t zEqS7P*&ie%GHQX&AP4t^V>_7f$&0Zh*!Eg_+yrBmLRk&zJlE^^S|i*jd)B_Z4O5hU z*m$bd42r~N>bz-Lzxn?Nb{eJ0-s1rLN{6n*>jF1uheV@Cw@Y`(QvtzxnUzfmhbX`O zoQfHu#E-?xXG%&<_+0}}EPUc|C_y5?(pHtvTLoG*rOS41>iSc;M=Vb@|Z3CBfdk)P3`T6u57~*WaBYc|ADsH4D$w zTiR#vY0YGufne}Au%9iN3Q^_r*T`!_Q(bT)C|xmwb&0R#yjbqbSTZ!TbsMKVoE6{d zO1-ERPMz=g3KOr<&YGR@=pYiG-o;Yh;E6@Y9pFyvV1yp_f zcX2Xe*06Hb?lp~Rv~7kE`f#Tx5!cl6Y(J<_B^tG!rjT<8F}<=J-ydX->X$GBgj@lB z*^dBz@@*h=s@#Qs81pVwkuREMlp9-rkZ)JNO(Y3BIAD>1YcLQzRj9cMBdrWk`}!(uyuBjQSd; zP+r*k0+n>E^I_^O8KX3#GAK3Y9wWtRabUn|9<9*Ip}^1iAMLc#{COUQdb=umVs5k` z)xdcZU=AJhN`cnec>8@_1dp_VxRGzlTLBfm+*tgN;P)8b3>b!sM2&23^q8|c^nE;P zq&1QvDHKgKX%4-%R~UeBemmGdTyA|({+RC9K>IMnDg(s=TJy1>w(I1@s{qE8^;cGAf(0w#mqGgCVg0+;8~og zW$I)I-X{|vG-!x@v3#u#UQwuPOlJnaJhRJ^eh`1f3>w}ViQ!W~_@0yEMy$Ln*tTWl zMmjhChcCGoP(o2B_XhV|8Ds8_`>sXjc`{D=+$lXsUOKY1B<*C@?%BR3Tf2Y^NyMyU z5rTQ#2hJWYwtqE?bN0c0JkAM2(6Z;xytQ_h=d6DRRxj21PO(KFC;si%{Q#6onVC}n z7U9%i?sHVk_-pYGS>+Q@WQ~0uM1?>m$kKFJFb1!l0wpppJBskgc&{H%#S?_Qn@R!1 zCG#&A?e4q=iye+mGW=>Yb#LV$g69E+53-3)aFw|0P8FrMP^C^?WTL_A_-nMU@q%&F zerDxEw7gew`^SG6HhMf-bnf{Cty8w6^+>un076 z4}R*z0C)&U*@2?Sq9zb?pE2LW<+w95_IF(sY|B6;lXeyzA$y#h1E)Q6MDDMz?=Xd`u)){+Z2dm4eL!V5Od~kdt)rtvxJ|Xf+ElygKXN>GQX>N zNXeuZJt(vr4y--lS6kRenxx#s{ca*I28t(Tq9g5qSGj!E)TBl7*j0ZNI|eMuk8hY` zH(j9&0q)SRg*d7uBZiVp-jh`nh_lQag5IjpzxTTgDCCG}IXMS)Vcx&jh0<9HBAhUQ zc%#azXb4I=jK$^X z2%Q0B8BJZtzD;z|q+?n`2;xTt__=(pqO@INdzh{o#mioHU@BG$8Pr|##!3!D>Z&H~ z&QN=pG$9dAtg!mgoYZ++Af^eiI^9{`qbK{1ek8SC@_r45Cqcfga84t0;bStI{59`< zk#^bi0Hn8ii??3~WY<{-D;Baa_(9*L)0z{xC}R3OH10C1TqlRRF(`#gRQUZ2mmtH( zz+qzrffVZjCqtttT>al(5THN={+fNZ&k54KQ2_2D`20Q}T^!*B;aZ#{j2?BQ^eA6x z48V{Y6N9jbEifZVCAT@#1r*sjTh7Xmv0oO~W`l8jP4caZt+Nmg%M9><%y=&Zq&6Jb z^i1#l0-AT}&pJ2sHaLTAQo~Lc%pTevoY!28xsF-ITuYczE-S?wg(KBN)Q72_UNi7K_Wa5V06u zS4Hq=0?eTvS19^W1>dCgviqX~l(~4j+CjvS4tW-RvV{th??|l=1Qk|W-w09RhXYs) zb&}(BC|qYeI@ZC#d}b5QAu013mEt_2_lm&bJJ2u~4LNzJ{q+16ug?`3EZc^4D?lgj(NkQ8k9&0(eEH=r&BI^1$OtnG|51~I+m z@)?6aQ||uK_5Q=D9?e6Q00#z{Wx!ec8G)rim9Izo1UWvJCb4x)pCL*?&I>XdVHNT8{8C? zLXnf}vtmf$$Mb}hRpqAYoBH)r=Ewt zju#g2Zw~iU>bZk*w@t^xfB+Z4u^aP@$bnCl(dFmv^G13rY)s)Xih~kQOEH=9KwS!r z+FGOh2disKMn31>fA46E@CahNsYvDBr>Yv(&m20kU-E_!y1Wz1gfgtnPk@!1*BMj= zX_V6G-A|Gq^6tsIt&I?_M-%3>nUe*1Z~69FYfRq~>DMu>&KD_TpyX7Gf?WKmBx9|~ z{9j(mwcSep$iynp&O_N5i<1Ff*rRwM{3Q~%Fe`fb^DC37d}WPk-7Q*V)ks@;pi>Q( zC@XZkBwGEmRvv|uFXQp=CO=o6b83S=h!9qU$8z@?fuWK{fFVu2RAxT#yO93RCYPZT ze*QB>mgTGfLOL`7={+;tY~>GL8b2>ikp0g5%3LzaYA*SmFzu)^nAPR)E{QxF1}Z=Z zoxJ*iKCa2&&qjr^cg#K3cDgvei)5AR-*^#H=j;gwxre-b>TB5=ozxdBud>cowpH{T z*SqIG_$=G8{|nsE|1@5Q5y95K1-XE~+h{cabI&6bw+d#@UIrVt^2;+l1plYy8I~BG z)^=d|!MN6GrL|e@1mP1}1Eu%KZo_-t-79@t3&#|t%41PGbLh#(lGh&jG~oUm%cQ^( zPA-SFQzaijROLz(z)$dmOcbP{r1Kr;qrY)VQTGD=PS(z4cgx={vFC=DPXbL#3$)$X z%m7pC3uG~u&|{iz-n zn-j1)AS0h#x3h?sU|b^Suq;^^FA7dVLbJbrweI zJuBeP92w)fjOsg*5D3I~K`WNfG9-3EIJ$Vd+F_L)`IM>}O&&&V7 zpj#|0ps2+^WCY~XD+o~3cuM=Tw)Z%aoeEfrY|nZHU9Ej5DIk|O8xXeH#g*L>*QUg> z?+7D}dy>5`TM8aF76aAnb97aeoHHE`bO2n5yFH<2_;q~iW-WC)W33-Vltw1RTybGt zD?c6S0wq9MHL`?AZvv$g)za?9TRci?NQf(skG_3EsxkoMJIHf_cn04F)b60HvBXSK zqCy8^O7R_f1R@KE2PXL@W6U8ZA-kIWviJBg^Lm-3H#pexEJRPB*2dLE43Yw#Rfrt@ zJ(3p7a;bE@npPLf*W6UDtDoaVr-`DyL&fx%yT|V63s8@Jr!pI;2n_!3>g9mkQ_jE3 zgmCGgd=^iV&VaD0J*1&s<>^*}=g0p$eVbiO*h$zb1}?m}6j;=`OmC|*_|v!j+UY`` zLAbow5gcvRG$vBBy(<`B8y>^@0s)IXv-qty|5S$%@mMt@38`hM1*o$b=}KW0sivO| z)zk;=t*#IP{;vDANkTB&(DGz9ln7@Z7gpqlETNb!=F;Y#&D4gwBH zbyj2kMaXFfG9<-L1K<$s!^q_1UW1jKD9>o4?R^+cFRpl`A^7Pv3Nru-viK}$V$oD% zy6dkfxQ(FJ1K#`-m6|1U0D_x*&P9RXj@Gbk43=-3j}yk*7<(T8F}hak_L%j`MqQGc zFNPU#?C5(qj|n|5CJ3QVMLZ+2(fqbWPuTNs#Ef!I!%_Pz0g95r06%6Rn;P0IuJoLxV}Nlm&dcz=-GDQxnH zkwSKNdp88e$=q4=Tw5UVrS41{i(jgI%GwBj=7oQorzn|HmBY+{MWqx(I!M|sf8-;e~X95PtGUeErN$qi4S=0U`aR#1N1 z2_DhFa*BEy(Oo$QCN5q$soona=`QB6oKQ+R|Co~t+5)=CmP^l9z<83c5XY?)lUsmh zhtk3Ce!+tixp@@6A(eJX2C^kNreY5%O8*@T)CqK+2I8>XwXVY$ z8KyQbMUF{A=}DVt;M0*`#|5>lzfb(~*`4^xX!L~EEHrvODxcEHi>dP;a`oN^MWxis z5*8H!lgy|INZ?a5z#MM1iP8Id@v>}aQ6ny~sV1tJp30F;O)UND1@zCoxyBmP;;meu z-J^aQE0+Hmfp0OU*ZWU*eO?eo5c4Im){nipW}nvHbCBr|2Cz2d1t&6Rq{DE;WmvwI zvsDW$X5;Q-M-22r#ml&M!;6yfMW9Vg`g(2SmU0>gy8~)@LW@Gik@xPo z5+M1|IDsLT`ZMCSt0<}Cc|OI_(z~vz#hjF%{K~lL4Ds!E_7QpEe!~#XMt|Y`9o`B) zF{pg^5nz1|;K~z6D>rNmav3n}l+^R8(jS~+QJ)!Fxzf|@7+f|xv~tgxhDHT}VthO(t!8cd*E=&I%1DHyy+Ud&hdGT7f-$>`eIb%{*x zZaQrrr1438a-@VM?-E`yCO9Y#?=n#`T7n6BpL(T5Eu_;9^O^q#lJk>q%J5}O$v2wLq zH5I5_xGg)6tQkT0w(mF6md)&BVe_y`V*Y^YW4f!xOIK#Z7c-o%2FI4WZtn?3x~q%z z`7*~Q@eZ_J-<-WNenyG2sW$KsoD%QbVyI!SzW|cH5QVjYw?HnXRT;^_SOSe5fXzRa_)24e^+uB_~!BTMpq zaBAagq%wN{Hh<2wt#Q$u6FmrtTcO%}Vy zdzB*ufY=7gMLWb&=Ka2}M-T!!{S*XNv3%i_5X9*^#b%Q-P;~X@&E?nh@`uXXglQ$+ zIroAhGJeV48?#skHyT1vSlMWuI|w-A(4r)G8t48iJj?yQ+!Q`Kv12g@hXyUz%$s81 z9NF*hnFkP+#TS^eGr!z1{+nQ3t*BVBzni>Gu8}HK0`3Q!R@;uzKW8rgMzH|OMXdax z&cicOvs+kPrm!mzBTM;B-$j=UqmNPvN{9UZbK~-{i70QnR87TW1b>BHK<=Vx(1N5M zoXsHx0?UvUZo2t6__b$6)EuN_)5q^nurE6CZuj+MG;6a^sBgaZX%c{@7hOb^PzI@!_SvCW4$y2wOx)uX_RxBz6yU`CSv0|EMnLWwOJXs)(K_(3|iSmV{v()BtuCrdOA2VLPW#N z12EZbd6|iktfp14W4h)}4SxX^%beAf@5Z3*RomtJqy6@Ch7fnU>l&@MIxF^1vvMR~ zR9q0g_5ydn&mYdtq|M^b^w5HVIz5cJfaL~>231L_9s~N?Y;;2B_%qWU+AJuoLL)%{ zhANxKaP~BOEi?ozXGokOJCm#yJU#t(*vlfiC7TYMP_+)vUz%h5qGh(n`&;`tCc{lz z#;lz&9+dBt@E*GA$30RdArG|Y3(xxqf#?~ys%2f47<_(T(Jxg72`W2wxe%lfHql_q z`wX}OTG_)=k2KXJaAge@Ps1$j_XmG225UIJ@?Zyz8=TGfd71Mvx9|T7?kkD?#9#dyxB5?LB_~sJtpjcKs8^b`gNjAGwu5iDvmXuP7itV zeH<~5%eJ{p1`L!LIoHdA{+e15U}i{(U{5IBcTwOHrJzkr-8E!7 zmEHbQ?#E|V;hnvrTkF?cxlNDa%NCaRrt*+XY&=cwWh*y|MwTPjtg?@l-^Njd(Hvwk zyBwxUq0F+F&*XmH81pq!(XLg#&BUI+BJ?NE9Ak%!*MwAHLYR5?N7!D0qwwgS>LiH! zt5g4ZEcm=Qety(#BJ;OI^Fn#ui7_-J2!%L?R4;BP&D7<#!N&HpP3qkAKT(bUXKUA& z(mj6%8BCf`J8r(7xTjYCycw|U;_Lf=MZ#x?xAF^DZg*6-=m>OKKT5u3u2#Pn)C5RO z(ioI9JTj>u4N~C>DF46D#Q*2YTS47&=Pa^5jXhMwxOA3`n6|PG5<7ML;wqAZT%=7M!y9w{ylvRBUyYy{g;{k22$( zQd)gjIDhJtWmNPCT|mPyQwCcZ9^Lh&;_}1EW_*?RDzxXNzG_#joxEE z5;O-wK!KZ^+k+Fh6iRmHl8qRX>XA|Uh@tD>L=^e2$UTS(?~XnX1%PNlgdu1{9|{mqVIZ|;a-Pat;=_)psHQP3R} z#RX?!k225O_~Q8QMW`lF38DlMKxzx~5rPriKZ##R9-r%aIR0k%f%kB2naQoYoH zM{~A3r(4tWo2`!HhU)??J-B@7C-%_9bJH2e+ z)Ftq8ogmy9)hlVoeEsQ=qpkou19a@GajHRZ1&~348Lg<6=2c+qy4&?P%`R|HUNf56;S`nB0i7MB~ zM2hXL{x@&oThNLLH}bZ~Ih(IuHH631B#{Q0xtZEj{g*J;j<(f|J?D6HcnpVHLr|#7 zD?yuyHBA}j5C?A_fk&k@e$;E;%;;o_(~MM!GjBVg>NYVW;^P7*LW&jU%u&Cky^)Sz zLB}GJ?yQXJ6^uvW>n&iK*&mOc@O{9-DgH%tu1MJ`9L`W%QGJpR&HP$4cTVrmz_!BC zK*Ur>&+0e_(*ZjoLwS&>q>fAb6<-ZESLL(tHWtn|TJ>~7v@w5w8G`?{KG7c~e^g+k zJorZ-XRh%cUBxHd98}uE|3+b%C+j{He3bbnxSC+jiJ(@0m6kgkdH45VcI>?FBq-(?1rR|4RgrNq^8-(Mn&7V{a&8zI2j%xKaV zpSHmI9&jl5w1*Z)N#BnmvjJEaqWLMmnBLlcSDg6iJTgr(RZ6LXEY3uN>-xe#BNJj2 z=18VGCz;aEKPrz7#(%H))bht9aRp?(kpL+B4%f=!ez;wHu>}qb0pDxwzJ={AzL2Jf z2rARke)Xl5M%6CFO2UpkOW_I#Ui^1}AYWSRgWM0N*sS_LGa$Y3GlPRRA>oGr6!7Nq@3`17C9?fd}`OvN7tk+`XtBwKJAgqDwlM$@eSJcwtHj292H;=6I8; zy@8G+Sn~EkT2?uLJQsENmHZODb>1bxoNI=cfv%kwUE*kk67V$yACmaXB>&_%&}AWX zi-qzz#`AW5PSqHAR$<)ko46-<6N{|2KnW%IF;3)#YJJE>ExI#sCukKf+@AJ1y+FrY z_;rXJ-Me z3;oe;D-}oe#zxuL06jUN6Vf%R!I3~S5c`rvt$r7_Lf}F#xk^$^{{5AUv;E&05G#Hj zntu9~KQRXTd;&peTi=O&xNHr>nqjYcwZdF~yQPTA>b5k$lXuD0YRN?7Oz zmz;l2E6`~hNVgd+l)bYkbH>I$k-qj1=Mdu!EMB{+dR+Db;NAYGza#I5Y~hj;jO*J+ zQ3{or?} zy4|^LZ=pVsvuLiZV%VkmbDx3of6Lzsz#y3wA`Wt2dpv60*kzDo1)MI>&I3Nlw?Ott zw7|FQ2Pi(}d#TGsPgVFlVR|Q@@+e?O4U)I6t4GDnSN=!w#KSA$cj*o)A~8u5=yN>RPL$Ar1HN{?Tj;(5Isv{CFs18< zSvJwX_@KsA2@OIL0t|G3qFv|@b4RZDzE-#v2tP!-wst8$dgmG!)m!Rt7{RNv^Ha_w(`cvXKTtkBX{$U>K)!;=0m_d{dG7!_(VlWjO~aF^I@{ zBkDfiCSnp+uOeFQcBx_A06IsZCtHQv7qwgPRUyL=cxHaF>GZ=Tr{<<8X{Q?MLefiX z#OUG7pv%vo`8r-WkdHc*BtmY zZcZ)c0pWiqYc%$Koq}3yxX_x)iVCr6n2VKSx6SB}MbBeDkrTqOUm71;-I3L`q0%2$ zX24>i14V>zLul|k{mC(B%;f&11&e)=Fnz5CVM)Rsy6U-7qne&pPtUc=KPtJs$`^xv z|B;)mvz(=-K^lw?_WN3=aepKyQI>eN`AwJY-(XIv6H0T8|3ix`DpooA2zAOFhkyQ27|zifXV zp@JAG+!fFY!;jA-z&Tl<`quwZ_1*DQzhB^QB#KDM45g(qT1Iw+Qdah+fpE#*T*-)x z7L|1+J0mk!Mo}tz%g!EI+52~%+vodx{eJf!PoK~GInO%hJZC-U5W?#hUb%GFEiX6T zqsQN~JfYEDcVf$^0(2+XgHSpLzBnYiOQZX5@(je75}Y!^%LI!Vgwk0sU0~I!1|?{a3`V5X#7i4iL+P__4C0c_Ix7{6ORHmMc!*w zJrNFYp~HZh8G~JfgC#UC&9v3kDNPAN<)Mzpx4XY8q@4~fi4%@Sblh%|Aqug%NhzQ^{fkMYq!WryZJ3BcQs!GV= zSv&lMMjULKv*yuh(1Uk6RiC+ivyz2r%8TFPoj5;!@}$O%G#kHsFN5z8XqJChggKXE zY${R(G%vlLVe5#Faqm0?#-dKMo+^$V;SVPybR>9>5l0&4kqX+Hu`7Kxp%!>PT~joKT7B|<_=-S1nX=zj(8ig-+})vP3!)% zXk!mf5F09<1HW37Wu9ES%PTx{{FK${c)ErqD<`{4(ZcophW$rXj=|!9trHHHk8Jsb z5T~X&;^kl#nET|p_-@#!iaglt#lWxj(M#vWd{wDPg{yOI46jXgx>VnS%P#X3eODi6 zw>+20h@O#-aP5>8J8)ExUQYF19QA5IMo(9yj%>5sQ*FFmy!1w{%BC__1t?EnDgnf$ zi0G4_)aMJ}ko3;$j6=)~O^zq?nnZWHP1&SMd`41<>#&b%kvl-dkGvk)?al^4hFA_G z+>~3n%nUv(Ed{TK$-mw|Hd~~kd~6UmC6@|yey1Kpl=SFPm+C$&ls*e28=1Z2Q9Tnk zs!leh7Ja>*!)b-H!y&uDiG7B%VXLqE4{Q}SV8?H-6tkoYOyq~BHElO8SK>FyH;~!g zZG`}ku>J{U;As^<(JrQc zQj^{(9gp&iPxRva0|o(W8)ebi`jjyT0bIq&7`RdEkgTi&>2LAgY%Pe;Ba5eDd;rk6(epmHi8 z)A}5IzcuR6N7ddsaaSN5Bqao_;>ypwhkT;^sgiq~Pza^FRHyMCrB+gzZYA zuduFPhZB}55Z4ajc&!7n1mQ%YKZseWU#oj`0=f1%l;vdik9kcgm!w9QZ|1#MM*_)e zT3N#{_^V0=2U|#c;m=V(f)IlUv%$h0gI#UY$6fgRQyRYpI-zp_y{vWM48^-1oD}ng z!?*Tis-?HRP1bG^uF$O8@~>2CSr zYc?sr&ln63Pv_$uOiN)|z#pr@E-R$%W@s{!^}E}OeUr%e3K)?)7* zd|v&lX69&8pp|*C-M|&HvD`gC|FH9Ejw#6Egsg~Hl})@Y-yg^n_*nV2vP|bAA!364-^VL>0uk;&SzpW zolw4^|KRKe zIJ{joKkAhD!}MQf7;L(9Rjzz%(RI`Tt~b-dm$OX}y#)6q+Wt9%S%-t1akeqPyPPPk z1?(kfTbHKGJ5`Zgf#>t_j=LltB7F#ChmQ^30ahD1JZoqALnxou9)z1%mCt2DC~#Hw z-T)VHyBni^g+&Tn!cWMJM!97Zc&i`SIQTUk5W4*FO^J;}(f);$T3bXB(ax`?a^Ww5 z4JImnH-h7o<+Q=sn>DhIx$paTuei=CU9=geP)F$5jo+jTSyGV z2yBP=sE_+PXKYfBebMFjW_&kt`JV{WBN`k;pH61=-zB(?d*;)jnrFoh{sDNw^i~W_ zrSzyqI_pR0|HT5(R9pzv{@A%{$)EqBQ;j+E{(o@_Rb~64Q(GG=&}7cqgFGcs z1AKxIg@jT(+q8U@{xPby;(c9Z(PHyIWQ6tU$9&87=lhF#{@mx0{4M0?6IvvS<&cvO zr_lp2M>>Ny(%*fbeUn%ty_g#i2j54~>SAcR_?_2wYt4%6FeRK6B`MA|??{WUBWXqX zWO%LO{psEQat(Fp3^JL?*uWN%e-~-4UnWb7+~{9kUfF=bFy6-`vFH*!zQ!zG(&rv+< zduok^K|xXeH<2VN7L#Ox#4hpc&VB-G-ze@se4ES$*+S+G9&$9ULeRZ?XodN$6)Gf5emFVGq z|0ztd)yv06@B(zJI9Qu2Hl6ks4igVV(5h$_&m56swK%7le--)y9v+% zlS&|+Uk?bma1I2cE$<&+-z{o053X8z`tGe|0(sOs5zooa`^Z{>+-R}Wc5Q?1#5mKJ zZPVk>8y`=)%`r~&a0bk)ApQui7!lAuyuF|X7R(baaqW^WaOYU<;jNy)~YLpYf|XO#Cl94 zr;NiGsi4WJfL5wo#IhWsBHh+!UVUV}y8l$8D7wrIb*zQ6$#Cg1KkEPH?VY;x-RcX6 zChElWZ_W*KdQD)!=xiKVYQF+X^P8fVpL5q9{PJvc7G*A^OzquV`E^7#q<6mk`>j_+ z#UEPYd`&~cc9E7X=Glt)78Zxb$9U@E=?Sbw2Ve?d_5fFJ9Y(Hb2pJEp_L9^)QE7Gv23MtOj>l^FkJaM4Tn4@1AL|b z$pwS62J)wscUkFvnDLku7uG^-f!Yckm&s*>i;+%-;oE=rq;`!N=&1NOhBWV-i^I-> z31#u~Ip)wk9k<9o>uKGK=&%%uK@3+^o8iOMFC?1sq9T}$qRg^RCEvp;7X!gOI|XOl znoiTfDF;mEdw}8a!*5m;pAR^7+!fo4?zv&JA*#`MG_)HUy1kes9ZCq5kKdwE-3>c_ z((u*12zTKVHug(DJk)8}bp!77end#}N4Z-x3Wr+TBWDu*FBKl|9Laz~{ z0wa)Klb8rxK=(=q6%%)HOqwK<>3}u|b0vwMneksMu`RI7ypNu`p=iQz zJbVNmvOul+cBd4Hoa^k+e2*+q@T8&(>`(1rWyUW9tIa6nVkpnJ!0rrc`IQ(LHA z9!Q~0#EI3?AZBIoL+7yxs;?&+@h(F{f`%_oc}(%uOs?}bO*!euVJ)< zU4lQ{-rk5uNYwdcCl!>yoTDD(bl7HjCHoGEecTpi0u!DABi z{4w6K-6VP=>__)gCcF9ELw63nAcGUVU$D+y9JmBS^=P6hkD=natrWMnEu_-|d?D!8 zZ^W>9LX#&1rU%cgLm>vFGXl&gM&=P|-S6%Qa|i6Ea{uu~P_ZDk{Q8);pSyWPzXUnj z(#E)un5pvu$mmOnYA#~!O6I1RV(!am3CAnlQpW}}2z-mpA54=T*!~qB@0?W@c#?N) zyBpb^Ff4R}*y3GV>}%zR%rp1gk!{fe!$*d45Bf-wX^Js6zYi|Ij9CiSJg9XmbFOZ+ zkkQP#c#U3A~p56ckV+2PRcH|4CT5o->-(jb5B7f;c zEo|`-fvVN%_LNiIpVJp-*GIHl^UYz#5N4`vUSy%K?>wqsz+WDUJ5&ek7Ni z!rZ~T^|Ou7a^tRN>Wc@sV&Y7`f)KpW1ADC@IJg`t(bSh*aqr>32>#Nxz}RwL#-1B1 zF|8jZFI=F?G5QkJ`p1xynRP&1@Qs|vcaPr8e~aHI`orzNl{+=1F=5gvU0o9z`hiyh zSa>h(#?SKa!kK0gHv$9{l~o)KRl^qcvly3`(ze?8rh$oG;7BCUgA)Wp(v@(04TbG#>fgj4yqi6C3H#dPv_GwQlE_n zK?jQj`6Es_H8PUAv#jSxW&Xw&WcO*zzh2MqDiGK>J`OxD5EeO2k0uzh! zf-uV}bkeH(EByPCaf;*~dbWEJh22LiGX{{42h*B$s7Dq8OaeJE_S@}eh;L1>EZ1Q) zcyD^u69)^-x$@lK29od~?`GNS;n~mAcA5M>{UtM#iiq93)2%=BN*#^Q>5hX?q;cN_ zRon+UP<}A$PG!#7QDsnI3Am#2eO$SFi;i}$^#?FLxnNx$wS-0;j~Vgw4gC%+lHD1@ zYqAc{fV)(87w&%B_wSXl&P*~%dByz??}tAu^rLN>8O;bo%dYrjqkLBiO!R2G*3k}Q zIxlTj`uN%?@n_(2f9R_gpfE8r)Hi(I_8Es>{ld}(*`gMi8qxZ5Ti1fnJ-Pb$x=oel zq&T_&bFPxEy@SBXS4@T*z`R%t!4>zXN;dbx^k--hI1qo}b-8jX`uu@(zA%1itWjmfDL=N} z-#Uup&BJ?ukXq&*Gn{j$e=q%#nOipBWrlF>-h|Me?mRbio92^lavgsOO-j5OcrNCa(m_(AK5BZ!4sS6sjPC%OoE^Mw%m#cG6f#*L`3{ISA22?V|*7Iu=y z$fA!|I7kxrj~-DVAKo@(Ev>s^^^jbY9yY)aul$;?Eg`N!xX--C>(K=kU}!s`z0u1C zD|WSS38<0UoH09s^^mqi2{WC>p>~;xb8vy}!=<%=39QSWRXwXdNPT z_{J;jCn-1#?FvJq-ku&FTCAc-Zp9Wb9JF(3G9uM;pL`=or6}^S&|r$BjABY3zmK(# z;?Y@nOrZb7TT`Y;j!`x@72--r3>j;D1kRdstq5$xID9e}s$8(tlIENjz%XAh0{h=~ zFn{{g3Nk)ojken0u)4JACRqJO=x`hzH`u=(*SV- zTl`va&E_U^YOl>=DFp@z-uR4*ChAK-ej|N;>4$l%x*zH*PAWM*cMBvQjJhjwG<6Aa zc}S?{RZqIgN%4}{TwQ@E>Gdtvqtxhpad{Tq&|sd))|HHs6b^u9#SMgWo_CIVY{_#H za8*WEtp!)h$gsGn1j6(sW5W(f;PZ5r5^kv9fN}lb;{3X1w7p5_3<(0engm$#hmZeY1fW~ z5G=JDIo8<}(8tIV2_J(5fSHu;!p*u^SAv5dIF3K~;KGAI`-OkJ|B?|M&F&9-{moyk zSJ^&AuYFA80fhNopO+$%u zUySQMf#-RB39!7D(pl`EQ4^c3R zduECFOt^rHfr{aSW<@cYA=cpX%E1dYtVjss!vAD4S$*2wiQ{u$;bH(8#-`@p=o~}y zr;qUg5)C1Wpw9l{m;*cv0^tCqCm1MkpvlW<=iBBgG61E!y^SDD+c>8< zHIUY{Bo-1>`bB6FVI~{c`mniJu#%!nN^pYHX1l3Mj1n7=oTBauyLhvkqg$SY9qzx; zX(&P$$N>Qx4B3{!lr-%gBVX0c)CX#m%7ti}E~7CCE%P_kUI8@Kou!DvvBi2#8-mMy z3v}*ENQ!|=30XR)exD@4h5uYF3hw`&C+M;_N!(7{1R~F2x7^yD$!xOkTd7YV0s}wZ zN?vX-kHnGWF;$2&g2NE6Nb3jmeUI|S{QF5={4rKjeFkCB3wU7!&II)3zaQt{%fesF zG)}<32$!-$K|-6`CHwWiX$;VTzda;K{VU8AQ%phx>*9RPKfYV**ni!b4DPzU*NmXKpJdEIa{QnMbQ^$QnaE`! z!2E}hu_g88{|9)Omz(rP4U?WGkwx|22grH>KY|2Tp6qnN2XqZuu5?k8W1A*S4El=X zF2rTw|MsNuNd|387akqt_`X;;b?@OT`^9VfVO{7ay%Q@}_5I>)XcBBm;8R4j|2qi0 z(Z(wd%j|t{UqGHqv|SbIG3n_3g`c#5pZkGV zD{Ot}IJf-TO|&dR5rXeM{Codq&j+^uR=)Vonyd$Y~);QIu4Ka zPBra%J+AXT8#FB<0j(>_m7MzD-&&coZFOf5B6NRVT^a2Y1kpv=@Kjd|ZBrc6tu?hi z`qH!iT+5t8$Hy+V7hFLrmVUZ@M+Xv+-Ag~NdBG;y?ghOuY*b`gx5&hutDDa_Zm-bn zZIyR+_*Jvu0B_TQVyu}MW*zutN#SA^D9om!JT~L{%O~BVe{`<`6XgBeW)R{0B6{^j znQyZrzk!EZ#TxX(YNv$w*}-&~j{f0^9<$BaetGRgv@XTi+xfV6dK}?A@MEt=PD+%U zDRi+t%y)S`O5V0J>VYt=Ge0jTdyW@9Z!)Pze0d3^G-2lJAaV23gMxf?*`8rjYsw$~ zKWD2`l0;BYOVGy|-L&1mwnlJdr11Lui93=-=*&%g5&pZBs79ra^BaWO{9gUu4_x>` z_>9r-qCbirJ(be9VUMoRpp}2Tx-rt`Se`NIO*1xw%+e2v)Sc3TRdKq>4Cm`9hx6J) zV9z$Ek25=lu@eKu>R0}hA@tV?%( z{xa7bZ0lAt&T~=!>Jz@v&CgElceNTXqv4&zYWAhpeTEj~7DHRLGWEsBxGlwXCo1H5 zS__Yh@(fc{`S}1q#7q>{4zng|$S&_cAii~!S%{T(>iUmZa;y0;Y=WdOfn$CuTCfEC+ zm(=Nqc5&0wjocJg`KpdL%82TDzQ|>n=6pc7TtS06ZuV$IWM6wutKS^?TjslS^(q98 z%Y!T2w^^$D{?$*Ji#@PL{L)2|y(Q;3VmneDPQ7cgvB3)v*P|~$ejXxd%GAIJqjS3V zepKSrnFVvMK6IctxAI~X&iy|f!xQy!x>>n*PWOxmnRu`l_TD-Hy@LM<5hDh{Rx4-G zyeLkxrpBH@R-Fo{c?N3>vnjaOloXl5!uQCUav0u%-iHu5C$2&R!@$?VUhcB!%Vy8| zHMBs`?a(&PJ7(}z9D~iw z#6UeU%OWA>;v9BG!I-JrVt=<_1b^N^1F2|dIBw~ZdhXi-+*zdbHUH}rP~7NxV@t~> za%uV8(>JtWZMJ>F33im|;ew2ftR+#GY&3$BXl)&0(^w};ONAes5?$R)^FF(x&wnYP zt1b|>6Sy0r48i##G1PV2ay}I91nEk%;`)jOTj+(~hi)#{*NH)^gn+Ym0*%(K^Y`cW z3Uz^e`C58<^p8T-Y-X7od}$HkM%oVax`KFTdI>RF6w*XqvUH$Q^N9zPxem z@l67DH&Y5FF{)Sy<<>ci6^R9xKrvWF;ckfqcm_?kTGy62iKVH?#=#UYmLNHlQ&j{_ zM-pAd&WU^5`^GQi9fV${&-E&txohdM3Z~7`$#x!MtLQnzs@8E#R93w@=Fr4{LM#7M ze_XWv%#+@@L7UFnRHj_R-8e%(K|E@I=T+Y&NQZv`t>}_Dqg+jP?Ytl45QuR5W5I7`hv9PzVoEtoMyc|Bf3D2PYMsAHl!wIw@)Xsgn+3lK?1?I~LKB35L zeq-m`0l-x31+pU$B#5o=965aT7zWPLIzK{ZAu+qsZE_^NOqb-^6FxT zoZ>{)zopqD#V$Xa_}N)Br{WiP+=A}zJ7itwjau5A`+F#`{6X2x-H9ASuVy<&krBXs zI@Y5P{-S_mcysVg#HO&6tzuIwjai2+(~*>Ey0dg@wM=f|P7R@G>b>)kXS}r z!#&eova%1Fjk1WzxxImWa!zDZ4h+HvvoEmFoD*NNDXf_(^cr8^hvht$^W=IHT@af- zx`+}bW7zHyAv*q&4}YMEZK258h$6L~oSIAzTpQWM1x^>%CsYI*4Vqv46h)-y;nI+~ zQzhra>hn(=MzRx-j#E#(3q3@}VT5Xg;Xgmnc5=$8T4#TKD!?u6apD>cqooE-CqLI^ z4lQ8xnNzEw-)&;Peb&Nlk0RDjTsgXo0Ab@0K?emM+e*%989LIrtlmt2`zQJ(l{8md zcH(mm;~S8Ech2K)G>$oa)_?4D($?R2hGr|Vi=aAR>ky@socDnz*GurcGN{aV6ec&Cnacen^KuI^J zjv;1JZ8PK%pnN78s7jX`t$ntmy*4>#2Qp z&hO8%fve2+ZOa)I;o!?2_v+zmlL#}0)L4CQXyQ$Q0OB(CQpL>hFg{@S$C(oi-&@Cm zZ4A49^@@fytP6Yo5+x9yV=S_}Mx`PgD!WB;KI2V^kf$wG0g1!N*V=II@toB`|DBM| z@9j7W44=T-@epCx7cNXXmcJl6jc%8xaWlzS73Sv zSVcu>hhsr6*ZMoGLV5z;3nq>$cUL9g;all#COiB@XaO3J0HR#yRc3z+A@Gn5^vj>^ zwa$1@=j%p}?`zQ=xqtFQ_{0&kFD%KrJ+gKY5bX^bIv9<`H8t~n+DsF+5r+hZfscQa z<(LmaGx%+tsw-^4SA1qf9#(r?rbnGEYUTdWqn;IdwIsjBKLkpe%gJzU zRnp=N9HqyC9Z#xmq*{jcnMumS$Arst)95A{Py?fC_>ZHiCHX=1`ogSF05KGW9xJ;% z*K^VD?ZJ-NLW20wc8g54U6#h?B0{LEn`JQk!Cb-MIdFdL^`S(*x2wk5fGwSwcA1IO zm$nzmF7L+kdP1TM-QWUyQAT8}f#f$cR;eJ6!$F4Kl=f&5YozsKLVq(R$T=T8bGy=2d|L*Hw6^VytWEMfhZk$U zL_U-*Iv6awgR&pMU{(w($8A0#nud&Z$^{jo#V%=v_Jha4DT-sw;piZC?}f}%X5JyC zqTc_!WWV2h-3kx`OD_BhQRYfeakg|SY7MI8FN2^T<}Qq?Rjd~4dTRZxR6CqI2HER@ zk{aMf=p>@%oPi9CBYZl^PsU6>1@@4q-{QnweTn7Fv)DTqNGaShS9C^o?E7@w z5ddc}g6KFwk{q4J_XgFYFvoMWH8zDqs|$@pibnOk)%Wb8z924hrxr~QU^`b;sunVOs@)gc<_u5qi$SP zoj*>7tS$6$%_{{%A2N*PncB3;n~{V|R8Szn@ekmYc%xiu+)4^9@=Rg*=1hVD4i0bv zm~_j3(~*4lLir+#0`tlF9^>h`{<5(0mLK35r`0Wu#vLk@ShR$9ygpTA7P9Jx8oZZf zV5Rsg#X)|JNrosUx}6Bl6S9yr!_Ut8j^L-ldQCpp z-8oh@N80j-!u<27AqSsR!=6U0_dixRutMggk}XM9Zgvix8Ntmb`Gs;VGKyh_a93z) z8lE#^7C9^6(c>jhWW#a7>Bj4;N8E^}BEN-_99bLGJ83)HMU-`ocHdvQ5c@;UGr*{w zjv2CGJ%6e2n2L)mr?iZVv*=Q=S5y|=VZ^k$)Nf@XT@jN2k?MUqF``W1fz~=(dfoZq zPeJ56F|yj#^PO_5144bwHZz#Y2igU$Lk29~CCSgH4R;Tbvk>n!IvY&cL{Itd!>ngT zvle7kCnbTiU~`Tkol_48K#Cal3tD}v)fXf z*_N^IwEPO`IDmPJb4C^Txcy%-YUCCD-Atej#KIb55)L0mOjFtytR`AY$3%4ANaDVY zai$s)L$kOI+2tap2w&}L2bZ)gsX03Pc=~p{W)wFL=jk;rLptXpXO|+T-;F@+C-L4I zGSBdKQnu6eX~V-$(7|H5pbEC1p8xWILvAqXEaX92Odhf+cs~BKO)dw=kbU{H9!r4Q zuKO9)af1Cp1U~7q$SaT)!_6WS6NR|7Wj4j`9kc~;$?1tA_EP97!uJ64oOjyBu(#SMs^j>k@J z_kUO?;esNf40YTCE=G}yNlYAJ+&47_W3;_PZhsdVxnv$f&5MZU4IJ&I6BsP`Uf!4YBGYYZ_>1sg}BY}0$G^uXYut+Ujl*WyK5cYn= zCvS3cBYnhY!CZ0n1?{H#Atq6k)6>yW^$>+MY?Xf?H+J>UF4w}Tk6FvQX@P5q#-_Gd z1CfV-l-twSDg8*(6uJ56JyX+Y$z7J}RFv_>&X?>GsecNG$&%aeonEj75qXWRjl8fX zaDcI*1?WHD!S!78xLlY0;p=2a0I1u?5UaUKr;mMgg?lwP^aSt)>)R5`Jbvd9yoRD6 zFXJT!)MNx_i_Tb9qwZ_QTb`XM(zsx(D>bR3PIuI|C@;?Cg|8%=!V#m7Db@(4K6Ad| zw8c~&3t{KaYv?S!W;V}W-rB{DAOR`0pIJKoLv8mR*PEKW-jIx~!Q&OX)v-o#qdhl9 z#?RSs?yGeTR3f2XWL-Mcemt^&6EQhLCQ$?2Ec(bjfxW}@g?j)Ga!!F zh5F56UcZ#!FGUUpjUxW}M{EO{^R?7CWpiC^F8P;k`2Zp z*FVLd`(c7a^onJ4tJHBp6Z4uI+}`e!LAYr5F-&Ia@REe;My~&t2Dd9;7j_uFKeP@# zmg->gc=d5N$VX_!tZl?!2!E`p)(N3oFS9fZttH)G0)9)|G0m53_aHAI*2oMpo!2v~ z6g>{h`0RWe4FwyXE0M_zsZJ83=QrkEU*2-(+A)N8J)S*Z3tRXmIbLXUWmfP0 zkbjvNB&sd=c}W_0fse2ik>}>yJA?1qd)u#E!|L>U6OpR&*NGvJ2{9XKfzprV2{V04 zTYBDujYmKq1dwM#QeBGk(JsR?IKmR#jq14p~<_II(!gd zX{btex{2rEg@%cn8yB6W!3 zu`xyyrj2OX%y2YC6FdN_Q`>cKnT^wBX{8*>cF>9#=ua-hIxf!A396P@9M#ZIzg}(l z+%y%Es6?mi!i_1@QH}QyXSZwc(;wS=3n#V^qJxk^400zqh*{v(f?~6r#RtwTiN}O` z)fa5FEKYN_04-W?Z)+sm+{|DBwd^U?8rAnSU0PXIz1FsHwTTwZ=o!qK0X3G`rjYtT=hd-{et4D z2~?KPE5;M$Ux(ALb9c<{jmWDMq)MsPBK}(UrfJM9`N))Q6du)UT|IC9n97ulo_)pD z#*7Y0RCwjO+ddyA+}WUweFx9d6t={|fQr3=inYbMw8AB7QlVD>& z(+Nq76Ii@vH1sEbdjT|6B9i+v(57QMCp2zkrQdESqRgtFa@}N2sBEU#ofP1gvd`(( z!BnLQ5Y<{gm!Ex4@m};`VW2XvUt#tw#o0Sp5oprzdYmX6UVRUDJnC-hwAE8l#_H8uEoQh1raQfoG1O4B=E$WIZ?mNWeykW{H%o@u;(h+0@A^NOPfz!jyETQ<0JCk~xEiw|6+g!wNQp zhIKT>X~81pD;AneO$CKjga?{8H~2t`ovfiNNeg>B;5sh%)v*6T@tJe2pMpB*bMzCb zN2gzF^VHu?LhqZT%O>Gm>0Uq7DjlD9EMY|)ye|6db{s_uY7UUW@nZL+rE0%I%Q*C~Q3woVQ_|2PIoDT~d zpGeN0c;RY+FyzHB%GOHqhhtKwG;V~Y-(KJ1%&x^*n;4s&i%j8}=eA>yb&QiGEC(7W zpUWhlm=)u!6nX@OY0~jK<_>%P9vISe0{L_}k*-~_mm@R=Ir8R1GKR%t!^ zb!)41;@Byph@JfJM-222Wq41I_j`xYpH6BywYftBC%vH*b;~$VK$zNvVyf;KHC1E4 zS4CtO!Fz^UaUkWz%k~|8){tPYdE3TPiS}8TyY(L>sAZgw2%usC0>a$7LzMNZ8TL=# zzVoS-E@w@l4 z^!X6ry9`boQOSsqu{f0!J^LZbHHRV&f2$h?QPo6u>eg*lMM9xowk_+EJL)RauV^>B zdG=-oddKem>r~oY*M5Z!TT2hL&Zzb+;C2w$og+;I`y6C})+mrspxcDaf%9cZKOyY$ z<)Vr`$Cc8;y(>39sq%716eu6!mRQg`nJCN>w<#d6VV1;Pj_}voPUwu5@WZ%0k+!YJ0E*p7EAwXp>Qq5Dw z?iTMfBx+=?J@4hT{ao$l;E{(T1x-iM0_rj*MU{IXxCyQ0AgqPhj2q*A=pl91(>?5# zY(aTu?PFj)KHoy4nqRE?YEBx+b{x(nTkM_w?^HF9<|eMwpduW}sm)j@&c8MK@k5Agvt#}&WF0Q_h z^Udi$@NsAV{DfHabC~AbfTrSv*Q0CO!K#&-ha(+Y8zCl8NH`qp5+Mc}y^_^C_imO< zTaD*tUe*ws&|`_=G0yQ@<`M?s56u74)YV3>FL{4cGa+kL|mj<`Gd` z94hmNznq>^Y#fy4fgfh`(W}K&qa+Me0Rbs2J!@A#jMOXdJ0|p7(dt%K8K{&A31Fd$ z^u=k$tIgJNRwyI3zRK^E$U{Xq|9o{T(~7U;FI4HV$LF1XvL^2HZFcH#*@DubSSke) zW;mT0%KZ`15$Y}sO}pgr|aC5AR?@JbRvVidW+ldy!6cBJ_zIgPc16B z7~KE+#J2MZDW7kB_4}bJOP{-v&GEpQ{3+^oAW!i>vWK4_)J6}UA`O(l)RC#2n03ct zJI!CqB{)9#L(od2QbU|}njx>hKU(9h#LoV@uc3#KK20;=~)hEWhhgiiP z*WG=iNqMha;b~W=0drkllz3=>B-vch#e=&dl1f)IRXHsGo~D!j7#=aLd${)E@QfQ4 zemP|3>D=KK--f;qD@}SK;}#mtk^@NvunX5N{sSICm7r(u%zUb|C9H!XOTy#GF4ub; zxhGYl1xydRc4{y?;s-T4riC&~TbJ61>C)bua>}CCk)}Mpdcsiz9|-6h5A*|gcN8b4 zKwZ96ma&c_qt$G?ztA7g{)*Cm?<#XSFhj!Vl@>2#Sf8ju_a9_6DkUQUF$7AdUD@V?F0re^JyEFV*+Bs== zE-n*VM1rQdTjnLq7^reXhl*)U8&pie;@POJDN$WDivk9)?~uu4@v|M{;c0y(cbo5E zWj-L4@0jkt)BKtSFH}3YFnW^stB-b5>{3L0u@|q9BYVOPZyVN|UWOIo`_e8>i`t;a z!d?p}CZqn4G9{z5>=Vz`duPW#Oo6|d{hS#>xcX!$j70s_ztgNN`snC&Z*A@J!BxM=@g}SX-xaQ&M-+Jp+ z`(EvwnU|ds6{W3g)a39hqxU+1egFASux~usYx%1+O5{Ok-Qll^H8TYv)K}xHSLnQJ ztIsaLf)^{IS4$DsL#4YT%hW>Y1A6fnmbcnCP7zf>zwDs|ZVoIk= zg)^+jg{h>)Yc80G;f}U?vwv1n8e zF7p})kKou*pj;?StR)j05WCR5y5A#KykBJ5YSPDsJ-;+`mYUcv1xar~dCHaBjC4E# zw=~R6F*P#b)zz`C<}a?apmMm&6sVqrXQAVXzutrux@fU=N;~z6oHMmHVfd{QFI<?s8G9qBewgfa}+&PGCB=0y2e~ z3f&EmRrYk!2KBEvIUUQ}Gba0YP5uh#*CW9YCi&4IIhjnsT&3gXg2n`pN^@N1zPRVERgj{9RYBVs?FWb z$H(@5O%88NX0Vd{yi~uOaEO>8pR*-nFK6HK_~oZyxvh(l7tU_}RQpNQUE{3Tdn&=m z`11>{6(_SGE`V@8Z#7HHr{}c|57Zc)FjWr`sj69uKky5=SnLafHbyN!ppnocqXogo zZ;6)Amj@mveo{Vd_)T_oV(lBlfQRAw!K3=*1<@H027)MDvzvr2fb#tiZ3U0jj>i+&AL+g zhZqlby>g&3A|?*eV#B|Mg3Gfkef7VZL_|%Rl-jmGGGDDLi2b6mq2A92a%n_@ZtHQ8 z_sClSkLgl{xK1@`nslV(^~<{|j!e~_1v5wGSpx*=?4cUGpLoAv9`6pq4Y#mO_k zO)2kP3ln&ZKY->jQ*zj`em7r(9Y=X3fl;$Mr9q1ZSY54Lt2W})7{y$O+)U5$U~MUQ zcB#}fU%0o>Kt45i+7K!N)riC%5IUhMW?;xv1o0?uAA>R6Z+DrT1@p5Ga_p|HKv`vJ zxO7bs^`d6ETf^H2*0)*7g6&w!w-Oj-2H*;_*=9^dh9|sfQ(B>ZwOUTs)mP53-8?x5 z#=Ap@sOhFxe*b6`@$KqmftsYuA~WA~;@O+s>Esy)*}sULFsQk+%hDyI ziax7Qwjgm_)w^@Bym)v?(psCNbOysO*Mc2xL^g;fu6j3L$(&rZ-d@#7UpIid!~3>x zteKQHuVRk64dUVQ%Vu0@mGycu)gHZ6(fcEQlXVxZi%RP9*h#yg>>5IO$JRM`5sOti zl{D9ZVJ|MLOMSh@^TRP8p4}%M3^{}#%tm$0TL^79ZHy{zBVCfVLOe%$`qmxaVoMB?W(WazZp__zw<=-*B`x~ zhWucQF*CbaBdBPA;J#ADmDrzsrhd0A#x91~@1$^>crj$<(@Mw8%hk_L9NB>;3& zFvU7dNL>MO`ZNL|+-12_=`(R<|-Q zi2V9nG_Lw1=OaVQ`zcAOVm@9eV|$ubEjsQ$H+FQ*0pRl6Jg=qRB?rX`k4>9&nL_h< zv91JO+R(XUCC=l*Y_ID&^QIRkApvag$Tg zQw55|y=jAjkY8>uRwqfPRPg6CIQhp47*G;ME0Z`S-a{iDx+L8uP}d`zx>I38Qk(re1k2{dkeGO%RdP`=xNy37Bryj*g>D-=Zk}-2FDGyiFr#yC>Ekryf_%JJX*K!o|+!iRcR}-+PLO#g2ihp(QA~ zXh5t6_N-TfVD?6x1||J6^u37x*m~Sp!EQCT_%m2(h1#`1p`N!^T(Ni8GVrCMrZE0xse zC7T3lT;Ju^c`(yXE^q7wtmA_N(ao*;8zTER6v+lMg}w#I!1oZz&rFEu_qy5JeZw@4 zTuJK~Ufo7wMwF$n#YO*qi`9+v+D^cK-}B1LwH5m{5U1hAx}N+DZ2YbbHth-eIWGf( zkc%fQu_UIu7j<{DkK~B^*3rrnv2HePm}dyXN6Ql$Qglf{c{4-jGaIJa>GVTF^3*O@ zR!=U8xuGBZd>Y$$;@Wmu1S)@2=b&xATm(M*xg%3N2;UMm_*e~r`N;lF_0HAOhV^U zxiwha~cpNuS7&qW4ij6av2j z#3%%=*M9Onp7u;cq{-)haCRc&>OQx1)>CBQX$O=D0DiF7R0^Su$l-SV;+E9tR0PU8 z&+-b!3jMq6KBro_?<5KMcR5OgO8D%QuxVMVZmyM&_CLW?8dBLCFvb;(r{rDMfE z1&_P$2W*5$k%=>_Cs&h8H%L9abu{1@G!sIt>9ssJZPs&p2~>krQ)@`LQTa}8ul>nv zsvFArfXl_wvf(POcE(+m7PR@Wt~1khEl9Phhr?Z94`i;(YU>Fx#~(E7czq4@2!{q@ zo?uFg+bYwYjz2MXVXe8*k#PBO#HA`JpkKRu{GyQiV$}IL*FAsUJ8TcwBs}K^lZ#tt zGze}+9=C1ugP=#8D?Wi{X?D%A*Yw6W8rlf|9_-~%&t26QLC*)e zMBe^KoU>1U_$BOv-d*ffs8qmU0dSCh!pyN33<_N_kRDkMRx-5%!iT`&<^?|y)3j-130KzlJ78peR@1?br z*jTZkWQbLOI=lkG65D*0@pR)Vrzc>DXSh`s_sZG#Pl33Msom6L1!BzagrXAusOs`o zQ?yz{>%M?-U)?W~VNu*Fc_}V{c(95Fa9;3aXvkIda6SnAdmqeQYZV=7oMjI}i&Xnk zY;#7(n0!15#Z~#P;Y@w$nbC%=TaJjnG5FW2;V{m)SsGp&4GQdxT!ybr! zHRbA$Q&_vp;j~_=QM6H*i7gT94^yC@b}_Fz6T!kj*Ugqpm(3`5#02tHzQl0Ze;>Et zr54tCBQTX*ZN|ltv3#se{o5Hx5uu@sVi|7v*9@M5yU~Xhqi|2(b2^w&hh+9WJ;TQL ze=zys#Hn#hkCwnH>COOI&e+IZOQO4{Sjd}GriX)X^hr3d((Da6bY!>atWatTFTN6 z!-t=8a9N3mmHUwAziDoa+WS+`Th(!+AwI9;d-C(sR$VQXnfhhxGf1jA~4 ziN}+=1XX~v6Om8%lk;M4FaXHC{w8wJto=r}MCa9`VdDnhgjCx%wp-4Wo^}rB+bg_3 zWBLNSJ-=RXPgLhT&Vmv3Te`}P2 z4Bql|XOW6|>E3HYY{}r*U)6JN{n{FSc<4#=Gb)>1^WM+mDBL1P`Zu3)sEr>SSK1A- ze_~aeG&xqM8et>>5e6_b1deB1I@7mLLQEv_|MH{S{= zy}a81Y!ZpHyxExyXTB^~g`riTiPSu%eiK@@B3M@ux1b*qk#z;Npqzn}#=^mu!U5cc zHBDLaxu?$I)bJi5Yk9)rA+Ml0z#eWf;7z%wU{U-1ISS*_O`tt9cx3Je*`S@ZUMhxT z@rA^lvS~^UF+Z{%f8dYzQI|E@FIu9>#QL~NE(Sy+lZlvAeV0*cY{@{~=g=uupA9U> zL-h7LUR5IIv}l~S=PX~~_o^1)xcbxxkm?oK2REJjF~XJUnjXoT2Ol((x+Vhx|D-L7 zl6*hlz%roI;|nT&09JU(RmOUCZfPx>7RR{O8yQaBC4F~&&oG`72G>TkCv2nFeoKB6 z#r=ko!sKBmLz)8)Ik0sn)w@{aJ$8|qJDud1E5H6yY{{`H4imYh@obK&uLxoH`gPF9 zN$)sC^MLbexf({}RG#XS@ePWis8eH9m$i9+Q+`(8@Pv{h{F%Nz=p%#~^oqk2$~|TxV(^505`2|)$CfyU0*`ot%Rb1X4{M{< zJ}`U@L1$5y6rXS2ul-G{nlZd^pqyjww1y>p7r%^cT&OTTLPo7k=k&Rl8hR*sVm z3cH}+d#szsfpj-o8UcNo^|FUb;+%&-ej`iB^Zf+_c6$~Kq{NH z4(H681t2qON8Z=pdd_SENRW-Vlir_^JfNhH;^>-^0ZG1oQ)u9E!o?a>;9*ALR*}3o z`%4%b6rK8B4NeJ6HXMnu1)*wB2Ti3eZ%@thABEV#KWNfjXdCZa*dLa!@(idd;^T4B zZ1~VUA3U)R&AWPyVF{I8-oT_z} zSpol~duAwr03=}aYNd5;PG~nm(;-WR|HdV!d6vmb_5l~`mCYIRW7q080Hou10QF4N zq_f~9`Kw`*&`oaK1q(fvSon9pgu(Ks5hZd5=x@7S?2m&dzxE~18NV%6(CqE)QP&u3 z#SQpmnxBFo>&I5nuZnMJ;?NOa3bG0NntY~Dn?Q-i!)cdL#Qwf*M&I!R#Bh(s@5|!- zQH7!pFDQM3;NlqfoDdk}Z<)E)1m?^vj~tWA)uuzINH72N0*gF-t@NL3FPB?YQ~rjGCZ5cl&==~N@oQY?^Fy+T>SEc z`z-I-LZ*+gznY+#L?v;8-7%BvuNghopP4QW;myzUZ+$zBZM~uN3QPqDf2cQxIi7p2 z`JHnU#IF@=eqY5J&Jc+FZD?{xVL(@jIIHuPoaOD1m;W5`7^<%f<@yJ+sA(ykat1oa zAv}s3mF{_iKhb*|dWOS_^66)u0rvhFJS=|rO-T7{e+FcTo-Y=y=EDUa>Oex*NIc4P z_BHW6sCd}w!Xa_z02}ZbtMBE2aAmWmk_efhOX``)4$Q-7Fvh4e>3m0bz>eOlc^8Q> zsDhk{dkv=(L!H;P^bKHX6KqSRvJaveYZAx`O^$wFkHX3V2}N|Oh~j426fDD~ppW4pAW`~da>o0u#tlA& z_q(UGlmJ8O;icDKEx1^zY?5oma~;%Lf``{hu4FWL_tns=`vvOBXjrX7SvdhuDCqs0MzFJrQH`G-b}sYTlD44a1~# z2Zx8dQuHE2KNA)h9$r7d+F9U2Xo@Yni&&f;4T$0z5}qIVQLH-L`22bfJk1pN>6Gt6 zzOi{6e45&nC`>PtYXq=ROj=4{7}wU4l-Ias;#tZN*m0rvXPS!6swzPvee4<}C`Q2V zf7Mrd5;X#S_fGpJCn`JRtB%b~)+J)DKQ@#kl)zIpl>9a{uMvEolplF?g=>*W_XO|5 z6+Hg8^UveH;3#Jkb30C}a9@)r(3T~j?cgA}Lr)h`>fF3^VkZpryGVob1?P>EAG*wbw$H+5pigG0J)5C;jsvXmgLO0sv zsX)7jvj_S2$+-fb27Qv;3)(^}0?<4V1rAXtI_OJ&=jew#{5=#q$A_lg3~r}Y;P!e$ zIZHT9(jV>2Z!PwXA6n8stKO8%tnMZpOX+G( zu;aa8IXKztq6^0TwXOVuK`4^>#~!Ev z=EkkM7vNQzJ+=xXrccn8++hh6wkwQMN{=gT=S7#?ns$uz9~=F?fzD;9z1hLXqOLrF zfGi!x4OA2ErFVMETvsoeeu0TYUV(;b$}k z!d;)hM%i%tOwwg&JqWVdV_6z->S!A#8*AiXR)V0g@sP%fzcNW(S{d95itt3Dg5*OkmU4aHeYv-n;_|Rp|NL@>`kN) zcg5&X{!oHQa?sk|?K}D*uC91CgVdR0y0nSi4|HEq9UJLg4L>wn-yFqFuP6L1aiD7q|Wk0pC{VA0u0Gkb&q6R-!LuK~|59r0Jh4UH%Jx=fY1 zp+o@(RDIHH98&64qKW z)LF3*YmwIkY;P>;Yn zvwH#Oe7O*pGMB(wjN5LDSR`WPO4a3SLGV|kgA;k-HXrA*hm^Xz)iFMHU*ITP5odB# zGFo4D*In6{t;2c4_USQRttWZ7HTYbauyVA`ttx=p15O;xrn^&@<^E~u30mz<^f3^J z{lw?imtU~t!Ty%zO>ZyBj209N$0$Qi+)`L*UeBAS4zKo?!BH!C`1QKyE3 z8;8&@ZMf*|`O<44ZiN#c9PHK*((yni_@P0jgy4|j8O z5g*V&t0scF+-~&4La`FGhMPTRkM0I(UUNSsHHw94CPNkd>@={kUcDU;=-^b7 zH93YX-{Nc9kh*^zUWf+#u49`t_9WAMAcih^iU=*iKq-7?ECy9gHfn~0v zxn?^diGF%{w{#dol7lsiT~LB0irv15M6mfdJF?l5ZnfTBvsYD%yxTXET-F)!wMdSwES#Ipp(Vf$v*+uMB1& z*V~=EOWz1#i(370aI6-;`~-_PG? z-E@UX`=hy8+yG`xL=MU74cHH^r=26Y_7m5o5P_&-+Oozv(zg2T^zZAbC(n%DjAzYD z(?t?*um6oEgqCQ3TwXng?{TO$fxLQ{`4P|F$}2GOD$mgMNSaQHx7y=dRFl zLyU|4>K#@~%r{XErZGNKGP}v#l8clqn_kc%F0v0 z-~3F7hiLtb2<)ahi4q3mNiiN2nPo^j3Iqdub4sUc;C0tPs;XIL;C%b|YGR9rfQ(e+ zYhSwfyyenz@A?XKZ}tle!YRSy#@^}S^RmdPOgf4%UCO4ec zqiT#*A}XxYgeAs_4t6ShO;fm_G~NacE*CWi>VDt`Zk6ld^~Djfc>CVlUiC$7@8pDl zhkcF(*yq5l-729|GlwGJo!%(BK4=B_9D8UkgAJ%Q73(yK#1`t#T^J_J0&-QAAmFG6 zYuU9>S_YX^#atY;lsUVkktTo zjo7zp_DVFt7?~n)yckZ7^;CEzCO(fX-+x5*7ZXTt>;m^_ZPLBnZ;U@QxzV57l-vW)=jzGT|RxuxQzB=%5jaG=8qnAAUUI!oHttlP)Bzgx{JY^ zr6+5y{yp{cuNvtl2uBa3dZN|g?ztiX$X-qm6&nV{3vrramC?eQJHv+oV?;nPv0V`J zqwQ^|0e-cy`1Mel%d!4057%1<-0_6fX0`I*0U5PR2+d_9MzVGER!eRU`= z#xW`~Jm$pa>o1?R$;+|z;dx2ifE|`uIxR}p(jyD7SdIQ`7n%?EXh4o)m1IeyB#$rC zHZ-XS&me@2%;%Jx$2ID9jZTQB3H9;nQs97zOR;vpM5wo&+&pICr%5e=jh0HNWSDtH zU7A$5`l12>{3Zuad$%jqUg2fOYi^W_zv|-#o*076il0kk_~C2+F^u8O1R#5?QZI~! zTR_3zr@tOl7m$?mO%htavZ>UvYnk%pP#iByd2APUY9#e^KV*yB=LKat2m3*Jrpr#N z0yLishR6OG_=1se)!fEV(o7IW^mDmzb14^o z_N7astsJQ&YQnB25~IDC{ePe7^7w9em3shkpW=WOeRe@APt0v99j0 ze-SR={oE*`A^WlCsXg>_PnD*N0kz{(k^SUc6?UJ)cUh=;$ zSM{XqL)<{UzxICpByR*V6j7OcL-D$+NsEi+gJ2sYX_4yC*E0>3!IpMHriWgBXz8I1 z-a3IgGW&GG>PrxHcKQQ zP0Qtacqa>1;EP|#48~=CXfmGdWru_^s{&*JiG~h-v#6=Mxf1{za$CRxtVv*Xo4&FqKsDcui*AptCUL)5_d1{l2g6xz@wv+Kx z-*$>1MiJ`x5E-j=(}oRHx|?iVRq@%Lp-&?YtOV|Z=&p! z#Yk~LhkhA&buV`j;K{OBR%)3uyNdbJgEux>&_S`#{zTI$UWuF2?RDMUxLnb6Hr;Sm zN0Rjd=F|y91#BKwO=IkvUi;Ne?WPb5Ck$uL9jfh0MB;xhyxFD73W|mkxLxP-L`(3hev=l0ZZ;dhE?nPK$v|qMaD$mHHyne{s6T5q z1Mu~J;H%y(+IjW(qW%tIsDPxl21iIHu|i(vYTq9T$Je{dmx+gjM z$C6QK=tJ)IZ`{}9zmHfWW@@}AFsv`&)D%vz1{_m>yj|;+XxzTs|+5VhJA{M*^ zdgk2(6I~#FFWg@^O!?s1C^Ojt39H|bnbM#H* zs*#=6yXV9~l}6gtI}=2ZvU>M%1EbY$Z9;6fouMz{ zR#>Kn_=tck>Hs?{D??)9kU_0B!0RxW0R20F@PksEOj`Cw8A&35n|QeKS|nK`NFn9s zUD$Ji4EovlGVFBY7MC=4dxtmJ1h|a%g_rUVgo&GzI-lP~*&bRqk(c!3cwlnbOetVm z$(2uqCh1XB2uT<3+F`DeFB}t){@i3)bon%B1DPuIus`-igqZ}UWrhcAt?D9jH4TPO zIfz8P#57&mX>_LMd8#Tt*#dGEAWpe393U5hhR*i<3?I=!({=PoV`NPP=kKsafFw~& z;Lk`KBt;+aZ#uYlwaK4hZL9$ zcKMP%Dl|QsYa=%uEjQ+oZgk*9E^R9}H!;}(tfmKG>=h(C}^a)ozk!%cT%vsw3ki8k^)ZYVg$8&lvI!`lL?79~Y>q}ut)-@*~sNx#`y z{AGu1_t*%bSGI;22_RR6qxra2_})6+Ht%j3cva*y=n4pSbYW>@=g&^`xaDZZE5#jG zgqmVBzVH~9h)DP#Tq5c0)Fu#DTS|#+HsGo(kDH@3=tWo`O%|{81yakcLSkaSMMisq z=KGX9Wop+W46Nk1yofucz zZ7E=$(362Cp1pWBw&gVD&vC0-o^H8mt8kv;K}=s?-1Z_ca*c7AZ}b^C#jM&vnZ}Vq zmDthZ$gtwgAgm3SS zA-E8yXJmW#>>TK46->-BCH#`LyOh;-NFXiR7x!S~Yj(P{?@IZL2$tur%+H4nXvhLa zoOk}M%=Zoh*42`Yr7QdvI3-}!Rl+#2wS{WW+q1BH#P-5ba+{n2f)t2SfU!Dmh?0E= zXq`W;GrHmrLQh^#5sX_nb_YbkuAkO2UV`W*U+}<93Ix1M5Z9tKq^$gspvjeCV|eX; za$0Cb8v?caTkf?%z6<5yvBhP~y$(IY(~^)$GKhKwDg*P^oR0~TaX-9f>W@Totz!hu zl@1)zTKHyw4cAUZ8hAnY#S1`&6h17<`tV5SUXCx{r)x|x6^Vkbb-!74c-+(M{|W5D zRC{`a(Fw^k8h1^t$q(zcF*ce{sN!)lNFM>?3frIq?LjfiXqQWOD5;rBt^36&oCezG zEbYV$X$ky~WMe#aB`_U6*%@iZeqqw5u<~u?wbj5xNJZ2Z_kp#(`jovvtB8(gdEc4u z@eP|a?JrraQG5__7;h7>TUsvq7>2WaCr7YC4dQqC2fmGnaG2B~Xm?++sa zdOFQo^z8)4KBwlZ&Ba577ni@GEY4o1=oC%6jLL4QocW6RuQ4c){2cAY3IO z{X}=Ur+?)*M$Aew*waA7bzL3X8si3N7(fI33#%V;Hc=U6J^E;ee90Hsgfur#)(R8b zbpkk!4%>hJMSW$?9wpgZdq{73xlj0pTBA!N4&;w29agkr z=iL8NcGe%;y%$waoMA(56_WcQOnM_i{F=oAdPlOqWZ7K>K-*Uoblh$Zk)>;QMfEsDIBy{Ow#T zRCsrzT$B(bgKO9^y4)k3Pyfoued)ADNCvF{MZ5!SBAOo9T0*0hN|^UHRgjkci>N`r zXuM5zwix#VcN&VLS2|B09{v7$Z-5K8D&QwXW;hqHt9rdixf`=DT}J@Zx{#lkok5Op z$Ll^3PtXbQ40;QQtDmWfc>&G4t9a^Mxh#tCnqLt!4v=)Aq?(@sj!h1b1u<`vso+{F zpXoq3S~^+}^kLAN*rCC#l9_PPtC{APt5sX0f@J)c^tXyss#?`b{V>jLMn0#}$&=Lk zhCU3|wuuiZ6Rh2IB)tlHK|i^NSxxo@27S_>)hHq}ZS&6#7*JKQXgvNog9Ury5J9>8 z-DiWk3gaBpanGqK;HmIClb>ePG%5~}iEbP%uaiDo&hBCUu6=gCDktReH|ov51y?JKEy@@;r1turs5A-T z&_LLKy4|${g{v+7TxP_S{`wgY`ar#c(9teucrz|U@&YU*vkL5zJTY!>r*ciBN={Vm z4(caLc`JUFGXx?6X+hc(z`N3};Vc!1A=q~P!FJ-p-E#B4yi+j6@ngL3y%wL}-faDJ@JrY8L8N3k5KO6uUrg&m3tC>MB=nWM4WWiaeVK;*N07AL&j$!w(W@MFk z3}?GfB8_atX`X=^(ob>0$4*N5+Rplq`C1o6+oFfB?R^D+fLddwlu@OfvD|1d3*>&W zc10@a*%nh^lUdd1zX3W(XFOq=nb1m&YUsv=c${~;1Q5_`lF&jipvRx2&@5itc?zrD z&hcTYj1?srD~ch8^xp+G?yIf)ZF=&6l7g6F0&1F~w7X5CuOTw67ZUAjn>r|wx{*(_ zhMqVD2*c9~%R~7R~Ur`138f2BKux@f})dS z;b}`pusds1R>0x4<48`T4qV8a3z{?ElqW{5cgP&i5|3%tRV3cfd=p1HGqqzYo%*n4 z_j7P@VQ(vs{6>EiX!~x|R5Tv0Mnds~M;jLjLOftnq|8l(LP_T(%(9K)oH+pow3q(& zh6v$!P#pyn>3@0g=N6AM^-i;10GZNI3<+DWXE$Jwd^p}O#ObT}V z6N9MJox9tR&jNAk#VeIN`ydExcw7C!TQJ(gXCuer&*sZ+s=doPEcNCUiC?Q!uZ!iq zc13D7x}dL%KxCMJm@EswrE104apS{=a)vd}x^7IRDr#r#t>hI5<$veM1)ALziow0t z3sph7IcSUI>EET|@c8N3I+X+KzWXT44=CGo%Q6N_$B5JyKydrfN6rcuT^X-iB$yU% zhSxsU|JEx&I|X{PGw#hj6<4~~=*)!!`FNpynGL*2PzY6nbmziBspoV!jl*y3M3VK| zAGlU_wyRLkqBVxYzk|3ga@Dj`BA{xO-V)GX);(r|W-mSp;Z?#H^<#-e7Y(#H-VfsSNTIP!d93bkAfgo4Gz997CXlcf;I$Nw0~ zvw7Q&hT&nTN`{MTy4fq|3I8$5-__ZPrhhqb6StL}NqpYEl?dOAptV;a=5iolr(Kk)jKxr6?{nFWubpxZuYSkGD$>=b4 zlaR?<*F@iT;E$DziRnG?txwAri@s9Pg#ZP5 za3C8_5$?KOc(~;d#SLM;&9>Qe<4kmZ9u5Iu2k3}~qp2%X7Ee8rc=2P|gc@vV(^uu* zv55ReXi{T1uk|qEwJT3-*l$a+5*Qd;k|BjPIp7crcMwvf|0-43iDzutPm*z3=TZI2 z;+-ah`9B#%nKO6B&mTL8qQ+T=B5w<(%I_$DMX|^g!F3XR9;>4A7Ribv!`{9CKJ4m? zewP_q5@v&Fg3q?l0{pRU1I5`Wl-r_#Cmm$zKThblCv?WeuL@KTV~$5Q)VAzdD{ZL# z$HoJ*21P?&=aXoC7b1mZI9=Eu%tRG6jHLb?RWb&3#P6WP+YY;ekp5d27cLB{52WPS z!JK~T?yXqD;q{L(JuRsn54?=jMIvU#F=EW8_r`$suLs({&Y5g@3UpV%ecoj5C+q~v zaVa=JtF2jsi1dZXrCd!2p!2zbqYi3Ly+gls=iu9DRk};Fnm0eW*CSvBCcMc9X(?YF z%C*{XH1thVsB!)&D?Ul`oSY97vm&mX=52aONA?ev0)T>JwC4gXX@Gii4D@VhNu)>!Hecl!^g0tnG$Z8R1eWHjdN0b+Voc(j)j+aU773*(*9@3re0nbvUeX z!5f5bCsXbH0Q$S=+O2b&$~Jf`mb?S2GopYP>#pHp?ch)m6S2-J&_ zbWBI@WX1hX>O&6)=?&f4Ko9=^JVWEJ=SO#cCZ`i-B5d_^kZ>5GB+Hc2;SSIijiZn7 zR}`fSzn;5xk{Hdig5E;4gDB zZ}*{)$Whtkc%IBF=`74r(CozPp6ah<K*&tYlGFW|{&5@6$9nj5ow)?=oL2fk)$0-@!zeaB3_18O&+=hLU+{HA&kOt~ z8P%@}HS3{`G#<%{S^(pE5kkpGs3SqCW?#)lRk-GfVO(}+vz5qdL8HZDnpj`1I(2Ww zhNAsFpRkPkAWtJ`TwsOm+VM@I#L-*ZsJdCq#y@zzPS?bF>VP}Y1;92g0`4*n&Qu5n z1(a;ziw#xhF%K1%=hc>Nf(&ABV?=yY!n>}eL}OXc&PK?p{z#XenEh!IA6 zZvjI4{aD{)UW)2}L3T*vt{Q_~3eaW`!XariwDt87P4o(hrAa}1mD`b7><%+yqE1h_ z>v*GIOLSqU;LKq-r1Ch6=_m5fo0+}yh6t|lZjqF9CQJeG0-}=_oWE_H9DjB|EN##7 z;K!~0NspwP89fyH^A+fA6YBQ&nA;pL`MVGSXmfusHXPNF zKnqM*iJWZ-K)>T{mJ)&5dZ*?q5IbwKa3?p{YuHO9vvCZDN9(>JlNOJ2$rXdUmfVgL zp+e+5Vslg_onSAqbyo8z#_jgJms6PO3Scd%;>~yc%IPW@i2QLN&oNmspcvkj)|tnc z5VAehX4ZdpF^QiHX6pNodE~32!N`jfMpAQ1z54&K0JRkPsGBG)-)fp;^}X61P<#M( z4hHOqO;A^+j{gIe9%L@_Q+cOWrarbj5iaV>9r z%9X34@E=PBm5wCPJj{S+bm7YySK>(hm@HWnU^=}_`|5i zO@1Bior3Pe(m>%U&O6}?dC&}Zfd1jNu)X$Q;ejC~E0@zB%@(+E z57cPH>jHnv`!`q4wqPKjhx>&UVcPFg;67XEzc(zuF~ki;S)1fPA1$y}5iAf_KfIN* z4b0qA@H?!mpLvN1f;#Qw;v`*?a>C)t#(!AcPq^z1^wGj)gjz5QobZH=-d+ zMCN!hsl7AC2xwOn0c4uwzgWSIIz?&UlcEZu-kXG~JE<#`6NPfo4z~6kUUya82Jhew z;VvET_;#Eei(Fa{)JQRKW?I}!H2@LKg-4w6b_q zK;M1FhH%l&U;x#kLmTcnHm=u#FIuw)gE|_w@)zqX=`0UZfO7bo+Afsil(7CA;zxCH zr?0ONqZkVtYK2kO^{&?s0q&Mtul-^2Ah(YTo%AaGO5VOw4RUUUVAU#%HP}ljumGQ9(Y+3$u+gG!^vxQwVDUSf+|sB zgHYrZJvEz?#`G-G17UX{{{Gc(D#6g!M^nzy<`7>GDsvKVZEp3w4ynsX-e}MFO_9pl zdpc(<)?X5vsB`vtknyY%b&PWl?5eUzI1Ob2Fg~L&UElvYGbV=<4!Shf9f}5oc=k3L z>$l$-&Q>YC4XdC0btF#X*t_ff3S7~b%|DgCy3p28Rle~ceumSsLihJJ5YO}OgR_W| zglk+9SN|soAdKod`N$6@0~Cls7YE8%6XRdw@AZOoOZm~i8VL`QCk)0P~Q zf2b=SPE(J-rdg`Vuxne4|E=_Ql+Bo0D37r)fti=4Gkk&Y5?-)ES+JN~mGUAah^0KN*>xs>XZnPTBBRBwx-hjrP=0Uq_efTSUQNFX^LbJ8Xw#^F+qt4WYzfpj zFk5x2OVWLH(J_C9<+7OS*c%D70X9XeA+uzlWp@S;AK*bUL+c-azHGc9s|R%L(l1CJWpW(9||05q0x5NY(=0N)aTzn-#$ioCs25Sv7^ z89+~*!(tw`8Hr5C_`Twq@$`K>8=rTrK??^`cl#U^12I5wLOn-iAe2=7gN{tU7x%>4vqBo?k#)*Y573Sr^*+n5PSAz8QRWoYz~|1s#YrZ^I2;f zN^6C-Mw(X%NR@@&zOGv5;F zO?^>5)UX(R{_&YXySr26-}lZuC63NaH|2}AWgc`odaYY{7*T@eg6w@DAO^amzH+AS zlLLM^-}S}YWh*^?Q-@IWu^84eMPJyvesn`rh~l<;Q=UlqU~(jvEQNpnE&SZVCeLJ9 z@vq&dNty?sc>mO*r(UHe<-CwZ1^yA9;kKV33jwn(hJCSbNn~WKAB6uS^u9k$Vf~lS@BaGr2(} z@#H1h@KzHKE)Jx{BoJv%^!#VpE!B2Lh0tDIT4MB*hD&sHHuQTt{lI~{y46{)d&U6y zYN?rH8bMM@#3lKv$?0`$&OgkVNT0P$8*it_FIaz3NHLJ}oipQ+oAkbND{<`#gxBya zS-rv^r?6dlWC{=rQpR|pQ1kV`;*_!FlQhU!XkL$+Q2D%P zWHH@<)csBRPlocTLCQXl98;y2tWlX$c*8glLTqXQM;7^#nuz?G#?IQmQQ1p@+n}2A z`S9tN_>~EWI^M;~Rx%Snj}E=k`x@>BE+*_vmejA2y4aCE@5$k8w~xF0fyjQ}twb+R zYm>opN4)wy55_y-DnR@WBXn?)TCxVe%0kOOWgTkc;tge*1;<8d>fLPo?0+QE?4MYCCMMf!0rVG*g^sEccsTSh1siW# z(Px^O+pIo#%ZEnNaHMp$>3f#wtjRFX+b2*1mxZeqK;#zON(s1ww&o8Y)9Jo^t5VD+|`F z6dmjQVJ=O*74F32cJmVadXYwJ9qmnv9-FS=H75XJJ9q{dQKYK(@etf536lt^S2HR*6w1NO_H)`kVvL&DO znrHdp(=eb7JxNQQj34YIq#_`|9Ft&~@d-$eyS zb5|a0Z@m=WlePTGb~mCR+Kl+OOvf{OzVHo>bscZgh9N~rf32Q`YcdE;V;^pSG)@*n zAPU6b($KCRbX4_oT4IS_=C6X0SMIZhY9xinZxPyqv@h?j;q3ZOTO+WGKGJp7bo@1c zm%{HA24-_lXhsAwQi}Q9HtdE+WEXXTRAK)G@(N<5cN5@-0ttTzN){+MkNJG;ERX%7 zv|JHyYKrbkc+0)r%F^~1g#E~KH&cs0qdcS@f^(KxXXX1)&Ssii<&KxN|K$#@n>?{a z?@S8DL!;Hmxx9tV{j*ieixT_+oD6{rd!^rBSiZ_ShunxFR{y@)`-jUEzBLn~tY(bQ z`DwTAAaqiYf2yON;$?^Q&Wza4(zEbn*Q7Be88-6)FA}0u$;1@CJh%LDbEx@7mu|;k z#Mn?}?2Xr$!8<3fhf`z?+H1KIKTB;eLo#mu_r7-~`X?1Sd~esQ6N|J$I8+Wb)9dFX;I5zwea!IYQvDLKK7??o9Jq;Ak9 zXDs;xYGrrkP3x?X@48uz(h|(G=dM8aEL(yN8x3c?h^zO$(A%)9t7#Pdm)RUiQqjqc z{E^=xctDz6NWB1y;S>!$)Hi2zPZX)tHDp@rno;+b(6%i1_BQ_X_j`bGpc9$7hF$N2 zOAw5nt{_0HgQpJVoWGmv=*3zM<(7!f$f6+{e?d>tx+{?QuN(j|kiT1w^JfUo7xE9*E$X6ElXPM_=g{_a2Ox}4W@ zKl@(KJ*4lcEH&=Ds3%%35P_9%XtEf09s#eXeYu0Pox!=y8AY*f=UNF(kb~8o=y(0l zfraM-`I=N4!)>4Mz|jilpR-=zGmt0Ls#odlD0WdkwcYBZ63%q0{O+Yj7LJ3U0e(TT zacYLOp{)tDiG?N)U9!vXQH+&1;hrl}2Qf`T(^=*CHjyquJtqyG_W7A$iRpOjh{ikXJs$7DBnA01ByCRNR5;=mp0Z$wG~~W*K6G`rcbzD z$N+22exj*;?aFRr_lf*{M0Y)>04O;p5{YvjUNj{sd86@M_Rqb3Id{QG(&p_Kkb?i2 znO@2le7r-e(0VA9*!kd`5p>|Xme#8OaWo@Nv)q2w0@d?2iSb-8ZX4R|>lZ89{PCL9yl2am;Sxd(Qlm>gV}4L$ zwPZ=zudZ~-k-J|G4z1nh16KdE4Y+>v65R9EZczU@>m%UVB84~RzRFCg`NAh>t-a~k zDjqQuC8X1DPS?S=Jn!{)Fo5!Ufr%UHWU4j>D=-$MDm`?QxLT`UpgQb@4K-7-v4i-y zVA?V1HHmnSiB7R^ux{2w2Manv;?2~abevn$;3+!A#%?95X%3(8WW<&Z;S!&Ss6k9p zRXTF9JoZdR%3F2x#`)h;x9(5GIfR&6ZE0aP!(0aDRO{ThHYFJJg(3=Xm%jY$Ara;s(f;oHvhp_l*@eZLze->SyNr!NFF z%^T)VTarUyZ~QiAUdi)I99PEC-hgmc>S98eUxE^rV|+3AVdV!pEGueZE0$rzpr=Q1 zij&=}Gv|H&nr~_XrTm{Y0tb_xBIn@z*ub$u?Wc^Ih#?cy_c`xGP@Kh^?NI^2$>kbq z?3z@Sr8D=2(SKLdc)3X>iaYk2A*;$nL&o7%0jVd-Zvqc4LTej=l z3(larSJDY^1*>us+J}OU1~i|c!dFR|tgNtLF%7Z)Hy{H4(;jli#^3dI)BKiz< zB|^VC*mIIb-TiOx^E9>cTjW0ZNEUGubv`OHpVv^@)=-M0x0pO3j}ieUA626+zlSJq zdcud&-@_k`@%=|g$W^`K$ux}*aVy-?IBcB1%G?nM$`gM(EK^s)eJG7gOq>?{`X;gk zm*i|f%Mz6rkS?D%R{V*5Y*n%S^x>Uz+h^}s9r;GHfM=~o1mz=S#~`FO**|$Aqp6y^ zU?`=CX2+LlngG(E-;rH22g;EGkOGGNEQb8bKbz&d+cWl+>i72U7>f;k>?V73&X6d5 zs=oVz?$$s#i`dzt5P@Bu;^ga)){HV7G0|P#F2_vGBF-a3a^(@&1VRWhx$7ISz5NfV zu>x7>l6%#sftszSazVWC9Wkte-nY|tRlXVC7%zUebBaf-apMZ#Jbj_|^xO7p4t(bz z^$2$q181<#O~BDSCuskPqU>?1oFhOy?=?muM1d)jmG*{3Q{b1UTBHZ|*c#6X@qcc2 zd+m)L6g(lk!dO~{<0Gw)|??O>@GHlVkWn^K-O4b-`WXB=?p=#D3RoGaz zX{Ag$O_aZj7!u&ZTY-~%B|v6+fFdbA-D(scritq}mX77+hJo)`6w#DilQGEu*3~TW zs`53$|Fe!s4simKnUX=M0=UMTauz|{mP_9;hdDPMD)2+y#rIWu0=G>d$HV`ecOXBG z)>aW2?kske()>h7?iw;o?n_mku*?g=!?T;;{ zJkw}&z`QHh7c`~06ZJiU)sJ4m^pBpVpi%V**OZ!;&IMif_AX^SLqYFo#?B-K>h@Y+vcQd(_TMA6&p`5dgH!a^IW5cv}STHNeut5Km06xU4$C; zF9u|}LEnKyu_rSq@zd}!;&ZK3ENH5n|Qp4Ruj z$O>|PCNh)z;vvZ5mH*UluyEtA<)Z}@TR_phr0q0YzmNUqyF!rL*?vdB$qv8(Hz3L_ zYR@RWiZixc!Ha92@qZs_ie{@hx(<}&hN;w=KKgqxm`&Q4TwZR@N;(=UPBX53IFl#5 zzWEp1&P*~;zw)|T;Vm^2Q^gzMEan9rg+0%ic-@$Jr(Zt&Wl8veX(%d&j)+#p<6&QG za*)~eC^t)*)xp{Aebuw!02L3N(R!}HPhKnUdxo|0Nxm1I%pNI*a%%hpxe5cmBsAk~ zQ9;sEimOU&l(i?NhU}jk@8~ULw5Q5Z8gA`5?@h zkN^p(tEI8C=V)`-=oOso66tT-Zfl-?QdAf=$>s}zLfj@JGyQL6pYy>dw%q(w2|Q>c zI8Fx1@}m%(AlDF;q@&}UPa6mC@8$>7LSrf4$K`(Bg1B~ClXqQRdk6=pQyQ1*dfV65 zmtmCd^WW;c5SwD6&9b4)FogK*;J&OYP9B%|o?dmYr{m$Ws$3xga5eU~s`d=ccrEXf z={w1yY8~zG`gn*OTpPHvs`iB9YTN|_#UP>D9zlQyIqr3@86K$6Y>Bh4lCP>!w^?(| zf%#c#9ICJR@!A(>>{rj}R)9niQ<<3@;auWZ;u3?$FdTI{ps!c25~dwFSn~XG@IV@p z>D_*8q|kF0Wqx1fwUpk3p$NS18N!bN;nCZ1@sg-9S1uht2r@N4 z#IcDIh!x&9d}KB&u{j23=SuzFAGzXLWq6)syn4m!?zCd(Co$Zt08^cMl=v0)$eZ={)wQ=&V?Simr-z&y>xo{9JUZ^9)dR$PkDWf9yFI zM)I2l#W|?>vkHra*1CspP~-F}p(yLC7Rv)F7t2Y6ZK3CB`3WGYnEUc6T6ygyE3u%5 zmZB&fb=0bsX4fAPN!{&tGX)C+xYQO|QLZg(nvUB;_NO3pMfujv&kcbaf|S?JUNkG;GF$+rnG? z`5eY+n{V{U?HM1Fn@!!CRRtdQuWIwS(UbcoW%YB(D5bq9I=g`pl2Gus>2}w=6Vq#F}nB2TrVN#Cxv?!KR${Hdrtn z0#-_t0D*}*)g5by(#R$w>R*m2DG&Tn^#)^X-lLz7Xa^9c1625A7ng(lSW2UGLuYi` zZGO00;K&JBa*wUNW*3vM_r`*0ks20i>_xY1oiIUEKc5FjiC|Wole8$;G6YY(iN9Bi zeb=<#{l+*?WZqO?Z}nx;!Rc{?3oiXL~$T!tju$jq;jVa+=O z3oJxr@y8=7tD7aW>nBn?Ns5`;gB@RuPH17#kaDq67uE&>3IQoiq6nxkcn zNUl3?PZnV>b3_ay!)x)V%R^Ry&u--w!wxyUiUAzhK<<=kPFeDp&k3Yze4JSWZP%^M z@(&({{MwpA06QvxR#2gwKbfxjWVA$ky$pH1A~Xs|roxe>;IOE0z;-AlePfo4#FyJ{-Ke~ASJj}#xr9Z(VLd#GJs1}vY;(xx(TB+v z!vo5xao%vw{L@5Ts$FQr&gkwtn;-xmRcVO2UeV{XZRA=WrbXQ?e#pAjOUMEwmo(N) zt>z}(;@hr%Ovm4uwqiJCH5z5*NJUl)kU%o{NRGB*0q_UcgZOYcbF^mCSF=j(*pcek zr#@7gO^JAP<;8o_r4ou%kkjb+DX_1^Vpp#TY!&*?m;-lth?IVX6Zv0j_`3^+Hqj@Q zlwkA`!|Xi@wV(B9L8#nE(L?6YgB^3zeQP~#5l8=r70=<(M`oOf9$KWv{p`@{K6Bex2j|d}1VAz% zijSo=VI)R!R)d1~a?K;sKsvhM3CE>L*b@&6aOp(lSKu7m<|qZyav$%(**~_R_nXVn zkwjmqL8-5IQ7&nF;0}PT%YQ&ygzA>gk6L3svQk<-ODt^JC)pYOYL!o^Y$%rtnqA5V4KX^Ye3NmMTWZZ3DV7Gi+;zrHuFh z4@ii0gPNLqZ-JN%UC=>y(N_PdrDXrkPOnxkBF)V!@w*#Qc2Ap_gO2K%sroy!d7t{> zvSqzoC9u{NZ!BZh1X*-o!@8+oB@Ee+jR(RN{p|^sagNi0kcw-vVHnLeFzF|4(QFJ? z6>g-7A4sFlX=1*a>sSP>LDUgyQ^LsE17 z%U1aF-QX#}VqaY;fTnFjTt_OF_uz$*l*bhOGxA3F^@u?~I>?wc@U!&+)DJ*wl_l}$ z;qrpILstH@0!Yak{mr(zUAj2QNFnpEKC*#7)aEI%cEFoeO=v%*C%0eh(E`W1u|X|J zig*k-brhgHuQu36|t~=aIE-6QpDq zP^K`lD`IS7sDT9VM`zM>T{#SW2wF$*0`t&6Z=fD9s9TkNOET-ZdNxdp zQ+48QW}_Dg)GI}Ln*7xN51?Y=R1=EyCSs{rKl*;QZ*IJz7x(4C9=Y$Ah7>G3lb@21 z`;Ve!ny&hU@cD3P7WcLz%7D}EMrZ|1pY-P@8WY{8;bdHCf}2LN1vSFaM+!H_2g4UN z-#E>-oy*A}>oq;+-XeFR3x+*6c&fL64_4~~%6oKjeh&Hm8JbMaRo)M&#vC@>X>6l+ zZi1_%o9n#EcuJ4y@KdjO)>K~P>UOxZ%Zox*sgac?(hw9fl+nW4lZHr-BM?i{I&66WgP^;ZL_EVScI7lfOr6WLSmFrba zqE482sL)-8Id58sCSmUHPn20f4OJ=>O9^!wy|!xi4%9+!v*DJdyOZK#QE5HRpF(Gj z;pVOTsC8Q*aOWj4ZEFrr`oT8u?5DXHCsa34S=ixhSJigM(Q_cHk@e}fG2RGQcm^Lg z?hwH%zVmFFvt5_3M!vm~QZMdC;Oc`055T+txK6aI+Pn0u=?He{8+P9b9t`2CH5v(B zY!u`|VUw_cjS%_OI6E86GTqEs zwk+bG(MWp3PFWKEyuYFOaebE>oyL5+#fdVrdO>DiErz(pFOEv*9KndukRB9h6jKgygN+OF`vA; zSta26-zy)DSD6J=<+4=o^V7Po!D?1&*XedG`djvja?6_v{KZmd*d(L#zrlLlH|*v@ z0=RaL{O@fh562x1HgCbSQX1J*=r(|pn2N@OcXG2`+le~6&lv>uOeQJbAWK3%5?%}{ z1Fld}Vuo!)VTjRZJ_0+2h^KZl5}c;q@GWf%(ufhdR`01*ytlBzYE_g2-N?;Q-x>R8 z#NPiI4szxtj)0*Bh60 z4Z;P`*EG9}tU&7}M$^%q`VV9{RQ2cotOfTYtxl65s(Bk?cIw=MuO#6>7cr_$_J-@8 zCNlX^1`-e6Ps?hDm1nYgroXx?!8K`G)DUT<=GV3BFQmup1dd5U{$KiS!9Drj@XBzJ zzdf)wW(Mv{P1P(r;(5r1W4g7wXOX!))}Ud+-2uqsbFNf5MviDzEJ6Ex>epM_ZB0LnsU)M9 zo1DG|K~aEIoILn?c+DOji{QtfoO^c8;9b==uXws!dFzsn-KLu`+_^_ET@uE?`{q}N{0`wav z?_vJnEKI)1)BY5GS5vVLcvozUMJ=fjxT^&(-fBsmQ>Nf+NX@Cxb1W)e`|t5|6<04- z7nyfSX#s;*z4{x9Kx+1V4CN?!e5;7U(wriNEBO-eqX6f3yNb(rTSg`8NY0x@=N6r* z3Fn^Y(4$g>1@pREW*ftrD3X2-br0n%~m_|4fa_q8!q4CKA%Sr|}+-Z!vET3nu@hM_D&3oEtlL1958YYdnrW0%svY7IgGwUDL zIO7S$YOW$SD_gB*Dd`mY7H?G6*i0Mo5>EGPTk_9* z{|mdh$D_Zei4Dh@B`9B~74t?O?X{Hc{dVg&c4Yy^E@x$`VQ6 zJ~Y?m1HGAp4Tqu(Ya$^_ij!6#66OTC-7V2)w5ovFNZoo?u;QQ0EK+0@L!h|ZDdYZ$ z>L;*H#3bFDb3so3X19&LW0*rWfy>@1c)I7}^Ai`PHf+zEr6BdUbhmP8d=4mY#x}tR) z{zmzi2?*j|t}x(oJvfuDo$|Jm69nd)Oehrr0hXA}&4N+TlJ zhXtA5g)(cV#LIDiAFc9WLKTG34EdJoP z81z3k=izdy2&3lQgc|*`#tf5*C!B62xc5&QJsy(u`5l82PK|k1J_fTMcLX_dfNp2x zzC0ixr9)3Jq7Jcr4VkT^#pIHQK*qM*eB1bBNeEBr(qtNL7tlZUm;x(cbqm`sNnONi z5s~N(DX9%Fe;COnrkvkLLU!WrTOQB#6Wq9@_nFWEGu*=<_QzFY-u7Q1MMsk$ z?g9-Jiokqa=ZsBhLJ%-!BPk#{UvqrI#ZqA4(j9t{(lV#@Q%e$xFseEG>n4(~J$--k z0btp7U3%o{SZg3|n?AG;i4g_rvI?0biHni^gfZjw0sSKCV%tJK$9qav&V-Mjyy^{6O_-P>Oi3 z#w}dc+^i+=jtf8vYW&=&{XKP1@}q0}X+jffDPFP(B-btCnRbn%${Qxd{Km5)JDP~f z%*dB#<0>WN`g@~xnsT=Ke;Bb{;jRajU7{`+h*Tq8j274@-fxdWMuDg7i%4{>Ljbgb z^hNeE+TD5B>28L{mh+9$3+s?IkmO>%##1~#@DFoVhk8hKeb~Ok3y0MDiv)G}=jCk% zavH7(J#?NTskD^&FpoY?)k-w_nY7?o$mpa_0md({rxS@g?o4jP64XMguuu^dA(T?_ z8>DA2P_i!0MF_`At?*v6(2Ab+Ad83$P`u~ozjE64>)c8EPn3Of8G8N}^^q`q5br#q z9+fxzr*sm#;G6TNEN0*@7tzXPJMwl%*4LVEE~;=dxkQ)Lqr+3-i!=LBo#{=L=@m}_ zBlTK?V=?4mQKl{ZW5Gqm@g>^Sxww?0COPVGbU|#XgOt|(@;vH-P$^EB^;lj@s#ajO zk-VD8)#3!&iBT3QR~GK3S_cQ%{ox!|<`+zbUhqf2p$2paur7DQY?49Z>a;G6px1y{ z7=y`E&8Bgu^+D2zFjVUO5 zl8B&)$(R+eFBWJL)BgaZED5D>n>bSw3pVnziC8tSvI#iR0btU34pI@hz7l%V2VMK1 z2-zPfseSQDed?{1(zFtB^axVmW|7WA@H(sf%U_NmL=7xQ3A;$4iE>PKeF285iyva z%LJOZ#+h=eMw*d7(j<@Os*8$^fc)B?;sXu{0D5L002j2>(Y~OsB$fDBFkv@HA%FXi zhVz;%or|XnLFyUwmk(v;aChf^Zz~aR0ZUG=^_X;A%$;|@D;&P|li{w^VTw#yLmuY3 z^vsrIO}#A^D%h3ozQOT2Q{Tb1f0??nY%4a`{XHG9HS#!9;SSwsZn=D%4;E^zEJv3Q zs|O_PFmiu+c7S>CoRHZrw zH+eZI{50J>;_pkuTvB!G(r4O8S|09wTu``lk^37V98EfxC!nYhCShW1;Y3_reBfAM z>qL+Ewz~OPa668^!30Wf1Te`|)p)&E_qLS^B(@oIcE_<Nd_Z+q(;!1%7Iy30(|yY$ zQ?={(Jy$d6LU}Q*sXq>@0za5z$D^;gL&qHJ9ZniX#0y+15!F0Rm}8NiZr&m(ks22z zsR2<(-C2orU4OC%pefq|6SGO9><<_GXy+YQVYGbAbeyb1Ux1In+*32fRp*^2QX3H~=R4h40giOiRZ&`oBOjDXUE}c&elC|wax5mwuIv`biLXcyFQ&j+hbNN&FJ~Elv01n(Pjot|GL{xoP!DO{hhH0elc#gS=%G+GdIfL zt-woTAbfW1L7@Rd#hYo*Slx`kzebaY>$-%e_pT-)MGlO$WT>CeV|M*vVyvAQ*>C|H| zGvU6YS?(@UQwx=4D-6>MT*4nM8*9(B-`n1{^>3rCE>zX!JlPddA{bI>;Mi{hcP(j! z`qC<>{M9f5;U8*yG(OXGC<5xOlmNz7JQT;JGIl*EUw1tGa6j8~PGtP{HTaT9KgO&H z(UdN5=R@BNutK8t4pTzGx zaHc^{vA7V>K8%drf&8=@M{r*aLJ9>^Di<>v5g){XUR(8%@D)4a|$GuMAMvr_z#Y+0M(vbsV`MR(j&>H{)6adAb-2yOx zPi-tkWoWb%6kEj0hs9o~+!%)drUSl_l8~=79&m*>@^h<3FMDo(gsb4g;Dh)K3v#uQ zq*rJlM$DQG{y^w*H1ZjIN-FeH8wzOH(H-!kef^u*q+qFcwXC6kRICJh^!G04QkVl3 zVlm@4XIKbz*zSjX7uscVsicCN!dl(+82l!i^gm>)0=zRPdG!)j8z zXOzOy({Ei;JoAaBCmk9Mi4)zg!f1g5{4y})!#A0u(_D=cAMJGxY;<$g1$}&|4X@V$ z#~H{Ufyga2M%Ss32Qyu#yQ(^Z>|HTi+Ym`>g3!;@7@Co38)~CdUg+zWs6JJ69#%G> z0xKtSH7^^q2XEs*o=dEc#PY}WzYL8@cFk|%#Zmpt(s>VZG08&^idhHOSXGn_aBgbG zAK_A7d#9J+{ig5SC_^o%e9aFmD4_A1{mdidt~0c>g1UsW)>+Wg6|x1!7Fl*X%%OMv z2oUTuFC5v%a64QNg%;`|HqqCZ5Xfsj=WCzwOJcXGRpV0Gm97m~h(`YF)(DuEnx*Y} zkSF5|TCbBwD_Y-srvj>3mMYV&(F!EI%x4~h!h1mdouQK{PC4lEfDg;K#S+XuhrDWE z4LHc8y7`Vj&1hj3y zLUA1rt!9k?Q(C%5s=CM8QP3$_R>{^0TptZNxA2x{*>Cuf}KtUBlpl~ZS z9?Pt2_C8P|=7YB&)otpg(MNcIczAJ2WA^V_!5;fB&o5Fm@6<)Wfu_aFlu07MECJ-~ zS%JGmQ-SU!>`PQxXa!XjJO9s#-UXW0D+HW5>DeV8 zSG;`rAxI%Q6cHF1O+kjCE1oH;C_C1msoJ}ScAc)p7L?;Su|wcFUaCQ9Gi8$+Q2$m? zf;Dw#(PC90gyz||YSGFrlAX_l^Ou22bd+!%%z9K%%D}3G$qM>{TdDYm-zF z%IaH}s_q@HE)t`nqY9D^nyQ_`Yp#ch#=H=|+Cqq!bitv8GR1h)4EI--6C*~5rMk_i zMb<7n8vVWxj4Ed2$Qj1Jxhu_wYgphq0pIQKpHRPKwv4c;+{*7#Ef?~jnqOE+5td~Svq&kXa7{N@ zVo1t@g$xW~3yrk@?HfeT0yZ?18ofl?tE|CM=WE73_9c_=ScP8G9cA-y4%EofPX&G3 zI$p&bK#HmHWP0`v={6q?@D%`CHqF!O97FDsW!K{0cXJuCT^z?d(FZ~*DLOmH z&65LcJFVLDwB=Bsos4GEdhOB(E~ zV@zWL2_X&n+h7Pw+@21QX6gz_>k_CeF3^JtK31H6w-c-`_+C6RZ*T)GaetW$bW(busW)!opz zHoaorJ7I|u!K&6FOSn=b*HhRjj9CVb(~k#;h*8 zNg=Mhn;oDyObUV;INwvaYPNyRRYNIh5I?cc2A-FemjH4_`oC@M2Kk*;3*W1}Z@sa} z{_mA{0GejgfVu<@{Ro`cKvhoedtS2jg?5*Bp}*+l6-adR(+5G1lG?@OX!s zKFRsijzoCuZc8M|HIhtQuI##Y9X^thwxAb42So$Q%PkaBYmu*^4Y={LOwq4O@1406tBu^ZJrA zZdz1~`ZYhFvJ>D=Z%cz!4XF~2-ezk~f&d>9Ov-Y|s|-~XLY~6o!EFUyn-eCzVGC2A zknw8vEPdlY0r?3RT5>u2ccH5zq>*THK9QiPyT8;n?uezQ&21JrlY2=d*FH)?%%? z(tI}a!TTerLk9P6_vFfvw?IEqY|8#|0d`HfjEwOW_9+C5D>YCzQCOEaeqStuFUbG6 zqSrt>FIyAMIq;$T@DOvvUIl@fC=pAGuZqcd#?^CF^Epa}*fKqDsw=;==-eA_v})=0 zIUNZ1u2D)$Y9k6jpCQTwo@J&27+jp5_M`zru9S3^?#fZGg59@`@ka83MQ_pv!w-&c?+ z=YM}HOY$=d|5qH*|H0v)xh8+KI`JigO*NHZ?(?mpT&grZ9Gif{yKt@TRd+Lb4I4qH z+1RV;d>k%8ki^{K3EBHb7=WR!tDQTGa_3->Dey?*PnilW+%XN7bt|Q^j-4WWnAVg z{*$V9KzIxK;c&CSXvVm4UaP@4BUPr{z{(u`ZJ_%jv-;VeM|44bLJvH-G0Y}Y7qHug zs2>%=BC*8B0!3q7!@u2!v0LC4f?MOIK+C+DQh7>4yD!?=OrWi-fI)N^{X*Heg7TBl z^LuI3Xc-kCKe$!oHwgm#ALSse1*XA6RjmF+V=ZSuv)ekA_w3Jd{JKk4)#;SH;q4>O zE-%JXmBO^vtJQrq9%IT$8ct1hgdv{==|B{M=BRJx5t~V6ClgqA1JHc$~BM{=k_K@me2@7Hh z!?w*b=+{uPTEWQJrhB0_R4!!n>Ij`<{{CfK!;(K?&+frA?1$8`}RUkoVgO<>lLdPV6d3SN0bP%QabZ+pCgxEtnM$ zn4AD5NmE58+Rv0Y^)sIWk9zcVo9(!GQh4gxx|ecvSoRQe=z2iHwLkJ2i&F?f2Tzja zZIy4;ImFE$Z?0<^M6AqRipzZdmA_7RCZ6lc+9OfxM)l-Xl-2z!bl%a~6}hIIBNmNW zFQ(9c0Y%rBGl*1dQ~I{zkJsdGTk{-j$HxYEs5yK8L8L|t45rxr{nY06^XX2p@97|M z;u%VgAGM)DSdhs{JMogh(@+;DmzV1 zHU7^`UINe-s8+W0Lys~VJ-qH8*;AeqjS zoVloYBZ^;?UD@dg&ithoc!;mPIl7m- z?L3h`e$d9gGl|w_uln9;m)ooYCp-OLawG@=vu3YsZn%wGQ6C5rd4OZnV8tzB%IM}x zr-VEydU_@9Nf|r5khFVc%yj>s&p0HEtmt=^S{BRKv^M^oy7q)2LGxj2E6IZ%o^RryO`X_gKTp}gnUG9yt zOozUfj)SWud6%EV{tDl&i$`Yb@Shk@kfXsFSI_0Dc>)wtN#N8-g#{B^1i3Ndgm#9J z159b)nW0L^19EkLnSAOBrI|;V-8E`;PBPz>6-XJUR1C-s=avB(I zoac!+7;Dt%s(U7Z(fDej7IkmMzs`(jWZhV$=b-$zO`KqxG;A`J@~8T47FbY&V7L~A zq!Hsz7Ow<#8Y?II=fXetFs200E+g!73EKa3ssDE(mGDOYd;(m>!ODr)2u2$;1?V~U z)9ENH)zZa&HEdfKR~mW@^=2PdR9XiKq{hyqi~qOF9DmU3?h7zDMw8%pOmS*e1)Y^5 zLt2$)y3VzheNH&wdn+$)&*oii6T1m_uIoqjlUH13*4@-p&;IeaYa*k65|A;D`62^f9?I4~@l4HC*> zdnOHkUQ8C`eYjAj(_ho#rSKRG^JrW|zG}WuX+!v4AxR%2SMWH`lnH5 zg5Vgj+>yXhpogk9u#R{FOB3=$szTe~UM@FTS!r(ZhO$_d07VJNk?kn34MEUJYQlOa_Kr)hflzL%(s{;Fv2uaAZcjeU!RZ(X_>Nt@huE zPjd!O^?>?MnPw@lw+&oi7_QVgI1@^RX*RXY$BL&nDud3(CO!nQPMiZ@p)bKlXGV=J zW21K$UT>UV5gI8E!^c_OPhFsr^_2f4;x%w}fre5bu&&*3Gh~ejZnS8dW7pEPw^0%7 zWoO(TLE&E76vKtxK=$iu7czaeUZm-c>mT=eVcVcG&@%z=bU=+jfQ#W8YBLREq?fL> z@mAB!tru*O|Gks;&16DLtR1RPG(Ok0id3M&5S#%RrN7XdbBx`AGMu>>X>Q$Bxr)^rwN)efsXKoHJ-J8~2|Bii9OGXMYWi1I^ zbthI%g>%2>p=JagduNhLO_#wt+9rOKiY3a>cXk|6jai5fSp=mWQcVBNTww~lS;F) zRac!Eli=H!8!Ocdj*((vYScL(E##u0R(Ubk1>HYBt5zXz~`XYa59J8zT z^^phr&kwnKI(TyTRmiliCIm4Ctmo;Ly3(?Yf@1Ad2EX)j)Y?x);kmBG1b@wOt^;ws zU?6&X;BsAkZpunk8Q{!h*n5M%d(Np4CkHb%AT;Y+s%@;~IK&5xN13j4f98s;r|(=$ zaFMN5H(6qO7mK!6f#8O(e4WyhkXcNz9mprZaDi=5a~iQg^ZMZ%Db#cs$>X*>*(GJ% z^>bh#y|VgShDmgt%2#0I3QL#&40}`7R4}x>RR$PGI|~NXfES>2W{t59S&g_8kA=mY ze78PkxB?#EU?r*=PKPmD)mMLkJWwk5sF$EWdjw3`71j-8jWZjEJZF6YKi2eD9(t}I z(v|6-W%+HJM_a8fzKRx&@qA%_0xZH25!u=X;TwSRXFJ!PAMnn7UL6tIxY-A|Q5 z%|D_=T}tF2le?cD{rP43Beh^ax#5uc3-B-n@H2n1T?iy^4szlo6pA@jAk)MQ=_4yJ z%57!;aeSMO+|sLBG5sd!aWqdy-aI&$v5SbwmN~+WP}lbu+s(wt)(?<&9EQbD*txB@ z-h+s<_K7NtoFAAA1g2t83Eo}V<@O?4C{J*AhS*g0P!=0dzhFRyVE~KgiZj3f@0JLGo1K`~!sOJR`5ix;tSr=9c!%>TOyzKE0PVJzOy7<;o#J zp7)P?(t`sts+Gl}H-a?6mvM|j7(?bgw~PwjqQ;?Xm9 znc+mJu3Y&|f$1Tgsc>XHUYIObUq21xw>`|2=rE2F7sbqcOr_wXSHjo#wXjAdt#1M z;Hr__ohjo@3jB$cbukg5ZK_5EjC75TKTGbGGt1F3FQ~zf-Li0^ufMIpj~v?SlRMBk z`W#SCt*fwZDeiSIC9!)!`z9QWUm@WmVDjkB!UgTEtdD6w;? zp-N1}vAN`pmO?R8ls+XkEEmxf9c=V)*HB`7@!9LM3Jg7$*2`Dh(DJD#zYBYoBQtGq4kOR@_yyiGJTaU?c6*^ zl|V>vD_toj2H_3n~Mx9NvUo^V@&A`%T@U)LZmH_9x;rMlLEwAEt`k%DaMeZu+-$bkR6y872K45qUk?h}q3qgP>$G2zA zLSn~l^GKE%(Ka3($4331PvDh;0$hB&x4%|qRYfChA|;Z%avI#?8?6xmX{&vIx$v25 z`T7Ez?8?u5dU3zvWZb!0tJ`^c&BmX9*_JT)_G1Qqn?Q{-RsW^#sezo;jveIrV~HQB zLjofg(@)u(qG%6F{k2u@pLB-3hL-bIaNapK;rL{o@%ZYXKzN{p=%^GlnBJbNkF{Im z5_~hZAhv2fo0fSf`B4=5#0nIrYwTlQUPX}YKKkHNv){{yX@L26fKrWfIz^jw3>=)& z`>F1d#0x?o6Y-n3I|mJ{6#e_z*aK{2&dG!8??%6JVoYEEntQUSaT=}hmC!4x`jC?e zQv6g4@p34bJ)j)W&gsb^uslvqjka|}GPvB&#&D*8?OsI}d@M_-IM`#T)!^DY4<{X= zq#|?HZKLyR=u<91EK3jvYV?^oob5^DcS z$WD=askIS-)_5)%`qAQX_dl7@lhk`1`^F8Pm(3EkU{)E^K2sdDtm#E1#Qk+a+yLo- zC)H1Voa(nTYb+Fq`z88rU%-R)YTSkokN>~^RI>Hme_M$D?w*l?uZREmbJQ%~5pm`v zJEd~E^pxIwe?=^$SK=p)xK%uX<;3H+i{*b#XO=!L^wdWjZ~uE~$KWHH^GW(dpV~Af zCGtJc^+T$Fu8DpQpR*%K07PJ4` zbfCrkOxmy(GPam^+CTaQP%&_f& z+8`Y=rJ8>$HNn=Ik}QMIwDkMyFW1EWFLt8H0?HHq4xv8^4)+Odaz5DCr`~=Yeg1Af zYA;&vw5H^LUMT~Y*SG;I?ZSvq|2}O62g!8& zN7rCfB;t=b4qpkfuGCrZ@N-5QiMV0Dm%~qr5sVy-`My=^jZKh|o_t4ny)$`DWlv0H z%gW(|QA2;`;iT3-{(JRh;3Da$OiMToijyz6vDoxuM&;XT`rmu59|n=HaWy1Yv}cO5 z(xv_l;_AQKd}^Hgwr`|Y#X_dEWBUY#4h@?kZ5t*GeQ3!t_FNinPk;Zv%NSVcxveBy z9!|N_1So7+5%UiLaVtXuFPOA^13D!Le{{9jMYP8Is4hBj-@-(I_X z`0oGhbN&3pIPQ(472FG{t-I6L_f9m@yjr$)`vp=1FUZl1NS`L79Hxvq8b^7o1 zp!~*<(j8|PY;#o?{CNJ@vw7(jkfmr)D-KBSEnc*syu3HQ>2zE3tt3Ig(_GIYjxU-U zh@58_UMZ|<{kK&HxajeSFKcm5_O%;(_|a111rcC~tasV!-y7S$>E_pB7a#2zOS#v! zo<+_34W^x03;A?&t92dUzC3W~+_Xivmb00^MvgXyFMc81r8_cHqTkvmsWJChi3@%N z77qCrgBnnRCxACl_sZi%pRx_l^KR|tO1s&b$!x4AJyRI!H!!upYEjgRsFU+ z+qCqX3urkw0&I|+owZO;b;h4bjH$fm+(oX4@r&kj+XqN*X7|hNCV)ra7 z1J*_!oBP?8&jNTOUvYqR_|Ke%`Sa^YHYqeFZFOI3itM5Ep_UYAfyFI_& iD?!$#!<4=8cKO4d5r5vWM Date: Sat, 2 Dec 2023 06:16:13 -0800 Subject: [PATCH 12/20] fix: Update Arktype for Buildings (#814) Co-authored-by: Aponia --- apps/antalmanac/tests/custom-events.test.ts | 18 ++++++++++++++++++ apps/backend/src/db/ddb.ts | 10 +++++++++- packages/types/src/customevent.ts | 2 +- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 apps/antalmanac/tests/custom-events.test.ts diff --git a/apps/antalmanac/tests/custom-events.test.ts b/apps/antalmanac/tests/custom-events.test.ts new file mode 100644 index 000000000..0ce066eef --- /dev/null +++ b/apps/antalmanac/tests/custom-events.test.ts @@ -0,0 +1,18 @@ +import { describe, test, expect } from 'vitest'; +import { RepeatingCustomEvent, RepeatingCustomEventSchema } from '@packages/antalmanac-types'; + +describe('Custom Events', () => { + const customEvent: RepeatingCustomEvent = { + title: 'placeHoldertitle', + start: '10:30', + end: '13:30', + days: [false, false, true, false, false, false, false], + customEventID: 999, + color: 'placeholderColor', + building: undefined, + }; + + test('schema does not throw error when building property exists and is undefined', async () => { + expect(() => RepeatingCustomEventSchema.assert(customEvent)).not.toThrowError(); + }); +}); diff --git a/apps/backend/src/db/ddb.ts b/apps/backend/src/db/ddb.ts index 9c17ef205..da5278f2b 100644 --- a/apps/backend/src/db/ddb.ts +++ b/apps/backend/src/db/ddb.ts @@ -10,7 +10,15 @@ const client = new DynamoDB({ }); // Create DynamoDB DocumentClient -const documentClient = DynamoDBDocument.from(client); +const documentClient = DynamoDBDocument.from(client, { + marshallOptions: { + /** + * Some JSON properties may exist and be undefined; DDB will throw an error unless this is true. + * @example { "property": undefined } + */ + removeUndefinedValues: true, + }, +}); const TABLENAME = env.USERDATA_TABLE_NAME; diff --git a/packages/types/src/customevent.ts b/packages/types/src/customevent.ts index 0acd3b47f..415e9cbf3 100644 --- a/packages/types/src/customevent.ts +++ b/packages/types/src/customevent.ts @@ -7,7 +7,7 @@ export const RepeatingCustomEventSchema = type({ days: 'boolean[]', customEventID: 'number | parsedNumber', 'color?': 'string', - 'building?': 'string', + 'building?': 'string | undefined', }); export type RepeatingCustomEvent = typeof RepeatingCustomEventSchema.infer; From b928fb80f7d34f13234924b171fe483e22184d5d Mon Sep 17 00:00:00 2001 From: Aponia Date: Sat, 2 Dec 2023 14:00:25 -0800 Subject: [PATCH 13/20] fix: typescript errors (#823) --- apps/antalmanac/package.json | 1 + apps/antalmanac/src/actions/AppStoreActions.ts | 2 +- apps/antalmanac/src/lib/zotcourse.ts | 2 +- apps/antalmanac/src/stores/AppStore.ts | 3 +-- apps/antalmanac/src/stores/Schedules.ts | 2 +- apps/antalmanac/src/stores/calendarizeHelpers.ts | 2 +- apps/antalmanac/tests/calendarize-helpers.test.ts | 3 +-- apps/antalmanac/tests/download-ics.test.ts | 2 -- pnpm-lock.yaml | 7 +++++++ 9 files changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/antalmanac/package.json b/apps/antalmanac/package.json index fb29c0dd6..ba8f78d85 100644 --- a/apps/antalmanac/package.json +++ b/apps/antalmanac/package.json @@ -82,6 +82,7 @@ "@types/react-dom": "^18.0.10", "@types/react-input-mask": "^3.0.2", "@types/react-lazyload": "^3.2.0", + "@types/ua-parser-js": "^0.7.39", "@typescript-eslint/eslint-plugin": "^5.54.1", "@typescript-eslint/parser": "^5.54.1", "@vitejs/plugin-react": "^4.0.4", diff --git a/apps/antalmanac/src/actions/AppStoreActions.ts b/apps/antalmanac/src/actions/AppStoreActions.ts index d421f4190..7f4da1faa 100644 --- a/apps/antalmanac/src/actions/AppStoreActions.ts +++ b/apps/antalmanac/src/actions/AppStoreActions.ts @@ -3,8 +3,8 @@ import { VariantType } from 'notistack'; import { TRPCError } from '@trpc/server'; import { WebsocSection } from 'peterportal-api-next-types'; import { ScheduleCourse } from '@packages/antalmanac-types'; +import { RepeatingCustomEvent } from '@packages/antalmanac-types'; import { SnackbarPosition } from '$components/NotificationSnackbar'; -import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import analyticsEnum, { logAnalytics } from '$lib/analytics'; import { warnMultipleTerms } from '$lib/helpers'; import { CourseDetails } from '$lib/course_data.types'; diff --git a/apps/antalmanac/src/lib/zotcourse.ts b/apps/antalmanac/src/lib/zotcourse.ts index 9d89c5912..276dd1600 100644 --- a/apps/antalmanac/src/lib/zotcourse.ts +++ b/apps/antalmanac/src/lib/zotcourse.ts @@ -1,5 +1,5 @@ +import { RepeatingCustomEvent } from '@packages/antalmanac-types'; import trpc from './api/trpc'; -import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import AppStore from '$stores/AppStore'; export interface ZotCourseResponse { diff --git a/apps/antalmanac/src/stores/AppStore.ts b/apps/antalmanac/src/stores/AppStore.ts index 935083cff..ba0e3acec 100644 --- a/apps/antalmanac/src/stores/AppStore.ts +++ b/apps/antalmanac/src/stores/AppStore.ts @@ -1,11 +1,10 @@ import { EventEmitter } from 'events'; import { VariantType } from 'notistack'; -import { ScheduleCourse, ScheduleSaveState } from '@packages/antalmanac-types'; +import { ScheduleCourse, ScheduleSaveState, RepeatingCustomEvent } from '@packages/antalmanac-types'; import { Schedules } from './Schedules'; import { SnackbarPosition } from '$components/NotificationSnackbar'; import { CalendarEvent, CourseEvent } from '$components/Calendar/CourseCalendarEvent'; -import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import { useTabStore } from '$stores/TabStore'; class AppStore extends EventEmitter { diff --git a/apps/antalmanac/src/stores/Schedules.ts b/apps/antalmanac/src/stores/Schedules.ts index 0ecabbdf2..a2c3c8114 100644 --- a/apps/antalmanac/src/stores/Schedules.ts +++ b/apps/antalmanac/src/stores/Schedules.ts @@ -4,9 +4,9 @@ import { ScheduleSaveState, ScheduleUndoState, ShortCourseSchedule, + RepeatingCustomEvent, } from '@packages/antalmanac-types'; import { calendarizeCourseEvents, calendarizeCustomEvents, calendarizeFinals } from './calendarizeHelpers'; -import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import type { CourseInfo } from '$lib/course_data.types'; import { getColorForNewSection } from '$stores/scheduleHelpers'; import WebSOC from '$lib/websoc'; diff --git a/apps/antalmanac/src/stores/calendarizeHelpers.ts b/apps/antalmanac/src/stores/calendarizeHelpers.ts index 8d36dcbe1..2e7733e40 100644 --- a/apps/antalmanac/src/stores/calendarizeHelpers.ts +++ b/apps/antalmanac/src/stores/calendarizeHelpers.ts @@ -1,7 +1,7 @@ import { ScheduleCourse } from '@packages/antalmanac-types'; import { HourMinute } from 'peterportal-api-next-types'; +import { RepeatingCustomEvent } from '@packages/antalmanac-types'; import { CourseEvent, CustomEvent, Location } from '$components/Calendar/CourseCalendarEvent'; -import { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; import { notNull, getReferencesOccurring } from '$lib/utils'; export const COURSE_WEEK_DAYS = ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa']; diff --git a/apps/antalmanac/tests/calendarize-helpers.test.ts b/apps/antalmanac/tests/calendarize-helpers.test.ts index eb928d6b1..622794d44 100644 --- a/apps/antalmanac/tests/calendarize-helpers.test.ts +++ b/apps/antalmanac/tests/calendarize-helpers.test.ts @@ -1,6 +1,5 @@ import { describe, test, expect } from 'vitest'; -import type { Schedule } from '@packages/antalmanac-types'; -import type { RepeatingCustomEvent } from '$components/Calendar/Toolbar/CustomEventDialog/CustomEventDialog'; +import type { Schedule, RepeatingCustomEvent } from '@packages/antalmanac-types'; import { calendarizeCourseEvents, calendarizeCustomEvents, calendarizeFinals } from '$stores/calendarizeHelpers'; import type { CourseEvent, CustomEvent } from '$components/Calendar/CourseCalendarEvent'; diff --git a/apps/antalmanac/tests/download-ics.test.ts b/apps/antalmanac/tests/download-ics.test.ts index f07b36289..ab70afcae 100644 --- a/apps/antalmanac/tests/download-ics.test.ts +++ b/apps/antalmanac/tests/download-ics.test.ts @@ -1,5 +1,3 @@ -import { EventAttributes } from 'ics'; -import type { Schedule } from '@packages/antalmanac-types'; import { describe, test, expect } from 'vitest'; import { getEventsFromCourses } from '$lib/download'; import { CalendarEvent } from '$components/Calendar/CourseCalendarEvent'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3813ec6b..273195ea0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -214,6 +214,9 @@ importers: '@types/react-lazyload': specifier: ^3.2.0 version: 3.2.0 + '@types/ua-parser-js': + specifier: ^0.7.39 + version: 0.7.39 '@typescript-eslint/eslint-plugin': specifier: ^5.54.1 version: 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.37.0)(typescript@4.9.5) @@ -3393,6 +3396,10 @@ packages: '@types/react': 18.0.28 dev: false + /@types/ua-parser-js@0.7.39: + resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + dev: true + /@types/warning@3.0.0: resolution: {integrity: sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==} dev: false From 75fd50ff74208bea54de39ff14c7df4500c6ed5b Mon Sep 17 00:00:00 2001 From: Kevin Wu Date: Sun, 3 Dec 2023 18:12:43 -0800 Subject: [PATCH 14/20] feat: Create Snackbar When Copying Schedules (#811) Co-authored-by: Aponia --- .../antalmanac/src/actions/AppStoreActions.ts | 14 ++++++++-- .../AddedCourses/AddedCoursePane.tsx | 27 +++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/apps/antalmanac/src/actions/AppStoreActions.ts b/apps/antalmanac/src/actions/AppStoreActions.ts index 7f4da1faa..4b0ba2e45 100644 --- a/apps/antalmanac/src/actions/AppStoreActions.ts +++ b/apps/antalmanac/src/actions/AppStoreActions.ts @@ -12,6 +12,11 @@ import AppStore from '$stores/AppStore'; import trpc from '$lib/api/trpc'; import { courseNumAsDecimal } from '$lib/analytics'; +export interface CopyScheduleOptions { + onSuccess: (index: number) => unknown; + onError: (index: number) => unknown; +} + export const addCourse = ( section: WebsocSection, courseDetails: CourseDetails, @@ -181,13 +186,18 @@ export const changeCourseColor = (sectionCode: string, term: string, newColor: s AppStore.changeCourseColor(sectionCode, term, newColor); }; -export const copySchedule = (to: number) => { +export const copySchedule = (to: number, options?: CopyScheduleOptions) => { logAnalytics({ category: analyticsEnum.addedClasses.title, action: analyticsEnum.addedClasses.actions.COPY_SCHEDULE, }); - AppStore.copySchedule(to); + try { + AppStore.copySchedule(to); + options?.onSuccess(to); + } catch (error) { + options?.onError(to); + } }; export const addSchedule = (scheduleName: string) => { diff --git a/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx b/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx index bc976797c..e56f8f65c 100644 --- a/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx +++ b/apps/antalmanac/src/components/RightPane/AddedCourses/AddedCoursePane.tsx @@ -5,12 +5,13 @@ import { Box, Chip, IconButton, Menu, MenuItem, Paper, SxProps, TextField, Toolt import { ContentCopy, DeleteOutline } from '@mui/icons-material'; import { AACourse } from '@packages/antalmanac-types'; +import { useSnackbar } from 'notistack'; import { ColumnToggleButton } from '../CoursePane/CoursePaneButtonRow'; import SectionTableLazyWrapper from '../SectionTable/SectionTableLazyWrapper'; import CustomEventDetailView from './CustomEventDetailView'; import AppStore from '$stores/AppStore'; import analyticsEnum, { logAnalytics } from '$lib/analytics'; -import { clearSchedules, copySchedule, updateScheduleNote } from '$actions/AppStoreActions'; +import { CopyScheduleOptions, clearSchedules, copySchedule, updateScheduleNote } from '$actions/AppStoreActions'; import { clickToCopy } from '$lib/helpers'; /** @@ -88,9 +89,9 @@ function handleClear() { } } -function createCopyHandler(index: number) { +function createCopyHandler(index: number, options: CopyScheduleOptions) { return () => { - copySchedule(index); + copySchedule(index, options); }; } @@ -106,6 +107,20 @@ function ClearScheduleButton() { function CopyScheduleButton() { const [scheduleNames, setScheduleNames] = useState(AppStore.getScheduleNames()); + const { enqueueSnackbar } = useSnackbar(); + + const options = useMemo(() => { + return { + onSuccess: (index: number) => { + const name = index === scheduleNames.length ? 'All Schedules' : scheduleNames[index]; + enqueueSnackbar(`Schedule copied to ${name}.`, { variant: 'success' }); + }, + onError: (index: number) => { + const name = index === scheduleNames.length ? 'All Schedules' : scheduleNames[index]; + enqueueSnackbar(`Could not copy schedule to ${name}.`, { variant: 'error' }); + }, + }; + }, [enqueueSnackbar, scheduleNames]); useEffect(() => { /** @@ -136,12 +151,14 @@ function CopyScheduleButton() { Copy to {name} ))} - Copy to All Schedules + + Copy to All Schedules + )} From 3da2adf3ae7ccad979d9bde0c8040a34a7f53c85 Mon Sep 17 00:00:00 2001 From: Junping Luo <53324036+JacE070@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:36:52 -0800 Subject: [PATCH 15/20] Fix the duplicate calendar events bug (#818) --- apps/antalmanac/src/lib/download.ts | 83 ++++++++++--------- apps/antalmanac/src/stores/AppStore.ts | 4 + .../src/stores/calendarizeHelpers.ts | 14 +++- .../__snapshots__/download-ics.test.ts.snap | 2 +- apps/antalmanac/tests/download-ics.test.ts | 33 ++++++++ 5 files changed, 94 insertions(+), 42 deletions(-) diff --git a/apps/antalmanac/src/lib/download.ts b/apps/antalmanac/src/lib/download.ts index abcbade2a..8a4cd8649 100644 --- a/apps/antalmanac/src/lib/download.ts +++ b/apps/antalmanac/src/lib/download.ts @@ -45,6 +45,10 @@ export const vTimeZoneSection = 'END:VTIMEZONE\n' + 'BEGIN:VEVENT'; +export const CALENDAR_ID = 'antalmanac/ics'; + +export const CALENDAR_OUTPUT = 'local' as const; + /** * @example [YEAR, MONTH, DAY, HOUR, MINUTE] */ @@ -247,7 +251,7 @@ export function getRRule(bydays: string[], quarter: string) { return `FREQ=WEEKLY;BYDAY=${bydays.toString()};INTERVAL=1;COUNT=${count}`; } -export function getEventsFromCourses(events = AppStore.getEventsInCalendar()): EventAttributes[] { +export function getEventsFromCourses(events = AppStore.getEventsWithFinalsInCalendar()): EventAttributes[] { const calendarEvents = events.flatMap((event) => { if (event.isCustomEvent) { // FIXME: We don't have a way to get the term for custom events, @@ -278,48 +282,49 @@ export function getEventsFromCourses(events = AppStore.getEventsInCalendar()): E const { term, title, courseTitle, instructors, sectionType, start, end, finalExam } = event; const courseEvents: EventAttributes[] = event.locations .map((location) => { - if (location.days === undefined) return null; + if (location.days === undefined) { + return null; + } const days = getByDays(location.days); - const classStartDate = getClassStartDate(term, days); - - const [firstClassStart, firstClassEnd] = getFirstClass( - classStartDate, - { hour: start.getHours(), minute: start.getMinutes() }, - { hour: end.getHours(), minute: end.getMinutes() } - ); - - const rrule = getRRule(days, getQuarter(term)); - - // Add VEvent to events array. - return { - productId: 'antalmanac/ics', - startOutputType: 'local' as const, - endOutputType: 'local' as const, - title: `${title} ${sectionType}`, - description: `${courseTitle}\nTaught by ${instructors.join('/')}`, - location: `${location.building} ${location.room}`, - start: firstClassStart, - end: firstClassEnd, - recurrenceRule: rrule, - }; + const [finalStart, finalEnd] = getExamTime(finalExam, getYear(term)); + + if (sectionType === 'Fin') { + return { + productId: CALENDAR_ID, + startOutputType: CALENDAR_OUTPUT, + endOutputType: CALENDAR_OUTPUT, + title: `${title} Final Exam`, + description: `Final Exam for ${courseTitle}`, + start: finalStart!, + end: finalEnd!, + }; + } else { + const classStartDate = getClassStartDate(term, days); + + const [firstClassStart, firstClassEnd] = getFirstClass( + classStartDate, + { hour: start.getHours(), minute: start.getMinutes() }, + { hour: end.getHours(), minute: end.getMinutes() } + ); + + const rrule = getRRule(days, getQuarter(term)); + + // Add VEvent to events array. + return { + productId: 'antalmanac/ics', + startOutputType: 'local' as const, + endOutputType: 'local' as const, + title: `${title} ${sectionType}`, + description: `${courseTitle}\nTaught by ${instructors.join('/')}`, + location: `${location.building} ${location.room}`, + start: firstClassStart, + end: firstClassEnd, + recurrenceRule: rrule, + }; + } }) .filter(notNull); - - // Add final to events. - if (finalExam.examStatus === 'SCHEDULED_FINAL') { - if (finalExam.startTime && finalExam.endTime) { - courseEvents.push({ - productId: 'antalmanac/ics', - startOutputType: 'local' as const, - endOutputType: 'local' as const, - title: `${title} Final Exam`, - description: `Final Exam for ${sectionType} ${courseTitle}`, - start: getExamTime(finalExam, getYear(term))[0]!, - end: getExamTime(finalExam, getYear(term))[1]!, - }); - } - } return courseEvents; } }); diff --git a/apps/antalmanac/src/stores/AppStore.ts b/apps/antalmanac/src/stores/AppStore.ts index ba0e3acec..36f453891 100644 --- a/apps/antalmanac/src/stores/AppStore.ts +++ b/apps/antalmanac/src/stores/AppStore.ts @@ -82,6 +82,10 @@ class AppStore extends EventEmitter { return this.schedule.getCalendarizedEvents(); } + getEventsWithFinalsInCalendar() { + return [...this.schedule.getCalendarizedEvents(), ...this.schedule.getCalendarizedFinals()]; + } + getCourseEventsInCalendar() { return this.schedule.getCalendarizedCourseEvents(); } diff --git a/apps/antalmanac/src/stores/calendarizeHelpers.ts b/apps/antalmanac/src/stores/calendarizeHelpers.ts index 2e7733e40..68cce8263 100644 --- a/apps/antalmanac/src/stores/calendarizeHelpers.ts +++ b/apps/antalmanac/src/stores/calendarizeHelpers.ts @@ -49,7 +49,10 @@ export function calendarizeCourseEvents(currentCourses: ScheduleCourse[] = []): title: `${course.deptCode} ${course.courseNumber}`, courseTitle: course.courseTitle, locations: meeting.bldg.map(getLocation).map((location: Location) => { - return { ...location, days: meeting.days === null ? undefined : meeting.days }; + return { + ...location, + ...(meeting.days && { days: COURSE_WEEK_DAYS[dayIndex] }), + }; }), showLocationInfo: false, instructors: course.section.instructors, @@ -99,12 +102,19 @@ export function calendarizeFinals(currentCourses: ScheduleCourse[] = []): Course */ const dayIndicesOcurring = weekdaysOccurring.map((day, index) => (day ? index : undefined)).filter(notNull); + const locationsWithNoDays = bldg ? bldg.map(getLocation) : course.section.meetings[0].bldg.map(getLocation); + return dayIndicesOcurring.map((dayIndex) => ({ color: course.section.color, term: course.term, title: `${course.deptCode} ${course.courseNumber}`, courseTitle: course.courseTitle, - locations: bldg ? bldg.map(getLocation) : course.section.meetings[0].bldg.map(getLocation), + locations: locationsWithNoDays.map((location: Location) => { + return { + ...location, + days: COURSE_WEEK_DAYS[dayIndex], + }; + }), showLocationInfo: true, instructors: course.section.instructors, sectionCode: course.section.sectionCode, diff --git a/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap b/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap index 32bab2a46..d5672bc77 100644 --- a/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap +++ b/apps/antalmanac/tests/__snapshots__/download-ics.test.ts.snap @@ -27,7 +27,7 @@ Taught by placeholderInstructor1/placeholderInstructor2", "title": "placeholderDeptCode placeholderCourseNumber placeholderSectionType", }, { - "description": "Final Exam for placeholderSectionType placeholderCourseTitle", + "description": "Final Exam for placeholderCourseTitle", "end": [ 2023, 3, diff --git a/apps/antalmanac/tests/download-ics.test.ts b/apps/antalmanac/tests/download-ics.test.ts index ab70afcae..bdb5aeac1 100644 --- a/apps/antalmanac/tests/download-ics.test.ts +++ b/apps/antalmanac/tests/download-ics.test.ts @@ -13,6 +13,8 @@ describe('download-ics', () => { title: 'placeholderDeptCode placeholderCourseNumber', locations: [{ building: 'placeholderLocation', room: 'placeholderRoom', days: 'MWF' }], showLocationInfo: true, + // We don't use finalExam anymore for calendar file export, + // instead, FinalExamEvent is used finalExam: { examStatus: 'SCHEDULED_FINAL', dayOfWeek: 'Mon', @@ -35,6 +37,36 @@ describe('download-ics', () => { sectionType: 'placeholderSectionType', term: '2023 Fall', // Cannot be a random placeholder; it has to be in `quarterStartDates` otherwise it'll be undefined }, + // FinalExamEvent + { + color: 'placeholderColor', + start: new Date(2023, 9, 29, 1, 2), + end: new Date(2023, 9, 29, 3, 4), + title: 'placeholderDeptCode placeholderCourseNumber', + locations: [{ building: 'placeholderLocation', room: 'placeholderRoom', days: 'MWF' }], + showLocationInfo: true, + finalExam: { + examStatus: 'SCHEDULED_FINAL', + dayOfWeek: 'Mon', + month: 2, + day: 3, + startTime: { + hour: 1, + minute: 2, + }, + endTime: { + hour: 3, + minute: 4, + }, + locations: [{ building: 'placeholderFinalLocation', room: 'placeholderFinalRoom' }], + }, + courseTitle: 'placeholderCourseTitle', + instructors: ['placeholderInstructor1', 'placeholderInstructor2'], + isCustomEvent: false, + sectionCode: 'placeholderSectionCode', + sectionType: 'Fin', + term: '2023 Fall', // Cannot be a random placeholder; it has to be in `quarterStartDates` otherwise it'll be undefined + }, // CustomEvent { color: 'placeholderColor', @@ -44,6 +76,7 @@ describe('download-ics', () => { customEventID: 123, isCustomEvent: true, days: ['M', 'W', 'F'], + building: 'placeholderCustomEventBuilding', }, ]; From 0e5487f0db41692509b95f061eb04f13fd3ef74f Mon Sep 17 00:00:00 2001 From: Eric Pedley Date: Tue, 5 Dec 2023 13:31:48 -0800 Subject: [PATCH 16/20] Put in logo for PWA (#833) --- apps/antalmanac/public/logo.png | Bin 66502 -> 25814 bytes apps/antalmanac/public/manifest.json | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/antalmanac/public/logo.png b/apps/antalmanac/public/logo.png index 12870507610449e1abfd9ed0b0dcf5c15c900936..4f52e8db6460b1f4cfc8b49ca90452b83bede856 100644 GIT binary patch literal 25814 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 WEgzP@0p5540x8L<$(BePef$rGKB6-K literal 66502 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 bDFm{b^sMAV>MYCSA61Z1eP1PI`uYC>9nDvl diff --git a/apps/antalmanac/public/manifest.json b/apps/antalmanac/public/manifest.json index 5191c82a1..9d029ca91 100644 --- a/apps/antalmanac/public/manifest.json +++ b/apps/antalmanac/public/manifest.json @@ -3,9 +3,9 @@ "name": "Antalmanac", "icons": [ { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" + "src": "logo.png", + "sizes": "512x512", + "type": "image/png" } ], "start_url": "./index.html", From 352f5269cd42e3d91447914cb18098b234bd23f9 Mon Sep 17 00:00:00 2001 From: Kevin Wu Date: Thu, 7 Dec 2023 11:07:51 -0800 Subject: [PATCH 17/20] test: Add setup file, handle matchMedia (#831) --- apps/antalmanac/tests/setup/setup.ts | 15 +++++++++++++++ apps/antalmanac/vite.config.ts | 4 ++++ 2 files changed, 19 insertions(+) create mode 100644 apps/antalmanac/tests/setup/setup.ts diff --git a/apps/antalmanac/tests/setup/setup.ts b/apps/antalmanac/tests/setup/setup.ts new file mode 100644 index 000000000..69b8ee9c2 --- /dev/null +++ b/apps/antalmanac/tests/setup/setup.ts @@ -0,0 +1,15 @@ +import { vi } from 'vitest'; + +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: vi.fn().mockImplementation((query) => ({ + matches: false, + media: query, + onchange: null, + addListener: vi.fn(), // deprecated + removeListener: vi.fn(), // deprecated + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), + })), +}); diff --git a/apps/antalmanac/vite.config.ts b/apps/antalmanac/vite.config.ts index 3f0fff255..4ff616641 100644 --- a/apps/antalmanac/vite.config.ts +++ b/apps/antalmanac/vite.config.ts @@ -23,4 +23,8 @@ export default defineConfig({ server: { host: 'localhost', }, + test: { + environment: 'jsdom', + setupFiles: [resolve(__dirname, 'tests/setup/setup.ts')], + }, }); From c49c3f6bd0ecbaf5e4660750e108de2e9ca4e761 Mon Sep 17 00:00:00 2001 From: Dalton Adcock Date: Thu, 7 Dec 2023 11:11:30 -0800 Subject: [PATCH 18/20] Title Includes "UCI Schedule Planner" (#837) --- apps/antalmanac/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/antalmanac/index.html b/apps/antalmanac/index.html index 39ee249e7..9ff7d5e70 100644 --- a/apps/antalmanac/index.html +++ b/apps/antalmanac/index.html @@ -68,7 +68,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - AntAlmanac + AntAlmanac — UCI Schedule Planner From 42c5017a8e941bd6b9658df072219c0dde01293a Mon Sep 17 00:00:00 2001 From: Rayan Tighiouart <88558727+tig-github@users.noreply.github.com> Date: Fri, 22 Dec 2023 17:57:11 -0800 Subject: [PATCH 19/20] feat: Add warning text to save modal (#846) --- .../src/components/Header/LoadSaveFunctionality.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx b/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx index 28941297b..d479f800c 100644 --- a/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx +++ b/apps/antalmanac/src/components/Header/LoadSaveFunctionality.tsx @@ -99,13 +99,16 @@ class LoadSaveButtonBase extends PureComponent{this.props.actionName} - Enter your username here to {this.props.actionName.toLowerCase()} your schedule. + Enter your unique user ID here to {this.props.actionName.toLowerCase()} your schedule. + + + Make sure the user ID is unique and secret, or someone else can overwrite your schedule. Date: Thu, 28 Dec 2023 23:22:55 -0800 Subject: [PATCH 20/20] chore: update meta tags (#850) --- apps/antalmanac/index.html | 10 +++++----- apps/antalmanac/public/index.html | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/antalmanac/index.html b/apps/antalmanac/index.html index 9ff7d5e70..716ad4193 100644 --- a/apps/antalmanac/index.html +++ b/apps/antalmanac/index.html @@ -23,15 +23,15 @@ - + - + @@ -40,7 +40,7 @@ @@ -68,7 +68,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - AntAlmanac — UCI Schedule Planner + AntAlmanac - UCI Schedule Planner diff --git a/apps/antalmanac/public/index.html b/apps/antalmanac/public/index.html index a8690f7bf..8ba783009 100644 --- a/apps/antalmanac/public/index.html +++ b/apps/antalmanac/public/index.html @@ -23,15 +23,15 @@ - + - + @@ -40,7 +40,7 @@