diff --git a/flow.txt b/flow.txt index 342d65c..a0b0e27 100644 --- a/flow.txt +++ b/flow.txt @@ -1,70 +1,81 @@ -User -├── Admin -├── Teacher -└── Student - │ - ├── ParentStudent - │ │ - │ └── Parent - │ - └── Enrollment - │ - ├── AcademicYear - ├── Class - │ │ - │ └── Grade - │ - ├── Attendance - └── Result - │ - ├── Exam - └── Assignment - -Teacher - │ - └── TeachingAssignment - │ - ├── Subject - ├── Class - ├── AcademicYear - ├── Timetable - ├── Exam - └── Assignment - - - -Authentication (Better Auth) -──────────────────────────── -User -Session -Account -Verification - - │ - │ 1:1 - ▼ - -School Domain -──────────────────────────── -Admin -Teacher -Student - -Parent -ParentStudent - -AcademicYear -Grade -Class -Enrollment - -Subject -TeachingAssignment -Timetable - -Attendance -Assignment -Exam -Result - -Announcement \ No newline at end of file + +1. Core Identity: The User Model +Everything starts with a central User, which is then extended into specific roles. + + 1 +---------+ + 2 | User | + 3 +---------+ + 4 / | \ + 5 / | \ + 6 (1-to-1) / | \ (1-to-1) + 7 / | \ + 8 v v v + 9 +---------+ +---------+ +---------+ + 10 | Admin | | Teacher | | Student | + 11 +---------+ +---------+ +---------+ +--- + + 2. Main Entities at a Glance + + * People: Teacher, Student, Parent + * Structure: AcademicYear, Class, Subject + + --- + + 3. The Junctions: How Everything Connects + + Enrollment and TeachingAllocation are the most important models. They are the "glue" that holds the system together. + + A) The Enrollment Flow + This model answers the question: "Which student is in which class for which year?" + + 1 +--------------+ + 2 | AcademicYear | + 3 +--------------+ + 4 | + 5 | links to + 6 v + 7 +----------------+ +---------+ + 8 | Enrollment | <----| Student | + 9 |----------------| +---------+ + 10 | academicYearId | + 11 | classId | + 12 | studentId | +-------+ + 13 +----------------+ ---->| Class | + 14 +-------+ + + B) The TeachingAllocation Flow + This model answers the question: "Which teacher is teaching which subject in which class for which year?" + + 1 +--------------+ + 2 | AcademicYear | + 3 +--------------+ + 4 | + 5 | links to + 6 v + 7 +----------------------+ +---------+ + 8 | TeachingAllocation |<----| Teacher | + 9 |----------------------| +---------+ + 10 | academicYearId | + 11 | classId | + 12 | subjectId | +-------+ + 13 | teacherId |--->| Class | + 14 +----------------------+ +-------+ + 15 | + 16 | links to +---------+ + 17 +----------->| Subject | + 18 +---------+ + + --- + + 4. Activities & Records Flow + + Once the main connections are made via Enrollment and TeachingAllocation, all other activities can occur. + + * Attendance requires an Enrollment (you take attendance for an enrolled student). + * Exam requires a TeachingAllocation (an exam is for a specific teacher's subject in a class). + * Timetable requires a TeachingAllocation (a schedule for that specific teaching assignment). + * Result requires an AcademicYear (and logically, should also be tied to an Enrollment and Exam). + + + \ No newline at end of file diff --git a/server/prisma/generated/prisma/internal/class.ts b/server/prisma/generated/prisma/internal/class.ts index 7b3e7a1..5a8e3d1 100644 --- a/server/prisma/generated/prisma/internal/class.ts +++ b/server/prisma/generated/prisma/internal/class.ts @@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.8.0", "engineVersion": "3c6e192761c0362d496ed980de936e2f3cebcd3a", "activeProvider": "postgresql", - "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"./generated/prisma\"\n moduleFormat = \"cjs\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id\n email String\n name String\n image String?\n role String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n setPasswordToken String?\n setPasswordTokenExpires DateTime?\n resetPasswordToken String?\n resetPasswordTokenExpires DateTime?\n lastLoginAt DateTime?\n sessions Session[]\n accounts Account[]\n student Student?\n teacher Teacher?\n admin Admin?\n emailVerified Boolean @default(false)\n\n @@unique([email])\n @@map(\"users\")\n}\n\nmodel Session {\n id String @id\n expiresAt DateTime\n token String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n ipAddress String?\n userAgent String?\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([token])\n @@index([userId])\n @@map(\"sessions\")\n}\n\nmodel Account {\n id String @id\n accountId String\n providerId String\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n accessToken String?\n refreshToken String?\n idToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@index([providerId, accountId])\n @@map(\"accounts\")\n}\n\nmodel Verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([identifier])\n @@map(\"verifications\")\n}\n\nmodel Admin {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n employeeCode String @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"admins\")\n}\n\nmodel Teacher {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n employeeCode String @unique\n phone String?\n address String?\n gender UserGender\n dateOfBirth DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n teachingAllocations TeachingAllocation[]\n\n @@index([phone])\n @@map(\"teachers\")\n}\n\nmodel Student {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n studentNumber String @unique\n phone String?\n address String?\n bloodGroup String?\n gender UserGender\n dateOfBirth DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n enrollments Enrollment[]\n parents ParentStudent[]\n\n @@index([phone])\n @@map(\"students\")\n}\n\nmodel Parent {\n id String @id @default(cuid())\n name String\n phone String?\n address String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n students ParentStudent[]\n\n @@map(\"parents\")\n}\n\nmodel ParentStudent {\n id String @id @default(cuid())\n relationship ParentRelationship\n parentId String\n parent Parent @relation(fields: [parentId], references: [id])\n studentId String\n student Student @relation(fields: [studentId], references: [id])\n\n @@unique([parentId, studentId])\n @@map(\"parent_students\")\n}\n\nmodel AcademicYear {\n id String @id @default(cuid())\n name String @unique\n startDate DateTime\n endDate DateTime\n isCurrent Boolean @default(false)\n enrollments Enrollment[]\n teachingAllocations TeachingAllocation[]\n results Result[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // classes Class[]\n // attendances Attendance[]\n // exams Exam[]\n\n @@map(\"academic_years\")\n}\n\n// model Grade {\n// id String @id @default(cuid())\n\n// name String\n\n// classes Class[]\n\n// @@unique([name])\n// @@map(\"grades\")\n// }\n\nmodel Class {\n id String @id @default(cuid())\n name String\n enrollments Enrollment[]\n teachingAllocations TeachingAllocation[]\n announcements Announcement[]\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n // gradeId String\n // grade Grade @relation(fields: [gradeId], references: [id])\n // @@unique([gradeId, name])\n // @@unique([name, academicYearId])\n\n @@unique([name])\n @@map(\"classes\")\n}\n\nmodel Enrollment {\n id String @id @default(cuid())\n studentId String\n student Student @relation(fields: [studentId], references: [id])\n classId String\n class Class @relation(fields: [classId], references: [id])\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n attendances Attendance[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // results Result[]\n\n @@unique([studentId, academicYearId])\n @@map(\"enrollments\")\n}\n\nmodel Subject {\n id String @id @default(cuid())\n name String\n description String?\n teachingAllocations TeachingAllocation[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"subjects\")\n}\n\nmodel TeachingAllocation {\n id String @id @default(cuid())\n teacherId String\n teacher Teacher @relation(fields: [teacherId], references: [id])\n subjectId String\n subject Subject @relation(fields: [subjectId], references: [id])\n classId String\n class Class @relation(fields: [classId], references: [id])\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n timetableEntries Timetable[]\n exams Exam[]\n // assignments Assignment[]\n\n @@unique([teacherId, subjectId, classId, academicYearId])\n @@map(\"teaching_assignments\")\n}\n\nmodel Timetable {\n id String @id @default(cuid())\n teachingAllocationId String\n day Day\n startTime DateTime\n endTime DateTime\n room String?\n teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id])\n\n @@index([day])\n @@map(\"time_tables\")\n}\n\nmodel Attendance {\n id String @id @default(cuid())\n enrollmentId String\n enrollment Enrollment @relation(fields: [enrollmentId], references: [id])\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n date DateTime\n present Boolean\n createdAt DateTime @default(now())\n\n @@unique([enrollmentId, date])\n @@map(\"attendances\")\n}\n\nmodel Exam {\n id String @id @default(cuid())\n title String\n description String?\n totalMarks Decimal\n passMarks Decimal\n startTime DateTime\n endTime DateTime\n teachingAllocationId String\n teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id])\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // results Result[]\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n\n @@map(\"exams\")\n}\n\nmodel Result {\n id String @id @default(cuid())\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n score Decimal?\n grade String?\n comment String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // enrollmentId String\n // enrollment Enrollment @relation(fields: [enrollmentId], references: [id])\n // examId String?\n // exam Exam? @relation(fields: [examId], references: [id])\n // @@unique([enrollmentId, examId])\n\n @@map(\"results\")\n}\n\nmodel Announcement {\n id String @id @default(cuid())\n title String\n content String\n classId String?\n class Class? @relation(fields: [classId], references: [id])\n publishedAt DateTime @default(now())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"announcements\")\n}\n\nenum ParentRelationship {\n FATHER\n MOTHER\n GUARDIAN\n}\n\nenum UserGender {\n MALE\n FEMALE\n}\n\nenum UserRole {\n SUPER_ADMIN\n ADMIN\n TEACHER\n STUDENT\n}\n\nenum Day {\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n}\n", + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"./generated/prisma\"\n moduleFormat = \"cjs\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id\n email String\n name String\n image String?\n role String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n setPasswordToken String?\n setPasswordTokenExpires DateTime?\n resetPasswordToken String?\n resetPasswordTokenExpires DateTime?\n lastLoginAt DateTime?\n sessions Session[]\n accounts Account[]\n student Student?\n teacher Teacher?\n admin Admin?\n emailVerified Boolean @default(false)\n\n @@unique([email])\n @@map(\"users\")\n}\n\nmodel Session {\n id String @id\n expiresAt DateTime\n token String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n ipAddress String?\n userAgent String?\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([token])\n @@index([userId])\n @@map(\"sessions\")\n}\n\nmodel Account {\n id String @id\n accountId String\n providerId String\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n accessToken String?\n refreshToken String?\n idToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@index([providerId, accountId])\n @@map(\"accounts\")\n}\n\nmodel Verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([identifier])\n @@map(\"verifications\")\n}\n\nmodel Admin {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n employeeCode String @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"admins\")\n}\n\nmodel Teacher {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n employeeCode String @unique\n phone String?\n address String?\n gender UserGender\n dateOfBirth DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n teachingAllocations TeachingAllocation[]\n\n @@index([phone])\n @@map(\"teachers\")\n}\n\nmodel Student {\n id String @id @default(cuid())\n userId String @unique\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n studentNumber String @unique\n phone String?\n address String?\n bloodGroup String?\n gender UserGender\n dateOfBirth DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n enrollments Enrollment[]\n parents ParentStudent[]\n\n @@index([phone])\n @@map(\"students\")\n}\n\nmodel Parent {\n id String @id @default(cuid())\n name String\n phone String?\n address String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n students ParentStudent[]\n\n @@map(\"parents\")\n}\n\nmodel ParentStudent {\n id String @id @default(cuid())\n relationship ParentRelationship\n parentId String\n parent Parent @relation(fields: [parentId], references: [id])\n studentId String\n student Student @relation(fields: [studentId], references: [id])\n\n @@unique([parentId, studentId])\n @@map(\"parent_students\")\n}\n\nmodel AcademicYear {\n id String @id @default(cuid())\n name String @unique\n startDate DateTime\n endDate DateTime\n isCurrent Boolean @default(false)\n enrollments Enrollment[]\n teachingAllocations TeachingAllocation[]\n results Result[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // classes Class[]\n // attendances Attendance[]\n // exams Exam[]\n\n @@map(\"academic_years\")\n}\n\nmodel Class {\n id String @id @default(cuid())\n name String\n enrollments Enrollment[]\n teachingAllocations TeachingAllocation[]\n announcements Announcement[]\n deletedAt DateTime?\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n // gradeId String\n // grade Grade @relation(fields: [gradeId], references: [id])\n // @@unique([gradeId, name])\n // @@unique([name, academicYearId])\n\n @@unique([name])\n @@map(\"classes\")\n}\n\nmodel Enrollment {\n id String @id @default(cuid())\n studentId String\n student Student @relation(fields: [studentId], references: [id])\n classId String\n class Class @relation(fields: [classId], references: [id])\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n attendances Attendance[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // results Result[]\n\n @@unique([studentId, academicYearId])\n @@map(\"enrollments\")\n}\n\nmodel Subject {\n id String @id @default(cuid())\n name String\n description String?\n teachingAllocations TeachingAllocation[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"subjects\")\n}\n\nmodel TeachingAllocation {\n id String @id @default(cuid())\n teacherId String\n teacher Teacher @relation(fields: [teacherId], references: [id])\n subjectId String\n subject Subject @relation(fields: [subjectId], references: [id])\n classId String\n class Class @relation(fields: [classId], references: [id])\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n timetableEntries Timetable[]\n exams Exam[]\n // assignments Assignment[]\n\n @@unique([teacherId, subjectId, classId, academicYearId])\n @@map(\"teaching_assignments\")\n}\n\nmodel Timetable {\n id String @id @default(cuid())\n teachingAllocationId String\n day Day\n startTime DateTime\n endTime DateTime\n room String?\n teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id])\n\n @@index([day])\n @@map(\"time_tables\")\n}\n\nmodel Attendance {\n id String @id @default(cuid())\n enrollmentId String\n enrollment Enrollment @relation(fields: [enrollmentId], references: [id])\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n date DateTime\n present Boolean\n createdAt DateTime @default(now())\n\n @@unique([enrollmentId, date])\n @@map(\"attendances\")\n}\n\nmodel Exam {\n id String @id @default(cuid())\n title String\n description String?\n totalMarks Decimal\n passMarks Decimal\n startTime DateTime\n endTime DateTime\n teachingAllocationId String\n teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id])\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // results Result[]\n // academicYearId String\n // academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n\n @@map(\"exams\")\n}\n\nmodel Result {\n id String @id @default(cuid())\n academicYearId String\n academicYear AcademicYear @relation(fields: [academicYearId], references: [id])\n score Decimal?\n grade String?\n comment String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n // enrollmentId String\n // enrollment Enrollment @relation(fields: [enrollmentId], references: [id])\n // examId String?\n // exam Exam? @relation(fields: [examId], references: [id])\n // @@unique([enrollmentId, examId])\n\n @@map(\"results\")\n}\n\nmodel Announcement {\n id String @id @default(cuid())\n title String\n content String\n classId String?\n class Class? @relation(fields: [classId], references: [id], onDelete: SetNull)\n publishedAt DateTime @default(now())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"announcements\")\n}\n\nenum ParentRelationship {\n FATHER\n MOTHER\n GUARDIAN\n}\n\nenum UserGender {\n MALE\n FEMALE\n}\n\nenum UserRole {\n SUPER_ADMIN\n ADMIN\n TEACHER\n STUDENT\n}\n\nenum Day {\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -32,10 +32,10 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"setPasswordToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"setPasswordTokenExpires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"resetPasswordToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resetPasswordTokenExpires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastLoginAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"StudentToUser\"},{\"name\":\"teacher\",\"kind\":\"object\",\"type\":\"Teacher\",\"relationName\":\"TeacherToUser\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToUser\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"users\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"accounts\"},\"Verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"verifications\"},\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AdminToUser\"},{\"name\":\"employeeCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"admins\"},\"Teacher\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeacherToUser\"},{\"name\":\"employeeCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"enum\",\"type\":\"UserGender\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"TeacherToTeachingAllocation\"}],\"dbName\":\"teachers\"},\"Student\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"StudentToUser\"},{\"name\":\"studentNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bloodGroup\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"enum\",\"type\":\"UserGender\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"EnrollmentToStudent\"},{\"name\":\"parents\",\"kind\":\"object\",\"type\":\"ParentStudent\",\"relationName\":\"ParentStudentToStudent\"}],\"dbName\":\"students\"},\"Parent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"students\",\"kind\":\"object\",\"type\":\"ParentStudent\",\"relationName\":\"ParentToParentStudent\"}],\"dbName\":\"parents\"},\"ParentStudent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"relationship\",\"kind\":\"enum\",\"type\":\"ParentRelationship\"},{\"name\":\"parentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"Parent\",\"relationName\":\"ParentToParentStudent\"},{\"name\":\"studentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"ParentStudentToStudent\"}],\"dbName\":\"parent_students\"},\"AcademicYear\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"isCurrent\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"AcademicYearToEnrollment\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"AcademicYearToTeachingAllocation\"},{\"name\":\"results\",\"kind\":\"object\",\"type\":\"Result\",\"relationName\":\"AcademicYearToResult\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"academic_years\"},\"Class\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"ClassToEnrollment\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"ClassToTeachingAllocation\"},{\"name\":\"announcements\",\"kind\":\"object\",\"type\":\"Announcement\",\"relationName\":\"AnnouncementToClass\"}],\"dbName\":\"classes\"},\"Enrollment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"studentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"EnrollmentToStudent\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"ClassToEnrollment\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToEnrollment\"},{\"name\":\"attendances\",\"kind\":\"object\",\"type\":\"Attendance\",\"relationName\":\"AttendanceToEnrollment\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"enrollments\"},\"Subject\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"SubjectToTeachingAllocation\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"subjects\"},\"TeachingAllocation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teacherId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teacher\",\"kind\":\"object\",\"type\":\"Teacher\",\"relationName\":\"TeacherToTeachingAllocation\"},{\"name\":\"subjectId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"object\",\"type\":\"Subject\",\"relationName\":\"SubjectToTeachingAllocation\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"ClassToTeachingAllocation\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToTeachingAllocation\"},{\"name\":\"timetableEntries\",\"kind\":\"object\",\"type\":\"Timetable\",\"relationName\":\"TeachingAllocationToTimetable\"},{\"name\":\"exams\",\"kind\":\"object\",\"type\":\"Exam\",\"relationName\":\"ExamToTeachingAllocation\"}],\"dbName\":\"teaching_assignments\"},\"Timetable\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"day\",\"kind\":\"enum\",\"type\":\"Day\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"room\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocation\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"TeachingAllocationToTimetable\"}],\"dbName\":\"time_tables\"},\"Attendance\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollmentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollment\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"AttendanceToEnrollment\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"present\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"attendances\"},\"Exam\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"totalMarks\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"passMarks\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"teachingAllocationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocation\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"ExamToTeachingAllocation\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"exams\"},\"Result\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToResult\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"grade\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"results\"},\"Announcement\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"AnnouncementToClass\"},{\"name\":\"publishedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"announcements\"}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"setPasswordToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"setPasswordTokenExpires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"resetPasswordToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resetPasswordTokenExpires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastLoginAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"StudentToUser\"},{\"name\":\"teacher\",\"kind\":\"object\",\"type\":\"Teacher\",\"relationName\":\"TeacherToUser\"},{\"name\":\"admin\",\"kind\":\"object\",\"type\":\"Admin\",\"relationName\":\"AdminToUser\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"users\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"accounts\"},\"Verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"verifications\"},\"Admin\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AdminToUser\"},{\"name\":\"employeeCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"admins\"},\"Teacher\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TeacherToUser\"},{\"name\":\"employeeCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"enum\",\"type\":\"UserGender\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"TeacherToTeachingAllocation\"}],\"dbName\":\"teachers\"},\"Student\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"StudentToUser\"},{\"name\":\"studentNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bloodGroup\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"enum\",\"type\":\"UserGender\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"EnrollmentToStudent\"},{\"name\":\"parents\",\"kind\":\"object\",\"type\":\"ParentStudent\",\"relationName\":\"ParentStudentToStudent\"}],\"dbName\":\"students\"},\"Parent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"students\",\"kind\":\"object\",\"type\":\"ParentStudent\",\"relationName\":\"ParentToParentStudent\"}],\"dbName\":\"parents\"},\"ParentStudent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"relationship\",\"kind\":\"enum\",\"type\":\"ParentRelationship\"},{\"name\":\"parentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"Parent\",\"relationName\":\"ParentToParentStudent\"},{\"name\":\"studentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"ParentStudentToStudent\"}],\"dbName\":\"parent_students\"},\"AcademicYear\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"isCurrent\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"AcademicYearToEnrollment\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"AcademicYearToTeachingAllocation\"},{\"name\":\"results\",\"kind\":\"object\",\"type\":\"Result\",\"relationName\":\"AcademicYearToResult\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"academic_years\"},\"Class\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollments\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"ClassToEnrollment\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"ClassToTeachingAllocation\"},{\"name\":\"announcements\",\"kind\":\"object\",\"type\":\"Announcement\",\"relationName\":\"AnnouncementToClass\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"classes\"},\"Enrollment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"studentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"student\",\"kind\":\"object\",\"type\":\"Student\",\"relationName\":\"EnrollmentToStudent\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"ClassToEnrollment\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToEnrollment\"},{\"name\":\"attendances\",\"kind\":\"object\",\"type\":\"Attendance\",\"relationName\":\"AttendanceToEnrollment\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"enrollments\"},\"Subject\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocations\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"SubjectToTeachingAllocation\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"subjects\"},\"TeachingAllocation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teacherId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teacher\",\"kind\":\"object\",\"type\":\"Teacher\",\"relationName\":\"TeacherToTeachingAllocation\"},{\"name\":\"subjectId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"object\",\"type\":\"Subject\",\"relationName\":\"SubjectToTeachingAllocation\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"ClassToTeachingAllocation\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToTeachingAllocation\"},{\"name\":\"timetableEntries\",\"kind\":\"object\",\"type\":\"Timetable\",\"relationName\":\"TeachingAllocationToTimetable\"},{\"name\":\"exams\",\"kind\":\"object\",\"type\":\"Exam\",\"relationName\":\"ExamToTeachingAllocation\"}],\"dbName\":\"teaching_assignments\"},\"Timetable\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"day\",\"kind\":\"enum\",\"type\":\"Day\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"room\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocation\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"TeachingAllocationToTimetable\"}],\"dbName\":\"time_tables\"},\"Attendance\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollmentId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enrollment\",\"kind\":\"object\",\"type\":\"Enrollment\",\"relationName\":\"AttendanceToEnrollment\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"present\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"attendances\"},\"Exam\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"totalMarks\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"passMarks\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"teachingAllocationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"teachingAllocation\",\"kind\":\"object\",\"type\":\"TeachingAllocation\",\"relationName\":\"ExamToTeachingAllocation\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"exams\"},\"Result\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYearId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"academicYear\",\"kind\":\"object\",\"type\":\"AcademicYear\",\"relationName\":\"AcademicYearToResult\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"grade\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"results\"},\"Announcement\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"classId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"class\",\"kind\":\"object\",\"type\":\"Class\",\"relationName\":\"AnnouncementToClass\"},{\"name\":\"publishedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"announcements\"}},\"enums\":{},\"types\":{}}") config.parameterizationSchema = { - strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"sessions\",\"accounts\",\"student\",\"enrollments\",\"teachingAllocations\",\"_count\",\"teacher\",\"subject\",\"class\",\"academicYear\",\"results\",\"teachingAllocation\",\"timetableEntries\",\"exams\",\"announcements\",\"enrollment\",\"attendances\",\"students\",\"parent\",\"parents\",\"admin\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Verification.findUnique\",\"Verification.findUniqueOrThrow\",\"Verification.findFirst\",\"Verification.findFirstOrThrow\",\"Verification.findMany\",\"Verification.createOne\",\"Verification.createMany\",\"Verification.createManyAndReturn\",\"Verification.updateOne\",\"Verification.updateMany\",\"Verification.updateManyAndReturn\",\"Verification.upsertOne\",\"Verification.deleteOne\",\"Verification.deleteMany\",\"Verification.groupBy\",\"Verification.aggregate\",\"Admin.findUnique\",\"Admin.findUniqueOrThrow\",\"Admin.findFirst\",\"Admin.findFirstOrThrow\",\"Admin.findMany\",\"Admin.createOne\",\"Admin.createMany\",\"Admin.createManyAndReturn\",\"Admin.updateOne\",\"Admin.updateMany\",\"Admin.updateManyAndReturn\",\"Admin.upsertOne\",\"Admin.deleteOne\",\"Admin.deleteMany\",\"Admin.groupBy\",\"Admin.aggregate\",\"Teacher.findUnique\",\"Teacher.findUniqueOrThrow\",\"Teacher.findFirst\",\"Teacher.findFirstOrThrow\",\"Teacher.findMany\",\"Teacher.createOne\",\"Teacher.createMany\",\"Teacher.createManyAndReturn\",\"Teacher.updateOne\",\"Teacher.updateMany\",\"Teacher.updateManyAndReturn\",\"Teacher.upsertOne\",\"Teacher.deleteOne\",\"Teacher.deleteMany\",\"Teacher.groupBy\",\"Teacher.aggregate\",\"Student.findUnique\",\"Student.findUniqueOrThrow\",\"Student.findFirst\",\"Student.findFirstOrThrow\",\"Student.findMany\",\"Student.createOne\",\"Student.createMany\",\"Student.createManyAndReturn\",\"Student.updateOne\",\"Student.updateMany\",\"Student.updateManyAndReturn\",\"Student.upsertOne\",\"Student.deleteOne\",\"Student.deleteMany\",\"Student.groupBy\",\"Student.aggregate\",\"Parent.findUnique\",\"Parent.findUniqueOrThrow\",\"Parent.findFirst\",\"Parent.findFirstOrThrow\",\"Parent.findMany\",\"Parent.createOne\",\"Parent.createMany\",\"Parent.createManyAndReturn\",\"Parent.updateOne\",\"Parent.updateMany\",\"Parent.updateManyAndReturn\",\"Parent.upsertOne\",\"Parent.deleteOne\",\"Parent.deleteMany\",\"Parent.groupBy\",\"Parent.aggregate\",\"ParentStudent.findUnique\",\"ParentStudent.findUniqueOrThrow\",\"ParentStudent.findFirst\",\"ParentStudent.findFirstOrThrow\",\"ParentStudent.findMany\",\"ParentStudent.createOne\",\"ParentStudent.createMany\",\"ParentStudent.createManyAndReturn\",\"ParentStudent.updateOne\",\"ParentStudent.updateMany\",\"ParentStudent.updateManyAndReturn\",\"ParentStudent.upsertOne\",\"ParentStudent.deleteOne\",\"ParentStudent.deleteMany\",\"ParentStudent.groupBy\",\"ParentStudent.aggregate\",\"AcademicYear.findUnique\",\"AcademicYear.findUniqueOrThrow\",\"AcademicYear.findFirst\",\"AcademicYear.findFirstOrThrow\",\"AcademicYear.findMany\",\"AcademicYear.createOne\",\"AcademicYear.createMany\",\"AcademicYear.createManyAndReturn\",\"AcademicYear.updateOne\",\"AcademicYear.updateMany\",\"AcademicYear.updateManyAndReturn\",\"AcademicYear.upsertOne\",\"AcademicYear.deleteOne\",\"AcademicYear.deleteMany\",\"AcademicYear.groupBy\",\"AcademicYear.aggregate\",\"Class.findUnique\",\"Class.findUniqueOrThrow\",\"Class.findFirst\",\"Class.findFirstOrThrow\",\"Class.findMany\",\"Class.createOne\",\"Class.createMany\",\"Class.createManyAndReturn\",\"Class.updateOne\",\"Class.updateMany\",\"Class.updateManyAndReturn\",\"Class.upsertOne\",\"Class.deleteOne\",\"Class.deleteMany\",\"Class.groupBy\",\"Class.aggregate\",\"Enrollment.findUnique\",\"Enrollment.findUniqueOrThrow\",\"Enrollment.findFirst\",\"Enrollment.findFirstOrThrow\",\"Enrollment.findMany\",\"Enrollment.createOne\",\"Enrollment.createMany\",\"Enrollment.createManyAndReturn\",\"Enrollment.updateOne\",\"Enrollment.updateMany\",\"Enrollment.updateManyAndReturn\",\"Enrollment.upsertOne\",\"Enrollment.deleteOne\",\"Enrollment.deleteMany\",\"Enrollment.groupBy\",\"Enrollment.aggregate\",\"Subject.findUnique\",\"Subject.findUniqueOrThrow\",\"Subject.findFirst\",\"Subject.findFirstOrThrow\",\"Subject.findMany\",\"Subject.createOne\",\"Subject.createMany\",\"Subject.createManyAndReturn\",\"Subject.updateOne\",\"Subject.updateMany\",\"Subject.updateManyAndReturn\",\"Subject.upsertOne\",\"Subject.deleteOne\",\"Subject.deleteMany\",\"Subject.groupBy\",\"Subject.aggregate\",\"TeachingAllocation.findUnique\",\"TeachingAllocation.findUniqueOrThrow\",\"TeachingAllocation.findFirst\",\"TeachingAllocation.findFirstOrThrow\",\"TeachingAllocation.findMany\",\"TeachingAllocation.createOne\",\"TeachingAllocation.createMany\",\"TeachingAllocation.createManyAndReturn\",\"TeachingAllocation.updateOne\",\"TeachingAllocation.updateMany\",\"TeachingAllocation.updateManyAndReturn\",\"TeachingAllocation.upsertOne\",\"TeachingAllocation.deleteOne\",\"TeachingAllocation.deleteMany\",\"TeachingAllocation.groupBy\",\"TeachingAllocation.aggregate\",\"Timetable.findUnique\",\"Timetable.findUniqueOrThrow\",\"Timetable.findFirst\",\"Timetable.findFirstOrThrow\",\"Timetable.findMany\",\"Timetable.createOne\",\"Timetable.createMany\",\"Timetable.createManyAndReturn\",\"Timetable.updateOne\",\"Timetable.updateMany\",\"Timetable.updateManyAndReturn\",\"Timetable.upsertOne\",\"Timetable.deleteOne\",\"Timetable.deleteMany\",\"Timetable.groupBy\",\"Timetable.aggregate\",\"Attendance.findUnique\",\"Attendance.findUniqueOrThrow\",\"Attendance.findFirst\",\"Attendance.findFirstOrThrow\",\"Attendance.findMany\",\"Attendance.createOne\",\"Attendance.createMany\",\"Attendance.createManyAndReturn\",\"Attendance.updateOne\",\"Attendance.updateMany\",\"Attendance.updateManyAndReturn\",\"Attendance.upsertOne\",\"Attendance.deleteOne\",\"Attendance.deleteMany\",\"Attendance.groupBy\",\"Attendance.aggregate\",\"Exam.findUnique\",\"Exam.findUniqueOrThrow\",\"Exam.findFirst\",\"Exam.findFirstOrThrow\",\"Exam.findMany\",\"Exam.createOne\",\"Exam.createMany\",\"Exam.createManyAndReturn\",\"Exam.updateOne\",\"Exam.updateMany\",\"Exam.updateManyAndReturn\",\"Exam.upsertOne\",\"Exam.deleteOne\",\"Exam.deleteMany\",\"_avg\",\"_sum\",\"Exam.groupBy\",\"Exam.aggregate\",\"Result.findUnique\",\"Result.findUniqueOrThrow\",\"Result.findFirst\",\"Result.findFirstOrThrow\",\"Result.findMany\",\"Result.createOne\",\"Result.createMany\",\"Result.createManyAndReturn\",\"Result.updateOne\",\"Result.updateMany\",\"Result.updateManyAndReturn\",\"Result.upsertOne\",\"Result.deleteOne\",\"Result.deleteMany\",\"Result.groupBy\",\"Result.aggregate\",\"Announcement.findUnique\",\"Announcement.findUniqueOrThrow\",\"Announcement.findFirst\",\"Announcement.findFirstOrThrow\",\"Announcement.findMany\",\"Announcement.createOne\",\"Announcement.createMany\",\"Announcement.createManyAndReturn\",\"Announcement.updateOne\",\"Announcement.updateMany\",\"Announcement.updateManyAndReturn\",\"Announcement.upsertOne\",\"Announcement.deleteOne\",\"Announcement.deleteMany\",\"Announcement.groupBy\",\"Announcement.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"title\",\"content\",\"classId\",\"publishedAt\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"academicYearId\",\"score\",\"grade\",\"comment\",\"description\",\"totalMarks\",\"passMarks\",\"startTime\",\"endTime\",\"teachingAllocationId\",\"enrollmentId\",\"date\",\"present\",\"Day\",\"day\",\"room\",\"teacherId\",\"subjectId\",\"name\",\"every\",\"some\",\"none\",\"studentId\",\"startDate\",\"endDate\",\"isCurrent\",\"ParentRelationship\",\"relationship\",\"parentId\",\"phone\",\"address\",\"userId\",\"studentNumber\",\"bloodGroup\",\"UserGender\",\"gender\",\"dateOfBirth\",\"employeeCode\",\"identifier\",\"value\",\"expiresAt\",\"accountId\",\"providerId\",\"accessToken\",\"refreshToken\",\"idToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"email\",\"image\",\"role\",\"setPasswordToken\",\"setPasswordTokenExpires\",\"resetPasswordToken\",\"resetPasswordTokenExpires\",\"lastLoginAt\",\"emailVerified\",\"parentId_studentId\",\"enrollmentId_date\",\"teacherId_subjectId_classId_academicYearId\",\"studentId_academicYearId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), - graph: "wAimAbACFQQAAMoEACAFAADLBAAgBgAAzAQAIAoAAM0EACAYAADOBAAg0QIAAMkEADDSAgAASgAQ0wIAAMkEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIfgCAQChBAAhmwMBAAAAAZwDAQCiBAAhnQMBAKEEACGeAwEAogQAIZ8DQAC-BAAhoAMBAKIEACGhA0AAvgQAIaIDQAC-BAAhowMgAKwEACEBAAAAAQAgDAMAAL8EACDRAgAA7AQAMNICAAADABDTAgAA7AQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYUDAQChBAAhjgNAAKMEACGYAwEAoQQAIZkDAQCiBAAhmgMBAKIEACEDAwAA7QYAIJkDAADtBAAgmgMAAO0EACAMAwAAvwQAINECAADsBAAw0gIAAAMAENMCAADsBAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACGFAwEAoQQAIY4DQACjBAAhmAMBAAAAAZkDAQCiBAAhmgMBAKIEACEDAAAAAwAgAQAABAAwAgAABQAgEQMAAL8EACDRAgAA6wQAMNICAAAHABDTAgAA6wQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYUDAQChBAAhjwMBAKEEACGQAwEAoQQAIZEDAQCiBAAhkgMBAKIEACGTAwEAogQAIZQDQAC-BAAhlQNAAL4EACGWAwEAogQAIZcDAQCiBAAhCAMAAO0GACCRAwAA7QQAIJIDAADtBAAgkwMAAO0EACCUAwAA7QQAIJUDAADtBAAglgMAAO0EACCXAwAA7QQAIBEDAAC_BAAg0QIAAOsEADDSAgAABwAQ0wIAAOsEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIYUDAQChBAAhjwMBAKEEACGQAwEAoQQAIZEDAQCiBAAhkgMBAKIEACGTAwEAogQAIZQDQAC-BAAhlQNAAL4EACGWAwEAogQAIZcDAQCiBAAhAwAAAAcAIAEAAAgAMAIAAAkAIBADAAC_BAAgBwAAqAQAIBcAALQEACDRAgAAvAQAMNICAAALABDTAgAAvAQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYMDAQCiBAAhhAMBAKIEACGFAwEAoQQAIYYDAQChBAAhhwMBAKIEACGJAwAAvQSJAyKKA0AAvgQAIQEAAAALACANBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAKEEACHXAgEAoQQAIdkCQACjBAAh2gJAAKMEACHmAgEAoQQAIfwCAQChBAAhBAYAAMYHACAMAADLBwAgDQAAzQcAIBQAANEHACAOBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAAAAAdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACGnAwAA6AQAIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgDgoAAOMEACALAADkBAAgDAAA5QQAIA0AAOAEACAQAADmBAAgEQAA5wQAINECAADiBAAw0gIAABIAENMCAADiBAAw1AIBAKEEACHXAgEAoQQAIeYCAQChBAAh9gIBAKEEACH3AgEAoQQAIQYKAADHBwAgCwAAzgcAIAwAAMsHACANAADNBwAgEAAAzwcAIBEAANAHACAPCgAA4wQAIAsAAOQEACAMAADlBAAgDQAA4AQAIBAAAOYEACARAADnBAAg0QIAAOIEADDSAgAAEgAQ0wIAAOIEADDUAgEAAAAB1wIBAKEEACHmAgEAoQQAIfYCAQChBAAh9wIBAKEEACGmAwAA4QQAIAMAAAASACABAAATADACAAAUACADAAAAEgAgAQAAEwAwAgAAFAAgAQAAABIAIAMAAAASACABAAATADACAAAUACABAAAAEgAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAASACABAAATADACAAAUACALDQAA4AQAINECAADeBAAw0gIAABwAENMCAADeBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACHnAhAA3wQAIegCAQCiBAAh6QIBAKIEACEEDQAAzQcAIOcCAADtBAAg6AIAAO0EACDpAgAA7QQAIAsNAADgBAAg0QIAAN4EADDSAgAAHAAQ0wIAAN4EADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIeYCAQChBAAh5wIQAN8EACHoAgEAogQAIekCAQCiBAAhAwAAABwAIAEAAB0AMAIAAB4AIAEAAAANACABAAAAEgAgAQAAABwAIAoPAADbBAAg0QIAANwEADDSAgAAIwAQ0wIAANwEADDUAgEAoQQAIe0CQACjBAAh7gJAAKMEACHvAgEAoQQAIfQCAADdBPQCIvUCAQCiBAAhAg8AAMwHACD1AgAA7QQAIAoPAADbBAAg0QIAANwEADDSAgAAIwAQ0wIAANwEADDUAgEAAAAB7QJAAKMEACHuAkAAowQAIe8CAQChBAAh9AIAAN0E9AIi9QIBAKIEACEDAAAAIwAgAQAAJAAwAgAAJQAgDg8AANsEACDRAgAA2QQAMNICAAAnABDTAgAA2QQAMNQCAQChBAAh1QIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACHrAhAA2gQAIewCEADaBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAhAg8AAMwHACDqAgAA7QQAIA4PAADbBAAg0QIAANkEADDSAgAAJwAQ0wIAANkEADDUAgEAAAAB1QIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACHrAhAA2gQAIewCEADaBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAhAwAAACcAIAEAACgAMAIAACkAIAEAAAAjACABAAAAJwAgCwwAANgEACDRAgAA1wQAMNICAAAtABDTAgAA1wQAMNQCAQChBAAh1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhAgwAAMsHACDXAgAA7QQAIAsMAADYBAAg0QIAANcEADDSAgAALQAQ0wIAANcEADDUAgEAAAAB1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhAwAAAC0AIAEAAC4AMAIAAC8AIAgHAACoBAAgCAAApAQAIBIAAKkEACDRAgAApwQAMNICAAAxABDTAgAApwQAMNQCAQChBAAh-AIBAKEEACEBAAAAMQAgAQAAAA0AIAEAAAASACABAAAALQAgCRMAANYEACDRAgAA1QQAMNICAAA2ABDTAgAA1QQAMNQCAQChBAAh2QJAAKMEACHwAgEAoQQAIfECQACjBAAh8gIgAKwEACEBEwAAygcAIAoTAADWBAAg0QIAANUEADDSAgAANgAQ0wIAANUEADDUAgEAAAAB2QJAAKMEACHwAgEAoQQAIfECQACjBAAh8gIgAKwEACGlAwAA1AQAIAMAAAA2ACABAAA3ADACAAA4ACABAAAANgAgCQYAANMEACAWAADSBAAg0QIAANAEADDSAgAAOwAQ0wIAANAEADDUAgEAoQQAIfwCAQChBAAhgQMAANEEgQMiggMBAKEEACECBgAAxgcAIBYAAMkHACAKBgAA0wQAIBYAANIEACDRAgAA0AQAMNICAAA7ABDTAgAA0AQAMNQCAQAAAAH8AgEAoQQAIYEDAADRBIEDIoIDAQChBAAhpAMAAM8EACADAAAAOwAgAQAAPAAwAgAAPQAgAwAAADsAIAEAADwAMAIAAD0AIAEAAAA7ACABAAAADQAgAQAAADsAIA4DAAC_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_BAAg0QIAAMMEADDSAgAARQAQ0wIAAMMEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIYUDAQAAAAGLAwEAAAABAQAAAKUBACABAAAApQEAIAEDAADtBgAgAwAAAEUAIAEAAKgBADACAAClAQAgAwAAAEUAIAEAAKgBADACAAClAQAgAwAAAEUAIAEAAKgBADACAAClAQAgBgMAAIIHACDUAgEAAAAB2QJAAAAAAdoCQAAAAAGFAwEAAAABiwMBAAAAAQEeAACsAQAgBdQCAQAAAAHZAkAAAAAB2gJAAAAAAYUDAQAAAAGLAwEAAAABAR4AAK4BADABHgAArgEAMAYDAACBBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhhQMBAPEEACGLAwEA8QQAIQIAAAClAQAgHgAAsQEAIAXUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGFAwEA8QQAIYsDAQDxBAAhAgAAAEUAIB4AALMBACACAAAARQAgHgAAswEAIAMAAAClAQAgJQAArAEAICYAALEBACABAAAApQEAIAEAAABFACADCQAA_gYAICsAAIAHACAsAAD_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_BgAggwMAAO0EACCEAwAA7QQAIAnRAgAAsgQAMNICAACDAgAQ0wIAALIEADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACH4AgEAgwQAIYMDAQCEBAAhhAMBAIQEACEDAAAA8AEAIAEAAIICADAqAACDAgAgAwAAAPABACABAADxAQAwAgAA7QEAIAEAAAA9ACABAAAAPQAgAwAAADsAIAEAADwAMAIAAD0AIAMAAAA7ACABAAA8ADACAAA9ACADAAAAOwAgAQAAPAAwAgAAPQAgBgYAAL0GACAWAAC8BgAg1AIBAAAAAfwCAQAAAAGBAwAAAIEDAoIDAQAAAAEBHgAAiwIAIATUAgEAAAAB_AIBAAAAAYEDAAAAgQMCggMBAAAAAQEeAACNAgAwAR4AAI0CADAGBgAAuwYAIBYAALoGACDUAgEA8QQAIfwCAQDxBAAhgQMAALkGgQMiggMBAPEEACECAAAAPQAgHgAAkAIAIATUAgEA8QQAIfwCAQDxBAAhgQMAALkGgQMiggMBAPEEACECAAAAOwAgHgAAkgIAIAIAAAA7ACAeAACSAgAgAwAAAD0AICUAAIsCACAmAACQAgAgAQAAAD0AIAEAAAA7ACADCQAAtgYAICsAALgGACAsAAC3BgAgB9ECAACuBAAw0gIAAJkCABDTAgAArgQAMNQCAQCDBAAh_AIBAIMEACGBAwAArwSBAyKCAwEAgwQAIQMAAAA7ACABAACYAgAwKgAAmQIAIAMAAAA7ACABAAA8ADACAAA9ACANBwAAqAQAIAgAAKQEACAOAACtBAAg0QIAAKsEADDSAgAAnwIAENMCAACrBAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACH4AgEAAAAB_QJAAKMEACH-AkAAowQAIf8CIACsBAAhAQAAAJwCACABAAAAnAIAIA0HAACoBAAgCAAApAQAIA4AAK0EACDRAgAAqwQAMNICAACfAgAQ0wIAAKsEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIf0CQACjBAAh_gJAAKMEACH_AiAArAQAIQMHAACMBgAgCAAAygUAIA4AALUGACADAAAAnwIAIAEAAKACADACAACcAgAgAwAAAJ8CACABAACgAgAwAgAAnAIAIAMAAACfAgAgAQAAoAIAMAIAAJwCACAKBwAAsgYAIAgAALMGACAOAAC0BgAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAf0CQAAAAAH-AkAAAAAB_wIgAAAAAQEeAACkAgAgB9QCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAH9AkAAAAAB_gJAAAAAAf8CIAAAAAEBHgAApgIAMAEeAACmAgAwCgcAAJEGACAIAACSBgAgDgAAkwYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_QJAAPIEACH-AkAA8gQAIf8CIACJBQAhAgAAAJwCACAeAACpAgAgB9QCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_QJAAPIEACH-AkAA8gQAIf8CIACJBQAhAgAAAJ8CACAeAACrAgAgAgAAAJ8CACAeAACrAgAgAwAAAJwCACAlAACkAgAgJgAAqQIAIAEAAACcAgAgAQAAAJ8CACADCQAAjgYAICsAAJAGACAsAACPBgAgCtECAACqBAAw0gIAALICABDTAgAAqgQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIfgCAQCDBAAh_QJAAIUEACH-AkAAhQQAIf8CIACXBAAhAwAAAJ8CACABAACxAgAwKgAAsgIAIAMAAACfAgAgAQAAoAIAMAIAAJwCACAIBwAAqAQAIAgAAKQEACASAACpBAAg0QIAAKcEADDSAgAAMQAQ0wIAAKcEADDUAgEAAAAB-AIBAAAAAQEAAAC1AgAgAQAAALUCACADBwAAjAYAIAgAAMoFACASAACNBgAgAwAAADEAIAEAALgCADACAAC1AgAgAwAAADEAIAEAALgCADACAAC1AgAgAwAAADEAIAEAALgCADACAAC1AgAgBQcAAIkGACAIAACKBgAgEgAAiwYAINQCAQAAAAH4AgEAAAABAR4AALwCACAC1AIBAAAAAfgCAQAAAAEBHgAAvgIAMAEeAAC-AgAwBQcAAOUFACAIAADmBQAgEgAA5wUAINQCAQDxBAAh-AIBAPEEACECAAAAtQIAIB4AAMECACAC1AIBAPEEACH4AgEA8QQAIQIAAAAxACAeAADDAgAgAgAAADEAIB4AAMMCACADAAAAtQIAICUAALwCACAmAADBAgAgAQAAALUCACABAAAAMQAgAwkAAOIFACArAADkBQAgLAAA4wUAIAXRAgAApgQAMNICAADKAgAQ0wIAAKYEADDUAgEAgwQAIfgCAQCDBAAhAwAAADEAIAEAAMkCADAqAADKAgAgAwAAADEAIAEAALgCADACAAC1AgAgAQAAAA8AIAEAAAAPACADAAAADQAgAQAADgAwAgAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAANACABAAAOADACAAAPACAKBgAA3gUAIAwAAN8FACANAADgBQAgFAAA4QUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_AIBAAAAAQEeAADSAgAgBtQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_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-BAAgKwAAgQUAICwAAIAFACCtAgAA_wQAIK4CAACCBQAg6gIAAO0EACAN0QIAAJIEADDSAgAA0QMAENMCAACSBAAw1AIBAIMEACHVAgEAgwQAIdkCQACFBAAh2gJAAIUEACHqAgEAhAQAIesCEACTBAAh7AIQAJMEACHtAkAAhQQAIe4CQACFBAAh7wIBAIMEACEDAAAAJwAgAQAA0AMAMCoAANEDACADAAAAJwAgAQAAKAAwAgAAKQAgAQAAAB4AIAEAAAAeACADAAAAHAAgAQAAHQAwAgAAHgAgAwAAABwAIAEAAB0AMAIAAB4AIAMAAAAcACABAAAdADACAAAeACAIDQAA_QQAINQCAQAAAAHZAkAAAAAB2gJAAAAAAeYCAQAAAAHnAhAAAAAB6AIBAAAAAekCAQAAAAEBHgAA2QMAIAfUAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB5wIQAAAAAegCAQAAAAHpAgEAAAABAR4AANsDADABHgAA2wMAMAgNAAD8BAAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh5gIBAPEEACHnAhAA-wQAIegCAQDzBAAh6QIBAPMEACECAAAAHgAgHgAA3gMAIAfUAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIecCEAD7BAAh6AIBAPMEACHpAgEA8wQAIQIAAAAcACAeAADgAwAgAgAAABwAIB4AAOADACADAAAAHgAgJQAA2QMAICYAAN4DACABAAAAHgAgAQAAABwAIAgJAAD2BAAgKwAA-QQAICwAAPgEACCtAgAA9wQAIK4CAAD6BAAg5wIAAO0EACDoAgAA7QQAIOkCAADtBAAgCtECAACOBAAw0gIAAOcDABDTAgAAjgQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIeYCAQCDBAAh5wIQAI8EACHoAgEAhAQAIekCAQCEBAAhAwAAABwAIAEAAOYDADAqAADnAwAgAwAAABwAIAEAAB0AMAIAAB4AIAEAAAAvACABAAAALwAgAwAAAC0AIAEAAC4AMAIAAC8AIAMAAAAtACABAAAuADACAAAvACADAAAALQAgAQAALgAwAgAALwAgCAwAAPUEACDUAgEAAAAB1QIBAAAAAdYCAQAAAAHXAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABAR4AAO8DACAH1AIBAAAAAdUCAQAAAAHWAgEAAAAB1wIBAAAAAdgCQAAAAAHZAkAAAAAB2gJAAAAAAQEeAADxAwAwAR4AAPEDADABAAAAMQAgCAwAAPQEACDUAgEA8QQAIdUCAQDxBAAh1gIBAPEEACHXAgEA8wQAIdgCQADyBAAh2QJAAPIEACHaAkAA8gQAIQIAAAAvACAeAAD1AwAgB9QCAQDxBAAh1QIBAPEEACHWAgEA8QQAIdcCAQDzBAAh2AJAAPIEACHZAkAA8gQAIdoCQADyBAAhAgAAAC0AIB4AAPcDACACAAAALQAgHgAA9wMAIAEAAAAxACADAAAALwAgJQAA7wMAICYAAPUDACABAAAALwAgAQAAAC0AIAQJAADuBAAgKwAA8AQAICwAAO8EACDXAgAA7QQAIArRAgAAggQAMNICAAD_AwAQ0wIAAIIEADDUAgEAgwQAIdUCAQCDBAAh1gIBAIMEACHXAgEAhAQAIdgCQACFBAAh2QJAAIUEACHaAkAAhQQAIQMAAAAtACABAAD-AwAwKgAA_wMAIAMAAAAtACABAAAuADACAAAvACAK0QIAAIIEADDSAgAA_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_kCAAANACD6AgAADQAg-wIAAA0AIAP5AgAALQAg-gIAAC0AIPsCAAAtACAK0QIAAKoEADDSAgAAsgIAENMCAACqBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACH9AkAAhQQAIf4CQACFBAAh_wIgAJcEACENBwAAqAQAIAgAAKQEACAOAACtBAAg0QIAAKsEADDSAgAAnwIAENMCAACrBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh-AIBAKEEACH9AkAAowQAIf4CQACjBAAh_wIgAKwEACEC2wIgAAAAAeICIACZBAAhA_kCAAAcACD6AgAAHAAg-wIAABwAIAfRAgAArgQAMNICAACZAgAQ0wIAAK4EADDUAgEAgwQAIfwCAQCDBAAhgQMAAK8EgQMiggMBAIMEACEHCQAAhwQAICsAALEEACAsAACxBAAg2wIAAACBAwLcAgAAAIEDCN0CAAAAgQMI4gIAALAEgQMiBwkAAIcEACArAACxBAAgLAAAsQQAINsCAAAAgQMC3AIAAACBAwjdAgAAAIEDCOICAACwBIEDIgTbAgAAAIEDAtwCAAAAgQMI3QIAAACBAwjiAgAAsQSBAyIJ0QIAALIEADDSAgAAgwIAENMCAACyBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACGDAwEAhAQAIYQDAQCEBAAhChUAALQEACDRAgAAswQAMNICAADwAQAQ0wIAALMEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIYMDAQCiBAAhhAMBAKIEACED-QIAADsAIPoCAAA7ACD7AgAAOwAgDdECAAC1BAAw0gIAAOoBABDTAgAAtQQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYMDAQCEBAAhhAMBAIQEACGFAwEAgwQAIYYDAQCDBAAhhwMBAIQEACGJAwAAtgSJAyKKA0AAtwQAIQcJAACHBAAgKwAAuwQAICwAALsEACDbAgAAAIkDAtwCAAAAiQMI3QIAAACJAwjiAgAAugSJAyILCQAAigQAICsAALkEACAsAAC5BAAg2wJAAAAAAdwCQAAAAAXdAkAAAAAF3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQAC4BAAhCwkAAIoEACArAAC5BAAgLAAAuQQAINsCQAAAAAHcAkAAAAAF3QJAAAAABd4CQAAAAAHfAkAAAAAB4AJAAAAAAeECQAAAAAHiAkAAuAQAIQjbAkAAAAAB3AJAAAAABd0CQAAAAAXeAkAAAAAB3wJAAAAAAeACQAAAAAHhAkAAAAAB4gJAALkEACEHCQAAhwQAICsAALsEACAsAAC7BAAg2wIAAACJAwLcAgAAAIkDCN0CAAAAiQMI4gIAALoEiQMiBNsCAAAAiQMC3AIAAACJAwjdAgAAAIkDCOICAAC7BIkDIhADAAC_BAAgBwAAqAQAIBcAALQEACDRAgAAvAQAMNICAAALABDTAgAAvAQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYMDAQCiBAAhhAMBAKIEACGFAwEAoQQAIYYDAQChBAAhhwMBAKIEACGJAwAAvQSJAyKKA0AAvgQAIQTbAgAAAIkDAtwCAAAAiQMI3QIAAACJAwjiAgAAuwSJAyII2wJAAAAAAdwCQAAAAAXdAkAAAAAF3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQAC5BAAhFwQAAMoEACAFAADLBAAgBgAAzAQAIAoAAM0EACAYAADOBAAg0QIAAMkEADDSAgAASgAQ0wIAAMkEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIZsDAQChBAAhnAMBAKIEACGdAwEAoQQAIZ4DAQCiBAAhnwNAAL4EACGgAwEAogQAIaEDQAC-BAAhogNAAL4EACGjAyAArAQAIagDAABKACCpAwAASgAgDNECAADABAAw0gIAANIBABDTAgAAwAQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYMDAQCEBAAhhAMBAIQEACGFAwEAgwQAIYkDAAC2BIkDIooDQAC3BAAhiwMBAIMEACEOAwAAvwQAIAgAAKQEACDRAgAAwQQAMNICAABDABDTAgAAwQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYMDAQCiBAAhhAMBAKIEACGFAwEAoQQAIYkDAAC9BIkDIooDQAC-BAAhiwMBAKEEACEI0QIAAMIEADDSAgAAugEAENMCAADCBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAhhQMBAIMEACGLAwEAgwQAIQkDAAC_BAAg0QIAAMMEADDSAgAARQAQ0wIAAMMEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGFAwEAoQQAIYsDAQChBAAhCdECAADEBAAw0gIAAKIBABDTAgAAxAQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYwDAQCDBAAhjQMBAIMEACGOA0AAhQQAIQnRAgAAxQQAMNICAACPAQAQ0wIAAMUEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGMAwEAoQQAIY0DAQChBAAhjgNAAKMEACEQ0QIAAMYEADDSAgAAiQEAENMCAADGBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAhhQMBAIMEACGPAwEAgwQAIZADAQCDBAAhkQMBAIQEACGSAwEAhAQAIZMDAQCEBAAhlANAALcEACGVA0AAtwQAIZYDAQCEBAAhlwMBAIQEACEL0QIAAMcEADDSAgAAcwAQ0wIAAMcEADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACGFAwEAgwQAIY4DQACFBAAhmAMBAIMEACGZAwEAhAQAIZoDAQCEBAAhENECAADIBAAw0gIAAF0AENMCAADIBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACGbAwEAgwQAIZwDAQCEBAAhnQMBAIMEACGeAwEAhAQAIZ8DQAC3BAAhoAMBAIQEACGhA0AAtwQAIaIDQAC3BAAhowMgAJcEACEVBAAAygQAIAUAAMsEACAGAADMBAAgCgAAzQQAIBgAAM4EACDRAgAAyQQAMNICAABKABDTAgAAyQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIfgCAQChBAAhmwMBAKEEACGcAwEAogQAIZ0DAQChBAAhngMBAKIEACGfA0AAvgQAIaADAQCiBAAhoQNAAL4EACGiA0AAvgQAIaMDIACsBAAhA_kCAAADACD6AgAAAwAg-wIAAAMAIAP5AgAABwAg-gIAAAcAIPsCAAAHACASAwAAvwQAIAcAAKgEACAXAAC0BAAg0QIAALwEADDSAgAACwAQ0wIAALwEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGDAwEAogQAIYQDAQCiBAAhhQMBAKEEACGGAwEAoQQAIYcDAQCiBAAhiQMAAL0EiQMiigNAAL4EACGoAwAACwAgqQMAAAsAIBADAAC_BAAgCAAApAQAINECAADBBAAw0gIAAEMAENMCAADBBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhgwMBAKIEACGEAwEAogQAIYUDAQChBAAhiQMAAL0EiQMiigNAAL4EACGLAwEAoQQAIagDAABDACCpAwAAQwAgCwMAAL8EACDRAgAAwwQAMNICAABFABDTAgAAwwQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYUDAQChBAAhiwMBAKEEACGoAwAARQAgqQMAAEUAIAL8AgEAAAABggMBAAAAAQkGAADTBAAgFgAA0gQAINECAADQBAAw0gIAADsAENMCAADQBAAw1AIBAKEEACH8AgEAoQQAIYEDAADRBIEDIoIDAQChBAAhBNsCAAAAgQMC3AIAAACBAwjdAgAAAIEDCOICAACxBIEDIgwVAAC0BAAg0QIAALMEADDSAgAA8AEAENMCAACzBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh-AIBAKEEACGDAwEAogQAIYQDAQCiBAAhqAMAAPABACCpAwAA8AEAIBIDAAC_BAAgBwAAqAQAIBcAALQEACDRAgAAvAQAMNICAAALABDTAgAAvAQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYMDAQCiBAAhhAMBAKIEACGFAwEAoQQAIYYDAQChBAAhhwMBAKIEACGJAwAAvQSJAyKKA0AAvgQAIagDAAALACCpAwAACwAgAvACAQAAAAHxAkAAAAABCRMAANYEACDRAgAA1QQAMNICAAA2ABDTAgAA1QQAMNQCAQChBAAh2QJAAKMEACHwAgEAoQQAIfECQACjBAAh8gIgAKwEACEPBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAKEEACHXAgEAoQQAIdkCQACjBAAh2gJAAKMEACHmAgEAoQQAIfwCAQChBAAhqAMAAA0AIKkDAAANACALDAAA2AQAINECAADXBAAw0gIAAC0AENMCAADXBAAw1AIBAKEEACHVAgEAoQQAIdYCAQChBAAh1wIBAKIEACHYAkAAowQAIdkCQACjBAAh2gJAAKMEACEKBwAAqAQAIAgAAKQEACASAACpBAAg0QIAAKcEADDSAgAAMQAQ0wIAAKcEADDUAgEAoQQAIfgCAQChBAAhqAMAADEAIKkDAAAxACAODwAA2wQAINECAADZBAAw0gIAACcAENMCAADZBAAw1AIBAKEEACHVAgEAoQQAIdkCQACjBAAh2gJAAKMEACHqAgEAogQAIesCEADaBAAh7AIQANoEACHtAkAAowQAIe4CQACjBAAh7wIBAKEEACEI2wIQAAAAAdwCEAAAAATdAhAAAAAE3gIQAAAAAd8CEAAAAAHgAhAAAAAB4QIQAAAAAeICEACVBAAhEAoAAOMEACALAADkBAAgDAAA5QQAIA0AAOAEACAQAADmBAAgEQAA5wQAINECAADiBAAw0gIAABIAENMCAADiBAAw1AIBAKEEACHXAgEAoQQAIeYCAQChBAAh9gIBAKEEACH3AgEAoQQAIagDAAASACCpAwAAEgAgCg8AANsEACDRAgAA3AQAMNICAAAjABDTAgAA3AQAMNQCAQChBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAh9AIAAN0E9AIi9QIBAKIEACEE2wIAAAD0AgLcAgAAAPQCCN0CAAAA9AII4gIAAJ0E9AIiCw0AAOAEACDRAgAA3gQAMNICAAAcABDTAgAA3gQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh5wIQAN8EACHoAgEAogQAIekCAQCiBAAhCNsCEAAAAAHcAhAAAAAF3QIQAAAABd4CEAAAAAHfAhAAAAAB4AIQAAAAAeECEAAAAAHiAhAAkQQAIQ8HAACoBAAgCAAApAQAIA4AAK0EACDRAgAAqwQAMNICAACfAgAQ0wIAAKsEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIf0CQACjBAAh_gJAAKMEACH_AiAArAQAIagDAACfAgAgqQMAAJ8CACAE1wIBAAAAAeYCAQAAAAH2AgEAAAAB9wIBAAAAAQ4KAADjBAAgCwAA5AQAIAwAAOUEACANAADgBAAgEAAA5gQAIBEAAOcEACDRAgAA4gQAMNICAAASABDTAgAA4gQAMNQCAQChBAAh1wIBAKEEACHmAgEAoQQAIfYCAQChBAAh9wIBAKEEACEQAwAAvwQAIAgAAKQEACDRAgAAwQQAMNICAABDABDTAgAAwQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYMDAQCiBAAhhAMBAKIEACGFAwEAoQQAIYkDAAC9BIkDIooDQAC-BAAhiwMBAKEEACGoAwAAQwAgqQMAAEMAIAsIAACkBAAg0QIAAKAEADDSAgAA5gIAENMCAACgBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACH4AgEAoQQAIagDAADmAgAgqQMAAOYCACAKBwAAqAQAIAgAAKQEACASAACpBAAg0QIAAKcEADDSAgAAMQAQ0wIAAKcEADDUAgEAoQQAIfgCAQChBAAhqAMAADEAIKkDAAAxACAD-QIAACMAIPoCAAAjACD7AgAAIwAgA_kCAAAnACD6AgAAJwAg-wIAACcAIALmAgEAAAAB_AIBAAAAAQ0GAADTBAAgDAAA5QQAIA0AAOAEACAUAADqBAAg0QIAAOkEADDSAgAADQAQ0wIAAOkEADDUAgEAoQQAIdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACED-QIAADYAIPoCAAA2ACD7AgAANgAgEQMAAL8EACDRAgAA6wQAMNICAAAHABDTAgAA6wQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYUDAQChBAAhjwMBAKEEACGQAwEAoQQAIZEDAQCiBAAhkgMBAKIEACGTAwEAogQAIZQDQAC-BAAhlQNAAL4EACGWAwEAogQAIZcDAQCiBAAhDAMAAL8EACDRAgAA7AQAMNICAAADABDTAgAA7AQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYUDAQChBAAhjgNAAKMEACGYAwEAoQQAIZkDAQCiBAAhmgMBAKIEACEAAAAAAa0DAQAAAAEBrQNAAAAAAQGtAwEAAAABByUAALwIACAmAAC_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_wUAMKwDAACABgAgrQMAAIEGADCuAwAAgQYAMK8DAACBBgAwsAMAAIEGADCxAwAAgwYAMLIDAACEBgAwCyUAAPQFADAmAAD4BQAwqgMAAPUFADCrAwAA9gUAMKwDAAD3BQAgrQMAAMEFADCuAwAAwQUAMK8DAADBBQAwsAMAAMEFADCxAwAA-QUAMLIDAADEBQAwCyUAAOgFADAmAADtBQAwqgMAAOkFADCrAwAA6gUAMKwDAADrBQAgrQMAAOwFADCuAwAA7AUAMK8DAADsBQAwsAMAAOwFADCxAwAA7gUAMLIDAADvBQAwBtQCAQAAAAHVAgEAAAAB1gIBAAAAAdgCQAAAAAHZAkAAAAAB2gJAAAAAAQIAAAAvACAlAADzBQAgAwAAAC8AICUAAPMFACAmAADyBQAgAR4AAIAIADALDAAA2AQAINECAADXBAAw0gIAAC0AENMCAADXBAAw1AIBAAAAAdUCAQChBAAh1gIBAKEEACHXAgEAogQAIdgCQACjBAAh2QJAAKMEACHaAkAAowQAIQIAAAAvACAeAADyBQAgAgAAAPAFACAeAADxBQAgCtECAADvBQAw0gIAAPAFABDTAgAA7wUAMNQCAQChBAAh1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhCtECAADvBQAw0gIAAPAFABDTAgAA7wUAMNQCAQChBAAh1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhBtQCAQDxBAAh1QIBAPEEACHWAgEA8QQAIdgCQADyBAAh2QJAAPIEACHaAkAA8gQAIQbUAgEA8QQAIdUCAQDxBAAh1gIBAPEEACHYAkAA8gQAIdkCQADyBAAh2gJAAPIEACEG1AIBAAAAAdUCAQAAAAHWAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABCQoAALMFACALAAC0BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAeYCAQAAAAH2AgEAAAAB9wIBAAAAAQIAAAAUACAlAAD8BQAgAwAAABQAICUAAPwFACAmAAD7BQAgAR4AAP8HADACAAAAFAAgHgAA-wUAIAIAAADFBQAgHgAA-gUAIATUAgEA8QQAIeYCAQDxBAAh9gIBAPEEACH3AgEA8QQAIQkKAACVBQAgCwAAlgUAIA0AAJgFACAQAACZBQAgEQAAmgUAINQCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCQoAALMFACALAAC0BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAeYCAQAAAAH2AgEAAAAB9wIBAAAAAQgGAADeBQAgDQAA4AUAIBQAAOEFACDUAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_AIBAAAAAQIAAAAPACAlAACIBgAgAwAAAA8AICUAAIgGACAmAACHBgAgAR4AAP4HADAOBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAAAAAdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACGnAwAA6AQAIAIAAAAPACAeAACHBgAgAgAAAIUGACAeAACGBgAgCdECAACEBgAw0gIAAIUGABDTAgAAhAYAMNQCAQChBAAh1wIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACH8AgEAoQQAIQnRAgAAhAYAMNICAACFBgAQ0wIAAIQGADDUAgEAoQQAIdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACEF1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh5gIBAPEEACH8AgEA8QQAIQgGAADOBQAgDQAA0AUAIBQAANEFACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIfwCAQDxBAAhCAYAAN4FACANAADgBQAgFAAA4QUAINQCAQAAAAHZAkAAAAAB2gJAAAAAAeYCAQAAAAH8AgEAAAABBCUAAP0FADCqAwAA_gUAMKwDAACABgAgsAMAAIEGADAEJQAA9AUAMKoDAAD1BQAwrAMAAPcFACCwAwAAwQUAMAQlAADoBQAwqgMAAOkFADCsAwAA6wUAILADAADsBQAwAAAAAAALJQAAqQYAMCYAAK0GADCqAwAAqgYAMKsDAACrBgAwrAMAAKwGACCtAwAAgQYAMK4DAACBBgAwrwMAAIEGADCwAwAAgQYAMLEDAACuBgAwsgMAAIQGADALJQAAoAYAMCYAAKQGADCqAwAAoQYAMKsDAACiBgAwrAMAAKMGACCtAwAAwQUAMK4DAADBBQAwrwMAAMEFADCwAwAAwQUAMLEDAAClBgAwsgMAAMQFADALJQAAlAYAMCYAAJkGADCqAwAAlQYAMKsDAACWBgAwrAMAAJcGACCtAwAAmAYAMK4DAACYBgAwrwMAAJgGADCwAwAAmAYAMLEDAACaBgAwsgMAAJsGADAG1AIBAAAAAdkCQAAAAAHaAkAAAAAB5wIQAAAAAegCAQAAAAHpAgEAAAABAgAAAB4AICUAAJ8GACADAAAAHgAgJQAAnwYAICYAAJ4GACABHgAA_QcAMAsNAADgBAAg0QIAAN4EADDSAgAAHAAQ0wIAAN4EADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIeYCAQChBAAh5wIQAN8EACHoAgEAogQAIekCAQCiBAAhAgAAAB4AIB4AAJ4GACACAAAAnAYAIB4AAJ0GACAK0QIAAJsGADDSAgAAnAYAENMCAACbBgAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACHnAhAA3wQAIegCAQCiBAAh6QIBAKIEACEK0QIAAJsGADDSAgAAnAYAENMCAACbBgAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACHnAhAA3wQAIegCAQCiBAAh6QIBAKIEACEG1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh5wIQAPsEACHoAgEA8wQAIekCAQDzBAAhBtQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIecCEAD7BAAh6AIBAPMEACHpAgEA8wQAIQbUAgEAAAAB2QJAAAAAAdoCQAAAAAHnAhAAAAAB6AIBAAAAAekCAQAAAAEJCgAAswUAIAsAALQFACAMAAC1BQAgEAAAtwUAIBEAALgFACDUAgEAAAAB1wIBAAAAAfYCAQAAAAH3AgEAAAABAgAAABQAICUAAKgGACADAAAAFAAgJQAAqAYAICYAAKcGACABHgAA_AcAMAIAAAAUACAeAACnBgAgAgAAAMUFACAeAACmBgAgBNQCAQDxBAAh1wIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCQoAAJUFACALAACWBQAgDAAAlwUAIBAAAJkFACARAACaBQAg1AIBAPEEACHXAgEA8QQAIfYCAQDxBAAh9wIBAPEEACEJCgAAswUAIAsAALQFACAMAAC1BQAgEAAAtwUAIBEAALgFACDUAgEAAAAB1wIBAAAAAfYCAQAAAAH3AgEAAAABCAYAAN4FACAMAADfBQAgFAAA4QUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAH8AgEAAAABAgAAAA8AICUAALEGACADAAAADwAgJQAAsQYAICYAALAGACABHgAA-wcAMAIAAAAPACAeAACwBgAgAgAAAIUGACAeAACvBgAgBdQCAQDxBAAh1wIBAPEEACHZAkAA8gQAIdoCQADyBAAh_AIBAPEEACEIBgAAzgUAIAwAAM8FACAUAADRBQAg1AIBAPEEACHXAgEA8QQAIdkCQADyBAAh2gJAAPIEACH8AgEA8QQAIQgGAADeBQAgDAAA3wUAIBQAAOEFACDUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB_AIBAAAAAQQlAACpBgAwqgMAAKoGADCsAwAArAYAILADAACBBgAwBCUAAKAGADCqAwAAoQYAMKwDAACjBgAgsAMAAMEFADAEJQAAlAYAMKoDAACVBgAwrAMAAJcGACCwAwAAmAYAMAAAAAABrQMAAACBAwIFJQAA8wcAICYAAPkHACCqAwAA9AcAIKsDAAD4BwAgsAMAAO0BACAFJQAA8QcAICYAAPYHACCqAwAA8gcAIKsDAAD1BwAgsAMAANUBACADJQAA8wcAIKoDAAD0BwAgsAMAAO0BACADJQAA8QcAIKoDAADyBwAgsAMAANUBACAAAAALJQAAwgYAMCYAAMcGADCqAwAAwwYAMKsDAADEBgAwrAMAAMUGACCtAwAAxgYAMK4DAADGBgAwrwMAAMYGADCwAwAAxgYAMLEDAADIBgAwsgMAAMkGADAEBgAAvQYAINQCAQAAAAH8AgEAAAABgQMAAACBAwICAAAAPQAgJQAAzQYAIAMAAAA9ACAlAADNBgAgJgAAzAYAIAEeAADwBwAwCgYAANMEACAWAADSBAAg0QIAANAEADDSAgAAOwAQ0wIAANAEADDUAgEAAAAB_AIBAKEEACGBAwAA0QSBAyKCAwEAoQQAIaQDAADPBAAgAgAAAD0AIB4AAMwGACACAAAAygYAIB4AAMsGACAH0QIAAMkGADDSAgAAygYAENMCAADJBgAw1AIBAKEEACH8AgEAoQQAIYEDAADRBIEDIoIDAQChBAAhB9ECAADJBgAw0gIAAMoGABDTAgAAyQYAMNQCAQChBAAh_AIBAKEEACGBAwAA0QSBAyKCAwEAoQQAIQPUAgEA8QQAIfwCAQDxBAAhgQMAALkGgQMiBAYAALsGACDUAgEA8QQAIfwCAQDxBAAhgQMAALkGgQMiBAYAAL0GACDUAgEAAAAB_AIBAAAAAYEDAAAAgQMCBCUAAMIGADCqAwAAwwYAMKwDAADFBgAgsAMAAMYGADAAAAAAAa0DAAAAiQMCAa0DQAAAAAEFJQAA6QcAICYAAO4HACCqAwAA6gcAIKsDAADtBwAgsAMAAAEAIAslAADhBgAwJgAA5QYAMKoDAADiBgAwqwMAAOMGADCsAwAA5AYAIK0DAACBBgAwrgMAAIEGADCvAwAAgQYAMLADAACBBgAwsQMAAOYGADCyAwAAhAYAMAslAADYBgAwJgAA3AYAMKoDAADZBgAwqwMAANoGADCsAwAA2wYAIK0DAADGBgAwrgMAAMYGADCvAwAAxgYAMLADAADGBgAwsQMAAN0GADCyAwAAyQYAMAQWAAC8BgAg1AIBAAAAAYEDAAAAgQMCggMBAAAAAQIAAAA9ACAlAADgBgAgAwAAAD0AICUAAOAGACAmAADfBgAgAR4AAOwHADACAAAAPQAgHgAA3wYAIAIAAADKBgAgHgAA3gYAIAPUAgEA8QQAIYEDAAC5BoEDIoIDAQDxBAAhBBYAALoGACDUAgEA8QQAIYEDAAC5BoEDIoIDAQDxBAAhBBYAALwGACDUAgEAAAABgQMAAACBAwKCAwEAAAABCAwAAN8FACANAADgBQAgFAAA4QUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAABAgAAAA8AICUAAOkGACADAAAADwAgJQAA6QYAICYAAOgGACABHgAA6wcAMAIAAAAPACAeAADoBgAgAgAAAIUGACAeAADnBgAgBdQCAQDxBAAh1wIBAPEEACHZAkAA8gQAIdoCQADyBAAh5gIBAPEEACEIDAAAzwUAIA0AANAFACAUAADRBQAg1AIBAPEEACHXAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIQgMAADfBQAgDQAA4AUAIBQAAOEFACDUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAQMlAADpBwAgqgMAAOoHACCwAwAAAQAgBCUAAOEGADCqAwAA4gYAMKwDAADkBgAgsAMAAIEGADAEJQAA2AYAMKoDAADZBgAwrAMAANsGACCwAwAAxgYAMAsEAADEBwAgBQAAxQcAIAYAAMYHACAKAADHBwAgGAAAyAcAIJwDAADtBAAgngMAAO0EACCfAwAA7QQAIKADAADtBAAgoQMAAO0EACCiAwAA7QQAIAAAAAUlAADjBwAgJgAA5wcAIKoDAADkBwAgqwMAAOYHACCwAwAAAQAgCyUAAPMGADAmAAD3BgAwqgMAAPQGADCrAwAA9QYAMKwDAAD2BgAgrQMAAMEFADCuAwAAwQUAMK8DAADBBQAwsAMAAMEFADCxAwAA-AYAMLIDAADEBQAwCQsAALQFACAMAAC1BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9wIBAAAAAQIAAAAUACAlAAD7BgAgAwAAABQAICUAAPsGACAmAAD6BgAgAR4AAOUHADACAAAAFAAgHgAA-gYAIAIAAADFBQAgHgAA-QYAIATUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH3AgEA8QQAIQkLAACWBQAgDAAAlwUAIA0AAJgFACAQAACZBQAgEQAAmgUAINQCAQDxBAAh1wIBAPEEACHmAgEA8QQAIfcCAQDxBAAhCQsAALQFACAMAAC1BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9wIBAAAAAQMlAADjBwAgqgMAAOQHACCwAwAAAQAgBCUAAPMGADCqAwAA9AYAMKwDAAD2BgAgsAMAAMEFADAAAAAFJQAA3gcAICYAAOEHACCqAwAA3wcAIKsDAADgBwAgsAMAAAEAIAMlAADeBwAgqgMAAN8HACCwAwAAAQAgAAAAAAAABSUAANkHACAmAADcBwAgqgMAANoHACCrAwAA2wcAILADAAABACADJQAA2QcAIKoDAADaBwAgsAMAAAEAIAAAAAUlAADUBwAgJgAA1wcAIKoDAADVBwAgqwMAANYHACCwAwAAAQAgAyUAANQHACCqAwAA1QcAILADAAABACAAAAALJQAAswcAMCYAALgHADCqAwAAtAcAMKsDAAC1BwAwrAMAALYHACCtAwAAtwcAMK4DAAC3BwAwrwMAALcHADCwAwAAtwcAMLEDAAC5BwAwsgMAALoHADALJQAApwcAMCYAAKwHADCqAwAAqAcAMKsDAACpBwAwrAMAAKoHACCtAwAAqwcAMK4DAACrBwAwrwMAAKsHADCwAwAAqwcAMLEDAACtBwAwsgMAAK4HADAHJQAAogcAICYAAKUHACCqAwAAowcAIKsDAACkBwAgrgMAAAsAIK8DAAALACCwAwAA1QEAIAclAACdBwAgJgAAoAcAIKoDAACeBwAgqwMAAJ8HACCuAwAAQwAgrwMAAEMAILADAAC9AQAgByUAAJgHACAmAACbBwAgqgMAAJkHACCrAwAAmgcAIK4DAABFACCvAwAARQAgsAMAAKUBACAE1AIBAAAAAdkCQAAAAAHaAkAAAAABiwMBAAAAAQIAAAClAQAgJQAAmAcAIAMAAABFACAlAACYBwAgJgAAnAcAIAYAAABFACAeAACcBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhiwMBAPEEACEE1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhiwMBAPEEACEJCAAA_QYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYMDAQAAAAGEAwEAAAABiQMAAACJAwKKA0AAAAABiwMBAAAAAQIAAAC9AQAgJQAAnQcAIAMAAABDACAlAACdBwAgJgAAoQcAIAsAAABDACAIAADyBgAgHgAAoQcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGJAwAA0waJAyKKA0AA1AYAIYsDAQDxBAAhCQgAAPIGACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGDAwEA8wQAIYQDAQDzBAAhiQMAANMGiQMiigNAANQGACGLAwEA8QQAIQsHAADrBgAgFwAA7AYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYMDAQAAAAGEAwEAAAABhgMBAAAAAYcDAQAAAAGJAwAAAIkDAooDQAAAAAECAAAA1QEAICUAAKIHACADAAAACwAgJQAAogcAICYAAKYHACANAAAACwAgBwAA1gYAIBcAANcGACAeAACmBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhgwMBAPMEACGEAwEA8wQAIYYDAQDxBAAhhwMBAPMEACGJAwAA0waJAyKKA0AA1AYAIQsHAADWBgAgFwAA1wYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGGAwEA8QQAIYcDAQDzBAAhiQMAANMGiQMiigNAANQGACEM1AIBAAAAAdkCQAAAAAHaAkAAAAABjwMBAAAAAZADAQAAAAGRAwEAAAABkgMBAAAAAZMDAQAAAAGUA0AAAAABlQNAAAAAAZYDAQAAAAGXAwEAAAABAgAAAAkAICUAALIHACADAAAACQAgJQAAsgcAICYAALEHACABHgAA0wcAMBEDAAC_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_BwAgBQAAwAcAIAYAAMEHACAKAADCBwAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAZsDAQAAAAGcAwEAAAABnQMBAAAAAZ4DAQAAAAGfA0AAAAABoAMBAAAAAaEDQAAAAAGiA0AAAAABowMgAAAAAQIAAAABACAlAADeBwAgAwAAAEoAICUAAN4HACAmAADiBwAgEwAAAEoAIAQAAJMHACAFAACUBwAgBgAAlQcAIAoAAJYHACAeAADiBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACGbAwEA8QQAIZwDAQDzBAAhnQMBAPEEACGeAwEA8wQAIZ8DQADUBgAhoAMBAPMEACGhA0AA1AYAIaIDQADUBgAhowMgAIkFACERBAAAkwcAIAUAAJQHACAGAACVBwAgCgAAlgcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAhmwMBAPEEACGcAwEA8wQAIZ0DAQDxBAAhngMBAPMEACGfA0AA1AYAIaADAQDzBAAhoQNAANQGACGiA0AA1AYAIaMDIACJBQAhEQQAAL8HACAFAADABwAgBgAAwQcAIBgAAMMHACDUAgEAAAAB2QJAAAAAAdoCQAAAAAH4AgEAAAABmwMBAAAAAZwDAQAAAAGdAwEAAAABngMBAAAAAZ8DQAAAAAGgAwEAAAABoQNAAAAAAaIDQAAAAAGjAyAAAAABAgAAAAEAICUAAOMHACAE1AIBAAAAAdcCAQAAAAHmAgEAAAAB9wIBAAAAAQMAAABKACAlAADjBwAgJgAA6AcAIBMAAABKACAEAACTBwAgBQAAlAcAIAYAAJUHACAYAACXBwAgHgAA6AcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAhmwMBAPEEACGcAwEA8wQAIZ0DAQDxBAAhngMBAPMEACGfA0AA1AYAIaADAQDzBAAhoQNAANQGACGiA0AA1AYAIaMDIACJBQAhEQQAAJMHACAFAACUBwAgBgAAlQcAIBgAAJcHACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIZsDAQDxBAAhnAMBAPMEACGdAwEA8QQAIZ4DAQDzBAAhnwNAANQGACGgAwEA8wQAIaEDQADUBgAhogNAANQGACGjAyAAiQUAIREEAAC_BwAgBQAAwAcAIAoAAMIHACAYAADDBwAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAZsDAQAAAAGcAwEAAAABnQMBAAAAAZ4DAQAAAAGfA0AAAAABoAMBAAAAAaEDQAAAAAGiA0AAAAABowMgAAAAAQIAAAABACAlAADpBwAgBdQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAABA9QCAQAAAAGBAwAAAIEDAoIDAQAAAAEDAAAASgAgJQAA6QcAICYAAO8HACATAAAASgAgBAAAkwcAIAUAAJQHACAKAACWBwAgGAAAlwcAIB4AAO8HACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIZsDAQDxBAAhnAMBAPMEACGdAwEA8QQAIZ4DAQDzBAAhnwNAANQGACGgAwEA8wQAIaEDQADUBgAhogNAANQGACGjAyAAiQUAIREEAACTBwAgBQAAlAcAIAoAAJYHACAYAACXBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACGbAwEA8QQAIZwDAQDzBAAhnQMBAPEEACGeAwEA8wQAIZ8DQADUBgAhoAMBAPMEACGhA0AA1AYAIaIDQADUBgAhowMgAIkFACED1AIBAAAAAfwCAQAAAAGBAwAAAIEDAgwDAADqBgAgBwAA6wYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYMDAQAAAAGEAwEAAAABhQMBAAAAAYYDAQAAAAGHAwEAAAABiQMAAACJAwKKA0AAAAABAgAAANUBACAlAADxBwAgBtQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAGDAwEAAAABhAMBAAAAAQIAAADtAQAgJQAA8wcAIAMAAAALACAlAADxBwAgJgAA9wcAIA4AAAALACADAADVBgAgBwAA1gYAIB4AAPcHACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGDAwEA8wQAIYQDAQDzBAAhhQMBAPEEACGGAwEA8QQAIYcDAQDzBAAhiQMAANMGiQMiigNAANQGACEMAwAA1QYAIAcAANYGACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGDAwEA8wQAIYQDAQDzBAAhhQMBAPEEACGGAwEA8QQAIYcDAQDzBAAhiQMAANMGiQMiigNAANQGACEDAAAA8AEAICUAAPMHACAmAAD6BwAgCAAAAPABACAeAAD6BwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACGDAwEA8wQAIYQDAQDzBAAhBtQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAhgwMBAPMEACGEAwEA8wQAIQXUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB_AIBAAAAAQTUAgEAAAAB1wIBAAAAAfYCAQAAAAH3AgEAAAABBtQCAQAAAAHZAkAAAAAB2gJAAAAAAecCEAAAAAHoAgEAAAAB6QIBAAAAAQXUAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_AIBAAAAAQTUAgEAAAAB5gIBAAAAAfYCAQAAAAH3AgEAAAABBtQCAQAAAAHVAgEAAAAB1gIBAAAAAdgCQAAAAAHZAkAAAAAB2gJAAAAAAQkIAACzBgAgDgAAtAYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAH9AkAAAAAB_gJAAAAAAf8CIAAAAAECAAAAnAIAICUAAIEIACAECAAAigYAIBIAAIsGACDUAgEAAAAB-AIBAAAAAQIAAAC1AgAgJQAAgwgAIAwDAADqBgAgFwAA7AYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYMDAQAAAAGEAwEAAAABhQMBAAAAAYYDAQAAAAGHAwEAAAABiQMAAACJAwKKA0AAAAABAgAAANUBACAlAACFCAAgBNQCAQAAAAHZAkAAAAAB8QJAAAAAAfICIAAAAAEDAAAAnwIAICUAAIEIACAmAACKCAAgCwAAAJ8CACAIAACSBgAgDgAAkwYAIB4AAIoIACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIf0CQADyBAAh_gJAAPIEACH_AiAAiQUAIQkIAACSBgAgDgAAkwYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_QJAAPIEACH-AkAA8gQAIf8CIACJBQAhAwAAADEAICUAAIMIACAmAACNCAAgBgAAADEAIAgAAOYFACASAADnBQAgHgAAjQgAINQCAQDxBAAh-AIBAPEEACEECAAA5gUAIBIAAOcFACDUAgEA8QQAIfgCAQDxBAAhAwAAAAsAICUAAIUIACAmAACQCAAgDgAAAAsAIAMAANUGACAXAADXBgAgHgAAkAgAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGFAwEA8QQAIYYDAQDxBAAhhwMBAPMEACGJAwAA0waJAyKKA0AA1AYAIQwDAADVBgAgFwAA1wYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGFAwEA8QQAIYYDAQDxBAAhhwMBAPMEACGJAwAA0waJAyKKA0AA1AYAIQTUAgEAAAAB1wIBAAAAAeYCAQAAAAH2AgEAAAABCQcAALIGACAOAAC0BgAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAf0CQAAAAAH-AkAAAAAB_wIgAAAAAQIAAACcAgAgJQAAkggAIAQHAACJBgAgEgAAiwYAINQCAQAAAAH4AgEAAAABAgAAALUCACAlAACUCAAgBdQCAQAAAAHZAkAAAAAB2gJAAAAAAeoCAQAAAAH4AgEAAAABAgAAAOMCACAlAACWCAAgCgMAAPwGACDUAgEAAAAB2QJAAAAAAdoCQAAAAAGDAwEAAAABhAMBAAAAAYUDAQAAAAGJAwAAAIkDAooDQAAAAAGLAwEAAAABAgAAAL0BACAlAACYCAAgBdQCAQAAAAHtAkAAAAAB7gJAAAAAAfQCAAAA9AIC9QIBAAAAAQnUAgEAAAAB1QIBAAAAAdkCQAAAAAHaAkAAAAAB6gIBAAAAAesCEAAAAAHsAhAAAAAB7QJAAAAAAe4CQAAAAAEDAAAAnwIAICUAAJIIACAmAACeCAAgCwAAAJ8CACAHAACRBgAgDgAAkwYAIB4AAJ4IACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIf0CQADyBAAh_gJAAPIEACH_AiAAiQUAIQkHAACRBgAgDgAAkwYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_QJAAPIEACH-AkAA8gQAIf8CIACJBQAhAwAAADEAICUAAJQIACAmAAChCAAgBgAAADEAIAcAAOUFACASAADnBQAgHgAAoQgAINQCAQDxBAAh-AIBAPEEACEEBwAA5QUAIBIAAOcFACDUAgEA8QQAIfgCAQDxBAAhAwAAAOYCACAlAACWCAAgJgAApAgAIAcAAADmAgAgHgAApAgAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeoCAQDzBAAh-AIBAPEEACEF1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh6gIBAPMEACH4AgEA8QQAIQMAAABDACAlAACYCAAgJgAApwgAIAwAAABDACADAADxBgAgHgAApwgAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGFAwEA8QQAIYkDAADTBokDIooDQADUBgAhiwMBAPEEACEKAwAA8QYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYMDAQDzBAAhhAMBAPMEACGFAwEA8QQAIYkDAADTBokDIooDQADUBgAhiwMBAPEEACEKCgAAswUAIAsAALQFACAMAAC1BQAgDQAAtgUAIBEAALgFACDUAgEAAAAB1wIBAAAAAeYCAQAAAAH2AgEAAAAB9wIBAAAAAQIAAAAUACAlAACoCAAgAwAAABIAICUAAKgIACAmAACsCAAgDAAAABIAIAoAAJUFACALAACWBQAgDAAAlwUAIA0AAJgFACARAACaBQAgHgAArAgAINQCAQDxBAAh1wIBAPEEACHmAgEA8QQAIfYCAQDxBAAh9wIBAPEEACEKCgAAlQUAIAsAAJYFACAMAACXBQAgDQAAmAUAIBEAAJoFACDUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCQYAAN4FACAMAADfBQAgDQAA4AUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_AIBAAAAAQIAAAAPACAlAACtCAAgAwAAAA0AICUAAK0IACAmAACxCAAgCwAAAA0AIAYAAM4FACAMAADPBQAgDQAA0AUAIB4AALEIACDUAgEA8QQAIdcCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh_AIBAPEEACEJBgAAzgUAIAwAAM8FACANAADQBQAg1AIBAPEEACHXAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIfwCAQDxBAAhCgoAALMFACALAAC0BQAgDAAAtQUAIA0AALYFACAQAAC3BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9gIBAAAAAfcCAQAAAAECAAAAFAAgJQAAsggAIAMAAAASACAlAACyCAAgJgAAtggAIAwAAAASACAKAACVBQAgCwAAlgUAIAwAAJcFACANAACYBQAgEAAAmQUAIB4AALYIACDUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCgoAAJUFACALAACWBQAgDAAAlwUAIA0AAJgFACAQAACZBQAg1AIBAPEEACHXAgEA8QQAIeYCAQDxBAAh9gIBAPEEACH3AgEA8QQAIQkHAACyBgAgCAAAswYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAH9AkAAAAAB_gJAAAAAAf8CIAAAAAECAAAAnAIAICUAALcIACADAAAAnwIAICUAALcIACAmAAC7CAAgCwAAAJ8CACAHAACRBgAgCAAAkgYAIB4AALsIACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIf0CQADyBAAh_gJAAPIEACH_AiAAiQUAIQkHAACRBgAgCAAAkgYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_QJAAPIEACH-AkAA8gQAIf8CIACJBQAhBAcAAIkGACAIAACKBgAg1AIBAAAAAfgCAQAAAAECAAAAtQIAICUAALwIACADAAAAMQAgJQAAvAgAICYAAMAIACAGAAAAMQAgBwAA5QUAIAgAAOYFACAeAADACAAg1AIBAPEEACH4AgEA8QQAIQQHAADlBQAgCAAA5gUAINQCAQDxBAAh-AIBAPEEACEGBAYCBQoDBgwECQAbCkQIGEYaAQMAAQEDAAEEAwABBxAFCQAZFz4WBQYABAkAFQwABg0ADBQ5FAQHEQUIFQcJABMSMBIHCQARCgAICwAKDAAGDQAMECYPESoQAwMAAQgWBwkACQEIFwACCBgHCQALAQgZAAQHGgUIGwcJAA4OHw0BDQAMAwcgAAghAA4iAAEPAAcBDwAHAhArABEsAAEMMgYDBzMACDQAEjUAARMABQEUOgACBgAEFgAXAgkAGBU_FgEVQAACB0EAF0IAAQMAAQIERwAFSAAAAAADCQAgKwAhLAAiAAAAAwkAICsAISwAIgEDAAEBAwABAwkAJysAKCwAKQAAAAMJACcrACgsACkBAwABAQMAAQMJAC4rAC8sADAAAAADCQAuKwAvLAAwAAAAAwkANisANywAOAAAAAMJADYrADcsADgBAwABAQMAAQMJAD0rAD4sAD8AAAADCQA9KwA-LAA_AQMAAQEDAAEDCQBEKwBFLABGAAAAAwkARCsARSwARgEDAAEBAwABAwkASysATCwATQAAAAMJAEsrAEwsAE0AAAMJAFIrAFMsAFQAAAADCQBSKwBTLABUAgYABBYAFwIGAAQWABcDCQBZKwBaLABbAAAAAwkAWSsAWiwAWwAAAwkAYCsAYSwAYgAAAAMJAGArAGEsAGIAAAMJAGcrAGgsAGkAAAADCQBnKwBoLABpAwYABAwABg0ADAMGAAQMAAYNAAwDCQBuKwBvLABwAAAAAwkAbisAbywAcAAAAwkAdSsAdiwAdwAAAAMJAHUrAHYsAHcECgAICwAKDAAGDQAMBAoACAsACgwABg0ADAMJAHwrAH0sAH4AAAADCQB8KwB9LAB-AQ8ABwEPAAcDCQCDASsAhAEsAIUBAAAAAwkAgwErAIQBLACFAQETAAUBEwAFAwkAigErAIsBLACMAQAAAAMJAIoBKwCLASwAjAEBDwAHAQ8ABwUJAJEBKwCUASwAlQGtAgCSAa4CAJMBAAAAAAAFCQCRASsAlAEsAJUBrQIAkgGuAgCTAQENAAwBDQAMBQkAmgErAJ0BLACeAa0CAJsBrgIAnAEAAAAAAAUJAJoBKwCdASwAngGtAgCbAa4CAJwBAQz0AwYBDPoDBgMJAKMBKwCkASwApQEAAAADCQCjASsApAEsAKUBGQIBGkkBG0wBHE0BHU4BH1ABIFIcIVMdIlUBI1ccJFgeJ1kBKFoBKVscLV4fLl8jL2ACMGECMWICMmMCM2QCNGYCNWgcNmkkN2sCOG0cOW4lOm8CO3ACPHEcPXQmPnUqP3YDQHcDQXgDQnkDQ3oDRHwDRX4cRn8rR4EBA0iDARxJhAEsSoUBA0uGAQNMhwEcTYoBLU6LATFPjQEyUI4BMlGRATJSkgEyU5MBMlSVATJVlwEcVpgBM1eaATJYnAEcWZ0BNFqeATJbnwEyXKABHF2jATVepAE5X6YBGmCnARphqQEaYqoBGmOrARpkrQEaZa8BHGawATpnsgEaaLQBHGm1ATtqtgEaa7cBGmy4ARxtuwE8brwBQG--AQhwvwEIccEBCHLCAQhzwwEIdMUBCHXHARx2yAFBd8oBCHjMARx5zQFCes4BCHvPAQh80AEcfdMBQ37UAUd_1gEEgAHXAQSBAdkBBIIB2gEEgwHbAQSEAd0BBIUB3wEchgHgAUiHAeIBBIgB5AEciQHlAUmKAeYBBIsB5wEEjAHoARyNAesBSo4B7AFOjwHuAReQAe8BF5EB8gEXkgHzAReTAfQBF5QB9gEXlQH4ARyWAfkBT5cB-wEXmAH9ARyZAf4BUJoB_wEXmwGAAhecAYECHJ0BhAJRngGFAlWfAYYCFqABhwIWoQGIAhaiAYkCFqMBigIWpAGMAhalAY4CHKYBjwJWpwGRAhaoAZMCHKkBlAJXqgGVAharAZYCFqwBlwIcrQGaAliuAZsCXK8BnQIMsAGeAgyxAaECDLIBogIMswGjAgy0AaUCDLUBpwIctgGoAl23AaoCDLgBrAIcuQGtAl66Aa4CDLsBrwIMvAGwAhy9AbMCX74BtAJjvwG2AgbAAbcCBsEBuQIGwgG6AgbDAbsCBsQBvQIGxQG_AhzGAcACZMcBwgIGyAHEAhzJAcUCZcoBxgIGywHHAgbMAcgCHM0BywJmzgHMAmrPAc0CBdABzgIF0QHPAgXSAdACBdMB0QIF1AHTAgXVAdUCHNYB1gJr1wHYAgXYAdoCHNkB2wJs2gHcAgXbAd0CBdwB3gIc3QHhAm3eAeICcd8B5AIK4AHlAgrhAegCCuIB6QIK4wHqAgrkAewCCuUB7gIc5gHvAnLnAfECCugB8wIc6QH0AnPqAfUCCusB9gIK7AH3AhztAfoCdO4B-wJ47wH8AgfwAf0CB_EB_gIH8gH_AgfzAYADB_QBggMH9QGEAxz2AYUDefcBhwMH-AGJAxz5AYoDevoBiwMH-wGMAwf8AY0DHP0BkAN7_gGRA3__AZIDD4ACkwMPgQKUAw-CApUDD4MClgMPhAKYAw-FApoDHIYCmwOAAYcCnQMPiAKfAxyJAqADgQGKAqEDD4sCogMPjAKjAxyNAqYDggGOAqcDhgGPAqgDFJACqQMUkQKqAxSSAqsDFJMCrAMUlAKuAxSVArADHJYCsQOHAZcCswMUmAK1AxyZArYDiAGaArcDFJsCuAMUnAK5AxydArwDiQGeAr0DjQGfAr4DEKACvwMQoQLAAxCiAsEDEKMCwgMQpALEAxClAsYDHKYCxwOOAacCyQMQqALLAxypAswDjwGqAs0DEKsCzgMQrALPAxyvAtIDkAGwAtMDlgGxAtQDDbIC1QMNswLWAw20AtcDDbUC2AMNtgLaAw23AtwDHLgC3QOXAbkC3wMNugLhAxy7AuIDmAG8AuMDDb0C5AMNvgLlAxy_AugDmQHAAukDnwHBAuoDEsIC6wMSwwLsAxLEAu0DEsUC7gMSxgLwAxLHAvIDHMgC8wOgAckC9gMSygL4AxzLAvkDoQHMAvsDEs0C_AMSzgL9AxzPAoAEogHQAoEEpgE" + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"sessions\",\"accounts\",\"student\",\"enrollments\",\"teachingAllocations\",\"_count\",\"teacher\",\"subject\",\"class\",\"academicYear\",\"results\",\"teachingAllocation\",\"timetableEntries\",\"exams\",\"announcements\",\"enrollment\",\"attendances\",\"students\",\"parent\",\"parents\",\"admin\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Verification.findUnique\",\"Verification.findUniqueOrThrow\",\"Verification.findFirst\",\"Verification.findFirstOrThrow\",\"Verification.findMany\",\"Verification.createOne\",\"Verification.createMany\",\"Verification.createManyAndReturn\",\"Verification.updateOne\",\"Verification.updateMany\",\"Verification.updateManyAndReturn\",\"Verification.upsertOne\",\"Verification.deleteOne\",\"Verification.deleteMany\",\"Verification.groupBy\",\"Verification.aggregate\",\"Admin.findUnique\",\"Admin.findUniqueOrThrow\",\"Admin.findFirst\",\"Admin.findFirstOrThrow\",\"Admin.findMany\",\"Admin.createOne\",\"Admin.createMany\",\"Admin.createManyAndReturn\",\"Admin.updateOne\",\"Admin.updateMany\",\"Admin.updateManyAndReturn\",\"Admin.upsertOne\",\"Admin.deleteOne\",\"Admin.deleteMany\",\"Admin.groupBy\",\"Admin.aggregate\",\"Teacher.findUnique\",\"Teacher.findUniqueOrThrow\",\"Teacher.findFirst\",\"Teacher.findFirstOrThrow\",\"Teacher.findMany\",\"Teacher.createOne\",\"Teacher.createMany\",\"Teacher.createManyAndReturn\",\"Teacher.updateOne\",\"Teacher.updateMany\",\"Teacher.updateManyAndReturn\",\"Teacher.upsertOne\",\"Teacher.deleteOne\",\"Teacher.deleteMany\",\"Teacher.groupBy\",\"Teacher.aggregate\",\"Student.findUnique\",\"Student.findUniqueOrThrow\",\"Student.findFirst\",\"Student.findFirstOrThrow\",\"Student.findMany\",\"Student.createOne\",\"Student.createMany\",\"Student.createManyAndReturn\",\"Student.updateOne\",\"Student.updateMany\",\"Student.updateManyAndReturn\",\"Student.upsertOne\",\"Student.deleteOne\",\"Student.deleteMany\",\"Student.groupBy\",\"Student.aggregate\",\"Parent.findUnique\",\"Parent.findUniqueOrThrow\",\"Parent.findFirst\",\"Parent.findFirstOrThrow\",\"Parent.findMany\",\"Parent.createOne\",\"Parent.createMany\",\"Parent.createManyAndReturn\",\"Parent.updateOne\",\"Parent.updateMany\",\"Parent.updateManyAndReturn\",\"Parent.upsertOne\",\"Parent.deleteOne\",\"Parent.deleteMany\",\"Parent.groupBy\",\"Parent.aggregate\",\"ParentStudent.findUnique\",\"ParentStudent.findUniqueOrThrow\",\"ParentStudent.findFirst\",\"ParentStudent.findFirstOrThrow\",\"ParentStudent.findMany\",\"ParentStudent.createOne\",\"ParentStudent.createMany\",\"ParentStudent.createManyAndReturn\",\"ParentStudent.updateOne\",\"ParentStudent.updateMany\",\"ParentStudent.updateManyAndReturn\",\"ParentStudent.upsertOne\",\"ParentStudent.deleteOne\",\"ParentStudent.deleteMany\",\"ParentStudent.groupBy\",\"ParentStudent.aggregate\",\"AcademicYear.findUnique\",\"AcademicYear.findUniqueOrThrow\",\"AcademicYear.findFirst\",\"AcademicYear.findFirstOrThrow\",\"AcademicYear.findMany\",\"AcademicYear.createOne\",\"AcademicYear.createMany\",\"AcademicYear.createManyAndReturn\",\"AcademicYear.updateOne\",\"AcademicYear.updateMany\",\"AcademicYear.updateManyAndReturn\",\"AcademicYear.upsertOne\",\"AcademicYear.deleteOne\",\"AcademicYear.deleteMany\",\"AcademicYear.groupBy\",\"AcademicYear.aggregate\",\"Class.findUnique\",\"Class.findUniqueOrThrow\",\"Class.findFirst\",\"Class.findFirstOrThrow\",\"Class.findMany\",\"Class.createOne\",\"Class.createMany\",\"Class.createManyAndReturn\",\"Class.updateOne\",\"Class.updateMany\",\"Class.updateManyAndReturn\",\"Class.upsertOne\",\"Class.deleteOne\",\"Class.deleteMany\",\"Class.groupBy\",\"Class.aggregate\",\"Enrollment.findUnique\",\"Enrollment.findUniqueOrThrow\",\"Enrollment.findFirst\",\"Enrollment.findFirstOrThrow\",\"Enrollment.findMany\",\"Enrollment.createOne\",\"Enrollment.createMany\",\"Enrollment.createManyAndReturn\",\"Enrollment.updateOne\",\"Enrollment.updateMany\",\"Enrollment.updateManyAndReturn\",\"Enrollment.upsertOne\",\"Enrollment.deleteOne\",\"Enrollment.deleteMany\",\"Enrollment.groupBy\",\"Enrollment.aggregate\",\"Subject.findUnique\",\"Subject.findUniqueOrThrow\",\"Subject.findFirst\",\"Subject.findFirstOrThrow\",\"Subject.findMany\",\"Subject.createOne\",\"Subject.createMany\",\"Subject.createManyAndReturn\",\"Subject.updateOne\",\"Subject.updateMany\",\"Subject.updateManyAndReturn\",\"Subject.upsertOne\",\"Subject.deleteOne\",\"Subject.deleteMany\",\"Subject.groupBy\",\"Subject.aggregate\",\"TeachingAllocation.findUnique\",\"TeachingAllocation.findUniqueOrThrow\",\"TeachingAllocation.findFirst\",\"TeachingAllocation.findFirstOrThrow\",\"TeachingAllocation.findMany\",\"TeachingAllocation.createOne\",\"TeachingAllocation.createMany\",\"TeachingAllocation.createManyAndReturn\",\"TeachingAllocation.updateOne\",\"TeachingAllocation.updateMany\",\"TeachingAllocation.updateManyAndReturn\",\"TeachingAllocation.upsertOne\",\"TeachingAllocation.deleteOne\",\"TeachingAllocation.deleteMany\",\"TeachingAllocation.groupBy\",\"TeachingAllocation.aggregate\",\"Timetable.findUnique\",\"Timetable.findUniqueOrThrow\",\"Timetable.findFirst\",\"Timetable.findFirstOrThrow\",\"Timetable.findMany\",\"Timetable.createOne\",\"Timetable.createMany\",\"Timetable.createManyAndReturn\",\"Timetable.updateOne\",\"Timetable.updateMany\",\"Timetable.updateManyAndReturn\",\"Timetable.upsertOne\",\"Timetable.deleteOne\",\"Timetable.deleteMany\",\"Timetable.groupBy\",\"Timetable.aggregate\",\"Attendance.findUnique\",\"Attendance.findUniqueOrThrow\",\"Attendance.findFirst\",\"Attendance.findFirstOrThrow\",\"Attendance.findMany\",\"Attendance.createOne\",\"Attendance.createMany\",\"Attendance.createManyAndReturn\",\"Attendance.updateOne\",\"Attendance.updateMany\",\"Attendance.updateManyAndReturn\",\"Attendance.upsertOne\",\"Attendance.deleteOne\",\"Attendance.deleteMany\",\"Attendance.groupBy\",\"Attendance.aggregate\",\"Exam.findUnique\",\"Exam.findUniqueOrThrow\",\"Exam.findFirst\",\"Exam.findFirstOrThrow\",\"Exam.findMany\",\"Exam.createOne\",\"Exam.createMany\",\"Exam.createManyAndReturn\",\"Exam.updateOne\",\"Exam.updateMany\",\"Exam.updateManyAndReturn\",\"Exam.upsertOne\",\"Exam.deleteOne\",\"Exam.deleteMany\",\"_avg\",\"_sum\",\"Exam.groupBy\",\"Exam.aggregate\",\"Result.findUnique\",\"Result.findUniqueOrThrow\",\"Result.findFirst\",\"Result.findFirstOrThrow\",\"Result.findMany\",\"Result.createOne\",\"Result.createMany\",\"Result.createManyAndReturn\",\"Result.updateOne\",\"Result.updateMany\",\"Result.updateManyAndReturn\",\"Result.upsertOne\",\"Result.deleteOne\",\"Result.deleteMany\",\"Result.groupBy\",\"Result.aggregate\",\"Announcement.findUnique\",\"Announcement.findUniqueOrThrow\",\"Announcement.findFirst\",\"Announcement.findFirstOrThrow\",\"Announcement.findMany\",\"Announcement.createOne\",\"Announcement.createMany\",\"Announcement.createManyAndReturn\",\"Announcement.updateOne\",\"Announcement.updateMany\",\"Announcement.updateManyAndReturn\",\"Announcement.upsertOne\",\"Announcement.deleteOne\",\"Announcement.deleteMany\",\"Announcement.groupBy\",\"Announcement.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"title\",\"content\",\"classId\",\"publishedAt\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"academicYearId\",\"score\",\"grade\",\"comment\",\"description\",\"totalMarks\",\"passMarks\",\"startTime\",\"endTime\",\"teachingAllocationId\",\"enrollmentId\",\"date\",\"present\",\"Day\",\"day\",\"room\",\"teacherId\",\"subjectId\",\"name\",\"every\",\"some\",\"none\",\"studentId\",\"deletedAt\",\"startDate\",\"endDate\",\"isCurrent\",\"ParentRelationship\",\"relationship\",\"parentId\",\"phone\",\"address\",\"userId\",\"studentNumber\",\"bloodGroup\",\"UserGender\",\"gender\",\"dateOfBirth\",\"employeeCode\",\"identifier\",\"value\",\"expiresAt\",\"accountId\",\"providerId\",\"accessToken\",\"refreshToken\",\"idToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"email\",\"image\",\"role\",\"setPasswordToken\",\"setPasswordTokenExpires\",\"resetPasswordToken\",\"resetPasswordTokenExpires\",\"lastLoginAt\",\"emailVerified\",\"parentId_studentId\",\"enrollmentId_date\",\"teacherId_subjectId_classId_academicYearId\",\"studentId_academicYearId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "wAimAbACFQQAAMoEACAFAADLBAAgBgAAzAQAIAoAAM0EACAYAADOBAAg0QIAAMkEADDSAgAASgAQ0wIAAMkEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIfgCAQChBAAhnAMBAAAAAZ0DAQCiBAAhngMBAKEEACGfAwEAogQAIaADQACrBAAhoQMBAKIEACGiA0AAqwQAIaMDQACrBAAhpAMgALAEACEBAAAAAQAgDAMAAL8EACDRAgAA7AQAMNICAAADABDTAgAA7AQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhjwNAAKMEACGZAwEAoQQAIZoDAQCiBAAhmwMBAKIEACEDAwAA7QYAIJoDAADtBAAgmwMAAO0EACAMAwAAvwQAINECAADsBAAw0gIAAAMAENMCAADsBAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACGGAwEAoQQAIY8DQACjBAAhmQMBAAAAAZoDAQCiBAAhmwMBAKIEACEDAAAAAwAgAQAABAAwAgAABQAgEQMAAL8EACDRAgAA6wQAMNICAAAHABDTAgAA6wQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhkAMBAKEEACGRAwEAoQQAIZIDAQCiBAAhkwMBAKIEACGUAwEAogQAIZUDQACrBAAhlgNAAKsEACGXAwEAogQAIZgDAQCiBAAhCAMAAO0GACCSAwAA7QQAIJMDAADtBAAglAMAAO0EACCVAwAA7QQAIJYDAADtBAAglwMAAO0EACCYAwAA7QQAIBEDAAC_BAAg0QIAAOsEADDSAgAABwAQ0wIAAOsEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIYYDAQChBAAhkAMBAKEEACGRAwEAoQQAIZIDAQCiBAAhkwMBAKIEACGUAwEAogQAIZUDQACrBAAhlgNAAKsEACGXAwEAogQAIZgDAQCiBAAhAwAAAAcAIAEAAAgAMAIAAAkAIBADAAC_BAAgBwAArAQAIBcAALgEACDRAgAAvQQAMNICAAALABDTAgAAvQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYQDAQCiBAAhhQMBAKIEACGGAwEAoQQAIYcDAQChBAAhiAMBAKIEACGKAwAAvgSKAyKLA0AAqwQAIQEAAAALACANBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAKEEACHXAgEAoQQAIdkCQACjBAAh2gJAAKMEACHmAgEAoQQAIfwCAQChBAAhBAYAAMYHACAMAADLBwAgDQAAzQcAIBQAANEHACAOBgAA0wQAIAwAAOUEACANAADgBAAgFAAA6gQAINECAADpBAAw0gIAAA0AENMCAADpBAAw1AIBAAAAAdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACGoAwAA6AQAIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgDgoAAOMEACALAADkBAAgDAAA5QQAIA0AAOAEACAQAADmBAAgEQAA5wQAINECAADiBAAw0gIAABIAENMCAADiBAAw1AIBAKEEACHXAgEAoQQAIeYCAQChBAAh9gIBAKEEACH3AgEAoQQAIQYKAADHBwAgCwAAzgcAIAwAAMsHACANAADNBwAgEAAAzwcAIBEAANAHACAPCgAA4wQAIAsAAOQEACAMAADlBAAgDQAA4AQAIBAAAOYEACARAADnBAAg0QIAAOIEADDSAgAAEgAQ0wIAAOIEADDUAgEAAAAB1wIBAKEEACHmAgEAoQQAIfYCAQChBAAh9wIBAKEEACGnAwAA4QQAIAMAAAASACABAAATADACAAAUACADAAAAEgAgAQAAEwAwAgAAFAAgAQAAABIAIAMAAAASACABAAATADACAAAUACABAAAAEgAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAASACABAAATADACAAAUACALDQAA4AQAINECAADeBAAw0gIAABwAENMCAADeBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACHnAhAA3wQAIegCAQCiBAAh6QIBAKIEACEEDQAAzQcAIOcCAADtBAAg6AIAAO0EACDpAgAA7QQAIAsNAADgBAAg0QIAAN4EADDSAgAAHAAQ0wIAAN4EADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIeYCAQChBAAh5wIQAN8EACHoAgEAogQAIekCAQCiBAAhAwAAABwAIAEAAB0AMAIAAB4AIAEAAAANACABAAAAEgAgAQAAABwAIAoPAADbBAAg0QIAANwEADDSAgAAIwAQ0wIAANwEADDUAgEAoQQAIe0CQACjBAAh7gJAAKMEACHvAgEAoQQAIfQCAADdBPQCIvUCAQCiBAAhAg8AAMwHACD1AgAA7QQAIAoPAADbBAAg0QIAANwEADDSAgAAIwAQ0wIAANwEADDUAgEAAAAB7QJAAKMEACHuAkAAowQAIe8CAQChBAAh9AIAAN0E9AIi9QIBAKIEACEDAAAAIwAgAQAAJAAwAgAAJQAgDg8AANsEACDRAgAA2QQAMNICAAAnABDTAgAA2QQAMNQCAQChBAAh1QIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACHrAhAA2gQAIewCEADaBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAhAg8AAMwHACDqAgAA7QQAIA4PAADbBAAg0QIAANkEADDSAgAAJwAQ0wIAANkEADDUAgEAAAAB1QIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACHrAhAA2gQAIewCEADaBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAhAwAAACcAIAEAACgAMAIAACkAIAEAAAAjACABAAAAJwAgCwwAANgEACDRAgAA1wQAMNICAAAtABDTAgAA1wQAMNQCAQChBAAh1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhAgwAAMsHACDXAgAA7QQAIAsMAADYBAAg0QIAANcEADDSAgAALQAQ0wIAANcEADDUAgEAAAAB1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhAwAAAC0AIAEAAC4AMAIAAC8AIAkHAACsBAAgCAAApAQAIBIAAK0EACDRAgAAqgQAMNICAAAxABDTAgAAqgQAMNQCAQChBAAh-AIBAKEEACH9AkAAqwQAIQEAAAAxACABAAAADQAgAQAAABIAIAEAAAAtACAJEwAA1gQAINECAADVBAAw0gIAADYAENMCAADVBAAw1AIBAKEEACHZAkAAowQAIfACAQChBAAh8QJAAKMEACHyAiAAsAQAIQETAADKBwAgChMAANYEACDRAgAA1QQAMNICAAA2ABDTAgAA1QQAMNQCAQAAAAHZAkAAowQAIfACAQChBAAh8QJAAKMEACHyAiAAsAQAIaYDAADUBAAgAwAAADYAIAEAADcAMAIAADgAIAEAAAA2ACAJBgAA0wQAIBYAANIEACDRAgAA0AQAMNICAAA7ABDTAgAA0AQAMNQCAQChBAAh_AIBAKEEACGCAwAA0QSCAyKDAwEAoQQAIQIGAADGBwAgFgAAyQcAIAoGAADTBAAgFgAA0gQAINECAADQBAAw0gIAADsAENMCAADQBAAw1AIBAAAAAfwCAQChBAAhggMAANEEggMigwMBAKEEACGlAwAAzwQAIAMAAAA7ACABAAA8ADACAAA9ACADAAAAOwAgAQAAPAAwAgAAPQAgAQAAADsAIAEAAAANACABAAAAOwAgDgMAAL8EACAIAACkBAAg0QIAAMEEADDSAgAAQwAQ0wIAAMEEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGEAwEAogQAIYUDAQCiBAAhhgMBAKEEACGKAwAAvgSKAyKLA0AAqwQAIYwDAQChBAAhAQAAAEMAIAkDAAC_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_BAAgCAAApAQAINECAADBBAAw0gIAAEMAENMCAADBBAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACGEAwEAogQAIYUDAQCiBAAhhgMBAAAAAYoDAAC-BIoDIosDQACrBAAhjAMBAAAAAQEAAAC9AQAgAQAAAL0BACAFAwAA7QYAIAgAAMoFACCEAwAA7QQAIIUDAADtBAAgiwMAAO0EACADAAAAQwAgAQAAwAEAMAIAAL0BACADAAAAQwAgAQAAwAEAMAIAAL0BACADAAAAQwAgAQAAwAEAMAIAAL0BACALAwAA_AYAIAgAAP0GACDUAgEAAAAB2QJAAAAAAdoCQAAAAAGEAwEAAAABhQMBAAAAAYYDAQAAAAGKAwAAAIoDAosDQAAAAAGMAwEAAAABAR4AAMQBACAJ1AIBAAAAAdkCQAAAAAHaAkAAAAABhAMBAAAAAYUDAQAAAAGGAwEAAAABigMAAACKAwKLA0AAAAABjAMBAAAAAQEeAADGAQAwAR4AAMYBADALAwAA8QYAIAgAAPIGACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGEAwEA8wQAIYUDAQDzBAAhhgMBAPEEACGKAwAA1AaKAyKLA0AA5QUAIYwDAQDxBAAhAgAAAL0BACAeAADJAQAgCdQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYoDAADUBooDIosDQADlBQAhjAMBAPEEACECAAAAQwAgHgAAywEAIAIAAABDACAeAADLAQAgAwAAAL0BACAlAADEAQAgJgAAyQEAIAEAAAC9AQAgAQAAAEMAIAYJAADuBgAgKwAA8AYAICwAAO8GACCEAwAA7QQAIIUDAADtBAAgiwMAAO0EACAM0QIAAMAEADDSAgAA0gEAENMCAADABAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAhhAMBAIQEACGFAwEAhAQAIYYDAQCDBAAhigMAALoEigMiiwNAAKcEACGMAwEAgwQAIQMAAABDACABAADRAQAwKgAA0gEAIAMAAABDACABAADAAQAwAgAAvQEAIBADAAC_BAAgBwAArAQAIBcAALgEACDRAgAAvQQAMNICAAALABDTAgAAvQQAMNQCAQAAAAHZAkAAowQAIdoCQACjBAAhhAMBAKIEACGFAwEAogQAIYYDAQAAAAGHAwEAAAABiAMBAKIEACGKAwAAvgSKAyKLA0AAqwQAIQEAAADVAQAgAQAAANUBACAHAwAA7QYAIAcAAI0GACAXAADQBgAghAMAAO0EACCFAwAA7QQAIIgDAADtBAAgiwMAAO0EACADAAAACwAgAQAA2AEAMAIAANUBACADAAAACwAgAQAA2AEAMAIAANUBACADAAAACwAgAQAA2AEAMAIAANUBACANAwAA6gYAIAcAAOsGACAXAADsBgAg1AIBAAAAAdkCQAAAAAHaAkAAAAABhAMBAAAAAYUDAQAAAAGGAwEAAAABhwMBAAAAAYgDAQAAAAGKAwAAAIoDAosDQAAAAAEBHgAA3AEAIArUAgEAAAAB2QJAAAAAAdoCQAAAAAGEAwEAAAABhQMBAAAAAYYDAQAAAAGHAwEAAAABiAMBAAAAAYoDAAAAigMCiwNAAAAAAQEeAADeAQAwAR4AAN4BADANAwAA1QYAIAcAANYGACAXAADXBgAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhhAMBAPMEACGFAwEA8wQAIYYDAQDxBAAhhwMBAPEEACGIAwEA8wQAIYoDAADUBooDIosDQADlBQAhAgAAANUBACAeAADhAQAgCtQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYcDAQDxBAAhiAMBAPMEACGKAwAA1AaKAyKLA0AA5QUAIQIAAAALACAeAADjAQAgAgAAAAsAIB4AAOMBACADAAAA1QEAICUAANwBACAmAADhAQAgAQAAANUBACABAAAACwAgBwkAANEGACArAADTBgAgLAAA0gYAIIQDAADtBAAghQMAAO0EACCIAwAA7QQAIIsDAADtBAAgDdECAAC5BAAw0gIAAOoBABDTAgAAuQQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYQDAQCEBAAhhQMBAIQEACGGAwEAgwQAIYcDAQCDBAAhiAMBAIQEACGKAwAAugSKAyKLA0AApwQAIQMAAAALACABAADpAQAwKgAA6gEAIAMAAAALACABAADYAQAwAgAA1QEAIAoVAAC4BAAg0QIAALcEADDSAgAA8AEAENMCAAC3BAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIYQDAQCiBAAhhQMBAKIEACEBAAAA7QEAIAEAAADtAQAgChUAALgEACDRAgAAtwQAMNICAADwAQAQ0wIAALcEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIYQDAQCiBAAhhQMBAKIEACEDFQAA0AYAIIQDAADtBAAghQMAAO0EACADAAAA8AEAIAEAAPEBADACAADtAQAgAwAAAPABACABAADxAQAwAgAA7QEAIAMAAADwAQAgAQAA8QEAMAIAAO0BACAHFQAAzwYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAGEAwEAAAABhQMBAAAAAQEeAAD1AQAgBtQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAGEAwEAAAABhQMBAAAAAQEeAAD3AQAwAR4AAPcBADAHFQAAwgYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAhhAMBAPMEACGFAwEA8wQAIQIAAADtAQAgHgAA-gEAIAbUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIYQDAQDzBAAhhQMBAPMEACECAAAA8AEAIB4AAPwBACACAAAA8AEAIB4AAPwBACADAAAA7QEAICUAAPUBACAmAAD6AQAgAQAAAO0BACABAAAA8AEAIAUJAAC_BgAgKwAAwQYAICwAAMAGACCEAwAA7QQAIIUDAADtBAAgCdECAAC2BAAw0gIAAIMCABDTAgAAtgQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIfgCAQCDBAAhhAMBAIQEACGFAwEAhAQAIQMAAADwAQAgAQAAggIAMCoAAIMCACADAAAA8AEAIAEAAPEBADACAADtAQAgAQAAAD0AIAEAAAA9ACADAAAAOwAgAQAAPAAwAgAAPQAgAwAAADsAIAEAADwAMAIAAD0AIAMAAAA7ACABAAA8ADACAAA9ACAGBgAAvgYAIBYAAL0GACDUAgEAAAAB_AIBAAAAAYIDAAAAggMCgwMBAAAAAQEeAACLAgAgBNQCAQAAAAH8AgEAAAABggMAAACCAwKDAwEAAAABAR4AAI0CADABHgAAjQIAMAYGAAC8BgAgFgAAuwYAINQCAQDxBAAh_AIBAPEEACGCAwAAugaCAyKDAwEA8QQAIQIAAAA9ACAeAACQAgAgBNQCAQDxBAAh_AIBAPEEACGCAwAAugaCAyKDAwEA8QQAIQIAAAA7ACAeAACSAgAgAgAAADsAIB4AAJICACADAAAAPQAgJQAAiwIAICYAAJACACABAAAAPQAgAQAAADsAIAMJAAC3BgAgKwAAuQYAICwAALgGACAH0QIAALIEADDSAgAAmQIAENMCAACyBAAw1AIBAIMEACH8AgEAgwQAIYIDAACzBIIDIoMDAQCDBAAhAwAAADsAIAEAAJgCADAqAACZAgAgAwAAADsAIAEAADwAMAIAAD0AIA0HAACsBAAgCAAApAQAIA4AALEEACDRAgAArwQAMNICAACfAgAQ0wIAAK8EADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIfgCAQAAAAH-AkAAowQAIf8CQACjBAAhgAMgALAEACEBAAAAnAIAIAEAAACcAgAgDQcAAKwEACAIAACkBAAgDgAAsQQAINECAACvBAAw0gIAAJ8CABDTAgAArwQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIfgCAQChBAAh_gJAAKMEACH_AkAAowQAIYADIACwBAAhAwcAAI0GACAIAADKBQAgDgAAtgYAIAMAAACfAgAgAQAAoAIAMAIAAJwCACADAAAAnwIAIAEAAKACADACAACcAgAgAwAAAJ8CACABAACgAgAwAgAAnAIAIAoHAACzBgAgCAAAtAYAIA4AALUGACDUAgEAAAAB2QJAAAAAAdoCQAAAAAH4AgEAAAAB_gJAAAAAAf8CQAAAAAGAAyAAAAABAR4AAKQCACAH1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAf4CQAAAAAH_AkAAAAABgAMgAAAAAQEeAACmAgAwAR4AAKYCADAKBwAAkgYAIAgAAJMGACAOAACUBgAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACH-AkAA8gQAIf8CQADyBAAhgAMgAIkFACECAAAAnAIAIB4AAKkCACAH1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACH-AkAA8gQAIf8CQADyBAAhgAMgAIkFACECAAAAnwIAIB4AAKsCACACAAAAnwIAIB4AAKsCACADAAAAnAIAICUAAKQCACAmAACpAgAgAQAAAJwCACABAAAAnwIAIAMJAACPBgAgKwAAkQYAICwAAJAGACAK0QIAAK4EADDSAgAAsgIAENMCAACuBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACH-AkAAhQQAIf8CQACFBAAhgAMgAJcEACEDAAAAnwIAIAEAALECADAqAACyAgAgAwAAAJ8CACABAACgAgAwAgAAnAIAIAkHAACsBAAgCAAApAQAIBIAAK0EACDRAgAAqgQAMNICAAAxABDTAgAAqgQAMNQCAQAAAAH4AgEAAAAB_QJAAKsEACEBAAAAtQIAIAEAAAC1AgAgBAcAAI0GACAIAADKBQAgEgAAjgYAIP0CAADtBAAgAwAAADEAIAEAALgCADACAAC1AgAgAwAAADEAIAEAALgCADACAAC1AgAgAwAAADEAIAEAALgCADACAAC1AgAgBgcAAIoGACAIAACLBgAgEgAAjAYAINQCAQAAAAH4AgEAAAAB_QJAAAAAAQEeAAC8AgAgA9QCAQAAAAH4AgEAAAAB_QJAAAAAAQEeAAC-AgAwAR4AAL4CADAGBwAA5gUAIAgAAOcFACASAADoBQAg1AIBAPEEACH4AgEA8QQAIf0CQADlBQAhAgAAALUCACAeAADBAgAgA9QCAQDxBAAh-AIBAPEEACH9AkAA5QUAIQIAAAAxACAeAADDAgAgAgAAADEAIB4AAMMCACADAAAAtQIAICUAALwCACAmAADBAgAgAQAAALUCACABAAAAMQAgBAkAAOIFACArAADkBQAgLAAA4wUAIP0CAADtBAAgBtECAACmBAAw0gIAAMoCABDTAgAApgQAMNQCAQCDBAAh-AIBAIMEACH9AkAApwQAIQMAAAAxACABAADJAgAwKgAAygIAIAMAAAAxACABAAC4AgAwAgAAtQIAIAEAAAAPACABAAAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgCgYAAN4FACAMAADfBQAgDQAA4AUAIBQAAOEFACDUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAfwCAQAAAAEBHgAA0gIAIAbUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAfwCAQAAAAEBHgAA1AIAMAEeAADUAgAwCgYAAM4FACAMAADPBQAgDQAA0AUAIBQAANEFACDUAgEA8QQAIdcCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh_AIBAPEEACECAAAADwAgHgAA1wIAIAbUAgEA8QQAIdcCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh_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_gQAICsAAIEFACAsAACABQAgrQIAAP8EACCuAgAAggUAIOoCAADtBAAgDdECAACSBAAw0gIAANEDABDTAgAAkgQAMNQCAQCDBAAh1QIBAIMEACHZAkAAhQQAIdoCQACFBAAh6gIBAIQEACHrAhAAkwQAIewCEACTBAAh7QJAAIUEACHuAkAAhQQAIe8CAQCDBAAhAwAAACcAIAEAANADADAqAADRAwAgAwAAACcAIAEAACgAMAIAACkAIAEAAAAeACABAAAAHgAgAwAAABwAIAEAAB0AMAIAAB4AIAMAAAAcACABAAAdADACAAAeACADAAAAHAAgAQAAHQAwAgAAHgAgCA0AAP0EACDUAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB5wIQAAAAAegCAQAAAAHpAgEAAAABAR4AANkDACAH1AIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAecCEAAAAAHoAgEAAAAB6QIBAAAAAQEeAADbAwAwAR4AANsDADAIDQAA_AQAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh5wIQAPsEACHoAgEA8wQAIekCAQDzBAAhAgAAAB4AIB4AAN4DACAH1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh5gIBAPEEACHnAhAA-wQAIegCAQDzBAAh6QIBAPMEACECAAAAHAAgHgAA4AMAIAIAAAAcACAeAADgAwAgAwAAAB4AICUAANkDACAmAADeAwAgAQAAAB4AIAEAAAAcACAICQAA9gQAICsAAPkEACAsAAD4BAAgrQIAAPcEACCuAgAA-gQAIOcCAADtBAAg6AIAAO0EACDpAgAA7QQAIArRAgAAjgQAMNICAADnAwAQ0wIAAI4EADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACHmAgEAgwQAIecCEACPBAAh6AIBAIQEACHpAgEAhAQAIQMAAAAcACABAADmAwAwKgAA5wMAIAMAAAAcACABAAAdADACAAAeACABAAAALwAgAQAAAC8AIAMAAAAtACABAAAuADACAAAvACADAAAALQAgAQAALgAwAgAALwAgAwAAAC0AIAEAAC4AMAIAAC8AIAgMAAD1BAAg1AIBAAAAAdUCAQAAAAHWAgEAAAAB1wIBAAAAAdgCQAAAAAHZAkAAAAAB2gJAAAAAAQEeAADvAwAgB9QCAQAAAAHVAgEAAAAB1gIBAAAAAdcCAQAAAAHYAkAAAAAB2QJAAAAAAdoCQAAAAAEBHgAA8QMAMAEeAADxAwAwAQAAADEAIAgMAAD0BAAg1AIBAPEEACHVAgEA8QQAIdYCAQDxBAAh1wIBAPMEACHYAkAA8gQAIdkCQADyBAAh2gJAAPIEACECAAAALwAgHgAA9QMAIAfUAgEA8QQAIdUCAQDxBAAh1gIBAPEEACHXAgEA8wQAIdgCQADyBAAh2QJAAPIEACHaAkAA8gQAIQIAAAAtACAeAAD3AwAgAgAAAC0AIB4AAPcDACABAAAAMQAgAwAAAC8AICUAAO8DACAmAAD1AwAgAQAAAC8AIAEAAAAtACAECQAA7gQAICsAAPAEACAsAADvBAAg1wIAAO0EACAK0QIAAIIEADDSAgAA_wMAENMCAACCBAAw1AIBAIMEACHVAgEAgwQAIdYCAQCDBAAh1wIBAIQEACHYAkAAhQQAIdkCQACFBAAh2gJAAIUEACEDAAAALQAgAQAA_gMAMCoAAP8DACADAAAALQAgAQAALgAwAgAALwAgCtECAACCBAAw0gIAAP8DABDTAgAAggQAMNQCAQCDBAAh1QIBAIMEACHWAgEAgwQAIdcCAQCEBAAh2AJAAIUEACHZAkAAhQQAIdoCQACFBAAhDgkAAIcEACArAACNBAAgLAAAjQQAINsCAQAAAAHcAgEAAAAE3QIBAAAABN4CAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAHiAgEAjAQAIeMCAQAAAAHkAgEAAAAB5QIBAAAAAQ4JAACKBAAgKwAAiwQAICwAAIsEACDbAgEAAAAB3AIBAAAABd0CAQAAAAXeAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAAB4gIBAIkEACHjAgEAAAAB5AIBAAAAAeUCAQAAAAELCQAAhwQAICsAAIgEACAsAACIBAAg2wJAAAAAAdwCQAAAAATdAkAAAAAE3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQACGBAAhCwkAAIcEACArAACIBAAgLAAAiAQAINsCQAAAAAHcAkAAAAAE3QJAAAAABN4CQAAAAAHfAkAAAAAB4AJAAAAAAeECQAAAAAHiAkAAhgQAIQjbAgIAAAAB3AICAAAABN0CAgAAAATeAgIAAAAB3wICAAAAAeACAgAAAAHhAgIAAAAB4gICAIcEACEI2wJAAAAAAdwCQAAAAATdAkAAAAAE3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQACIBAAhDgkAAIoEACArAACLBAAgLAAAiwQAINsCAQAAAAHcAgEAAAAF3QIBAAAABd4CAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAHiAgEAiQQAIeMCAQAAAAHkAgEAAAAB5QIBAAAAAQjbAgIAAAAB3AICAAAABd0CAgAAAAXeAgIAAAAB3wICAAAAAeACAgAAAAHhAgIAAAAB4gICAIoEACEL2wIBAAAAAdwCAQAAAAXdAgEAAAAF3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQCLBAAh4wIBAAAAAeQCAQAAAAHlAgEAAAABDgkAAIcEACArAACNBAAgLAAAjQQAINsCAQAAAAHcAgEAAAAE3QIBAAAABN4CAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAHiAgEAjAQAIeMCAQAAAAHkAgEAAAAB5QIBAAAAAQvbAgEAAAAB3AIBAAAABN0CAQAAAATeAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAAB4gIBAI0EACHjAgEAAAAB5AIBAAAAAeUCAQAAAAEK0QIAAI4EADDSAgAA5wMAENMCAACOBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh5gIBAIMEACHnAhAAjwQAIegCAQCEBAAh6QIBAIQEACENCQAAigQAICsAAJEEACAsAACRBAAgrQIAAJEEACCuAgAAkQQAINsCEAAAAAHcAhAAAAAF3QIQAAAABd4CEAAAAAHfAhAAAAAB4AIQAAAAAeECEAAAAAHiAhAAkAQAIQ0JAACKBAAgKwAAkQQAICwAAJEEACCtAgAAkQQAIK4CAACRBAAg2wIQAAAAAdwCEAAAAAXdAhAAAAAF3gIQAAAAAd8CEAAAAAHgAhAAAAAB4QIQAAAAAeICEACQBAAhCNsCEAAAAAHcAhAAAAAF3QIQAAAABd4CEAAAAAHfAhAAAAAB4AIQAAAAAeECEAAAAAHiAhAAkQQAIQ3RAgAAkgQAMNICAADRAwAQ0wIAAJIEADDUAgEAgwQAIdUCAQCDBAAh2QJAAIUEACHaAkAAhQQAIeoCAQCEBAAh6wIQAJMEACHsAhAAkwQAIe0CQACFBAAh7gJAAIUEACHvAgEAgwQAIQ0JAACHBAAgKwAAlQQAICwAAJUEACCtAgAAlQQAIK4CAACVBAAg2wIQAAAAAdwCEAAAAATdAhAAAAAE3gIQAAAAAd8CEAAAAAHgAhAAAAAB4QIQAAAAAeICEACUBAAhDQkAAIcEACArAACVBAAgLAAAlQQAIK0CAACVBAAgrgIAAJUEACDbAhAAAAAB3AIQAAAABN0CEAAAAATeAhAAAAAB3wIQAAAAAeACEAAAAAHhAhAAAAAB4gIQAJQEACEI2wIQAAAAAdwCEAAAAATdAhAAAAAE3gIQAAAAAd8CEAAAAAHgAhAAAAAB4QIQAAAAAeICEACVBAAhCNECAACWBAAw0gIAALsDABDTAgAAlgQAMNQCAQCDBAAh2QJAAIUEACHwAgEAgwQAIfECQACFBAAh8gIgAJcEACEFCQAAhwQAICsAAJkEACAsAACZBAAg2wIgAAAAAeICIACYBAAhBQkAAIcEACArAACZBAAgLAAAmQQAINsCIAAAAAHiAiAAmAQAIQLbAiAAAAAB4gIgAJkEACEJ0QIAAJoEADDSAgAApQMAENMCAACaBAAw1AIBAIMEACHtAkAAhQQAIe4CQACFBAAh7wIBAIMEACH0AgAAmwT0AiL1AgEAhAQAIQcJAACHBAAgKwAAnQQAICwAAJ0EACDbAgAAAPQCAtwCAAAA9AII3QIAAAD0AgjiAgAAnAT0AiIHCQAAhwQAICsAAJ0EACAsAACdBAAg2wIAAAD0AgLcAgAAAPQCCN0CAAAA9AII4gIAAJwE9AIiBNsCAAAA9AIC3AIAAAD0AgjdAgAAAPQCCOICAACdBPQCIgjRAgAAngQAMNICAACPAwAQ0wIAAJ4EADDUAgEAgwQAIdcCAQCDBAAh5gIBAIMEACH2AgEAgwQAIfcCAQCDBAAhCNECAACfBAAw0gIAAPkCABDTAgAAnwQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIeoCAQCEBAAh-AIBAIMEACEJCAAApAQAINECAACgBAAw0gIAAOYCABDTAgAAoAQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIeoCAQCiBAAh-AIBAKEEACEL2wIBAAAAAdwCAQAAAATdAgEAAAAE3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQCNBAAh4wIBAAAAAeQCAQAAAAHlAgEAAAABC9sCAQAAAAHcAgEAAAAF3QIBAAAABd4CAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAHiAgEAiwQAIeMCAQAAAAHkAgEAAAAB5QIBAAAAAQjbAkAAAAAB3AJAAAAABN0CQAAAAATeAkAAAAAB3wJAAAAAAeACQAAAAAHhAkAAAAAB4gJAAIgEACED-QIAABIAIPoCAAASACD7AgAAEgAgCdECAAClBAAw0gIAAOACABDTAgAApQQAMNQCAQCDBAAh1wIBAIMEACHZAkAAhQQAIdoCQACFBAAh5gIBAIMEACH8AgEAgwQAIQbRAgAApgQAMNICAADKAgAQ0wIAAKYEADDUAgEAgwQAIfgCAQCDBAAh_QJAAKcEACELCQAAigQAICsAAKkEACAsAACpBAAg2wJAAAAAAdwCQAAAAAXdAkAAAAAF3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQACoBAAhCwkAAIoEACArAACpBAAgLAAAqQQAINsCQAAAAAHcAkAAAAAF3QJAAAAABd4CQAAAAAHfAkAAAAAB4AJAAAAAAeECQAAAAAHiAkAAqAQAIQjbAkAAAAAB3AJAAAAABd0CQAAAAAXeAkAAAAAB3wJAAAAAAeACQAAAAAHhAkAAAAAB4gJAAKkEACEJBwAArAQAIAgAAKQEACASAACtBAAg0QIAAKoEADDSAgAAMQAQ0wIAAKoEADDUAgEAoQQAIfgCAQChBAAh_QJAAKsEACEI2wJAAAAAAdwCQAAAAAXdAkAAAAAF3gJAAAAAAd8CQAAAAAHgAkAAAAAB4QJAAAAAAeICQACpBAAhA_kCAAANACD6AgAADQAg-wIAAA0AIAP5AgAALQAg-gIAAC0AIPsCAAAtACAK0QIAAK4EADDSAgAAsgIAENMCAACuBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACH-AkAAhQQAIf8CQACFBAAhgAMgAJcEACENBwAArAQAIAgAAKQEACAOAACxBAAg0QIAAK8EADDSAgAAnwIAENMCAACvBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh-AIBAKEEACH-AkAAowQAIf8CQACjBAAhgAMgALAEACEC2wIgAAAAAeICIACZBAAhA_kCAAAcACD6AgAAHAAg-wIAABwAIAfRAgAAsgQAMNICAACZAgAQ0wIAALIEADDUAgEAgwQAIfwCAQCDBAAhggMAALMEggMigwMBAIMEACEHCQAAhwQAICsAALUEACAsAAC1BAAg2wIAAACCAwLcAgAAAIIDCN0CAAAAggMI4gIAALQEggMiBwkAAIcEACArAAC1BAAgLAAAtQQAINsCAAAAggMC3AIAAACCAwjdAgAAAIIDCOICAAC0BIIDIgTbAgAAAIIDAtwCAAAAggMI3QIAAACCAwjiAgAAtQSCAyIJ0QIAALYEADDSAgAAgwIAENMCAAC2BAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAh-AIBAIMEACGEAwEAhAQAIYUDAQCEBAAhChUAALgEACDRAgAAtwQAMNICAADwAQAQ0wIAALcEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIYQDAQCiBAAhhQMBAKIEACED-QIAADsAIPoCAAA7ACD7AgAAOwAgDdECAAC5BAAw0gIAAOoBABDTAgAAuQQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYQDAQCEBAAhhQMBAIQEACGGAwEAgwQAIYcDAQCDBAAhiAMBAIQEACGKAwAAugSKAyKLA0AApwQAIQcJAACHBAAgKwAAvAQAICwAALwEACDbAgAAAIoDAtwCAAAAigMI3QIAAACKAwjiAgAAuwSKAyIHCQAAhwQAICsAALwEACAsAAC8BAAg2wIAAACKAwLcAgAAAIoDCN0CAAAAigMI4gIAALsEigMiBNsCAAAAigMC3AIAAACKAwjdAgAAAIoDCOICAAC8BIoDIhADAAC_BAAgBwAArAQAIBcAALgEACDRAgAAvQQAMNICAAALABDTAgAAvQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYQDAQCiBAAhhQMBAKIEACGGAwEAoQQAIYcDAQChBAAhiAMBAKIEACGKAwAAvgSKAyKLA0AAqwQAIQTbAgAAAIoDAtwCAAAAigMI3QIAAACKAwjiAgAAvASKAyIXBAAAygQAIAUAAMsEACAGAADMBAAgCgAAzQQAIBgAAM4EACDRAgAAyQQAMNICAABKABDTAgAAyQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIfgCAQChBAAhnAMBAKEEACGdAwEAogQAIZ4DAQChBAAhnwMBAKIEACGgA0AAqwQAIaEDAQCiBAAhogNAAKsEACGjA0AAqwQAIaQDIACwBAAhqQMAAEoAIKoDAABKACAM0QIAAMAEADDSAgAA0gEAENMCAADABAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAhhAMBAIQEACGFAwEAhAQAIYYDAQCDBAAhigMAALoEigMiiwNAAKcEACGMAwEAgwQAIQ4DAAC_BAAgCAAApAQAINECAADBBAAw0gIAAEMAENMCAADBBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhhAMBAKIEACGFAwEAogQAIYYDAQChBAAhigMAAL4EigMiiwNAAKsEACGMAwEAoQQAIQjRAgAAwgQAMNICAAC6AQAQ0wIAAMIEADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACGGAwEAgwQAIYwDAQCDBAAhCQMAAL8EACDRAgAAwwQAMNICAABFABDTAgAAwwQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhjAMBAKEEACEJ0QIAAMQEADDSAgAAogEAENMCAADEBAAw1AIBAIMEACHZAkAAhQQAIdoCQACFBAAhjQMBAIMEACGOAwEAgwQAIY8DQACFBAAhCdECAADFBAAw0gIAAI8BABDTAgAAxQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIY0DAQChBAAhjgMBAKEEACGPA0AAowQAIRDRAgAAxgQAMNICAACJAQAQ0wIAAMYEADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACGGAwEAgwQAIZADAQCDBAAhkQMBAIMEACGSAwEAhAQAIZMDAQCEBAAhlAMBAIQEACGVA0AApwQAIZYDQACnBAAhlwMBAIQEACGYAwEAhAQAIQvRAgAAxwQAMNICAABzABDTAgAAxwQAMNQCAQCDBAAh2QJAAIUEACHaAkAAhQQAIYYDAQCDBAAhjwNAAIUEACGZAwEAgwQAIZoDAQCEBAAhmwMBAIQEACEQ0QIAAMgEADDSAgAAXQAQ0wIAAMgEADDUAgEAgwQAIdkCQACFBAAh2gJAAIUEACH4AgEAgwQAIZwDAQCDBAAhnQMBAIQEACGeAwEAgwQAIZ8DAQCEBAAhoANAAKcEACGhAwEAhAQAIaIDQACnBAAhowNAAKcEACGkAyAAlwQAIRUEAADKBAAgBQAAywQAIAYAAMwEACAKAADNBAAgGAAAzgQAINECAADJBAAw0gIAAEoAENMCAADJBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh-AIBAKEEACGcAwEAoQQAIZ0DAQCiBAAhngMBAKEEACGfAwEAogQAIaADQACrBAAhoQMBAKIEACGiA0AAqwQAIaMDQACrBAAhpAMgALAEACED-QIAAAMAIPoCAAADACD7AgAAAwAgA_kCAAAHACD6AgAABwAg-wIAAAcAIBIDAAC_BAAgBwAArAQAIBcAALgEACDRAgAAvQQAMNICAAALABDTAgAAvQQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYQDAQCiBAAhhQMBAKIEACGGAwEAoQQAIYcDAQChBAAhiAMBAKIEACGKAwAAvgSKAyKLA0AAqwQAIakDAAALACCqAwAACwAgEAMAAL8EACAIAACkBAAg0QIAAMEEADDSAgAAQwAQ0wIAAMEEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGEAwEAogQAIYUDAQCiBAAhhgMBAKEEACGKAwAAvgSKAyKLA0AAqwQAIYwDAQChBAAhqQMAAEMAIKoDAABDACALAwAAvwQAINECAADDBAAw0gIAAEUAENMCAADDBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhhgMBAKEEACGMAwEAoQQAIakDAABFACCqAwAARQAgAvwCAQAAAAGDAwEAAAABCQYAANMEACAWAADSBAAg0QIAANAEADDSAgAAOwAQ0wIAANAEADDUAgEAoQQAIfwCAQChBAAhggMAANEEggMigwMBAKEEACEE2wIAAACCAwLcAgAAAIIDCN0CAAAAggMI4gIAALUEggMiDBUAALgEACDRAgAAtwQAMNICAADwAQAQ0wIAALcEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACH4AgEAoQQAIYQDAQCiBAAhhQMBAKIEACGpAwAA8AEAIKoDAADwAQAgEgMAAL8EACAHAACsBAAgFwAAuAQAINECAAC9BAAw0gIAAAsAENMCAAC9BAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhhAMBAKIEACGFAwEAogQAIYYDAQChBAAhhwMBAKEEACGIAwEAogQAIYoDAAC-BIoDIosDQACrBAAhqQMAAAsAIKoDAAALACAC8AIBAAAAAfECQAAAAAEJEwAA1gQAINECAADVBAAw0gIAADYAENMCAADVBAAw1AIBAKEEACHZAkAAowQAIfACAQChBAAh8QJAAKMEACHyAiAAsAQAIQ8GAADTBAAgDAAA5QQAIA0AAOAEACAUAADqBAAg0QIAAOkEADDSAgAADQAQ0wIAAOkEADDUAgEAoQQAIdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACGpAwAADQAgqgMAAA0AIAsMAADYBAAg0QIAANcEADDSAgAALQAQ0wIAANcEADDUAgEAoQQAIdUCAQChBAAh1gIBAKEEACHXAgEAogQAIdgCQACjBAAh2QJAAKMEACHaAkAAowQAIQsHAACsBAAgCAAApAQAIBIAAK0EACDRAgAAqgQAMNICAAAxABDTAgAAqgQAMNQCAQChBAAh-AIBAKEEACH9AkAAqwQAIakDAAAxACCqAwAAMQAgDg8AANsEACDRAgAA2QQAMNICAAAnABDTAgAA2QQAMNQCAQChBAAh1QIBAKEEACHZAkAAowQAIdoCQACjBAAh6gIBAKIEACHrAhAA2gQAIewCEADaBAAh7QJAAKMEACHuAkAAowQAIe8CAQChBAAhCNsCEAAAAAHcAhAAAAAE3QIQAAAABN4CEAAAAAHfAhAAAAAB4AIQAAAAAeECEAAAAAHiAhAAlQQAIRAKAADjBAAgCwAA5AQAIAwAAOUEACANAADgBAAgEAAA5gQAIBEAAOcEACDRAgAA4gQAMNICAAASABDTAgAA4gQAMNQCAQChBAAh1wIBAKEEACHmAgEAoQQAIfYCAQChBAAh9wIBAKEEACGpAwAAEgAgqgMAABIAIAoPAADbBAAg0QIAANwEADDSAgAAIwAQ0wIAANwEADDUAgEAoQQAIe0CQACjBAAh7gJAAKMEACHvAgEAoQQAIfQCAADdBPQCIvUCAQCiBAAhBNsCAAAA9AIC3AIAAAD0AgjdAgAAAPQCCOICAACdBPQCIgsNAADgBAAg0QIAAN4EADDSAgAAHAAQ0wIAAN4EADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACHmAgEAoQQAIecCEADfBAAh6AIBAKIEACHpAgEAogQAIQjbAhAAAAAB3AIQAAAABd0CEAAAAAXeAhAAAAAB3wIQAAAAAeACEAAAAAHhAhAAAAAB4gIQAJEEACEPBwAArAQAIAgAAKQEACAOAACxBAAg0QIAAK8EADDSAgAAnwIAENMCAACvBAAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAh-AIBAKEEACH-AkAAowQAIf8CQACjBAAhgAMgALAEACGpAwAAnwIAIKoDAACfAgAgBNcCAQAAAAHmAgEAAAAB9gIBAAAAAfcCAQAAAAEOCgAA4wQAIAsAAOQEACAMAADlBAAgDQAA4AQAIBAAAOYEACARAADnBAAg0QIAAOIEADDSAgAAEgAQ0wIAAOIEADDUAgEAoQQAIdcCAQChBAAh5gIBAKEEACH2AgEAoQQAIfcCAQChBAAhEAMAAL8EACAIAACkBAAg0QIAAMEEADDSAgAAQwAQ0wIAAMEEADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGEAwEAogQAIYUDAQCiBAAhhgMBAKEEACGKAwAAvgSKAyKLA0AAqwQAIYwDAQChBAAhqQMAAEMAIKoDAABDACALCAAApAQAINECAACgBAAw0gIAAOYCABDTAgAAoAQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIeoCAQCiBAAh-AIBAKEEACGpAwAA5gIAIKoDAADmAgAgCwcAAKwEACAIAACkBAAgEgAArQQAINECAACqBAAw0gIAADEAENMCAACqBAAw1AIBAKEEACH4AgEAoQQAIf0CQACrBAAhqQMAADEAIKoDAAAxACAD-QIAACMAIPoCAAAjACD7AgAAIwAgA_kCAAAnACD6AgAAJwAg-wIAACcAIALmAgEAAAAB_AIBAAAAAQ0GAADTBAAgDAAA5QQAIA0AAOAEACAUAADqBAAg0QIAAOkEADDSAgAADQAQ0wIAAOkEADDUAgEAoQQAIdcCAQChBAAh2QJAAKMEACHaAkAAowQAIeYCAQChBAAh_AIBAKEEACED-QIAADYAIPoCAAA2ACD7AgAANgAgEQMAAL8EACDRAgAA6wQAMNICAAAHABDTAgAA6wQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhkAMBAKEEACGRAwEAoQQAIZIDAQCiBAAhkwMBAKIEACGUAwEAogQAIZUDQACrBAAhlgNAAKsEACGXAwEAogQAIZgDAQCiBAAhDAMAAL8EACDRAgAA7AQAMNICAAADABDTAgAA7AQAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhjwNAAKMEACGZAwEAoQQAIZoDAQCiBAAhmwMBAKIEACEAAAAAAa4DAQAAAAEBrgNAAAAAAQGuAwEAAAABByUAALwIACAmAAC_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_gUAMCYAAIMGADCrAwAA_wUAMKwDAACABgAwrQMAAIEGACCuAwAAggYAMK8DAACCBgAwsAMAAIIGADCxAwAAggYAMLIDAACEBgAwswMAAIUGADALJQAA9QUAMCYAAPkFADCrAwAA9gUAMKwDAAD3BQAwrQMAAPgFACCuAwAAwQUAMK8DAADBBQAwsAMAAMEFADCxAwAAwQUAMLIDAAD6BQAwswMAAMQFADALJQAA6QUAMCYAAO4FADCrAwAA6gUAMKwDAADrBQAwrQMAAOwFACCuAwAA7QUAMK8DAADtBQAwsAMAAO0FADCxAwAA7QUAMLIDAADvBQAwswMAAPAFADAG1AIBAAAAAdUCAQAAAAHWAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABAgAAAC8AICUAAPQFACADAAAALwAgJQAA9AUAICYAAPMFACABHgAAgAgAMAsMAADYBAAg0QIAANcEADDSAgAALQAQ0wIAANcEADDUAgEAAAAB1QIBAKEEACHWAgEAoQQAIdcCAQCiBAAh2AJAAKMEACHZAkAAowQAIdoCQACjBAAhAgAAAC8AIB4AAPMFACACAAAA8QUAIB4AAPIFACAK0QIAAPAFADDSAgAA8QUAENMCAADwBQAw1AIBAKEEACHVAgEAoQQAIdYCAQChBAAh1wIBAKIEACHYAkAAowQAIdkCQACjBAAh2gJAAKMEACEK0QIAAPAFADDSAgAA8QUAENMCAADwBQAw1AIBAKEEACHVAgEAoQQAIdYCAQChBAAh1wIBAKIEACHYAkAAowQAIdkCQACjBAAh2gJAAKMEACEG1AIBAPEEACHVAgEA8QQAIdYCAQDxBAAh2AJAAPIEACHZAkAA8gQAIdoCQADyBAAhBtQCAQDxBAAh1QIBAPEEACHWAgEA8QQAIdgCQADyBAAh2QJAAPIEACHaAkAA8gQAIQbUAgEAAAAB1QIBAAAAAdYCAQAAAAHYAkAAAAAB2QJAAAAAAdoCQAAAAAEJCgAAswUAIAsAALQFACANAAC2BQAgEAAAtwUAIBEAALgFACDUAgEAAAAB5gIBAAAAAfYCAQAAAAH3AgEAAAABAgAAABQAICUAAP0FACADAAAAFAAgJQAA_QUAICYAAPwFACABHgAA_wcAMAIAAAAUACAeAAD8BQAgAgAAAMUFACAeAAD7BQAgBNQCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCQoAAJUFACALAACWBQAgDQAAmAUAIBAAAJkFACARAACaBQAg1AIBAPEEACHmAgEA8QQAIfYCAQDxBAAh9wIBAPEEACEJCgAAswUAIAsAALQFACANAAC2BQAgEAAAtwUAIBEAALgFACDUAgEAAAAB5gIBAAAAAfYCAQAAAAH3AgEAAAABCAYAAN4FACANAADgBQAgFAAA4QUAINQCAQAAAAHZAkAAAAAB2gJAAAAAAeYCAQAAAAH8AgEAAAABAgAAAA8AICUAAIkGACADAAAADwAgJQAAiQYAICYAAIgGACABHgAA_gcAMA4GAADTBAAgDAAA5QQAIA0AAOAEACAUAADqBAAg0QIAAOkEADDSAgAADQAQ0wIAAOkEADDUAgEAAAAB1wIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACH8AgEAoQQAIagDAADoBAAgAgAAAA8AIB4AAIgGACACAAAAhgYAIB4AAIcGACAJ0QIAAIUGADDSAgAAhgYAENMCAACFBgAw1AIBAKEEACHXAgEAoQQAIdkCQACjBAAh2gJAAKMEACHmAgEAoQQAIfwCAQChBAAhCdECAACFBgAw0gIAAIYGABDTAgAAhQYAMNQCAQChBAAh1wIBAKEEACHZAkAAowQAIdoCQACjBAAh5gIBAKEEACH8AgEAoQQAIQXUAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIfwCAQDxBAAhCAYAAM4FACANAADQBQAgFAAA0QUAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh_AIBAPEEACEIBgAA3gUAIA0AAOAFACAUAADhBQAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAfwCAQAAAAEEJQAA_gUAMKsDAAD_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_AIBAPEEACGCAwAAugaCAyIEBgAAvAYAINQCAQDxBAAh_AIBAPEEACGCAwAAugaCAyIEBgAAvgYAINQCAQAAAAH8AgEAAAABggMAAACCAwIEJQAAwwYAMKsDAADEBgAwrQMAAMYGACCxAwAAxwYAMAAAAAABrgMAAACKAwIFJQAA6QcAICYAAO4HACCrAwAA6gcAIKwDAADtBwAgsQMAAAEAIAslAADhBgAwJgAA5QYAMKsDAADiBgAwrAMAAOMGADCtAwAA5AYAIK4DAACCBgAwrwMAAIIGADCwAwAAggYAMLEDAACCBgAwsgMAAOYGADCzAwAAhQYAMAslAADYBgAwJgAA3AYAMKsDAADZBgAwrAMAANoGADCtAwAA2wYAIK4DAADHBgAwrwMAAMcGADCwAwAAxwYAMLEDAADHBgAwsgMAAN0GADCzAwAAygYAMAQWAAC9BgAg1AIBAAAAAYIDAAAAggMCgwMBAAAAAQIAAAA9ACAlAADgBgAgAwAAAD0AICUAAOAGACAmAADfBgAgAR4AAOwHADACAAAAPQAgHgAA3wYAIAIAAADLBgAgHgAA3gYAIAPUAgEA8QQAIYIDAAC6BoIDIoMDAQDxBAAhBBYAALsGACDUAgEA8QQAIYIDAAC6BoIDIoMDAQDxBAAhBBYAAL0GACDUAgEAAAABggMAAACCAwKDAwEAAAABCAwAAN8FACANAADgBQAgFAAA4QUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAABAgAAAA8AICUAAOkGACADAAAADwAgJQAA6QYAICYAAOgGACABHgAA6wcAMAIAAAAPACAeAADoBgAgAgAAAIYGACAeAADnBgAgBdQCAQDxBAAh1wIBAPEEACHZAkAA8gQAIdoCQADyBAAh5gIBAPEEACEIDAAAzwUAIA0AANAFACAUAADRBQAg1AIBAPEEACHXAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIQgMAADfBQAgDQAA4AUAIBQAAOEFACDUAgEAAAAB1wIBAAAAAdkCQAAAAAHaAkAAAAAB5gIBAAAAAQMlAADpBwAgqwMAAOoHACCxAwAAAQAgBCUAAOEGADCrAwAA4gYAMK0DAADkBgAgsQMAAIIGADAEJQAA2AYAMKsDAADZBgAwrQMAANsGACCxAwAAxwYAMAsEAADEBwAgBQAAxQcAIAYAAMYHACAKAADHBwAgGAAAyAcAIJ0DAADtBAAgnwMAAO0EACCgAwAA7QQAIKEDAADtBAAgogMAAO0EACCjAwAA7QQAIAAAAAUlAADjBwAgJgAA5wcAIKsDAADkBwAgrAMAAOYHACCxAwAAAQAgCyUAAPMGADAmAAD3BgAwqwMAAPQGADCsAwAA9QYAMK0DAAD2BgAgrgMAAMEFADCvAwAAwQUAMLADAADBBQAwsQMAAMEFADCyAwAA-AYAMLMDAADEBQAwCQsAALQFACAMAAC1BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9wIBAAAAAQIAAAAUACAlAAD7BgAgAwAAABQAICUAAPsGACAmAAD6BgAgAR4AAOUHADACAAAAFAAgHgAA-gYAIAIAAADFBQAgHgAA-QYAIATUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH3AgEA8QQAIQkLAACWBQAgDAAAlwUAIA0AAJgFACAQAACZBQAgEQAAmgUAINQCAQDxBAAh1wIBAPEEACHmAgEA8QQAIfcCAQDxBAAhCQsAALQFACAMAAC1BQAgDQAAtgUAIBAAALcFACARAAC4BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9wIBAAAAAQMlAADjBwAgqwMAAOQHACCxAwAAAQAgBCUAAPMGADCrAwAA9AYAMK0DAAD2BgAgsQMAAMEFADAAAAAFJQAA3gcAICYAAOEHACCrAwAA3wcAIKwDAADgBwAgsQMAAAEAIAMlAADeBwAgqwMAAN8HACCxAwAAAQAgAAAAAAAABSUAANkHACAmAADcBwAgqwMAANoHACCsAwAA2wcAILEDAAABACADJQAA2QcAIKsDAADaBwAgsQMAAAEAIAAAAAUlAADUBwAgJgAA1wcAIKsDAADVBwAgrAMAANYHACCxAwAAAQAgAyUAANQHACCrAwAA1QcAILEDAAABACAAAAALJQAAswcAMCYAALgHADCrAwAAtAcAMKwDAAC1BwAwrQMAALYHACCuAwAAtwcAMK8DAAC3BwAwsAMAALcHADCxAwAAtwcAMLIDAAC5BwAwswMAALoHADALJQAApwcAMCYAAKwHADCrAwAAqAcAMKwDAACpBwAwrQMAAKoHACCuAwAAqwcAMK8DAACrBwAwsAMAAKsHADCxAwAAqwcAMLIDAACtBwAwswMAAK4HADAHJQAAogcAICYAAKUHACCrAwAAowcAIKwDAACkBwAgrwMAAAsAILADAAALACCxAwAA1QEAIAclAACdBwAgJgAAoAcAIKsDAACeBwAgrAMAAJ8HACCvAwAAQwAgsAMAAEMAILEDAAC9AQAgByUAAJgHACAmAACbBwAgqwMAAJkHACCsAwAAmgcAIK8DAABFACCwAwAARQAgsQMAAKUBACAE1AIBAAAAAdkCQAAAAAHaAkAAAAABjAMBAAAAAQIAAAClAQAgJQAAmAcAIAMAAABFACAlAACYBwAgJgAAnAcAIAYAAABFACAeAACcBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhjAMBAPEEACEE1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhjAMBAPEEACEJCAAA_QYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYQDAQAAAAGFAwEAAAABigMAAACKAwKLA0AAAAABjAMBAAAAAQIAAAC9AQAgJQAAnQcAIAMAAABDACAlAACdBwAgJgAAoQcAIAsAAABDACAIAADyBgAgHgAAoQcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGKAwAA1AaKAyKLA0AA5QUAIYwDAQDxBAAhCQgAAPIGACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGEAwEA8wQAIYUDAQDzBAAhigMAANQGigMiiwNAAOUFACGMAwEA8QQAIQsHAADrBgAgFwAA7AYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYQDAQAAAAGFAwEAAAABhwMBAAAAAYgDAQAAAAGKAwAAAIoDAosDQAAAAAECAAAA1QEAICUAAKIHACADAAAACwAgJQAAogcAICYAAKYHACANAAAACwAgBwAA1gYAIBcAANcGACAeAACmBwAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhhAMBAPMEACGFAwEA8wQAIYcDAQDxBAAhiAMBAPMEACGKAwAA1AaKAyKLA0AA5QUAIQsHAADWBgAgFwAA1wYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGHAwEA8QQAIYgDAQDzBAAhigMAANQGigMiiwNAAOUFACEM1AIBAAAAAdkCQAAAAAHaAkAAAAABkAMBAAAAAZEDAQAAAAGSAwEAAAABkwMBAAAAAZQDAQAAAAGVA0AAAAABlgNAAAAAAZcDAQAAAAGYAwEAAAABAgAAAAkAICUAALIHACADAAAACQAgJQAAsgcAICYAALEHACABHgAA0wcAMBEDAAC_BAAg0QIAAOsEADDSAgAABwAQ0wIAAOsEADDUAgEAAAAB2QJAAKMEACHaAkAAowQAIYYDAQChBAAhkAMBAKEEACGRAwEAoQQAIZIDAQCiBAAhkwMBAKIEACGUAwEAogQAIZUDQACrBAAhlgNAAKsEACGXAwEAogQAIZgDAQCiBAAhAgAAAAkAIB4AALEHACACAAAArwcAIB4AALAHACAQ0QIAAK4HADDSAgAArwcAENMCAACuBwAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhhgMBAKEEACGQAwEAoQQAIZEDAQChBAAhkgMBAKIEACGTAwEAogQAIZQDAQCiBAAhlQNAAKsEACGWA0AAqwQAIZcDAQCiBAAhmAMBAKIEACEQ0QIAAK4HADDSAgAArwcAENMCAACuBwAw1AIBAKEEACHZAkAAowQAIdoCQACjBAAhhgMBAKEEACGQAwEAoQQAIZEDAQChBAAhkgMBAKIEACGTAwEAogQAIZQDAQCiBAAhlQNAAKsEACGWA0AAqwQAIZcDAQCiBAAhmAMBAKIEACEM1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhkAMBAPEEACGRAwEA8QQAIZIDAQDzBAAhkwMBAPMEACGUAwEA8wQAIZUDQADlBQAhlgNAAOUFACGXAwEA8wQAIZgDAQDzBAAhDNQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIZADAQDxBAAhkQMBAPEEACGSAwEA8wQAIZMDAQDzBAAhlAMBAPMEACGVA0AA5QUAIZYDQADlBQAhlwMBAPMEACGYAwEA8wQAIQzUAgEAAAAB2QJAAAAAAdoCQAAAAAGQAwEAAAABkQMBAAAAAZIDAQAAAAGTAwEAAAABlAMBAAAAAZUDQAAAAAGWA0AAAAABlwMBAAAAAZgDAQAAAAEH1AIBAAAAAdkCQAAAAAHaAkAAAAABjwNAAAAAAZkDAQAAAAGaAwEAAAABmwMBAAAAAQIAAAAFACAlAAC-BwAgAwAAAAUAICUAAL4HACAmAAC9BwAgAR4AANIHADAMAwAAvwQAINECAADsBAAw0gIAAAMAENMCAADsBAAw1AIBAAAAAdkCQACjBAAh2gJAAKMEACGGAwEAoQQAIY8DQACjBAAhmQMBAAAAAZoDAQCiBAAhmwMBAKIEACECAAAABQAgHgAAvQcAIAIAAAC7BwAgHgAAvAcAIAvRAgAAugcAMNICAAC7BwAQ0wIAALoHADDUAgEAoQQAIdkCQACjBAAh2gJAAKMEACGGAwEAoQQAIY8DQACjBAAhmQMBAKEEACGaAwEAogQAIZsDAQCiBAAhC9ECAAC6BwAw0gIAALsHABDTAgAAugcAMNQCAQChBAAh2QJAAKMEACHaAkAAowQAIYYDAQChBAAhjwNAAKMEACGZAwEAoQQAIZoDAQCiBAAhmwMBAKIEACEH1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhjwNAAPIEACGZAwEA8QQAIZoDAQDzBAAhmwMBAPMEACEH1AIBAPEEACHZAkAA8gQAIdoCQADyBAAhjwNAAPIEACGZAwEA8QQAIZoDAQDzBAAhmwMBAPMEACEH1AIBAAAAAdkCQAAAAAHaAkAAAAABjwNAAAAAAZkDAQAAAAGaAwEAAAABmwMBAAAAAQQlAACzBwAwqwMAALQHADCtAwAAtgcAILEDAAC3BwAwBCUAAKcHADCrAwAAqAcAMK0DAACqBwAgsQMAAKsHADADJQAAogcAIKsDAACjBwAgsQMAANUBACADJQAAnQcAIKsDAACeBwAgsQMAAL0BACADJQAAmAcAIKsDAACZBwAgsQMAAKUBACAAAAcDAADtBgAgBwAAjQYAIBcAANAGACCEAwAA7QQAIIUDAADtBAAgiAMAAO0EACCLAwAA7QQAIAUDAADtBgAgCAAAygUAIIQDAADtBAAghQMAAO0EACCLAwAA7QQAIAEDAADtBgAgAxUAANAGACCEAwAA7QQAIIUDAADtBAAgBAYAAMYHACAMAADLBwAgDQAAzQcAIBQAANEHACAEBwAAjQYAIAgAAMoFACASAACOBgAg_QIAAO0EACAGCgAAxwcAIAsAAM4HACAMAADLBwAgDQAAzQcAIBAAAM8HACARAADQBwAgAwcAAI0GACAIAADKBQAgDgAAtgYAIAIIAADKBQAg6gIAAO0EACAAAAAH1AIBAAAAAdkCQAAAAAHaAkAAAAABjwNAAAAAAZkDAQAAAAGaAwEAAAABmwMBAAAAAQzUAgEAAAAB2QJAAAAAAdoCQAAAAAGQAwEAAAABkQMBAAAAAZIDAQAAAAGTAwEAAAABlAMBAAAAAZUDQAAAAAGWA0AAAAABlwMBAAAAAZgDAQAAAAERBQAAwAcAIAYAAMEHACAKAADCBwAgGAAAwwcAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAGcAwEAAAABnQMBAAAAAZ4DAQAAAAGfAwEAAAABoANAAAAAAaEDAQAAAAGiA0AAAAABowNAAAAAAaQDIAAAAAECAAAAAQAgJQAA1AcAIAMAAABKACAlAADUBwAgJgAA2AcAIBMAAABKACAFAACUBwAgBgAAlQcAIAoAAJYHACAYAACXBwAgHgAA2AcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAhnAMBAPEEACGdAwEA8wQAIZ4DAQDxBAAhnwMBAPMEACGgA0AA5QUAIaEDAQDzBAAhogNAAOUFACGjA0AA5QUAIaQDIACJBQAhEQUAAJQHACAGAACVBwAgCgAAlgcAIBgAAJcHACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIZwDAQDxBAAhnQMBAPMEACGeAwEA8QQAIZ8DAQDzBAAhoANAAOUFACGhAwEA8wQAIaIDQADlBQAhowNAAOUFACGkAyAAiQUAIREEAAC_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_AIBAAAAAYIDAAAAggMCDAMAAOoGACAHAADrBgAg1AIBAAAAAdkCQAAAAAHaAkAAAAABhAMBAAAAAYUDAQAAAAGGAwEAAAABhwMBAAAAAYgDAQAAAAGKAwAAAIoDAosDQAAAAAECAAAA1QEAICUAAPEHACAG1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAYQDAQAAAAGFAwEAAAABAgAAAO0BACAlAADzBwAgAwAAAAsAICUAAPEHACAmAAD3BwAgDgAAAAsAIAMAANUGACAHAADWBgAgHgAA9wcAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYcDAQDxBAAhiAMBAPMEACGKAwAA1AaKAyKLA0AA5QUAIQwDAADVBgAgBwAA1gYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYcDAQDxBAAhiAMBAPMEACGKAwAA1AaKAyKLA0AA5QUAIQMAAADwAQAgJQAA8wcAICYAAPoHACAIAAAA8AEAIB4AAPoHACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIYQDAQDzBAAhhQMBAPMEACEG1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACGEAwEA8wQAIYUDAQDzBAAhBdQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAH8AgEAAAABBNQCAQAAAAHXAgEAAAAB9gIBAAAAAfcCAQAAAAEG1AIBAAAAAdkCQAAAAAHaAkAAAAAB5wIQAAAAAegCAQAAAAHpAgEAAAABBdQCAQAAAAHZAkAAAAAB2gJAAAAAAeYCAQAAAAH8AgEAAAABBNQCAQAAAAHmAgEAAAAB9gIBAAAAAfcCAQAAAAEG1AIBAAAAAdUCAQAAAAHWAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABCQgAALQGACAOAAC1BgAg1AIBAAAAAdkCQAAAAAHaAkAAAAAB-AIBAAAAAf4CQAAAAAH_AkAAAAABgAMgAAAAAQIAAACcAgAgJQAAgQgAIAUIAACLBgAgEgAAjAYAINQCAQAAAAH4AgEAAAAB_QJAAAAAAQIAAAC1AgAgJQAAgwgAIAwDAADqBgAgFwAA7AYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYQDAQAAAAGFAwEAAAABhgMBAAAAAYcDAQAAAAGIAwEAAAABigMAAACKAwKLA0AAAAABAgAAANUBACAlAACFCAAgBNQCAQAAAAHZAkAAAAAB8QJAAAAAAfICIAAAAAEDAAAAnwIAICUAAIEIACAmAACKCAAgCwAAAJ8CACAIAACTBgAgDgAAlAYAIB4AAIoIACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIf4CQADyBAAh_wJAAPIEACGAAyAAiQUAIQkIAACTBgAgDgAAlAYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_gJAAPIEACH_AkAA8gQAIYADIACJBQAhAwAAADEAICUAAIMIACAmAACNCAAgBwAAADEAIAgAAOcFACASAADoBQAgHgAAjQgAINQCAQDxBAAh-AIBAPEEACH9AkAA5QUAIQUIAADnBQAgEgAA6AUAINQCAQDxBAAh-AIBAPEEACH9AkAA5QUAIQMAAAALACAlAACFCAAgJgAAkAgAIA4AAAALACADAADVBgAgFwAA1wYAIB4AAJAIACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGEAwEA8wQAIYUDAQDzBAAhhgMBAPEEACGHAwEA8QQAIYgDAQDzBAAhigMAANQGigMiiwNAAOUFACEMAwAA1QYAIBcAANcGACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACGEAwEA8wQAIYUDAQDzBAAhhgMBAPEEACGHAwEA8QQAIYgDAQDzBAAhigMAANQGigMiiwNAAOUFACEE1AIBAAAAAdcCAQAAAAHmAgEAAAAB9gIBAAAAAQkHAACzBgAgDgAAtQYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAH-AkAAAAAB_wJAAAAAAYADIAAAAAECAAAAnAIAICUAAJIIACAFBwAAigYAIBIAAIwGACDUAgEAAAAB-AIBAAAAAf0CQAAAAAECAAAAtQIAICUAAJQIACAF1AIBAAAAAdkCQAAAAAHaAkAAAAAB6gIBAAAAAfgCAQAAAAECAAAA4wIAICUAAJYIACAKAwAA_AYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAYQDAQAAAAGFAwEAAAABhgMBAAAAAYoDAAAAigMCiwNAAAAAAYwDAQAAAAECAAAAvQEAICUAAJgIACAF1AIBAAAAAe0CQAAAAAHuAkAAAAAB9AIAAAD0AgL1AgEAAAABCdQCAQAAAAHVAgEAAAAB2QJAAAAAAdoCQAAAAAHqAgEAAAAB6wIQAAAAAewCEAAAAAHtAkAAAAAB7gJAAAAAAQMAAACfAgAgJQAAkggAICYAAJ4IACALAAAAnwIAIAcAAJIGACAOAACUBgAgHgAAnggAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_gJAAPIEACH_AkAA8gQAIYADIACJBQAhCQcAAJIGACAOAACUBgAg1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh-AIBAPEEACH-AkAA8gQAIf8CQADyBAAhgAMgAIkFACEDAAAAMQAgJQAAlAgAICYAAKEIACAHAAAAMQAgBwAA5gUAIBIAAOgFACAeAAChCAAg1AIBAPEEACH4AgEA8QQAIf0CQADlBQAhBQcAAOYFACASAADoBQAg1AIBAPEEACH4AgEA8QQAIf0CQADlBQAhAwAAAOYCACAlAACWCAAgJgAApAgAIAcAAADmAgAgHgAApAgAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeoCAQDzBAAh-AIBAPEEACEF1AIBAPEEACHZAkAA8gQAIdoCQADyBAAh6gIBAPMEACH4AgEA8QQAIQMAAABDACAlAACYCAAgJgAApwgAIAwAAABDACADAADxBgAgHgAApwgAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYoDAADUBooDIosDQADlBQAhjAMBAPEEACEKAwAA8QYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIYQDAQDzBAAhhQMBAPMEACGGAwEA8QQAIYoDAADUBooDIosDQADlBQAhjAMBAPEEACEKCgAAswUAIAsAALQFACAMAAC1BQAgDQAAtgUAIBEAALgFACDUAgEAAAAB1wIBAAAAAeYCAQAAAAH2AgEAAAAB9wIBAAAAAQIAAAAUACAlAACoCAAgAwAAABIAICUAAKgIACAmAACsCAAgDAAAABIAIAoAAJUFACALAACWBQAgDAAAlwUAIA0AAJgFACARAACaBQAgHgAArAgAINQCAQDxBAAh1wIBAPEEACHmAgEA8QQAIfYCAQDxBAAh9wIBAPEEACEKCgAAlQUAIAsAAJYFACAMAACXBQAgDQAAmAUAIBEAAJoFACDUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCQYAAN4FACAMAADfBQAgDQAA4AUAINQCAQAAAAHXAgEAAAAB2QJAAAAAAdoCQAAAAAHmAgEAAAAB_AIBAAAAAQIAAAAPACAlAACtCAAgAwAAAA0AICUAAK0IACAmAACxCAAgCwAAAA0AIAYAAM4FACAMAADPBQAgDQAA0AUAIB4AALEIACDUAgEA8QQAIdcCAQDxBAAh2QJAAPIEACHaAkAA8gQAIeYCAQDxBAAh_AIBAPEEACEJBgAAzgUAIAwAAM8FACANAADQBQAg1AIBAPEEACHXAgEA8QQAIdkCQADyBAAh2gJAAPIEACHmAgEA8QQAIfwCAQDxBAAhCgoAALMFACALAAC0BQAgDAAAtQUAIA0AALYFACAQAAC3BQAg1AIBAAAAAdcCAQAAAAHmAgEAAAAB9gIBAAAAAfcCAQAAAAECAAAAFAAgJQAAsggAIAMAAAASACAlAACyCAAgJgAAtggAIAwAAAASACAKAACVBQAgCwAAlgUAIAwAAJcFACANAACYBQAgEAAAmQUAIB4AALYIACDUAgEA8QQAIdcCAQDxBAAh5gIBAPEEACH2AgEA8QQAIfcCAQDxBAAhCgoAAJUFACALAACWBQAgDAAAlwUAIA0AAJgFACAQAACZBQAg1AIBAPEEACHXAgEA8QQAIeYCAQDxBAAh9gIBAPEEACH3AgEA8QQAIQkHAACzBgAgCAAAtAYAINQCAQAAAAHZAkAAAAAB2gJAAAAAAfgCAQAAAAH-AkAAAAAB_wJAAAAAAYADIAAAAAECAAAAnAIAICUAALcIACADAAAAnwIAICUAALcIACAmAAC7CAAgCwAAAJ8CACAHAACSBgAgCAAAkwYAIB4AALsIACDUAgEA8QQAIdkCQADyBAAh2gJAAPIEACH4AgEA8QQAIf4CQADyBAAh_wJAAPIEACGAAyAAiQUAIQkHAACSBgAgCAAAkwYAINQCAQDxBAAh2QJAAPIEACHaAkAA8gQAIfgCAQDxBAAh_gJAAPIEACH_AkAA8gQAIYADIACJBQAhBQcAAIoGACAIAACLBgAg1AIBAAAAAfgCAQAAAAH9AkAAAAABAgAAALUCACAlAAC8CAAgAwAAADEAICUAALwIACAmAADACAAgBwAAADEAIAcAAOYFACAIAADnBQAgHgAAwAgAINQCAQDxBAAh-AIBAPEEACH9AkAA5QUAIQUHAADmBQAgCAAA5wUAINQCAQDxBAAh-AIBAPEEACH9AkAA5QUAIQYEBgIFCgMGDAQJABsKRAgYRhoBAwABAQMAAQQDAAEHEAUJABkXPhYFBgAECQAVDAAGDQAMFDkUBAcRBQgVBwkAExIwEgcJABEKAAgLAAoMAAYNAAwQJg8RKhADAwABCBYHCQAJAQgXAAIIGAcJAAsBCBkABAcaBQgbBwkADg4fDQENAAwDByAACCEADiIAAQ8ABwEPAAcCECsAESwAAQwyBgMHMwAINAASNQABEwAFARQ6AAIGAAQWABcCCQAYFT8WARVAAAIHQQAXQgABAwABAgRHAAVIAAAAAAMJACArACEsACIAAAADCQAgKwAhLAAiAQMAAQEDAAEDCQAnKwAoLAApAAAAAwkAJysAKCwAKQEDAAEBAwABAwkALisALywAMAAAAAMJAC4rAC8sADAAAAADCQA2KwA3LAA4AAAAAwkANisANywAOAEDAAEBAwABAwkAPSsAPiwAPwAAAAMJAD0rAD4sAD8BAwABAQMAAQMJAEQrAEUsAEYAAAADCQBEKwBFLABGAQMAAQEDAAEDCQBLKwBMLABNAAAAAwkASysATCwATQAAAwkAUisAUywAVAAAAAMJAFIrAFMsAFQCBgAEFgAXAgYABBYAFwMJAFkrAFosAFsAAAADCQBZKwBaLABbAAADCQBgKwBhLABiAAAAAwkAYCsAYSwAYgAAAwkAZysAaCwAaQAAAAMJAGcrAGgsAGkDBgAEDAAGDQAMAwYABAwABg0ADAMJAG4rAG8sAHAAAAADCQBuKwBvLABwAAADCQB1KwB2LAB3AAAAAwkAdSsAdiwAdwQKAAgLAAoMAAYNAAwECgAICwAKDAAGDQAMAwkAfCsAfSwAfgAAAAMJAHwrAH0sAH4BDwAHAQ8ABwMJAIMBKwCEASwAhQEAAAADCQCDASsAhAEsAIUBARMABQETAAUDCQCKASsAiwEsAIwBAAAAAwkAigErAIsBLACMAQEPAAcBDwAHBQkAkQErAJQBLACVAa0CAJIBrgIAkwEAAAAAAAUJAJEBKwCUASwAlQGtAgCSAa4CAJMBAQ0ADAENAAwFCQCaASsAnQEsAJ4BrQIAmwGuAgCcAQAAAAAABQkAmgErAJ0BLACeAa0CAJsBrgIAnAEBDPQDBgEM-gMGAwkAowErAKQBLAClAQAAAAMJAKMBKwCkASwApQEZAgEaSQEbTAEcTQEdTgEfUAEgUhwhUx0iVQEjVxwkWB4nWQEoWgEpWxwtXh8uXyMvYAIwYQIxYgIyYwIzZAI0ZgI1aBw2aSQ3awI4bRw5biU6bwI7cAI8cRw9dCY-dSo_dgNAdwNBeANCeQNDegNEfANFfhxGfytHgQEDSIMBHEmEASxKhQEDS4YBA0yHARxNigEtTosBMU-NATJQjgEyUZEBMlKSATJTkwEyVJUBMlWXARxWmAEzV5oBMlicARxZnQE0Wp4BMlufATJcoAEcXaMBNV6kATlfpgEaYKcBGmGpARpiqgEaY6sBGmStARplrwEcZrABOmeyARpotAEcabUBO2q2ARprtwEabLgBHG27ATxuvAFAb74BCHC_AQhxwQEIcsIBCHPDAQh0xQEIdccBHHbIAUF3ygEIeMwBHHnNAUJ6zgEIe88BCHzQARx90wFDftQBR3_WAQSAAdcBBIEB2QEEggHaAQSDAdsBBIQB3QEEhQHfARyGAeABSIcB4gEEiAHkARyJAeUBSYoB5gEEiwHnAQSMAegBHI0B6wFKjgHsAU6PAe4BF5AB7wEXkQHyAReSAfMBF5MB9AEXlAH2AReVAfgBHJYB-QFPlwH7AReYAf0BHJkB_gFQmgH_ARebAYACF5wBgQIcnQGEAlGeAYUCVZ8BhgIWoAGHAhahAYgCFqIBiQIWowGKAhakAYwCFqUBjgIcpgGPAlanAZECFqgBkwIcqQGUAleqAZUCFqsBlgIWrAGXAhytAZoCWK4BmwJcrwGdAgywAZ4CDLEBoQIMsgGiAgyzAaMCDLQBpQIMtQGnAhy2AagCXbcBqgIMuAGsAhy5Aa0CXroBrgIMuwGvAgy8AbACHL0BswJfvgG0AmO_AbYCBsABtwIGwQG5AgbCAboCBsMBuwIGxAG9AgbFAb8CHMYBwAJkxwHCAgbIAcQCHMkBxQJlygHGAgbLAccCBswByAIczQHLAmbOAcwCas8BzQIF0AHOAgXRAc8CBdIB0AIF0wHRAgXUAdMCBdUB1QIc1gHWAmvXAdgCBdgB2gIc2QHbAmzaAdwCBdsB3QIF3AHeAhzdAeECbd4B4gJx3wHkAgrgAeUCCuEB6AIK4gHpAgrjAeoCCuQB7AIK5QHuAhzmAe8CcucB8QIK6AHzAhzpAfQCc-oB9QIK6wH2AgrsAfcCHO0B-gJ07gH7AnjvAfwCB_AB_QIH8QH-AgfyAf8CB_MBgAMH9AGCAwf1AYQDHPYBhQN59wGHAwf4AYkDHPkBigN6-gGLAwf7AYwDB_wBjQMc_QGQA3v-AZEDf_8BkgMPgAKTAw-BApQDD4IClQMPgwKWAw-EApgDD4UCmgMchgKbA4ABhwKdAw-IAp8DHIkCoAOBAYoCoQMPiwKiAw-MAqMDHI0CpgOCAY4CpwOGAY8CqAMUkAKpAxSRAqoDFJICqwMUkwKsAxSUAq4DFJUCsAMclgKxA4cBlwKzAxSYArUDHJkCtgOIAZoCtwMUmwK4AxScArkDHJ0CvAOJAZ4CvQONAZ8CvgMQoAK_AxChAsADEKICwQMQowLCAxCkAsQDEKUCxgMcpgLHA44BpwLJAxCoAssDHKkCzAOPAaoCzQMQqwLOAxCsAs8DHK8C0gOQAbAC0wOWAbEC1AMNsgLVAw2zAtYDDbQC1wMNtQLYAw22AtoDDbcC3AMcuALdA5cBuQLfAw26AuEDHLsC4gOYAbwC4wMNvQLkAw2-AuUDHL8C6AOZAcAC6QOfAcEC6gMSwgLrAxLDAuwDEsQC7QMSxQLuAxLGAvADEscC8gMcyALzA6AByQL2AxLKAvgDHMsC-QOhAcwC-wMSzQL8AxLOAv0DHM8CgASiAdACgQSmAQ" } async function decodeBase64AsWasm(wasmBase64: string): Promise { diff --git a/server/prisma/generated/prisma/internal/prismaNamespace.ts b/server/prisma/generated/prisma/internal/prismaNamespace.ts index 8b5fd03..8d3f922 100644 --- a/server/prisma/generated/prisma/internal/prismaNamespace.ts +++ b/server/prisma/generated/prisma/internal/prismaNamespace.ts @@ -2010,7 +2010,8 @@ export type AcademicYearScalarFieldEnum = (typeof AcademicYearScalarFieldEnum)[k export const ClassScalarFieldEnum = { id: 'id', - name: 'name' + name: 'name', + deletedAt: 'deletedAt' } as const export type ClassScalarFieldEnum = (typeof ClassScalarFieldEnum)[keyof typeof ClassScalarFieldEnum] diff --git a/server/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts b/server/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts index 0045827..2b18803 100644 --- a/server/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/server/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -231,7 +231,8 @@ export type AcademicYearScalarFieldEnum = (typeof AcademicYearScalarFieldEnum)[k export const ClassScalarFieldEnum = { id: 'id', - name: 'name' + name: 'name', + deletedAt: 'deletedAt' } as const export type ClassScalarFieldEnum = (typeof ClassScalarFieldEnum)[keyof typeof ClassScalarFieldEnum] diff --git a/server/prisma/generated/prisma/models/Class.ts b/server/prisma/generated/prisma/models/Class.ts index 40aacf9..0fc2769 100644 --- a/server/prisma/generated/prisma/models/Class.ts +++ b/server/prisma/generated/prisma/models/Class.ts @@ -27,16 +27,19 @@ export type AggregateClass = { export type ClassMinAggregateOutputType = { id: string | null name: string | null + deletedAt: Date | null } export type ClassMaxAggregateOutputType = { id: string | null name: string | null + deletedAt: Date | null } export type ClassCountAggregateOutputType = { id: number name: number + deletedAt: number _all: number } @@ -44,16 +47,19 @@ export type ClassCountAggregateOutputType = { export type ClassMinAggregateInputType = { id?: true name?: true + deletedAt?: true } export type ClassMaxAggregateInputType = { id?: true name?: true + deletedAt?: true } export type ClassCountAggregateInputType = { id?: true name?: true + deletedAt?: true _all?: true } @@ -132,6 +138,7 @@ export type ClassGroupByArgs | string name?: Prisma.StringFilter<"Class"> | string + deletedAt?: Prisma.DateTimeNullableFilter<"Class"> | Date | string | null enrollments?: Prisma.EnrollmentListRelationFilter teachingAllocations?: Prisma.TeachingAllocationListRelationFilter announcements?: Prisma.AnnouncementListRelationFilter @@ -166,6 +174,7 @@ export type ClassWhereInput = { export type ClassOrderByWithRelationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder enrollments?: Prisma.EnrollmentOrderByRelationAggregateInput teachingAllocations?: Prisma.TeachingAllocationOrderByRelationAggregateInput announcements?: Prisma.AnnouncementOrderByRelationAggregateInput @@ -177,6 +186,7 @@ export type ClassWhereUniqueInput = Prisma.AtLeast<{ AND?: Prisma.ClassWhereInput | Prisma.ClassWhereInput[] OR?: Prisma.ClassWhereInput[] NOT?: Prisma.ClassWhereInput | Prisma.ClassWhereInput[] + deletedAt?: Prisma.DateTimeNullableFilter<"Class"> | Date | string | null enrollments?: Prisma.EnrollmentListRelationFilter teachingAllocations?: Prisma.TeachingAllocationListRelationFilter announcements?: Prisma.AnnouncementListRelationFilter @@ -185,6 +195,7 @@ export type ClassWhereUniqueInput = Prisma.AtLeast<{ export type ClassOrderByWithAggregationInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder + deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder _count?: Prisma.ClassCountOrderByAggregateInput _max?: Prisma.ClassMaxOrderByAggregateInput _min?: Prisma.ClassMinOrderByAggregateInput @@ -196,11 +207,13 @@ export type ClassScalarWhereWithAggregatesInput = { NOT?: Prisma.ClassScalarWhereWithAggregatesInput | Prisma.ClassScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"Class"> | string name?: Prisma.StringWithAggregatesFilter<"Class"> | string + deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Class"> | Date | string | null } export type ClassCreateInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentCreateNestedManyWithoutClassInput teachingAllocations?: Prisma.TeachingAllocationCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementCreateNestedManyWithoutClassInput @@ -209,6 +222,7 @@ export type ClassCreateInput = { export type ClassUncheckedCreateInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentUncheckedCreateNestedManyWithoutClassInput teachingAllocations?: Prisma.TeachingAllocationUncheckedCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementUncheckedCreateNestedManyWithoutClassInput @@ -217,6 +231,7 @@ export type ClassUncheckedCreateInput = { export type ClassUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUpdateManyWithoutClassNestedInput teachingAllocations?: Prisma.TeachingAllocationUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUpdateManyWithoutClassNestedInput @@ -225,6 +240,7 @@ export type ClassUpdateInput = { export type ClassUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUncheckedUpdateManyWithoutClassNestedInput teachingAllocations?: Prisma.TeachingAllocationUncheckedUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUncheckedUpdateManyWithoutClassNestedInput @@ -233,31 +249,37 @@ export type ClassUncheckedUpdateInput = { export type ClassCreateManyInput = { id?: string name: string + deletedAt?: Date | string | null } export type ClassUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ClassUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null } export type ClassCountOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder } export type ClassMaxOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder } export type ClassMinOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder + deletedAt?: Prisma.SortOrder } export type ClassScalarRelationFilter = { @@ -317,6 +339,7 @@ export type ClassUpdateOneWithoutAnnouncementsNestedInput = { export type ClassCreateWithoutEnrollmentsInput = { id?: string name: string + deletedAt?: Date | string | null teachingAllocations?: Prisma.TeachingAllocationCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementCreateNestedManyWithoutClassInput } @@ -324,6 +347,7 @@ export type ClassCreateWithoutEnrollmentsInput = { export type ClassUncheckedCreateWithoutEnrollmentsInput = { id?: string name: string + deletedAt?: Date | string | null teachingAllocations?: Prisma.TeachingAllocationUncheckedCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementUncheckedCreateNestedManyWithoutClassInput } @@ -347,6 +371,7 @@ export type ClassUpdateToOneWithWhereWithoutEnrollmentsInput = { export type ClassUpdateWithoutEnrollmentsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null teachingAllocations?: Prisma.TeachingAllocationUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUpdateManyWithoutClassNestedInput } @@ -354,6 +379,7 @@ export type ClassUpdateWithoutEnrollmentsInput = { export type ClassUncheckedUpdateWithoutEnrollmentsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null teachingAllocations?: Prisma.TeachingAllocationUncheckedUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUncheckedUpdateManyWithoutClassNestedInput } @@ -361,6 +387,7 @@ export type ClassUncheckedUpdateWithoutEnrollmentsInput = { export type ClassCreateWithoutTeachingAllocationsInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementCreateNestedManyWithoutClassInput } @@ -368,6 +395,7 @@ export type ClassCreateWithoutTeachingAllocationsInput = { export type ClassUncheckedCreateWithoutTeachingAllocationsInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentUncheckedCreateNestedManyWithoutClassInput announcements?: Prisma.AnnouncementUncheckedCreateNestedManyWithoutClassInput } @@ -391,6 +419,7 @@ export type ClassUpdateToOneWithWhereWithoutTeachingAllocationsInput = { export type ClassUpdateWithoutTeachingAllocationsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUpdateManyWithoutClassNestedInput } @@ -398,6 +427,7 @@ export type ClassUpdateWithoutTeachingAllocationsInput = { export type ClassUncheckedUpdateWithoutTeachingAllocationsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUncheckedUpdateManyWithoutClassNestedInput announcements?: Prisma.AnnouncementUncheckedUpdateManyWithoutClassNestedInput } @@ -405,6 +435,7 @@ export type ClassUncheckedUpdateWithoutTeachingAllocationsInput = { export type ClassCreateWithoutAnnouncementsInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentCreateNestedManyWithoutClassInput teachingAllocations?: Prisma.TeachingAllocationCreateNestedManyWithoutClassInput } @@ -412,6 +443,7 @@ export type ClassCreateWithoutAnnouncementsInput = { export type ClassUncheckedCreateWithoutAnnouncementsInput = { id?: string name: string + deletedAt?: Date | string | null enrollments?: Prisma.EnrollmentUncheckedCreateNestedManyWithoutClassInput teachingAllocations?: Prisma.TeachingAllocationUncheckedCreateNestedManyWithoutClassInput } @@ -435,6 +467,7 @@ export type ClassUpdateToOneWithWhereWithoutAnnouncementsInput = { export type ClassUpdateWithoutAnnouncementsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUpdateManyWithoutClassNestedInput teachingAllocations?: Prisma.TeachingAllocationUpdateManyWithoutClassNestedInput } @@ -442,6 +475,7 @@ export type ClassUpdateWithoutAnnouncementsInput = { export type ClassUncheckedUpdateWithoutAnnouncementsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string name?: Prisma.StringFieldUpdateOperationsInput | string + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null enrollments?: Prisma.EnrollmentUncheckedUpdateManyWithoutClassNestedInput teachingAllocations?: Prisma.TeachingAllocationUncheckedUpdateManyWithoutClassNestedInput } @@ -498,6 +532,7 @@ export type ClassCountOutputTypeCountAnnouncementsArgs = runtime.Types.Extensions.GetSelect<{ id?: boolean name?: boolean + deletedAt?: boolean enrollments?: boolean | Prisma.Class$enrollmentsArgs teachingAllocations?: boolean | Prisma.Class$teachingAllocationsArgs announcements?: boolean | Prisma.Class$announcementsArgs @@ -507,19 +542,22 @@ export type ClassSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean name?: boolean + deletedAt?: boolean }, ExtArgs["result"]["class"]> export type ClassSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ id?: boolean name?: boolean + deletedAt?: boolean }, ExtArgs["result"]["class"]> export type ClassSelectScalar = { id?: boolean name?: boolean + deletedAt?: boolean } -export type ClassOmit = runtime.Types.Extensions.GetOmit<"id" | "name", ExtArgs["result"]["class"]> +export type ClassOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "deletedAt", ExtArgs["result"]["class"]> export type ClassInclude = { enrollments?: boolean | Prisma.Class$enrollmentsArgs teachingAllocations?: boolean | Prisma.Class$teachingAllocationsArgs @@ -539,6 +577,7 @@ export type $ClassPayload composites: {} } @@ -967,6 +1006,7 @@ export interface Prisma__ClassClient readonly name: Prisma.FieldRef<"Class", 'String'> + readonly deletedAt: Prisma.FieldRef<"Class", 'DateTime'> } diff --git a/server/prisma/migrations/20260712073901_init/migration.sql b/server/prisma/migrations/20260712073901_init/migration.sql new file mode 100644 index 0000000..dccc09c --- /dev/null +++ b/server/prisma/migrations/20260712073901_init/migration.sql @@ -0,0 +1,17 @@ +-- DropForeignKey +ALTER TABLE "attendances" DROP CONSTRAINT "attendances_enrollmentId_fkey"; + +-- DropForeignKey +ALTER TABLE "exams" DROP CONSTRAINT "exams_teachingAllocationId_fkey"; + +-- DropForeignKey +ALTER TABLE "time_tables" DROP CONSTRAINT "time_tables_teachingAllocationId_fkey"; + +-- AddForeignKey +ALTER TABLE "time_tables" ADD CONSTRAINT "time_tables_teachingAllocationId_fkey" FOREIGN KEY ("teachingAllocationId") REFERENCES "teaching_assignments"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "attendances" ADD CONSTRAINT "attendances_enrollmentId_fkey" FOREIGN KEY ("enrollmentId") REFERENCES "enrollments"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "exams" ADD CONSTRAINT "exams_teachingAllocationId_fkey" FOREIGN KEY ("teachingAllocationId") REFERENCES "teaching_assignments"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/server/prisma/migrations/20260712084700_init/migration.sql b/server/prisma/migrations/20260712084700_init/migration.sql new file mode 100644 index 0000000..8143db5 --- /dev/null +++ b/server/prisma/migrations/20260712084700_init/migration.sql @@ -0,0 +1,20 @@ +-- DropForeignKey +ALTER TABLE "attendances" DROP CONSTRAINT "attendances_enrollmentId_fkey"; + +-- DropForeignKey +ALTER TABLE "exams" DROP CONSTRAINT "exams_teachingAllocationId_fkey"; + +-- DropForeignKey +ALTER TABLE "time_tables" DROP CONSTRAINT "time_tables_teachingAllocationId_fkey"; + +-- AlterTable +ALTER TABLE "classes" ADD COLUMN "deletedAt" TIMESTAMP(3); + +-- AddForeignKey +ALTER TABLE "time_tables" ADD CONSTRAINT "time_tables_teachingAllocationId_fkey" FOREIGN KEY ("teachingAllocationId") REFERENCES "teaching_assignments"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "attendances" ADD CONSTRAINT "attendances_enrollmentId_fkey" FOREIGN KEY ("enrollmentId") REFERENCES "enrollments"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "exams" ADD CONSTRAINT "exams_teachingAllocationId_fkey" FOREIGN KEY ("teachingAllocationId") REFERENCES "teaching_assignments"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index 8939f64..a8787bf 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -170,23 +170,13 @@ model AcademicYear { @@map("academic_years") } -// model Grade { -// id String @id @default(cuid()) - -// name String - -// classes Class[] - -// @@unique([name]) -// @@map("grades") -// } - model Class { id String @id @default(cuid()) name String enrollments Enrollment[] teachingAllocations TeachingAllocation[] announcements Announcement[] + deletedAt DateTime? // academicYearId String // academicYear AcademicYear @relation(fields: [academicYearId], references: [id]) // gradeId String @@ -251,7 +241,7 @@ model Timetable { startTime DateTime endTime DateTime room String? - teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id]) + teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id], onDelete: Cascade) @@index([day]) @@map("time_tables") @@ -260,7 +250,7 @@ model Timetable { model Attendance { id String @id @default(cuid()) enrollmentId String - enrollment Enrollment @relation(fields: [enrollmentId], references: [id]) + enrollment Enrollment @relation(fields: [enrollmentId], references: [id], onDelete: Cascade) // academicYearId String // academicYear AcademicYear @relation(fields: [academicYearId], references: [id]) date DateTime @@ -280,7 +270,7 @@ model Exam { startTime DateTime endTime DateTime teachingAllocationId String - teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id]) + teachingAllocation TeachingAllocation @relation(fields: [teachingAllocationId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt // results Result[] @@ -313,7 +303,7 @@ model Announcement { title String content String classId String? - class Class? @relation(fields: [classId], references: [id]) + class Class? @relation(fields: [classId], references: [id], onDelete: SetNull) publishedAt DateTime @default(now()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/server/src/common/formatters/class.formatter.ts b/server/src/common/formatters/class.formatter.ts index a137620..a08dccf 100644 --- a/server/src/common/formatters/class.formatter.ts +++ b/server/src/common/formatters/class.formatter.ts @@ -1,5 +1,4 @@ import { - AcademicYear, Class, Enrollment, Student, @@ -20,7 +19,7 @@ type FormatClassType = Class & { export function formatClass( classItem: FormatClassType, - academicYear?: AcademicYear, + academicYear?: { id: string; name: string } | null, ): ClassResponseDto { const response: ClassResponseDto = { id: classItem.id, @@ -36,7 +35,7 @@ export function formatClass( if (classItem.enrollments) { response.enrollments = classItem.enrollments.map((e) => ({ - enrollmentId: e.id, + id: e.id, student: { id: e.student.id, name: e.student.user.name, @@ -46,7 +45,7 @@ export function formatClass( if (classItem.teachingAllocations) { response.teachingAllocations = classItem.teachingAllocations.map((ta) => ({ - allocationId: ta.id, + id: ta.id, teacher: { id: ta.teacher.id, name: ta.teacher.user.name, @@ -55,6 +54,10 @@ export function formatClass( id: ta.subject.id, name: ta.subject.name, }, + // class: { + // id: classItem.id, + // name: classItem.name, + // }, })); } diff --git a/server/src/modules/academic-years/academic-years.controller.ts b/server/src/modules/academic-years/academic-years.controller.ts index 9caa70f..fa00fad 100644 --- a/server/src/modules/academic-years/academic-years.controller.ts +++ b/server/src/modules/academic-years/academic-years.controller.ts @@ -8,7 +8,12 @@ import { Post, Query, } from '@nestjs/common'; -import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { + ApiCreatedResponse, + ApiOkResponse, + ApiOperation, + ApiTags, +} from '@nestjs/swagger'; import { Roles } from '@thallesp/nestjs-better-auth'; import { ADMIN_ROLES } from '../../common/constants/role.constant.js'; import { @@ -28,7 +33,7 @@ export class AcademicYearsController { constructor(private readonly academicYearsService: AcademicYearsService) {} @ApiOperation({ summary: 'Create academic year' }) - @ApiOkResponse({ type: AcademicYearResponseDto }) + @ApiCreatedResponse({ type: AcademicYearResponseDto }) @Post() async create( @Body() createAcademicYearDto: CreateAcademicYearDto, diff --git a/server/src/modules/academic-years/dto/academic-year.dto.ts b/server/src/modules/academic-years/dto/academic-year.dto.ts new file mode 100644 index 0000000..03335a8 --- /dev/null +++ b/server/src/modules/academic-years/dto/academic-year.dto.ts @@ -0,0 +1,9 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class AcademicYearDto { + @ApiProperty({ example: 'academicyearid' }) + id!: string; + + @ApiProperty({ type: String, example: '2024-2025' }) + name!: string; +} diff --git a/server/src/modules/academic-years/dto/create-academic-year.dto.ts b/server/src/modules/academic-years/dto/create-academic-year.dto.ts index 535c1d8..3a1b7f1 100644 --- a/server/src/modules/academic-years/dto/create-academic-year.dto.ts +++ b/server/src/modules/academic-years/dto/create-academic-year.dto.ts @@ -3,7 +3,6 @@ import { IsBoolean, IsDateString, IsNotEmpty, - IsOptional, IsString, MaxLength, } from 'class-validator'; @@ -27,6 +26,5 @@ export class CreateAcademicYearDto { @ApiProperty({ example: false }) @IsBoolean() - @IsOptional() - isCurrent!: boolean; + isCurrent: boolean = false; } diff --git a/server/src/modules/attendances/dto/attendance-response.dto.ts b/server/src/modules/attendances/dto/attendance-response.dto.ts index f853581..86345e8 100644 --- a/server/src/modules/attendances/dto/attendance-response.dto.ts +++ b/server/src/modules/attendances/dto/attendance-response.dto.ts @@ -10,10 +10,10 @@ export class AttendanceResponseDto { @ApiProperty({ example: '2026-07-03T00:00:00.000Z' }) date!: Date; - @ApiProperty({ example: 'ckx123enrollmentid' }) + @ApiProperty({ example: 'enrollmentid123' }) enrollmentId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) academicYearId!: string; @ApiProperty({ example: '2026-07-03T00:00:00.000Z' }) diff --git a/server/src/modules/attendances/dto/create-attendance.dto.ts b/server/src/modules/attendances/dto/create-attendance.dto.ts index 73ad7da..905e9f3 100644 --- a/server/src/modules/attendances/dto/create-attendance.dto.ts +++ b/server/src/modules/attendances/dto/create-attendance.dto.ts @@ -12,12 +12,12 @@ export class CreateAttendanceDto { @IsNotEmpty() date!: string; - @ApiProperty({ example: 'ckx123enrollmentid' }) + @ApiProperty({ example: 'enrollmentid123' }) @IsString() @IsNotEmpty() enrollmentId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; diff --git a/server/src/modules/attendances/dto/query-attendance-dto.ts b/server/src/modules/attendances/dto/query-attendance-dto.ts index c4d07e4..a9300d7 100644 --- a/server/src/modules/attendances/dto/query-attendance-dto.ts +++ b/server/src/modules/attendances/dto/query-attendance-dto.ts @@ -9,12 +9,12 @@ import { } from 'class-validator'; export class QueryAttendanceDto { - @ApiPropertyOptional({ example: 'ckx123enrollmentid' }) + @ApiPropertyOptional({ example: 'enrollmentid123' }) @IsString() @IsOptional() enrollmentId?: string; - @ApiPropertyOptional({ example: 'ckx123academicyearid' }) + @ApiPropertyOptional({ example: 'academicyearid123' }) @IsString() @IsOptional() academicYearId?: string; diff --git a/server/src/modules/classes/classes.controller.ts b/server/src/modules/classes/classes.controller.ts index 580cc3f..ad812a2 100644 --- a/server/src/modules/classes/classes.controller.ts +++ b/server/src/modules/classes/classes.controller.ts @@ -8,31 +8,37 @@ import { Post, Query, } from '@nestjs/common'; -import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { + ApiCreatedResponse, + ApiOkResponse, + ApiOperation, + ApiTags, +} from '@nestjs/swagger'; import { Roles } from '@thallesp/nestjs-better-auth'; -import { TEACHING_ROLES } from '../../common/constants/role.constant.js'; +import { ADMIN_ROLES } from '../../common/constants/role.constant.js'; import { ApiPaginatedResponse, PaginatedResponseDto, } from '../../common/dto/paginated-response.dto.js'; import { ClassesService } from './classes.service.js'; import { ClassResponseDto } from './dto/class-response-dto.js'; +import { CreateClassResponse } from './dto/create-class-response.dto.js'; import { CreateClassDto } from './dto/create-class.dto.js'; import { QueryClassDto } from './dto/query-class-dto.js'; import { UpdateClassDto } from './dto/update-class.dto.js'; @ApiTags('Classes') -@Roles(TEACHING_ROLES) +@Roles(ADMIN_ROLES) @Controller('classes') export class ClassesController { constructor(private readonly classesService: ClassesService) {} @ApiOperation({ summary: 'Create a class for an academic year' }) - @ApiOkResponse({ type: ClassResponseDto }) + @ApiCreatedResponse({ type: CreateClassResponse }) @Post() async create( @Body() createClassDto: CreateClassDto, - ): Promise { + ): Promise { return this.classesService.create(createClassDto); } @@ -48,8 +54,11 @@ export class ClassesController { @ApiOperation({ summary: 'Get a class by id' }) @ApiOkResponse({ type: ClassResponseDto }) @Get(':id') - async findOne(@Param('id') id: string): Promise { - return this.classesService.findOne(id); + async findOne( + @Param('id') id: string, + @Query('academicYearId') academicYearId?: string, + ): Promise { + return this.classesService.findOne(id, academicYearId); } @ApiOperation({ summary: 'Update a class' }) @@ -62,12 +71,28 @@ export class ClassesController { return this.classesService.update(id, updateClassDto); } - @ApiOperation({ summary: 'Delete a class' }) + @ApiOperation({ + summary: 'Archive a class (soft delete)', + description: 'This performs a soft delete, preserving all related data.', + }) + @ApiOkResponse({ + schema: { example: { message: 'Class archived successfully' } }, + }) + @Delete(':id/archive') + async archive(@Param('id') id: string): Promise<{ message: string }> { + return this.classesService.archive(id); + } + + @ApiOperation({ + summary: 'Permanently delete a class (destructive)', + description: + 'Warning: This action is irreversible and will delete the class and all its associated data, including enrollments, attendance, exams, and timetables.', + }) @ApiOkResponse({ - schema: { example: { message: 'Class deleted successfully' } }, + schema: { example: { message: 'Class permanently deleted successfully' } }, }) @Delete(':id') - async remove(@Param('id') id: string): Promise<{ message: string }> { - return this.classesService.remove(id); + async delete(@Param('id') id: string): Promise<{ message: string }> { + return this.classesService.delete(id); } } diff --git a/server/src/modules/classes/classes.service.ts b/server/src/modules/classes/classes.service.ts index a18056b..493b20a 100644 --- a/server/src/modules/classes/classes.service.ts +++ b/server/src/modules/classes/classes.service.ts @@ -10,6 +10,7 @@ import { PaginatedResponseDto } from '../../common/dto/paginated-response.dto.js import { formatClass } from '../../common/formatters/class.formatter.js'; import { PrismaService } from '../../database/prisma/prisma.service.js'; import { ClassResponseDto } from './dto/class-response-dto.js'; +import { CreateClassResponse } from './dto/create-class-response.dto.js'; import { CreateClassDto } from './dto/create-class.dto.js'; import { QueryClassDto } from './dto/query-class-dto.js'; import { UpdateClassDto } from './dto/update-class.dto.js'; @@ -21,7 +22,7 @@ export class ClassesService { private readonly academicYearContext: AcademicYearContextService, ) {} - async create(createClassDto: CreateClassDto): Promise { + async create(createClassDto: CreateClassDto): Promise { const { name, studentIds, teachingAllocations } = createClassDto; const className = name.trim(); @@ -31,7 +32,7 @@ export class ClassesService { (await this.academicYearContext.getActiveId()); let classItem = await tx.class.findFirst({ - where: { name: className }, + where: { name: className, deletedAt: null }, }); if (classItem) { @@ -46,7 +47,7 @@ export class ClassesService { if (enrollment || teachingAllocation) { throw new ConflictException( - `Class with name '${className}' is already used for this academic year.`, + 'Class with this name is already used for this academic year.', ); } } else { @@ -62,11 +63,10 @@ export class ClassesService { academicYearId: academicYearId, }, }); - if (existingEnrollments.length > 0) { + if (existingEnrollments.length > 0) throw new ConflictException( `One or more students are already enrolled in a class for this academic year.`, ); - } await tx.enrollment.createMany({ data: studentIds.map((studentId) => ({ @@ -88,38 +88,47 @@ export class ClassesService { }); } - const [result, academicYear] = await Promise.all([ - tx.class.findUnique({ - where: { id: classItem.id }, - include: { - enrollments: { - where: { academicYearId }, - include: { student: { include: { user: true } } }, - }, - teachingAllocations: { - where: { academicYearId }, - include: { - teacher: { include: { user: true } }, - subject: true, - }, + const result = await tx.class.findUnique({ + where: { id: classItem.id }, + include: { + enrollments: { + where: { academicYearId }, + include: { student: { include: { user: true } } }, + }, + teachingAllocations: { + where: { academicYearId }, + include: { + teacher: { include: { user: true } }, + subject: true, }, }, - }), - tx.academicYear.findUnique({ where: { id: academicYearId } }), - ]); + }, + }); - if (!result) { + if (!result) throw new InternalServerErrorException( 'Could not find the created class.', ); + + const response: CreateClassResponse = { + name: classItem.name, + academicYearId, + }; + + if (result.enrollments) { + response.students = result.enrollments.map((e) => ({ + id: e.student.id, + })); } - if (!academicYear) { - throw new InternalServerErrorException( - 'Could not find the specified academic year.', - ); + + if (result.teachingAllocations) { + response.teachingAllocations = result.teachingAllocations.map((ta) => ({ + teacher: { id: ta.teacher.id }, + subject: { id: ta.subject.id }, + })); } - return formatClass(result, academicYear); + return response; }); } @@ -131,8 +140,8 @@ export class ClassesService { const effectiveAcademicYearId = academicYearId ?? (await this.academicYearContext.getActiveId()); - const where: Prisma.ClassWhereInput = {}; - const andConditions: Prisma.ClassWhereInput[] = []; + const where: Prisma.ClassWhereInput = { deletedAt: null }; + const andConditions: Prisma.ClassWhereInput[] = [{ deletedAt: null }]; if (effectiveAcademicYearId) { andConditions.push({ @@ -155,46 +164,51 @@ export class ClassesService { }); } - if (search) { + if (search) andConditions.push({ name: { contains: search, mode: 'insensitive' } }); - } - if (andConditions.length > 0) { - where.AND = andConditions; - } + if (andConditions.length > 0) where.AND = andConditions; const total = await this.prisma.class.count({ where }); - const [classItems, academicYear] = await Promise.all([ - this.prisma.class.findMany({ - where, - skip: (page - 1) * limit, - take: limit, - orderBy: { name: 'asc' }, - include: { - enrollments: { - where: { academicYearId: effectiveAcademicYearId }, - include: { student: { include: { user: true } } }, - }, - teachingAllocations: { - where: { academicYearId: effectiveAcademicYearId }, - include: { - teacher: { include: { user: true } }, - subject: true, - }, + const classItems = await this.prisma.class.findMany({ + where, + skip: (page - 1) * limit, + take: limit, + orderBy: { name: 'asc' }, + include: { + enrollments: { + where: { academicYearId: effectiveAcademicYearId }, + include: { student: { include: { user: true } } }, + }, + teachingAllocations: { + where: { academicYearId: effectiveAcademicYearId }, + include: { + teacher: { include: { user: true } }, + subject: true, }, }, - }), - this.prisma.academicYear.findUnique({ - where: { id: effectiveAcademicYearId }, - }), - ]); + }, + }); - if (effectiveAcademicYearId && !academicYear) - throw new NotFoundException('The specified academic year was not found.'); + if (academicYearId) { + const academicYear = await this.prisma.academicYear.findUnique({ + where: { id: academicYearId }, + }); + if (!academicYear) + throw new NotFoundException( + 'The specified academic year was not found.', + ); + } + + const academicYear = effectiveAcademicYearId + ? await this.prisma.academicYear.findUnique({ + where: { id: effectiveAcademicYearId }, + }) + : null; return { - data: classItems.map((classItem) => formatClass(classItem)), + data: classItems.map((classItem) => formatClass(classItem, academicYear)), meta: { total, page, @@ -204,14 +218,39 @@ export class ClassesService { }; } - async findOne(id: string): Promise { + async findOne( + id: string, + academicYearId?: string, + ): Promise { + const effectiveAcademicYearId = + academicYearId ?? (await this.academicYearContext.getActiveId()); + const classById = await this.prisma.class.findUnique({ - where: { id }, + where: { id, deletedAt: null }, + include: { + enrollments: { + where: { academicYearId: effectiveAcademicYearId }, + include: { student: { include: { user: true } } }, + }, + teachingAllocations: { + where: { academicYearId: effectiveAcademicYearId }, + include: { + teacher: { include: { user: true } }, + subject: true, + }, + }, + }, }); if (!classById) throw new NotFoundException('Class is not found'); - return formatClass(classById); + const academicYear = effectiveAcademicYearId + ? await this.prisma.academicYear.findUnique({ + where: { id: effectiveAcademicYearId }, + }) + : null; + + return formatClass(classById, academicYear); } async update( @@ -222,8 +261,8 @@ export class ClassesService { updateClassDto; return this.prisma.$transaction(async (tx) => { - const classItem = await tx.class.findUnique({ - where: { id }, + const classItem = await tx.class.findFirst({ + where: { id, deletedAt: null }, }); if (!classItem) throw new NotFoundException('Class is not found'); @@ -231,6 +270,7 @@ export class ClassesService { const duplicateClass = await tx.class.findFirst({ where: { name: name.trim(), + deletedAt: null, NOT: { id }, }, }); @@ -275,6 +315,7 @@ export class ClassesService { where: { academicYearId, studentId: { in: studentIdsToEnroll }, + classId: { not: id }, }, }); if (otherEnrollments.length > 0) { @@ -310,49 +351,63 @@ export class ClassesService { }); } - const [result, academicYear] = await Promise.all([ - tx.class.findUnique({ - where: { id }, - include: { - enrollments: { - where: { academicYearId }, - include: { student: { include: { user: true } } }, - }, - teachingAllocations: { - where: { academicYearId }, - include: { - teacher: { include: { user: true } }, - subject: true, - }, + const result = await tx.class.findUnique({ + where: { id }, + include: { + enrollments: { + where: { academicYearId }, + include: { student: { include: { user: true } } }, + }, + teachingAllocations: { + where: { academicYearId }, + include: { + teacher: { include: { user: true } }, + subject: true, }, }, - }), - tx.academicYear.findUnique({ where: { id: academicYearId } }), - ]); + }, + }); - if (!result) { + if (!result) throw new InternalServerErrorException( 'Could not find the updated class.', ); - } - if (!academicYear) { - throw new InternalServerErrorException( - 'Could not find the specified academic year.', - ); - } + + const academicYear = await tx.academicYear.findUnique({ + where: { id: academicYearId }, + }); return formatClass(result, academicYear); }); } - async remove(id: string): Promise<{ message: string }> { + async archive(id: string): Promise<{ message: string }> { + const existingClass = await this.prisma.class.findFirst({ + where: { id, deletedAt: null }, + }); + if (!existingClass) throw new NotFoundException('Class is not found'); + + await this.prisma.class.update({ + where: { id }, + data: { deletedAt: new Date() }, + }); + + return { message: 'Class soft-deleted successfully' }; + } + + async delete(id: string): Promise<{ message: string }> { const existingClass = await this.prisma.class.findUnique({ where: { id }, }); if (!existingClass) throw new NotFoundException('Class is not found'); - await this.prisma.class.delete({ where: { id } }); + // Deleting enrollments and allocations will cascade to attendance, exams, etc. + await this.prisma.$transaction([ + this.prisma.enrollment.deleteMany({ where: { classId: id } }), + this.prisma.teachingAllocation.deleteMany({ where: { classId: id } }), + this.prisma.class.delete({ where: { id } }), + ]); - return { message: 'Class deleted successfully' }; + return { message: 'Class permanently deleted successfully' }; } } diff --git a/server/src/modules/classes/dto/class-response-dto.ts b/server/src/modules/classes/dto/class-response-dto.ts index 87fbf8a..95bb6af 100644 --- a/server/src/modules/classes/dto/class-response-dto.ts +++ b/server/src/modules/classes/dto/class-response-dto.ts @@ -1,60 +1,29 @@ -import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiProperty, ApiPropertyOptional, OmitType } from '@nestjs/swagger'; +import { IsOptional } from 'class-validator'; +import { AcademicYearDto } from '../../academic-years/dto/academic-year.dto'; +import { EnrollmentDto } from '../../enrollments/dto/enrollment.dto'; +import { TeachingAllocationDto } from '../../teaching-allocations/dto/teaching-allocation.dto'; -class AcademicYearResponseDto { - @ApiProperty() - id!: string; - @ApiProperty() - name!: string; -} - -class EnrolledStudentDto { - @ApiProperty() - id!: string; - @ApiProperty() - name!: string; -} - -class EnrollmentResponseDto { - @ApiProperty() - enrollmentId!: string; - @ApiProperty() - student!: EnrolledStudentDto; -} - -class AllocatedTeacherDto { - @ApiProperty() - id!: string; - @ApiProperty() - name!: string; -} -class AllocatedSubjectDto { - @ApiProperty() - id!: string; - @ApiProperty() - name!: string; -} -class TeachingAllocationResponseDto { - @ApiProperty() - allocationId!: string; - @ApiProperty() - teacher!: AllocatedTeacherDto; - @ApiProperty() - subject!: AllocatedSubjectDto; -} +class ClassTeachingAllocationDto extends OmitType(TeachingAllocationDto, [ + 'class', +] as const) {} export class ClassResponseDto { - @ApiProperty() + @ApiProperty({ example: 'classid123' }) id!: string; - @ApiProperty() + @ApiProperty({ example: 'Grade 1A' }) name!: string; - @ApiPropertyOptional({ type: AcademicYearResponseDto }) - academicYear?: AcademicYearResponseDto; + @ApiPropertyOptional({ type: AcademicYearDto }) + @IsOptional() + academicYear?: AcademicYearDto; - @ApiPropertyOptional({ type: [EnrollmentResponseDto] }) - enrollments?: EnrollmentResponseDto[]; + @ApiPropertyOptional({ type: [EnrollmentDto] }) + @IsOptional() + enrollments?: EnrollmentDto[]; - @ApiPropertyOptional({ type: [TeachingAllocationResponseDto] }) - teachingAllocations?: TeachingAllocationResponseDto[]; + @ApiPropertyOptional({ type: [ClassTeachingAllocationDto] }) + @IsOptional() + teachingAllocations?: ClassTeachingAllocationDto[]; } diff --git a/server/src/modules/classes/dto/class.dto.ts b/server/src/modules/classes/dto/class.dto.ts index 9096868..a22bd22 100644 --- a/server/src/modules/classes/dto/class.dto.ts +++ b/server/src/modules/classes/dto/class.dto.ts @@ -1,8 +1,9 @@ import { ApiProperty } from '@nestjs/swagger'; export class ClassDto { - @ApiProperty({ example: 'ckx123classid' }) + @ApiProperty({ example: 'classid123' }) id!: string; + @ApiProperty({ example: 'Grade 10' }) name!: string; } diff --git a/server/src/modules/classes/dto/create-class-response.dto.ts b/server/src/modules/classes/dto/create-class-response.dto.ts new file mode 100644 index 0000000..67de4f0 --- /dev/null +++ b/server/src/modules/classes/dto/create-class-response.dto.ts @@ -0,0 +1,40 @@ +import { ApiProperty, ApiPropertyOptional, PickType } from '@nestjs/swagger'; +import { IsArray, IsOptional } from 'class-validator'; +import { StudentDto } from '../../students/dto/student.dto'; +import { SubjectDto } from '../../subjects/dto/subject.dto'; +import { TeacherDto } from '../../teachers/dto/teacher.dto'; + +class StudentSummaryDto extends PickType(StudentDto, ['id'] as const) {} + +class TeacherSummaryDto extends PickType(TeacherDto, ['id'] as const) {} + +class SubjectSummaryDto extends PickType(SubjectDto, ['id'] as const) {} + +class TeachingAllocationRefDto { + // @ApiProperty({ type: String }) + // id!: string; + + @ApiProperty({ type: TeacherSummaryDto }) + teacher!: TeacherSummaryDto; + + @ApiProperty({ type: SubjectSummaryDto }) + subject!: SubjectSummaryDto; +} + +export class CreateClassResponse { + @ApiProperty({ type: String, example: 'Grade 10' }) + name!: string; + + @ApiProperty({ type: String, example: 'academicyearid123' }) + academicYearId!: string; + + @ApiPropertyOptional({ type: [StudentSummaryDto] }) + @IsArray() + @IsOptional() + students?: StudentSummaryDto[]; + + @ApiPropertyOptional({ type: [TeachingAllocationRefDto] }) + @IsArray() + @IsOptional() + teachingAllocations?: TeachingAllocationRefDto[]; +} diff --git a/server/src/modules/classes/dto/create-class.dto.ts b/server/src/modules/classes/dto/create-class.dto.ts index 23e85f0..a6a24b7 100644 --- a/server/src/modules/classes/dto/create-class.dto.ts +++ b/server/src/modules/classes/dto/create-class.dto.ts @@ -8,7 +8,18 @@ import { MaxLength, ValidateNested, } from 'class-validator'; -import { TeachingAllocationDto } from '../../teaching-allocations/dto/teaching-allocation.dto'; + +class CreateTeachingAllocationSummaryDto { + @ApiProperty({ type: String, example: 'teacherid123' }) + @IsString() + @IsNotEmpty() + teacherId!: string; + + @ApiProperty({ type: String, example: 'subjectid123' }) + @IsString() + @IsNotEmpty() + subjectId!: string; +} export class CreateClassDto { @ApiProperty({ example: 'Grade 10' }) @@ -17,16 +28,14 @@ export class CreateClassDto { @MaxLength(200) name!: string; - @ApiPropertyOptional({ - example: 'clx123academicyearid', - }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; @ApiPropertyOptional({ type: [String], - example: ['clx123studentid'], + example: ['studentid123'], }) @IsArray() @IsString({ each: true }) @@ -34,11 +43,11 @@ export class CreateClassDto { studentIds?: string[]; @ApiPropertyOptional({ - type: [TeachingAllocationDto], + type: [CreateTeachingAllocationSummaryDto], }) @IsArray() @ValidateNested({ each: true }) - @Type(() => TeachingAllocationDto) + @Type(() => CreateTeachingAllocationSummaryDto) @IsOptional() - teachingAllocations?: TeachingAllocationDto[]; + teachingAllocations?: CreateTeachingAllocationSummaryDto[]; } diff --git a/server/src/modules/classes/dto/update-class.dto.ts b/server/src/modules/classes/dto/update-class.dto.ts index 42ec2da..8ad061b 100644 --- a/server/src/modules/classes/dto/update-class.dto.ts +++ b/server/src/modules/classes/dto/update-class.dto.ts @@ -1,4 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; import { IsArray, IsNotEmpty, @@ -7,7 +8,6 @@ import { MaxLength, ValidateNested, } from 'class-validator'; -import { Type } from 'class-transformer'; class TeachingAllocationDto { @ApiProperty() @@ -31,7 +31,7 @@ export class UpdateClassDto { @ApiProperty({ description: 'The academic year in which to update the class associations (enrollments, allocations)', - example: 'ckx123academicyearid', + example: 'academicyearid123', }) @IsString() @IsNotEmpty() @@ -41,7 +41,7 @@ export class UpdateClassDto { description: 'Provide a full list of student IDs to be in this class for the given academic year. This will replace existing enrollments.', type: [String], - example: ['clx...studentid...'], + example: ['studentid123'], }) @IsArray() @IsString({ each: true }) diff --git a/server/src/modules/enrollments/dto/create-enrollment.dto.ts b/server/src/modules/enrollments/dto/create-enrollment.dto.ts index 026a8c5..9228293 100644 --- a/server/src/modules/enrollments/dto/create-enrollment.dto.ts +++ b/server/src/modules/enrollments/dto/create-enrollment.dto.ts @@ -12,7 +12,7 @@ export class CreateEnrollmentDto { @IsNotEmpty() classId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; diff --git a/server/src/modules/enrollments/dto/enrollment-response.dto.ts b/server/src/modules/enrollments/dto/enrollment-response.dto.ts index 346951a..18e2d61 100644 --- a/server/src/modules/enrollments/dto/enrollment-response.dto.ts +++ b/server/src/modules/enrollments/dto/enrollment-response.dto.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; export class EnrollmentResponseDto { - @ApiProperty({ example: 'ckx123enrollmentid' }) + @ApiProperty({ example: 'enrollmentid123' }) id!: string; @ApiProperty({ example: 'ckx123studentid' }) @@ -10,7 +10,7 @@ export class EnrollmentResponseDto { @ApiProperty({ example: 'ckx123classid' }) classId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) academicYearId!: string; @ApiProperty({ example: '2025-07-03T00:00:00.000Z' }) diff --git a/server/src/modules/enrollments/dto/enrollment.dto.ts b/server/src/modules/enrollments/dto/enrollment.dto.ts new file mode 100644 index 0000000..010b309 --- /dev/null +++ b/server/src/modules/enrollments/dto/enrollment.dto.ts @@ -0,0 +1,19 @@ +import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { IsOptional } from 'class-validator'; + +class StudentSummaryDto { + @ApiProperty({ example: 'studentid123' }) + id!: string; + + @ApiProperty({ example: 'John Doe' }) + name!: string; +} + +export class EnrollmentDto { + @ApiProperty({ example: 'enrollmentid123' }) + id!: string; + + @ApiPropertyOptional({ type: StudentSummaryDto }) + @IsOptional() + student?: StudentSummaryDto; +} diff --git a/server/src/modules/enrollments/dto/query-enrollment.dto.ts b/server/src/modules/enrollments/dto/query-enrollment.dto.ts index 5e72437..b13b632 100644 --- a/server/src/modules/enrollments/dto/query-enrollment.dto.ts +++ b/server/src/modules/enrollments/dto/query-enrollment.dto.ts @@ -13,7 +13,7 @@ export class QueryEnrollmentDto { @IsOptional() classId?: string; - @ApiPropertyOptional({ example: 'ckx123academicyearid' }) + @ApiPropertyOptional({ example: 'academicyearid123' }) @IsString() @IsOptional() academicYearId?: string; diff --git a/server/src/modules/exams/dto/create-exam.dto.ts b/server/src/modules/exams/dto/create-exam.dto.ts index 8d51a59..6c6d19c 100644 --- a/server/src/modules/exams/dto/create-exam.dto.ts +++ b/server/src/modules/exams/dto/create-exam.dto.ts @@ -46,7 +46,7 @@ export class CreateExamDto { @IsNotEmpty() teachingAllocationId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; diff --git a/server/src/modules/results/dto/create-result.dto.ts b/server/src/modules/results/dto/create-result.dto.ts index 2a71e76..32547d4 100644 --- a/server/src/modules/results/dto/create-result.dto.ts +++ b/server/src/modules/results/dto/create-result.dto.ts @@ -26,12 +26,12 @@ export class CreateResultDto { @IsOptional() examId!: string | null; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; - @ApiProperty({ example: 'ckx123enrollmentid' }) + @ApiProperty({ example: 'enrollmentid123' }) @IsString() @IsNotEmpty() enrollmentId!: string; diff --git a/server/src/modules/results/dto/query-result-dto.ts b/server/src/modules/results/dto/query-result-dto.ts index b75d5aa..b487504 100644 --- a/server/src/modules/results/dto/query-result-dto.ts +++ b/server/src/modules/results/dto/query-result-dto.ts @@ -2,7 +2,7 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; import { IsOptional, IsString } from 'class-validator'; export class QueryResultDto { - @ApiPropertyOptional({ example: 'ckx123enrollmentid' }) + @ApiPropertyOptional({ example: 'enrollmentid123' }) @IsString() @IsOptional() enrollmentId?: string; diff --git a/server/src/modules/results/dto/result-response.dto.ts b/server/src/modules/results/dto/result-response.dto.ts index 1c6e9a6..4f8ae67 100644 --- a/server/src/modules/results/dto/result-response.dto.ts +++ b/server/src/modules/results/dto/result-response.dto.ts @@ -13,10 +13,10 @@ // @ApiProperty({ example: 'ckx123examid', nullable: true }) // examId!: string | null; -// @ApiProperty({ example: 'ckx123academicyearid' }) +// @ApiProperty({ example: 'academicyearid123' }) // academicYearId!: string; -// @ApiProperty({ example: 'ckx123enrollmentid' }) +// @ApiProperty({ example: 'enrollmentid123' }) // enrollmentId!: string; // @ApiProperty({ example: '2025-07-03T00:00:00.000Z' }) diff --git a/server/src/modules/students/dto/student-response.dto.ts b/server/src/modules/students/dto/student-response.dto.ts index bbe605e..f8db953 100644 --- a/server/src/modules/students/dto/student-response.dto.ts +++ b/server/src/modules/students/dto/student-response.dto.ts @@ -15,12 +15,12 @@ class ClassDto { name!: string; } class EnrollmentDto { - @ApiProperty({ example: 'ckx123enrollmentid' }) + @ApiProperty({ example: 'enrollmentid123' }) id!: string; } export class StudentResponseDto { - @ApiProperty({ example: 'ckx123userid' }) + @ApiProperty({ example: 'userid123' }) id!: string; @ApiProperty({ example: 'John Doe' }) diff --git a/server/src/modules/students/dto/student.dto.ts b/server/src/modules/students/dto/student.dto.ts new file mode 100644 index 0000000..29b4a4b --- /dev/null +++ b/server/src/modules/students/dto/student.dto.ts @@ -0,0 +1,28 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { UserGender } from '../../../../prisma/generated/prisma/client'; + +export class StudentDto { + @ApiProperty({ type: String, example: 'studentid123' }) + id!: string; + + @ApiProperty({ type: String, example: 'userid123' }) + userId!: string; + + @ApiProperty({ type: String, example: 'STU-12345' }) + studentNumber!: string; + + @ApiProperty({ type: String, example: '123456789' }) + phone!: string; + + @ApiProperty({ type: String, example: 'Yangon' }) + address!: string; + + @ApiProperty({ type: String, example: 'A' }) + bloodGroup!: string; + + @ApiProperty({ type: Boolean, example: 'MALE' }) + gender!: UserGender; + + @ApiProperty({ type: String, example: 'MALE' }) + dateOfBirth!: string; +} diff --git a/server/src/modules/subjects/dto/subject.dto.ts b/server/src/modules/subjects/dto/subject.dto.ts index 9afe517..62db7b1 100644 --- a/server/src/modules/subjects/dto/subject.dto.ts +++ b/server/src/modules/subjects/dto/subject.dto.ts @@ -3,6 +3,7 @@ import { ApiProperty } from '@nestjs/swagger'; export class SubjectDto { @ApiProperty({ example: 'ckx123subjectid' }) id!: string; + @ApiProperty({ example: 'Mathematics' }) name!: string; } diff --git a/server/src/modules/teachers/dto/teacher.dto.ts b/server/src/modules/teachers/dto/teacher.dto.ts new file mode 100644 index 0000000..193e2ac --- /dev/null +++ b/server/src/modules/teachers/dto/teacher.dto.ts @@ -0,0 +1,28 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { UserGender } from '../../../../prisma/generated/prisma/browser'; + +export class TeacherDto { + @ApiProperty({ type: String, example: 'ckx123userid' }) + id!: string; + + @ApiProperty({ type: String, example: 'userid123' }) + userId!: string; + + @ApiProperty({ type: String, example: 'TCH-12345' }) + employeeCode!: string; + + @ApiProperty({ type: String, example: '123456789' }) + phone!: string; + + @ApiProperty({ type: String, example: 'Yangon' }) + address!: string; + + @ApiProperty({ type: String, example: 'A' }) + bloodGroup!: string; + + @ApiProperty({ type: Boolean, example: 'MALE' }) + gender!: UserGender; + + @ApiProperty({ type: String, example: 'MALE' }) + dateOfBirth!: string; +} diff --git a/server/src/modules/teaching-allocations/dto/create-teaching-allocation.dto.ts b/server/src/modules/teaching-allocations/dto/create-teaching-allocation.dto.ts index 6f7bb7c..5421177 100644 --- a/server/src/modules/teaching-allocations/dto/create-teaching-allocation.dto.ts +++ b/server/src/modules/teaching-allocations/dto/create-teaching-allocation.dto.ts @@ -17,7 +17,7 @@ export class CreateTeachingAllocationDto { @IsNotEmpty() classId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) @IsString() @IsNotEmpty() academicYearId!: string; diff --git a/server/src/modules/teaching-allocations/dto/query-teaching-allocation.dto.ts b/server/src/modules/teaching-allocations/dto/query-teaching-allocation.dto.ts index bfe2758..8def367 100644 --- a/server/src/modules/teaching-allocations/dto/query-teaching-allocation.dto.ts +++ b/server/src/modules/teaching-allocations/dto/query-teaching-allocation.dto.ts @@ -18,7 +18,7 @@ export class QueryTeachingAllocationDto { @IsOptional() classId?: string; - @ApiPropertyOptional({ example: 'ckx123academicyearid' }) + @ApiPropertyOptional({ example: 'academicyearid123' }) @IsString() @IsOptional() academicYearId?: string; diff --git a/server/src/modules/teaching-allocations/dto/teaching-allocation-response.dto.ts b/server/src/modules/teaching-allocations/dto/teaching-allocation-response.dto.ts index 097d94f..823fd57 100644 --- a/server/src/modules/teaching-allocations/dto/teaching-allocation-response.dto.ts +++ b/server/src/modules/teaching-allocations/dto/teaching-allocation-response.dto.ts @@ -13,6 +13,6 @@ export class TeachingAllocationResponseDto { @ApiProperty({ example: 'ckx123classid' }) classId!: string; - @ApiProperty({ example: 'ckx123academicyearid' }) + @ApiProperty({ example: 'academicyearid123' }) academicYearId!: string; } diff --git a/server/src/modules/teaching-allocations/dto/teaching-allocation.dto.ts b/server/src/modules/teaching-allocations/dto/teaching-allocation.dto.ts index 57f6693..d9b7d64 100644 --- a/server/src/modules/teaching-allocations/dto/teaching-allocation.dto.ts +++ b/server/src/modules/teaching-allocations/dto/teaching-allocation.dto.ts @@ -1,15 +1,41 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { IsOptional } from 'class-validator'; + +class SubjectSummaryDto { + @ApiProperty({ type: String, example: 'subjectid123' }) + id!: string; + + @ApiProperty({ type: String, example: 'English' }) + name!: string; +} +class ClassSummaryDto { + @ApiProperty({ type: String, example: 'classid123' }) + id!: string; + + @ApiProperty({ type: String, example: 'Grade 10' }) + name!: string; +} +class TeacherSummaryDto { + @ApiProperty({ type: String, example: 'teacherid123' }) + id!: string; + + @ApiProperty({ type: String, example: 'Mrs Alice' }) + name!: string; +} export class TeachingAllocationDto { - @ApiProperty({ example: 'ckx123teachingallocationid' }) + @ApiProperty({ type: String, example: 'teachingallocationid123' }) id!: string; - @ApiProperty({ example: 'ckx123subjectid' }) - subjectId!: string; + @ApiPropertyOptional({ type: SubjectSummaryDto }) + @IsOptional() + subject?: SubjectSummaryDto; - @ApiProperty({ example: 'ckx123classid' }) - classId!: string; + @ApiPropertyOptional({ type: ClassSummaryDto }) + @IsOptional() + class?: ClassSummaryDto; - @ApiProperty({ example: 'ckx123teacherid' }) - teacherId!: string; + @ApiPropertyOptional({ type: TeacherSummaryDto }) + @IsOptional() + teacher?: TeacherSummaryDto; }