From b300293a72a36896c0ad8ea43fe6639f5ba9dac1 Mon Sep 17 00:00:00 2001 From: Jonny Nguyen Date: Fri, 3 Jul 2026 15:02:41 -0700 Subject: [PATCH] Enhance Inbox model and related services for improved error handling and resilience Add a new field `consecutiveFailures` to the Inbox model to track consecutive errors. Update the inbox guard logic to mark mailboxes as error after exceeding a failure threshold. Implement retry logic in email and IMAP services to handle transient connection issues. Adjust job processing to reclaim stale send jobs and improve overall reliability of email dispatching. Update routes to initialize `consecutiveFailures` on inbox creation and reset it when the inbox status changes to active. --- .../src/generated/prisma/internal/class.ts | 8 +- .../prisma/internal/prismaNamespace.ts | 1 + .../prisma/internal/prismaNamespaceBrowser.ts | 1 + apps/api/src/generated/prisma/models/Inbox.ts | 59 +++++++++- apps/api/src/jobs/campaign-dispatcher.job.ts | 108 ++++++++++-------- apps/api/src/jobs/dispatcher.job.ts | 9 +- apps/api/src/jobs/rescuer.job.ts | 2 +- apps/api/src/lib/inboxGuard.ts | 45 ++++++-- apps/api/src/lib/retry.test.ts | 53 +++++++++ apps/api/src/lib/retry.ts | 98 ++++++++++++++++ apps/api/src/models/enums.ts | 2 +- apps/api/src/routes/inboxes.routes.ts | 12 +- apps/api/src/services/email.service.ts | 51 ++++++--- apps/api/src/services/imap.service.ts | 53 +++++---- apps/api/src/services/job-queue.service.ts | 23 ++++ apps/api/src/services/settings.service.ts | 13 +++ .../migration.sql | 81 +++++++++++++ prisma/schema.prisma | 5 +- 18 files changed, 515 insertions(+), 109 deletions(-) create mode 100644 apps/api/src/lib/retry.test.ts create mode 100644 apps/api/src/lib/retry.ts create mode 100644 prisma/migrations/20260703215915_mailbox_connection_resilience/migration.sql diff --git a/apps/api/src/generated/prisma/internal/class.ts b/apps/api/src/generated/prisma/internal/class.ts index 5506509..0d309d7 100644 --- a/apps/api/src/generated/prisma/internal/class.ts +++ b/apps/api/src/generated/prisma/internal/class.ts @@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.8.0", "engineVersion": "3c6e192761c0362d496ed980de936e2f3cebcd3a", "activeProvider": "sqlite", - "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../apps/api/src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nenum InboxStatus {\n active\n paused\n error\n}\n\nenum WarmupStatus {\n sent\n rescued_from_spam\n engaged_no_reply\n replied\n complete\n}\n\nenum MailboxRole {\n unassigned\n primary\n satellite\n}\n\nenum MailboxProvider {\n google_workspace\n gmail\n yahoo\n outlook\n custom\n}\n\nenum MailboxAuthType {\n password\n microsoft_oauth\n}\n\nenum CampaignRecipe {\n grow\n flat\n randomized\n custom\n}\n\nenum CampaignStatus {\n draft\n active\n paused\n maintenance\n completed\n failed\n}\n\nmodel Workspace {\n id String @id @default(cuid())\n name String @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n inboxes Inbox[]\n campaigns WarmupCampaign[]\n}\n\nenum SendJobStatus {\n pending\n processing\n completed\n failed\n}\n\nmodel SendJob {\n id String @id @default(cuid())\n campaignId String\n scheduledAt DateTime\n status SendJobStatus @default(pending)\n idempotencyKey String @unique\n processedAt DateTime?\n errorMessage String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@index([campaignId, status, scheduledAt])\n}\n\nmodel JobRunLog {\n id String @id @default(cuid())\n jobName String\n ranAt DateTime @default(now())\n success Boolean @default(true)\n message String?\n\n @@index([jobName, ranAt])\n}\n\nmodel Inbox {\n id String @id @default(cuid())\n workspaceId String\n email String\n smtpHost String\n smtpPort Int\n imapHost String\n imapPort Int\n username String\n password String\n authType MailboxAuthType @default(password)\n oauthRefreshToken String?\n role MailboxRole @default(unassigned)\n provider MailboxProvider @default(custom)\n status InboxStatus @default(active)\n dailyLimit Int @default(40)\n currentRamp Int @default(5)\n industry String @default(\"SaaS\")\n senderName String?\n companyName String?\n lastError String?\n errorAt DateTime?\n spamFolderPath String?\n lastSpamRescuedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)\n sentLogs WarmupLog[] @relation(\"Sender\")\n receivedLogs WarmupLog[] @relation(\"Receiver\")\n primaryCampaigns WarmupCampaign[] @relation(\"PrimaryMailbox\")\n satelliteCampaigns CampaignSatellite[]\n\n @@unique([workspaceId, email])\n @@index([status])\n @@index([workspaceId, role])\n}\n\nmodel WarmupCampaign {\n id String @id @default(cuid())\n workspaceId String\n primaryMailboxId String\n name String\n recipe CampaignRecipe @default(grow)\n status CampaignStatus @default(draft)\n durationDays Int @default(30)\n minEmailsPerDay Int @default(1)\n maxEmailsPerDay Int @default(40)\n replyRatePercent Int @default(30)\n maintenanceVolumePercent Int @default(20)\n timezone String @default(\"America/Vancouver\")\n sendWindowStart String @default(\"08:00\")\n sendWindowEnd String @default(\"18:00\")\n customSchedule String?\n startedAt DateTime?\n endsAt DateTime?\n currentDay Int @default(0)\n pausedFromStatus CampaignStatus?\n lastSendAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)\n primaryMailbox Inbox @relation(\"PrimaryMailbox\", fields: [primaryMailboxId], references: [id], onDelete: Cascade)\n satellites CampaignSatellite[]\n dailySchedules DailySchedule[]\n dailyStats DailyStat[]\n sendJobs SendJob[]\n warmupLogs WarmupLog[]\n\n @@index([workspaceId, status])\n @@index([primaryMailboxId, status])\n}\n\nmodel CampaignSatellite {\n id String @id @default(cuid())\n campaignId String\n satelliteMailboxId String\n weight Int @default(1)\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n satelliteMailbox Inbox @relation(fields: [satelliteMailboxId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, satelliteMailboxId])\n @@index([satelliteMailboxId])\n}\n\nmodel DailySchedule {\n id String @id @default(cuid())\n campaignId String\n dayIndex Int\n date DateTime?\n plannedSends Int\n plannedReplies Int\n actualSends Int @default(0)\n actualReplies Int @default(0)\n spamDetected Int @default(0)\n spamRescued Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, dayIndex])\n @@index([campaignId])\n}\n\nmodel DailyStat {\n id String @id @default(cuid())\n campaignId String\n date DateTime\n dayIndex Int\n plannedSends Int\n plannedReplies Int\n actualSends Int @default(0)\n actualReplies Int @default(0)\n spamDetected Int @default(0)\n spamRescued Int @default(0)\n replyRateActual Float?\n inboxPlacementRate Float?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, date])\n @@index([campaignId])\n}\n\nmodel WarmupLog {\n id String @id @default(cuid())\n campaignId String?\n senderId String\n receiverId String\n messageId String?\n inReplyTo String?\n subject String\n body String\n status WarmupStatus @default(sent)\n placement String?\n rescuedFromSpam Boolean @default(false)\n validationResult String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign? @relation(fields: [campaignId], references: [id], onDelete: SetNull)\n sender Inbox @relation(\"Sender\", fields: [senderId], references: [id], onDelete: Cascade)\n receiver Inbox @relation(\"Receiver\", fields: [receiverId], references: [id], onDelete: Cascade)\n\n @@index([senderId, status])\n @@index([receiverId, status])\n @@index([messageId])\n @@index([campaignId])\n}\n\nmodel Setting {\n id String @id @default(cuid())\n key String @unique\n value String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", + "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../apps/api/src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nenum InboxStatus {\n active\n paused\n error\n}\n\nenum WarmupStatus {\n sent\n rescued_from_spam\n engaged_no_reply\n replied\n complete\n}\n\nenum MailboxRole {\n unassigned\n primary\n satellite\n}\n\nenum MailboxProvider {\n google_workspace\n gmail\n yahoo\n outlook\n custom\n}\n\nenum MailboxAuthType {\n password\n microsoft_oauth\n}\n\nenum CampaignRecipe {\n grow\n flat\n randomized\n custom\n}\n\nenum CampaignStatus {\n draft\n active\n paused\n maintenance\n completed\n failed\n}\n\nmodel Workspace {\n id String @id @default(cuid())\n name String @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n inboxes Inbox[]\n campaigns WarmupCampaign[]\n}\n\nenum SendJobStatus {\n pending\n processing\n completed\n failed\n}\n\nmodel SendJob {\n id String @id @default(cuid())\n campaignId String\n scheduledAt DateTime\n status SendJobStatus @default(pending)\n idempotencyKey String @unique\n processedAt DateTime?\n errorMessage String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@index([campaignId, status, scheduledAt])\n}\n\nmodel JobRunLog {\n id String @id @default(cuid())\n jobName String\n ranAt DateTime @default(now())\n success Boolean @default(true)\n message String?\n\n @@index([jobName, ranAt])\n}\n\nmodel Inbox {\n id String @id @default(cuid())\n workspaceId String\n email String\n smtpHost String\n smtpPort Int\n imapHost String\n imapPort Int\n username String\n password String\n authType MailboxAuthType @default(password)\n oauthRefreshToken String?\n role MailboxRole @default(unassigned)\n provider MailboxProvider @default(custom)\n status InboxStatus @default(active)\n dailyLimit Int @default(40)\n currentRamp Int @default(5)\n industry String @default(\"SaaS\")\n senderName String?\n companyName String?\n lastError String?\n errorAt DateTime?\n consecutiveFailures Int @default(0)\n spamFolderPath String?\n lastSpamRescuedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)\n sentLogs WarmupLog[] @relation(\"Sender\")\n receivedLogs WarmupLog[] @relation(\"Receiver\")\n primaryCampaigns WarmupCampaign[] @relation(\"PrimaryMailbox\")\n satelliteCampaigns CampaignSatellite[]\n\n @@unique([workspaceId, email])\n @@index([status])\n @@index([workspaceId, role])\n}\n\nmodel WarmupCampaign {\n id String @id @default(cuid())\n workspaceId String\n primaryMailboxId String\n name String\n recipe CampaignRecipe @default(grow)\n status CampaignStatus @default(draft)\n durationDays Int @default(30)\n minEmailsPerDay Int @default(1)\n maxEmailsPerDay Int @default(40)\n replyRatePercent Int @default(30)\n maintenanceVolumePercent Int @default(20)\n timezone String @default(\"America/Vancouver\")\n sendWindowStart String @default(\"08:00\")\n sendWindowEnd String @default(\"18:00\")\n customSchedule String?\n startedAt DateTime?\n endsAt DateTime?\n currentDay Int @default(0)\n pausedFromStatus CampaignStatus?\n lastSendAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)\n primaryMailbox Inbox @relation(\"PrimaryMailbox\", fields: [primaryMailboxId], references: [id], onDelete: Cascade)\n satellites CampaignSatellite[]\n dailySchedules DailySchedule[]\n dailyStats DailyStat[]\n sendJobs SendJob[]\n warmupLogs WarmupLog[]\n\n @@index([workspaceId, status])\n @@index([primaryMailboxId, status])\n}\n\nmodel CampaignSatellite {\n id String @id @default(cuid())\n campaignId String\n satelliteMailboxId String\n weight Int @default(1)\n active Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n satelliteMailbox Inbox @relation(fields: [satelliteMailboxId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, satelliteMailboxId])\n @@index([satelliteMailboxId])\n}\n\nmodel DailySchedule {\n id String @id @default(cuid())\n campaignId String\n dayIndex Int\n date DateTime?\n plannedSends Int\n plannedReplies Int\n actualSends Int @default(0)\n actualReplies Int @default(0)\n spamDetected Int @default(0)\n spamRescued Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, dayIndex])\n @@index([campaignId])\n}\n\nmodel DailyStat {\n id String @id @default(cuid())\n campaignId String\n date DateTime\n dayIndex Int\n plannedSends Int\n plannedReplies Int\n actualSends Int @default(0)\n actualReplies Int @default(0)\n spamDetected Int @default(0)\n spamRescued Int @default(0)\n replyRateActual Float?\n inboxPlacementRate Float?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign @relation(fields: [campaignId], references: [id], onDelete: Cascade)\n\n @@unique([campaignId, date])\n @@index([campaignId])\n}\n\nmodel WarmupLog {\n id String @id @default(cuid())\n campaignId String?\n senderId String\n receiverId String\n messageId String?\n inReplyTo String?\n subject String\n body String\n status WarmupStatus @default(sent)\n placement String?\n rescuedFromSpam Boolean @default(false)\n validationResult String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n campaign WarmupCampaign? @relation(fields: [campaignId], references: [id], onDelete: SetNull)\n sender Inbox @relation(\"Sender\", fields: [senderId], references: [id], onDelete: Cascade)\n receiver Inbox @relation(\"Receiver\", fields: [receiverId], references: [id], onDelete: Cascade)\n\n @@index([senderId, status])\n @@index([receiverId, status])\n @@index([messageId])\n @@index([campaignId])\n}\n\nmodel Setting {\n id String @id @default(cuid())\n key String @unique\n value String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -32,10 +32,10 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"Workspace\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"inboxes\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"InboxToWorkspace\"},{\"name\":\"campaigns\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"WarmupCampaignToWorkspace\"}],\"dbName\":null},\"SendJob\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduledAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"SendJobStatus\"},{\"name\":\"idempotencyKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"SendJobToWarmupCampaign\"}],\"dbName\":null},\"JobRunLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jobName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ranAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"success\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Inbox\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"smtpHost\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"smtpPort\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"imapHost\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imapPort\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authType\",\"kind\":\"enum\",\"type\":\"MailboxAuthType\"},{\"name\":\"oauthRefreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"MailboxRole\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"MailboxProvider\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"InboxStatus\"},{\"name\":\"dailyLimit\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currentRamp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"senderName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"companyName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastError\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"errorAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"spamFolderPath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastSpamRescuedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"Workspace\",\"relationName\":\"InboxToWorkspace\"},{\"name\":\"sentLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"Sender\"},{\"name\":\"receivedLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"Receiver\"},{\"name\":\"primaryCampaigns\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"PrimaryMailbox\"},{\"name\":\"satelliteCampaigns\",\"kind\":\"object\",\"type\":\"CampaignSatellite\",\"relationName\":\"CampaignSatelliteToInbox\"}],\"dbName\":null},\"WarmupCampaign\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"primaryMailboxId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recipe\",\"kind\":\"enum\",\"type\":\"CampaignRecipe\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CampaignStatus\"},{\"name\":\"durationDays\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"minEmailsPerDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxEmailsPerDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"replyRatePercent\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maintenanceVolumePercent\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timezone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sendWindowStart\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sendWindowEnd\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customSchedule\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endsAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"currentDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"pausedFromStatus\",\"kind\":\"enum\",\"type\":\"CampaignStatus\"},{\"name\":\"lastSendAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"Workspace\",\"relationName\":\"WarmupCampaignToWorkspace\"},{\"name\":\"primaryMailbox\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"PrimaryMailbox\"},{\"name\":\"satellites\",\"kind\":\"object\",\"type\":\"CampaignSatellite\",\"relationName\":\"CampaignSatelliteToWarmupCampaign\"},{\"name\":\"dailySchedules\",\"kind\":\"object\",\"type\":\"DailySchedule\",\"relationName\":\"DailyScheduleToWarmupCampaign\"},{\"name\":\"dailyStats\",\"kind\":\"object\",\"type\":\"DailyStat\",\"relationName\":\"DailyStatToWarmupCampaign\"},{\"name\":\"sendJobs\",\"kind\":\"object\",\"type\":\"SendJob\",\"relationName\":\"SendJobToWarmupCampaign\"},{\"name\":\"warmupLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"WarmupCampaignToWarmupLog\"}],\"dbName\":null},\"CampaignSatellite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"satelliteMailboxId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"weight\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"CampaignSatelliteToWarmupCampaign\"},{\"name\":\"satelliteMailbox\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"CampaignSatelliteToInbox\"}],\"dbName\":null},\"DailySchedule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dayIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"plannedSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamDetected\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamRescued\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"DailyScheduleToWarmupCampaign\"}],\"dbName\":null},\"DailyStat\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"dayIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamDetected\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamRescued\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"replyRateActual\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"inboxPlacementRate\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"DailyStatToWarmupCampaign\"}],\"dbName\":null},\"WarmupLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"senderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receiverId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"messageId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inReplyTo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"WarmupStatus\"},{\"name\":\"placement\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rescuedFromSpam\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"validationResult\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"WarmupCampaignToWarmupLog\"},{\"name\":\"sender\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"Sender\"},{\"name\":\"receiver\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"Receiver\"}],\"dbName\":null},\"Setting\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"Workspace\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"inboxes\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"InboxToWorkspace\"},{\"name\":\"campaigns\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"WarmupCampaignToWorkspace\"}],\"dbName\":null},\"SendJob\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduledAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"SendJobStatus\"},{\"name\":\"idempotencyKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"SendJobToWarmupCampaign\"}],\"dbName\":null},\"JobRunLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jobName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ranAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"success\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Inbox\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"smtpHost\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"smtpPort\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"imapHost\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"imapPort\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authType\",\"kind\":\"enum\",\"type\":\"MailboxAuthType\"},{\"name\":\"oauthRefreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"MailboxRole\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"MailboxProvider\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"InboxStatus\"},{\"name\":\"dailyLimit\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currentRamp\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"senderName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"companyName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastError\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"errorAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"consecutiveFailures\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamFolderPath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastSpamRescuedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"Workspace\",\"relationName\":\"InboxToWorkspace\"},{\"name\":\"sentLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"Sender\"},{\"name\":\"receivedLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"Receiver\"},{\"name\":\"primaryCampaigns\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"PrimaryMailbox\"},{\"name\":\"satelliteCampaigns\",\"kind\":\"object\",\"type\":\"CampaignSatellite\",\"relationName\":\"CampaignSatelliteToInbox\"}],\"dbName\":null},\"WarmupCampaign\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"primaryMailboxId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recipe\",\"kind\":\"enum\",\"type\":\"CampaignRecipe\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CampaignStatus\"},{\"name\":\"durationDays\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"minEmailsPerDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maxEmailsPerDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"replyRatePercent\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"maintenanceVolumePercent\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timezone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sendWindowStart\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sendWindowEnd\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"customSchedule\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endsAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"currentDay\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"pausedFromStatus\",\"kind\":\"enum\",\"type\":\"CampaignStatus\"},{\"name\":\"lastSendAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"Workspace\",\"relationName\":\"WarmupCampaignToWorkspace\"},{\"name\":\"primaryMailbox\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"PrimaryMailbox\"},{\"name\":\"satellites\",\"kind\":\"object\",\"type\":\"CampaignSatellite\",\"relationName\":\"CampaignSatelliteToWarmupCampaign\"},{\"name\":\"dailySchedules\",\"kind\":\"object\",\"type\":\"DailySchedule\",\"relationName\":\"DailyScheduleToWarmupCampaign\"},{\"name\":\"dailyStats\",\"kind\":\"object\",\"type\":\"DailyStat\",\"relationName\":\"DailyStatToWarmupCampaign\"},{\"name\":\"sendJobs\",\"kind\":\"object\",\"type\":\"SendJob\",\"relationName\":\"SendJobToWarmupCampaign\"},{\"name\":\"warmupLogs\",\"kind\":\"object\",\"type\":\"WarmupLog\",\"relationName\":\"WarmupCampaignToWarmupLog\"}],\"dbName\":null},\"CampaignSatellite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"satelliteMailboxId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"weight\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"CampaignSatelliteToWarmupCampaign\"},{\"name\":\"satelliteMailbox\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"CampaignSatelliteToInbox\"}],\"dbName\":null},\"DailySchedule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dayIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"plannedSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamDetected\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamRescued\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"DailyScheduleToWarmupCampaign\"}],\"dbName\":null},\"DailyStat\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"dayIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plannedReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualSends\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"actualReplies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamDetected\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"spamRescued\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"replyRateActual\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"inboxPlacementRate\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"DailyStatToWarmupCampaign\"}],\"dbName\":null},\"WarmupLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"senderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receiverId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"messageId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inReplyTo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"WarmupStatus\"},{\"name\":\"placement\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rescuedFromSpam\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"validationResult\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"campaign\",\"kind\":\"object\",\"type\":\"WarmupCampaign\",\"relationName\":\"WarmupCampaignToWarmupLog\"},{\"name\":\"sender\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"Sender\"},{\"name\":\"receiver\",\"kind\":\"object\",\"type\":\"Inbox\",\"relationName\":\"Receiver\"}],\"dbName\":null},\"Setting\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}") config.parameterizationSchema = { - strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"workspace\",\"primaryMailbox\",\"campaign\",\"satelliteMailbox\",\"satellites\",\"dailySchedules\",\"dailyStats\",\"sendJobs\",\"warmupLogs\",\"_count\",\"sender\",\"receiver\",\"sentLogs\",\"receivedLogs\",\"primaryCampaigns\",\"satelliteCampaigns\",\"inboxes\",\"campaigns\",\"Workspace.findUnique\",\"Workspace.findUniqueOrThrow\",\"Workspace.findFirst\",\"Workspace.findFirstOrThrow\",\"Workspace.findMany\",\"data\",\"Workspace.createOne\",\"Workspace.createMany\",\"Workspace.createManyAndReturn\",\"Workspace.updateOne\",\"Workspace.updateMany\",\"Workspace.updateManyAndReturn\",\"create\",\"update\",\"Workspace.upsertOne\",\"Workspace.deleteOne\",\"Workspace.deleteMany\",\"having\",\"_min\",\"_max\",\"Workspace.groupBy\",\"Workspace.aggregate\",\"SendJob.findUnique\",\"SendJob.findUniqueOrThrow\",\"SendJob.findFirst\",\"SendJob.findFirstOrThrow\",\"SendJob.findMany\",\"SendJob.createOne\",\"SendJob.createMany\",\"SendJob.createManyAndReturn\",\"SendJob.updateOne\",\"SendJob.updateMany\",\"SendJob.updateManyAndReturn\",\"SendJob.upsertOne\",\"SendJob.deleteOne\",\"SendJob.deleteMany\",\"SendJob.groupBy\",\"SendJob.aggregate\",\"JobRunLog.findUnique\",\"JobRunLog.findUniqueOrThrow\",\"JobRunLog.findFirst\",\"JobRunLog.findFirstOrThrow\",\"JobRunLog.findMany\",\"JobRunLog.createOne\",\"JobRunLog.createMany\",\"JobRunLog.createManyAndReturn\",\"JobRunLog.updateOne\",\"JobRunLog.updateMany\",\"JobRunLog.updateManyAndReturn\",\"JobRunLog.upsertOne\",\"JobRunLog.deleteOne\",\"JobRunLog.deleteMany\",\"JobRunLog.groupBy\",\"JobRunLog.aggregate\",\"Inbox.findUnique\",\"Inbox.findUniqueOrThrow\",\"Inbox.findFirst\",\"Inbox.findFirstOrThrow\",\"Inbox.findMany\",\"Inbox.createOne\",\"Inbox.createMany\",\"Inbox.createManyAndReturn\",\"Inbox.updateOne\",\"Inbox.updateMany\",\"Inbox.updateManyAndReturn\",\"Inbox.upsertOne\",\"Inbox.deleteOne\",\"Inbox.deleteMany\",\"_avg\",\"_sum\",\"Inbox.groupBy\",\"Inbox.aggregate\",\"WarmupCampaign.findUnique\",\"WarmupCampaign.findUniqueOrThrow\",\"WarmupCampaign.findFirst\",\"WarmupCampaign.findFirstOrThrow\",\"WarmupCampaign.findMany\",\"WarmupCampaign.createOne\",\"WarmupCampaign.createMany\",\"WarmupCampaign.createManyAndReturn\",\"WarmupCampaign.updateOne\",\"WarmupCampaign.updateMany\",\"WarmupCampaign.updateManyAndReturn\",\"WarmupCampaign.upsertOne\",\"WarmupCampaign.deleteOne\",\"WarmupCampaign.deleteMany\",\"WarmupCampaign.groupBy\",\"WarmupCampaign.aggregate\",\"CampaignSatellite.findUnique\",\"CampaignSatellite.findUniqueOrThrow\",\"CampaignSatellite.findFirst\",\"CampaignSatellite.findFirstOrThrow\",\"CampaignSatellite.findMany\",\"CampaignSatellite.createOne\",\"CampaignSatellite.createMany\",\"CampaignSatellite.createManyAndReturn\",\"CampaignSatellite.updateOne\",\"CampaignSatellite.updateMany\",\"CampaignSatellite.updateManyAndReturn\",\"CampaignSatellite.upsertOne\",\"CampaignSatellite.deleteOne\",\"CampaignSatellite.deleteMany\",\"CampaignSatellite.groupBy\",\"CampaignSatellite.aggregate\",\"DailySchedule.findUnique\",\"DailySchedule.findUniqueOrThrow\",\"DailySchedule.findFirst\",\"DailySchedule.findFirstOrThrow\",\"DailySchedule.findMany\",\"DailySchedule.createOne\",\"DailySchedule.createMany\",\"DailySchedule.createManyAndReturn\",\"DailySchedule.updateOne\",\"DailySchedule.updateMany\",\"DailySchedule.updateManyAndReturn\",\"DailySchedule.upsertOne\",\"DailySchedule.deleteOne\",\"DailySchedule.deleteMany\",\"DailySchedule.groupBy\",\"DailySchedule.aggregate\",\"DailyStat.findUnique\",\"DailyStat.findUniqueOrThrow\",\"DailyStat.findFirst\",\"DailyStat.findFirstOrThrow\",\"DailyStat.findMany\",\"DailyStat.createOne\",\"DailyStat.createMany\",\"DailyStat.createManyAndReturn\",\"DailyStat.updateOne\",\"DailyStat.updateMany\",\"DailyStat.updateManyAndReturn\",\"DailyStat.upsertOne\",\"DailyStat.deleteOne\",\"DailyStat.deleteMany\",\"DailyStat.groupBy\",\"DailyStat.aggregate\",\"WarmupLog.findUnique\",\"WarmupLog.findUniqueOrThrow\",\"WarmupLog.findFirst\",\"WarmupLog.findFirstOrThrow\",\"WarmupLog.findMany\",\"WarmupLog.createOne\",\"WarmupLog.createMany\",\"WarmupLog.createManyAndReturn\",\"WarmupLog.updateOne\",\"WarmupLog.updateMany\",\"WarmupLog.updateManyAndReturn\",\"WarmupLog.upsertOne\",\"WarmupLog.deleteOne\",\"WarmupLog.deleteMany\",\"WarmupLog.groupBy\",\"WarmupLog.aggregate\",\"Setting.findUnique\",\"Setting.findUniqueOrThrow\",\"Setting.findFirst\",\"Setting.findFirstOrThrow\",\"Setting.findMany\",\"Setting.createOne\",\"Setting.createMany\",\"Setting.createManyAndReturn\",\"Setting.updateOne\",\"Setting.updateMany\",\"Setting.updateManyAndReturn\",\"Setting.upsertOne\",\"Setting.deleteOne\",\"Setting.deleteMany\",\"Setting.groupBy\",\"Setting.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"key\",\"value\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"campaignId\",\"senderId\",\"receiverId\",\"messageId\",\"inReplyTo\",\"subject\",\"body\",\"WarmupStatus\",\"status\",\"placement\",\"rescuedFromSpam\",\"validationResult\",\"date\",\"dayIndex\",\"plannedSends\",\"plannedReplies\",\"actualSends\",\"actualReplies\",\"spamDetected\",\"spamRescued\",\"replyRateActual\",\"inboxPlacementRate\",\"satelliteMailboxId\",\"weight\",\"active\",\"workspaceId\",\"primaryMailboxId\",\"name\",\"CampaignRecipe\",\"recipe\",\"CampaignStatus\",\"durationDays\",\"minEmailsPerDay\",\"maxEmailsPerDay\",\"replyRatePercent\",\"maintenanceVolumePercent\",\"timezone\",\"sendWindowStart\",\"sendWindowEnd\",\"customSchedule\",\"startedAt\",\"endsAt\",\"currentDay\",\"pausedFromStatus\",\"lastSendAt\",\"email\",\"smtpHost\",\"smtpPort\",\"imapHost\",\"imapPort\",\"username\",\"password\",\"MailboxAuthType\",\"authType\",\"oauthRefreshToken\",\"MailboxRole\",\"role\",\"MailboxProvider\",\"provider\",\"InboxStatus\",\"dailyLimit\",\"currentRamp\",\"industry\",\"senderName\",\"companyName\",\"lastError\",\"errorAt\",\"spamFolderPath\",\"lastSpamRescuedAt\",\"jobName\",\"ranAt\",\"success\",\"message\",\"scheduledAt\",\"SendJobStatus\",\"idempotencyKey\",\"processedAt\",\"errorMessage\",\"every\",\"some\",\"none\",\"campaignId_date\",\"campaignId_dayIndex\",\"campaignId_satelliteMailboxId\",\"workspaceId_email\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), - graph: "oQVeoAEJEwAA1wIAIBQAANgCACC9AQAA1gIAML4BAAAwABC_AQAA1gIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh6wEBAAAAAQEAAAABACAhAwAA3wIAIA8AAOUCACAQAADlAgAgEQAA2AIAIBIAAOECACC9AQAA9AIAML4BAAADABC_AQAA9AIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwIBANACACGUAkAA3QIAIQwDAADYBAAgDwAA3gQAIBAAAN4EACARAADXBAAgEgAA2gQAIIYCAAD-AgAgjwIAAP4CACCQAgAA_gIAIJECAAD-AgAgkgIAAP4CACCTAgAA_gIAIJQCAAD-AgAgIgMAAN8CACAPAADlAgAgEAAA5QIAIBEAANgCACASAADhAgAgvQEAAPQCADC-AQAAAwAQvwEAAPQCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwIBANACACGUAkAA3QIAIaQCAADzAgAgAwAAAAMAIAEAAAQAMAIAAAUAIBQFAADyAgAgDQAA4AIAIA4AAOACACC9AQAA8AIAML4BAAAHABC_AQAA8AIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhCAUAAN8EACANAADZBAAgDgAA2QQAINABAAD-AgAg0wEAAP4CACDUAQAA_gIAINkBAAD-AgAg2wEAAP4CACAUBQAA8gIAIA0AAOACACAOAADgAgAgvQEAAPACADC-AQAABwAQvwEAAPACADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhAwAAAAcAIAEAAAgAMAIAAAkAICADAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHYAQAA2wLvASLpAQEAnQIAIeoBAQCdAgAh6wEBAJ0CACHtAQAA2gLtASLvAQIA3AIAIfABAgDcAgAh8QECANwCACHyAQIA3AIAIfMBAgDcAgAh9AEBAJ0CACH1AQEAnQIAIfYBAQCdAgAh9wEBANACACH4AUAA3QIAIfkBQADdAgAh-gECANwCACH7AQAA3gLvASP8AUAA3QIAIQEAAAALACAMBQAA6AIAIAYAAOACACC9AQAA7wIAML4BAAANABC_AQAA7wIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh5gEBAJ0CACHnAQIA3AIAIegBIADPAgAhAgUAAN8EACAGAADZBAAgDQUAAOgCACAGAADgAgAgvQEAAO8CADC-AQAADQAQvwEAAO8CADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh5gEBAJ0CACHnAQIA3AIAIegBIADPAgAhowIAAO4CACADAAAADQAgAQAADgAwAgAADwAgEAUAAOgCACC9AQAA7QIAML4BAAARABC_AQAA7QIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh3AFAAN0CACHdAQIA3AIAId4BAgDcAgAh3wECANwCACHgAQIA3AIAIeEBAgDcAgAh4gECANwCACHjAQIA3AIAIQIFAADfBAAg3AEAAP4CACARBQAA6AIAIL0BAADtAgAwvgEAABEAEL8BAADtAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQADdAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACGiAgAA7AIAIAMAAAARACABAAASADACAAATACASBQAA6AIAIL0BAADqAgAwvgEAABUAEL8BAADqAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAAngIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAh5AEIAOsCACHlAQgA6wIAIQMFAADfBAAg5AEAAP4CACDlAQAA_gIAIBMFAADoAgAgvQEAAOoCADC-AQAAFQAQvwEAAOoCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh3AFAAJ4CACHdAQIA3AIAId4BAgDcAgAh3wECANwCACHgAQIA3AIAIeEBAgDcAgAh4gECANwCACHjAQIA3AIAIeQBCADrAgAh5QEIAOsCACGhAgAA6QIAIAMAAAAVACABAAAWADACAAAXACANBQAA6AIAIL0BAADmAgAwvgEAABkAEL8BAADmAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHYAQAA5wKbAiKZAkAAngIAIZsCAQCdAgAhnAJAAN0CACGdAgEA0AIAIQMFAADfBAAgnAIAAP4CACCdAgAA_gIAIA0FAADoAgAgvQEAAOYCADC-AQAAGQAQvwEAAOYCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh2AEAAOcCmwIimQJAAJ4CACGbAgEAAAABnAJAAN0CACGdAgEA0AIAIQMAAAAZACABAAAaADACAAAbACADAAAABwAgAQAACAAwAgAACQAgAQAAAA0AIAEAAAARACABAAAAFQAgAQAAABkAIAEAAAAHACADAAAABwAgAQAACAAwAgAACQAgDAMAANgEACAEAADZBAAgBwAA2gQAIAgAANsEACAJAADcBAAgCgAA3QQAIAsAAN4EACD3AQAA_gIAIPgBAAD-AgAg-QEAAP4CACD7AQAA_gIAIPwBAAD-AgAgIAMAAN8CACAEAADgAgAgBwAA4QIAIAgAAOICACAJAADjAgAgCgAA5AIAIAsAAOUCACC9AQAA2QIAML4BAAALABC_AQAA2QIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEDAAAACwAgAQAAJAAwAgAAJQAgAwAAAA0AIAEAAA4AMAIAAA8AIAEAAAAHACABAAAABwAgAQAAAAsAIAEAAAANACADAAAACwAgAQAAJAAwAgAAJQAgAQAAAAMAIAEAAAALACABAAAAAQAgCRMAANcCACAUAADYAgAgvQEAANYCADC-AQAAMAAQvwEAANYCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHrAQEAnQIAIQITAADWBAAgFAAA1wQAIAMAAAAwACABAAAxADACAAABACADAAAAMAAgAQAAMQAwAgAAAQAgAwAAADAAIAEAADEAMAIAAAEAIAYTAADUBAAgFAAA1QQAIMABAQAAAAHDAUAAAAABxAFAAAAAAesBAQAAAAEBGgAANQAgBMABAQAAAAHDAUAAAAABxAFAAAAAAesBAQAAAAEBGgAANwAwARoAADcAMAYTAAC9BAAgFAAAvgQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIesBAQD8AgAhAgAAAAEAIBoAADoAIATAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHrAQEA_AIAIQIAAAAwACAaAAA8ACACAAAAMAAgGgAAPAAgAwAAAAEAICEAADUAICIAADoAIAEAAAABACABAAAAMAAgAwwAALoEACAnAAC8BAAgKAAAuwQAIAe9AQAA1QIAML4BAABDABC_AQAA1QIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIesBAQCVAgAhAwAAADAAIAEAAEIAMCYAAEMAIAMAAAAwACABAAAxADACAAABACABAAAAGwAgAQAAABsAIAMAAAAZACABAAAaADACAAAbACADAAAAGQAgAQAAGgAwAgAAGwAgAwAAABkAIAEAABoAMAIAABsAIAoFAAC5BAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdgBAAAAmwICmQJAAAAAAZsCAQAAAAGcAkAAAAABnQIBAAAAAQEaAABLACAJwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdgBAAAAmwICmQJAAAAAAZsCAQAAAAGcAkAAAAABnQIBAAAAAQEaAABNADABGgAATQAwCgUAALgEACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEA_AIAIdgBAADKA5sCIpkCQAD9AgAhmwIBAPwCACGcAkAAmQMAIZ0CAQCCAwAhAgAAABsAIBoAAFAAIAnAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEA_AIAIdgBAADKA5sCIpkCQAD9AgAhmwIBAPwCACGcAkAAmQMAIZ0CAQCCAwAhAgAAABkAIBoAAFIAIAIAAAAZACAaAABSACADAAAAGwAgIQAASwAgIgAAUAAgAQAAABsAIAEAAAAZACAFDAAAtQQAICcAALcEACAoAAC2BAAgnAIAAP4CACCdAgAA_gIAIAy9AQAA0QIAML4BAABZABC_AQAA0QIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh2AEAANICmwIimQJAAJYCACGbAgEAlQIAIZwCQACyAgAhnQIBAKACACEDAAAAGQAgAQAAWAAwJgAAWQAgAwAAABkAIAEAABoAMAIAABsAIAi9AQAAzgIAML4BAABfABC_AQAAzgIAMMABAQAAAAGVAgEAnQIAIZYCQACeAgAhlwIgAM8CACGYAgEA0AIAIQEAAABcACABAAAAXAAgCL0BAADOAgAwvgEAAF8AEL8BAADOAgAwwAEBAJ0CACGVAgEAnQIAIZYCQACeAgAhlwIgAM8CACGYAgEA0AIAIQGYAgAA_gIAIAMAAABfACABAABgADACAABcACADAAAAXwAgAQAAYAAwAgAAXAAgAwAAAF8AIAEAAGAAMAIAAFwAIAXAAQEAAAABlQIBAAAAAZYCQAAAAAGXAiAAAAABmAIBAAAAAQEaAABkACAFwAEBAAAAAZUCAQAAAAGWAkAAAAABlwIgAAAAAZgCAQAAAAEBGgAAZgAwARoAAGYAMAXAAQEA_AIAIZUCAQD8AgAhlgJAAP0CACGXAiAAhAMAIZgCAQCCAwAhAgAAAFwAIBoAAGkAIAXAAQEA_AIAIZUCAQD8AgAhlgJAAP0CACGXAiAAhAMAIZgCAQCCAwAhAgAAAF8AIBoAAGsAIAIAAABfACAaAABrACADAAAAXAAgIQAAZAAgIgAAaQAgAQAAAFwAIAEAAABfACAEDAAAsgQAICcAALQEACAoAACzBAAgmAIAAP4CACAIvQEAAM0CADC-AQAAcgAQvwEAAM0CADDAAQEAlQIAIZUCAQCVAgAhlgJAAJYCACGXAiAAogIAIZgCAQCgAgAhAwAAAF8AIAEAAHEAMCYAAHIAIAMAAABfACABAABgADACAABcACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIB4DAACtBAAgDwAArgQAIBAAAK8EACARAACwBAAgEgAAsQQAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAjAIC6QEBAAAAAf0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAQAAAAGUAkAAAAABARoAAHoAIBnAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgEAAAABlAJAAAAAAQEaAAB8ADABGgAAfAAwHgMAAIEEACAPAACCBAAgEAAAgwQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgEAggMAIZQCQACZAwAhAgAAAAUAIBoAAH8AIBnAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAQCCAwAhlAJAAJkDACECAAAAAwAgGgAAgQEAIAIAAAADACAaAACBAQAgAwAAAAUAICEAAHoAICIAAH8AIAEAAAAFACABAAAAAwAgDAwAAPgDACAnAAD7AwAgKAAA-gMAIFkAAPkDACBaAAD8AwAghgIAAP4CACCPAgAA_gIAIJACAAD-AgAgkQIAAP4CACCSAgAA_gIAIJMCAAD-AgAglAIAAP4CACAcvQEAAMACADC-AQAAiAEAEL8BAADAAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh2AEAAMQCjAIi6QEBAJUCACH9AQEAlQIAIf4BAQCVAgAh_wECAKsCACGAAgEAlQIAIYECAgCrAgAhggIBAJUCACGDAgEAlQIAIYUCAADBAoUCIoYCAQCgAgAhiAIAAMICiAIiigIAAMMCigIijAICAKsCACGNAgIAqwIAIY4CAQCVAgAhjwIBAKACACGQAgEAoAIAIZECAQCgAgAhkgJAALICACGTAgEAoAIAIZQCQACyAgAhAwAAAAMAIAEAAIcBADAmAACIAQAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAlACABAAAAJQAgAwAAAAsAIAEAACQAMAIAACUAIAMAAAALACABAAAkADACAAAlACADAAAACwAgAQAAJAAwAgAAJQAgHQMAAPEDACAEAADyAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABARoAAJABACAWwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6gEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQEaAACSAQAwARoAAJIBADAdAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhAgAAACUAIBoAAJUBACAWwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACECAAAACwAgGgAAlwEAIAIAAAALACAaAACXAQAgAwAAACUAICEAAJABACAiAACVAQAgAQAAACUAIAEAAAALACAKDAAApQMAICcAAKgDACAoAACnAwAgWQAApgMAIFoAAKkDACD3AQAA_gIAIPgBAAD-AgAg-QEAAP4CACD7AQAA_gIAIPwBAAD-AgAgGb0BAAC2AgAwvgEAAJ4BABC_AQAAtgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAAC4Au8BIukBAQCVAgAh6gEBAJUCACHrAQEAlQIAIe0BAAC3Au0BIu8BAgCrAgAh8AECAKsCACHxAQIAqwIAIfIBAgCrAgAh8wECAKsCACH0AQEAlQIAIfUBAQCVAgAh9gEBAJUCACH3AQEAoAIAIfgBQACyAgAh-QFAALICACH6AQIAqwIAIfsBAAC5Au8BI_wBQACyAgAhAwAAAAsAIAEAAJ0BADAmAACeAQAgAwAAAAsAIAEAACQAMAIAACUAIAEAAAAPACABAAAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgCQUAAKMDACAGAACkAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAeYBAQAAAAHnAQIAAAAB6AEgAAAAAQEaAACmAQAgB8ABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHmAQEAAAAB5wECAAAAAegBIAAAAAEBGgAAqAEAMAEaAACoAQAwCQUAAKEDACAGAACiAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHmAQEA_AIAIecBAgCQAwAh6AEgAIQDACECAAAADwAgGgAAqwEAIAfAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEA_AIAIeYBAQD8AgAh5wECAJADACHoASAAhAMAIQIAAAANACAaAACtAQAgAgAAAA0AIBoAAK0BACADAAAADwAgIQAApgEAICIAAKsBACABAAAADwAgAQAAAA0AIAUMAACcAwAgJwAAnwMAICgAAJ4DACBZAACdAwAgWgAAoAMAIAq9AQAAtQIAML4BAAC0AQAQvwEAALUCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIeYBAQCVAgAh5wECAKsCACHoASAAogIAIQMAAAANACABAACzAQAwJgAAtAEAIAMAAAANACABAAAOADACAAAPACABAAAAEwAgAQAAABMAIAMAAAARACABAAASADACAAATACADAAAAEQAgAQAAEgAwAgAAEwAgAwAAABEAIAEAABIAMAIAABMAIA0FAACbAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAABARoAALwBACAMwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAABARoAAL4BADABGgAAvgEAMA0FAACaAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAAmQMAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAhAgAAABMAIBoAAMEBACAMwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAAmQMAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAhAgAAABEAIBoAAMMBACACAAAAEQAgGgAAwwEAIAMAAAATACAhAAC8AQAgIgAAwQEAIAEAAAATACABAAAAEQAgBgwAAJQDACAnAACXAwAgKAAAlgMAIFkAAJUDACBaAACYAwAg3AEAAP4CACAPvQEAALECADC-AQAAygEAEL8BAACxAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh0AEBAJUCACHcAUAAsgIAId0BAgCrAgAh3gECAKsCACHfAQIAqwIAIeABAgCrAgAh4QECAKsCACHiAQIAqwIAIeMBAgCrAgAhAwAAABEAIAEAAMkBADAmAADKAQAgAwAAABEAIAEAABIAMAIAABMAIAEAAAAXACABAAAAFwAgAwAAABUAIAEAABYAMAIAABcAIAMAAAAVACABAAAWADACAAAXACADAAAAFQAgAQAAFgAwAgAAFwAgDwUAAJMDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAHkAQgAAAAB5QEIAAAAAQEaAADSAQAgDsABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAeQBCAAAAAHlAQgAAAABARoAANQBADABGgAA1AEAMA8FAACSAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAA_QIAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAh5AEIAJEDACHlAQgAkQMAIQIAAAAXACAaAADXAQAgDsABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQD8AgAh3AFAAP0CACHdAQIAkAMAId4BAgCQAwAh3wECAJADACHgAQIAkAMAIeEBAgCQAwAh4gECAJADACHjAQIAkAMAIeQBCACRAwAh5QEIAJEDACECAAAAFQAgGgAA2QEAIAIAAAAVACAaAADZAQAgAwAAABcAICEAANIBACAiAADXAQAgAQAAABcAIAEAAAAVACAHDAAAiwMAICcAAI4DACAoAACNAwAgWQAAjAMAIFoAAI8DACDkAQAA_gIAIOUBAAD-AgAgEb0BAACqAgAwvgEAAOABABC_AQAAqgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh3AFAAJYCACHdAQIAqwIAId4BAgCrAgAh3wECAKsCACHgAQIAqwIAIeEBAgCrAgAh4gECAKsCACHjAQIAqwIAIeQBCACsAgAh5QEIAKwCACEDAAAAFQAgAQAA3wEAMCYAAOABACADAAAAFQAgAQAAFgAwAgAAFwAgAQAAAAkAIAEAAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACARBQAAiAMAIA0AAIkDACAOAACKAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABARoAAOgBACAOwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABARoAAOoBADABGgAA6gEAMAEAAAALACARBQAAhQMAIA0AAIYDACAOAACHAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAIIDACHRAQEA_AIAIdIBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACECAAAACQAgGgAA7gEAIA7AAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQIAAAAHACAaAADwAQAgAgAAAAcAIBoAAPABACABAAAACwAgAwAAAAkAICEAAOgBACAiAADuAQAgAQAAAAkAIAEAAAAHACAIDAAA_wIAICcAAIEDACAoAACAAwAg0AEAAP4CACDTAQAA_gIAINQBAAD-AgAg2QEAAP4CACDbAQAA_gIAIBG9AQAAnwIAML4BAAD4AQAQvwEAAJ8CADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAoAIAIdEBAQCVAgAh0gEBAJUCACHTAQEAoAIAIdQBAQCgAgAh1QEBAJUCACHWAQEAlQIAIdgBAAChAtgBItkBAQCgAgAh2gEgAKICACHbAQEAoAIAIQMAAAAHACABAAD3AQAwJgAA-AEAIAMAAAAHACABAAAIADACAAAJACAIvQEAAJwCADC-AQAA_gEAEL8BAACcAgAwwAEBAAAAAcEBAQAAAAHCAQEAnQIAIcMBQACeAgAhxAFAAJ4CACEBAAAA-wEAIAEAAAD7AQAgCL0BAACcAgAwvgEAAP4BABC_AQAAnAIAMMABAQCdAgAhwQEBAJ0CACHCAQEAnQIAIcMBQACeAgAhxAFAAJ4CACEAAwAAAP4BACABAAD_AQAwAgAA-wEAIAMAAAD-AQAgAQAA_wEAMAIAAPsBACADAAAA_gEAIAEAAP8BADACAAD7AQAgBcABAQAAAAHBAQEAAAABwgEBAAAAAcMBQAAAAAHEAUAAAAABARoAAIMCACAFwAEBAAAAAcEBAQAAAAHCAQEAAAABwwFAAAAAAcQBQAAAAAEBGgAAhQIAMAEaAACFAgAwBcABAQD8AgAhwQEBAPwCACHCAQEA_AIAIcMBQAD9AgAhxAFAAP0CACECAAAA-wEAIBoAAIgCACAFwAEBAPwCACHBAQEA_AIAIcIBAQD8AgAhwwFAAP0CACHEAUAA_QIAIQIAAAD-AQAgGgAAigIAIAIAAAD-AQAgGgAAigIAIAMAAAD7AQAgIQAAgwIAICIAAIgCACABAAAA-wEAIAEAAAD-AQAgAwwAAPkCACAnAAD7AgAgKAAA-gIAIAi9AQAAlAIAML4BAACRAgAQvwEAAJQCADDAAQEAlQIAIcEBAQCVAgAhwgEBAJUCACHDAUAAlgIAIcQBQACWAgAhAwAAAP4BACABAACQAgAwJgAAkQIAIAMAAAD-AQAgAQAA_wEAMAIAAPsBACAIvQEAAJQCADC-AQAAkQIAEL8BAACUAgAwwAEBAJUCACHBAQEAlQIAIcIBAQCVAgAhwwFAAJYCACHEAUAAlgIAIQ4MAACYAgAgJwAAmwIAICgAAJsCACDFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJoCACHNAQEAAAABzgEBAAAAAc8BAQAAAAELDAAAmAIAICcAAJkCACAoAACZAgAgxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACXAgAhCwwAAJgCACAnAACZAgAgKAAAmQIAIMUBQAAAAAHGAUAAAAAExwFAAAAABMgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAlwIAIQjFAQIAAAABxgECAAAABMcBAgAAAATIAQIAAAAByQECAAAAAcoBAgAAAAHLAQIAAAABzAECAJgCACEIxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACZAgAhDgwAAJgCACAnAACbAgAgKAAAmwIAIMUBAQAAAAHGAQEAAAAExwEBAAAABMgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEAmgIAIc0BAQAAAAHOAQEAAAABzwEBAAAAAQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJsCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIvQEAAJwCADC-AQAA_gEAEL8BAACcAgAwwAEBAJ0CACHBAQEAnQIAIcIBAQCdAgAhwwFAAJ4CACHEAUAAngIAIQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJsCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACZAgAhEb0BAACfAgAwvgEAAPgBABC_AQAAnwIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCgAgAh0QEBAJUCACHSAQEAlQIAIdMBAQCgAgAh1AEBAKACACHVAQEAlQIAIdYBAQCVAgAh2AEAAKEC2AEi2QEBAKACACHaASAAogIAIdsBAQCgAgAhDgwAAKgCACAnAACpAgAgKAAAqQIAIMUBAQAAAAHGAQEAAAAFxwEBAAAABcgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEApwIAIc0BAQAAAAHOAQEAAAABzwEBAAAAAQcMAACYAgAgJwAApgIAICgAAKYCACDFAQAAANgBAsYBAAAA2AEIxwEAAADYAQjMAQAApQLYASIFDAAAmAIAICcAAKQCACAoAACkAgAgxQEgAAAAAcwBIACjAgAhBQwAAJgCACAnAACkAgAgKAAApAIAIMUBIAAAAAHMASAAowIAIQLFASAAAAABzAEgAKQCACEHDAAAmAIAICcAAKYCACAoAACmAgAgxQEAAADYAQLGAQAAANgBCMcBAAAA2AEIzAEAAKUC2AEiBMUBAAAA2AECxgEAAADYAQjHAQAAANgBCMwBAACmAtgBIg4MAACoAgAgJwAAqQIAICgAAKkCACDFAQEAAAABxgEBAAAABccBAQAAAAXIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAKcCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIxQECAAAAAcYBAgAAAAXHAQIAAAAFyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCoAgAhC8UBAQAAAAHGAQEAAAAFxwEBAAAABcgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEAqQIAIc0BAQAAAAHOAQEAAAABzwEBAAAAARG9AQAAqgIAML4BAADgAQAQvwEAAKoCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIdwBQACWAgAh3QECAKsCACHeAQIAqwIAId8BAgCrAgAh4AECAKsCACHhAQIAqwIAIeIBAgCrAgAh4wECAKsCACHkAQgArAIAIeUBCACsAgAhDQwAAJgCACAnAACYAgAgKAAAmAIAIFkAALACACBaAACYAgAgxQECAAAAAcYBAgAAAATHAQIAAAAEyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCvAgAhDQwAAKgCACAnAACuAgAgKAAArgIAIFkAAK4CACBaAACuAgAgxQEIAAAAAcYBCAAAAAXHAQgAAAAFyAEIAAAAAckBCAAAAAHKAQgAAAABywEIAAAAAcwBCACtAgAhDQwAAKgCACAnAACuAgAgKAAArgIAIFkAAK4CACBaAACuAgAgxQEIAAAAAcYBCAAAAAXHAQgAAAAFyAEIAAAAAckBCAAAAAHKAQgAAAABywEIAAAAAcwBCACtAgAhCMUBCAAAAAHGAQgAAAAFxwEIAAAABcgBCAAAAAHJAQgAAAABygEIAAAAAcsBCAAAAAHMAQgArgIAIQ0MAACYAgAgJwAAmAIAICgAAJgCACBZAACwAgAgWgAAmAIAIMUBAgAAAAHGAQIAAAAExwECAAAABMgBAgAAAAHJAQIAAAABygECAAAAAcsBAgAAAAHMAQIArwIAIQjFAQgAAAABxgEIAAAABMcBCAAAAATIAQgAAAAByQEIAAAAAcoBCAAAAAHLAQgAAAABzAEIALACACEPvQEAALECADC-AQAAygEAEL8BAACxAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh0AEBAJUCACHcAUAAsgIAId0BAgCrAgAh3gECAKsCACHfAQIAqwIAIeABAgCrAgAh4QECAKsCACHiAQIAqwIAIeMBAgCrAgAhCwwAAKgCACAnAAC0AgAgKAAAtAIAIMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAswIAIQsMAACoAgAgJwAAtAIAICgAALQCACDFAUAAAAABxgFAAAAABccBQAAAAAXIAUAAAAAByQFAAAAAAcoBQAAAAAHLAUAAAAABzAFAALMCACEIxQFAAAAAAcYBQAAAAAXHAUAAAAAFyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQAC0AgAhCr0BAAC1AgAwvgEAALQBABC_AQAAtQIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh5gEBAJUCACHnAQIAqwIAIegBIACiAgAhGb0BAAC2AgAwvgEAAJ4BABC_AQAAtgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAAC4Au8BIukBAQCVAgAh6gEBAJUCACHrAQEAlQIAIe0BAAC3Au0BIu8BAgCrAgAh8AECAKsCACHxAQIAqwIAIfIBAgCrAgAh8wECAKsCACH0AQEAlQIAIfUBAQCVAgAh9gEBAJUCACH3AQEAoAIAIfgBQACyAgAh-QFAALICACH6AQIAqwIAIfsBAAC5Au8BI_wBQACyAgAhBwwAAJgCACAnAAC_AgAgKAAAvwIAIMUBAAAA7QECxgEAAADtAQjHAQAAAO0BCMwBAAC-Au0BIgcMAACYAgAgJwAAvQIAICgAAL0CACDFAQAAAO8BAsYBAAAA7wEIxwEAAADvAQjMAQAAvALvASIHDAAAqAIAICcAALsCACAoAAC7AgAgxQEAAADvAQPGAQAAAO8BCccBAAAA7wEJzAEAALoC7wEjBwwAAKgCACAnAAC7AgAgKAAAuwIAIMUBAAAA7wEDxgEAAADvAQnHAQAAAO8BCcwBAAC6Au8BIwTFAQAAAO8BA8YBAAAA7wEJxwEAAADvAQnMAQAAuwLvASMHDAAAmAIAICcAAL0CACAoAAC9AgAgxQEAAADvAQLGAQAAAO8BCMcBAAAA7wEIzAEAALwC7wEiBMUBAAAA7wECxgEAAADvAQjHAQAAAO8BCMwBAAC9Au8BIgcMAACYAgAgJwAAvwIAICgAAL8CACDFAQAAAO0BAsYBAAAA7QEIxwEAAADtAQjMAQAAvgLtASIExQEAAADtAQLGAQAAAO0BCMcBAAAA7QEIzAEAAL8C7QEiHL0BAADAAgAwvgEAAIgBABC_AQAAwAIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAADEAowCIukBAQCVAgAh_QEBAJUCACH-AQEAlQIAIf8BAgCrAgAhgAIBAJUCACGBAgIAqwIAIYICAQCVAgAhgwIBAJUCACGFAgAAwQKFAiKGAgEAoAIAIYgCAADCAogCIooCAADDAooCIowCAgCrAgAhjQICAKsCACGOAgEAlQIAIY8CAQCgAgAhkAIBAKACACGRAgEAoAIAIZICQACyAgAhkwIBAKACACGUAkAAsgIAIQcMAACYAgAgJwAAzAIAICgAAMwCACDFAQAAAIUCAsYBAAAAhQIIxwEAAACFAgjMAQAAywKFAiIHDAAAmAIAICcAAMoCACAoAADKAgAgxQEAAACIAgLGAQAAAIgCCMcBAAAAiAIIzAEAAMkCiAIiBwwAAJgCACAnAADIAgAgKAAAyAIAIMUBAAAAigICxgEAAACKAgjHAQAAAIoCCMwBAADHAooCIgcMAACYAgAgJwAAxgIAICgAAMYCACDFAQAAAIwCAsYBAAAAjAIIxwEAAACMAgjMAQAAxQKMAiIHDAAAmAIAICcAAMYCACAoAADGAgAgxQEAAACMAgLGAQAAAIwCCMcBAAAAjAIIzAEAAMUCjAIiBMUBAAAAjAICxgEAAACMAgjHAQAAAIwCCMwBAADGAowCIgcMAACYAgAgJwAAyAIAICgAAMgCACDFAQAAAIoCAsYBAAAAigIIxwEAAACKAgjMAQAAxwKKAiIExQEAAACKAgLGAQAAAIoCCMcBAAAAigIIzAEAAMgCigIiBwwAAJgCACAnAADKAgAgKAAAygIAIMUBAAAAiAICxgEAAACIAgjHAQAAAIgCCMwBAADJAogCIgTFAQAAAIgCAsYBAAAAiAIIxwEAAACIAgjMAQAAygKIAiIHDAAAmAIAICcAAMwCACAoAADMAgAgxQEAAACFAgLGAQAAAIUCCMcBAAAAhQIIzAEAAMsChQIiBMUBAAAAhQICxgEAAACFAgjHAQAAAIUCCMwBAADMAoUCIgi9AQAAzQIAML4BAAByABC_AQAAzQIAMMABAQCVAgAhlQIBAJUCACGWAkAAlgIAIZcCIACiAgAhmAIBAKACACEIvQEAAM4CADC-AQAAXwAQvwEAAM4CADDAAQEAnQIAIZUCAQCdAgAhlgJAAJ4CACGXAiAAzwIAIZgCAQDQAgAhAsUBIAAAAAHMASAApAIAIQvFAQEAAAABxgEBAAAABccBAQAAAAXIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAKkCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEMvQEAANECADC-AQAAWQAQvwEAANECADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIdgBAADSApsCIpkCQACWAgAhmwIBAJUCACGcAkAAsgIAIZ0CAQCgAgAhBwwAAJgCACAnAADUAgAgKAAA1AIAIMUBAAAAmwICxgEAAACbAgjHAQAAAJsCCMwBAADTApsCIgcMAACYAgAgJwAA1AIAICgAANQCACDFAQAAAJsCAsYBAAAAmwIIxwEAAACbAgjMAQAA0wKbAiIExQEAAACbAgLGAQAAAJsCCMcBAAAAmwIIzAEAANQCmwIiB70BAADVAgAwvgEAAEMAEL8BAADVAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh6wEBAJUCACEJEwAA1wIAIBQAANgCACC9AQAA1gIAML4BAAAwABC_AQAA1gIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIesBAQCdAgAhA54CAAADACCfAgAAAwAgoAIAAAMAIAOeAgAACwAgnwIAAAsAIKACAAALACAgAwAA3wIAIAQAAOACACAHAADhAgAgCAAA4gIAIAkAAOMCACAKAADkAgAgCwAA5QIAIL0BAADZAgAwvgEAAAsAEL8BAADZAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEExQEAAADtAQLGAQAAAO0BCMcBAAAA7QEIzAEAAL8C7QEiBMUBAAAA7wECxgEAAADvAQjHAQAAAO8BCMwBAAC9Au8BIgjFAQIAAAABxgECAAAABMcBAgAAAATIAQIAAAAByQECAAAAAcoBAgAAAAHLAQIAAAABzAECAJgCACEIxQFAAAAAAcYBQAAAAAXHAUAAAAAFyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQAC0AgAhBMUBAAAA7wEDxgEAAADvAQnHAQAAAO8BCcwBAAC7Au8BIwsTAADXAgAgFAAA2AIAIL0BAADWAgAwvgEAADAAEL8BAADWAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh6wEBAJ0CACGlAgAAMAAgpgIAADAAICMDAADfAgAgDwAA5QIAIBAAAOUCACARAADYAgAgEgAA4QIAIL0BAAD0AgAwvgEAAAMAEL8BAAD0AgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAAPgCjAIi6QEBAJ0CACH9AQEAnQIAIf4BAQCdAgAh_wECANwCACGAAgEAnQIAIYECAgDcAgAhggIBAJ0CACGDAgEAnQIAIYUCAAD1AoUCIoYCAQDQAgAhiAIAAPYCiAIiigIAAPcCigIijAICANwCACGNAgIA3AIAIY4CAQCdAgAhjwIBANACACGQAgEA0AIAIZECAQDQAgAhkgJAAN0CACGTAgEA0AIAIZQCQADdAgAhpQIAAAMAIKYCAAADACADngIAAA0AIJ8CAAANACCgAgAADQAgA54CAAARACCfAgAAEQAgoAIAABEAIAOeAgAAFQAgnwIAABUAIKACAAAVACADngIAABkAIJ8CAAAZACCgAgAAGQAgA54CAAAHACCfAgAABwAgoAIAAAcAIA0FAADoAgAgvQEAAOYCADC-AQAAGQAQvwEAAOYCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApsCIpkCQACeAgAhmwIBAJ0CACGcAkAA3QIAIZ0CAQDQAgAhBMUBAAAAmwICxgEAAACbAgjHAQAAAJsCCMwBAADUApsCIiIDAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHYAQAA2wLvASLpAQEAnQIAIeoBAQCdAgAh6wEBAJ0CACHtAQAA2gLtASLvAQIA3AIAIfABAgDcAgAh8QECANwCACHyAQIA3AIAIfMBAgDcAgAh9AEBAJ0CACH1AQEAnQIAIfYBAQCdAgAh9wEBANACACH4AUAA3QIAIfkBQADdAgAh-gECANwCACH7AQAA3gLvASP8AUAA3QIAIaUCAAALACCmAgAACwAgAtABAQAAAAHcAUAAAAABEgUAAOgCACC9AQAA6gIAML4BAAAVABC_AQAA6gIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh3AFAAJ4CACHdAQIA3AIAId4BAgDcAgAh3wECANwCACHgAQIA3AIAIeEBAgDcAgAh4gECANwCACHjAQIA3AIAIeQBCADrAgAh5QEIAOsCACEIxQEIAAAAAcYBCAAAAAXHAQgAAAAFyAEIAAAAAckBCAAAAAHKAQgAAAABywEIAAAAAcwBCACuAgAhAtABAQAAAAHdAQIAAAABEAUAAOgCACC9AQAA7QIAML4BAAARABC_AQAA7QIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh3AFAAN0CACHdAQIA3AIAId4BAgDcAgAh3wECANwCACHgAQIA3AIAIeEBAgDcAgAh4gECANwCACHjAQIA3AIAIQLQAQEAAAAB5gEBAAAAAQwFAADoAgAgBgAA4AIAIL0BAADvAgAwvgEAAA0AEL8BAADvAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHmAQEAnQIAIecBAgDcAgAh6AEgAM8CACEUBQAA8gIAIA0AAOACACAOAADgAgAgvQEAAPACADC-AQAABwAQvwEAAPACADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEA0AIAIdEBAQCdAgAh0gEBAJ0CACHTAQEA0AIAIdQBAQDQAgAh1QEBAJ0CACHWAQEAnQIAIdgBAADxAtgBItkBAQDQAgAh2gEgAM8CACHbAQEA0AIAIQTFAQAAANgBAsYBAAAA2AEIxwEAAADYAQjMAQAApgLYASIiAwAA3wIAIAQAAOACACAHAADhAgAgCAAA4gIAIAkAAOMCACAKAADkAgAgCwAA5QIAIL0BAADZAgAwvgEAAAsAEL8BAADZAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACGlAgAACwAgpgIAAAsAIALpAQEAAAAB_QEBAAAAASEDAADfAgAgDwAA5QIAIBAAAOUCACARAADYAgAgEgAA4QIAIL0BAAD0AgAwvgEAAAMAEL8BAAD0AgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAAPgCjAIi6QEBAJ0CACH9AQEAnQIAIf4BAQCdAgAh_wECANwCACGAAgEAnQIAIYECAgDcAgAhggIBAJ0CACGDAgEAnQIAIYUCAAD1AoUCIoYCAQDQAgAhiAIAAPYCiAIiigIAAPcCigIijAICANwCACGNAgIA3AIAIY4CAQCdAgAhjwIBANACACGQAgEA0AIAIZECAQDQAgAhkgJAAN0CACGTAgEA0AIAIZQCQADdAgAhBMUBAAAAhQICxgEAAACFAgjHAQAAAIUCCMwBAADMAoUCIgTFAQAAAIgCAsYBAAAAiAIIxwEAAACIAgjMAQAAygKIAiIExQEAAACKAgLGAQAAAIoCCMcBAAAAigIIzAEAAMgCigIiBMUBAAAAjAICxgEAAACMAgjHAQAAAIwCCMwBAADGAowCIgAAAAGqAgEAAAABAaoCQAAAAAEAAAAAAaoCAQAAAAEBqgIAAADYAQIBqgIgAAAAAQchAACXBQAgIgAAoAUAIKcCAACYBQAgqAIAAJ8FACCrAgAACwAgrAIAAAsAIK0CAAAlACAFIQAAlQUAICIAAJ0FACCnAgAAlgUAIKgCAACcBQAgrQIAAAUAIAUhAACTBQAgIgAAmgUAIKcCAACUBQAgqAIAAJkFACCtAgAABQAgAyEAAJcFACCnAgAAmAUAIK0CAAAlACADIQAAlQUAIKcCAACWBQAgrQIAAAUAIAMhAACTBQAgpwIAAJQFACCtAgAABQAgAAAAAAAFqgICAAAAAbACAgAAAAGxAgIAAAABsgICAAAAAbMCAgAAAAEFqgIIAAAAAbACCAAAAAGxAggAAAABsgIIAAAAAbMCCAAAAAEFIQAAjgUAICIAAJEFACCnAgAAjwUAIKgCAACQBQAgrQIAACUAIAMhAACOBQAgpwIAAI8FACCtAgAAJQAgAAAAAAABqgJAAAAAAQUhAACJBQAgIgAAjAUAIKcCAACKBQAgqAIAAIsFACCtAgAAJQAgAyEAAIkFACCnAgAAigUAIK0CAAAlACAAAAAAAAUhAACBBQAgIgAAhwUAIKcCAACCBQAgqAIAAIYFACCtAgAAJQAgBSEAAP8EACAiAACEBQAgpwIAAIAFACCoAgAAgwUAIK0CAAAFACADIQAAgQUAIKcCAACCBQAgrQIAACUAIAMhAAD_BAAgpwIAAIAFACCtAgAABQAgAAAAAAABqgIAAADtAQIBqgIAAADvAQIBqgIAAADvAQMFIQAA8gQAICIAAP0EACCnAgAA8wQAIKgCAAD8BAAgrQIAAAEAIAUhAADwBAAgIgAA-gQAIKcCAADxBAAgqAIAAPkEACCtAgAABQAgCyEAAOUDADAiAADqAwAwpwIAAOYDADCoAgAA5wMAMKkCAADoAwAgqgIAAOkDADCrAgAA6QMAMKwCAADpAwAwrQIAAOkDADCuAgAA6wMAMK8CAADsAwAwCyEAANkDADAiAADeAwAwpwIAANoDADCoAgAA2wMAMKkCAADcAwAgqgIAAN0DADCrAgAA3QMAMKwCAADdAwAwrQIAAN0DADCuAgAA3wMAMK8CAADgAwAwCyEAAM0DADAiAADSAwAwpwIAAM4DADCoAgAAzwMAMKkCAADQAwAgqgIAANEDADCrAgAA0QMAMKwCAADRAwAwrQIAANEDADCuAgAA0wMAMK8CAADUAwAwCyEAAMADADAiAADFAwAwpwIAAMEDADCoAgAAwgMAMKkCAADDAwAgqgIAAMQDADCrAgAAxAMAMKwCAADEAwAwrQIAAMQDADCuAgAAxgMAMK8CAADHAwAwCyEAALQDADAiAAC5AwAwpwIAALUDADCoAgAAtgMAMKkCAAC3AwAgqgIAALgDADCrAgAAuAMAMKwCAAC4AwAwrQIAALgDADCuAgAAugMAMK8CAAC7AwAwDw0AAIkDACAOAACKAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0QEBAAAAAdIBAQAAAAHTAQEAAAAB1AEBAAAAAdUBAQAAAAHWAQEAAAAB2AEAAADYAQLZAQEAAAAB2gEgAAAAAdsBAQAAAAECAAAACQAgIQAAvwMAIAMAAAAJACAhAAC_AwAgIgAAvgMAIAEaAAD4BAAwFAUAAPICACANAADgAgAgDgAA4AIAIL0BAADwAgAwvgEAAAcAEL8BAADwAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEA0AIAIdEBAQCdAgAh0gEBAJ0CACHTAQEA0AIAIdQBAQDQAgAh1QEBAJ0CACHWAQEAnQIAIdgBAADxAtgBItkBAQDQAgAh2gEgAM8CACHbAQEA0AIAIQIAAAAJACAaAAC-AwAgAgAAALwDACAaAAC9AwAgEb0BAAC7AwAwvgEAALwDABC_AQAAuwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhEb0BAAC7AwAwvgEAALwDABC_AQAAuwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8NAACGAwAgDgAAhwMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8NAACJAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABCMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAmwICmQJAAAAAAZsCAQAAAAGcAkAAAAABnQIBAAAAAQIAAAAbACAhAADMAwAgAwAAABsAICEAAMwDACAiAADLAwAgARoAAPcEADANBQAA6AIAIL0BAADmAgAwvgEAABkAEL8BAADmAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApsCIpkCQACeAgAhmwIBAAAAAZwCQADdAgAhnQIBANACACECAAAAGwAgGgAAywMAIAIAAADIAwAgGgAAyQMAIAy9AQAAxwMAML4BAADIAwAQvwEAAMcDADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApsCIpkCQACeAgAhmwIBAJ0CACGcAkAA3QIAIZ0CAQDQAgAhDL0BAADHAwAwvgEAAMgDABC_AQAAxwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh2AEAAOcCmwIimQJAAJ4CACGbAgEAnQIAIZwCQADdAgAhnQIBANACACEIwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAMoDmwIimQJAAP0CACGbAgEA_AIAIZwCQACZAwAhnQIBAIIDACEBqgIAAACbAgIIwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAMoDmwIimQJAAP0CACGbAgEA_AIAIZwCQACZAwAhnQIBAIIDACEIwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACbAgKZAkAAAAABmwIBAAAAAZwCQAAAAAGdAgEAAAABDcABAQAAAAHDAUAAAAABxAFAAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAAB5AEIAAAAAeUBCAAAAAECAAAAFwAgIQAA2AMAIAMAAAAXACAhAADYAwAgIgAA1wMAIAEaAAD2BAAwEwUAAOgCACC9AQAA6gIAML4BAAAVABC_AQAA6gIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAAngIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAh5AEIAOsCACHlAQgA6wIAIaECAADpAgAgAgAAABcAIBoAANcDACACAAAA1QMAIBoAANYDACARvQEAANQDADC-AQAA1QMAEL8BAADUAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAAngIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAh5AEIAOsCACHlAQgA6wIAIRG9AQAA1AMAML4BAADVAwAQvwEAANQDADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQACeAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACHkAQgA6wIAIeUBCADrAgAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQAD9AgAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACHkAQgAkQMAIeUBCACRAwAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQAD9AgAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACHkAQgAkQMAIeUBCACRAwAhDcABAQAAAAHDAUAAAAABxAFAAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAAB5AEIAAAAAeUBCAAAAAELwAEBAAAAAcMBQAAAAAHEAUAAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAECAAAAEwAgIQAA5AMAIAMAAAATACAhAADkAwAgIgAA4wMAIAEaAAD1BAAwEQUAAOgCACC9AQAA7QIAML4BAAARABC_AQAA7QIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAA3QIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAhogIAAOwCACACAAAAEwAgGgAA4wMAIAIAAADhAwAgGgAA4gMAIA-9AQAA4AMAML4BAADhAwAQvwEAAOADADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQADdAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACEPvQEAAOADADC-AQAA4QMAEL8BAADgAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAA3QIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAhC8ABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQACZAwAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACELwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh3AFAAJkDACHdAQIAkAMAId4BAgCQAwAh3wECAJADACHgAQIAkAMAIeEBAgCQAwAh4gECAJADACHjAQIAkAMAIQvAAQEAAAABwwFAAAAAAcQBQAAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAQcGAACkAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB5gEBAAAAAecBAgAAAAHoASAAAAABAgAAAA8AICEAAPADACADAAAADwAgIQAA8AMAICIAAO8DACABGgAA9AQAMA0FAADoAgAgBgAA4AIAIL0BAADvAgAwvgEAAA0AEL8BAADvAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIeYBAQCdAgAh5wECANwCACHoASAAzwIAIaMCAADuAgAgAgAAAA8AIBoAAO8DACACAAAA7QMAIBoAAO4DACAKvQEAAOwDADC-AQAA7QMAEL8BAADsAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHmAQEAnQIAIecBAgDcAgAh6AEgAM8CACEKvQEAAOwDADC-AQAA7QMAEL8BAADsAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHmAQEAnQIAIecBAgDcAgAh6AEgAM8CACEGwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh5gEBAPwCACHnAQIAkAMAIegBIACEAwAhBwYAAKIDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHmAQEA_AIAIecBAgCQAwAh6AEgAIQDACEHBgAApAMAIMABAQAAAAHDAUAAAAABxAFAAAAAAeYBAQAAAAHnAQIAAAAB6AEgAAAAAQMhAADyBAAgpwIAAPMEACCtAgAAAQAgAyEAAPAEACCnAgAA8QQAIK0CAAAFACAEIQAA5QMAMKcCAADmAwAwqQIAAOgDACCtAgAA6QMAMAQhAADZAwAwpwIAANoDADCpAgAA3AMAIK0CAADdAwAwBCEAAM0DADCnAgAAzgMAMKkCAADQAwAgrQIAANEDADAEIQAAwAMAMKcCAADBAwAwqQIAAMMDACCtAgAAxAMAMAQhAAC0AwAwpwIAALUDADCpAgAAtwMAIK0CAAC4AwAwAAAAAAABqgIAAACFAgIBqgIAAACIAgIBqgIAAACKAgIBqgIAAACMAgIFIQAA5wQAICIAAO4EACCnAgAA6AQAIKgCAADtBAAgrQIAAAEAIAshAACkBAAwIgAAqAQAMKcCAAClBAAwqAIAAKYEADCpAgAApwQAIKoCAAC4AwAwqwIAALgDADCsAgAAuAMAMK0CAAC4AwAwrgIAAKkEADCvAgAAuwMAMAshAACbBAAwIgAAnwQAMKcCAACcBAAwqAIAAJ0EADCpAgAAngQAIKoCAAC4AwAwqwIAALgDADCsAgAAuAMAMK0CAAC4AwAwrgIAAKAEADCvAgAAuwMAMAshAACPBAAwIgAAlAQAMKcCAACQBAAwqAIAAJEEADCpAgAAkgQAIKoCAACTBAAwqwIAAJMEADCsAgAAkwQAMK0CAACTBAAwrgIAAJUEADCvAgAAlgQAMAshAACGBAAwIgAAigQAMKcCAACHBAAwqAIAAIgEADCpAgAAiQQAIKoCAADpAwAwqwIAAOkDADCsAgAA6QMAMK0CAADpAwAwrgIAAIsEADCvAgAA7AMAMAcFAACjAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAecBAgAAAAHoASAAAAABAgAAAA8AICEAAI4EACADAAAADwAgIQAAjgQAICIAAI0EACABGgAA7AQAMAIAAAAPACAaAACNBAAgAgAAAO0DACAaAACMBAAgBsABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQD8AgAh5wECAJADACHoASAAhAMAIQcFAAChAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHnAQIAkAMAIegBIACEAwAhBwUAAKMDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB5wECAAAAAegBIAAAAAEbAwAA8QMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAJoEACADAAAAJQAgIQAAmgQAICIAAJkEACABGgAA6wQAMCADAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdgBAADbAu8BIukBAQCdAgAh6gEBAJ0CACHrAQEAnQIAIe0BAADaAu0BIu8BAgDcAgAh8AECANwCACHxAQIA3AIAIfIBAgDcAgAh8wECANwCACH0AQEAnQIAIfUBAQCdAgAh9gEBAJ0CACH3AQEA0AIAIfgBQADdAgAh-QFAAN0CACH6AQIA3AIAIfsBAADeAu8BI_wBQADdAgAhAgAAACUAIBoAAJkEACACAAAAlwQAIBoAAJgEACAZvQEAAJYEADC-AQAAlwQAEL8BAACWBAAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEZvQEAAJYEADC-AQAAlwQAEL8BAACWBAAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEVwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhGwMAAK0DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRsDAADxAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAEPBQAAiAMAIA0AAIkDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0QEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQIAAAAJACAhAACjBAAgAwAAAAkAICEAAKMEACAiAACiBAAgARoAAOoEADACAAAACQAgGgAAogQAIAIAAAC8AwAgGgAAoQQAIA3AAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACEPBQAAhQMAIA0AAIYDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACEPBQAAiAMAIA0AAIkDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0QEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQ8FAACIAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABAgAAAAkAICEAAKwEACADAAAACQAgIQAArAQAICIAAKsEACABGgAA6QQAMAIAAAAJACAaAACrBAAgAgAAALwDACAaAACqBAAgDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQCCAwAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8FAACFAwAgDgAAhwMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQCCAwAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8FAACIAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABAyEAAOcEACCnAgAA6AQAIK0CAAABACAEIQAApAQAMKcCAAClBAAwqQIAAKcEACCtAgAAuAMAMAQhAACbBAAwpwIAAJwEADCpAgAAngQAIK0CAAC4AwAwBCEAAI8EADCnAgAAkAQAMKkCAACSBAAgrQIAAJMEADAEIQAAhgQAMKcCAACHBAAwqQIAAIkEACCtAgAA6QMAMAAAAAAAAAUhAADiBAAgIgAA5QQAIKcCAADjBAAgqAIAAOQEACCtAgAAJQAgAyEAAOIEACCnAgAA4wQAIK0CAAAlACAAAAALIQAAyAQAMCIAAM0EADCnAgAAyQQAMKgCAADKBAAwqQIAAMsEACCqAgAAzAQAMKsCAADMBAAwrAIAAMwEADCtAgAAzAQAMK4CAADOBAAwrwIAAM8EADALIQAAvwQAMCIAAMMEADCnAgAAwAQAMKgCAADBBAAwqQIAAMIEACCqAgAAkwQAMKsCAACTBAAwrAIAAJMEADCtAgAAkwQAMK4CAADEBAAwrwIAAJYEADAbBAAA8gMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAMcEACADAAAAJQAgIQAAxwQAICIAAMYEACABGgAA4QQAMAIAAAAlACAaAADGBAAgAgAAAJcEACAaAADFBAAgFcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIuoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRsEAACuAwAgBwAArwMAIAgAALADACAJAACxAwAgCgAAsgMAIAsAALMDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEbBAAA8gMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABHA8AAK4EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAv0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAQAAAAGUAkAAAAABAgAAAAUAICEAANMEACADAAAABQAgIQAA0wQAICIAANIEACABGgAA4AQAMCIDAADfAgAgDwAA5QIAIBAAAOUCACARAADYAgAgEgAA4QIAIL0BAAD0AgAwvgEAAAMAEL8BAAD0AgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHYAQAA-AKMAiLpAQEAnQIAIf0BAQCdAgAh_gEBAJ0CACH_AQIA3AIAIYACAQCdAgAhgQICANwCACGCAgEAnQIAIYMCAQCdAgAhhQIAAPUChQIihgIBANACACGIAgAA9gKIAiKKAgAA9wKKAiKMAgIA3AIAIY0CAgDcAgAhjgIBAJ0CACGPAgEA0AIAIZACAQDQAgAhkQIBANACACGSAkAA3QIAIZMCAQDQAgAhlAJAAN0CACGkAgAA8wIAIAIAAAAFACAaAADSBAAgAgAAANAEACAaAADRBAAgHL0BAADPBAAwvgEAANAEABC_AQAAzwQAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwIBANACACGUAkAA3QIAIRy9AQAAzwQAML4BAADQBAAQvwEAAM8EADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHYAQAA-AKMAiLpAQEAnQIAIf0BAQCdAgAh_gEBAJ0CACH_AQIA3AIAIYACAQCdAgAhgQICANwCACGCAgEAnQIAIYMCAQCdAgAhhQIAAPUChQIihgIBANACACGIAgAA9gKIAiKKAgAA9wKKAiKMAgIA3AIAIY0CAgDcAgAhjgIBAJ0CACGPAgEA0AIAIZACAQDQAgAhkQIBANACACGSAkAA3QIAIZMCAQDQAgAhlAJAAN0CACEYwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwIBAIIDACGUAkAAmQMAIRwPAACCBAAgEAAAgwQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwIBAIIDACGUAkAAmQMAIRwPAACuBAAgEAAArwQAIBEAALAEACASAACxBAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACMAgL9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgEAAAABlAJAAAAAAQQhAADIBAAwpwIAAMkEADCpAgAAywQAIK0CAADMBAAwBCEAAL8EADCnAgAAwAQAMKkCAADCBAAgrQIAAJMEADAAAAITAADWBAAgFAAA1wQAIAwDAADYBAAgDwAA3gQAIBAAAN4EACARAADXBAAgEgAA2gQAIIYCAAD-AgAgjwIAAP4CACCQAgAA_gIAIJECAAD-AgAgkgIAAP4CACCTAgAA_gIAIJQCAAD-AgAgAAAAAAAMAwAA2AQAIAQAANkEACAHAADaBAAgCAAA2wQAIAkAANwEACAKAADdBAAgCwAA3gQAIPcBAAD-AgAg-AEAAP4CACD5AQAA_gIAIPsBAAD-AgAg_AEAAP4CACAYwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACMAgL9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgEAAAABlAJAAAAAARXAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAuoBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAEcAwAA8QMAIAQAAPIDACAHAADzAwAgCAAA9AMAIAkAAPUDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6gEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQIAAAAlACAhAADiBAAgAwAAAAsAICEAAOIEACAiAADmBAAgHgAAAAsAIAMAAK0DACAEAACuAwAgBwAArwMAIAgAALADACAJAACxAwAgCwAAswMAIBoAAOYEACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRwDAACtAwAgBAAArgMAIAcAAK8DACAIAACwAwAgCQAAsQMAIAsAALMDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIQUUAADVBAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB6wEBAAAAAQIAAAABACAhAADnBAAgDcABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABDcABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHRAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABFcABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAA7wEC6QEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQbAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB5wECAAAAAegBIAAAAAEDAAAAMAAgIQAA5wQAICIAAO8EACAHAAAAMAAgFAAAvgQAIBoAAO8EACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHrAQEA_AIAIQUUAAC-BAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh6wEBAPwCACEdAwAArQQAIA8AAK4EACAQAACvBAAgEgAAsQQAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAjAIC6QEBAAAAAf0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAQAAAAGUAkAAAAABAgAAAAUAICEAAPAEACAFEwAA1AQAIMABAQAAAAHDAUAAAAABxAFAAAAAAesBAQAAAAECAAAAAQAgIQAA8gQAIAbAAQEAAAABwwFAAAAAAcQBQAAAAAHmAQEAAAAB5wECAAAAAegBIAAAAAELwAEBAAAAAcMBQAAAAAHEAUAAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAENwAEBAAAAAcMBQAAAAAHEAUAAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAHkAQgAAAAB5QEIAAAAAQjAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAJsCApkCQAAAAAGbAgEAAAABnAJAAAAAAZ0CAQAAAAENwAEBAAAAAcMBQAAAAAHEAUAAAAAB0QEBAAAAAdIBAQAAAAHTAQEAAAAB1AEBAAAAAdUBAQAAAAHWAQEAAAAB2AEAAADYAQLZAQEAAAAB2gEgAAAAAdsBAQAAAAEDAAAAAwAgIQAA8AQAICIAAPsEACAfAAAAAwAgAwAAgQQAIA8AAIIEACAQAACDBAAgEgAAhQQAIBoAAPsEACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAQCCAwAhlAJAAJkDACEdAwAAgQQAIA8AAIIEACAQAACDBAAgEgAAhQQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwIBAIIDACGUAkAAmQMAIQMAAAAwACAhAADyBAAgIgAA_gQAIAcAAAAwACATAAC9BAAgGgAA_gQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIesBAQD8AgAhBRMAAL0EACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHrAQEA_AIAIR0DAACtBAAgDwAArgQAIBAAAK8EACARAACwBAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACMAgLpAQEAAAAB_QEBAAAAAf4BAQAAAAH_AQIAAAABgAIBAAAAAYECAgAAAAGCAgEAAAABgwIBAAAAAYUCAAAAhQIChgIBAAAAAYgCAAAAiAICigIAAACKAgKMAgIAAAABjQICAAAAAY4CAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAkAAAAABkwIBAAAAAZQCQAAAAAECAAAABQAgIQAA_wQAIBwDAADxAwAgBAAA8gMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAIEFACADAAAAAwAgIQAA_wQAICIAAIUFACAfAAAAAwAgAwAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIBoAAIUFACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAQCCAwAhlAJAAJkDACEdAwAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwIBAIIDACGUAkAAmQMAIQMAAAALACAhAACBBQAgIgAAiAUAIB4AAAALACADAACtAwAgBAAArgMAIAgAALADACAJAACxAwAgCgAAsgMAIAsAALMDACAaAACIBQAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEcAwAArQMAIAQAAK4DACAIAACwAwAgCQAAsQMAIAoAALIDACALAACzAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEcAwAA8QMAIAQAAPIDACAHAADzAwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6gEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQIAAAAlACAhAACJBQAgAwAAAAsAICEAAIkFACAiAACNBQAgHgAAAAsAIAMAAK0DACAEAACuAwAgBwAArwMAIAkAALEDACAKAACyAwAgCwAAswMAIBoAAI0FACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRwDAACtAwAgBAAArgMAIAcAAK8DACAJAACxAwAgCgAAsgMAIAsAALMDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRwDAADxAwAgBAAA8gMAIAcAAPMDACAIAAD0AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAI4FACADAAAACwAgIQAAjgUAICIAAJIFACAeAAAACwAgAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAoAALIDACALAACzAwAgGgAAkgUAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHAMAAK0DACAEAACuAwAgBwAArwMAIAgAALADACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHQMAAK0EACAPAACuBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgEAAAABlAJAAAAAAQIAAAAFACAhAACTBQAgHQMAAK0EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgEAAAABlAJAAAAAAQIAAAAFACAhAACVBQAgHAMAAPEDACAEAADyAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAA7wEC6QEBAAAAAeoBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAECAAAAJQAgIQAAlwUAIAMAAAADACAhAACTBQAgIgAAmwUAIB8AAAADACADAACBBAAgDwAAggQAIBEAAIQEACASAACFBAAgGgAAmwUAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwIBAIIDACGUAkAAmQMAIR0DAACBBAAgDwAAggQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgEAggMAIZQCQACZAwAhAwAAAAMAICEAAJUFACAiAACeBQAgHwAAAAMAIAMAAIEEACAQAACDBAAgEQAAhAQAIBIAAIUEACAaAACeBQAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgEAggMAIZQCQACZAwAhHQMAAIEEACAQAACDBAAgEQAAhAQAIBIAAIUEACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAQCCAwAhlAJAAJkDACEDAAAACwAgIQAAlwUAICIAAKEFACAeAAAACwAgAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgGgAAoQUAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHAMAAK0DACAEAACuAwAgBwAArwMAIAgAALADACAJAACxAwAgCgAAsgMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhAwwACxMGAhQsBAYDAAEMAAoPCgMQIwMRJgQSJwUDBQwEDQACDgACCAMAAQQAAgcQBQgUBgkYBwocCAsdAwwACQIFAAQGAAIBBQAEAQUABAEFAAQFBx4ACB8ACSAACiEACyIABA8oABApABEqABIrAAITLQAULgAAAAADDAAQJwARKAASAAAAAwwAECcAESgAEgEFAAQBBQAEAwwAFycAGCgAGQAAAAMMABcnABgoABkAAAADDAAfJwAgKAAhAAAAAwwAHycAICgAIQEDAAEBAwABBQwAJicAKSgAKlkAJ1oAKAAAAAAABQwAJicAKSgAKlkAJ1oAKAIDAAEEAAICAwABBAACBQwALycAMigAM1kAMFoAMQAAAAAABQwALycAMigAM1kAMFoAMQIFAAQGAAICBQAEBgACBQwAOCcAOygAPFkAOVoAOgAAAAAABQwAOCcAOygAPFkAOVoAOgEFAAQBBQAEBQwAQScARCgARVkAQloAQwAAAAAABQwAQScARCgARVkAQloAQwEFAAQBBQAEBQwASicATSgATlkAS1oATAAAAAAABQwASicATSgATlkAS1oATAMF7QEEDQACDgACAwXzAQQNAAIOAAIDDABTJwBUKABVAAAAAwwAUycAVCgAVQAAAAMMAFsnAFwoAF0AAAADDABbJwBcKABdFQIBFi8BFzIBGDMBGTQBGzYBHDgMHTkNHjsBHz0MID4OIz8BJEABJUEMKUQPKkUTK0YILEcILUgILkkIL0oIMEwIMU4MMk8UM1EINFMMNVQVNlUIN1YIOFcMOVoWOlsaO10bPF4bPWEbPmIbP2MbQGUbQWcMQmgcQ2obRGwMRW0dRm4bR28bSHAMSXMeSnQiS3UCTHYCTXcCTngCT3kCUHsCUX0MUn4jU4ABAlSCAQxVgwEkVoQBAleFAQJYhgEMW4kBJVyKAStdiwEEXowBBF-NAQRgjgEEYY8BBGKRAQRjkwEMZJQBLGWWAQRmmAEMZ5kBLWiaAQRpmwEEapwBDGufAS5soAE0baEBBW6iAQVvowEFcKQBBXGlAQVypwEFc6kBDHSqATV1rAEFdq4BDHevATZ4sAEFebEBBXqyAQx7tQE3fLYBPX23AQZ-uAEGf7kBBoABugEGgQG7AQaCAb0BBoMBvwEMhAHAAT6FAcIBBoYBxAEMhwHFAT-IAcYBBokBxwEGigHIAQyLAcsBQIwBzAFGjQHNAQeOAc4BB48BzwEHkAHQAQeRAdEBB5IB0wEHkwHVAQyUAdYBR5UB2AEHlgHaAQyXAdsBSJgB3AEHmQHdAQeaAd4BDJsB4QFJnAHiAU-dAeMBA54B5AEDnwHlAQOgAeYBA6EB5wEDogHpAQOjAesBDKQB7AFQpQHvAQOmAfEBDKcB8gFRqAH0AQOpAfUBA6oB9gEMqwH5AVKsAfoBVq0B_AFXrgH9AVevAYACV7ABgQJXsQGCAleyAYQCV7MBhgIMtAGHAli1AYkCV7YBiwIMtwGMAlm4AY0CV7kBjgJXugGPAgy7AZICWrwBkwJe" + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"workspace\",\"primaryMailbox\",\"campaign\",\"satelliteMailbox\",\"satellites\",\"dailySchedules\",\"dailyStats\",\"sendJobs\",\"warmupLogs\",\"_count\",\"sender\",\"receiver\",\"sentLogs\",\"receivedLogs\",\"primaryCampaigns\",\"satelliteCampaigns\",\"inboxes\",\"campaigns\",\"Workspace.findUnique\",\"Workspace.findUniqueOrThrow\",\"Workspace.findFirst\",\"Workspace.findFirstOrThrow\",\"Workspace.findMany\",\"data\",\"Workspace.createOne\",\"Workspace.createMany\",\"Workspace.createManyAndReturn\",\"Workspace.updateOne\",\"Workspace.updateMany\",\"Workspace.updateManyAndReturn\",\"create\",\"update\",\"Workspace.upsertOne\",\"Workspace.deleteOne\",\"Workspace.deleteMany\",\"having\",\"_min\",\"_max\",\"Workspace.groupBy\",\"Workspace.aggregate\",\"SendJob.findUnique\",\"SendJob.findUniqueOrThrow\",\"SendJob.findFirst\",\"SendJob.findFirstOrThrow\",\"SendJob.findMany\",\"SendJob.createOne\",\"SendJob.createMany\",\"SendJob.createManyAndReturn\",\"SendJob.updateOne\",\"SendJob.updateMany\",\"SendJob.updateManyAndReturn\",\"SendJob.upsertOne\",\"SendJob.deleteOne\",\"SendJob.deleteMany\",\"SendJob.groupBy\",\"SendJob.aggregate\",\"JobRunLog.findUnique\",\"JobRunLog.findUniqueOrThrow\",\"JobRunLog.findFirst\",\"JobRunLog.findFirstOrThrow\",\"JobRunLog.findMany\",\"JobRunLog.createOne\",\"JobRunLog.createMany\",\"JobRunLog.createManyAndReturn\",\"JobRunLog.updateOne\",\"JobRunLog.updateMany\",\"JobRunLog.updateManyAndReturn\",\"JobRunLog.upsertOne\",\"JobRunLog.deleteOne\",\"JobRunLog.deleteMany\",\"JobRunLog.groupBy\",\"JobRunLog.aggregate\",\"Inbox.findUnique\",\"Inbox.findUniqueOrThrow\",\"Inbox.findFirst\",\"Inbox.findFirstOrThrow\",\"Inbox.findMany\",\"Inbox.createOne\",\"Inbox.createMany\",\"Inbox.createManyAndReturn\",\"Inbox.updateOne\",\"Inbox.updateMany\",\"Inbox.updateManyAndReturn\",\"Inbox.upsertOne\",\"Inbox.deleteOne\",\"Inbox.deleteMany\",\"_avg\",\"_sum\",\"Inbox.groupBy\",\"Inbox.aggregate\",\"WarmupCampaign.findUnique\",\"WarmupCampaign.findUniqueOrThrow\",\"WarmupCampaign.findFirst\",\"WarmupCampaign.findFirstOrThrow\",\"WarmupCampaign.findMany\",\"WarmupCampaign.createOne\",\"WarmupCampaign.createMany\",\"WarmupCampaign.createManyAndReturn\",\"WarmupCampaign.updateOne\",\"WarmupCampaign.updateMany\",\"WarmupCampaign.updateManyAndReturn\",\"WarmupCampaign.upsertOne\",\"WarmupCampaign.deleteOne\",\"WarmupCampaign.deleteMany\",\"WarmupCampaign.groupBy\",\"WarmupCampaign.aggregate\",\"CampaignSatellite.findUnique\",\"CampaignSatellite.findUniqueOrThrow\",\"CampaignSatellite.findFirst\",\"CampaignSatellite.findFirstOrThrow\",\"CampaignSatellite.findMany\",\"CampaignSatellite.createOne\",\"CampaignSatellite.createMany\",\"CampaignSatellite.createManyAndReturn\",\"CampaignSatellite.updateOne\",\"CampaignSatellite.updateMany\",\"CampaignSatellite.updateManyAndReturn\",\"CampaignSatellite.upsertOne\",\"CampaignSatellite.deleteOne\",\"CampaignSatellite.deleteMany\",\"CampaignSatellite.groupBy\",\"CampaignSatellite.aggregate\",\"DailySchedule.findUnique\",\"DailySchedule.findUniqueOrThrow\",\"DailySchedule.findFirst\",\"DailySchedule.findFirstOrThrow\",\"DailySchedule.findMany\",\"DailySchedule.createOne\",\"DailySchedule.createMany\",\"DailySchedule.createManyAndReturn\",\"DailySchedule.updateOne\",\"DailySchedule.updateMany\",\"DailySchedule.updateManyAndReturn\",\"DailySchedule.upsertOne\",\"DailySchedule.deleteOne\",\"DailySchedule.deleteMany\",\"DailySchedule.groupBy\",\"DailySchedule.aggregate\",\"DailyStat.findUnique\",\"DailyStat.findUniqueOrThrow\",\"DailyStat.findFirst\",\"DailyStat.findFirstOrThrow\",\"DailyStat.findMany\",\"DailyStat.createOne\",\"DailyStat.createMany\",\"DailyStat.createManyAndReturn\",\"DailyStat.updateOne\",\"DailyStat.updateMany\",\"DailyStat.updateManyAndReturn\",\"DailyStat.upsertOne\",\"DailyStat.deleteOne\",\"DailyStat.deleteMany\",\"DailyStat.groupBy\",\"DailyStat.aggregate\",\"WarmupLog.findUnique\",\"WarmupLog.findUniqueOrThrow\",\"WarmupLog.findFirst\",\"WarmupLog.findFirstOrThrow\",\"WarmupLog.findMany\",\"WarmupLog.createOne\",\"WarmupLog.createMany\",\"WarmupLog.createManyAndReturn\",\"WarmupLog.updateOne\",\"WarmupLog.updateMany\",\"WarmupLog.updateManyAndReturn\",\"WarmupLog.upsertOne\",\"WarmupLog.deleteOne\",\"WarmupLog.deleteMany\",\"WarmupLog.groupBy\",\"WarmupLog.aggregate\",\"Setting.findUnique\",\"Setting.findUniqueOrThrow\",\"Setting.findFirst\",\"Setting.findFirstOrThrow\",\"Setting.findMany\",\"Setting.createOne\",\"Setting.createMany\",\"Setting.createManyAndReturn\",\"Setting.updateOne\",\"Setting.updateMany\",\"Setting.updateManyAndReturn\",\"Setting.upsertOne\",\"Setting.deleteOne\",\"Setting.deleteMany\",\"Setting.groupBy\",\"Setting.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"key\",\"value\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"campaignId\",\"senderId\",\"receiverId\",\"messageId\",\"inReplyTo\",\"subject\",\"body\",\"WarmupStatus\",\"status\",\"placement\",\"rescuedFromSpam\",\"validationResult\",\"date\",\"dayIndex\",\"plannedSends\",\"plannedReplies\",\"actualSends\",\"actualReplies\",\"spamDetected\",\"spamRescued\",\"replyRateActual\",\"inboxPlacementRate\",\"satelliteMailboxId\",\"weight\",\"active\",\"workspaceId\",\"primaryMailboxId\",\"name\",\"CampaignRecipe\",\"recipe\",\"CampaignStatus\",\"durationDays\",\"minEmailsPerDay\",\"maxEmailsPerDay\",\"replyRatePercent\",\"maintenanceVolumePercent\",\"timezone\",\"sendWindowStart\",\"sendWindowEnd\",\"customSchedule\",\"startedAt\",\"endsAt\",\"currentDay\",\"pausedFromStatus\",\"lastSendAt\",\"email\",\"smtpHost\",\"smtpPort\",\"imapHost\",\"imapPort\",\"username\",\"password\",\"MailboxAuthType\",\"authType\",\"oauthRefreshToken\",\"MailboxRole\",\"role\",\"MailboxProvider\",\"provider\",\"InboxStatus\",\"dailyLimit\",\"currentRamp\",\"industry\",\"senderName\",\"companyName\",\"lastError\",\"errorAt\",\"consecutiveFailures\",\"spamFolderPath\",\"lastSpamRescuedAt\",\"jobName\",\"ranAt\",\"success\",\"message\",\"scheduledAt\",\"SendJobStatus\",\"idempotencyKey\",\"processedAt\",\"errorMessage\",\"every\",\"some\",\"none\",\"campaignId_date\",\"campaignId_dayIndex\",\"campaignId_satelliteMailboxId\",\"workspaceId_email\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "oQVeoAEJEwAA1wIAIBQAANgCACC9AQAA1gIAML4BAAAwABC_AQAA1gIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh6wEBAAAAAQEAAAABACAiAwAA3wIAIA8AAOUCACAQAADlAgAgEQAA2AIAIBIAAOECACC9AQAA9AIAML4BAAADABC_AQAA9AIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwICANwCACGUAgEA0AIAIZUCQADdAgAhDAMAANgEACAPAADeBAAgEAAA3gQAIBEAANcEACASAADaBAAghgIAAP4CACCPAgAA_gIAIJACAAD-AgAgkQIAAP4CACCSAgAA_gIAIJQCAAD-AgAglQIAAP4CACAjAwAA3wIAIA8AAOUCACAQAADlAgAgEQAA2AIAIBIAAOECACC9AQAA9AIAML4BAAADABC_AQAA9AIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh2AEAAPgCjAIi6QEBAJ0CACH9AQEAnQIAIf4BAQCdAgAh_wECANwCACGAAgEAnQIAIYECAgDcAgAhggIBAJ0CACGDAgEAnQIAIYUCAAD1AoUCIoYCAQDQAgAhiAIAAPYCiAIiigIAAPcCigIijAICANwCACGNAgIA3AIAIY4CAQCdAgAhjwIBANACACGQAgEA0AIAIZECAQDQAgAhkgJAAN0CACGTAgIA3AIAIZQCAQDQAgAhlQJAAN0CACGlAgAA8wIAIAMAAAADACABAAAEADACAAAFACAUBQAA8gIAIA0AAOACACAOAADgAgAgvQEAAPACADC-AQAABwAQvwEAAPACADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEA0AIAIdEBAQCdAgAh0gEBAJ0CACHTAQEA0AIAIdQBAQDQAgAh1QEBAJ0CACHWAQEAnQIAIdgBAADxAtgBItkBAQDQAgAh2gEgAM8CACHbAQEA0AIAIQgFAADfBAAgDQAA2QQAIA4AANkEACDQAQAA_gIAINMBAAD-AgAg1AEAAP4CACDZAQAA_gIAINsBAAD-AgAgFAUAAPICACANAADgAgAgDgAA4AIAIL0BAADwAgAwvgEAAAcAEL8BAADwAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEA0AIAIdEBAQCdAgAh0gEBAJ0CACHTAQEA0AIAIdQBAQDQAgAh1QEBAJ0CACHWAQEAnQIAIdgBAADxAtgBItkBAQDQAgAh2gEgAM8CACHbAQEA0AIAIQMAAAAHACABAAAIADACAAAJACAgAwAA3wIAIAQAAOACACAHAADhAgAgCAAA4gIAIAkAAOMCACAKAADkAgAgCwAA5QIAIL0BAADZAgAwvgEAAAsAEL8BAADZAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEBAAAACwAgDAUAAOgCACAGAADgAgAgvQEAAO8CADC-AQAADQAQvwEAAO8CADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIeYBAQCdAgAh5wECANwCACHoASAAzwIAIQIFAADfBAAgBgAA2QQAIA0FAADoAgAgBgAA4AIAIL0BAADvAgAwvgEAAA0AEL8BAADvAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIeYBAQCdAgAh5wECANwCACHoASAAzwIAIaQCAADuAgAgAwAAAA0AIAEAAA4AMAIAAA8AIBAFAADoAgAgvQEAAO0CADC-AQAAEQAQvwEAAO0CADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQADdAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACECBQAA3wQAINwBAAD-AgAgEQUAAOgCACC9AQAA7QIAML4BAAARABC_AQAA7QIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAA3QIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAhowIAAOwCACADAAAAEQAgAQAAEgAwAgAAEwAgEgUAAOgCACC9AQAA6gIAML4BAAAVABC_AQAA6gIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh3AFAAJ4CACHdAQIA3AIAId4BAgDcAgAh3wECANwCACHgAQIA3AIAIeEBAgDcAgAh4gECANwCACHjAQIA3AIAIeQBCADrAgAh5QEIAOsCACEDBQAA3wQAIOQBAAD-AgAg5QEAAP4CACATBQAA6AIAIL0BAADqAgAwvgEAABUAEL8BAADqAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQACeAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACHkAQgA6wIAIeUBCADrAgAhogIAAOkCACADAAAAFQAgAQAAFgAwAgAAFwAgDQUAAOgCACC9AQAA5gIAML4BAAAZABC_AQAA5gIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh2AEAAOcCnAIimgJAAJ4CACGcAgEAnQIAIZ0CQADdAgAhngIBANACACEDBQAA3wQAIJ0CAAD-AgAgngIAAP4CACANBQAA6AIAIL0BAADmAgAwvgEAABkAEL8BAADmAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApwCIpoCQACeAgAhnAIBAAAAAZ0CQADdAgAhngIBANACACEDAAAAGQAgAQAAGgAwAgAAGwAgAwAAAAcAIAEAAAgAMAIAAAkAIAEAAAANACABAAAAEQAgAQAAABUAIAEAAAAZACABAAAABwAgAwAAAAcAIAEAAAgAMAIAAAkAIAwDAADYBAAgBAAA2QQAIAcAANoEACAIAADbBAAgCQAA3AQAIAoAAN0EACALAADeBAAg9wEAAP4CACD4AQAA_gIAIPkBAAD-AgAg-wEAAP4CACD8AQAA_gIAICADAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdgBAADbAu8BIukBAQCdAgAh6gEBAJ0CACHrAQEAnQIAIe0BAADaAu0BIu8BAgDcAgAh8AECANwCACHxAQIA3AIAIfIBAgDcAgAh8wECANwCACH0AQEAnQIAIfUBAQCdAgAh9gEBAJ0CACH3AQEA0AIAIfgBQADdAgAh-QFAAN0CACH6AQIA3AIAIfsBAADeAu8BI_wBQADdAgAhAwAAAAsAIAEAACQAMAIAACUAIAMAAAANACABAAAOADACAAAPACABAAAABwAgAQAAAAcAIAEAAAALACABAAAADQAgAwAAAAsAIAEAACQAMAIAACUAIAEAAAADACABAAAACwAgAQAAAAEAIAkTAADXAgAgFAAA2AIAIL0BAADWAgAwvgEAADAAEL8BAADWAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh6wEBAJ0CACECEwAA1gQAIBQAANcEACADAAAAMAAgAQAAMQAwAgAAAQAgAwAAADAAIAEAADEAMAIAAAEAIAMAAAAwACABAAAxADACAAABACAGEwAA1AQAIBQAANUEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHrAQEAAAABARoAADUAIATAAQEAAAABwwFAAAAAAcQBQAAAAAHrAQEAAAABARoAADcAMAEaAAA3ADAGEwAAvQQAIBQAAL4EACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHrAQEA_AIAIQIAAAABACAaAAA6ACAEwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh6wEBAPwCACECAAAAMAAgGgAAPAAgAgAAADAAIBoAADwAIAMAAAABACAhAAA1ACAiAAA6ACABAAAAAQAgAQAAADAAIAMMAAC6BAAgJwAAvAQAICgAALsEACAHvQEAANUCADC-AQAAQwAQvwEAANUCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHrAQEAlQIAIQMAAAAwACABAABCADAmAABDACADAAAAMAAgAQAAMQAwAgAAAQAgAQAAABsAIAEAAAAbACADAAAAGQAgAQAAGgAwAgAAGwAgAwAAABkAIAEAABoAMAIAABsAIAMAAAAZACABAAAaADACAAAbACAKBQAAuQQAIMABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHYAQAAAJwCApoCQAAAAAGcAgEAAAABnQJAAAAAAZ4CAQAAAAEBGgAASwAgCcABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHYAQAAAJwCApoCQAAAAAGcAgEAAAABnQJAAAAAAZ4CAQAAAAEBGgAATQAwARoAAE0AMAoFAAC4BAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHYAQAAygOcAiKaAkAA_QIAIZwCAQD8AgAhnQJAAJkDACGeAgEAggMAIQIAAAAbACAaAABQACAJwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHYAQAAygOcAiKaAkAA_QIAIZwCAQD8AgAhnQJAAJkDACGeAgEAggMAIQIAAAAZACAaAABSACACAAAAGQAgGgAAUgAgAwAAABsAICEAAEsAICIAAFAAIAEAAAAbACABAAAAGQAgBQwAALUEACAnAAC3BAAgKAAAtgQAIJ0CAAD-AgAgngIAAP4CACAMvQEAANECADC-AQAAWQAQvwEAANECADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIdgBAADSApwCIpoCQACWAgAhnAIBAJUCACGdAkAAsgIAIZ4CAQCgAgAhAwAAABkAIAEAAFgAMCYAAFkAIAMAAAAZACABAAAaADACAAAbACAIvQEAAM4CADC-AQAAXwAQvwEAAM4CADDAAQEAAAABlgIBAJ0CACGXAkAAngIAIZgCIADPAgAhmQIBANACACEBAAAAXAAgAQAAAFwAIAi9AQAAzgIAML4BAABfABC_AQAAzgIAMMABAQCdAgAhlgIBAJ0CACGXAkAAngIAIZgCIADPAgAhmQIBANACACEBmQIAAP4CACADAAAAXwAgAQAAYAAwAgAAXAAgAwAAAF8AIAEAAGAAMAIAAFwAIAMAAABfACABAABgADACAABcACAFwAEBAAAAAZYCAQAAAAGXAkAAAAABmAIgAAAAAZkCAQAAAAEBGgAAZAAgBcABAQAAAAGWAgEAAAABlwJAAAAAAZgCIAAAAAGZAgEAAAABARoAAGYAMAEaAABmADAFwAEBAPwCACGWAgEA_AIAIZcCQAD9AgAhmAIgAIQDACGZAgEAggMAIQIAAABcACAaAABpACAFwAEBAPwCACGWAgEA_AIAIZcCQAD9AgAhmAIgAIQDACGZAgEAggMAIQIAAABfACAaAABrACACAAAAXwAgGgAAawAgAwAAAFwAICEAAGQAICIAAGkAIAEAAABcACABAAAAXwAgBAwAALIEACAnAAC0BAAgKAAAswQAIJkCAAD-AgAgCL0BAADNAgAwvgEAAHIAEL8BAADNAgAwwAEBAJUCACGWAgEAlQIAIZcCQACWAgAhmAIgAKICACGZAgEAoAIAIQMAAABfACABAABxADAmAAByACADAAAAXwAgAQAAYAAwAgAAXAAgAQAAAAUAIAEAAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACAfAwAArQQAIA8AAK4EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgIAAAABlAIBAAAAAZUCQAAAAAEBGgAAegAgGsABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAjAIC6QEBAAAAAf0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAgAAAAGUAgEAAAABlQJAAAAAAQEaAAB8ADABGgAAfAAwHwMAAIEEACAPAACCBAAgEAAAgwQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgIAkAMAIZQCAQCCAwAhlQJAAJkDACECAAAABQAgGgAAfwAgGsABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwICAJADACGUAgEAggMAIZUCQACZAwAhAgAAAAMAIBoAAIEBACACAAAAAwAgGgAAgQEAIAMAAAAFACAhAAB6ACAiAAB_ACABAAAABQAgAQAAAAMAIAwMAAD4AwAgJwAA-wMAICgAAPoDACBZAAD5AwAgWgAA_AMAIIYCAAD-AgAgjwIAAP4CACCQAgAA_gIAIJECAAD-AgAgkgIAAP4CACCUAgAA_gIAIJUCAAD-AgAgHb0BAADAAgAwvgEAAIgBABC_AQAAwAIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAADEAowCIukBAQCVAgAh_QEBAJUCACH-AQEAlQIAIf8BAgCrAgAhgAIBAJUCACGBAgIAqwIAIYICAQCVAgAhgwIBAJUCACGFAgAAwQKFAiKGAgEAoAIAIYgCAADCAogCIooCAADDAooCIowCAgCrAgAhjQICAKsCACGOAgEAlQIAIY8CAQCgAgAhkAIBAKACACGRAgEAoAIAIZICQACyAgAhkwICAKsCACGUAgEAoAIAIZUCQACyAgAhAwAAAAMAIAEAAIcBADAmAACIAQAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAlACABAAAAJQAgAwAAAAsAIAEAACQAMAIAACUAIAMAAAALACABAAAkADACAAAlACADAAAACwAgAQAAJAAwAgAAJQAgHQMAAPEDACAEAADyAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABARoAAJABACAWwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6gEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQEaAACSAQAwARoAAJIBADAdAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhAgAAACUAIBoAAJUBACAWwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACECAAAACwAgGgAAlwEAIAIAAAALACAaAACXAQAgAwAAACUAICEAAJABACAiAACVAQAgAQAAACUAIAEAAAALACAKDAAApQMAICcAAKgDACAoAACnAwAgWQAApgMAIFoAAKkDACD3AQAA_gIAIPgBAAD-AgAg-QEAAP4CACD7AQAA_gIAIPwBAAD-AgAgGb0BAAC2AgAwvgEAAJ4BABC_AQAAtgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAAC4Au8BIukBAQCVAgAh6gEBAJUCACHrAQEAlQIAIe0BAAC3Au0BIu8BAgCrAgAh8AECAKsCACHxAQIAqwIAIfIBAgCrAgAh8wECAKsCACH0AQEAlQIAIfUBAQCVAgAh9gEBAJUCACH3AQEAoAIAIfgBQACyAgAh-QFAALICACH6AQIAqwIAIfsBAAC5Au8BI_wBQACyAgAhAwAAAAsAIAEAAJ0BADAmAACeAQAgAwAAAAsAIAEAACQAMAIAACUAIAEAAAAPACABAAAADwAgAwAAAA0AIAEAAA4AMAIAAA8AIAMAAAANACABAAAOADACAAAPACADAAAADQAgAQAADgAwAgAADwAgCQUAAKMDACAGAACkAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAeYBAQAAAAHnAQIAAAAB6AEgAAAAAQEaAACmAQAgB8ABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHmAQEAAAAB5wECAAAAAegBIAAAAAEBGgAAqAEAMAEaAACoAQAwCQUAAKEDACAGAACiAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHmAQEA_AIAIecBAgCQAwAh6AEgAIQDACECAAAADwAgGgAAqwEAIAfAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEA_AIAIeYBAQD8AgAh5wECAJADACHoASAAhAMAIQIAAAANACAaAACtAQAgAgAAAA0AIBoAAK0BACADAAAADwAgIQAApgEAICIAAKsBACABAAAADwAgAQAAAA0AIAUMAACcAwAgJwAAnwMAICgAAJ4DACBZAACdAwAgWgAAoAMAIAq9AQAAtQIAML4BAAC0AQAQvwEAALUCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIeYBAQCVAgAh5wECAKsCACHoASAAogIAIQMAAAANACABAACzAQAwJgAAtAEAIAMAAAANACABAAAOADACAAAPACABAAAAEwAgAQAAABMAIAMAAAARACABAAASADACAAATACADAAAAEQAgAQAAEgAwAgAAEwAgAwAAABEAIAEAABIAMAIAABMAIA0FAACbAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAABARoAALwBACAMwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAABARoAAL4BADABGgAAvgEAMA0FAACaAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAAmQMAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAhAgAAABMAIBoAAMEBACAMwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAAmQMAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAhAgAAABEAIBoAAMMBACACAAAAEQAgGgAAwwEAIAMAAAATACAhAAC8AQAgIgAAwQEAIAEAAAATACABAAAAEQAgBgwAAJQDACAnAACXAwAgKAAAlgMAIFkAAJUDACBaAACYAwAg3AEAAP4CACAPvQEAALECADC-AQAAygEAEL8BAACxAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh0AEBAJUCACHcAUAAsgIAId0BAgCrAgAh3gECAKsCACHfAQIAqwIAIeABAgCrAgAh4QECAKsCACHiAQIAqwIAIeMBAgCrAgAhAwAAABEAIAEAAMkBADAmAADKAQAgAwAAABEAIAEAABIAMAIAABMAIAEAAAAXACABAAAAFwAgAwAAABUAIAEAABYAMAIAABcAIAMAAAAVACABAAAWADACAAAXACADAAAAFQAgAQAAFgAwAgAAFwAgDwUAAJMDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAHkAQgAAAAB5QEIAAAAAQEaAADSAQAgDsABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAeQBCAAAAAHlAQgAAAABARoAANQBADABGgAA1AEAMA8FAACSAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHcAUAA_QIAId0BAgCQAwAh3gECAJADACHfAQIAkAMAIeABAgCQAwAh4QECAJADACHiAQIAkAMAIeMBAgCQAwAh5AEIAJEDACHlAQgAkQMAIQIAAAAXACAaAADXAQAgDsABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQD8AgAh3AFAAP0CACHdAQIAkAMAId4BAgCQAwAh3wECAJADACHgAQIAkAMAIeEBAgCQAwAh4gECAJADACHjAQIAkAMAIeQBCACRAwAh5QEIAJEDACECAAAAFQAgGgAA2QEAIAIAAAAVACAaAADZAQAgAwAAABcAICEAANIBACAiAADXAQAgAQAAABcAIAEAAAAVACAHDAAAiwMAICcAAI4DACAoAACNAwAgWQAAjAMAIFoAAI8DACDkAQAA_gIAIOUBAAD-AgAgEb0BAACqAgAwvgEAAOABABC_AQAAqgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh3AFAAJYCACHdAQIAqwIAId4BAgCrAgAh3wECAKsCACHgAQIAqwIAIeEBAgCrAgAh4gECAKsCACHjAQIAqwIAIeQBCACsAgAh5QEIAKwCACEDAAAAFQAgAQAA3wEAMCYAAOABACADAAAAFQAgAQAAFgAwAgAAFwAgAQAAAAkAIAEAAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACARBQAAiAMAIA0AAIkDACAOAACKAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABARoAAOgBACAOwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABARoAAOoBADABGgAA6gEAMAEAAAALACARBQAAhQMAIA0AAIYDACAOAACHAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAIIDACHRAQEA_AIAIdIBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACECAAAACQAgGgAA7gEAIA7AAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQIAAAAHACAaAADwAQAgAgAAAAcAIBoAAPABACABAAAACwAgAwAAAAkAICEAAOgBACAiAADuAQAgAQAAAAkAIAEAAAAHACAIDAAA_wIAICcAAIEDACAoAACAAwAg0AEAAP4CACDTAQAA_gIAINQBAAD-AgAg2QEAAP4CACDbAQAA_gIAIBG9AQAAnwIAML4BAAD4AQAQvwEAAJ8CADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAoAIAIdEBAQCVAgAh0gEBAJUCACHTAQEAoAIAIdQBAQCgAgAh1QEBAJUCACHWAQEAlQIAIdgBAAChAtgBItkBAQCgAgAh2gEgAKICACHbAQEAoAIAIQMAAAAHACABAAD3AQAwJgAA-AEAIAMAAAAHACABAAAIADACAAAJACAIvQEAAJwCADC-AQAA_gEAEL8BAACcAgAwwAEBAAAAAcEBAQAAAAHCAQEAnQIAIcMBQACeAgAhxAFAAJ4CACEBAAAA-wEAIAEAAAD7AQAgCL0BAACcAgAwvgEAAP4BABC_AQAAnAIAMMABAQCdAgAhwQEBAJ0CACHCAQEAnQIAIcMBQACeAgAhxAFAAJ4CACEAAwAAAP4BACABAAD_AQAwAgAA-wEAIAMAAAD-AQAgAQAA_wEAMAIAAPsBACADAAAA_gEAIAEAAP8BADACAAD7AQAgBcABAQAAAAHBAQEAAAABwgEBAAAAAcMBQAAAAAHEAUAAAAABARoAAIMCACAFwAEBAAAAAcEBAQAAAAHCAQEAAAABwwFAAAAAAcQBQAAAAAEBGgAAhQIAMAEaAACFAgAwBcABAQD8AgAhwQEBAPwCACHCAQEA_AIAIcMBQAD9AgAhxAFAAP0CACECAAAA-wEAIBoAAIgCACAFwAEBAPwCACHBAQEA_AIAIcIBAQD8AgAhwwFAAP0CACHEAUAA_QIAIQIAAAD-AQAgGgAAigIAIAIAAAD-AQAgGgAAigIAIAMAAAD7AQAgIQAAgwIAICIAAIgCACABAAAA-wEAIAEAAAD-AQAgAwwAAPkCACAnAAD7AgAgKAAA-gIAIAi9AQAAlAIAML4BAACRAgAQvwEAAJQCADDAAQEAlQIAIcEBAQCVAgAhwgEBAJUCACHDAUAAlgIAIcQBQACWAgAhAwAAAP4BACABAACQAgAwJgAAkQIAIAMAAAD-AQAgAQAA_wEAMAIAAPsBACAIvQEAAJQCADC-AQAAkQIAEL8BAACUAgAwwAEBAJUCACHBAQEAlQIAIcIBAQCVAgAhwwFAAJYCACHEAUAAlgIAIQ4MAACYAgAgJwAAmwIAICgAAJsCACDFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJoCACHNAQEAAAABzgEBAAAAAc8BAQAAAAELDAAAmAIAICcAAJkCACAoAACZAgAgxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACXAgAhCwwAAJgCACAnAACZAgAgKAAAmQIAIMUBQAAAAAHGAUAAAAAExwFAAAAABMgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAlwIAIQjFAQIAAAABxgECAAAABMcBAgAAAATIAQIAAAAByQECAAAAAcoBAgAAAAHLAQIAAAABzAECAJgCACEIxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACZAgAhDgwAAJgCACAnAACbAgAgKAAAmwIAIMUBAQAAAAHGAQEAAAAExwEBAAAABMgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEAmgIAIc0BAQAAAAHOAQEAAAABzwEBAAAAAQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJsCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIvQEAAJwCADC-AQAA_gEAEL8BAACcAgAwwAEBAJ0CACHBAQEAnQIAIcIBAQCdAgAhwwFAAJ4CACHEAUAAngIAIQvFAQEAAAABxgEBAAAABMcBAQAAAATIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAJsCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIxQFAAAAAAcYBQAAAAATHAUAAAAAEyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQACZAgAhEb0BAACfAgAwvgEAAPgBABC_AQAAnwIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCgAgAh0QEBAJUCACHSAQEAlQIAIdMBAQCgAgAh1AEBAKACACHVAQEAlQIAIdYBAQCVAgAh2AEAAKEC2AEi2QEBAKACACHaASAAogIAIdsBAQCgAgAhDgwAAKgCACAnAACpAgAgKAAAqQIAIMUBAQAAAAHGAQEAAAAFxwEBAAAABcgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEApwIAIc0BAQAAAAHOAQEAAAABzwEBAAAAAQcMAACYAgAgJwAApgIAICgAAKYCACDFAQAAANgBAsYBAAAA2AEIxwEAAADYAQjMAQAApQLYASIFDAAAmAIAICcAAKQCACAoAACkAgAgxQEgAAAAAcwBIACjAgAhBQwAAJgCACAnAACkAgAgKAAApAIAIMUBIAAAAAHMASAAowIAIQLFASAAAAABzAEgAKQCACEHDAAAmAIAICcAAKYCACAoAACmAgAgxQEAAADYAQLGAQAAANgBCMcBAAAA2AEIzAEAAKUC2AEiBMUBAAAA2AECxgEAAADYAQjHAQAAANgBCMwBAACmAtgBIg4MAACoAgAgJwAAqQIAICgAAKkCACDFAQEAAAABxgEBAAAABccBAQAAAAXIAQEAAAAByQEBAAAAAcoBAQAAAAHLAQEAAAABzAEBAKcCACHNAQEAAAABzgEBAAAAAc8BAQAAAAEIxQECAAAAAcYBAgAAAAXHAQIAAAAFyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCoAgAhC8UBAQAAAAHGAQEAAAAFxwEBAAAABcgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEAqQIAIc0BAQAAAAHOAQEAAAABzwEBAAAAARG9AQAAqgIAML4BAADgAQAQvwEAAKoCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHQAQEAlQIAIdwBQACWAgAh3QECAKsCACHeAQIAqwIAId8BAgCrAgAh4AECAKsCACHhAQIAqwIAIeIBAgCrAgAh4wECAKsCACHkAQgArAIAIeUBCACsAgAhDQwAAJgCACAnAACYAgAgKAAAmAIAIFkAALACACBaAACYAgAgxQECAAAAAcYBAgAAAATHAQIAAAAEyAECAAAAAckBAgAAAAHKAQIAAAABywECAAAAAcwBAgCvAgAhDQwAAKgCACAnAACuAgAgKAAArgIAIFkAAK4CACBaAACuAgAgxQEIAAAAAcYBCAAAAAXHAQgAAAAFyAEIAAAAAckBCAAAAAHKAQgAAAABywEIAAAAAcwBCACtAgAhDQwAAKgCACAnAACuAgAgKAAArgIAIFkAAK4CACBaAACuAgAgxQEIAAAAAcYBCAAAAAXHAQgAAAAFyAEIAAAAAckBCAAAAAHKAQgAAAABywEIAAAAAcwBCACtAgAhCMUBCAAAAAHGAQgAAAAFxwEIAAAABcgBCAAAAAHJAQgAAAABygEIAAAAAcsBCAAAAAHMAQgArgIAIQ0MAACYAgAgJwAAmAIAICgAAJgCACBZAACwAgAgWgAAmAIAIMUBAgAAAAHGAQIAAAAExwECAAAABMgBAgAAAAHJAQIAAAABygECAAAAAcsBAgAAAAHMAQIArwIAIQjFAQgAAAABxgEIAAAABMcBCAAAAATIAQgAAAAByQEIAAAAAcoBCAAAAAHLAQgAAAABzAEIALACACEPvQEAALECADC-AQAAygEAEL8BAACxAgAwwAEBAJUCACHDAUAAlgIAIcQBQACWAgAh0AEBAJUCACHcAUAAsgIAId0BAgCrAgAh3gECAKsCACHfAQIAqwIAIeABAgCrAgAh4QECAKsCACHiAQIAqwIAIeMBAgCrAgAhCwwAAKgCACAnAAC0AgAgKAAAtAIAIMUBQAAAAAHGAUAAAAAFxwFAAAAABcgBQAAAAAHJAUAAAAABygFAAAAAAcsBQAAAAAHMAUAAswIAIQsMAACoAgAgJwAAtAIAICgAALQCACDFAUAAAAABxgFAAAAABccBQAAAAAXIAUAAAAAByQFAAAAAAcoBQAAAAAHLAUAAAAABzAFAALMCACEIxQFAAAAAAcYBQAAAAAXHAUAAAAAFyAFAAAAAAckBQAAAAAHKAUAAAAABywFAAAAAAcwBQAC0AgAhCr0BAAC1AgAwvgEAALQBABC_AQAAtQIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh5gEBAJUCACHnAQIAqwIAIegBIACiAgAhGb0BAAC2AgAwvgEAAJ4BABC_AQAAtgIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAAC4Au8BIukBAQCVAgAh6gEBAJUCACHrAQEAlQIAIe0BAAC3Au0BIu8BAgCrAgAh8AECAKsCACHxAQIAqwIAIfIBAgCrAgAh8wECAKsCACH0AQEAlQIAIfUBAQCVAgAh9gEBAJUCACH3AQEAoAIAIfgBQACyAgAh-QFAALICACH6AQIAqwIAIfsBAAC5Au8BI_wBQACyAgAhBwwAAJgCACAnAAC_AgAgKAAAvwIAIMUBAAAA7QECxgEAAADtAQjHAQAAAO0BCMwBAAC-Au0BIgcMAACYAgAgJwAAvQIAICgAAL0CACDFAQAAAO8BAsYBAAAA7wEIxwEAAADvAQjMAQAAvALvASIHDAAAqAIAICcAALsCACAoAAC7AgAgxQEAAADvAQPGAQAAAO8BCccBAAAA7wEJzAEAALoC7wEjBwwAAKgCACAnAAC7AgAgKAAAuwIAIMUBAAAA7wEDxgEAAADvAQnHAQAAAO8BCcwBAAC6Au8BIwTFAQAAAO8BA8YBAAAA7wEJxwEAAADvAQnMAQAAuwLvASMHDAAAmAIAICcAAL0CACAoAAC9AgAgxQEAAADvAQLGAQAAAO8BCMcBAAAA7wEIzAEAALwC7wEiBMUBAAAA7wECxgEAAADvAQjHAQAAAO8BCMwBAAC9Au8BIgcMAACYAgAgJwAAvwIAICgAAL8CACDFAQAAAO0BAsYBAAAA7QEIxwEAAADtAQjMAQAAvgLtASIExQEAAADtAQLGAQAAAO0BCMcBAAAA7QEIzAEAAL8C7QEiHb0BAADAAgAwvgEAAIgBABC_AQAAwAIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdgBAADEAowCIukBAQCVAgAh_QEBAJUCACH-AQEAlQIAIf8BAgCrAgAhgAIBAJUCACGBAgIAqwIAIYICAQCVAgAhgwIBAJUCACGFAgAAwQKFAiKGAgEAoAIAIYgCAADCAogCIooCAADDAooCIowCAgCrAgAhjQICAKsCACGOAgEAlQIAIY8CAQCgAgAhkAIBAKACACGRAgEAoAIAIZICQACyAgAhkwICAKsCACGUAgEAoAIAIZUCQACyAgAhBwwAAJgCACAnAADMAgAgKAAAzAIAIMUBAAAAhQICxgEAAACFAgjHAQAAAIUCCMwBAADLAoUCIgcMAACYAgAgJwAAygIAICgAAMoCACDFAQAAAIgCAsYBAAAAiAIIxwEAAACIAgjMAQAAyQKIAiIHDAAAmAIAICcAAMgCACAoAADIAgAgxQEAAACKAgLGAQAAAIoCCMcBAAAAigIIzAEAAMcCigIiBwwAAJgCACAnAADGAgAgKAAAxgIAIMUBAAAAjAICxgEAAACMAgjHAQAAAIwCCMwBAADFAowCIgcMAACYAgAgJwAAxgIAICgAAMYCACDFAQAAAIwCAsYBAAAAjAIIxwEAAACMAgjMAQAAxQKMAiIExQEAAACMAgLGAQAAAIwCCMcBAAAAjAIIzAEAAMYCjAIiBwwAAJgCACAnAADIAgAgKAAAyAIAIMUBAAAAigICxgEAAACKAgjHAQAAAIoCCMwBAADHAooCIgTFAQAAAIoCAsYBAAAAigIIxwEAAACKAgjMAQAAyAKKAiIHDAAAmAIAICcAAMoCACAoAADKAgAgxQEAAACIAgLGAQAAAIgCCMcBAAAAiAIIzAEAAMkCiAIiBMUBAAAAiAICxgEAAACIAgjHAQAAAIgCCMwBAADKAogCIgcMAACYAgAgJwAAzAIAICgAAMwCACDFAQAAAIUCAsYBAAAAhQIIxwEAAACFAgjMAQAAywKFAiIExQEAAACFAgLGAQAAAIUCCMcBAAAAhQIIzAEAAMwChQIiCL0BAADNAgAwvgEAAHIAEL8BAADNAgAwwAEBAJUCACGWAgEAlQIAIZcCQACWAgAhmAIgAKICACGZAgEAoAIAIQi9AQAAzgIAML4BAABfABC_AQAAzgIAMMABAQCdAgAhlgIBAJ0CACGXAkAAngIAIZgCIADPAgAhmQIBANACACECxQEgAAAAAcwBIACkAgAhC8UBAQAAAAHGAQEAAAAFxwEBAAAABcgBAQAAAAHJAQEAAAABygEBAAAAAcsBAQAAAAHMAQEAqQIAIc0BAQAAAAHOAQEAAAABzwEBAAAAAQy9AQAA0QIAML4BAABZABC_AQAA0QIAMMABAQCVAgAhwwFAAJYCACHEAUAAlgIAIdABAQCVAgAh2AEAANICnAIimgJAAJYCACGcAgEAlQIAIZ0CQACyAgAhngIBAKACACEHDAAAmAIAICcAANQCACAoAADUAgAgxQEAAACcAgLGAQAAAJwCCMcBAAAAnAIIzAEAANMCnAIiBwwAAJgCACAnAADUAgAgKAAA1AIAIMUBAAAAnAICxgEAAACcAgjHAQAAAJwCCMwBAADTApwCIgTFAQAAAJwCAsYBAAAAnAIIxwEAAACcAgjMAQAA1AKcAiIHvQEAANUCADC-AQAAQwAQvwEAANUCADDAAQEAlQIAIcMBQACWAgAhxAFAAJYCACHrAQEAlQIAIQkTAADXAgAgFAAA2AIAIL0BAADWAgAwvgEAADAAEL8BAADWAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh6wEBAJ0CACEDnwIAAAMAIKACAAADACChAgAAAwAgA58CAAALACCgAgAACwAgoQIAAAsAICADAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHYAQAA2wLvASLpAQEAnQIAIeoBAQCdAgAh6wEBAJ0CACHtAQAA2gLtASLvAQIA3AIAIfABAgDcAgAh8QECANwCACHyAQIA3AIAIfMBAgDcAgAh9AEBAJ0CACH1AQEAnQIAIfYBAQCdAgAh9wEBANACACH4AUAA3QIAIfkBQADdAgAh-gECANwCACH7AQAA3gLvASP8AUAA3QIAIQTFAQAAAO0BAsYBAAAA7QEIxwEAAADtAQjMAQAAvwLtASIExQEAAADvAQLGAQAAAO8BCMcBAAAA7wEIzAEAAL0C7wEiCMUBAgAAAAHGAQIAAAAExwECAAAABMgBAgAAAAHJAQIAAAABygECAAAAAcsBAgAAAAHMAQIAmAIAIQjFAUAAAAABxgFAAAAABccBQAAAAAXIAUAAAAAByQFAAAAAAcoBQAAAAAHLAUAAAAABzAFAALQCACEExQEAAADvAQPGAQAAAO8BCccBAAAA7wEJzAEAALsC7wEjCxMAANcCACAUAADYAgAgvQEAANYCADC-AQAAMAAQvwEAANYCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHrAQEAnQIAIaYCAAAwACCnAgAAMAAgJAMAAN8CACAPAADlAgAgEAAA5QIAIBEAANgCACASAADhAgAgvQEAAPQCADC-AQAAAwAQvwEAAPQCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHYAQAA-AKMAiLpAQEAnQIAIf0BAQCdAgAh_gEBAJ0CACH_AQIA3AIAIYACAQCdAgAhgQICANwCACGCAgEAnQIAIYMCAQCdAgAhhQIAAPUChQIihgIBANACACGIAgAA9gKIAiKKAgAA9wKKAiKMAgIA3AIAIY0CAgDcAgAhjgIBAJ0CACGPAgEA0AIAIZACAQDQAgAhkQIBANACACGSAkAA3QIAIZMCAgDcAgAhlAIBANACACGVAkAA3QIAIaYCAAADACCnAgAAAwAgA58CAAANACCgAgAADQAgoQIAAA0AIAOfAgAAEQAgoAIAABEAIKECAAARACADnwIAABUAIKACAAAVACChAgAAFQAgA58CAAAZACCgAgAAGQAgoQIAABkAIAOfAgAABwAgoAIAAAcAIKECAAAHACANBQAA6AIAIL0BAADmAgAwvgEAABkAEL8BAADmAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHYAQAA5wKcAiKaAkAAngIAIZwCAQCdAgAhnQJAAN0CACGeAgEA0AIAIQTFAQAAAJwCAsYBAAAAnAIIxwEAAACcAgjMAQAA1AKcAiIiAwAA3wIAIAQAAOACACAHAADhAgAgCAAA4gIAIAkAAOMCACAKAADkAgAgCwAA5QIAIL0BAADZAgAwvgEAAAsAEL8BAADZAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACGmAgAACwAgpwIAAAsAIALQAQEAAAAB3AFAAAAAARIFAADoAgAgvQEAAOoCADC-AQAAFQAQvwEAAOoCADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQACeAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACHkAQgA6wIAIeUBCADrAgAhCMUBCAAAAAHGAQgAAAAFxwEIAAAABcgBCAAAAAHJAQgAAAABygEIAAAAAcsBCAAAAAHMAQgArgIAIQLQAQEAAAAB3QECAAAAARAFAADoAgAgvQEAAO0CADC-AQAAEQAQvwEAAO0CADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQADdAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACEC0AEBAAAAAeYBAQAAAAEMBQAA6AIAIAYAAOACACC9AQAA7wIAML4BAAANABC_AQAA7wIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh5gEBAJ0CACHnAQIA3AIAIegBIADPAgAhFAUAAPICACANAADgAgAgDgAA4AIAIL0BAADwAgAwvgEAAAcAEL8BAADwAgAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBANACACHRAQEAnQIAIdIBAQCdAgAh0wEBANACACHUAQEA0AIAIdUBAQCdAgAh1gEBAJ0CACHYAQAA8QLYASLZAQEA0AIAIdoBIADPAgAh2wEBANACACEExQEAAADYAQLGAQAAANgBCMcBAAAA2AEIzAEAAKYC2AEiIgMAAN8CACAEAADgAgAgBwAA4QIAIAgAAOICACAJAADjAgAgCgAA5AIAIAsAAOUCACC9AQAA2QIAML4BAAALABC_AQAA2QIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAADbAu8BIukBAQCdAgAh6gEBAJ0CACHrAQEAnQIAIe0BAADaAu0BIu8BAgDcAgAh8AECANwCACHxAQIA3AIAIfIBAgDcAgAh8wECANwCACH0AQEAnQIAIfUBAQCdAgAh9gEBAJ0CACH3AQEA0AIAIfgBQADdAgAh-QFAAN0CACH6AQIA3AIAIfsBAADeAu8BI_wBQADdAgAhpgIAAAsAIKcCAAALACAC6QEBAAAAAf0BAQAAAAEiAwAA3wIAIA8AAOUCACAQAADlAgAgEQAA2AIAIBIAAOECACC9AQAA9AIAML4BAAADABC_AQAA9AIAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwICANwCACGUAgEA0AIAIZUCQADdAgAhBMUBAAAAhQICxgEAAACFAgjHAQAAAIUCCMwBAADMAoUCIgTFAQAAAIgCAsYBAAAAiAIIxwEAAACIAgjMAQAAygKIAiIExQEAAACKAgLGAQAAAIoCCMcBAAAAigIIzAEAAMgCigIiBMUBAAAAjAICxgEAAACMAgjHAQAAAIwCCMwBAADGAowCIgAAAAGrAgEAAAABAasCQAAAAAEAAAAAAasCAQAAAAEBqwIAAADYAQIBqwIgAAAAAQchAACXBQAgIgAAoAUAIKgCAACYBQAgqQIAAJ8FACCsAgAACwAgrQIAAAsAIK4CAAAlACAFIQAAlQUAICIAAJ0FACCoAgAAlgUAIKkCAACcBQAgrgIAAAUAIAUhAACTBQAgIgAAmgUAIKgCAACUBQAgqQIAAJkFACCuAgAABQAgAyEAAJcFACCoAgAAmAUAIK4CAAAlACADIQAAlQUAIKgCAACWBQAgrgIAAAUAIAMhAACTBQAgqAIAAJQFACCuAgAABQAgAAAAAAAFqwICAAAAAbECAgAAAAGyAgIAAAABswICAAAAAbQCAgAAAAEFqwIIAAAAAbECCAAAAAGyAggAAAABswIIAAAAAbQCCAAAAAEFIQAAjgUAICIAAJEFACCoAgAAjwUAIKkCAACQBQAgrgIAACUAIAMhAACOBQAgqAIAAI8FACCuAgAAJQAgAAAAAAABqwJAAAAAAQUhAACJBQAgIgAAjAUAIKgCAACKBQAgqQIAAIsFACCuAgAAJQAgAyEAAIkFACCoAgAAigUAIK4CAAAlACAAAAAAAAUhAACBBQAgIgAAhwUAIKgCAACCBQAgqQIAAIYFACCuAgAAJQAgBSEAAP8EACAiAACEBQAgqAIAAIAFACCpAgAAgwUAIK4CAAAFACADIQAAgQUAIKgCAACCBQAgrgIAACUAIAMhAAD_BAAgqAIAAIAFACCuAgAABQAgAAAAAAABqwIAAADtAQIBqwIAAADvAQIBqwIAAADvAQMFIQAA8gQAICIAAP0EACCoAgAA8wQAIKkCAAD8BAAgrgIAAAEAIAUhAADwBAAgIgAA-gQAIKgCAADxBAAgqQIAAPkEACCuAgAABQAgCyEAAOUDADAiAADqAwAwqAIAAOYDADCpAgAA5wMAMKoCAADoAwAgqwIAAOkDADCsAgAA6QMAMK0CAADpAwAwrgIAAOkDADCvAgAA6wMAMLACAADsAwAwCyEAANkDADAiAADeAwAwqAIAANoDADCpAgAA2wMAMKoCAADcAwAgqwIAAN0DADCsAgAA3QMAMK0CAADdAwAwrgIAAN0DADCvAgAA3wMAMLACAADgAwAwCyEAAM0DADAiAADSAwAwqAIAAM4DADCpAgAAzwMAMKoCAADQAwAgqwIAANEDADCsAgAA0QMAMK0CAADRAwAwrgIAANEDADCvAgAA0wMAMLACAADUAwAwCyEAAMADADAiAADFAwAwqAIAAMEDADCpAgAAwgMAMKoCAADDAwAgqwIAAMQDADCsAgAAxAMAMK0CAADEAwAwrgIAAMQDADCvAgAAxgMAMLACAADHAwAwCyEAALQDADAiAAC5AwAwqAIAALUDADCpAgAAtgMAMKoCAAC3AwAgqwIAALgDADCsAgAAuAMAMK0CAAC4AwAwrgIAALgDADCvAgAAugMAMLACAAC7AwAwDw0AAIkDACAOAACKAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0QEBAAAAAdIBAQAAAAHTAQEAAAAB1AEBAAAAAdUBAQAAAAHWAQEAAAAB2AEAAADYAQLZAQEAAAAB2gEgAAAAAdsBAQAAAAECAAAACQAgIQAAvwMAIAMAAAAJACAhAAC_AwAgIgAAvgMAIAEaAAD4BAAwFAUAAPICACANAADgAgAgDgAA4AIAIL0BAADwAgAwvgEAAAcAEL8BAADwAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEA0AIAIdEBAQCdAgAh0gEBAJ0CACHTAQEA0AIAIdQBAQDQAgAh1QEBAJ0CACHWAQEAnQIAIdgBAADxAtgBItkBAQDQAgAh2gEgAM8CACHbAQEA0AIAIQIAAAAJACAaAAC-AwAgAgAAALwDACAaAAC9AwAgEb0BAAC7AwAwvgEAALwDABC_AQAAuwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhEb0BAAC7AwAwvgEAALwDABC_AQAAuwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQDQAgAh0QEBAJ0CACHSAQEAnQIAIdMBAQDQAgAh1AEBANACACHVAQEAnQIAIdYBAQCdAgAh2AEAAPEC2AEi2QEBANACACHaASAAzwIAIdsBAQDQAgAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8NAACGAwAgDgAAhwMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdEBAQD8AgAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8NAACJAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdEBAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABCMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAnAICmgJAAAAAAZwCAQAAAAGdAkAAAAABngIBAAAAAQIAAAAbACAhAADMAwAgAwAAABsAICEAAMwDACAiAADLAwAgARoAAPcEADANBQAA6AIAIL0BAADmAgAwvgEAABkAEL8BAADmAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApwCIpoCQACeAgAhnAIBAAAAAZ0CQADdAgAhngIBANACACECAAAAGwAgGgAAywMAIAIAAADIAwAgGgAAyQMAIAy9AQAAxwMAML4BAADIAwAQvwEAAMcDADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdgBAADnApwCIpoCQACeAgAhnAIBAJ0CACGdAkAA3QIAIZ4CAQDQAgAhDL0BAADHAwAwvgEAAMgDABC_AQAAxwMAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdABAQCdAgAh2AEAAOcCnAIimgJAAJ4CACGcAgEAnQIAIZ0CQADdAgAhngIBANACACEIwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAMoDnAIimgJAAP0CACGcAgEA_AIAIZ0CQACZAwAhngIBAIIDACEBqwIAAACcAgIIwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAMoDnAIimgJAAP0CACGcAgEA_AIAIZ0CQACZAwAhngIBAIIDACEIwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACcAgKaAkAAAAABnAIBAAAAAZ0CQAAAAAGeAgEAAAABDcABAQAAAAHDAUAAAAABxAFAAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAAB5AEIAAAAAeUBCAAAAAECAAAAFwAgIQAA2AMAIAMAAAAXACAhAADYAwAgIgAA1wMAIAEaAAD2BAAwEwUAAOgCACC9AQAA6gIAML4BAAAVABC_AQAA6gIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAAngIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAh5AEIAOsCACHlAQgA6wIAIaICAADpAgAgAgAAABcAIBoAANcDACACAAAA1QMAIBoAANYDACARvQEAANQDADC-AQAA1QMAEL8BAADUAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAAngIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAh5AEIAOsCACHlAQgA6wIAIRG9AQAA1AMAML4BAADVAwAQvwEAANQDADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQACeAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACHkAQgA6wIAIeUBCADrAgAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQAD9AgAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACHkAQgAkQMAIeUBCACRAwAhDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQAD9AgAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACHkAQgAkQMAIeUBCACRAwAhDcABAQAAAAHDAUAAAAABxAFAAAAAAdwBQAAAAAHdAQIAAAAB3gECAAAAAd8BAgAAAAHgAQIAAAAB4QECAAAAAeIBAgAAAAHjAQIAAAAB5AEIAAAAAeUBCAAAAAELwAEBAAAAAcMBQAAAAAHEAUAAAAAB3AFAAAAAAd0BAgAAAAHeAQIAAAAB3wECAAAAAeABAgAAAAHhAQIAAAAB4gECAAAAAeMBAgAAAAECAAAAEwAgIQAA5AMAIAMAAAATACAhAADkAwAgIgAA4wMAIAEaAAD1BAAwEQUAAOgCACC9AQAA7QIAML4BAAARABC_AQAA7QIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAA3QIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAhowIAAOwCACACAAAAEwAgGgAA4wMAIAIAAADhAwAgGgAA4gMAIA-9AQAA4AMAML4BAADhAwAQvwEAAOADADDAAQEAnQIAIcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIdwBQADdAgAh3QECANwCACHeAQIA3AIAId8BAgDcAgAh4AECANwCACHhAQIA3AIAIeIBAgDcAgAh4wECANwCACEPvQEAAOADADC-AQAA4QMAEL8BAADgAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHcAUAA3QIAId0BAgDcAgAh3gECANwCACHfAQIA3AIAIeABAgDcAgAh4QECANwCACHiAQIA3AIAIeMBAgDcAgAhC8ABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdwBQACZAwAh3QECAJADACHeAQIAkAMAId8BAgCQAwAh4AECAJADACHhAQIAkAMAIeIBAgCQAwAh4wECAJADACELwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh3AFAAJkDACHdAQIAkAMAId4BAgCQAwAh3wECAJADACHgAQIAkAMAIeEBAgCQAwAh4gECAJADACHjAQIAkAMAIQvAAQEAAAABwwFAAAAAAcQBQAAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAQcGAACkAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB5gEBAAAAAecBAgAAAAHoASAAAAABAgAAAA8AICEAAPADACADAAAADwAgIQAA8AMAICIAAO8DACABGgAA9AQAMA0FAADoAgAgBgAA4AIAIL0BAADvAgAwvgEAAA0AEL8BAADvAgAwwAEBAAAAAcMBQACeAgAhxAFAAJ4CACHQAQEAnQIAIeYBAQCdAgAh5wECANwCACHoASAAzwIAIaQCAADuAgAgAgAAAA8AIBoAAO8DACACAAAA7QMAIBoAAO4DACAKvQEAAOwDADC-AQAA7QMAEL8BAADsAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHmAQEAnQIAIecBAgDcAgAh6AEgAM8CACEKvQEAAOwDADC-AQAA7QMAEL8BAADsAwAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh0AEBAJ0CACHmAQEAnQIAIecBAgDcAgAh6AEgAM8CACEGwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh5gEBAPwCACHnAQIAkAMAIegBIACEAwAhBwYAAKIDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHmAQEA_AIAIecBAgCQAwAh6AEgAIQDACEHBgAApAMAIMABAQAAAAHDAUAAAAABxAFAAAAAAeYBAQAAAAHnAQIAAAAB6AEgAAAAAQMhAADyBAAgqAIAAPMEACCuAgAAAQAgAyEAAPAEACCoAgAA8QQAIK4CAAAFACAEIQAA5QMAMKgCAADmAwAwqgIAAOgDACCuAgAA6QMAMAQhAADZAwAwqAIAANoDADCqAgAA3AMAIK4CAADdAwAwBCEAAM0DADCoAgAAzgMAMKoCAADQAwAgrgIAANEDADAEIQAAwAMAMKgCAADBAwAwqgIAAMMDACCuAgAAxAMAMAQhAAC0AwAwqAIAALUDADCqAgAAtwMAIK4CAAC4AwAwAAAAAAABqwIAAACFAgIBqwIAAACIAgIBqwIAAACKAgIBqwIAAACMAgIFIQAA5wQAICIAAO4EACCoAgAA6AQAIKkCAADtBAAgrgIAAAEAIAshAACkBAAwIgAAqAQAMKgCAAClBAAwqQIAAKYEADCqAgAApwQAIKsCAAC4AwAwrAIAALgDADCtAgAAuAMAMK4CAAC4AwAwrwIAAKkEADCwAgAAuwMAMAshAACbBAAwIgAAnwQAMKgCAACcBAAwqQIAAJ0EADCqAgAAngQAIKsCAAC4AwAwrAIAALgDADCtAgAAuAMAMK4CAAC4AwAwrwIAAKAEADCwAgAAuwMAMAshAACPBAAwIgAAlAQAMKgCAACQBAAwqQIAAJEEADCqAgAAkgQAIKsCAACTBAAwrAIAAJMEADCtAgAAkwQAMK4CAACTBAAwrwIAAJUEADCwAgAAlgQAMAshAACGBAAwIgAAigQAMKgCAACHBAAwqQIAAIgEADCqAgAAiQQAIKsCAADpAwAwrAIAAOkDADCtAgAA6QMAMK4CAADpAwAwrwIAAIsEADCwAgAA7AMAMAcFAACjAwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAecBAgAAAAHoASAAAAABAgAAAA8AICEAAI4EACADAAAADwAgIQAAjgQAICIAAI0EACABGgAA7AQAMAIAAAAPACAaAACNBAAgAgAAAO0DACAaAACMBAAgBsABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQD8AgAh5wECAJADACHoASAAhAMAIQcFAAChAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh0AEBAPwCACHnAQIAkAMAIegBIACEAwAhBwUAAKMDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB5wECAAAAAegBIAAAAAEbAwAA8QMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAJoEACADAAAAJQAgIQAAmgQAICIAAJkEACABGgAA6wQAMCADAADfAgAgBAAA4AIAIAcAAOECACAIAADiAgAgCQAA4wIAIAoAAOQCACALAADlAgAgvQEAANkCADC-AQAACwAQvwEAANkCADDAAQEAAAABwwFAAJ4CACHEAUAAngIAIdgBAADbAu8BIukBAQCdAgAh6gEBAJ0CACHrAQEAnQIAIe0BAADaAu0BIu8BAgDcAgAh8AECANwCACHxAQIA3AIAIfIBAgDcAgAh8wECANwCACH0AQEAnQIAIfUBAQCdAgAh9gEBAJ0CACH3AQEA0AIAIfgBQADdAgAh-QFAAN0CACH6AQIA3AIAIfsBAADeAu8BI_wBQADdAgAhAgAAACUAIBoAAJkEACACAAAAlwQAIBoAAJgEACAZvQEAAJYEADC-AQAAlwQAEL8BAACWBAAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEZvQEAAJYEADC-AQAAlwQAEL8BAACWBAAwwAEBAJ0CACHDAUAAngIAIcQBQACeAgAh2AEAANsC7wEi6QEBAJ0CACHqAQEAnQIAIesBAQCdAgAh7QEAANoC7QEi7wECANwCACHwAQIA3AIAIfEBAgDcAgAh8gECANwCACHzAQIA3AIAIfQBAQCdAgAh9QEBAJ0CACH2AQEAnQIAIfcBAQDQAgAh-AFAAN0CACH5AUAA3QIAIfoBAgDcAgAh-wEAAN4C7wEj_AFAAN0CACEVwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhGwMAAK0DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRsDAADxAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAEPBQAAiAMAIA0AAIkDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0QEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQIAAAAJACAhAACjBAAgAwAAAAkAICEAAKMEACAiAACiBAAgARoAAOoEADACAAAACQAgGgAAogQAIAIAAAC8AwAgGgAAoQQAIA3AAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACEPBQAAhQMAIA0AAIYDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHQAQEAggMAIdEBAQD8AgAh0wEBAIIDACHUAQEAggMAIdUBAQD8AgAh1gEBAPwCACHYAQAAgwPYASLZAQEAggMAIdoBIACEAwAh2wEBAIIDACEPBQAAiAMAIA0AAIkDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0QEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQ8FAACIAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABAgAAAAkAICEAAKwEACADAAAACQAgIQAArAQAICIAAKsEACABGgAA6QQAMAIAAAAJACAaAACrBAAgAgAAALwDACAaAACqBAAgDcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQCCAwAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8FAACFAwAgDgAAhwMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdABAQCCAwAh0gEBAPwCACHTAQEAggMAIdQBAQCCAwAh1QEBAPwCACHWAQEA_AIAIdgBAACDA9gBItkBAQCCAwAh2gEgAIQDACHbAQEAggMAIQ8FAACIAwAgDgAAigMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdABAQAAAAHSAQEAAAAB0wEBAAAAAdQBAQAAAAHVAQEAAAAB1gEBAAAAAdgBAAAA2AEC2QEBAAAAAdoBIAAAAAHbAQEAAAABAyEAAOcEACCoAgAA6AQAIK4CAAABACAEIQAApAQAMKgCAAClBAAwqgIAAKcEACCuAgAAuAMAMAQhAACbBAAwqAIAAJwEADCqAgAAngQAIK4CAAC4AwAwBCEAAI8EADCoAgAAkAQAMKoCAACSBAAgrgIAAJMEADAEIQAAhgQAMKgCAACHBAAwqgIAAIkEACCuAgAA6QMAMAAAAAAAAAUhAADiBAAgIgAA5QQAIKgCAADjBAAgqQIAAOQEACCuAgAAJQAgAyEAAOIEACCoAgAA4wQAIK4CAAAlACAAAAALIQAAyAQAMCIAAM0EADCoAgAAyQQAMKkCAADKBAAwqgIAAMsEACCrAgAAzAQAMKwCAADMBAAwrQIAAMwEADCuAgAAzAQAMK8CAADOBAAwsAIAAM8EADALIQAAvwQAMCIAAMMEADCoAgAAwAQAMKkCAADBBAAwqgIAAMIEACCrAgAAkwQAMKwCAACTBAAwrQIAAJMEADCuAgAAkwQAMK8CAADEBAAwsAIAAJYEADAbBAAA8gMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAMcEACADAAAAJQAgIQAAxwQAICIAAMYEACABGgAA4QQAMAIAAAAlACAaAADGBAAgAgAAAJcEACAaAADFBAAgFcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIuoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRsEAACuAwAgBwAArwMAIAgAALADACAJAACxAwAgCgAAsgMAIAsAALMDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEbBAAA8gMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABHQ8AAK4EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAv0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAgAAAAGUAgEAAAABlQJAAAAAAQIAAAAFACAhAADTBAAgAwAAAAUAICEAANMEACAiAADSBAAgARoAAOAEADAjAwAA3wIAIA8AAOUCACAQAADlAgAgEQAA2AIAIBIAAOECACC9AQAA9AIAML4BAAADABC_AQAA9AIAMMABAQAAAAHDAUAAngIAIcQBQACeAgAh2AEAAPgCjAIi6QEBAJ0CACH9AQEAnQIAIf4BAQCdAgAh_wECANwCACGAAgEAnQIAIYECAgDcAgAhggIBAJ0CACGDAgEAnQIAIYUCAAD1AoUCIoYCAQDQAgAhiAIAAPYCiAIiigIAAPcCigIijAICANwCACGNAgIA3AIAIY4CAQCdAgAhjwIBANACACGQAgEA0AIAIZECAQDQAgAhkgJAAN0CACGTAgIA3AIAIZQCAQDQAgAhlQJAAN0CACGlAgAA8wIAIAIAAAAFACAaAADSBAAgAgAAANAEACAaAADRBAAgHb0BAADPBAAwvgEAANAEABC_AQAAzwQAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwICANwCACGUAgEA0AIAIZUCQADdAgAhHb0BAADPBAAwvgEAANAEABC_AQAAzwQAMMABAQCdAgAhwwFAAJ4CACHEAUAAngIAIdgBAAD4AowCIukBAQCdAgAh_QEBAJ0CACH-AQEAnQIAIf8BAgDcAgAhgAIBAJ0CACGBAgIA3AIAIYICAQCdAgAhgwIBAJ0CACGFAgAA9QKFAiKGAgEA0AIAIYgCAAD2AogCIooCAAD3AooCIowCAgDcAgAhjQICANwCACGOAgEAnQIAIY8CAQDQAgAhkAIBANACACGRAgEA0AIAIZICQADdAgAhkwICANwCACGUAgEA0AIAIZUCQADdAgAhGcABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIv0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAgCQAwAhlAIBAIIDACGVAkAAmQMAIR0PAACCBAAgEAAAgwQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwICAJADACGUAgEAggMAIZUCQACZAwAhHQ8AAK4EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAv0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAgAAAAGUAgEAAAABlQJAAAAAAQQhAADIBAAwqAIAAMkEADCqAgAAywQAIK4CAADMBAAwBCEAAL8EADCoAgAAwAQAMKoCAADCBAAgrgIAAJMEADAAAAITAADWBAAgFAAA1wQAIAwDAADYBAAgDwAA3gQAIBAAAN4EACARAADXBAAgEgAA2gQAIIYCAAD-AgAgjwIAAP4CACCQAgAA_gIAIJECAAD-AgAgkgIAAP4CACCUAgAA_gIAIJUCAAD-AgAgAAAAAAAMAwAA2AQAIAQAANkEACAHAADaBAAgCAAA2wQAIAkAANwEACAKAADdBAAgCwAA3gQAIPcBAAD-AgAg-AEAAP4CACD5AQAA_gIAIPsBAAD-AgAg_AEAAP4CACAZwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACMAgL9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgIAAAABlAIBAAAAAZUCQAAAAAEVwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABHAMAAPEDACAEAADyAwAgBwAA8wMAIAgAAPQDACAJAAD1AwAgCwAA9wMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAA7wEC6QEBAAAAAeoBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAECAAAAJQAgIQAA4gQAIAMAAAALACAhAADiBAAgIgAA5gQAIB4AAAALACADAACtAwAgBAAArgMAIAcAAK8DACAIAACwAwAgCQAAsQMAIAsAALMDACAaAADmBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEcAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAkAALEDACALAACzAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEFFAAA1QQAIMABAQAAAAHDAUAAAAABxAFAAAAAAesBAQAAAAECAAAAAQAgIQAA5wQAIA3AAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0gEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQ3AAQEAAAABwwFAAAAAAcQBQAAAAAHQAQEAAAAB0QEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAARXAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAEGwAEBAAAAAcMBQAAAAAHEAUAAAAAB0AEBAAAAAecBAgAAAAHoASAAAAABAwAAADAAICEAAOcEACAiAADvBAAgBwAAADAAIBQAAL4EACAaAADvBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh6wEBAPwCACEFFAAAvgQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIesBAQD8AgAhHgMAAK0EACAPAACuBAAgEAAArwQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgIAAAABlAIBAAAAAZUCQAAAAAECAAAABQAgIQAA8AQAIAUTAADUBAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB6wEBAAAAAQIAAAABACAhAADyBAAgBsABAQAAAAHDAUAAAAABxAFAAAAAAeYBAQAAAAHnAQIAAAAB6AEgAAAAAQvAAQEAAAABwwFAAAAAAcQBQAAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAQ3AAQEAAAABwwFAAAAAAcQBQAAAAAHcAUAAAAAB3QECAAAAAd4BAgAAAAHfAQIAAAAB4AECAAAAAeEBAgAAAAHiAQIAAAAB4wECAAAAAeQBCAAAAAHlAQgAAAABCMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAnAICmgJAAAAAAZwCAQAAAAGdAkAAAAABngIBAAAAAQ3AAQEAAAABwwFAAAAAAcQBQAAAAAHRAQEAAAAB0gEBAAAAAdMBAQAAAAHUAQEAAAAB1QEBAAAAAdYBAQAAAAHYAQAAANgBAtkBAQAAAAHaASAAAAAB2wEBAAAAAQMAAAADACAhAADwBAAgIgAA-wQAICAAAAADACADAACBBAAgDwAAggQAIBAAAIMEACASAACFBAAgGgAA-wQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwICAJADACGUAgEAggMAIZUCQACZAwAhHgMAAIEEACAPAACCBAAgEAAAgwQAIBIAAIUEACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAgCQAwAhlAIBAIIDACGVAkAAmQMAIQMAAAAwACAhAADyBAAgIgAA_gQAIAcAAAAwACATAAC9BAAgGgAA_gQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIesBAQD8AgAhBRMAAL0EACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHrAQEA_AIAIR4DAACtBAAgDwAArgQAIBAAAK8EACARAACwBAAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAACMAgLpAQEAAAAB_QEBAAAAAf4BAQAAAAH_AQIAAAABgAIBAAAAAYECAgAAAAGCAgEAAAABgwIBAAAAAYUCAAAAhQIChgIBAAAAAYgCAAAAiAICigIAAACKAgKMAgIAAAABjQICAAAAAY4CAQAAAAGPAgEAAAABkAIBAAAAAZECAQAAAAGSAkAAAAABkwICAAAAAZQCAQAAAAGVAkAAAAABAgAAAAUAICEAAP8EACAcAwAA8QMAIAQAAPIDACAIAAD0AwAgCQAA9QMAIAoAAPYDACALAAD3AwAgwAEBAAAAAcMBQAAAAAHEAUAAAAAB2AEAAADvAQLpAQEAAAAB6gEBAAAAAesBAQAAAAHtAQAAAO0BAu8BAgAAAAHwAQIAAAAB8QECAAAAAfIBAgAAAAHzAQIAAAAB9AEBAAAAAfUBAQAAAAH2AQEAAAAB9wEBAAAAAfgBQAAAAAH5AUAAAAAB-gECAAAAAfsBAAAA7wED_AFAAAAAAQIAAAAlACAhAACBBQAgAwAAAAMAICEAAP8EACAiAACFBQAgIAAAAAMAIAMAAIEEACAPAACCBAAgEAAAgwQAIBEAAIQEACAaAACFBQAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgIAkAMAIZQCAQCCAwAhlQJAAJkDACEeAwAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACABIwCIukBAQD8AgAh_QEBAPwCACH-AQEA_AIAIf8BAgCQAwAhgAIBAPwCACGBAgIAkAMAIYICAQD8AgAhgwIBAPwCACGFAgAA_QOFAiKGAgEAggMAIYgCAAD-A4gCIooCAAD_A4oCIowCAgCQAwAhjQICAJADACGOAgEA_AIAIY8CAQCCAwAhkAIBAIIDACGRAgEAggMAIZICQACZAwAhkwICAJADACGUAgEAggMAIZUCQACZAwAhAwAAAAsAICEAAIEFACAiAACIBQAgHgAAAAsAIAMAAK0DACAEAACuAwAgCAAAsAMAIAkAALEDACAKAACyAwAgCwAAswMAIBoAAIgFACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRwDAACtAwAgBAAArgMAIAgAALADACAJAACxAwAgCgAAsgMAIAsAALMDACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAqwPvASLpAQEA_AIAIeoBAQD8AgAh6wEBAPwCACHtAQAAqgPtASLvAQIAkAMAIfABAgCQAwAh8QECAJADACHyAQIAkAMAIfMBAgCQAwAh9AEBAPwCACH1AQEA_AIAIfYBAQD8AgAh9wEBAIIDACH4AUAAmQMAIfkBQACZAwAh-gECAJADACH7AQAArAPvASP8AUAAmQMAIRwDAADxAwAgBAAA8gMAIAcAAPMDACAJAAD1AwAgCgAA9gMAIAsAAPcDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAIkFACADAAAACwAgIQAAiQUAICIAAI0FACAeAAAACwAgAwAArQMAIAQAAK4DACAHAACvAwAgCQAAsQMAIAoAALIDACALAACzAwAgGgAAjQUAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHAMAAK0DACAEAACuAwAgBwAArwMAIAkAALEDACAKAACyAwAgCwAAswMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHAMAAPEDACAEAADyAwAgBwAA8wMAIAgAAPQDACAKAAD2AwAgCwAA9wMAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAA7wEC6QEBAAAAAeoBAQAAAAHrAQEAAAAB7QEAAADtAQLvAQIAAAAB8AECAAAAAfEBAgAAAAHyAQIAAAAB8wECAAAAAfQBAQAAAAH1AQEAAAAB9gEBAAAAAfcBAQAAAAH4AUAAAAAB-QFAAAAAAfoBAgAAAAH7AQAAAO8BA_wBQAAAAAECAAAAJQAgIQAAjgUAIAMAAAALACAhAACOBQAgIgAAkgUAIB4AAAALACADAACtAwAgBAAArgMAIAcAAK8DACAIAACwAwAgCgAAsgMAIAsAALMDACAaAACSBQAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEcAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAoAALIDACALAACzAwAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAKsD7wEi6QEBAPwCACHqAQEA_AIAIesBAQD8AgAh7QEAAKoD7QEi7wECAJADACHwAQIAkAMAIfEBAgCQAwAh8gECAJADACHzAQIAkAMAIfQBAQD8AgAh9QEBAPwCACH2AQEA_AIAIfcBAQCCAwAh-AFAAJkDACH5AUAAmQMAIfoBAgCQAwAh-wEAAKwD7wEj_AFAAJkDACEeAwAArQQAIA8AAK4EACARAACwBAAgEgAAsQQAIMABAQAAAAHDAUAAAAABxAFAAAAAAdgBAAAAjAIC6QEBAAAAAf0BAQAAAAH-AQEAAAAB_wECAAAAAYACAQAAAAGBAgIAAAABggIBAAAAAYMCAQAAAAGFAgAAAIUCAoYCAQAAAAGIAgAAAIgCAooCAAAAigICjAICAAAAAY0CAgAAAAGOAgEAAAABjwIBAAAAAZACAQAAAAGRAgEAAAABkgJAAAAAAZMCAgAAAAGUAgEAAAABlQJAAAAAAQIAAAAFACAhAACTBQAgHgMAAK0EACAQAACvBAAgEQAAsAQAIBIAALEEACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAIwCAukBAQAAAAH9AQEAAAAB_gEBAAAAAf8BAgAAAAGAAgEAAAABgQICAAAAAYICAQAAAAGDAgEAAAABhQIAAACFAgKGAgEAAAABiAIAAACIAgKKAgAAAIoCAowCAgAAAAGNAgIAAAABjgIBAAAAAY8CAQAAAAGQAgEAAAABkQIBAAAAAZICQAAAAAGTAgIAAAABlAIBAAAAAZUCQAAAAAECAAAABQAgIQAAlQUAIBwDAADxAwAgBAAA8gMAIAcAAPMDACAIAAD0AwAgCQAA9QMAIAoAAPYDACDAAQEAAAABwwFAAAAAAcQBQAAAAAHYAQAAAO8BAukBAQAAAAHqAQEAAAAB6wEBAAAAAe0BAAAA7QEC7wECAAAAAfABAgAAAAHxAQIAAAAB8gECAAAAAfMBAgAAAAH0AQEAAAAB9QEBAAAAAfYBAQAAAAH3AQEAAAAB-AFAAAAAAfkBQAAAAAH6AQIAAAAB-wEAAADvAQP8AUAAAAABAgAAACUAICEAAJcFACADAAAAAwAgIQAAkwUAICIAAJsFACAgAAAAAwAgAwAAgQQAIA8AAIIEACARAACEBAAgEgAAhQQAIBoAAJsFACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAgCQAwAhlAIBAIIDACGVAkAAmQMAIR4DAACBBAAgDwAAggQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgIAkAMAIZQCAQCCAwAhlQJAAJkDACEDAAAAAwAgIQAAlQUAICIAAJ4FACAgAAAAAwAgAwAAgQQAIBAAAIMEACARAACEBAAgEgAAhQQAIBoAAJ4FACDAAQEA_AIAIcMBQAD9AgAhxAFAAP0CACHYAQAAgASMAiLpAQEA_AIAIf0BAQD8AgAh_gEBAPwCACH_AQIAkAMAIYACAQD8AgAhgQICAJADACGCAgEA_AIAIYMCAQD8AgAhhQIAAP0DhQIihgIBAIIDACGIAgAA_gOIAiKKAgAA_wOKAiKMAgIAkAMAIY0CAgCQAwAhjgIBAPwCACGPAgEAggMAIZACAQCCAwAhkQIBAIIDACGSAkAAmQMAIZMCAgCQAwAhlAIBAIIDACGVAkAAmQMAIR4DAACBBAAgEAAAgwQAIBEAAIQEACASAACFBAAgwAEBAPwCACHDAUAA_QIAIcQBQAD9AgAh2AEAAIAEjAIi6QEBAPwCACH9AQEA_AIAIf4BAQD8AgAh_wECAJADACGAAgEA_AIAIYECAgCQAwAhggIBAPwCACGDAgEA_AIAIYUCAAD9A4UCIoYCAQCCAwAhiAIAAP4DiAIiigIAAP8DigIijAICAJADACGNAgIAkAMAIY4CAQD8AgAhjwIBAIIDACGQAgEAggMAIZECAQCCAwAhkgJAAJkDACGTAgIAkAMAIZQCAQCCAwAhlQJAAJkDACEDAAAACwAgIQAAlwUAICIAAKEFACAeAAAACwAgAwAArQMAIAQAAK4DACAHAACvAwAgCAAAsAMAIAkAALEDACAKAACyAwAgGgAAoQUAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhHAMAAK0DACAEAACuAwAgBwAArwMAIAgAALADACAJAACxAwAgCgAAsgMAIMABAQD8AgAhwwFAAP0CACHEAUAA_QIAIdgBAACrA-8BIukBAQD8AgAh6gEBAPwCACHrAQEA_AIAIe0BAACqA-0BIu8BAgCQAwAh8AECAJADACHxAQIAkAMAIfIBAgCQAwAh8wECAJADACH0AQEA_AIAIfUBAQD8AgAh9gEBAPwCACH3AQEAggMAIfgBQACZAwAh-QFAAJkDACH6AQIAkAMAIfsBAACsA-8BI_wBQACZAwAhAwwACxMGAhQsBAYDAAEMAAoPCgMQIwMRJgQSJwUDBQwEDQACDgACCAMAAQQAAgcQBQgUBgkYBwocCAsdAwwACQIFAAQGAAIBBQAEAQUABAEFAAQFBx4ACB8ACSAACiEACyIABA8oABApABEqABIrAAITLQAULgAAAAADDAAQJwARKAASAAAAAwwAECcAESgAEgEFAAQBBQAEAwwAFycAGCgAGQAAAAMMABcnABgoABkAAAADDAAfJwAgKAAhAAAAAwwAHycAICgAIQEDAAEBAwABBQwAJicAKSgAKlkAJ1oAKAAAAAAABQwAJicAKSgAKlkAJ1oAKAIDAAEEAAICAwABBAACBQwALycAMigAM1kAMFoAMQAAAAAABQwALycAMigAM1kAMFoAMQIFAAQGAAICBQAEBgACBQwAOCcAOygAPFkAOVoAOgAAAAAABQwAOCcAOygAPFkAOVoAOgEFAAQBBQAEBQwAQScARCgARVkAQloAQwAAAAAABQwAQScARCgARVkAQloAQwEFAAQBBQAEBQwASicATSgATlkAS1oATAAAAAAABQwASicATSgATlkAS1oATAMF7QEEDQACDgACAwXzAQQNAAIOAAIDDABTJwBUKABVAAAAAwwAUycAVCgAVQAAAAMMAFsnAFwoAF0AAAADDABbJwBcKABdFQIBFi8BFzIBGDMBGTQBGzYBHDgMHTkNHjsBHz0MID4OIz8BJEABJUEMKUQPKkUTK0YILEcILUgILkkIL0oIMEwIMU4MMk8UM1EINFMMNVQVNlUIN1YIOFcMOVoWOlsaO10bPF4bPWEbPmIbP2MbQGUbQWcMQmgcQ2obRGwMRW0dRm4bR28bSHAMSXMeSnQiS3UCTHYCTXcCTngCT3kCUHsCUX0MUn4jU4ABAlSCAQxVgwEkVoQBAleFAQJYhgEMW4kBJVyKAStdiwEEXowBBF-NAQRgjgEEYY8BBGKRAQRjkwEMZJQBLGWWAQRmmAEMZ5kBLWiaAQRpmwEEapwBDGufAS5soAE0baEBBW6iAQVvowEFcKQBBXGlAQVypwEFc6kBDHSqATV1rAEFdq4BDHevATZ4sAEFebEBBXqyAQx7tQE3fLYBPX23AQZ-uAEGf7kBBoABugEGgQG7AQaCAb0BBoMBvwEMhAHAAT6FAcIBBoYBxAEMhwHFAT-IAcYBBokBxwEGigHIAQyLAcsBQIwBzAFGjQHNAQeOAc4BB48BzwEHkAHQAQeRAdEBB5IB0wEHkwHVAQyUAdYBR5UB2AEHlgHaAQyXAdsBSJgB3AEHmQHdAQeaAd4BDJsB4QFJnAHiAU-dAeMBA54B5AEDnwHlAQOgAeYBA6EB5wEDogHpAQOjAesBDKQB7AFQpQHvAQOmAfEBDKcB8gFRqAH0AQOpAfUBA6oB9gEMqwH5AVKsAfoBVq0B_AFXrgH9AVevAYACV7ABgQJXsQGCAleyAYQCV7MBhgIMtAGHAli1AYkCV7YBiwIMtwGMAlm4AY0CV7kBjgJXugGPAgy7AZICWrwBkwJe" } async function decodeBase64AsWasm(wasmBase64: string): Promise { diff --git a/apps/api/src/generated/prisma/internal/prismaNamespace.ts b/apps/api/src/generated/prisma/internal/prismaNamespace.ts index f57906a..85c783b 100644 --- a/apps/api/src/generated/prisma/internal/prismaNamespace.ts +++ b/apps/api/src/generated/prisma/internal/prismaNamespace.ts @@ -1247,6 +1247,7 @@ export const InboxScalarFieldEnum = { companyName: 'companyName', lastError: 'lastError', errorAt: 'errorAt', + consecutiveFailures: 'consecutiveFailures', spamFolderPath: 'spamFolderPath', lastSpamRescuedAt: 'lastSpamRescuedAt', createdAt: 'createdAt', diff --git a/apps/api/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/apps/api/src/generated/prisma/internal/prismaNamespaceBrowser.ts index 5bac16d..a3279a4 100644 --- a/apps/api/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/apps/api/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -134,6 +134,7 @@ export const InboxScalarFieldEnum = { companyName: 'companyName', lastError: 'lastError', errorAt: 'errorAt', + consecutiveFailures: 'consecutiveFailures', spamFolderPath: 'spamFolderPath', lastSpamRescuedAt: 'lastSpamRescuedAt', createdAt: 'createdAt', diff --git a/apps/api/src/generated/prisma/models/Inbox.ts b/apps/api/src/generated/prisma/models/Inbox.ts index 7c6ca45..3716315 100644 --- a/apps/api/src/generated/prisma/models/Inbox.ts +++ b/apps/api/src/generated/prisma/models/Inbox.ts @@ -31,6 +31,7 @@ export type InboxAvgAggregateOutputType = { imapPort: number | null dailyLimit: number | null currentRamp: number | null + consecutiveFailures: number | null } export type InboxSumAggregateOutputType = { @@ -38,6 +39,7 @@ export type InboxSumAggregateOutputType = { imapPort: number | null dailyLimit: number | null currentRamp: number | null + consecutiveFailures: number | null } export type InboxMinAggregateOutputType = { @@ -62,6 +64,7 @@ export type InboxMinAggregateOutputType = { companyName: string | null lastError: string | null errorAt: Date | null + consecutiveFailures: number | null spamFolderPath: string | null lastSpamRescuedAt: Date | null createdAt: Date | null @@ -90,6 +93,7 @@ export type InboxMaxAggregateOutputType = { companyName: string | null lastError: string | null errorAt: Date | null + consecutiveFailures: number | null spamFolderPath: string | null lastSpamRescuedAt: Date | null createdAt: Date | null @@ -118,6 +122,7 @@ export type InboxCountAggregateOutputType = { companyName: number lastError: number errorAt: number + consecutiveFailures: number spamFolderPath: number lastSpamRescuedAt: number createdAt: number @@ -131,6 +136,7 @@ export type InboxAvgAggregateInputType = { imapPort?: true dailyLimit?: true currentRamp?: true + consecutiveFailures?: true } export type InboxSumAggregateInputType = { @@ -138,6 +144,7 @@ export type InboxSumAggregateInputType = { imapPort?: true dailyLimit?: true currentRamp?: true + consecutiveFailures?: true } export type InboxMinAggregateInputType = { @@ -162,6 +169,7 @@ export type InboxMinAggregateInputType = { companyName?: true lastError?: true errorAt?: true + consecutiveFailures?: true spamFolderPath?: true lastSpamRescuedAt?: true createdAt?: true @@ -190,6 +198,7 @@ export type InboxMaxAggregateInputType = { companyName?: true lastError?: true errorAt?: true + consecutiveFailures?: true spamFolderPath?: true lastSpamRescuedAt?: true createdAt?: true @@ -218,6 +227,7 @@ export type InboxCountAggregateInputType = { companyName?: true lastError?: true errorAt?: true + consecutiveFailures?: true spamFolderPath?: true lastSpamRescuedAt?: true createdAt?: true @@ -333,6 +343,7 @@ export type InboxGroupByOutputType = { companyName: string | null lastError: string | null errorAt: Date | null + consecutiveFailures: number spamFolderPath: string | null lastSpamRescuedAt: Date | null createdAt: Date @@ -384,6 +395,7 @@ export type InboxWhereInput = { companyName?: Prisma.StringNullableFilter<"Inbox"> | string | null lastError?: Prisma.StringNullableFilter<"Inbox"> | string | null errorAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null + consecutiveFailures?: Prisma.IntFilter<"Inbox"> | number spamFolderPath?: Prisma.StringNullableFilter<"Inbox"> | string | null lastSpamRescuedAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null createdAt?: Prisma.DateTimeFilter<"Inbox"> | Date | string @@ -417,6 +429,7 @@ export type InboxOrderByWithRelationInput = { companyName?: Prisma.SortOrderInput | Prisma.SortOrder lastError?: Prisma.SortOrderInput | Prisma.SortOrder errorAt?: Prisma.SortOrderInput | Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder spamFolderPath?: Prisma.SortOrderInput | Prisma.SortOrder lastSpamRescuedAt?: Prisma.SortOrderInput | Prisma.SortOrder createdAt?: Prisma.SortOrder @@ -454,6 +467,7 @@ export type InboxWhereUniqueInput = Prisma.AtLeast<{ companyName?: Prisma.StringNullableFilter<"Inbox"> | string | null lastError?: Prisma.StringNullableFilter<"Inbox"> | string | null errorAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null + consecutiveFailures?: Prisma.IntFilter<"Inbox"> | number spamFolderPath?: Prisma.StringNullableFilter<"Inbox"> | string | null lastSpamRescuedAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null createdAt?: Prisma.DateTimeFilter<"Inbox"> | Date | string @@ -487,6 +501,7 @@ export type InboxOrderByWithAggregationInput = { companyName?: Prisma.SortOrderInput | Prisma.SortOrder lastError?: Prisma.SortOrderInput | Prisma.SortOrder errorAt?: Prisma.SortOrderInput | Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder spamFolderPath?: Prisma.SortOrderInput | Prisma.SortOrder lastSpamRescuedAt?: Prisma.SortOrderInput | Prisma.SortOrder createdAt?: Prisma.SortOrder @@ -523,6 +538,7 @@ export type InboxScalarWhereWithAggregatesInput = { companyName?: Prisma.StringNullableWithAggregatesFilter<"Inbox"> | string | null lastError?: Prisma.StringNullableWithAggregatesFilter<"Inbox"> | string | null errorAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Inbox"> | Date | string | null + consecutiveFailures?: Prisma.IntWithAggregatesFilter<"Inbox"> | number spamFolderPath?: Prisma.StringNullableWithAggregatesFilter<"Inbox"> | string | null lastSpamRescuedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Inbox"> | Date | string | null createdAt?: Prisma.DateTimeWithAggregatesFilter<"Inbox"> | Date | string @@ -550,6 +566,7 @@ export type InboxCreateInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -583,6 +600,7 @@ export type InboxUncheckedCreateInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -614,6 +632,7 @@ export type InboxUpdateInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -647,6 +666,7 @@ export type InboxUncheckedUpdateInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -679,6 +699,7 @@ export type InboxCreateManyInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -706,6 +727,7 @@ export type InboxUpdateManyMutationInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -734,6 +756,7 @@ export type InboxUncheckedUpdateManyInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -777,6 +800,7 @@ export type InboxCountOrderByAggregateInput = { companyName?: Prisma.SortOrder lastError?: Prisma.SortOrder errorAt?: Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder spamFolderPath?: Prisma.SortOrder lastSpamRescuedAt?: Prisma.SortOrder createdAt?: Prisma.SortOrder @@ -788,6 +812,7 @@ export type InboxAvgOrderByAggregateInput = { imapPort?: Prisma.SortOrder dailyLimit?: Prisma.SortOrder currentRamp?: Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder } export type InboxMaxOrderByAggregateInput = { @@ -812,6 +837,7 @@ export type InboxMaxOrderByAggregateInput = { companyName?: Prisma.SortOrder lastError?: Prisma.SortOrder errorAt?: Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder spamFolderPath?: Prisma.SortOrder lastSpamRescuedAt?: Prisma.SortOrder createdAt?: Prisma.SortOrder @@ -840,6 +866,7 @@ export type InboxMinOrderByAggregateInput = { companyName?: Prisma.SortOrder lastError?: Prisma.SortOrder errorAt?: Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder spamFolderPath?: Prisma.SortOrder lastSpamRescuedAt?: Prisma.SortOrder createdAt?: Prisma.SortOrder @@ -851,6 +878,7 @@ export type InboxSumOrderByAggregateInput = { imapPort?: Prisma.SortOrder dailyLimit?: Prisma.SortOrder currentRamp?: Prisma.SortOrder + consecutiveFailures?: Prisma.SortOrder } export type InboxScalarRelationFilter = { @@ -1001,6 +1029,7 @@ export type InboxCreateWithoutWorkspaceInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1032,6 +1061,7 @@ export type InboxUncheckedCreateWithoutWorkspaceInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1092,6 +1122,7 @@ export type InboxScalarWhereInput = { companyName?: Prisma.StringNullableFilter<"Inbox"> | string | null lastError?: Prisma.StringNullableFilter<"Inbox"> | string | null errorAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null + consecutiveFailures?: Prisma.IntFilter<"Inbox"> | number spamFolderPath?: Prisma.StringNullableFilter<"Inbox"> | string | null lastSpamRescuedAt?: Prisma.DateTimeNullableFilter<"Inbox"> | Date | string | null createdAt?: Prisma.DateTimeFilter<"Inbox"> | Date | string @@ -1119,6 +1150,7 @@ export type InboxCreateWithoutPrimaryCampaignsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1151,6 +1183,7 @@ export type InboxUncheckedCreateWithoutPrimaryCampaignsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1197,6 +1230,7 @@ export type InboxUpdateWithoutPrimaryCampaignsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1229,6 +1263,7 @@ export type InboxUncheckedUpdateWithoutPrimaryCampaignsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1259,6 +1294,7 @@ export type InboxCreateWithoutSatelliteCampaignsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1291,6 +1327,7 @@ export type InboxUncheckedCreateWithoutSatelliteCampaignsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1337,6 +1374,7 @@ export type InboxUpdateWithoutSatelliteCampaignsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1369,6 +1407,7 @@ export type InboxUncheckedUpdateWithoutSatelliteCampaignsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1399,6 +1438,7 @@ export type InboxCreateWithoutSentLogsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1431,6 +1471,7 @@ export type InboxUncheckedCreateWithoutSentLogsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1466,6 +1507,7 @@ export type InboxCreateWithoutReceivedLogsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1498,6 +1540,7 @@ export type InboxUncheckedCreateWithoutReceivedLogsInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1544,6 +1587,7 @@ export type InboxUpdateWithoutSentLogsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1576,6 +1620,7 @@ export type InboxUncheckedUpdateWithoutSentLogsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1617,6 +1662,7 @@ export type InboxUpdateWithoutReceivedLogsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1649,6 +1695,7 @@ export type InboxUncheckedUpdateWithoutReceivedLogsInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1679,6 +1726,7 @@ export type InboxCreateManyWorkspaceInput = { companyName?: string | null lastError?: string | null errorAt?: Date | string | null + consecutiveFailures?: number spamFolderPath?: string | null lastSpamRescuedAt?: Date | string | null createdAt?: Date | string @@ -1706,6 +1754,7 @@ export type InboxUpdateWithoutWorkspaceInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1737,6 +1786,7 @@ export type InboxUncheckedUpdateWithoutWorkspaceInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1768,6 +1818,7 @@ export type InboxUncheckedUpdateManyWithoutWorkspaceInput = { companyName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastError?: Prisma.NullableStringFieldUpdateOperationsInput | string | null errorAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + consecutiveFailures?: Prisma.IntFieldUpdateOperationsInput | number spamFolderPath?: Prisma.NullableStringFieldUpdateOperationsInput | string | null lastSpamRescuedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -1854,6 +1905,7 @@ export type InboxSelect = runtime.Types.Extensions.GetOmit<"id" | "workspaceId" | "email" | "smtpHost" | "smtpPort" | "imapHost" | "imapPort" | "username" | "password" | "authType" | "oauthRefreshToken" | "role" | "provider" | "status" | "dailyLimit" | "currentRamp" | "industry" | "senderName" | "companyName" | "lastError" | "errorAt" | "spamFolderPath" | "lastSpamRescuedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["inbox"]> +export type InboxOmit = runtime.Types.Extensions.GetOmit<"id" | "workspaceId" | "email" | "smtpHost" | "smtpPort" | "imapHost" | "imapPort" | "username" | "password" | "authType" | "oauthRefreshToken" | "role" | "provider" | "status" | "dailyLimit" | "currentRamp" | "industry" | "senderName" | "companyName" | "lastError" | "errorAt" | "consecutiveFailures" | "spamFolderPath" | "lastSpamRescuedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["inbox"]> export type InboxInclude = { workspace?: boolean | Prisma.WorkspaceDefaultArgs sentLogs?: boolean | Prisma.Inbox$sentLogsArgs @@ -1999,6 +2054,7 @@ export type $InboxPayload readonly lastError: Prisma.FieldRef<"Inbox", 'String'> readonly errorAt: Prisma.FieldRef<"Inbox", 'DateTime'> + readonly consecutiveFailures: Prisma.FieldRef<"Inbox", 'Int'> readonly spamFolderPath: Prisma.FieldRef<"Inbox", 'String'> readonly lastSpamRescuedAt: Prisma.FieldRef<"Inbox", 'DateTime'> readonly createdAt: Prisma.FieldRef<"Inbox", 'DateTime'> diff --git a/apps/api/src/jobs/campaign-dispatcher.job.ts b/apps/api/src/jobs/campaign-dispatcher.job.ts index 4bbdee3..ec904c2 100644 --- a/apps/api/src/jobs/campaign-dispatcher.job.ts +++ b/apps/api/src/jobs/campaign-dispatcher.job.ts @@ -11,6 +11,7 @@ import { claimDueSendJob, completeSendJob, enqueueSendJob, + reclaimStaleSendJobs, } from '../services/job-queue.service'; const MIN_JITTER_MS = 45 * 60 * 1000; @@ -79,12 +80,19 @@ async function executeCampaignSend( const satellite = pickWeightedSatellite(activeSatellites); const primary = campaign.primaryMailbox; - if (primary.status !== InboxStatus.active) { - logger.warn({ campaignId }, 'Primary mailbox is not active'); - if (jobId) await completeSendJob(jobId, false, 'Primary mailbox inactive'); + if (primary.status === InboxStatus.paused) { + logger.warn({ campaignId }, 'Primary mailbox is paused — skipping send'); + if (jobId) await completeSendJob(jobId, false, 'Primary mailbox paused'); return; } + if (primary.status === InboxStatus.error) { + logger.warn( + { campaignId, primary: primary.email }, + 'Primary mailbox in error — proceeding with satellite send (IMAP not required)', + ); + } + if (!isAllowedWarmupSendPair(satellite, primary)) { logger.warn( { campaignId, satellite: satellite.email, primary: primary.email }, @@ -94,68 +102,76 @@ async function executeCampaignSend( return; } - await withInboxGuard(satellite, async () => { + try { const { subject, body, validationResult } = await aiService.generateInitialEmailWithValidation(primary.industry, { senderName: satellite.senderName, companyName: satellite.companyName, }); - const { messageId } = await emailService.sendMail(satellite, { - to: primary.email, - subject, - body, - }); - - await prisma.$transaction(async (tx) => { - const current = await tx.dailySchedule.findUnique({ - where: { id: schedule.id }, + await withInboxGuard(satellite, async () => { + const { messageId } = await emailService.sendMail(satellite, { + to: primary.email, + subject, + body, }); - if (!current || current.actualSends >= current.plannedSends) { - return; - } - await tx.warmupLog.create({ - data: { + await prisma.$transaction(async (tx) => { + const current = await tx.dailySchedule.findUnique({ + where: { id: schedule.id }, + }); + if (!current || current.actualSends >= current.plannedSends) { + return; + } + + await tx.warmupLog.create({ + data: { + campaignId: campaign.id, + senderId: satellite.id, + receiverId: primary.id, + messageId, + subject, + body, + status: WarmupStatus.sent, + validationResult: JSON.stringify(validationResult), + }, + }); + + await tx.dailySchedule.update({ + where: { id: schedule.id }, + data: { actualSends: { increment: 1 } }, + }); + + await tx.warmupCampaign.update({ + where: { id: campaign.id }, + data: { lastSendAt: new Date() }, + }); + }); + + logger.info( + { campaignId: campaign.id, - senderId: satellite.id, - receiverId: primary.id, + satellite: satellite.email, + primary: primary.email, messageId, - subject, - body, - status: WarmupStatus.sent, - validationResult: JSON.stringify(validationResult), }, - }); - - await tx.dailySchedule.update({ - where: { id: schedule.id }, - data: { actualSends: { increment: 1 } }, - }); - - await tx.warmupCampaign.update({ - where: { id: campaign.id }, - data: { lastSendAt: new Date() }, - }); + 'Campaign warmup email dispatched', + ); }); if (jobId) await completeSendJob(jobId, true); - - logger.info( - { - campaignId: campaign.id, - satellite: satellite.email, - primary: primary.email, - messageId, - }, - 'Campaign warmup email dispatched', - ); - }); + } catch (err) { + const message = err instanceof Error ? err.message : 'Campaign send failed'; + if (jobId) await completeSendJob(jobId, false, message); + throw err; + } } export async function runCampaignDispatcherJob(): Promise { logger.info('Campaign dispatcher job started'); + await reclaimStaleSendJobs(); + const campaigns = await prisma.warmupCampaign.findMany({ where: { status: { in: [CampaignStatus.active, CampaignStatus.maintenance] }, diff --git a/apps/api/src/jobs/dispatcher.job.ts b/apps/api/src/jobs/dispatcher.job.ts index 3a67ef5..b5a84b2 100644 --- a/apps/api/src/jobs/dispatcher.job.ts +++ b/apps/api/src/jobs/dispatcher.job.ts @@ -93,11 +93,12 @@ export async function runDispatcherJob(): Promise { continue; } + const { subject, body } = await aiService.generateInitialEmail(sender.industry, { + senderName: sender.senderName, + companyName: sender.companyName, + }); + await withInboxGuard(sender, async () => { - const { subject, body } = await aiService.generateInitialEmail(sender.industry, { - senderName: sender.senderName, - companyName: sender.companyName, - }); const { messageId } = await emailService.sendMail(sender, { to: receiver.email, subject, diff --git a/apps/api/src/jobs/rescuer.job.ts b/apps/api/src/jobs/rescuer.job.ts index b3d4331..8af4d89 100644 --- a/apps/api/src/jobs/rescuer.job.ts +++ b/apps/api/src/jobs/rescuer.job.ts @@ -458,7 +458,7 @@ export async function runRescuerJob(): Promise { for (const primaryMailboxId of primaryIds) { const inbox = await prisma.inbox.findUnique({ where: { id: primaryMailboxId } }); - if (!inbox || inbox.status !== InboxStatus.active) continue; + if (!inbox || inbox.status === InboxStatus.paused) continue; try { await processCampaignPrimary(inbox); diff --git a/apps/api/src/lib/inboxGuard.ts b/apps/api/src/lib/inboxGuard.ts index f6d09ab..f41041f 100644 --- a/apps/api/src/lib/inboxGuard.ts +++ b/apps/api/src/lib/inboxGuard.ts @@ -1,6 +1,10 @@ import type { Inbox } from '../lib/prisma'; import { InboxStatus } from '../lib/prisma'; import { prisma } from '../lib/prisma'; +import { logger } from './logger'; + +/** Consecutive failed operations before marking a mailbox as error. */ +export const MAILBOX_FAILURE_THRESHOLD = 3; export async function withInboxGuard( inbox: Inbox, @@ -9,24 +13,49 @@ export async function withInboxGuard( try { const result = await fn(); - if (inbox.status === InboxStatus.error) { - await prisma.inbox.update({ - where: { id: inbox.id }, - data: { status: InboxStatus.active, lastError: null, errorAt: null }, - }); - } + await prisma.inbox.update({ + where: { id: inbox.id }, + data: { + consecutiveFailures: 0, + ...(inbox.status === InboxStatus.error + ? { + status: InboxStatus.active, + lastError: null, + errorAt: null, + } + : {}), + }, + }); return result; } catch (err) { const message = err instanceof Error ? err.message : 'Unknown error'; - await prisma.inbox.update({ + const updated = await prisma.inbox.update({ where: { id: inbox.id }, data: { - status: InboxStatus.error, + consecutiveFailures: { increment: 1 }, lastError: message, errorAt: new Date(), }, + select: { consecutiveFailures: true }, }); + + if (updated.consecutiveFailures >= MAILBOX_FAILURE_THRESHOLD) { + await prisma.inbox.update({ + where: { id: inbox.id }, + data: { status: InboxStatus.error }, + }); + logger.error( + { inboxId: inbox.id, email: inbox.email, consecutiveFailures: updated.consecutiveFailures, message }, + 'Mailbox marked error after consecutive failures', + ); + } else { + logger.warn( + { inboxId: inbox.id, email: inbox.email, consecutiveFailures: updated.consecutiveFailures, message }, + 'Mailbox operation failed (still active)', + ); + } + throw err; } } diff --git a/apps/api/src/lib/retry.test.ts b/apps/api/src/lib/retry.test.ts new file mode 100644 index 0000000..38ad98e --- /dev/null +++ b/apps/api/src/lib/retry.test.ts @@ -0,0 +1,53 @@ +import assert from 'node:assert/strict'; +import { describe, it } from 'node:test'; +import { isRetryableConnectionError, withRetry } from './retry'; + +describe('retry', () => { + it('treats timeouts as retryable', () => { + assert.equal(isRetryableConnectionError(new Error('Connection timeout')), true); + assert.equal(isRetryableConnectionError(new Error('ETIMEDOUT')), true); + }); + + it('treats auth failures as non-retryable', () => { + assert.equal(isRetryableConnectionError(new Error('Invalid credentials')), false); + assert.equal(isRetryableConnectionError(new Error('Authentication failed')), false); + }); + + it('returns on first success', async () => { + let calls = 0; + const result = await withRetry(async () => { + calls += 1; + return 'ok'; + }); + assert.equal(result, 'ok'); + assert.equal(calls, 1); + }); + + it('retries transient errors then succeeds', async () => { + let calls = 0; + const result = await withRetry( + async () => { + calls += 1; + if (calls === 1) { + throw new Error('ETIMEDOUT'); + } + return 'ok'; + }, + { baseDelayMs: 1 }, + ); + assert.equal(result, 'ok'); + assert.equal(calls, 2); + }); + + it('does not retry auth errors', async () => { + let calls = 0; + await assert.rejects( + withRetry(async () => { + calls += 1; + throw new Error('Invalid credentials'); + }), + /Invalid credentials/, + ); + assert.equal(calls, 1); + }); +}); diff --git a/apps/api/src/lib/retry.ts b/apps/api/src/lib/retry.ts new file mode 100644 index 0000000..e3e7faf --- /dev/null +++ b/apps/api/src/lib/retry.ts @@ -0,0 +1,98 @@ +import { logger } from './logger'; + +const DEFAULT_MAX_ATTEMPTS = 3; +const DEFAULT_BASE_DELAY_MS = 1_000; + +const NON_RETRYABLE_PATTERNS = [ + 'invalid credentials', + 'authentication failed', + 'authenticationfailed', + 'invalid login', + 'username and password not accepted', + 'oauth', + 'not configured', + 'validation failed', + 'content validation', +]; + +const RETRYABLE_PATTERNS = [ + 'timeout', + 'etimedout', + 'econnreset', + 'econnrefused', + 'enotfound', + 'socket', + 'connection lost', + 'connection closed', + 'too many', + 'rate limit', + 'temporarily', + 'try again', + 'service unavailable', + 'unavailable', + '503', + '421', + '454', + '4.7.0', + 'system error', + 'network', + 'closed', + 'broken pipe', + 'eai_again', +]; + +function errorMessage(err: unknown): string { + return err instanceof Error ? err.message : String(err); +} + +export function isRetryableConnectionError(err: unknown): boolean { + const message = errorMessage(err).toLowerCase(); + + if (NON_RETRYABLE_PATTERNS.some((pattern) => message.includes(pattern))) { + return false; + } + + return RETRYABLE_PATTERNS.some((pattern) => message.includes(pattern)); +} + +function sleep(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +export async function withRetry( + fn: () => Promise, + options?: { + maxAttempts?: number; + baseDelayMs?: number; + label?: string; + }, +): Promise { + const maxAttempts = options?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS; + const baseDelayMs = options?.baseDelayMs ?? DEFAULT_BASE_DELAY_MS; + const label = options?.label ?? 'operation'; + + let lastError: unknown; + + for (let attempt = 1; attempt <= maxAttempts; attempt++) { + try { + return await fn(); + } catch (err) { + lastError = err; + const retryable = isRetryableConnectionError(err); + const isLastAttempt = attempt === maxAttempts; + + if (!retryable || isLastAttempt) { + throw err; + } + + const delayMs = baseDelayMs * 2 ** (attempt - 1); + logger.warn( + { attempt, maxAttempts, delayMs, label, err: errorMessage(err) }, + 'Retrying after transient connection failure', + ); + await sleep(delayMs); + } + } + + throw lastError; +} diff --git a/apps/api/src/models/enums.ts b/apps/api/src/models/enums.ts index 99f3d97..3b57e3b 100644 --- a/apps/api/src/models/enums.ts +++ b/apps/api/src/models/enums.ts @@ -13,7 +13,7 @@ export const DEFAULT_INDUSTRIES = ['SaaS', 'Marketing', 'Finance', 'Childcare'] export const DEFAULT_SETTINGS = { dispatcher_cron: '*/15 * * * *', - rescuer_cron: '*/10 * * * *', + rescuer_cron: '*/20 * * * *', ramp_increment: '2', industries: JSON.stringify(DEFAULT_INDUSTRIES), } as const; diff --git a/apps/api/src/routes/inboxes.routes.ts b/apps/api/src/routes/inboxes.routes.ts index e488f95..e54e499 100644 --- a/apps/api/src/routes/inboxes.routes.ts +++ b/apps/api/src/routes/inboxes.routes.ts @@ -170,6 +170,7 @@ router.post('/', async (req: Request, res: Response, next: NextFunction) => { companyName: data.companyName ?? null, lastError: null, errorAt: null, + consecutiveFailures: 0, spamFolderPath: null, lastSpamRescuedAt: null, createdAt: new Date(), @@ -300,7 +301,7 @@ router.patch('/:id', async (req: Request, res: Response, next: NextFunction) => ...(password ? { password: encrypt(password) } : {}), ...(oauthRefreshToken ? { oauthRefreshToken: encrypt(oauthRefreshToken) } : {}), ...(rest.status === InboxStatus.active - ? { lastError: null, errorAt: null } + ? { lastError: null, errorAt: null, consecutiveFailures: 0 } : {}), }, }); @@ -351,10 +352,15 @@ router.post('/:id/test', async (req: Request, res: Response, next: NextFunction) errorAt: new Date(), }, }); - } else if (inbox.status === InboxStatus.error) { + } else { await prisma.inbox.update({ where: { id: inbox.id }, - data: { status: InboxStatus.active, lastError: null, errorAt: null }, + data: { + status: InboxStatus.active, + lastError: null, + errorAt: null, + consecutiveFailures: 0, + }, }); } diff --git a/apps/api/src/services/email.service.ts b/apps/api/src/services/email.service.ts index 334353c..501addc 100644 --- a/apps/api/src/services/email.service.ts +++ b/apps/api/src/services/email.service.ts @@ -1,6 +1,7 @@ import nodemailer, { Transporter } from 'nodemailer'; import type { Inbox } from '../lib/prisma'; import { MailboxAuthType } from '../lib/prisma'; +import { withRetry } from '../lib/retry'; import { decrypt } from './crypto.service'; import { EmailPayload } from '../models/types'; import { resolveMailboxAccessToken } from './mailbox-auth.service'; @@ -58,9 +59,18 @@ export async function createSmtpTransport(inbox: Inbox): Promise { export async function testSmtp( inbox: Inbox, ): Promise<{ ok: boolean; error?: string }> { - const transporter = await createSmtpTransport(inbox); try { - await transporter.verify(); + await withRetry( + async () => { + const transporter = await createSmtpTransport(inbox); + try { + await transporter.verify(); + } finally { + transporter.close(); + } + }, + { label: `smtp-test:${inbox.email}` }, + ); return { ok: true }; } catch (err) { const message = err instanceof Error ? err.message : 'SMTP verification failed'; @@ -68,8 +78,6 @@ export async function testSmtp( ok: false, error: formatMicrosoftAuthError(message), }; - } finally { - transporter.close(); } } @@ -77,23 +85,28 @@ export async function sendMail( inbox: Inbox, payload: EmailPayload, ): Promise<{ messageId: string }> { - const transporter = await createSmtpTransport(inbox); + return withRetry( + async () => { + const transporter = await createSmtpTransport(inbox); - try { - const info = await transporter.sendMail({ - from: inbox.email, - to: payload.to, - subject: payload.subject, - text: payload.body, - inReplyTo: payload.inReplyTo, - references: payload.references, - }); + try { + const info = await transporter.sendMail({ + from: inbox.email, + to: payload.to, + subject: payload.subject, + text: payload.body, + inReplyTo: payload.inReplyTo, + references: payload.references, + }); - const messageId = info.messageId ?? `<${Date.now()}@${inbox.email.split('@')[1]}>`; - return { messageId }; - } finally { - transporter.close(); - } + const messageId = info.messageId ?? `<${Date.now()}@${inbox.email.split('@')[1]}>`; + return { messageId }; + } finally { + transporter.close(); + } + }, + { label: `smtp-send:${inbox.email}` }, + ); } export async function testConnection( diff --git a/apps/api/src/services/imap.service.ts b/apps/api/src/services/imap.service.ts index 6269fb6..c93c11a 100644 --- a/apps/api/src/services/imap.service.ts +++ b/apps/api/src/services/imap.service.ts @@ -1,6 +1,7 @@ import { ImapFlow } from 'imapflow'; import type { Inbox } from '../lib/prisma'; import { MailboxAuthType } from '../lib/prisma'; +import { withRetry } from '../lib/retry'; import { decrypt } from './crypto.service'; import { resolveMailboxAccessToken } from './mailbox-auth.service'; import { formatMicrosoftAuthError } from './microsoft-oauth.service'; @@ -50,10 +51,23 @@ export async function createImapClient(inbox: Inbox): Promise { export async function testImap( inbox: Inbox, ): Promise<{ ok: boolean; error?: string }> { - const client = await createImapClient(inbox); try { - await client.connect(); - await client.mailboxOpen('INBOX'); + await withRetry( + async () => { + const client = await createImapClient(inbox); + try { + await client.connect(); + await client.mailboxOpen('INBOX'); + } finally { + try { + await client.logout(); + } catch { + // ignore logout errors + } + } + }, + { label: `imap-test:${inbox.email}` }, + ); return { ok: true }; } catch (err) { const message = err instanceof Error ? err.message : 'IMAP connection failed'; @@ -61,12 +75,6 @@ export async function testImap( ok: false, error: formatMicrosoftAuthError(message), }; - } finally { - try { - await client.logout(); - } catch { - // ignore logout errors - } } } @@ -74,15 +82,20 @@ export async function withImapClient( inbox: Inbox, fn: (client: ImapFlow) => Promise, ): Promise { - const client = await createImapClient(inbox); - await client.connect(); - try { - return await fn(client); - } finally { - try { - await client.logout(); - } catch { - // ignore logout errors - } - } + return withRetry( + async () => { + const client = await createImapClient(inbox); + await client.connect(); + try { + return await fn(client); + } finally { + try { + await client.logout(); + } catch { + // ignore logout errors + } + } + }, + { label: `imap:${inbox.email}` }, + ); } diff --git a/apps/api/src/services/job-queue.service.ts b/apps/api/src/services/job-queue.service.ts index 790d218..1816b50 100644 --- a/apps/api/src/services/job-queue.service.ts +++ b/apps/api/src/services/job-queue.service.ts @@ -73,6 +73,29 @@ export async function enqueueSendJob( return job.id; } +const STALE_SEND_JOB_MS = 60 * 60 * 1000; + +export async function reclaimStaleSendJobs(staleMs = STALE_SEND_JOB_MS): Promise { + const cutoff = new Date(Date.now() - staleMs); + const result = await prisma.sendJob.updateMany({ + where: { + status: SendJobStatus.processing, + updatedAt: { lt: cutoff }, + }, + data: { + status: SendJobStatus.failed, + errorMessage: 'Stale processing job reclaimed', + processedAt: new Date(), + }, + }); + + if (result.count > 0) { + logger.warn({ count: result.count }, 'Reclaimed stale send jobs stuck in processing'); + } + + return result.count; +} + export async function claimDueSendJob(campaignId: string) { const now = new Date(); const job = await prisma.sendJob.findFirst({ diff --git a/apps/api/src/services/settings.service.ts b/apps/api/src/services/settings.service.ts index 579b774..ce66956 100644 --- a/apps/api/src/services/settings.service.ts +++ b/apps/api/src/services/settings.service.ts @@ -40,4 +40,17 @@ export async function seedDefaultSettings(): Promise { update: {}, }); } + + await migrateLegacyRescuerCron(); +} + +/** One-time bump for installs still on the old 10-minute rescuer interval. */ +async function migrateLegacyRescuerCron(): Promise { + const row = await prisma.setting.findUnique({ where: { key: 'rescuer_cron' } }); + if (row?.value === '*/10 * * * *') { + await prisma.setting.update({ + where: { key: 'rescuer_cron' }, + data: { value: DEFAULT_SETTINGS.rescuer_cron }, + }); + } } diff --git a/prisma/migrations/20260703215915_mailbox_connection_resilience/migration.sql b/prisma/migrations/20260703215915_mailbox_connection_resilience/migration.sql new file mode 100644 index 0000000..281a66e --- /dev/null +++ b/prisma/migrations/20260703215915_mailbox_connection_resilience/migration.sql @@ -0,0 +1,81 @@ +-- RedefineTables +PRAGMA defer_foreign_keys=ON; +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Inbox" ( + "id" TEXT NOT NULL PRIMARY KEY, + "workspaceId" TEXT NOT NULL, + "email" TEXT NOT NULL, + "smtpHost" TEXT NOT NULL, + "smtpPort" INTEGER NOT NULL, + "imapHost" TEXT NOT NULL, + "imapPort" INTEGER NOT NULL, + "username" TEXT NOT NULL, + "password" TEXT NOT NULL, + "authType" TEXT NOT NULL DEFAULT 'password', + "oauthRefreshToken" TEXT, + "role" TEXT NOT NULL DEFAULT 'unassigned', + "provider" TEXT NOT NULL DEFAULT 'custom', + "status" TEXT NOT NULL DEFAULT 'active', + "dailyLimit" INTEGER NOT NULL DEFAULT 40, + "currentRamp" INTEGER NOT NULL DEFAULT 5, + "industry" TEXT NOT NULL DEFAULT 'SaaS', + "senderName" TEXT, + "companyName" TEXT, + "lastError" TEXT, + "errorAt" DATETIME, + "consecutiveFailures" INTEGER NOT NULL DEFAULT 0, + "spamFolderPath" TEXT, + "lastSpamRescuedAt" DATETIME, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + CONSTRAINT "Inbox_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE +); +INSERT INTO "new_Inbox" ("authType", "companyName", "createdAt", "currentRamp", "dailyLimit", "email", "errorAt", "id", "imapHost", "imapPort", "industry", "lastError", "lastSpamRescuedAt", "oauthRefreshToken", "password", "provider", "role", "senderName", "smtpHost", "smtpPort", "spamFolderPath", "status", "updatedAt", "username", "workspaceId") SELECT "authType", "companyName", "createdAt", "currentRamp", "dailyLimit", "email", "errorAt", "id", "imapHost", "imapPort", "industry", "lastError", "lastSpamRescuedAt", "oauthRefreshToken", "password", "provider", "role", "senderName", "smtpHost", "smtpPort", "spamFolderPath", "status", "updatedAt", "username", "workspaceId" FROM "Inbox"; +DROP TABLE "Inbox"; +ALTER TABLE "new_Inbox" RENAME TO "Inbox"; +CREATE INDEX "Inbox_status_idx" ON "Inbox"("status"); +CREATE INDEX "Inbox_workspaceId_role_idx" ON "Inbox"("workspaceId", "role"); +CREATE UNIQUE INDEX "Inbox_workspaceId_email_key" ON "Inbox"("workspaceId", "email"); +-- RedefineTables +PRAGMA defer_foreign_keys=ON; +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Inbox" ( + "id" TEXT NOT NULL PRIMARY KEY, + "workspaceId" TEXT NOT NULL, + "email" TEXT NOT NULL, + "smtpHost" TEXT NOT NULL, + "smtpPort" INTEGER NOT NULL, + "imapHost" TEXT NOT NULL, + "imapPort" INTEGER NOT NULL, + "username" TEXT NOT NULL, + "password" TEXT NOT NULL, + "authType" TEXT NOT NULL DEFAULT 'password', + "oauthRefreshToken" TEXT, + "role" TEXT NOT NULL DEFAULT 'unassigned', + "provider" TEXT NOT NULL DEFAULT 'custom', + "status" TEXT NOT NULL DEFAULT 'active', + "dailyLimit" INTEGER NOT NULL DEFAULT 40, + "currentRamp" INTEGER NOT NULL DEFAULT 5, + "industry" TEXT NOT NULL DEFAULT 'SaaS', + "senderName" TEXT, + "companyName" TEXT, + "lastError" TEXT, + "errorAt" DATETIME, + "consecutiveFailures" INTEGER NOT NULL DEFAULT 0, + "spamFolderPath" TEXT, + "lastSpamRescuedAt" DATETIME, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + CONSTRAINT "Inbox_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE +); +INSERT INTO "new_Inbox" ("authType", "companyName", "createdAt", "currentRamp", "dailyLimit", "email", "errorAt", "id", "imapHost", "imapPort", "industry", "lastError", "lastSpamRescuedAt", "oauthRefreshToken", "password", "provider", "role", "senderName", "smtpHost", "smtpPort", "spamFolderPath", "status", "updatedAt", "username", "workspaceId") SELECT "authType", "companyName", "createdAt", "currentRamp", "dailyLimit", "email", "errorAt", "id", "imapHost", "imapPort", "industry", "lastError", "lastSpamRescuedAt", "oauthRefreshToken", "password", "provider", "role", "senderName", "smtpHost", "smtpPort", "spamFolderPath", "status", "updatedAt", "username", "workspaceId" FROM "Inbox"; +DROP TABLE "Inbox"; +ALTER TABLE "new_Inbox" RENAME TO "Inbox"; +CREATE INDEX "Inbox_status_idx" ON "Inbox"("status"); +CREATE INDEX "Inbox_workspaceId_role_idx" ON "Inbox"("workspaceId", "role"); +CREATE UNIQUE INDEX "Inbox_workspaceId_email_key" ON "Inbox"("workspaceId", "email"); +PRAGMA foreign_keys=ON; +PRAGMA defer_foreign_keys=OFF; + +-- Reduce IMAP polling frequency for existing installs still on the old default. +UPDATE "Setting" SET "value" = '*/20 * * * *' WHERE "key" = 'rescuer_cron' AND "value" = '*/10 * * * *'; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a8f36a5..4c85836 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -119,8 +119,9 @@ model Inbox { industry String @default("SaaS") senderName String? companyName String? - lastError String? - errorAt DateTime? + lastError String? + errorAt DateTime? + consecutiveFailures Int @default(0) spamFolderPath String? lastSpamRescuedAt DateTime? createdAt DateTime @default(now())