From 79ac6aaa3174b451bff98feb1bbad0cfd03a4e49 Mon Sep 17 00:00:00 2001
From: Gitead
Date: Thu, 3 Sep 2026 15:39:43 -0400
Subject: [PATCH] feat: migrate SMS/voice to Telnyx (TeXML), keep browser dial
pad on Twilio
Twilio now handles only the in-browser dial pad (Access Token + browser-Device
outbound TwiML); Telnyx takes over SMS, inbound voicemail, the AI voice
conversation loop, and staff-triggered outbound calls via TeXML. Adds
TelnyxSettings model, Communication.provider discriminator, new comms/routes
modules, and a real Telnyx Settings page.
Co-Authored-By: Claude Sonnet 5
---
README.md | 77 +-
apps/Backend/package.json | 1 +
apps/Backend/src/ai/confirmationSms.ts | 16 +-
.../src/ai/patient-conversation-router.ts | 19 +-
apps/Backend/src/app.ts | 6 +
apps/Backend/src/comms/telnyx-client.ts | 56 +
apps/Backend/src/routes/index.ts | 2 +
apps/Backend/src/routes/telnyx-webhooks.ts | 897 ++++++++
apps/Backend/src/routes/telnyx.ts | 581 +++++
apps/Backend/src/routes/twilio-webhooks.ts | 905 +-------
apps/Backend/src/routes/twilio.ts | 513 +----
apps/Backend/src/storage/index.ts | 2 +
apps/Backend/src/storage/telnyx-storage.ts | 25 +
apps/Backend/src/storage/twilio-storage.ts | 3 +
apps/Backend/src/utils/publicUrl.ts | 21 +-
.../src/components/layout/sidebar.tsx | 5 +
.../patient-connection/message-thread.tsx | 8 +-
.../patient-connection/sms-template-diaog.tsx | 10 +-
.../settings/ai-chat-settings-card.tsx | 10 +-
.../settings/telnyx-settings-card.tsx | 227 ++
.../settings/twilio-settings-card.tsx | 34 +-
apps/Frontend/src/pages/appointments-page.tsx | 4 +-
.../src/pages/patient-connection-page.tsx | 16 +-
apps/Frontend/src/pages/settings-page.tsx | 5 +
nginx.conf | 13 +-
package-lock.json | 15 +
packages/db/generated/prisma/edge.js | 27 +-
packages/db/generated/prisma/index-browser.js | 19 +
packages/db/generated/prisma/index.d.ts | 1956 ++++++++++++++++-
packages/db/generated/prisma/index.js | 27 +-
packages/db/generated/prisma/package.json | 2 +-
packages/db/generated/prisma/schema.prisma | 30 +
.../migration.sql | 25 +
.../migration.sql | 2 +
packages/db/prisma/schema.prisma | 30 +
.../.prisma-zod-generator-manifest.json | 90 +-
packages/db/shared/helpers/decimal-helpers.ts | 7 +-
.../schemas/aggregateTelnyxSettings.schema.ts | 14 +
.../schemas/countTelnyxSettings.schema.ts | 10 +
...reateManyAndReturnTelnyxSettings.schema.ts | 8 +
.../createManyTelnyxSettings.schema.ts | 7 +
.../schemas/createOneTelnyxSettings.schema.ts | 10 +
.../deleteManyTelnyxSettings.schema.ts | 7 +
.../schemas/deleteOneTelnyxSettings.schema.ts | 9 +
.../enums/CommunicationProvider.schema.ts | 5 +
.../CommunicationScalarFieldEnum.schema.ts | 2 +-
.../TelnyxSettingsScalarFieldEnum.schema.ts | 5 +
.../schemas/findFirstCommunication.schema.ts | 2 +
.../findFirstOrThrowCommunication.schema.ts | 2 +
.../findFirstOrThrowTelnyxSettings.schema.ts | 40 +
.../schemas/findFirstOrThrowUser.schema.ts | 2 +
.../schemas/findFirstTelnyxSettings.schema.ts | 40 +
.../db/shared/schemas/findFirstUser.schema.ts | 2 +
.../schemas/findManyCommunication.schema.ts | 2 +
.../schemas/findManyTelnyxSettings.schema.ts | 40 +
.../db/shared/schemas/findManyUser.schema.ts | 2 +
.../findUniqueOrThrowTelnyxSettings.schema.ts | 9 +
.../findUniqueTelnyxSettings.schema.ts | 9 +
.../schemas/groupByTelnyxSettings.schema.ts | 15 +
packages/db/shared/schemas/index.ts | 35 +
.../AppointmentProcedureCreateInput.schema.ts | 13 +-
...cedureCreateManyAppointmentInput.schema.ts | 7 +-
...ointmentProcedureCreateManyInput.schema.ts | 7 +-
...cedureCreateManyNpiProviderInput.schema.ts | 7 +-
...tProcedureCreateManyPatientInput.schema.ts | 7 +-
...ureCreateWithoutAppointmentInput.schema.ts | 11 +-
...ureCreateWithoutNpiProviderInput.schema.ts | 11 +-
...ocedureCreateWithoutPatientInput.schema.ts | 11 +-
...intmentProcedureScalarWhereInput.schema.ts | 21 +-
...reScalarWhereWithAggregatesInput.schema.ts | 21 +-
...entProcedureUncheckedCreateInput.schema.ts | 7 +-
...kedCreateWithoutAppointmentInput.schema.ts | 7 +-
...kedCreateWithoutNpiProviderInput.schema.ts | 7 +-
...checkedCreateWithoutPatientInput.schema.ts | 7 +-
...entProcedureUncheckedUpdateInput.schema.ts | 21 +-
...rocedureUncheckedUpdateManyInput.schema.ts | 21 +-
...pdateManyWithoutAppointmentInput.schema.ts | 21 +-
...pdateManyWithoutNpiProviderInput.schema.ts | 19 +-
...kedUpdateManyWithoutPatientInput.schema.ts | 21 +-
...kedUpdateWithoutAppointmentInput.schema.ts | 21 +-
...kedUpdateWithoutNpiProviderInput.schema.ts | 19 +-
...checkedUpdateWithoutPatientInput.schema.ts | 21 +-
.../AppointmentProcedureUpdateInput.schema.ts | 23 +-
...ProcedureUpdateManyMutationInput.schema.ts | 17 +-
...ureUpdateWithoutAppointmentInput.schema.ts | 21 +-
...ureUpdateWithoutNpiProviderInput.schema.ts | 21 +-
...ocedureUpdateWithoutPatientInput.schema.ts | 21 +-
.../AppointmentProcedureWhereInput.schema.ts | 33 +-
.../CommissionBatchCreateInput.schema.ts | 11 +-
.../CommissionBatchCreateManyInput.schema.ts | 10 +-
...nBatchCreateManyNpiProviderInput.schema.ts | 10 +-
...sionBatchCreateWithoutItemsInput.schema.ts | 9 +-
...tchCreateWithoutNpiProviderInput.schema.ts | 9 +-
.../CommissionBatchItemCreateInput.schema.ts | 9 +-
...emCreateManyCommissionBatchInput.schema.ts | 8 +-
...mmissionBatchItemCreateManyInput.schema.ts | 8 +-
...nBatchItemCreateManyPaymentInput.schema.ts | 8 +-
...reateWithoutCommissionBatchInput.schema.ts | 7 +-
...tchItemCreateWithoutPaymentInput.schema.ts | 7 +-
...missionBatchItemScalarWhereInput.schema.ts | 9 +-
...emScalarWhereWithAggregatesInput.schema.ts | 9 +-
...ionBatchItemUncheckedCreateInput.schema.ts | 8 +-
...reateWithoutCommissionBatchInput.schema.ts | 8 +-
...checkedCreateWithoutPaymentInput.schema.ts | 8 +-
...ionBatchItemUncheckedUpdateInput.schema.ts | 9 +-
...atchItemUncheckedUpdateManyInput.schema.ts | 9 +-
...eManyWithoutCommissionBatchInput.schema.ts | 9 +-
...kedUpdateManyWithoutPaymentInput.schema.ts | 9 +-
...pdateWithoutCommissionBatchInput.schema.ts | 9 +-
...checkedUpdateWithoutPaymentInput.schema.ts | 9 +-
.../CommissionBatchItemUpdateInput.schema.ts | 11 +-
...BatchItemUpdateManyMutationInput.schema.ts | 7 +-
...pdateWithoutCommissionBatchInput.schema.ts | 9 +-
...tchItemUpdateWithoutPaymentInput.schema.ts | 9 +-
.../CommissionBatchItemWhereInput.schema.ts | 17 +-
.../CommissionBatchScalarWhereInput.schema.ts | 15 +-
...chScalarWhereWithAggregatesInput.schema.ts | 15 +-
...missionBatchUncheckedCreateInput.schema.ts | 9 +-
...UncheckedCreateWithoutItemsInput.schema.ts | 10 +-
...kedCreateWithoutNpiProviderInput.schema.ts | 9 +-
...missionBatchUncheckedUpdateInput.schema.ts | 17 +-
...ionBatchUncheckedUpdateManyInput.schema.ts | 15 +-
...pdateManyWithoutNpiProviderInput.schema.ts | 15 +-
...UncheckedUpdateWithoutItemsInput.schema.ts | 15 +-
...kedUpdateWithoutNpiProviderInput.schema.ts | 17 +-
.../CommissionBatchUpdateInput.schema.ts | 17 +-
...sionBatchUpdateManyMutationInput.schema.ts | 13 +-
...sionBatchUpdateWithoutItemsInput.schema.ts | 15 +-
...tchUpdateWithoutNpiProviderInput.schema.ts | 15 +-
.../CommissionBatchWhereInput.schema.ts | 21 +-
...CommunicationCountAggregateInput.schema.ts | 1 +
...cationCountOrderByAggregateInput.schema.ts | 1 +
.../CommunicationCreateInput.schema.ts | 2 +
.../CommunicationCreateManyInput.schema.ts | 4 +-
...municationCreateManyPatientInput.schema.ts | 4 +-
...CommunicationCreateManyUserInput.schema.ts | 4 +-
...icationCreateWithoutPatientInput.schema.ts | 2 +
...municationCreateWithoutUserInput.schema.ts | 2 +
.../CommunicationMaxAggregateInput.schema.ts | 1 +
...nicationMaxOrderByAggregateInput.schema.ts | 1 +
.../CommunicationMinAggregateInput.schema.ts | 1 +
...nicationMinOrderByAggregateInput.schema.ts | 1 +
...ationOrderByWithAggregationInput.schema.ts | 1 +
...nicationOrderByWithRelationInput.schema.ts | 1 +
.../CommunicationScalarWhereInput.schema.ts | 3 +
...onScalarWhereWithAggregatesInput.schema.ts | 3 +
.../objects/CommunicationSelect.schema.ts | 1 +
...ommunicationUncheckedCreateInput.schema.ts | 4 +-
...checkedCreateWithoutPatientInput.schema.ts | 4 +-
...nUncheckedCreateWithoutUserInput.schema.ts | 4 +-
...ommunicationUncheckedUpdateInput.schema.ts | 3 +
...nicationUncheckedUpdateManyInput.schema.ts | 3 +
...kedUpdateManyWithoutPatientInput.schema.ts | 3 +
...heckedUpdateManyWithoutUserInput.schema.ts | 3 +
...checkedUpdateWithoutPatientInput.schema.ts | 3 +
...nUncheckedUpdateWithoutUserInput.schema.ts | 3 +
.../CommunicationUpdateInput.schema.ts | 3 +
...unicationUpdateManyMutationInput.schema.ts | 3 +
...icationUpdateWithoutPatientInput.schema.ts | 3 +
...municationUpdateWithoutUserInput.schema.ts | 3 +
.../objects/CommunicationWhereInput.schema.ts | 3 +
...ecimalFieldUpdateOperationsInput.schema.ts | 16 +-
.../schemas/objects/DecimalFilter.schema.ts | 21 +-
.../objects/DecimalNullableFilter.schema.ts | 21 +-
...imalNullableWithAggregatesFilter.schema.ts | 25 +-
.../DecimalWithAggregatesFilter.schema.ts | 25 +-
...oviderFieldUpdateOperationsInput.schema.ts | 9 +
.../EnumCommunicationProviderFilter.schema.ts | 13 +
...tionProviderWithAggregatesFilter.schema.ts | 18 +
.../objects/NestedDecimalFilter.schema.ts | 22 +-
.../NestedDecimalNullableFilter.schema.ts | 22 +-
...imalNullableWithAggregatesFilter.schema.ts | 23 +-
...estedDecimalWithAggregatesFilter.schema.ts | 23 +-
...dEnumCommunicationProviderFilter.schema.ts | 12 +
...tionProviderWithAggregatesFilter.schema.ts | 17 +
...ecimalFieldUpdateOperationsInput.schema.ts | 16 +-
.../objects/PaymentCreateInput.schema.ts | 33 +-
.../objects/PaymentCreateManyInput.schema.ts | 19 +-
...aymentCreateManyNpiProviderInput.schema.ts | 19 +-
.../PaymentCreateManyPatientInput.schema.ts | 19 +-
.../PaymentCreateManyUpdatedByInput.schema.ts | 19 +-
.../PaymentCreateWithoutClaimInput.schema.ts | 31 +-
...WithoutCommissionBatchItemsInput.schema.ts | 31 +-
...entCreateWithoutNpiProviderInput.schema.ts | 31 +-
...PaymentCreateWithoutPatientInput.schema.ts | 31 +-
...houtServiceLineTransactionsInput.schema.ts | 31 +-
...ntCreateWithoutServiceLinesInput.schema.ts | 31 +-
...ymentCreateWithoutUpdatedByInput.schema.ts | 31 +-
.../objects/PaymentScalarWhereInput.schema.ts | 33 +-
...ntScalarWhereWithAggregatesInput.schema.ts | 33 +-
.../PaymentUncheckedCreateInput.schema.ts | 25 +-
...UncheckedCreateWithoutClaimInput.schema.ts | 25 +-
...WithoutCommissionBatchItemsInput.schema.ts | 23 +-
...kedCreateWithoutNpiProviderInput.schema.ts | 25 +-
...checkedCreateWithoutPatientInput.schema.ts | 25 +-
...houtServiceLineTransactionsInput.schema.ts | 23 +-
...edCreateWithoutServiceLinesInput.schema.ts | 23 +-
...eckedCreateWithoutUpdatedByInput.schema.ts | 25 +-
.../PaymentUncheckedUpdateInput.schema.ts | 39 +-
.../PaymentUncheckedUpdateManyInput.schema.ts | 33 +-
...pdateManyWithoutNpiProviderInput.schema.ts | 33 +-
...kedUpdateManyWithoutPatientInput.schema.ts | 33 +-
...dUpdateManyWithoutUpdatedByInput.schema.ts | 33 +-
...UncheckedUpdateWithoutClaimInput.schema.ts | 39 +-
...WithoutCommissionBatchItemsInput.schema.ts | 37 +-
...kedUpdateWithoutNpiProviderInput.schema.ts | 39 +-
...checkedUpdateWithoutPatientInput.schema.ts | 39 +-
...houtServiceLineTransactionsInput.schema.ts | 37 +-
...edUpdateWithoutServiceLinesInput.schema.ts | 37 +-
...eckedUpdateWithoutUpdatedByInput.schema.ts | 39 +-
.../objects/PaymentUpdateInput.schema.ts | 45 +-
.../PaymentUpdateManyMutationInput.schema.ts | 31 +-
.../PaymentUpdateWithoutClaimInput.schema.ts | 43 +-
...WithoutCommissionBatchItemsInput.schema.ts | 43 +-
...entUpdateWithoutNpiProviderInput.schema.ts | 43 +-
...PaymentUpdateWithoutPatientInput.schema.ts | 43 +-
...houtServiceLineTransactionsInput.schema.ts | 43 +-
...ntUpdateWithoutServiceLinesInput.schema.ts | 43 +-
...ymentUpdateWithoutUpdatedByInput.schema.ts | 43 +-
.../objects/PaymentWhereInput.schema.ts | 55 +-
.../objects/ServiceLineCreateInput.schema.ts | 21 +-
.../ServiceLineCreateManyClaimInput.schema.ts | 15 +-
.../ServiceLineCreateManyInput.schema.ts | 15 +-
...erviceLineCreateManyPaymentInput.schema.ts | 15 +-
...rviceLineCreateWithoutClaimInput.schema.ts | 19 +-
...iceLineCreateWithoutPaymentInput.schema.ts | 19 +-
...houtServiceLineTransactionsInput.schema.ts | 19 +-
.../ServiceLineScalarWhereInput.schema.ts | 31 +-
...neScalarWhereWithAggregatesInput.schema.ts | 31 +-
...erviceLineTransactionCreateInput.schema.ts | 13 +-
...ceLineTransactionCreateManyInput.schema.ts | 9 +-
...ransactionCreateManyPaymentInput.schema.ts | 9 +-
...actionCreateManyServiceLineInput.schema.ts | 9 +-
...sactionCreateWithoutPaymentInput.schema.ts | 11 +-
...ionCreateWithoutServiceLineInput.schema.ts | 11 +-
...eLineTransactionScalarWhereInput.schema.ts | 19 +-
...onScalarWhereWithAggregatesInput.schema.ts | 19 +-
...eTransactionUncheckedCreateInput.schema.ts | 9 +-
...checkedCreateWithoutPaymentInput.schema.ts | 9 +-
...kedCreateWithoutServiceLineInput.schema.ts | 9 +-
...eTransactionUncheckedUpdateInput.schema.ts | 19 +-
...nsactionUncheckedUpdateManyInput.schema.ts | 19 +-
...kedUpdateManyWithoutPaymentInput.schema.ts | 19 +-
...pdateManyWithoutServiceLineInput.schema.ts | 19 +-
...checkedUpdateWithoutPaymentInput.schema.ts | 19 +-
...kedUpdateWithoutServiceLineInput.schema.ts | 19 +-
...erviceLineTransactionUpdateInput.schema.ts | 21 +-
...ansactionUpdateManyMutationInput.schema.ts | 17 +-
...sactionUpdateWithoutPaymentInput.schema.ts | 19 +-
...ionUpdateWithoutServiceLineInput.schema.ts | 19 +-
...ServiceLineTransactionWhereInput.schema.ts | 27 +-
.../ServiceLineUncheckedCreateInput.schema.ts | 17 +-
...UncheckedCreateWithoutClaimInput.schema.ts | 17 +-
...checkedCreateWithoutPaymentInput.schema.ts | 17 +-
...houtServiceLineTransactionsInput.schema.ts | 15 +-
.../ServiceLineUncheckedUpdateInput.schema.ts | 33 +-
...viceLineUncheckedUpdateManyInput.schema.ts | 31 +-
...eckedUpdateManyWithoutClaimInput.schema.ts | 31 +-
...kedUpdateManyWithoutPaymentInput.schema.ts | 31 +-
...UncheckedUpdateWithoutClaimInput.schema.ts | 33 +-
...checkedUpdateWithoutPaymentInput.schema.ts | 33 +-
...houtServiceLineTransactionsInput.schema.ts | 31 +-
.../objects/ServiceLineUpdateInput.schema.ts | 33 +-
...rviceLineUpdateManyMutationInput.schema.ts | 27 +-
...rviceLineUpdateWithoutClaimInput.schema.ts | 31 +-
...iceLineUpdateWithoutPaymentInput.schema.ts | 31 +-
...houtServiceLineTransactionsInput.schema.ts | 31 +-
.../objects/ServiceLineWhereInput.schema.ts | 41 +-
.../objects/TelnyxSettingsArgs.schema.ts | 11 +
.../TelnyxSettingsAvgAggregateInput.schema.ts | 10 +
...SettingsAvgOrderByAggregateInput.schema.ts | 10 +
...elnyxSettingsCountAggregateInput.schema.ts | 18 +
...ttingsCountOrderByAggregateInput.schema.ts | 17 +
.../TelnyxSettingsCreateInput.schema.ts | 16 +
.../TelnyxSettingsCreateManyInput.schema.ts | 17 +
...sCreateNestedOneWithoutUserInput.schema.ts | 14 +
...sCreateOrConnectWithoutUserInput.schema.ts | 12 +
...yxSettingsCreateWithoutUserInput.schema.ts | 15 +
.../objects/TelnyxSettingsInclude.schema.ts | 9 +
.../TelnyxSettingsMaxAggregateInput.schema.ts | 17 +
...SettingsMaxOrderByAggregateInput.schema.ts | 17 +
.../TelnyxSettingsMinAggregateInput.schema.ts | 17 +
...SettingsMinOrderByAggregateInput.schema.ts | 17 +
...ingsNullableScalarRelationFilter.schema.ts | 10 +
...tingsOrderByWithAggregationInput.schema.ts | 28 +
...SettingsOrderByWithRelationInput.schema.ts | 20 +
...gsScalarWhereWithAggregatesInput.schema.ts | 22 +
.../objects/TelnyxSettingsSelect.schema.ts | 18 +
.../TelnyxSettingsSumAggregateInput.schema.ts | 10 +
...SettingsSumOrderByAggregateInput.schema.ts | 10 +
...lnyxSettingsUncheckedCreateInput.schema.ts | 17 +
...dCreateNestedOneWithoutUserInput.schema.ts | 14 +
...sUncheckedCreateWithoutUserInput.schema.ts | 16 +
...lnyxSettingsUncheckedUpdateInput.schema.ts | 19 +
...SettingsUncheckedUpdateManyInput.schema.ts | 19 +
...dUpdateOneWithoutUserNestedInput.schema.ts | 23 +
...sUncheckedUpdateWithoutUserInput.schema.ts | 18 +
.../TelnyxSettingsUpdateInput.schema.ts | 18 +
...xSettingsUpdateManyMutationInput.schema.ts | 16 +
...sUpdateOneWithoutUserNestedInput.schema.ts | 23 +
...teToOneWithWhereWithoutUserInput.schema.ts | 12 +
...yxSettingsUpdateWithoutUserInput.schema.ts | 16 +
...yxSettingsUpsertWithoutUserInput.schema.ts | 15 +
.../TelnyxSettingsWhereInput.schema.ts | 25 +
.../TelnyxSettingsWhereUniqueInput.schema.ts | 10 +
.../schemas/objects/UserCreateInput.schema.ts | 2 +
...tedOneWithoutTelnyxSettingsInput.schema.ts | 14 +
...onnectWithoutTelnyxSettingsInput.schema.ts | 12 +
...UserCreateWithoutAiSettingsInput.schema.ts | 2 +
...erCreateWithoutAppointmentsInput.schema.ts | 2 +
...teWithoutBackupDestinationsInput.schema.ts | 2 +
.../UserCreateWithoutBackupsInput.schema.ts | 2 +
.../UserCreateWithoutClaimsInput.schema.ts | 2 +
...UserCreateWithoutCloudFilesInput.schema.ts | 2 +
...erCreateWithoutCloudFoldersInput.schema.ts | 2 +
...CreateWithoutCommunicationsInput.schema.ts | 2 +
...ateWithoutInsuranceContactsInput.schema.ts | 2 +
...WithoutInsuranceCredentialsInput.schema.ts | 2 +
...CreateWithoutLabRxTemplatesInput.schema.ts | 2 +
...rCreateWithoutNotificationsInput.schema.ts | 2 +
...erCreateWithoutNpiProvidersInput.schema.ts | 2 +
...rCreateWithoutOfficeContactInput.schema.ts | 2 +
...serCreateWithoutOfficeHoursInput.schema.ts | 2 +
...WithoutPatientConversationsInput.schema.ts | 2 +
.../UserCreateWithoutPatientsInput.schema.ts | 2 +
...ateWithoutProcedureTimeslotInput.schema.ts | 2 +
...eateWithoutSeleniumSettingsInput.schema.ts | 2 +
...reateWithoutShoppingVendorsInput.schema.ts | 2 +
.../UserCreateWithoutStaffInput.schema.ts | 2 +
...CreateWithoutTelnyxSettingsInput.schema.ts | 62 +
...CreateWithoutTwilioSettingsInput.schema.ts | 2 +
...reateWithoutUpdatedPaymentsInput.schema.ts | 2 +
.../schemas/objects/UserInclude.schema.ts | 2 +
.../UserOrderByWithRelationInput.schema.ts | 2 +
.../schemas/objects/UserSelect.schema.ts | 2 +
.../UserUncheckedCreateInput.schema.ts | 2 +
...ckedCreateWithoutAiSettingsInput.schema.ts | 2 +
...edCreateWithoutAppointmentsInput.schema.ts | 2 +
...teWithoutBackupDestinationsInput.schema.ts | 2 +
...checkedCreateWithoutBackupsInput.schema.ts | 2 +
...ncheckedCreateWithoutClaimsInput.schema.ts | 2 +
...ckedCreateWithoutCloudFilesInput.schema.ts | 2 +
...edCreateWithoutCloudFoldersInput.schema.ts | 2 +
...CreateWithoutCommunicationsInput.schema.ts | 2 +
...ateWithoutInsuranceContactsInput.schema.ts | 2 +
...WithoutInsuranceCredentialsInput.schema.ts | 2 +
...CreateWithoutLabRxTemplatesInput.schema.ts | 2 +
...dCreateWithoutNotificationsInput.schema.ts | 2 +
...edCreateWithoutNpiProvidersInput.schema.ts | 2 +
...dCreateWithoutOfficeContactInput.schema.ts | 2 +
...kedCreateWithoutOfficeHoursInput.schema.ts | 2 +
...WithoutPatientConversationsInput.schema.ts | 2 +
...heckedCreateWithoutPatientsInput.schema.ts | 2 +
...ateWithoutProcedureTimeslotInput.schema.ts | 2 +
...eateWithoutSeleniumSettingsInput.schema.ts | 2 +
...reateWithoutShoppingVendorsInput.schema.ts | 2 +
...UncheckedCreateWithoutStaffInput.schema.ts | 2 +
...CreateWithoutTelnyxSettingsInput.schema.ts | 63 +
...CreateWithoutTwilioSettingsInput.schema.ts | 2 +
...reateWithoutUpdatedPaymentsInput.schema.ts | 2 +
.../UserUncheckedUpdateInput.schema.ts | 2 +
...ckedUpdateWithoutAiSettingsInput.schema.ts | 2 +
...edUpdateWithoutAppointmentsInput.schema.ts | 2 +
...teWithoutBackupDestinationsInput.schema.ts | 2 +
...checkedUpdateWithoutBackupsInput.schema.ts | 2 +
...ncheckedUpdateWithoutClaimsInput.schema.ts | 2 +
...ckedUpdateWithoutCloudFilesInput.schema.ts | 2 +
...edUpdateWithoutCloudFoldersInput.schema.ts | 2 +
...UpdateWithoutCommunicationsInput.schema.ts | 2 +
...ateWithoutInsuranceContactsInput.schema.ts | 2 +
...WithoutInsuranceCredentialsInput.schema.ts | 2 +
...UpdateWithoutLabRxTemplatesInput.schema.ts | 2 +
...dUpdateWithoutNotificationsInput.schema.ts | 2 +
...edUpdateWithoutNpiProvidersInput.schema.ts | 2 +
...dUpdateWithoutOfficeContactInput.schema.ts | 2 +
...kedUpdateWithoutOfficeHoursInput.schema.ts | 2 +
...WithoutPatientConversationsInput.schema.ts | 2 +
...heckedUpdateWithoutPatientsInput.schema.ts | 2 +
...ateWithoutProcedureTimeslotInput.schema.ts | 2 +
...dateWithoutSeleniumSettingsInput.schema.ts | 2 +
...pdateWithoutShoppingVendorsInput.schema.ts | 2 +
...UncheckedUpdateWithoutStaffInput.schema.ts | 2 +
...UpdateWithoutTelnyxSettingsInput.schema.ts | 66 +
...UpdateWithoutTwilioSettingsInput.schema.ts | 2 +
...pdateWithoutUpdatedPaymentsInput.schema.ts | 2 +
.../schemas/objects/UserUpdateInput.schema.ts | 2 +
...WithoutTelnyxSettingsNestedInput.schema.ts | 20 +
...hWhereWithoutTelnyxSettingsInput.schema.ts | 12 +
...UserUpdateWithoutAiSettingsInput.schema.ts | 2 +
...erUpdateWithoutAppointmentsInput.schema.ts | 2 +
...teWithoutBackupDestinationsInput.schema.ts | 2 +
.../UserUpdateWithoutBackupsInput.schema.ts | 2 +
.../UserUpdateWithoutClaimsInput.schema.ts | 2 +
...UserUpdateWithoutCloudFilesInput.schema.ts | 2 +
...erUpdateWithoutCloudFoldersInput.schema.ts | 2 +
...UpdateWithoutCommunicationsInput.schema.ts | 2 +
...ateWithoutInsuranceContactsInput.schema.ts | 2 +
...WithoutInsuranceCredentialsInput.schema.ts | 2 +
...UpdateWithoutLabRxTemplatesInput.schema.ts | 2 +
...rUpdateWithoutNotificationsInput.schema.ts | 2 +
...erUpdateWithoutNpiProvidersInput.schema.ts | 2 +
...rUpdateWithoutOfficeContactInput.schema.ts | 2 +
...serUpdateWithoutOfficeHoursInput.schema.ts | 2 +
...WithoutPatientConversationsInput.schema.ts | 2 +
.../UserUpdateWithoutPatientsInput.schema.ts | 2 +
...ateWithoutProcedureTimeslotInput.schema.ts | 2 +
...dateWithoutSeleniumSettingsInput.schema.ts | 2 +
...pdateWithoutShoppingVendorsInput.schema.ts | 2 +
.../UserUpdateWithoutStaffInput.schema.ts | 2 +
...UpdateWithoutTelnyxSettingsInput.schema.ts | 65 +
...UpdateWithoutTwilioSettingsInput.schema.ts | 2 +
...pdateWithoutUpdatedPaymentsInput.schema.ts | 2 +
...UpsertWithoutTelnyxSettingsInput.schema.ts | 15 +
.../schemas/objects/UserWhereInput.schema.ts | 3 +
packages/db/shared/schemas/objects/index.ts | 51 +
.../CommunicationAggregateResult.schema.ts | 1 +
.../CommunicationCreateResult.schema.ts | 1 +
.../CommunicationDeleteResult.schema.ts | 1 +
.../CommunicationFindFirstResult.schema.ts | 1 +
.../CommunicationFindManyResult.schema.ts | 1 +
.../CommunicationFindUniqueResult.schema.ts | 1 +
.../CommunicationGroupByResult.schema.ts | 1 +
.../CommunicationUpdateResult.schema.ts | 1 +
.../CommunicationUpsertResult.schema.ts | 1 +
.../TelnyxSettingsAggregateResult.schema.ts | 43 +
.../TelnyxSettingsCountResult.schema.ts | 2 +
.../TelnyxSettingsCreateManyResult.schema.ts | 4 +
.../TelnyxSettingsCreateResult.schema.ts | 13 +
.../TelnyxSettingsDeleteManyResult.schema.ts | 4 +
.../TelnyxSettingsDeleteResult.schema.ts | 13 +
.../TelnyxSettingsFindFirstResult.schema.ts | 13 +
.../TelnyxSettingsFindManyResult.schema.ts | 23 +
.../TelnyxSettingsFindUniqueResult.schema.ts | 13 +
.../TelnyxSettingsGroupByResult.schema.ts | 54 +
.../TelnyxSettingsUpdateManyResult.schema.ts | 4 +
.../TelnyxSettingsUpdateResult.schema.ts | 13 +
.../TelnyxSettingsUpsertResult.schema.ts | 13 +
.../results/UserAggregateResult.schema.ts | 1 +
.../results/UserCreateResult.schema.ts | 1 +
.../results/UserDeleteResult.schema.ts | 1 +
.../results/UserFindFirstResult.schema.ts | 1 +
.../results/UserFindManyResult.schema.ts | 1 +
.../results/UserFindUniqueResult.schema.ts | 1 +
.../results/UserGroupByResult.schema.ts | 1 +
.../results/UserUpdateResult.schema.ts | 1 +
.../results/UserUpsertResult.schema.ts | 1 +
packages/db/shared/schemas/results/index.ts | 13 +
...pdateManyAndReturnTelnyxSettings.schema.ts | 9 +
.../updateManyTelnyxSettings.schema.ts | 8 +
.../schemas/updateOneTelnyxSettings.schema.ts | 11 +
.../schemas/upsertOneTelnyxSettings.schema.ts | 13 +
.../variants/input/Communication.input.ts | 2 +
.../variants/input/TelnyxSettings.input.ts | 16 +
.../schemas/variants/input/User.input.ts | 1 +
.../db/shared/schemas/variants/input/index.ts | 1 +
.../variants/pure/Communication.pure.ts | 2 +
.../variants/pure/TelnyxSettings.pure.ts | 16 +
.../shared/schemas/variants/pure/User.pure.ts | 1 +
.../db/shared/schemas/variants/pure/index.ts | 1 +
.../variants/result/Communication.result.ts | 2 +
.../variants/result/TelnyxSettings.result.ts | 16 +
.../schemas/variants/result/User.result.ts | 1 +
.../shared/schemas/variants/result/index.ts | 1 +
463 files changed, 7823 insertions(+), 3397 deletions(-)
create mode 100644 apps/Backend/src/comms/telnyx-client.ts
create mode 100644 apps/Backend/src/routes/telnyx-webhooks.ts
create mode 100644 apps/Backend/src/routes/telnyx.ts
create mode 100644 apps/Backend/src/storage/telnyx-storage.ts
create mode 100644 apps/Frontend/src/components/settings/telnyx-settings-card.tsx
create mode 100644 packages/db/prisma/migrations/20260903183731_add_telnyx_settings_and_communication_provider/migration.sql
create mode 100644 packages/db/prisma/migrations/20260903185238_add_telnyx_account_sid/migration.sql
create mode 100644 packages/db/shared/schemas/aggregateTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/countTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/createManyAndReturnTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/createManyTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/createOneTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/deleteManyTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/deleteOneTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/enums/CommunicationProvider.schema.ts
create mode 100644 packages/db/shared/schemas/enums/TelnyxSettingsScalarFieldEnum.schema.ts
create mode 100644 packages/db/shared/schemas/findFirstOrThrowTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/findFirstTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/findManyTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/findUniqueOrThrowTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/findUniqueTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/groupByTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/objects/EnumCommunicationProviderFieldUpdateOperationsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/EnumCommunicationProviderFilter.schema.ts
create mode 100644 packages/db/shared/schemas/objects/EnumCommunicationProviderWithAggregatesFilter.schema.ts
create mode 100644 packages/db/shared/schemas/objects/NestedEnumCommunicationProviderFilter.schema.ts
create mode 100644 packages/db/shared/schemas/objects/NestedEnumCommunicationProviderWithAggregatesFilter.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsArgs.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsAvgAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsAvgOrderByAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCountAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCountOrderByAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCreateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCreateManyInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCreateNestedOneWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCreateOrConnectWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsCreateWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsInclude.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsMaxAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsMaxOrderByAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsMinAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsMinOrderByAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsNullableScalarRelationFilter.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsOrderByWithAggregationInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsOrderByWithRelationInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsScalarWhereWithAggregatesInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsSelect.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsSumAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsSumOrderByAggregateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedCreateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedCreateNestedOneWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedCreateWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedUpdateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedUpdateManyInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedUpdateOneWithoutUserNestedInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUncheckedUpdateWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpdateInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpdateManyMutationInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpdateOneWithoutUserNestedInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpdateToOneWithWhereWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpdateWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsUpsertWithoutUserInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsWhereInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/TelnyxSettingsWhereUniqueInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserCreateNestedOneWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserCreateOrConnectWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserCreateWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUncheckedCreateWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUncheckedUpdateWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUpdateOneRequiredWithoutTelnyxSettingsNestedInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUpdateToOneWithWhereWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUpdateWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/objects/UserUpsertWithoutTelnyxSettingsInput.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsAggregateResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsCountResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsCreateManyResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsCreateResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsDeleteManyResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsDeleteResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsFindFirstResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsFindManyResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsFindUniqueResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsGroupByResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsUpdateManyResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsUpdateResult.schema.ts
create mode 100644 packages/db/shared/schemas/results/TelnyxSettingsUpsertResult.schema.ts
create mode 100644 packages/db/shared/schemas/updateManyAndReturnTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/updateManyTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/updateOneTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/upsertOneTelnyxSettings.schema.ts
create mode 100644 packages/db/shared/schemas/variants/input/TelnyxSettings.input.ts
create mode 100644 packages/db/shared/schemas/variants/pure/TelnyxSettings.pure.ts
create mode 100644 packages/db/shared/schemas/variants/result/TelnyxSettings.result.ts
diff --git a/README.md b/README.md
index 0c115f33..ed547a09 100644
--- a/README.md
+++ b/README.md
@@ -657,16 +657,17 @@ sudo systemctl start cloudflared
---
-### Variant — Tunnel scoped to Twilio webhooks only
+### Variant — Tunnel scoped to Twilio/Telnyx webhooks only
The example above tunnels the whole app (`service: http://localhost:3000`) to the public
-subdomain. If the only reason you need public access is Twilio's webhooks (inbound SMS/voice —
-see [Twilio In-Browser Calling Setup](#twilio-in-browser-calling-setup-dial-pad) below), point
-the tunnel at nginx's port-80 block instead, which only forwards `/api/twilio/*` and returns
-`403` for everything else (see [nginx.conf](nginx.conf)) — the rest of the app stays unreachable
-from the internet even though the tunnel is live.
+subdomain. If the only reason you need public access is webhooks — Twilio's (dial pad outbound
+calls only — see [Twilio In-Browser Calling Setup](#twilio-in-browser-calling-setup-dial-pad)
+below) and Telnyx's (everything else — see [Telnyx Setup](#telnyx-setup) below) — point the
+tunnel at nginx's port-80 block instead, which only forwards `/api/twilio/*` and `/api/telnyx/*`
+and returns `403` for everything else (see [nginx.conf](nginx.conf)) — the rest of the app stays
+unreachable from the internet even though the tunnel is live.
-Example actually used for Summit Dental Care's Twilio integration — paste this into
+Example actually used for Summit Dental Care's Twilio/Telnyx integration — paste this into
`/etc/cloudflared/config.yml` (`sudo nano /etc/cloudflared/config.yml`, this is a YAML file, not
the certbot `.ini` credentials file from the LAN HTTPS section above):
@@ -690,8 +691,8 @@ sudo systemctl start cloudflared
```
Skip Steps 8–9 (Vite `allowedHosts` / backend CORS) for this variant — the public hostname never
-reaches the frontend or triggers a login/API CORS check, only the unauthenticated Twilio webhook
-routes.
+reaches the frontend or triggers a login/API CORS check, only the unauthenticated Twilio/Telnyx
+webhook routes.
---
@@ -960,6 +961,64 @@ Once saved, the dial pad on the Patient Connection page is fully functional. The
---
+## Telnyx Setup
+
+Telnyx handles everything except the in-browser dial pad above: outbound/inbound SMS (including
+the AI text conversation), inbound voicemail, and both staff-triggered and AI-driven outbound
+calls. It uses **TeXML** (Telnyx's TwiML-compatible voice API), which is why the webhook XML looks
+just like the Twilio webhooks above.
+
+This reuses the same Cloudflare Tunnel already set up for Twilio above (see
+[Cloudflare Tunnel Setup](#cloudflare-tunnel-setup-remote-access-per-office)) — no new tunnel or
+DNS record needed, Telnyx just hits the same public hostname on a different path
+(`/api/telnyx/*` instead of `/api/twilio/*`). If you're using the
+[tunnel-scoped-to-webhooks variant](#variant--tunnel-scoped-to-twiliotelnyx-webhooks-only), make
+sure `nginx.conf`'s port-80 block includes the `/api/telnyx/` `location` block — Telnyx webhooks
+will silently 403 in production without it.
+
+### Step 1 — Buy/assign a phone number for this office
+
+In the [Telnyx Mission Control Portal](https://portal.telnyx.com), buy or port a number for this
+office (each office needs its own Telnyx number, separate from its Twilio dial-pad number).
+
+### Step 2 — Create a Messaging Profile (for SMS)
+
+1. **Messaging → Messaging Profiles → Create Messaging Profile**
+2. Attach this office's phone number to the profile
+3. Set the **Inbound Webhook URL** to:
+ ```
+ https://.mydentalofficemanagement.com/api/telnyx/webhook/sms
+ ```
+4. Note the **Messaging Profile ID** if your account requires one for sending (some number types don't)
+
+### Step 3 — Create a TeXML Application (for calls)
+
+1. **Voice → TeXML Applications → Create TeXML Application**
+2. Set the **Voice Webhook URL** to:
+ ```
+ https://.mydentalofficemanagement.com/api/telnyx/webhook/voice
+ ```
+3. Attach this office's phone number to the application
+4. Note the **Application ID** (also called Connection ID)
+
+### Step 4 — Get an API Key and Account SID
+
+**API Keys & Credentials** in the portal → create an API Key. The **Account SID** (separate from
+the API Key, needed for placing outbound calls) is shown in your account/organization settings.
+
+### Step 5 — Enter credentials in the app
+
+Go to **Settings → Telnyx Settings** and fill in: API Key, Account SID, Phone Number, TeXML
+Application ID, Messaging Profile ID (if applicable), and an optional Voicemail Greeting → Save.
+
+### Step 6 — Webhook signature verification (optional, recommended)
+
+Telnyx signs webhooks with Ed25519. If you want inbound webhook signatures verified (rejecting
+forged requests to your webhook URLs), copy your account's **Public Key** from the portal into
+the Webhook Public Key field in Telnyx Settings.
+
+---
+
## License Key Generator
The license key generator is a private tool that lives only on your dev PC. Use it to generate a new license key for any office every 3 months.
diff --git a/apps/Backend/package.json b/apps/Backend/package.json
index e30ac5be..208e8f83 100755
--- a/apps/Backend/package.json
+++ b/apps/Backend/package.json
@@ -35,6 +35,7 @@
"pdfkit": "^0.17.2",
"sharp": "^0.35.3",
"socket.io": "^4.8.1",
+ "telnyx": "^7.20.0",
"twilio": "^6.0.0",
"ws": "^8.18.0",
"zod": "^3.24.2",
diff --git a/apps/Backend/src/ai/confirmationSms.ts b/apps/Backend/src/ai/confirmationSms.ts
index c850f7cc..4046e8ea 100644
--- a/apps/Backend/src/ai/confirmationSms.ts
+++ b/apps/Backend/src/ai/confirmationSms.ts
@@ -1,6 +1,6 @@
-import twilio from "twilio";
import { prisma as db } from "@repo/db/client";
import { storage } from "../storage";
+import { sendTelnyxSms } from "../comms/telnyx-client";
const CONFIRMATION_FALLBACKS: Record string> = {
English: (d, t) => `Confirmed! Your appointment is on ${d} at ${t}. We look forward to seeing you.`,
@@ -27,20 +27,22 @@ export async function sendAppointmentConfirmationSms(
lang: string,
): Promise {
try {
- const [twilioSettings, patient] = await Promise.all([
- storage.getTwilioSettings(userId),
+ const [telnyxSettings, patient] = await Promise.all([
+ storage.getTelnyxSettings(userId),
db.patient.findUnique({ where: { id: patientId }, select: { phone: true } }),
]);
- if (!twilioSettings || !patient?.phone) return;
+ if (!telnyxSettings || !patient?.phone) return;
const build = CONFIRMATION_FALLBACKS[lang] ?? CONFIRMATION_FALLBACKS["English"]!;
const body = build(dateLabel, time);
- const client = twilio(twilioSettings.accountSid, twilioSettings.authToken);
- await client.messages.create({ body, from: twilioSettings.phoneNumber, to: patient.phone });
+ await sendTelnyxSms({
+ apiKey: telnyxSettings.apiKey, from: telnyxSettings.phoneNumber, to: patient.phone, text: body,
+ messagingProfileId: telnyxSettings.messagingProfileId,
+ });
await storage.createCommunication({
- patientId, userId, channel: "sms", direction: "outbound", status: "sent", body,
+ patientId, userId, channel: "sms", direction: "outbound", status: "sent", body, provider: "telnyx",
});
} catch {
// Silent — don't crash the booking flow over a notification failure
diff --git a/apps/Backend/src/ai/patient-conversation-router.ts b/apps/Backend/src/ai/patient-conversation-router.ts
index 67cf7657..65732995 100644
--- a/apps/Backend/src/ai/patient-conversation-router.ts
+++ b/apps/Backend/src/ai/patient-conversation-router.ts
@@ -1,6 +1,6 @@
-import twilio from "twilio";
import { prisma as db } from "@repo/db/client";
import { storage } from "../storage";
+import { sendTelnyxSms } from "../comms/telnyx-client";
import { runReminderGraph } from "./reminder-graph";
import { runRecallGraph, runRecallBookingStep, hasDateOrTimeSignal } from "./recall-graph";
import { runNewPatientStep } from "./new-patient-graph";
@@ -62,7 +62,7 @@ export function applyOfficeName(template: string, name: string): string {
/** Save an outbound SMS message (always sms channel — used for async follow-ups). */
async function saveOutboundSms(patientId: number, body: string): Promise {
await storage.createCommunication({
- patientId, channel: "sms", direction: "outbound", status: "sent", body,
+ patientId, channel: "sms", direction: "outbound", status: "sent", body, provider: "telnyx",
});
}
@@ -132,8 +132,8 @@ async function runMassHealthCheckAndNotify(
const credentials = await storage.getInsuranceCredentialByUserAndSiteKey(patient.userId, "MH");
if (!credentials) return;
- const twilioSettings = await storage.getTwilioSettings(patient.userId);
- if (!twilioSettings || !patient.phone) return;
+ const telnyxSettings = await storage.getTelnyxSettings(patient.userId);
+ if (!telnyxSettings || !patient.phone) return;
await runEligibilityProcessor({
userId: patient.userId,
@@ -198,11 +198,12 @@ async function runMassHealthCheckAndNotify(
? "asked_self_pay"
: "asked_other_insurance_after_inactive";
- const client = twilio(twilioSettings.accountSid, twilioSettings.authToken);
- await client.messages.create({
- body: resultText,
- from: twilioSettings.phoneNumber,
- to: patient.phone,
+ await sendTelnyxSms({
+ apiKey: telnyxSettings.apiKey,
+ from: telnyxSettings.phoneNumber,
+ to: patient.phone,
+ text: resultText,
+ messagingProfileId: telnyxSettings.messagingProfileId,
});
await saveOutboundSms(patient.id, resultText);
diff --git a/apps/Backend/src/app.ts b/apps/Backend/src/app.ts
index 96494071..eb381371 100755
--- a/apps/Backend/src/app.ts
+++ b/apps/Backend/src/app.ts
@@ -5,6 +5,7 @@ import { errorHandler } from "./middlewares/error.middleware";
import { apiLogger } from "./middlewares/logger.middleware";
import authRoutes from "./routes/auth";
import twilioWebhookRoutes from "./routes/twilio-webhooks";
+import telnyxWebhookRoutes from "./routes/telnyx-webhooks";
import greetingRoutes from "./routes/greeting";
import { authenticateJWT } from "./middlewares/auth.middleware";
import networkBackupPublicRoutes from "./routes/network-backup-public";
@@ -79,6 +80,11 @@ app.use("/api/auth", authRoutes);
app.use("/api/greeting", greetingRoutes);
// Twilio webhooks are public — Twilio sends no JWT token
app.use("/api/twilio", express.urlencoded({ extended: false }), twilioWebhookRoutes);
+// Telnyx webhooks are public. The Messaging webhook (/webhook/sms) sends JSON;
+// the TeXML voice callbacks (/webhook/voice*, /webhook/ai-voice, /webhook/say)
+// are form-encoded, Twilio-compatible — parse both, each only applies to
+// requests with the matching Content-Type.
+app.use("/api/telnyx", express.json(), express.urlencoded({ extended: false }), telnyxWebhookRoutes);
// Network backup endpoints use their own API key auth — must be before authenticateJWT
app.use("/api/database-management", networkBackupPublicRoutes);
// All other API routes require JWT
diff --git a/apps/Backend/src/comms/telnyx-client.ts b/apps/Backend/src/comms/telnyx-client.ts
new file mode 100644
index 00000000..037f5a14
--- /dev/null
+++ b/apps/Backend/src/comms/telnyx-client.ts
@@ -0,0 +1,56 @@
+import Telnyx from "telnyx";
+
+export function getTelnyxClient(apiKey: string) {
+ return new Telnyx({ apiKey });
+}
+
+/** Sends an SMS via Telnyx's Messaging API. Mirrors the shape of Twilio's
+ * `client.messages.create` return so call sites need minimal changes. */
+export async function sendTelnyxSms(opts: {
+ apiKey: string;
+ from: string;
+ to: string;
+ text: string;
+ messagingProfileId?: string | null;
+}): Promise<{ id: string; status: string }> {
+ const client = getTelnyxClient(opts.apiKey);
+ const res = await client.messages.send({
+ from: opts.from,
+ to: opts.to,
+ text: opts.text,
+ ...(opts.messagingProfileId ? { messaging_profile_id: opts.messagingProfileId } : {}),
+ });
+ const data = res.data;
+ return { id: data?.id ?? "", status: data?.to?.[0]?.status ?? "queued" };
+}
+
+/**
+ * Places an outbound call via Telnyx's TeXML product (not Call Control —
+ * TeXML was chosen specifically so the existing hand-built TwiML-style XML
+ * in the webhook handlers ports over largely unchanged): POST
+ * /texml/Accounts/{accountSid}/Calls, which tells Telnyx to fetch TeXML call
+ * instructions from `webhookUrl` once the call connects.
+ */
+export async function placeTexmlCall(opts: {
+ apiKey: string;
+ accountSid: string;
+ texmlApplicationId?: string | null;
+ from: string;
+ to: string;
+ webhookUrl: string;
+}): Promise<{ id: string; status: string }> {
+ const client = getTelnyxClient(opts.apiKey);
+ const res = await client.texml.accounts.calls.calls(opts.accountSid, {
+ body: {
+ Url: opts.webhookUrl,
+ From: opts.from,
+ To: opts.to,
+ ...(opts.texmlApplicationId ? { ApplicationSid: opts.texmlApplicationId } : {}),
+ },
+ });
+ // The SDK's typed CallCallsResponse only declares { from, status, to } — no
+ // call id field. Falling back defensively since a CallSid is very likely
+ // present in the real response; verify the actual field name against a
+ // live test call before relying on this for Communication correlation.
+ return { id: (res as any).sid ?? (res as any).call_sid ?? (res as any).CallSid ?? "", status: res.status ?? "queued" };
+}
diff --git a/apps/Backend/src/routes/index.ts b/apps/Backend/src/routes/index.ts
index 8b8914ef..1838d519 100755
--- a/apps/Backend/src/routes/index.ts
+++ b/apps/Backend/src/routes/index.ts
@@ -33,6 +33,7 @@ import paymentsReportsRoutes from "./payments-reports";
import exportPaymentsReportsRoutes from "./export-payments-reports";
import jobMonitorRoutes from "./job-monitor";
import twilioRoutes from "./twilio";
+import telnyxRoutes from "./telnyx";
import aiSettingsRoutes from "./ai-settings";
import officeHoursRoutes from "./office-hours";
import officeContactRoutes from "./office-contact";
@@ -85,6 +86,7 @@ router.use("/export-payments-reports", exportPaymentsReportsRoutes);
router.use("/job-monitor", jobMonitorRoutes);
router.use("/type-agent", typeAgentRoutes);
router.use("/twilio", twilioRoutes);
+router.use("/telnyx", telnyxRoutes);
router.use("/ai", aiSettingsRoutes);
router.use("/office-hours", officeHoursRoutes);
router.use("/office-contact", officeContactRoutes);
diff --git a/apps/Backend/src/routes/telnyx-webhooks.ts b/apps/Backend/src/routes/telnyx-webhooks.ts
new file mode 100644
index 00000000..bdf75f5b
--- /dev/null
+++ b/apps/Backend/src/routes/telnyx-webhooks.ts
@@ -0,0 +1,897 @@
+import express, { Request, Response } from "express";
+import { storage } from "../storage";
+import { DEFAULT_GREETING, DEFAULT_RECALL_GREETING } from "../storage/twilio-storage";
+import { prisma as db } from "@repo/db/client";
+import { sendTelnyxSms } from "../comms/telnyx-client";
+import { runNewPatientStep } from "../ai/new-patient-graph";
+import {
+ parseDateOnlyFromMessage,
+ parseTime,
+ isOfficeDayOpen,
+ isWithinOfficeHours,
+ getOfficeHoursDisplay,
+ timeLabel,
+} from "../ai/reschedule-graph";
+import { getLlm, resolveAiProvider, type AiProvider } from "../ai/llm-factory";
+import { soundsLikeGoodbye } from "../ai/voice-assistant";
+import { getPublicBaseUrl } from "../utils/publicUrl";
+import {
+ routePatientTurn, getAppointmentDatetime, applyOfficeName,
+} from "../ai/patient-conversation-router";
+import {
+ getHandoff, getAfterHoursHandoff,
+ getStage, setStage, resetConversation, startRecallConversation,
+ setPendingReschedule, getPendingReschedule, clearPendingReschedule,
+ type ConversationStage,
+} from "../ai/aiHandoffStore";
+
+const router = express.Router();
+
+// ── Helpers ───────────────────────────────────────────────────────────────────
+
+function escapeXml(text: string): string {
+ return text
+ .replace(/&/g, "&").replace(//g, ">")
+ .replace(/"/g, """).replace(/'/g, "'");
+}
+
+function ok(res: Response) {
+ return res.status(200).json({ ok: true });
+}
+
+type TelnyxSmsSettings = { apiKey: string; phoneNumber: string; messagingProfileId?: string | null };
+
+/** Telnyx has no synchronous TeXML-style SMS reply — every reply is a
+ * separate outbound API call. Sequential await preserves ordering. */
+async function sendReplies(settings: TelnyxSmsSettings, to: string, texts: string[]): Promise {
+ for (const text of texts) {
+ await sendTelnyxSms({
+ apiKey: settings.apiKey, from: settings.phoneNumber, to, text,
+ messagingProfileId: settings.messagingProfileId,
+ });
+ }
+}
+
+/** Check if right now is outside office hours for the given user. */
+async function isAfterHours(userId: number): Promise {
+ const record = await storage.getOfficeHours(userId);
+ if (!record?.data) return false; // no hours configured → treat as in-hours
+
+ const data = record.data as any;
+ const now = new Date();
+ const days = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];
+ const day = days[now.getDay()];
+
+ const slot = data.doctors?.[day];
+ if (!slot?.enabled) return true; // office closed today
+
+ const hhmm = `${String(now.getHours()).padStart(2,"0")}:${String(now.getMinutes()).padStart(2,"0")}`;
+ if (hhmm >= slot.amStart && hhmm <= slot.amEnd) return false;
+ if (hhmm >= slot.pmStart && hhmm <= slot.pmEnd) return false;
+ return true;
+}
+
+/** Save an outbound message and return the text. */
+async function saveOutbound(patientId: number, body: string): Promise {
+ await storage.createCommunication({
+ patientId, channel: "sms", direction: "outbound", status: "sent", body, provider: "telnyx",
+ });
+}
+
+// ── Empathetic one-liner (instant keyword-based, no API latency) ─────────────
+
+function getEmpatheticAck(message: string, language: string): string {
+ const hasPain = /pain|hurt|ache|toothache|emergency|urgent|asap|bleeding|broke|crack|fell out|swollen|infection|abscess/i.test(message);
+
+ const painMsgs: Record = {
+ English: "Sorry to hear that! We are here to help you.",
+ Spanish: "¡Lo sentimos! Estamos aquí para ayudarle.",
+ Portuguese: "Lamentamos isso! Estamos aqui para ajudá-lo.",
+ Mandarin: "很遗憾听到这个消息!我们在这里帮助您。",
+ Cantonese: "很遺憾聽到這個消息!我們在這裡幫助您。",
+ Arabic: "آسف لسماع ذلك! نحن هنا لمساعدتك.",
+ "Haitian Creole": "Nou regrèt tande sa! Nou la pou ede ou.",
+ };
+ const normalMsgs: Record = {
+ English: "No problem!",
+ Spanish: "¡Sin problema!",
+ Portuguese: "Sem problema!",
+ Mandarin: "没问题!",
+ Cantonese: "沒問題!",
+ Arabic: "لا مشكلة!",
+ "Haitian Creole": "Pa gen pwoblèm!",
+ };
+
+ return hasPain
+ ? (painMsgs[language] ?? painMsgs["English"]!)
+ : (normalMsgs[language] ?? normalMsgs["English"]!);
+}
+
+// ── Stale-conversation handling (SMS) ─────────────────────────────────────────
+// Unlike a phone call, a long gap between texts doesn't necessarily mean the
+// patient walked away — replies are often just slow. So instead of hard
+// resetting on any idle gap, we only second-guess the stored stage once the
+// gap crosses STALE_SMS_THRESHOLD_MS, and even then we ask the LLM to look at
+// the recent history before deciding whether the new text is still answering
+// the last question or reads like a fresh, unrelated conversation.
+
+const STALE_SMS_THRESHOLD_MS = 3 * 60 * 60 * 1000; // 3 hours
+
+const STILL_HERE_MSGS: Record = {
+ English: "It's been a while since our last message. How can I help you today?",
+ Spanish: "Ha pasado un tiempo desde nuestro último mensaje. ¿Cómo puedo ayudarle hoy?",
+ Portuguese: "Já faz um tempo desde nossa última mensagem. Como posso ajudá-lo hoje?",
+ Mandarin: "距离我们上次的消息已经有一段时间了。今天我能帮您什么?",
+ Cantonese: "距離我們上次嘅消息已經有一段時間喇。今日我可以點幫您?",
+ Arabic: "لقد مر بعض الوقت منذ آخر رسالة لنا. كيف يمكنني مساعدتك اليوم؟",
+ "Haitian Creole": "Sa gen yon ti tan depi dènye mesaj nou. Kijan mwen ka ede ou jodi a?",
+};
+
+/**
+ * After a long idle gap, ask the LLM whether the patient's new text still
+ * answers what was last asked (recent history + stage in context) or reads
+ * like an unrelated, fresh message. Defaults to "continue" on any failure —
+ * an LLM call error shouldn't be the reason a legitimate reply gets bounced.
+ */
+async function isLikelyContinuation(
+ recentHistory: { role: "user" | "assistant"; text: string }[],
+ newMessage: string,
+ stage: ConversationStage,
+ apiKey: string,
+ provider: AiProvider,
+ model?: string,
+): Promise {
+ if (recentHistory.length === 0) return true;
+ try {
+ const llm = getLlm(provider, apiKey, model);
+ const transcript = recentHistory
+ .map(m => `${m.role === "assistant" ? "Office" : "Patient"}: ${m.text}`)
+ .join("\n");
+ const res = await llm.invoke([
+ {
+ role: "system",
+ content:
+ `You are helping a dental office text-messaging assistant resume a conversation with a patient after a long gap of silence. ` +
+ `Here is the recent conversation (oldest first):\n${transcript}\n\n` +
+ `The assistant is currently waiting on stage "${stage}" of a booking flow. ` +
+ `The patient just sent a new message after the long gap: "${newMessage}"\n\n` +
+ `Does this new message still look like it's answering/continuing that same conversation, or does it read like an unrelated, fresh message (e.g. a new question, a greeting, a different topic)? ` +
+ `Reply with ONLY one word: "continue" or "restart".`,
+ },
+ ]);
+ return !/restart/i.test(String(res.content));
+ } catch {
+ return true;
+ }
+}
+
+// ── POST /api/telnyx/webhook/sms ──────────────────────────────────────────────
+
+const CONVO_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
+
+// In-memory conversation state for unknown phone numbers (no patient record yet).
+// Keyed by normalized "From" number.
+const unknownPhoneConvos = new Map();
+
+router.post("/webhook/sms", async (req: Request, res: Response): Promise => {
+ try {
+ // Telnyx webhooks are JSON with a nested event envelope, not Twilio's flat
+ // form-encoded From/To/Body/MessageSid. Ignore any event type other than
+ // an inbound message — Telnyx may fan message.sent/message.finalized into
+ // the same webhook URL depending on portal config.
+ const event = (req.body as any)?.data;
+ if (!event || event.event_type !== "message.received") return ok(res);
+ const payload = event.payload || {};
+ const From = payload?.from?.phone_number || "";
+ const To = payload?.to?.[0]?.phone_number || "";
+ const Body = payload?.text || "";
+ const MessageSid = payload?.id;
+
+ const normalizedFrom = (From || "").replace(/\D/g, "");
+ // Ordered by id so that when duplicate patients share a phone number
+ // (one record per insurance), the earliest-created record is the default.
+ const allPatients = await db.patient.findMany({
+ select: { id: true, phone: true, userId: true, preferredLanguage: true },
+ orderBy: { id: "asc" },
+ });
+ const patient = allPatients.find(
+ (p) => p.phone && p.phone.replace(/\D/g, "") === normalizedFrom
+ );
+
+ if (!patient) {
+ // Unknown number — look up office by the Telnyx "To" number
+ const normalizedTo = (To || "").replace(/\D/g, "");
+ const telnyxRow = await db.telnyxSettings.findFirst({
+ where: { phoneNumber: { contains: normalizedTo.slice(-10) } },
+ });
+ if (!telnyxRow) return ok(res);
+
+ const userId = telnyxRow.userId;
+ const openPhoneReply = await storage.getOpenPhoneReply(userId);
+ if (!openPhoneReply) return ok(res);
+
+ // Fetch required context for this office
+ const aiSettings = await storage.getAiSettings(userId);
+ const activeAiU = resolveAiProvider(aiSettings ?? {});
+ if (!activeAiU) return ok(res);
+
+ const chatTemplates = await storage.getAiChatTemplates(userId);
+ const officeContact = await storage.getOfficeContact(userId);
+ const officeName = (officeContact as any)?.officeName?.trim() || "";
+ const convo = unknownPhoneConvos.get(normalizedFrom);
+ let stage = convo?.stage ?? "initial";
+ const language = convo?.language ?? "English";
+
+ // Reset conversation if idle for more than 5 minutes
+ if (
+ stage !== "initial" && stage !== "done" &&
+ convo?.lastActivityAt &&
+ Date.now() - convo.lastActivityAt.getTime() > CONVO_TIMEOUT_MS
+ ) {
+ stage = "initial";
+ unknownPhoneConvos.set(normalizedFrom, { userId, stage: "initial", language, lastActivityAt: new Date() });
+ }
+
+ const replyUnknown = async (
+ text: string,
+ nextStage: ConversationStage,
+ pendingApptDate?: { date: Date; dateLabel: string },
+ ) => {
+ unknownPhoneConvos.set(normalizedFrom, {
+ userId, stage: nextStage, language,
+ lastActivityAt: new Date(),
+ ...(pendingApptDate ? { pendingApptDate } : { pendingApptDate: convo?.pendingApptDate }),
+ });
+ await sendReplies(telnyxRow, From, [text]);
+ return ok(res);
+ };
+
+ if (stage === "initial" || stage === "done") {
+ // MSG 1: AI intro
+ const rawGreeting = chatTemplates.newPatientGreeting ||
+ `Hi! My name is Lisa, the dedicated AI assistant at {officeName}. I can help you schedule an appointment, check your insurance, and answer general questions 24/7.`;
+ const introText = applyOfficeName(rawGreeting, officeName);
+
+ // MSG 2: Empathetic acknowledgment
+ const empatheticText = getEmpatheticAck(Body, language);
+
+ // MSG 3: Detect intent from first message
+ const isReschedule = /reschedule|rescheduler|change.*appoint|modify.*appoint|move.*appoint|reprogramar|reagendar|cambiar|mudar/i.test(Body);
+ let msg3Unk: string;
+ let nextStage3Unk: ConversationStage;
+
+ if (isReschedule) {
+ const notFoundMsgs: Record = {
+ English: "I couldn't find an appointment associated with your number. Please leave your name and a good callback number and our receptionist will assist you as soon as possible.",
+ Spanish: "No encontré una cita asociada a su número. Por favor deje su nombre y un número de contacto y nuestra recepcionista le atenderá lo antes posible.",
+ Portuguese: "Não encontrei uma consulta associada ao seu número. Por favor deixe seu nome e um número de contato e nossa recepcionista lhe atenderá o mais breve possível.",
+ Mandarin: "我找不到与您号码关联的预约。请留下您的姓名和联系电话,我们的前台将尽快与您联系。",
+ Cantonese: "我找不到與您號碼關聯的預約。請留下您的姓名和聯絡電話,我們的接待員將盡快與您聯絡。",
+ Arabic: "لم أجد موعداً مرتبطاً برقمك. يرجى ترك اسمك ورقم هاتف للتواصل وسيساعدك موظف الاستقبال في أقرب وقت.",
+ "Haitian Creole": "Mwen pa jwenn yon randevou ki asosye ak nimewo ou. Tanpri kite non ou ak yon nimewo pou rele epi resepsyonis nou an pral ede ou pi vit posib.",
+ };
+ msg3Unk = notFoundMsgs[language] ?? notFoundMsgs["English"]!;
+ nextStage3Unk = "collecting_contact_info";
+ } else {
+ const newOrExistingMsgs: Record = {
+ English: "Can you please tell me if you are a new or existing patient?",
+ Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
+ Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
+ Mandarin: "请问您是新患者还是现有患者?",
+ Cantonese: "請問您是新病人還是現有病人?",
+ Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
+ "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
+ };
+ msg3Unk = newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!;
+ nextStage3Unk = "asked_new_or_existing";
+ }
+
+ // Update store then send all 3 in guaranteed order
+ unknownPhoneConvos.set(normalizedFrom, {
+ userId, stage: nextStage3Unk, language, lastActivityAt: new Date(),
+ });
+ await sendReplies(telnyxRow, From, [introText, empatheticText, msg3Unk]);
+ return ok(res);
+ }
+
+ // ── Unknown: asked_new_or_reschedule (fallback for in-progress conversations) ──
+ if (stage === "asked_new_or_reschedule") {
+ const isReschedule = /reschedule|rescheduler|change|modify|move|reprogramar|reagendar|cambiar|mudar/i.test(Body);
+ if (isReschedule) {
+ const notFoundMsgs: Record = {
+ English: "I couldn't find an appointment associated with your number. Please leave your name and a good callback number and our receptionist will assist you as soon as possible.",
+ Spanish: "No encontré una cita asociada a su número. Por favor deje su nombre y un número de contacto y nuestra recepcionista le atenderá lo antes posible.",
+ Portuguese: "Não encontrei uma consulta associada ao seu número. Por favor deixe seu nome e um número de contato e nossa recepcionista lhe atenderá o mais breve possível.",
+ Mandarin: "我找不到与您号码关联的预约。请留下您的姓名和联系电话,我们的前台将尽快与您联系。",
+ Cantonese: "我找不到與您號碼關聯的預約。請留下您的姓名和聯絡電話,我們的接待員將盡快與您聯絡。",
+ Arabic: "لم أجد موعداً مرتبطاً برقمك. يرجى ترك اسمك ورقم هاتف للتواصل وسيساعدك موظف الاستقبال في أقرب وقت.",
+ "Haitian Creole": "Mwen pa jwenn yon randevou ki asosye ak nimewo ou. Tanpri kite non ou ak yon nimewo pou rele epi resepsyonis nou an pral ede ou pi vit posib.",
+ };
+ return await replyUnknown(notFoundMsgs[language] ?? notFoundMsgs["English"]!, "collecting_contact_info");
+ }
+ const newOrExistingMsgs: Record = {
+ English: "Can you please tell me if you are a new or existing patient?",
+ Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
+ Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
+ Mandarin: "请问您是新患者还是现有患者?",
+ Cantonese: "請問您是新病人還是現有病人?",
+ Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
+ "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
+ };
+ return await replyUnknown(newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!, "asked_new_or_existing");
+ }
+
+ // ── Unknown: asked_appointment_time → parse date, check office hours ──
+ if (stage === "asked_appointment_time") {
+ const parsedDate = await parseDateOnlyFromMessage(Body, activeAiU.key, activeAiU.provider, activeAiU.model);
+ if (!parsedDate) {
+ const msgs: Record = {
+ English: "I didn't catch that. What day would you prefer? For example: 'May 28', 'next Monday', or '5/28'.",
+ Spanish: "No entendí. ¿Qué día prefiere? Por ejemplo: '28 de mayo', 'próximo lunes' o '28/5'.",
+ Portuguese: "Não entendi. Que dia você prefere? Por exemplo: '28 de maio', 'próxima segunda' ou '28/5'.",
+ Mandarin: "我没听清。您希望哪天?例如:'5月28日'、'下周一'或'5/28'。",
+ Cantonese: "我沒聽清。您希望哪天?例如:'5月28日'、'下週一'或'5/28'。",
+ Arabic: "لم أفهم. ما اليوم الذي تفضله؟ مثلاً: '28 مايو' أو '5/28'.",
+ "Haitian Creole": "Mwen pa konprann. Ki jou ou prefere? Pa egzanp: '28 me', 'Lendi pwochèn', oswa '5/28'.",
+ };
+ return await replyUnknown(msgs[language] ?? msgs["English"]!, "asked_appointment_time");
+ }
+ const { date, dateLabel } = parsedDate;
+ const dayCheck = await isOfficeDayOpen(date, userId);
+ if (!dayCheck.open) {
+ const msgs: Record = {
+ English: `Our office is closed on ${dateLabel} (${dayCheck.displayDay}). Can you please choose another day?`,
+ Spanish: `Nuestra oficina está cerrada el ${dateLabel} (${dayCheck.displayDay}). ¿Puede elegir otro día?`,
+ Portuguese: `Nosso consultório está fechado em ${dateLabel} (${dayCheck.displayDay}). Pode escolher outro dia?`,
+ Mandarin: `我们诊所在 ${dateLabel}(${dayCheck.displayDay})不开放。请您选择另一天好吗?`,
+ Cantonese: `我們診所在 ${dateLabel}(${dayCheck.displayDay})不開放。請您選擇另一天好嗎?`,
+ Arabic: `مكتبنا مغلق في ${dateLabel} (${dayCheck.displayDay}). هل يمكنك اختيار يوم آخر؟`,
+ "Haitian Creole": `Biwo nou fèmen nan ${dateLabel} (${dayCheck.displayDay}). Tanpri chwazi yon lòt jou?`,
+ };
+ return await replyUnknown(msgs[language] ?? msgs["English"]!, "asked_appointment_time");
+ }
+ const askTimeMsgs: Record = {
+ English: `What time do you prefer on ${dateLabel}?`,
+ Spanish: `¿A qué hora prefiere el ${dateLabel}?`,
+ Portuguese: `Que horário você prefere em ${dateLabel}?`,
+ Mandarin: `您希望在 ${dateLabel} 几点?`,
+ Cantonese: `您希望在 ${dateLabel} 幾點?`,
+ Arabic: `ما الوقت الذي تفضله في ${dateLabel}؟`,
+ "Haitian Creole": `Ki lè ou prefere nan ${dateLabel}?`,
+ };
+ return await replyUnknown(
+ askTimeMsgs[language] ?? askTimeMsgs["English"]!,
+ "asked_new_appt_time_for_date",
+ { date, dateLabel },
+ );
+ }
+
+ // ── Unknown: asked_new_appt_time_for_date → parse time, check hours ───
+ if (stage === "asked_new_appt_time_for_date") {
+ const pendingApptDate = convo?.pendingApptDate;
+ if (!pendingApptDate) {
+ return await replyUnknown(
+ "I lost track of the date. What day would you prefer?",
+ "asked_appointment_time",
+ );
+ }
+ const startTime = await parseTime(Body, activeAiU.key, activeAiU.provider, activeAiU.model);
+ if (!startTime) {
+ const msgs: Record = {
+ English: `I didn't catch the time. What time do you prefer on ${pendingApptDate.dateLabel}? For example: '10am' or '2pm'.`,
+ Spanish: `No entendí la hora. ¿Qué hora prefiere el ${pendingApptDate.dateLabel}? Por ejemplo: '10am' o '2pm'.`,
+ Portuguese: `Não entendi o horário. Que hora você prefere em ${pendingApptDate.dateLabel}? Por exemplo: '10h' ou '14h'.`,
+ Mandarin: `我没听清时间。您在 ${pendingApptDate.dateLabel} 几点?例如:上午10点或下午2点。`,
+ Cantonese: `我沒聽清時間。您在 ${pendingApptDate.dateLabel} 幾點?例如:上午10點或下午2點。`,
+ Arabic: `لم أفهم الوقت. ما الوقت الذي تفضله في ${pendingApptDate.dateLabel}؟ مثلاً: 10 صباحاً أو 2 مساءً.`,
+ "Haitian Creole": `Mwen pa konprann lè a. Ki lè ou prefere nan ${pendingApptDate.dateLabel}? Pa egzanp: 10am oswa 2pm.`,
+ };
+ return await replyUnknown(msgs[language] ?? msgs["English"]!, "asked_new_appt_time_for_date");
+ }
+ const withinHours = await isWithinOfficeHours(pendingApptDate.date, startTime, userId);
+ if (!withinHours) {
+ const hoursDisplay = await getOfficeHoursDisplay(pendingApptDate.date, userId);
+ const timeLbl = timeLabel(startTime);
+ const msgs: Record = {
+ English: hoursDisplay
+ ? `Our office is not available at ${timeLbl} on ${pendingApptDate.dateLabel}. Our hours are ${hoursDisplay}. What other time do you prefer?`
+ : `Our office is not available at ${timeLbl} on ${pendingApptDate.dateLabel}. What other time do you prefer?`,
+ Spanish: hoursDisplay
+ ? `Nuestra oficina no está disponible a las ${timeLbl} el ${pendingApptDate.dateLabel}. Nuestro horario es ${hoursDisplay}. ¿Qué otro horario prefiere?`
+ : `Nuestra oficina no está disponible a las ${timeLbl} el ${pendingApptDate.dateLabel}. ¿Qué otro horario prefiere?`,
+ Portuguese: hoursDisplay
+ ? `Nosso consultório não está disponível às ${timeLbl} em ${pendingApptDate.dateLabel}. Nosso horário é ${hoursDisplay}. Que outro horário você prefere?`
+ : `Nosso consultório não está disponível às ${timeLbl} em ${pendingApptDate.dateLabel}. Que outro horário você prefere?`,
+ Mandarin: hoursDisplay
+ ? `我们诊所在 ${pendingApptDate.dateLabel} ${timeLbl} 不开放。工作时间是 ${hoursDisplay}。您希望改什么时间?`
+ : `我们诊所在 ${pendingApptDate.dateLabel} ${timeLbl} 不开放。您希望改什么时间?`,
+ Cantonese: hoursDisplay
+ ? `我們診所在 ${pendingApptDate.dateLabel} ${timeLbl} 不開放。工作時間是 ${hoursDisplay}。您希望改什麼時間?`
+ : `我們診所在 ${pendingApptDate.dateLabel} ${timeLbl} 不開放。您希望改什麼時間?`,
+ Arabic: hoursDisplay
+ ? `مكتبنا غير متاح في ${timeLbl} يوم ${pendingApptDate.dateLabel}. ساعات العمل: ${hoursDisplay}. ما وقت آخر تفضله؟`
+ : `مكتبنا غير متاح في ${timeLbl} يوم ${pendingApptDate.dateLabel}. ما وقت آخر تفضله؟`,
+ "Haitian Creole": hoursDisplay
+ ? `Biwo nou pa disponib a ${timeLbl} nan ${pendingApptDate.dateLabel}. Orè nou se ${hoursDisplay}. Ki lòt lè ou prefere?`
+ : `Biwo nou pa disponib a ${timeLbl} nan ${pendingApptDate.dateLabel}. Ki lòt lè ou prefere?`,
+ };
+ return await replyUnknown(msgs[language] ?? msgs["English"]!, "asked_new_appt_time_for_date");
+ }
+ const apptLabel = `${pendingApptDate.dateLabel} at ${timeLabel(startTime)}`;
+ const confirmMsgs: Record = {
+ English: `Thank you! Your preferred appointment is ${apptLabel}. Our receptionist will confirm the details with you shortly.`,
+ Spanish: `¡Gracias! Su cita preferida es el ${apptLabel}. Nuestra recepcionista confirmará los detalles con usted en breve.`,
+ Portuguese: `Obrigado! Sua consulta preferida é em ${apptLabel}. Nossa recepcionista confirmará os detalhes em breve.`,
+ Mandarin: `谢谢!您的预约时间为 ${apptLabel}。我们的前台将很快与您确认详情。`,
+ Cantonese: `多謝!您的預約時間為 ${apptLabel}。我們的接待員將很快與您確認詳情。`,
+ Arabic: `شكراً! موعدك المفضل هو ${apptLabel}. ستتواصل معك موظفة الاستقبال قريباً لتأكيد التفاصيل.`,
+ "Haitian Creole": `Mèsi! Randevou ou a se ${apptLabel}. Resepsyonis nou an pral konfime detay yo ak ou byento.`,
+ };
+ return await replyUnknown(confirmMsgs[language] ?? confirmMsgs["English"]!, "done");
+ }
+
+ // Multi-step new patient stages for unknown numbers
+ const unknownNewPatientStages: ConversationStage[] = [
+ "new_patient_greeted", "asked_new_or_existing",
+ "asked_new_patient_insurance", "asked_insurance_type",
+ "asked_masshealth_check_consent", "asked_existing_insurance",
+ "asked_appointment_preference",
+ "asked_self_pay", "asked_other_insurance_after_inactive",
+ "collecting_contact_info",
+ ];
+ if (unknownNewPatientStages.includes(stage)) {
+ const { reply: aiReply, nextStage } = await runNewPatientStep(
+ Body, stage, language, activeAiU.key, chatTemplates.generalFallback, activeAiU.provider, activeAiU.model
+ );
+ return await replyUnknown(aiReply, nextStage);
+ }
+
+ return ok(res);
+ }
+
+ // Save inbound message
+ await storage.createCommunication({
+ patientId: patient.id, channel: "sms", direction: "inbound",
+ status: "delivered", body: Body, twilioSid: MessageSid, provider: "telnyx",
+ });
+
+ // Per-patient handoff toggle must be ON
+ if (!await getHandoff(patient.userId, patient.id)) return ok(res);
+
+ const aiSettings = await storage.getAiSettings(patient.userId);
+ const activeAi = resolveAiProvider(aiSettings ?? {});
+ if (!activeAi) return ok(res);
+
+ const telnyxSettings = await storage.getTelnyxSettings(patient.userId);
+ if (!telnyxSettings) return ok(res);
+
+ const language = patient.preferredLanguage || "English";
+ let stage = await getStage(patient.userId, patient.id);
+ const chatTemplates = await storage.getAiChatTemplates(patient.userId);
+
+ // Long idle gap: don't blindly resume (SMS replies are often just slow),
+ // but don't blindly reset either — check whether the new text still reads
+ // like a continuation before deciding.
+ if (stage !== "initial" && stage !== "done") {
+ const convRow = await db.patientConversation.findUnique({
+ where: { patientId: patient.id },
+ select: { updatedAt: true },
+ });
+ if (convRow?.updatedAt && Date.now() - convRow.updatedAt.getTime() > STALE_SMS_THRESHOLD_MS) {
+ const recentComms = await storage.getCommunicationsByPatient(patient.id);
+ const recentHistory = recentComms.slice(-5).map((c: any) => ({
+ role: (c.direction === "outbound" ? "assistant" : "user") as "assistant" | "user",
+ text: c.body || "",
+ }));
+ const continuing = await isLikelyContinuation(
+ recentHistory, Body, stage, activeAi.key, activeAi.provider, activeAi.model
+ );
+ if (!continuing) {
+ clearPendingReschedule(patient.userId, patient.id);
+ await setStage(patient.userId, patient.id, "initial");
+ stage = "initial";
+ const stillHereText = STILL_HERE_MSGS[language] ?? STILL_HERE_MSGS["English"]!;
+ await saveOutbound(patient.id, stillHereText);
+ await sendReplies(telnyxSettings, From, [stillHereText]);
+ return ok(res);
+ }
+ // Looks like a continuation — fall through and resume the stored stage.
+ }
+ }
+ const officeContact = await storage.getOfficeContact(patient.userId);
+ const officeName = (officeContact as any)?.officeName?.trim() || "";
+
+ // ── Shared business rules (reminder/reschedule/new-patient graphs, plus the
+ // MassHealth and appointment-booking stages) — the exact same code path the
+ // AI voice call webhook uses, so a patient gets identical guardrails and
+ // outcomes regardless of channel.
+ const routed = await routePatientTurn({
+ patient, stage, message: Body, activeAi, chatTemplates, officeName,
+ });
+
+ if (routed.segments.length > 0) {
+ for (const seg of routed.segments) await saveOutbound(patient.id, seg);
+ await sendReplies(telnyxSettings, From, routed.segments);
+ return ok(res);
+ }
+
+ // ── Stage: initial / done (patient texts in fresh) ───────────────────
+ if (stage === "initial" || stage === "done") {
+ const openPhoneReply = await storage.getOpenPhoneReply(patient.userId);
+ const afterHoursEnabled = await getAfterHoursHandoff(patient.userId);
+ const outsideHours = await isAfterHours(patient.userId);
+
+ if (openPhoneReply || (afterHoursEnabled && outsideHours)) {
+ // MSG 1: AI self-introduction
+ const rawGreeting = chatTemplates.newPatientGreeting ||
+ `Hi! My name is Lisa, the dedicated AI assistant at {officeName}. I can help you schedule an appointment, check your insurance, and answer general questions 24/7.`;
+ const introText = applyOfficeName(rawGreeting, officeName);
+
+ // MSG 2: Empathetic acknowledgment of the patient's message
+ const empatheticText = getEmpatheticAck(Body, language);
+
+ // MSG 3: Detect reschedule vs new appointment from initial text
+ const isRescheduleIntent = /reschedule|rescheduler|change.*appoint|modify.*appoint|move.*appoint|reprogramar|reagendar|cambiar|mudar/i.test(Body);
+
+ let msg3: string;
+ let nextStage3: ConversationStage;
+
+ if (isRescheduleIntent) {
+ const apptDatetime = await getAppointmentDatetime(patient.id);
+ if (apptDatetime) {
+ const foundMsgs: Record = {
+ English: `Ok. Just to confirm, your current appointment is on ${apptDatetime}. When would you like to reschedule?`,
+ Spanish: `De acuerdo. Solo para confirmar, su cita actual es el ${apptDatetime}. ¿Cuándo le gustaría reprogramarla?`,
+ Portuguese: `Ok. Só para confirmar, sua consulta atual é em ${apptDatetime}. Quando você gostaria de reagendar?`,
+ Mandarin: `好的。请确认一下,您当前的预约是 ${apptDatetime}。您想重新安排到什么时候?`,
+ Cantonese: `好的。請確認一下,您目前的預約是 ${apptDatetime}。您想重新安排到什麼時候?`,
+ Arabic: `حسناً. فقط للتأكيد، موعدك الحالي في ${apptDatetime}. متى تريد إعادة الجدولة؟`,
+ "Haitian Creole": `Oke. Jis pou konfime, randevou aktyèl ou a se ${apptDatetime}. Ki lè ou ta renmen reprogramè?`,
+ };
+ msg3 = foundMsgs[language] ?? foundMsgs["English"]!;
+ nextStage3 = "asked_reschedule_datetime";
+ } else {
+ const notFoundMsgs: Record = {
+ English: "Ok. I could not find your current appointment. Please tell me when you'd like to reschedule and our receptionist will contact you as soon as possible.",
+ Spanish: "De acuerdo. No pude encontrar su cita actual. Por favor díganos cuándo le gustaría reprogramar y nuestra recepcionista le contactará lo antes posible.",
+ Portuguese: "Ok. Não consegui encontrar sua consulta atual. Por favor, diga-nos quando você gostaria de reagendar e nossa recepcionista entrará em contato o mais breve possível.",
+ Mandarin: "好的。我找不到您当前的预约。请告诉我您希望重新安排的时间,我们的前台将尽快与您联系。",
+ Cantonese: "好的。我找不到您目前的預約。請告訴我您希望重新安排的時間,我們的接待員將盡快與您聯絡。",
+ Arabic: "حسناً. لم أجد موعدك الحالي. يرجى إخبارنا بالوقت الذي تريد إعادة الجدولة إليه وسيتصل بك موظف الاستقبال في أقرب وقت ممكن.",
+ "Haitian Creole": "Oke. Mwen pa t jwenn randevou aktyèl ou. Tanpri di nou ki lè ou ta renmen reprogramè epi resepsyonis nou an pral kontakte ou pi vit posib.",
+ };
+ msg3 = notFoundMsgs[language] ?? notFoundMsgs["English"]!;
+ nextStage3 = "done";
+ }
+ } else {
+ // New appointment (or any other intent) → ask new or existing patient
+ const newOrExistingMsgs: Record = {
+ English: "Can you please tell me if you are a new or existing patient?",
+ Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
+ Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
+ Mandarin: "请问您是新患者还是现有患者?",
+ Cantonese: "請問您是新病人還是現有病人?",
+ Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
+ "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
+ };
+ msg3 = newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!;
+ nextStage3 = "asked_new_or_existing";
+ }
+
+ // Save all 3 outbound messages and set stage
+ await saveOutbound(patient.id, introText);
+ await saveOutbound(patient.id, empatheticText);
+ await saveOutbound(patient.id, msg3);
+ await setStage(patient.userId, patient.id, nextStage3);
+
+ await sendReplies(telnyxSettings, From, [introText, empatheticText, msg3]);
+ return ok(res);
+ }
+ }
+
+ return ok(res);
+
+ } catch (err) {
+ return ok(res);
+ }
+});
+
+// ── POST /api/telnyx/webhook/voice ────────────────────────────────────────────
+
+router.post("/webhook/voice", async (req: Request, res: Response): Promise => {
+ try {
+ const { From, CallSid } = req.body;
+
+ const normalizedFrom = (From || "").replace(/\D/g, "");
+ // Ordered by id — earliest-created record wins when duplicates share a phone.
+ const allPatients = await db.patient.findMany({ select: { id: true, phone: true, userId: true }, orderBy: { id: "asc" } });
+ const patient = allPatients.find(
+ (p: { id: number; phone: string | null; userId: number }) => p.phone && p.phone.replace(/\D/g, "") === normalizedFrom
+ );
+
+ let greeting = "Thank you for calling. Please leave a message after the beep and we will get back to you shortly.";
+ if (patient) {
+ const settings = await storage.getTelnyxSettings(patient.userId);
+ if (settings?.greetingMessage?.trim()) greeting = settings.greetingMessage.trim();
+ }
+
+ if (patient) {
+ await storage.createCommunication({
+ patientId: patient.id, channel: "voice", direction: "inbound",
+ status: "completed", body: "(Inbound call — voicemail below)", twilioSid: CallSid, provider: "telnyx",
+ });
+ }
+
+ const recordingCallbackUrl = `${getPublicBaseUrl(req)}/api/telnyx/webhook/voice-recording`;
+
+ res.set("Content-Type", "text/xml");
+ return res.send(`
+
+ ${greeting}
+
+ We did not receive a recording. Goodbye.
+ `);
+ } catch (err) {
+ res.set("Content-Type", "text/xml");
+ return res.send(`Thank you for calling. Please try again later. `);
+ }
+});
+
+// ── POST /api/telnyx/webhook/voice-recording ──────────────────────────────────
+
+router.post("/webhook/voice-recording", async (req: Request, res: Response): Promise => {
+ try {
+ const { CallSid, RecordingUrl } = req.body;
+ if (RecordingUrl && CallSid) {
+ const comm = await db.communication.findFirst({ where: { twilioSid: CallSid, provider: "telnyx" } });
+ if (comm) {
+ await db.communication.update({
+ where: { id: comm.id },
+ data: { body: `Voicemail: ${RecordingUrl}.mp3` },
+ });
+ }
+ }
+ res.set("Content-Type", "text/xml");
+ return res.send(" ");
+ } catch (err) {
+ res.set("Content-Type", "text/xml");
+ return res.send(" ");
+ }
+});
+
+// ── POST /api/telnyx/webhook/say ──────────────────────────────────────────────
+// Minimal helper endpoint for /make-call's one-shot outbound calls — avoids
+// relying on an unverified "inline TeXML on call creation" SDK feature.
+router.post("/webhook/say", async (req: Request, res: Response): Promise => {
+ const text = typeof req.query.text === "string" ? req.query.text : "Hello, this is a call from your dental office.";
+ res.set("Content-Type", "text/xml");
+ return res.send(`${escapeXml(text)} `);
+});
+
+// ── AI phone call (outbound "AI Call" from Patient Connection) ───────────────
+
+const MAX_AI_CALL_TURNS = 12;
+
+interface AiCallSession {
+ patientId: number;
+ userId: number;
+ phone: string | null;
+ language: string;
+ officeName: string;
+ chatTemplates: Record;
+ history: { role: "assistant" | "user"; text: string }[];
+ turns: number;
+}
+
+const aiCallSessions = new Map();
+
+interface VoiceLocale { gatherLang: string; sayVoice: string; }
+
+/** English/Spanish only for now — Telnyx TeXML's native voice/recognition
+ * coverage for the app's other supported languages (Mandarin, Cantonese,
+ * Arabic, Haitian Creole) is inconsistent, so those fall back to English on
+ * calls. NOTE: voice names below (Polly.*) are carried over from the Twilio
+ * implementation — verify Telnyx TeXML's naming convention
+ * against a real test call before relying on this. */
+function voiceLocaleFor(language: string): VoiceLocale {
+ if (language === "Spanish") return { gatherLang: "es-US", sayVoice: "Polly.Lupe" };
+ return { gatherLang: "en-US", sayVoice: "Polly.Joanna" };
+}
+
+// Spoken greeting is plain text, not LLM-generated, so it can't follow the
+// patient's language on its own — translate it ourselves when the office
+// hasn't overridden the default wording. Matches voiceLocaleFor's English/
+// Spanish-only voice coverage above.
+const GREETING_TRANSLATIONS: Record = {
+ Spanish: "Hola {firstName}, soy Lisa, la asistente de inteligencia artificial de {officeName}. ¿En qué puedo ayudarle hoy?",
+};
+const RECALL_GREETING_TRANSLATIONS: Record = {
+ Spanish: "Hola {firstName}, soy Lisa de {officeName}. Queríamos avisarle que ya le corresponde un examen y limpieza de rutina, que la mayoría de los seguros cubren sin costo. ¿Le gustaría programar una cita?",
+};
+
+/** Picks the greeting template to speak: the office's custom wording as-is if
+ * they've edited it (we can't auto-translate free text they wrote), otherwise
+ * the default translated into the patient's language when available. */
+function resolveGreetingTemplate(rawTemplate: string, defaultTemplate: string, translations: Record, language: string): string {
+ if (rawTemplate.trim() !== defaultTemplate) return rawTemplate;
+ return translations[language] ?? defaultTemplate;
+}
+
+const ENGLISH_LOCALE: VoiceLocale = { gatherLang: "en-US", sayVoice: "Polly.Joanna" };
+
+function aiVoiceTwiml(sayText: string, gatherActionUrl: string, locale: VoiceLocale): string {
+ // action is always set, so the platform posts back to it on both speech and
+ // silence timeout — nothing after would ever run.
+ return `
+
+
+ ${escapeXml(sayText)}
+
+ `;
+}
+
+function aiVoiceHangup(sayText: string, locale: VoiceLocale = ENGLISH_LOCALE): string {
+ return `
+
+ ${escapeXml(sayText)}
+
+ `;
+}
+
+// POST /api/telnyx/webhook/ai-voice
+// Entry point + conversation loop for outbound AI-driven calls placed via
+// POST /api/telnyx/make-ai-call. TeXML hits this once when the call connects
+// (no CallSid session yet) and again after every with SpeechResult.
+// Each spoken turn is routed through the same routePatientTurn() logic the
+// SMS webhook uses, so calls follow identical rules/guardrails, in the
+// patient's preferred language (English/Spanish supported for voice).
+router.post("/webhook/ai-voice", async (req: Request, res: Response): Promise => {
+ res.set("Content-Type", "text/xml");
+ try {
+ const { CallSid, SpeechResult } = req.body as { CallSid?: string; SpeechResult?: string };
+ const patientIdParam = req.query.patientId as string | undefined;
+ const purposeParam = req.query.purpose as string | undefined;
+ if (!CallSid) return res.send(aiVoiceHangup("Sorry, something went wrong. Goodbye."));
+
+ let session = aiCallSessions.get(CallSid);
+
+ // ── First hit for this call: set up session + greet ──────────────────
+ if (!session) {
+ const patientId = parseInt(patientIdParam || "", 10);
+ const patient = !isNaN(patientId)
+ ? await db.patient.findUnique({
+ where: { id: patientId },
+ select: { id: true, userId: true, firstName: true, phone: true, preferredLanguage: true },
+ })
+ : null;
+ if (!patient) return res.send(aiVoiceHangup("Sorry, we could not find your patient record. Goodbye."));
+
+ const language = patient.preferredLanguage || "English";
+ const locale = voiceLocaleFor(language);
+ const isRecallCall = purposeParam === "recall";
+
+ // Resume an in-progress cross-channel conversation (e.g. mid-reschedule
+ // from a prior text) if one exists; otherwise start a fresh check-in call.
+ // A "recall" call (staff-triggered from Patient Connection, offering an
+ // existing patient a routine exam & cleaning) seeds a different stage
+ // than the default reminder-style check-in.
+ // Either kind of call always speaks its own pitch fresh (see greeting
+ // below), so it must always reset the stage — even if a prior call of
+ // either kind left the patient stuck mid-flow (e.g. "recall_asked_datetime"
+ // or "asked_reschedule_datetime"). Otherwise the reply below gets
+ // interpreted against that stale leftover stage instead of the fresh
+ // pitch that was just spoken.
+ if (isRecallCall) {
+ await startRecallConversation(patient.userId, patient.id);
+ } else {
+ await resetConversation(patient.userId, patient.id);
+ }
+
+ const officeContact = await storage.getOfficeContact(patient.userId);
+ const officeName = (officeContact as any)?.officeName?.trim() || "";
+ const callTemplates = await storage.getAiCallTemplates(patient.userId);
+
+ session = {
+ patientId: patient.id, userId: patient.userId, phone: patient.phone,
+ language, officeName, chatTemplates: callTemplates, history: [], turns: 0,
+ };
+ aiCallSessions.set(CallSid, session);
+
+ const rawCallTemplate = (isRecallCall ? callTemplates.recallGreeting?.trim() : callTemplates.greeting?.trim()) ||
+ (isRecallCall ? DEFAULT_RECALL_GREETING : DEFAULT_GREETING);
+ const callTemplate = isRecallCall
+ ? resolveGreetingTemplate(rawCallTemplate, DEFAULT_RECALL_GREETING, RECALL_GREETING_TRANSLATIONS, language)
+ : resolveGreetingTemplate(rawCallTemplate, DEFAULT_GREETING, GREETING_TRANSLATIONS, language);
+ const greeting = callTemplate
+ .replace(/\{firstName\}/g, patient.firstName || "there")
+ .replace(/\{officeName\}/g, officeName || "our office");
+
+ session.history.push({ role: "assistant", text: greeting });
+ await storage.createCommunication({
+ patientId: patient.id, userId: patient.userId, channel: "voice",
+ direction: "outbound", status: "completed", body: greeting, twilioSid: CallSid, provider: "telnyx",
+ });
+
+ const actionUrl = `${getPublicBaseUrl(req)}/api/telnyx/webhook/ai-voice?patientId=${patient.id}`;
+ return res.send(aiVoiceTwiml(greeting, actionUrl, locale));
+ }
+
+ const locale = voiceLocaleFor(session.language);
+
+ // ── Caller stayed silent past the speech timeout ──────────────────────
+ // A call is a single continuous conversation, unlike SMS — if it ends
+ // here, mid-flow or not, there's nothing left to resume, so reset the
+ // stage now instead of leaving the patient stuck for their next call/text.
+ if (!SpeechResult?.trim()) {
+ aiCallSessions.delete(CallSid);
+ await setStage(session.userId, session.patientId, "done");
+ return res.send(aiVoiceHangup("I didn't catch a response. Our staff will follow up with you if needed. Goodbye.", locale));
+ }
+
+ session.history.push({ role: "user", text: SpeechResult.trim() });
+ await storage.createCommunication({
+ patientId: session.patientId, userId: session.userId, channel: "voice",
+ direction: "inbound", status: "completed", body: SpeechResult.trim(), twilioSid: CallSid, provider: "telnyx",
+ });
+
+ session.turns++;
+
+ // ── Caller said something that sounds like goodbye, or we've hit the cap ──
+ if (soundsLikeGoodbye(SpeechResult) || session.turns >= MAX_AI_CALL_TURNS) {
+ aiCallSessions.delete(CallSid);
+ await setStage(session.userId, session.patientId, "done");
+ return res.send(aiVoiceHangup("Thank you for calling, have a great day. Goodbye.", locale));
+ }
+
+ const aiSettings = await storage.getAiSettings(session.userId);
+ const activeAi = resolveAiProvider(aiSettings ?? {});
+ if (!activeAi) {
+ aiCallSessions.delete(CallSid);
+ await setStage(session.userId, session.patientId, "done");
+ return res.send(aiVoiceHangup("Our AI assistant is not available right now. Our staff will follow up with you. Goodbye.", locale));
+ }
+
+ const stage = await getStage(session.userId, session.patientId);
+ const routed = await routePatientTurn({
+ patient: {
+ id: session.patientId, userId: session.userId,
+ phone: session.phone, preferredLanguage: session.language,
+ },
+ stage, message: SpeechResult.trim(), activeAi,
+ chatTemplates: session.chatTemplates, officeName: session.officeName,
+ });
+
+ const reply = routed.segments.join(" ").trim() ||
+ "Sorry, I didn't quite catch that — could you say that again?";
+
+ session.history.push({ role: "assistant", text: reply });
+ await storage.createCommunication({
+ patientId: session.patientId, userId: session.userId, channel: "voice",
+ direction: "outbound", status: "completed", body: reply, twilioSid: CallSid, provider: "telnyx",
+ });
+
+ if (routed.nextStage === "done" || soundsLikeGoodbye(reply)) {
+ aiCallSessions.delete(CallSid);
+ // routePatientTurn() already persisted nextStage — but if we're hanging
+ // up because the reply sounded like a goodbye while nextStage was still
+ // mid-flow, force it to "done" so the next call/text doesn't resume there.
+ if (routed.nextStage !== "done") {
+ await setStage(session.userId, session.patientId, "done");
+ }
+ return res.send(aiVoiceHangup(reply, locale));
+ }
+
+ const actionUrl = `${getPublicBaseUrl(req)}/api/telnyx/webhook/ai-voice?patientId=${session.patientId}`;
+ return res.send(aiVoiceTwiml(reply, actionUrl, locale));
+ } catch (err) {
+ return res.send(aiVoiceHangup("Sorry, something went wrong on our end. Goodbye."));
+ }
+});
+
+export default router;
diff --git a/apps/Backend/src/routes/telnyx.ts b/apps/Backend/src/routes/telnyx.ts
new file mode 100644
index 00000000..378f2a66
--- /dev/null
+++ b/apps/Backend/src/routes/telnyx.ts
@@ -0,0 +1,581 @@
+import express, { Request, Response } from "express";
+import { storage } from "../storage";
+import { prisma as db } from "@repo/db/client";
+import { sendTelnyxSms, placeTexmlCall } from "../comms/telnyx-client";
+import { getHandoff, setHandoff, resetConversation, startNewPatientConversation, startRescheduleConversation, getAfterHoursHandoff, setAfterHoursHandoff } from "../ai/aiHandoffStore";
+import { resolveAiProvider } from "../ai/llm-factory";
+import { getPublicTunnelBaseUrl } from "../utils/publicUrl";
+
+const router = express.Router();
+
+// GET /api/telnyx/settings
+router.get("/settings", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) return res.status(200).json(null);
+
+ return res.status(200).json({
+ id: settings.id,
+ apiKey: settings.apiKey,
+ accountSid: settings.accountSid,
+ phoneNumber: settings.phoneNumber,
+ texmlApplicationId: settings.texmlApplicationId,
+ messagingProfileId: settings.messagingProfileId,
+ webhookPublicKey: settings.webhookPublicKey,
+ greetingMessage: settings.greetingMessage,
+ });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to fetch Telnyx settings", details: String(err) });
+ }
+});
+
+// PUT /api/telnyx/settings
+router.put("/settings", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { apiKey, accountSid, phoneNumber, texmlApplicationId, messagingProfileId, webhookPublicKey, greetingMessage } = req.body;
+ if (!apiKey?.trim() || !phoneNumber?.trim()) {
+ return res.status(400).json({ message: "apiKey and phoneNumber are required" });
+ }
+
+ const settings = await storage.upsertTelnyxSettings(userId, {
+ apiKey: apiKey.trim(),
+ accountSid: accountSid?.trim() || null,
+ phoneNumber: phoneNumber.trim(),
+ texmlApplicationId: texmlApplicationId?.trim() || null,
+ messagingProfileId: messagingProfileId?.trim() || null,
+ webhookPublicKey: webhookPublicKey?.trim() || null,
+ greetingMessage: greetingMessage?.trim() || null,
+ });
+
+ return res.status(200).json({
+ id: settings.id,
+ apiKey: settings.apiKey,
+ accountSid: settings.accountSid,
+ phoneNumber: settings.phoneNumber,
+ texmlApplicationId: settings.texmlApplicationId,
+ messagingProfileId: settings.messagingProfileId,
+ webhookPublicKey: settings.webhookPublicKey,
+ greetingMessage: settings.greetingMessage,
+ });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to save Telnyx settings", details: String(err) });
+ }
+});
+
+// POST /api/telnyx/send-sms
+router.post("/send-sms", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { to, message, patientId, startFlow } = req.body;
+ if (!to || !message) return res.status(400).json({ message: "to and message are required" });
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) {
+ return res.status(400).json({ message: "Telnyx is not configured. Please add your Telnyx credentials in Settings." });
+ }
+
+ const sent = await sendTelnyxSms({
+ apiKey: settings.apiKey, from: settings.phoneNumber, to, text: message,
+ messagingProfileId: settings.messagingProfileId,
+ });
+
+ if (patientId) {
+ const pid = Number(patientId);
+ await storage.createCommunication({
+ patientId: pid,
+ userId,
+ channel: "sms",
+ direction: "outbound",
+ status: "sent",
+ body: message,
+ twilioSid: sent.id,
+ provider: "telnyx",
+ });
+ // Set conversation stage based on which flow was started
+ if (startFlow === "new_patient") {
+ await startNewPatientConversation(userId, pid);
+ } else if (startFlow === "reschedule") {
+ await startRescheduleConversation(userId, pid);
+ } else if (startFlow === "no_follow_up") {
+ // AI follow-up disabled — leave existing stage untouched
+ } else {
+ // "reminder" or unspecified → start reminder AI flow
+ await resetConversation(userId, pid);
+ }
+ }
+
+ return res.status(200).json({ sid: sent.id, status: sent.status });
+ } catch (err: any) {
+ return res.status(500).json({ error: err.message || "Failed to send SMS" });
+ }
+});
+
+// POST /api/telnyx/make-ai-call
+// Places an outbound call where Lisa (the AI assistant) conducts the whole
+// conversation live over the phone — see /webhook/ai-voice for the loop.
+router.post("/make-ai-call", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { to, patientId, purpose } = req.body;
+ if (!to || !patientId) return res.status(400).json({ message: "to and patientId are required" });
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) {
+ return res.status(400).json({ message: "Telnyx is not configured. Please add your Telnyx credentials in Settings." });
+ }
+ if (!settings.accountSid) {
+ return res.status(400).json({ message: "Telnyx Account SID is not configured. Please add it in Telnyx Settings." });
+ }
+
+ const aiSettings = await storage.getAiSettings(userId);
+ if (!resolveAiProvider(aiSettings ?? {})) {
+ return res.status(400).json({ message: "AI is not configured. Please add an AI provider key in Settings before placing an AI call." });
+ }
+
+ const patient = await db.patient.findFirst({ where: { id: Number(patientId), userId } });
+ if (!patient) return res.status(404).json({ message: "Patient not found" });
+
+ let publicBaseUrl: string;
+ try {
+ publicBaseUrl = getPublicTunnelBaseUrl();
+ } catch (err: any) {
+ return res.status(500).json({ message: err.message });
+ }
+ const callPurpose = purpose === "recall" ? "recall" : "reminder";
+ const webhookUrl = `${publicBaseUrl}/api/telnyx/webhook/ai-voice?patientId=${patient.id}&purpose=${callPurpose}`;
+
+ const call = await placeTexmlCall({
+ apiKey: settings.apiKey,
+ accountSid: settings.accountSid,
+ texmlApplicationId: settings.texmlApplicationId,
+ from: settings.phoneNumber,
+ to,
+ webhookUrl,
+ });
+
+ return res.status(200).json({ sid: call.id, status: call.status });
+ } catch (err: any) {
+ return res.status(500).json({ error: err.message || "Failed to place AI call" });
+ }
+});
+
+// POST /api/telnyx/send-reminders-batch
+router.post("/send-reminders-batch", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { date, staffIds, aiFollowUp = true } = req.body as {
+ date: string;
+ staffIds: number[];
+ aiFollowUp?: boolean;
+ };
+ if (!date || !Array.isArray(staffIds) || staffIds.length === 0) {
+ return res.status(400).json({ message: "date and staffIds are required" });
+ }
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) {
+ return res.status(400).json({ message: "Telnyx is not configured. Please add your Telnyx credentials in Settings." });
+ }
+
+ // Resolve office name, address, phone, and reminder SMS template
+ const officeContact = await storage.getOfficeContact(userId);
+ const officeName = (officeContact as any)?.officeName?.trim() || "";
+ const officeAddress = [
+ (officeContact as any)?.streetAddress?.trim(),
+ (officeContact as any)?.city?.trim(),
+ (officeContact as any)?.state?.trim(),
+ (officeContact as any)?.zipCode?.trim(),
+ ].filter(Boolean).join(", ");
+ const officePhone = (officeContact as any)?.phoneNumber?.trim() || "";
+ const chatTemplates = await storage.getAiChatTemplates(userId);
+
+ const DEFAULT_REMINDER_SMS =
+ "Hi {firstName}, this is a reminder from {officeName}. You have an appointment on {appointmentDate} at {appointmentTime}. Please come to our office at {officeAddress}. Please reply YES to confirm or NO to reschedule. Thank you!";
+ const templateBody = chatTemplates.reminderSms?.trim() || DEFAULT_REMINDER_SMS;
+
+ // Fetch appointments for the selected staff columns on the given date
+ const dayStart = new Date(date);
+ dayStart.setUTCHours(0, 0, 0, 0);
+ const dayEnd = new Date(date);
+ dayEnd.setUTCHours(23, 59, 59, 999);
+
+ const appointments = await db.appointment.findMany({
+ where: {
+ staffId: { in: staffIds },
+ date: { gte: dayStart, lte: dayEnd },
+ status: { not: "cancelled" },
+ patient: { userId },
+ },
+ include: {
+ patient: { select: { id: true, firstName: true, phone: true } },
+ },
+ orderBy: { startTime: "asc" },
+ });
+
+ // Format a date string as "May 9, 2026"
+ const months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
+ const formatApptDate = (d: Date | string) => {
+ const dt = new Date(d);
+ return `${months[dt.getUTCMonth()]} ${dt.getUTCDate()}, ${dt.getUTCFullYear()}`;
+ };
+
+ let sent = 0;
+ let skipped = 0;
+
+ // Deduplicate by patientId — send at most one reminder per patient per run
+ const seen = new Set();
+
+ for (const appt of appointments) {
+ const patient = appt.patient;
+ if (!patient?.phone || seen.has(patient.id)) { skipped++; continue; }
+ seen.add(patient.id);
+
+ const apptDate = formatApptDate(appt.date);
+ const apptTime = typeof appt.startTime === "string"
+ ? appt.startTime.substring(0, 5)
+ : String(appt.startTime);
+
+ const message = templateBody
+ .replace(/\{firstName\}/g, patient.firstName ?? "")
+ .replace(/\{officeName\}/g, officeName)
+ .replace(/\{officeAddress\}/g, officeAddress)
+ .replace(/\{officePhone\}/g, officePhone)
+ .replace(/\{twilioPhone\}/g, settings.phoneNumber)
+ .replace(/\{appointmentDate\}/g, apptDate)
+ .replace(/\{appointmentTime\}/g, apptTime)
+ .replace(/\{date\}/g, apptDate)
+ .replace(/\{time\}/g, apptTime);
+
+ try {
+ const msg = await sendTelnyxSms({
+ apiKey: settings.apiKey, from: settings.phoneNumber, to: patient.phone, text: message,
+ messagingProfileId: settings.messagingProfileId,
+ });
+ await storage.createCommunication({
+ patientId: patient.id,
+ userId,
+ channel: "sms",
+ direction: "outbound",
+ status: "sent",
+ body: message,
+ twilioSid: msg.id,
+ provider: "telnyx",
+ });
+ if (aiFollowUp) {
+ await resetConversation(userId, patient.id);
+ }
+ sent++;
+ } catch {
+ skipped++;
+ }
+ }
+
+ return res.status(200).json({ sent, skipped });
+ } catch (err: any) {
+ return res.status(500).json({ error: err.message || "Failed to send reminders" });
+ }
+});
+
+// POST /api/telnyx/send-reschedule-batch
+router.post("/send-reschedule-batch", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { date, staffIds, aiFollowUp = true } = req.body as { date: string; staffIds: number[]; aiFollowUp?: boolean };
+ if (!date || !Array.isArray(staffIds) || staffIds.length === 0) {
+ return res.status(400).json({ message: "date and staffIds are required" });
+ }
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) {
+ return res.status(400).json({ message: "Telnyx is not configured. Please add your Telnyx credentials in Settings." });
+ }
+
+ // Find the "Reschedule by office" template from the SMS template list
+ const templateList = await storage.getSmsTemplateList(userId);
+ const rescheduleTemplate = templateList.find((t) =>
+ t.name.toLowerCase().includes("reschedule") && t.name.toLowerCase().includes("office")
+ ) || templateList.find((t) => t.name.toLowerCase().includes("reschedule"));
+
+ const DEFAULT_RESCHEDULE_SMS =
+ "Hi {firstName}, this is {officeName}. We need to reschedule your appointment. Please reply to let us know your availability. Thank you!";
+ const templateBody = rescheduleTemplate?.body?.trim() || DEFAULT_RESCHEDULE_SMS;
+
+ const officeContact = await storage.getOfficeContact(userId);
+ const officeName = (officeContact as any)?.officeName?.trim() || "";
+ const officeAddress = [
+ (officeContact as any)?.streetAddress?.trim(),
+ (officeContact as any)?.city?.trim(),
+ (officeContact as any)?.state?.trim(),
+ (officeContact as any)?.zipCode?.trim(),
+ ].filter(Boolean).join(", ");
+ const officePhone = (officeContact as any)?.phoneNumber?.trim() || "";
+
+ const dayStart = new Date(date);
+ dayStart.setUTCHours(0, 0, 0, 0);
+ const dayEnd = new Date(date);
+ dayEnd.setUTCHours(23, 59, 59, 999);
+
+ const appointments = await db.appointment.findMany({
+ where: {
+ staffId: { in: staffIds },
+ date: { gte: dayStart, lte: dayEnd },
+ status: { not: "cancelled" },
+ patient: { userId },
+ },
+ include: {
+ patient: { select: { id: true, firstName: true, phone: true } },
+ },
+ orderBy: { startTime: "asc" },
+ });
+
+ const months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
+ const formatApptDate = (d: Date | string) => {
+ const dt = new Date(d);
+ return `${months[dt.getUTCMonth()]} ${dt.getUTCDate()}, ${dt.getUTCFullYear()}`;
+ };
+
+ let sent = 0;
+ let skipped = 0;
+ const seen = new Set();
+
+ for (const appt of appointments) {
+ const patient = appt.patient;
+ if (!patient?.phone || seen.has(patient.id)) { skipped++; continue; }
+ seen.add(patient.id);
+
+ const apptDate = formatApptDate(appt.date);
+ const apptTime = typeof appt.startTime === "string"
+ ? appt.startTime.substring(0, 5)
+ : String(appt.startTime);
+
+ const message = templateBody
+ .replace(/\{firstName\}/g, patient.firstName ?? "")
+ .replace(/\{officeName\}/g, officeName)
+ .replace(/\{officeAddress\}/g, officeAddress)
+ .replace(/\{officePhone\}/g, officePhone)
+ .replace(/\{twilioPhone\}/g, settings.phoneNumber)
+ .replace(/\{appointmentDate\}/g, apptDate)
+ .replace(/\{appointmentTime\}/g, apptTime)
+ .replace(/\{date\}/g, apptDate)
+ .replace(/\{time\}/g, apptTime);
+
+ try {
+ const msg = await sendTelnyxSms({
+ apiKey: settings.apiKey, from: settings.phoneNumber, to: patient.phone, text: message,
+ messagingProfileId: settings.messagingProfileId,
+ });
+ await storage.createCommunication({
+ patientId: patient.id,
+ userId,
+ channel: "sms",
+ direction: "outbound",
+ status: "sent",
+ body: message,
+ twilioSid: msg.id,
+ provider: "telnyx",
+ });
+ if (aiFollowUp) {
+ await startRescheduleConversation(userId, patient.id);
+ }
+ sent++;
+ } catch {
+ skipped++;
+ }
+ }
+
+ return res.status(200).json({ sent, skipped });
+ } catch (err: any) {
+ return res.status(500).json({ error: err.message || "Failed to send reschedule messages" });
+ }
+});
+
+// GET /api/telnyx/sms-template-list
+router.get("/sms-template-list", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const list = await storage.getSmsTemplateList(userId);
+ return res.status(200).json(list);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to fetch SMS templates", details: String(err) });
+ }
+});
+
+// PUT /api/telnyx/sms-template-list
+router.put("/sms-template-list", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const templates = req.body;
+ if (!Array.isArray(templates)) return res.status(400).json({ message: "Expected an array of templates" });
+ await storage.saveSmsTemplateList(userId, templates);
+ return res.status(200).json({ ok: true });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to save SMS templates", details: String(err) });
+ }
+});
+
+// GET /api/telnyx/templates
+router.get("/templates", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const templates = await storage.getTemplates(userId);
+ return res.status(200).json(templates);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to fetch templates", details: String(err) });
+ }
+});
+
+// PUT /api/telnyx/templates/:key
+router.put("/templates/:key", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const { key } = req.params;
+ const { body } = req.body;
+ if (!key || !body?.trim()) return res.status(400).json({ message: "key and body are required" });
+ await storage.saveTemplate(userId, key, body.trim());
+ return res.status(200).json({ key, body: body.trim() });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to save template", details: String(err) });
+ }
+});
+
+// GET /api/telnyx/after-hours-handoff
+router.get("/after-hours-handoff", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ return res.status(200).json({ enabled: await getAfterHoursHandoff(userId) });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to get after-hours handoff state" });
+ }
+});
+
+// PUT /api/telnyx/after-hours-handoff
+router.put("/after-hours-handoff", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const { enabled } = req.body;
+ if (typeof enabled !== "boolean") return res.status(400).json({ message: "enabled must be a boolean" });
+ await setAfterHoursHandoff(userId, enabled);
+ return res.status(200).json({ enabled });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to set after-hours handoff state" });
+ }
+});
+
+// GET /api/telnyx/ai-handoff/:patientId
+router.get("/ai-handoff/:patientId", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const patientId = parseInt(req.params.patientId);
+ if (isNaN(patientId)) return res.status(400).json({ message: "Invalid patientId" });
+ return res.status(200).json({ enabled: await getHandoff(userId, patientId) });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to get AI handoff state" });
+ }
+});
+
+// PUT /api/telnyx/ai-handoff/:patientId
+router.put("/ai-handoff/:patientId", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+ const patientId = parseInt(req.params.patientId);
+ if (isNaN(patientId)) return res.status(400).json({ message: "Invalid patientId" });
+ const { enabled } = req.body;
+ if (typeof enabled !== "boolean") return res.status(400).json({ message: "enabled must be a boolean" });
+ await setHandoff(userId, patientId, enabled);
+ return res.status(200).json({ enabled });
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to set AI handoff state" });
+ }
+});
+
+// GET /api/telnyx/recent-communications
+router.get("/recent-communications", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const limit = Math.min(50, parseInt(req.query.limit as string) || 20);
+ const communications = await storage.getRecentCommunicationsByUser(userId, limit);
+ return res.status(200).json(communications);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to fetch recent communications", details: String(err) });
+ }
+});
+
+// POST /api/telnyx/make-call
+router.post("/make-call", async (req: Request, res: Response): Promise => {
+ try {
+ const userId = req.user?.id;
+ if (!userId) return res.status(401).json({ message: "Unauthorized" });
+
+ const { to, message, patientId } = req.body;
+ if (!to) return res.status(400).json({ message: "to is required" });
+
+ const settings = await storage.getTelnyxSettings(userId);
+ if (!settings) {
+ return res.status(400).json({ message: "Telnyx is not configured. Please add your Telnyx credentials in Settings." });
+ }
+ if (!settings.accountSid) {
+ return res.status(400).json({ message: "Telnyx Account SID is not configured. Please add it in Telnyx Settings." });
+ }
+
+ let publicBaseUrl: string;
+ try {
+ publicBaseUrl = getPublicTunnelBaseUrl();
+ } catch (err: any) {
+ return res.status(500).json({ message: err.message });
+ }
+
+ const twimlMessage = message || "Hello, this is a call from your dental office.";
+ const webhookUrl = `${publicBaseUrl}/api/telnyx/webhook/say?text=${encodeURIComponent(twimlMessage)}`;
+
+ const call = await placeTexmlCall({
+ apiKey: settings.apiKey,
+ accountSid: settings.accountSid,
+ texmlApplicationId: settings.texmlApplicationId,
+ from: settings.phoneNumber,
+ to,
+ webhookUrl,
+ });
+
+ if (patientId) {
+ await storage.createCommunication({
+ patientId: Number(patientId),
+ userId,
+ channel: "voice",
+ direction: "outbound",
+ status: "queued",
+ twilioSid: call.id,
+ provider: "telnyx",
+ });
+ }
+
+ return res.status(200).json({ sid: call.id, status: call.status });
+ } catch (err: any) {
+ return res.status(500).json({ error: err.message || "Failed to make call" });
+ }
+});
+
+export default router;
diff --git a/apps/Backend/src/routes/twilio-webhooks.ts b/apps/Backend/src/routes/twilio-webhooks.ts
index 451565f4..60cdb32f 100644
--- a/apps/Backend/src/routes/twilio-webhooks.ts
+++ b/apps/Backend/src/routes/twilio-webhooks.ts
@@ -1,699 +1,17 @@
+// NOTE: Twilio is now used only for the in-browser dial pad. This webhook
+// handles the browser-Device outbound-call leg only — everything else (SMS,
+// inbound/AI voice) moved to Telnyx, see routes/telnyx-webhooks.ts.
import express, { Request, Response } from "express";
-import twilio from "twilio";
-import { storage } from "../storage";
-import { DEFAULT_GREETING, DEFAULT_RECALL_GREETING } from "../storage/twilio-storage";
import { prisma as db } from "@repo/db/client";
-import { runNewPatientStep } from "../ai/new-patient-graph";
-import {
- parseDateOnlyFromMessage,
- parseTime,
- isOfficeDayOpen,
- isWithinOfficeHours,
- getOfficeHoursDisplay,
- timeLabel,
-} from "../ai/reschedule-graph";
-import { getLlm, resolveAiProvider, type AiProvider } from "../ai/llm-factory";
-import { soundsLikeGoodbye } from "../ai/voice-assistant";
-import { getPublicBaseUrl } from "../utils/publicUrl";
-import {
- routePatientTurn, getAppointmentDatetime, applyOfficeName,
-} from "../ai/patient-conversation-router";
-import {
- getHandoff, getAfterHoursHandoff,
- getStage, setStage, resetConversation, startRecallConversation,
- setPendingReschedule, getPendingReschedule, clearPendingReschedule,
- type ConversationStage,
-} from "../ai/aiHandoffStore";
const router = express.Router();
-// ── Helpers ───────────────────────────────────────────────────────────────────
-
function escapeXml(text: string): string {
return text
.replace(/&/g, "&").replace(//g, ">")
.replace(/"/g, """).replace(/'/g, "'");
}
-/** Send multiple SMS messages in guaranteed order via a single TwiML response. */
-function twimlMessages(...texts: string[]): string {
- const body = texts.map(t => `${escapeXml(t)} `).join("");
- return `${body} `;
-}
-
-function twimlReply(text: string): string {
- return `${escapeXml(text)} `;
-}
-
-function empty(): string {
- return " ";
-}
-
-/** Check if right now is outside office hours for the given user. */
-async function isAfterHours(userId: number): Promise {
- const record = await storage.getOfficeHours(userId);
- if (!record?.data) return false; // no hours configured → treat as in-hours
-
- const data = record.data as any;
- const now = new Date();
- const days = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];
- const day = days[now.getDay()];
-
- const slot = data.doctors?.[day];
- if (!slot?.enabled) return true; // office closed today
-
- const hhmm = `${String(now.getHours()).padStart(2,"0")}:${String(now.getMinutes()).padStart(2,"0")}`;
- if (hhmm >= slot.amStart && hhmm <= slot.amEnd) return false;
- if (hhmm >= slot.pmStart && hhmm <= slot.pmEnd) return false;
- return true;
-}
-
-/** Save an outbound message and return the text. */
-async function saveOutbound(patientId: number, body: string): Promise {
- await storage.createCommunication({
- patientId, channel: "sms", direction: "outbound", status: "sent", body,
- });
-}
-
-// ── Empathetic one-liner (instant keyword-based, no API latency) ─────────────
-
-function getEmpatheticAck(message: string, language: string): string {
- const hasPain = /pain|hurt|ache|toothache|emergency|urgent|asap|bleeding|broke|crack|fell out|swollen|infection|abscess/i.test(message);
-
- const painMsgs: Record = {
- English: "Sorry to hear that! We are here to help you.",
- Spanish: "¡Lo sentimos! Estamos aquí para ayudarle.",
- Portuguese: "Lamentamos isso! Estamos aqui para ajudá-lo.",
- Mandarin: "很遗憾听到这个消息!我们在这里帮助您。",
- Cantonese: "很遺憾聽到這個消息!我們在這裡幫助您。",
- Arabic: "آسف لسماع ذلك! نحن هنا لمساعدتك.",
- "Haitian Creole": "Nou regrèt tande sa! Nou la pou ede ou.",
- };
- const normalMsgs: Record = {
- English: "No problem!",
- Spanish: "¡Sin problema!",
- Portuguese: "Sem problema!",
- Mandarin: "没问题!",
- Cantonese: "沒問題!",
- Arabic: "لا مشكلة!",
- "Haitian Creole": "Pa gen pwoblèm!",
- };
-
- return hasPain
- ? (painMsgs[language] ?? painMsgs["English"]!)
- : (normalMsgs[language] ?? normalMsgs["English"]!);
-}
-
-// ── "New appointment or reschedule?" prompt (multilingual) ────────────────────
-
-const NEW_OR_RESCHEDULE_Q: Record = {
- English: "Just to confirm — would you like to make a new appointment, or would you like to reschedule your current appointment?",
- Spanish: "Solo para confirmar — ¿desea hacer una nueva cita o reprogramar su cita actual?",
- Portuguese: "Só para confirmar — você gostaria de marcar uma nova consulta ou reagendar sua consulta atual?",
- Mandarin: "请问您是想预约新的就诊,还是想更改现有预约?",
- Cantonese: "請問您是想預約新的就診,還是想更改現有預約?",
- Arabic: "فقط للتأكيد — هل تريد تحديد موعد جديد أم تعديل موعدك الحالي؟",
- "Haitian Creole": "Jis pou konfime — èske ou ta renmen pran yon nouvo randevou, oswa èske ou ta renmen reprogramè randevou aktyèl ou?",
-};
-
-// ── Stale-conversation handling (SMS) ─────────────────────────────────────────
-// Unlike a phone call, a long gap between texts doesn't necessarily mean the
-// patient walked away — replies are often just slow. So instead of hard
-// resetting on any idle gap, we only second-guess the stored stage once the
-// gap crosses STALE_SMS_THRESHOLD_MS, and even then we ask the LLM to look at
-// the recent history before deciding whether the new text is still answering
-// the last question or reads like a fresh, unrelated conversation.
-
-const STALE_SMS_THRESHOLD_MS = 3 * 60 * 60 * 1000; // 3 hours
-
-const STILL_HERE_MSGS: Record = {
- English: "It's been a while since our last message. How can I help you today?",
- Spanish: "Ha pasado un tiempo desde nuestro último mensaje. ¿Cómo puedo ayudarle hoy?",
- Portuguese: "Já faz um tempo desde nossa última mensagem. Como posso ajudá-lo hoje?",
- Mandarin: "距离我们上次的消息已经有一段时间了。今天我能帮您什么?",
- Cantonese: "距離我們上次嘅消息已經有一段時間喇。今日我可以點幫您?",
- Arabic: "لقد مر بعض الوقت منذ آخر رسالة لنا. كيف يمكنني مساعدتك اليوم؟",
- "Haitian Creole": "Sa gen yon ti tan depi dènye mesaj nou. Kijan mwen ka ede ou jodi a?",
-};
-
-/**
- * After a long idle gap, ask the LLM whether the patient's new text still
- * answers what was last asked (recent history + stage in context) or reads
- * like an unrelated, fresh message. Defaults to "continue" on any failure —
- * an LLM call error shouldn't be the reason a legitimate reply gets bounced.
- */
-async function isLikelyContinuation(
- recentHistory: { role: "user" | "assistant"; text: string }[],
- newMessage: string,
- stage: ConversationStage,
- apiKey: string,
- provider: AiProvider,
- model?: string,
-): Promise {
- if (recentHistory.length === 0) return true;
- try {
- const llm = getLlm(provider, apiKey, model);
- const transcript = recentHistory
- .map(m => `${m.role === "assistant" ? "Office" : "Patient"}: ${m.text}`)
- .join("\n");
- const res = await llm.invoke([
- {
- role: "system",
- content:
- `You are helping a dental office text-messaging assistant resume a conversation with a patient after a long gap of silence. ` +
- `Here is the recent conversation (oldest first):\n${transcript}\n\n` +
- `The assistant is currently waiting on stage "${stage}" of a booking flow. ` +
- `The patient just sent a new message after the long gap: "${newMessage}"\n\n` +
- `Does this new message still look like it's answering/continuing that same conversation, or does it read like an unrelated, fresh message (e.g. a new question, a greeting, a different topic)? ` +
- `Reply with ONLY one word: "continue" or "restart".`,
- },
- ]);
- return !/restart/i.test(String(res.content));
- } catch {
- return true;
- }
-}
-
-// ── POST /api/twilio/webhook/sms ──────────────────────────────────────────────
-
-const CONVO_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
-
-// In-memory conversation state for unknown phone numbers (no patient record yet).
-// Keyed by normalized "From" number.
-const unknownPhoneConvos = new Map();
-
-router.post("/webhook/sms", async (req: Request, res: Response): Promise => {
- try {
- const { From, To, Body, MessageSid } = req.body;
-
- const normalizedFrom = (From || "").replace(/\D/g, "");
- // Ordered by id so that when duplicate patients share a phone number
- // (one record per insurance), the earliest-created record is the default.
- const allPatients = await db.patient.findMany({
- select: { id: true, phone: true, userId: true, preferredLanguage: true },
- orderBy: { id: "asc" },
- });
- const patient = allPatients.find(
- (p) => p.phone && p.phone.replace(/\D/g, "") === normalizedFrom
- );
-
- if (!patient) {
- // Unknown number — look up office by the Twilio "To" number
- const normalizedTo = (To || "").replace(/\D/g, "");
- const twilioRow = await db.twilioSettings.findFirst({
- where: { phoneNumber: { contains: normalizedTo.slice(-10) } },
- select: { userId: true },
- });
- if (!twilioRow) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- const userId = twilioRow.userId;
- const openPhoneReply = await storage.getOpenPhoneReply(userId);
- if (!openPhoneReply) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- // Fetch required context for this office
- const aiSettings = await storage.getAiSettings(userId);
- const activeAiU = resolveAiProvider(aiSettings ?? {});
- if (!activeAiU) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- const chatTemplates = await storage.getAiChatTemplates(userId);
- const officeContact = await storage.getOfficeContact(userId);
- const officeName = (officeContact as any)?.officeName?.trim() || "";
- const convo = unknownPhoneConvos.get(normalizedFrom);
- let stage = convo?.stage ?? "initial";
- const language = convo?.language ?? "English";
-
- // Reset conversation if idle for more than 5 minutes
- if (
- stage !== "initial" && stage !== "done" &&
- convo?.lastActivityAt &&
- Date.now() - convo.lastActivityAt.getTime() > CONVO_TIMEOUT_MS
- ) {
- stage = "initial";
- unknownPhoneConvos.set(normalizedFrom, { userId, stage: "initial", language, lastActivityAt: new Date() });
- }
-
- const replyUnknown = (
- text: string,
- nextStage: ConversationStage,
- pendingApptDate?: { date: Date; dateLabel: string },
- ) => {
- unknownPhoneConvos.set(normalizedFrom, {
- userId, stage: nextStage, language,
- lastActivityAt: new Date(),
- ...(pendingApptDate ? { pendingApptDate } : { pendingApptDate: convo?.pendingApptDate }),
- });
- res.set("Content-Type", "text/xml");
- return res.send(twimlReply(text));
- };
-
- if (stage === "initial" || stage === "done") {
- // MSG 1: AI intro
- const rawGreeting = chatTemplates.newPatientGreeting ||
- `Hi! My name is Lisa, the dedicated AI assistant at {officeName}. I can help you schedule an appointment, check your insurance, and answer general questions 24/7.`;
- const introText = applyOfficeName(rawGreeting, officeName);
-
- // MSG 2: Empathetic acknowledgment
- const empatheticText = getEmpatheticAck(Body, language);
-
- // MSG 3: Detect intent from first message
- const isReschedule = /reschedule|rescheduler|change.*appoint|modify.*appoint|move.*appoint|reprogramar|reagendar|cambiar|mudar/i.test(Body);
- let msg3Unk: string;
- let nextStage3Unk: ConversationStage;
-
- if (isReschedule) {
- const notFoundMsgs: Record = {
- English: "I couldn't find an appointment associated with your number. Please leave your name and a good callback number and our receptionist will assist you as soon as possible.",
- Spanish: "No encontré una cita asociada a su número. Por favor deje su nombre y un número de contacto y nuestra recepcionista le atenderá lo antes posible.",
- Portuguese: "Não encontrei uma consulta associada ao seu número. Por favor deixe seu nome e um número de contato e nossa recepcionista lhe atenderá o mais breve possível.",
- Mandarin: "我找不到与您号码关联的预约。请留下您的姓名和联系电话,我们的前台将尽快与您联系。",
- Cantonese: "我找不到與您號碼關聯的預約。請留下您的姓名和聯絡電話,我們的接待員將盡快與您聯絡。",
- Arabic: "لم أجد موعداً مرتبطاً برقمك. يرجى ترك اسمك ورقم هاتف للتواصل وسيساعدك موظف الاستقبال في أقرب وقت.",
- "Haitian Creole": "Mwen pa jwenn yon randevou ki asosye ak nimewo ou. Tanpri kite non ou ak yon nimewo pou rele epi resepsyonis nou an pral ede ou pi vit posib.",
- };
- msg3Unk = notFoundMsgs[language] ?? notFoundMsgs["English"]!;
- nextStage3Unk = "collecting_contact_info";
- } else {
- const newOrExistingMsgs: Record = {
- English: "Can you please tell me if you are a new or existing patient?",
- Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
- Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
- Mandarin: "请问您是新患者还是现有患者?",
- Cantonese: "請問您是新病人還是現有病人?",
- Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
- "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
- };
- msg3Unk = newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!;
- nextStage3Unk = "asked_new_or_existing";
- }
-
- // Update store then send all 3 in one TwiML response (guaranteed order)
- unknownPhoneConvos.set(normalizedFrom, {
- userId, stage: nextStage3Unk, language, lastActivityAt: new Date(),
- });
- res.set("Content-Type", "text/xml");
- return res.send(twimlMessages(introText, empatheticText, msg3Unk));
- }
-
- // ── Unknown: asked_new_or_reschedule (fallback for in-progress conversations) ──
- if (stage === "asked_new_or_reschedule") {
- const isReschedule = /reschedule|rescheduler|change|modify|move|reprogramar|reagendar|cambiar|mudar/i.test(Body);
- if (isReschedule) {
- const notFoundMsgs: Record = {
- English: "I couldn't find an appointment associated with your number. Please leave your name and a good callback number and our receptionist will assist you as soon as possible.",
- Spanish: "No encontré una cita asociada a su número. Por favor deje su nombre y un número de contacto y nuestra recepcionista le atenderá lo antes posible.",
- Portuguese: "Não encontrei uma consulta associada ao seu número. Por favor deixe seu nome e um número de contato e nossa recepcionista lhe atenderá o mais breve possível.",
- Mandarin: "我找不到与您号码关联的预约。请留下您的姓名和联系电话,我们的前台将尽快与您联系。",
- Cantonese: "我找不到與您號碼關聯的預約。請留下您的姓名和聯絡電話,我們的接待員將盡快與您聯絡。",
- Arabic: "لم أجد موعداً مرتبطاً برقمك. يرجى ترك اسمك ورقم هاتف للتواصل وسيساعدك موظف الاستقبال في أقرب وقت.",
- "Haitian Creole": "Mwen pa jwenn yon randevou ki asosye ak nimewo ou. Tanpri kite non ou ak yon nimewo pou rele epi resepsyonis nou an pral ede ou pi vit posib.",
- };
- return replyUnknown(notFoundMsgs[language] ?? notFoundMsgs["English"]!, "collecting_contact_info");
- }
- const newOrExistingMsgs: Record = {
- English: "Can you please tell me if you are a new or existing patient?",
- Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
- Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
- Mandarin: "请问您是新患者还是现有患者?",
- Cantonese: "請問您是新病人還是現有病人?",
- Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
- "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
- };
- return replyUnknown(newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!, "asked_new_or_existing");
- }
-
- // ── Unknown: asked_appointment_time → parse date, check office hours ──
- if (stage === "asked_appointment_time") {
- const parsedDate = await parseDateOnlyFromMessage(Body, activeAiU.key, activeAiU.provider, activeAiU.model);
- if (!parsedDate) {
- const msgs: Record = {
- English: "I didn't catch that. What day would you prefer? For example: 'May 28', 'next Monday', or '5/28'.",
- Spanish: "No entendí. ¿Qué día prefiere? Por ejemplo: '28 de mayo', 'próximo lunes' o '28/5'.",
- Portuguese: "Não entendi. Que dia você prefere? Por exemplo: '28 de maio', 'próxima segunda' ou '28/5'.",
- Mandarin: "我没听清。您希望哪天?例如:'5月28日'、'下周一'或'5/28'。",
- Cantonese: "我沒聽清。您希望哪天?例如:'5月28日'、'下週一'或'5/28'。",
- Arabic: "لم أفهم. ما اليوم الذي تفضله؟ مثلاً: '28 مايو' أو '5/28'.",
- "Haitian Creole": "Mwen pa konprann. Ki jou ou prefere? Pa egzanp: '28 me', 'Lendi pwochèn', oswa '5/28'.",
- };
- return replyUnknown(msgs[language] ?? msgs["English"]!, "asked_appointment_time");
- }
- const { date, dateLabel } = parsedDate;
- const dayCheck = await isOfficeDayOpen(date, userId);
- if (!dayCheck.open) {
- const msgs: Record = {
- English: `Our office is closed on ${dateLabel} (${dayCheck.displayDay}). Can you please choose another day?`,
- Spanish: `Nuestra oficina está cerrada el ${dateLabel} (${dayCheck.displayDay}). ¿Puede elegir otro día?`,
- Portuguese: `Nosso consultório está fechado em ${dateLabel} (${dayCheck.displayDay}). Pode escolher outro dia?`,
- Mandarin: `我们诊所在 ${dateLabel}(${dayCheck.displayDay})不开放。请您选择另一天好吗?`,
- Cantonese: `我們診所在 ${dateLabel}(${dayCheck.displayDay})不開放。請您選擇另一天好嗎?`,
- Arabic: `مكتبنا مغلق في ${dateLabel} (${dayCheck.displayDay}). هل يمكنك اختيار يوم آخر؟`,
- "Haitian Creole": `Biwo nou fèmen nan ${dateLabel} (${dayCheck.displayDay}). Tanpri chwazi yon lòt jou?`,
- };
- return replyUnknown(msgs[language] ?? msgs["English"]!, "asked_appointment_time");
- }
- const askTimeMsgs: Record = {
- English: `What time do you prefer on ${dateLabel}?`,
- Spanish: `¿A qué hora prefiere el ${dateLabel}?`,
- Portuguese: `Que horário você prefere em ${dateLabel}?`,
- Mandarin: `您希望在 ${dateLabel} 几点?`,
- Cantonese: `您希望在 ${dateLabel} 幾點?`,
- Arabic: `ما الوقت الذي تفضله في ${dateLabel}؟`,
- "Haitian Creole": `Ki lè ou prefere nan ${dateLabel}?`,
- };
- return replyUnknown(
- askTimeMsgs[language] ?? askTimeMsgs["English"]!,
- "asked_new_appt_time_for_date",
- { date, dateLabel },
- );
- }
-
- // ── Unknown: asked_new_appt_time_for_date → parse time, check hours ───
- if (stage === "asked_new_appt_time_for_date") {
- const pendingApptDate = convo?.pendingApptDate;
- if (!pendingApptDate) {
- return replyUnknown(
- "I lost track of the date. What day would you prefer?",
- "asked_appointment_time",
- );
- }
- const startTime = await parseTime(Body, activeAiU.key, activeAiU.provider, activeAiU.model);
- if (!startTime) {
- const msgs: Record = {
- English: `I didn't catch the time. What time do you prefer on ${pendingApptDate.dateLabel}? For example: '10am' or '2pm'.`,
- Spanish: `No entendí la hora. ¿Qué hora prefiere el ${pendingApptDate.dateLabel}? Por ejemplo: '10am' o '2pm'.`,
- Portuguese: `Não entendi o horário. Que hora você prefere em ${pendingApptDate.dateLabel}? Por exemplo: '10h' ou '14h'.`,
- Mandarin: `我没听清时间。您在 ${pendingApptDate.dateLabel} 几点?例如:上午10点或下午2点。`,
- Cantonese: `我沒聽清時間。您在 ${pendingApptDate.dateLabel} 幾點?例如:上午10點或下午2點。`,
- Arabic: `لم أفهم الوقت. ما الوقت الذي تفضله في ${pendingApptDate.dateLabel}؟ مثلاً: 10 صباحاً أو 2 مساءً.`,
- "Haitian Creole": `Mwen pa konprann lè a. Ki lè ou prefere nan ${pendingApptDate.dateLabel}? Pa egzanp: 10am oswa 2pm.`,
- };
- return replyUnknown(msgs[language] ?? msgs["English"]!, "asked_new_appt_time_for_date");
- }
- const withinHours = await isWithinOfficeHours(pendingApptDate.date, startTime, userId);
- if (!withinHours) {
- const hoursDisplay = await getOfficeHoursDisplay(pendingApptDate.date, userId);
- const timeLbl = timeLabel(startTime);
- const msgs: Record = {
- English: hoursDisplay
- ? `Our office is not available at ${timeLbl} on ${pendingApptDate.dateLabel}. Our hours are ${hoursDisplay}. What other time do you prefer?`
- : `Our office is not available at ${timeLbl} on ${pendingApptDate.dateLabel}. What other time do you prefer?`,
- Spanish: hoursDisplay
- ? `Nuestra oficina no está disponible a las ${timeLbl} el ${pendingApptDate.dateLabel}. Nuestro horario es ${hoursDisplay}. ¿Qué otro horario prefiere?`
- : `Nuestra oficina no está disponible a las ${timeLbl} el ${pendingApptDate.dateLabel}. ¿Qué otro horario prefiere?`,
- Portuguese: hoursDisplay
- ? `Nosso consultório não está disponível às ${timeLbl} em ${pendingApptDate.dateLabel}. Nosso horário é ${hoursDisplay}. Que outro horário você prefere?`
- : `Nosso consultório não está disponível às ${timeLbl} em ${pendingApptDate.dateLabel}. Que outro horário você prefere?`,
- Mandarin: hoursDisplay
- ? `我们诊所在 ${pendingApptDate.dateLabel} ${timeLbl} 不开放。工作时间是 ${hoursDisplay}。您希望改什么时间?`
- : `我们诊所在 ${pendingApptDate.dateLabel} ${timeLbl} 不开放。您希望改什么时间?`,
- Cantonese: hoursDisplay
- ? `我們診所在 ${pendingApptDate.dateLabel} ${timeLbl} 不開放。工作時間是 ${hoursDisplay}。您希望改什麼時間?`
- : `我們診所在 ${pendingApptDate.dateLabel} ${timeLbl} 不開放。您希望改什麼時間?`,
- Arabic: hoursDisplay
- ? `مكتبنا غير متاح في ${timeLbl} يوم ${pendingApptDate.dateLabel}. ساعات العمل: ${hoursDisplay}. ما وقت آخر تفضله؟`
- : `مكتبنا غير متاح في ${timeLbl} يوم ${pendingApptDate.dateLabel}. ما وقت آخر تفضله؟`,
- "Haitian Creole": hoursDisplay
- ? `Biwo nou pa disponib a ${timeLbl} nan ${pendingApptDate.dateLabel}. Orè nou se ${hoursDisplay}. Ki lòt lè ou prefere?`
- : `Biwo nou pa disponib a ${timeLbl} nan ${pendingApptDate.dateLabel}. Ki lòt lè ou prefere?`,
- };
- return replyUnknown(msgs[language] ?? msgs["English"]!, "asked_new_appt_time_for_date");
- }
- const apptLabel = `${pendingApptDate.dateLabel} at ${timeLabel(startTime)}`;
- const confirmMsgs: Record = {
- English: `Thank you! Your preferred appointment is ${apptLabel}. Our receptionist will confirm the details with you shortly.`,
- Spanish: `¡Gracias! Su cita preferida es el ${apptLabel}. Nuestra recepcionista confirmará los detalles con usted en breve.`,
- Portuguese: `Obrigado! Sua consulta preferida é em ${apptLabel}. Nossa recepcionista confirmará os detalhes em breve.`,
- Mandarin: `谢谢!您的预约时间为 ${apptLabel}。我们的前台将很快与您确认详情。`,
- Cantonese: `多謝!您的預約時間為 ${apptLabel}。我們的接待員將很快與您確認詳情。`,
- Arabic: `شكراً! موعدك المفضل هو ${apptLabel}. ستتواصل معك موظفة الاستقبال قريباً لتأكيد التفاصيل.`,
- "Haitian Creole": `Mèsi! Randevou ou a se ${apptLabel}. Resepsyonis nou an pral konfime detay yo ak ou byento.`,
- };
- return replyUnknown(confirmMsgs[language] ?? confirmMsgs["English"]!, "done");
- }
-
- // Multi-step new patient stages for unknown numbers
- const unknownNewPatientStages: ConversationStage[] = [
- "new_patient_greeted", "asked_new_or_existing",
- "asked_new_patient_insurance", "asked_insurance_type",
- "asked_masshealth_check_consent", "asked_existing_insurance",
- "asked_appointment_preference",
- "asked_self_pay", "asked_other_insurance_after_inactive",
- "collecting_contact_info",
- ];
- if (unknownNewPatientStages.includes(stage)) {
- const { reply: aiReply, nextStage } = await runNewPatientStep(
- Body, stage, language, activeAiU.key, chatTemplates.generalFallback, activeAiU.provider, activeAiU.model
- );
- return replyUnknown(aiReply, nextStage);
- }
-
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- // Save inbound message
- await storage.createCommunication({
- patientId: patient.id, channel: "sms", direction: "inbound",
- status: "delivered", body: Body, twilioSid: MessageSid,
- });
-
- // Per-patient handoff toggle must be ON
- if (!await getHandoff(patient.userId, patient.id)) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- const aiSettings = await storage.getAiSettings(patient.userId);
- const activeAi = resolveAiProvider(aiSettings ?? {});
- if (!activeAi) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-
- const language = patient.preferredLanguage || "English";
- let stage = await getStage(patient.userId, patient.id);
- const chatTemplates = await storage.getAiChatTemplates(patient.userId);
-
- // Long idle gap: don't blindly resume (SMS replies are often just slow),
- // but don't blindly reset either — check whether the new text still reads
- // like a continuation before deciding.
- if (stage !== "initial" && stage !== "done") {
- const convRow = await db.patientConversation.findUnique({
- where: { patientId: patient.id },
- select: { updatedAt: true },
- });
- if (convRow?.updatedAt && Date.now() - convRow.updatedAt.getTime() > STALE_SMS_THRESHOLD_MS) {
- const recentComms = await storage.getCommunicationsByPatient(patient.id);
- const recentHistory = recentComms.slice(-5).map((c: any) => ({
- role: (c.direction === "outbound" ? "assistant" : "user") as "assistant" | "user",
- text: c.body || "",
- }));
- const continuing = await isLikelyContinuation(
- recentHistory, Body, stage, activeAi.key, activeAi.provider, activeAi.model
- );
- if (!continuing) {
- clearPendingReschedule(patient.userId, patient.id);
- await setStage(patient.userId, patient.id, "initial");
- stage = "initial";
- const stillHereText = STILL_HERE_MSGS[language] ?? STILL_HERE_MSGS["English"]!;
- await saveOutbound(patient.id, stillHereText);
- res.set("Content-Type", "text/xml");
- return res.send(twimlMessages(stillHereText));
- }
- // Looks like a continuation — fall through and resume the stored stage.
- }
- }
- const officeContact = await storage.getOfficeContact(patient.userId);
- const officeName = (officeContact as any)?.officeName?.trim() || "";
-
- // ── Shared business rules (reminder/reschedule/new-patient graphs, plus the
- // MassHealth and appointment-booking stages) — the exact same code path the
- // AI voice call webhook uses, so a patient gets identical guardrails and
- // outcomes regardless of channel.
- const routed = await routePatientTurn({
- patient, stage, message: Body, activeAi, chatTemplates, officeName,
- });
-
- if (routed.segments.length > 0) {
- for (const seg of routed.segments) await saveOutbound(patient.id, seg);
-
- // reminder_initial's self-intro (segments[0]) is queued via REST so it's
- // guaranteed to arrive before the classified reply that follows it.
- if (stage === "reminder_initial" && routed.segments.length > 1) {
- const twilioSettings = await storage.getTwilioSettings(patient.userId);
- if (twilioSettings) {
- const client = twilio(twilioSettings.accountSid, twilioSettings.authToken);
- await client.messages.create({ body: routed.segments[0]!, from: twilioSettings.phoneNumber, to: From });
- }
- res.set("Content-Type", "text/xml");
- return res.send(twimlMessages(...routed.segments.slice(1)));
- }
-
- res.set("Content-Type", "text/xml");
- return res.send(twimlMessages(...routed.segments));
- }
-
- // ── Stage: initial / done (patient texts in fresh) ───────────────────
- if (stage === "initial" || stage === "done") {
- const openPhoneReply = await storage.getOpenPhoneReply(patient.userId);
- const afterHoursEnabled = await getAfterHoursHandoff(patient.userId);
- const outsideHours = await isAfterHours(patient.userId);
-
- if (openPhoneReply || (afterHoursEnabled && outsideHours)) {
- // MSG 1: AI self-introduction
- const rawGreeting = chatTemplates.newPatientGreeting ||
- `Hi! My name is Lisa, the dedicated AI assistant at {officeName}. I can help you schedule an appointment, check your insurance, and answer general questions 24/7.`;
- const introText = applyOfficeName(rawGreeting, officeName);
-
- // MSG 2: Empathetic acknowledgment of the patient's message
- const empatheticText = getEmpatheticAck(Body, language);
-
- // MSG 3: Detect reschedule vs new appointment from initial text
- const isRescheduleIntent = /reschedule|rescheduler|change.*appoint|modify.*appoint|move.*appoint|reprogramar|reagendar|cambiar|mudar/i.test(Body);
-
- let msg3: string;
- let nextStage3: ConversationStage;
-
- if (isRescheduleIntent) {
- const apptDatetime = await getAppointmentDatetime(patient.id);
- if (apptDatetime) {
- const foundMsgs: Record = {
- English: `Ok. Just to confirm, your current appointment is on ${apptDatetime}. When would you like to reschedule?`,
- Spanish: `De acuerdo. Solo para confirmar, su cita actual es el ${apptDatetime}. ¿Cuándo le gustaría reprogramarla?`,
- Portuguese: `Ok. Só para confirmar, sua consulta atual é em ${apptDatetime}. Quando você gostaria de reagendar?`,
- Mandarin: `好的。请确认一下,您当前的预约是 ${apptDatetime}。您想重新安排到什么时候?`,
- Cantonese: `好的。請確認一下,您目前的預約是 ${apptDatetime}。您想重新安排到什麼時候?`,
- Arabic: `حسناً. فقط للتأكيد، موعدك الحالي في ${apptDatetime}. متى تريد إعادة الجدولة؟`,
- "Haitian Creole": `Oke. Jis pou konfime, randevou aktyèl ou a se ${apptDatetime}. Ki lè ou ta renmen reprogramè?`,
- };
- msg3 = foundMsgs[language] ?? foundMsgs["English"]!;
- nextStage3 = "asked_reschedule_datetime";
- } else {
- const notFoundMsgs: Record = {
- English: "Ok. I could not find your current appointment. Please tell me when you'd like to reschedule and our receptionist will contact you as soon as possible.",
- Spanish: "De acuerdo. No pude encontrar su cita actual. Por favor díganos cuándo le gustaría reprogramar y nuestra recepcionista le contactará lo antes posible.",
- Portuguese: "Ok. Não consegui encontrar sua consulta atual. Por favor, diga-nos quando você gostaria de reagendar e nossa recepcionista entrará em contato o mais breve possível.",
- Mandarin: "好的。我找不到您当前的预约。请告诉我您希望重新安排的时间,我们的前台将尽快与您联系。",
- Cantonese: "好的。我找不到您目前的預約。請告訴我您希望重新安排的時間,我們的接待員將盡快與您聯絡。",
- Arabic: "حسناً. لم أجد موعدك الحالي. يرجى إخبارنا بالوقت الذي تريد إعادة الجدولة إليه وسيتصل بك موظف الاستقبال في أقرب وقت ممكن.",
- "Haitian Creole": "Oke. Mwen pa t jwenn randevou aktyèl ou. Tanpri di nou ki lè ou ta renmen reprogramè epi resepsyonis nou an pral kontakte ou pi vit posib.",
- };
- msg3 = notFoundMsgs[language] ?? notFoundMsgs["English"]!;
- nextStage3 = "done";
- }
- } else {
- // New appointment (or any other intent) → ask new or existing patient
- const newOrExistingMsgs: Record = {
- English: "Can you please tell me if you are a new or existing patient?",
- Spanish: "¿Puede decirme si es usted un paciente nuevo o existente?",
- Portuguese: "Pode me dizer se você é um paciente novo ou existente?",
- Mandarin: "请问您是新患者还是现有患者?",
- Cantonese: "請問您是新病人還是現有病人?",
- Arabic: "هل يمكنك إخباري إذا كنت مريضاً جديداً أم حالياً؟",
- "Haitian Creole": "Èske ou ka di mwen si ou se yon nouvo pasyan oswa yon pasyan egzistan?",
- };
- msg3 = newOrExistingMsgs[language] ?? newOrExistingMsgs["English"]!;
- nextStage3 = "asked_new_or_existing";
- }
-
- // Save all 3 outbound messages and set stage
- await saveOutbound(patient.id, introText);
- await saveOutbound(patient.id, empatheticText);
- await saveOutbound(patient.id, msg3);
- await setStage(patient.userId, patient.id, nextStage3);
-
- // Send all 3 in one TwiML response — Twilio guarantees delivery order
- res.set("Content-Type", "text/xml");
- return res.send(twimlMessages(introText, empatheticText, msg3));
- }
- }
-
- res.set("Content-Type", "text/xml");
- return res.send(empty());
-
- } catch (err) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-});
-
-// ── POST /api/twilio/webhook/voice ────────────────────────────────────────────
-
-router.post("/webhook/voice", async (req: Request, res: Response): Promise => {
- try {
- const { From, CallSid } = req.body;
-
- const normalizedFrom = (From || "").replace(/\D/g, "");
- // Ordered by id — earliest-created record wins when duplicates share a phone.
- const allPatients = await db.patient.findMany({ select: { id: true, phone: true, userId: true }, orderBy: { id: "asc" } });
- const patient = allPatients.find(
- (p: { id: number; phone: string | null; userId: number }) => p.phone && p.phone.replace(/\D/g, "") === normalizedFrom
- );
-
- let greeting = "Thank you for calling. Please leave a message after the beep and we will get back to you shortly.";
- if (patient) {
- const settings = await storage.getTwilioSettings(patient.userId);
- if (settings?.greetingMessage?.trim()) greeting = settings.greetingMessage.trim();
- }
-
- if (patient) {
- await storage.createCommunication({
- patientId: patient.id, channel: "voice", direction: "inbound",
- status: "completed", body: "(Inbound call — voicemail below)", twilioSid: CallSid,
- });
- }
-
- const recordingCallbackUrl = `${getPublicBaseUrl(req)}/api/twilio/webhook/voice-recording`;
-
- res.set("Content-Type", "text/xml");
- return res.send(`
-
- ${greeting}
-
- We did not receive a recording. Goodbye.
- `);
- } catch (err) {
- res.set("Content-Type", "text/xml");
- return res.send(`Thank you for calling. Please try again later. `);
- }
-});
-
-// ── POST /api/twilio/webhook/voice-recording ──────────────────────────────────
-
-router.post("/webhook/voice-recording", async (req: Request, res: Response): Promise => {
- try {
- const { CallSid, RecordingUrl } = req.body;
- if (RecordingUrl && CallSid) {
- const comm = await db.communication.findFirst({ where: { twilioSid: CallSid } });
- if (comm) {
- await db.communication.update({
- where: { id: comm.id },
- data: { body: `Voicemail: ${RecordingUrl}.mp3` },
- });
- }
- }
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- } catch (err) {
- res.set("Content-Type", "text/xml");
- return res.send(empty());
- }
-});
-
// POST /api/twilio/webhook/voice-browser
// Called by Twilio when a browser Device (Voice SDK) places an outbound call.
// Looks up the office's Twilio phone number by AccountSid and dials the patient.
@@ -716,221 +34,4 @@ router.post("/webhook/voice-browser", async (req: Request, res: Response): Promi
}
});
-// ── AI phone call (outbound "AI Call" from Patient Connection) ───────────────
-
-const MAX_AI_CALL_TURNS = 12;
-
-interface AiCallSession {
- patientId: number;
- userId: number;
- phone: string | null;
- language: string;
- officeName: string;
- chatTemplates: Record;
- history: { role: "assistant" | "user"; text: string }[];
- turns: number;
-}
-
-const aiCallSessions = new Map();
-
-interface VoiceLocale { gatherLang: string; sayVoice: string; }
-
-/** English/Spanish only for now — Twilio's native voice/recognition coverage
- * for the app's other supported languages (Mandarin, Cantonese, Arabic,
- * Haitian Creole) is inconsistent, so those fall back to English on calls. */
-function voiceLocaleFor(language: string): VoiceLocale {
- if (language === "Spanish") return { gatherLang: "es-US", sayVoice: "Polly.Lupe" };
- return { gatherLang: "en-US", sayVoice: "Polly.Joanna" };
-}
-
-// Spoken greeting is plain text, not LLM-generated, so it can't follow the
-// patient's language on its own — translate it ourselves when the office
-// hasn't overridden the default wording. Matches voiceLocaleFor's English/
-// Spanish-only voice coverage above.
-const GREETING_TRANSLATIONS: Record = {
- Spanish: "Hola {firstName}, soy Lisa, la asistente de inteligencia artificial de {officeName}. ¿En qué puedo ayudarle hoy?",
-};
-const RECALL_GREETING_TRANSLATIONS: Record = {
- Spanish: "Hola {firstName}, soy Lisa de {officeName}. Queríamos avisarle que ya le corresponde un examen y limpieza de rutina, que la mayoría de los seguros cubren sin costo. ¿Le gustaría programar una cita?",
-};
-
-/** Picks the greeting template to speak: the office's custom wording as-is if
- * they've edited it (we can't auto-translate free text they wrote), otherwise
- * the default translated into the patient's language when available. */
-function resolveGreetingTemplate(rawTemplate: string, defaultTemplate: string, translations: Record, language: string): string {
- if (rawTemplate.trim() !== defaultTemplate) return rawTemplate;
- return translations[language] ?? defaultTemplate;
-}
-
-const ENGLISH_LOCALE: VoiceLocale = { gatherLang: "en-US", sayVoice: "Polly.Joanna" };
-
-function aiVoiceTwiml(sayText: string, gatherActionUrl: string, locale: VoiceLocale): string {
- // action is always set, so Twilio posts back to it on both speech and
- // silence timeout — nothing after would ever run.
- return `
-
-
- ${escapeXml(sayText)}
-
- `;
-}
-
-function aiVoiceHangup(sayText: string, locale: VoiceLocale = ENGLISH_LOCALE): string {
- return `
-
- ${escapeXml(sayText)}
-
- `;
-}
-
-// POST /api/twilio/webhook/ai-voice
-// Entry point + conversation loop for outbound AI-driven calls placed via
-// POST /api/twilio/make-ai-call. Twilio hits this once when the call connects
-// (no CallSid session yet) and again after every with SpeechResult.
-// Each spoken turn is routed through the same routePatientTurn() logic the
-// SMS webhook uses, so calls follow identical rules/guardrails, in the
-// patient's preferred language (English/Spanish supported for voice).
-router.post("/webhook/ai-voice", async (req: Request, res: Response): Promise => {
- res.set("Content-Type", "text/xml");
- try {
- const { CallSid, SpeechResult } = req.body as { CallSid?: string; SpeechResult?: string };
- const patientIdParam = req.query.patientId as string | undefined;
- const purposeParam = req.query.purpose as string | undefined;
- if (!CallSid) return res.send(aiVoiceHangup("Sorry, something went wrong. Goodbye."));
-
- let session = aiCallSessions.get(CallSid);
-
- // ── First hit for this call: set up session + greet ──────────────────
- if (!session) {
- const patientId = parseInt(patientIdParam || "", 10);
- const patient = !isNaN(patientId)
- ? await db.patient.findUnique({
- where: { id: patientId },
- select: { id: true, userId: true, firstName: true, phone: true, preferredLanguage: true },
- })
- : null;
- if (!patient) return res.send(aiVoiceHangup("Sorry, we could not find your patient record. Goodbye."));
-
- const language = patient.preferredLanguage || "English";
- const locale = voiceLocaleFor(language);
- const isRecallCall = purposeParam === "recall";
-
- // Resume an in-progress cross-channel conversation (e.g. mid-reschedule
- // from a prior text) if one exists; otherwise start a fresh check-in call.
- // A "recall" call (staff-triggered from Patient Connection, offering an
- // existing patient a routine exam & cleaning) seeds a different stage
- // than the default reminder-style check-in.
- // Either kind of call always speaks its own pitch fresh (see greeting
- // below), so it must always reset the stage — even if a prior call of
- // either kind left the patient stuck mid-flow (e.g. "recall_asked_datetime"
- // or "asked_reschedule_datetime"). Otherwise the reply below gets
- // interpreted against that stale leftover stage instead of the fresh
- // pitch that was just spoken.
- if (isRecallCall) {
- await startRecallConversation(patient.userId, patient.id);
- } else {
- await resetConversation(patient.userId, patient.id);
- }
-
- const officeContact = await storage.getOfficeContact(patient.userId);
- const officeName = (officeContact as any)?.officeName?.trim() || "";
- const callTemplates = await storage.getAiCallTemplates(patient.userId);
-
- session = {
- patientId: patient.id, userId: patient.userId, phone: patient.phone,
- language, officeName, chatTemplates: callTemplates, history: [], turns: 0,
- };
- aiCallSessions.set(CallSid, session);
-
- const rawCallTemplate = (isRecallCall ? callTemplates.recallGreeting?.trim() : callTemplates.greeting?.trim()) ||
- (isRecallCall ? DEFAULT_RECALL_GREETING : DEFAULT_GREETING);
- const callTemplate = isRecallCall
- ? resolveGreetingTemplate(rawCallTemplate, DEFAULT_RECALL_GREETING, RECALL_GREETING_TRANSLATIONS, language)
- : resolveGreetingTemplate(rawCallTemplate, DEFAULT_GREETING, GREETING_TRANSLATIONS, language);
- const greeting = callTemplate
- .replace(/\{firstName\}/g, patient.firstName || "there")
- .replace(/\{officeName\}/g, officeName || "our office");
-
- session.history.push({ role: "assistant", text: greeting });
- await storage.createCommunication({
- patientId: patient.id, userId: patient.userId, channel: "voice",
- direction: "outbound", status: "completed", body: greeting, twilioSid: CallSid,
- });
-
- const actionUrl = `${getPublicBaseUrl(req)}/api/twilio/webhook/ai-voice?patientId=${patient.id}`;
- return res.send(aiVoiceTwiml(greeting, actionUrl, locale));
- }
-
- const locale = voiceLocaleFor(session.language);
-
- // ── Caller stayed silent past the speech timeout ──────────────────────
- // A call is a single continuous conversation, unlike SMS — if it ends
- // here, mid-flow or not, there's nothing left to resume, so reset the
- // stage now instead of leaving the patient stuck for their next call/text.
- if (!SpeechResult?.trim()) {
- aiCallSessions.delete(CallSid);
- await setStage(session.userId, session.patientId, "done");
- return res.send(aiVoiceHangup("I didn't catch a response. Our staff will follow up with you if needed. Goodbye.", locale));
- }
-
- session.history.push({ role: "user", text: SpeechResult.trim() });
- await storage.createCommunication({
- patientId: session.patientId, userId: session.userId, channel: "voice",
- direction: "inbound", status: "completed", body: SpeechResult.trim(), twilioSid: CallSid,
- });
-
- session.turns++;
-
- // ── Caller said something that sounds like goodbye, or we've hit the cap ──
- if (soundsLikeGoodbye(SpeechResult) || session.turns >= MAX_AI_CALL_TURNS) {
- aiCallSessions.delete(CallSid);
- await setStage(session.userId, session.patientId, "done");
- return res.send(aiVoiceHangup("Thank you for calling, have a great day. Goodbye.", locale));
- }
-
- const aiSettings = await storage.getAiSettings(session.userId);
- const activeAi = resolveAiProvider(aiSettings ?? {});
- if (!activeAi) {
- aiCallSessions.delete(CallSid);
- await setStage(session.userId, session.patientId, "done");
- return res.send(aiVoiceHangup("Our AI assistant is not available right now. Our staff will follow up with you. Goodbye.", locale));
- }
-
- const stage = await getStage(session.userId, session.patientId);
- const routed = await routePatientTurn({
- patient: {
- id: session.patientId, userId: session.userId,
- phone: session.phone, preferredLanguage: session.language,
- },
- stage, message: SpeechResult.trim(), activeAi,
- chatTemplates: session.chatTemplates, officeName: session.officeName,
- });
-
- const reply = routed.segments.join(" ").trim() ||
- "Sorry, I didn't quite catch that — could you say that again?";
-
- session.history.push({ role: "assistant", text: reply });
- await storage.createCommunication({
- patientId: session.patientId, userId: session.userId, channel: "voice",
- direction: "outbound", status: "completed", body: reply, twilioSid: CallSid,
- });
-
- if (routed.nextStage === "done" || soundsLikeGoodbye(reply)) {
- aiCallSessions.delete(CallSid);
- // routePatientTurn() already persisted nextStage — but if we're hanging
- // up because the reply sounded like a goodbye while nextStage was still
- // mid-flow, force it to "done" so the next call/text doesn't resume there.
- if (routed.nextStage !== "done") {
- await setStage(session.userId, session.patientId, "done");
- }
- return res.send(aiVoiceHangup(reply, locale));
- }
-
- const actionUrl = `${getPublicBaseUrl(req)}/api/twilio/webhook/ai-voice?patientId=${session.patientId}`;
- return res.send(aiVoiceTwiml(reply, actionUrl, locale));
- } catch (err) {
- return res.send(aiVoiceHangup("Sorry, something went wrong on our end. Goodbye."));
- }
-});
-
export default router;
diff --git a/apps/Backend/src/routes/twilio.ts b/apps/Backend/src/routes/twilio.ts
index 77d1aa2b..88363066 100644
--- a/apps/Backend/src/routes/twilio.ts
+++ b/apps/Backend/src/routes/twilio.ts
@@ -1,17 +1,13 @@
+// NOTE: Twilio is now used only for the in-browser dial pad (Access Token
+// minting + browser-Device outbound-call TwiML). Everything else — SMS,
+// inbound/AI voice, staff-triggered outbound calls — moved to Telnyx, see
+// routes/telnyx.ts and routes/telnyx-webhooks.ts.
import express, { Request, Response } from "express";
import twilio from "twilio";
import { storage } from "../storage";
-import { prisma as db } from "@repo/db/client";
-import { getHandoff, setHandoff, resetConversation, startNewPatientConversation, startRescheduleConversation, getAfterHoursHandoff, setAfterHoursHandoff } from "../ai/aiHandoffStore";
-import { resolveAiProvider } from "../ai/llm-factory";
-import { getTwilioPublicBaseUrl } from "../utils/publicUrl";
const router = express.Router();
-function getTwilioClient(accountSid: string, authToken: string) {
- return twilio(accountSid, authToken);
-}
-
// GET /api/twilio/settings
router.get("/settings", async (req: Request, res: Response): Promise => {
try {
@@ -27,7 +23,6 @@ router.get("/settings", async (req: Request, res: Response): Promise => {
accountSid: settings.accountSid,
authToken: settings.authToken,
phoneNumber: settings.phoneNumber,
- greetingMessage: settings.greetingMessage,
twimlAppSid: templates["_twiml_app_sid"] || null,
});
} catch (err) {
@@ -41,7 +36,7 @@ router.put("/settings", async (req: Request, res: Response): Promise => {
const userId = req.user?.id;
if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const { accountSid, authToken, phoneNumber, greetingMessage, twimlAppSid } = req.body;
+ const { accountSid, authToken, phoneNumber, twimlAppSid } = req.body;
if (!accountSid?.trim() || !authToken?.trim() || !phoneNumber?.trim()) {
return res.status(400).json({ message: "accountSid, authToken, and phoneNumber are required" });
}
@@ -50,7 +45,6 @@ router.put("/settings", async (req: Request, res: Response): Promise => {
accountSid: accountSid.trim(),
authToken: authToken.trim(),
phoneNumber: phoneNumber.trim(),
- greetingMessage: greetingMessage?.trim() || null,
twimlAppSid: twimlAppSid?.trim() || null,
});
@@ -60,7 +54,6 @@ router.put("/settings", async (req: Request, res: Response): Promise => {
accountSid: settings.accountSid,
authToken: settings.authToken,
phoneNumber: settings.phoneNumber,
- greetingMessage: settings.greetingMessage,
twimlAppSid: templates["_twiml_app_sid"] || null,
});
} catch (err) {
@@ -68,461 +61,6 @@ router.put("/settings", async (req: Request, res: Response): Promise => {
}
});
-// POST /api/twilio/send-sms
-router.post("/send-sms", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const { to, message, patientId, startFlow } = req.body;
- if (!to || !message) return res.status(400).json({ message: "to and message are required" });
-
- const settings = await storage.getTwilioSettings(userId);
- if (!settings) {
- return res.status(400).json({ message: "Twilio is not configured. Please add your Twilio credentials in Settings." });
- }
-
- const client = getTwilioClient(settings.accountSid, settings.authToken);
- const twilioMsg = await client.messages.create({
- body: message,
- from: settings.phoneNumber,
- to,
- });
-
- if (patientId) {
- const pid = Number(patientId);
- await storage.createCommunication({
- patientId: pid,
- userId,
- channel: "sms",
- direction: "outbound",
- status: "sent",
- body: message,
- twilioSid: twilioMsg.sid,
- });
- // Set conversation stage based on which flow was started
- if (startFlow === "new_patient") {
- await startNewPatientConversation(userId, pid);
- } else if (startFlow === "reschedule") {
- await startRescheduleConversation(userId, pid);
- } else if (startFlow === "no_follow_up") {
- // AI follow-up disabled — leave existing stage untouched
- } else {
- // "reminder" or unspecified → start reminder AI flow
- await resetConversation(userId, pid);
- }
- }
-
- return res.status(200).json({ sid: twilioMsg.sid, status: twilioMsg.status });
- } catch (err: any) {
- return res.status(500).json({ error: err.message || "Failed to send SMS" });
- }
-});
-
-// POST /api/twilio/make-ai-call
-// Places an outbound call where Lisa (the AI assistant) conducts the whole
-// conversation live over the phone — see /webhook/ai-voice for the loop.
-router.post("/make-ai-call", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const { to, patientId, purpose } = req.body;
- if (!to || !patientId) return res.status(400).json({ message: "to and patientId are required" });
-
- const settings = await storage.getTwilioSettings(userId);
- if (!settings) {
- return res.status(400).json({ message: "Twilio is not configured. Please add your Twilio credentials in Settings." });
- }
-
- const aiSettings = await storage.getAiSettings(userId);
- if (!resolveAiProvider(aiSettings ?? {})) {
- return res.status(400).json({ message: "AI is not configured. Please add an AI provider key in Settings before placing an AI call." });
- }
-
- const patient = await db.patient.findFirst({ where: { id: Number(patientId), userId } });
- if (!patient) return res.status(404).json({ message: "Patient not found" });
-
- let publicBaseUrl: string;
- try {
- publicBaseUrl = getTwilioPublicBaseUrl();
- } catch (err: any) {
- return res.status(500).json({ message: err.message });
- }
- const callPurpose = purpose === "recall" ? "recall" : "reminder";
- const webhookUrl = `${publicBaseUrl}/api/twilio/webhook/ai-voice?patientId=${patient.id}&purpose=${callPurpose}`;
-
- const client = getTwilioClient(settings.accountSid, settings.authToken);
- const call = await client.calls.create({
- url: webhookUrl,
- method: "POST",
- from: settings.phoneNumber,
- to,
- });
-
- return res.status(200).json({ sid: call.sid, status: call.status });
- } catch (err: any) {
- return res.status(500).json({ error: err.message || "Failed to place AI call" });
- }
-});
-
-// POST /api/twilio/send-reminders-batch
-router.post("/send-reminders-batch", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const { date, staffIds, aiFollowUp = true } = req.body as {
- date: string;
- staffIds: number[];
- aiFollowUp?: boolean;
- };
- if (!date || !Array.isArray(staffIds) || staffIds.length === 0) {
- return res.status(400).json({ message: "date and staffIds are required" });
- }
-
- const settings = await storage.getTwilioSettings(userId);
- if (!settings) {
- return res.status(400).json({ message: "Twilio is not configured. Please add your Twilio credentials in Settings." });
- }
-
- // Resolve office name, address, phone, and reminder SMS template
- const officeContact = await storage.getOfficeContact(userId);
- const officeName = (officeContact as any)?.officeName?.trim() || "";
- const officeAddress = [
- (officeContact as any)?.streetAddress?.trim(),
- (officeContact as any)?.city?.trim(),
- (officeContact as any)?.state?.trim(),
- (officeContact as any)?.zipCode?.trim(),
- ].filter(Boolean).join(", ");
- const officePhone = (officeContact as any)?.phoneNumber?.trim() || "";
- const chatTemplates = await storage.getAiChatTemplates(userId);
-
- const DEFAULT_REMINDER_SMS =
- "Hi {firstName}, this is a reminder from {officeName}. You have an appointment on {appointmentDate} at {appointmentTime}. Please come to our office at {officeAddress}. Please reply YES to confirm or NO to reschedule. Thank you!";
- const templateBody = chatTemplates.reminderSms?.trim() || DEFAULT_REMINDER_SMS;
-
- // Fetch appointments for the selected staff columns on the given date
- const dayStart = new Date(date);
- dayStart.setUTCHours(0, 0, 0, 0);
- const dayEnd = new Date(date);
- dayEnd.setUTCHours(23, 59, 59, 999);
-
- const appointments = await db.appointment.findMany({
- where: {
- staffId: { in: staffIds },
- date: { gte: dayStart, lte: dayEnd },
- status: { not: "cancelled" },
- patient: { userId },
- },
- include: {
- patient: { select: { id: true, firstName: true, phone: true } },
- },
- orderBy: { startTime: "asc" },
- });
-
- // Format a date string as "May 9, 2026"
- const months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
- const formatApptDate = (d: Date | string) => {
- const dt = new Date(d);
- return `${months[dt.getUTCMonth()]} ${dt.getUTCDate()}, ${dt.getUTCFullYear()}`;
- };
-
- const client = getTwilioClient(settings.accountSid, settings.authToken);
- let sent = 0;
- let skipped = 0;
-
- // Deduplicate by patientId — send at most one reminder per patient per run
- const seen = new Set();
-
- for (const appt of appointments) {
- const patient = appt.patient;
- if (!patient?.phone || seen.has(patient.id)) { skipped++; continue; }
- seen.add(patient.id);
-
- const apptDate = formatApptDate(appt.date);
- const apptTime = typeof appt.startTime === "string"
- ? appt.startTime.substring(0, 5)
- : String(appt.startTime);
-
- const message = templateBody
- .replace(/\{firstName\}/g, patient.firstName ?? "")
- .replace(/\{officeName\}/g, officeName)
- .replace(/\{officeAddress\}/g, officeAddress)
- .replace(/\{officePhone\}/g, officePhone)
- .replace(/\{twilioPhone\}/g, settings.phoneNumber)
- .replace(/\{appointmentDate\}/g, apptDate)
- .replace(/\{appointmentTime\}/g, apptTime)
- .replace(/\{date\}/g, apptDate)
- .replace(/\{time\}/g, apptTime);
-
- try {
- const twilioMsg = await client.messages.create({
- body: message,
- from: settings.phoneNumber,
- to: patient.phone,
- });
- await storage.createCommunication({
- patientId: patient.id,
- userId,
- channel: "sms",
- direction: "outbound",
- status: "sent",
- body: message,
- twilioSid: twilioMsg.sid,
- });
- if (aiFollowUp) {
- await resetConversation(userId, patient.id);
- }
- sent++;
- } catch {
- skipped++;
- }
- }
-
- return res.status(200).json({ sent, skipped });
- } catch (err: any) {
- return res.status(500).json({ error: err.message || "Failed to send reminders" });
- }
-});
-
-// POST /api/twilio/send-reschedule-batch
-router.post("/send-reschedule-batch", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const { date, staffIds, aiFollowUp = true } = req.body as { date: string; staffIds: number[]; aiFollowUp?: boolean };
- if (!date || !Array.isArray(staffIds) || staffIds.length === 0) {
- return res.status(400).json({ message: "date and staffIds are required" });
- }
-
- const settings = await storage.getTwilioSettings(userId);
- if (!settings) {
- return res.status(400).json({ message: "Twilio is not configured. Please add your Twilio credentials in Settings." });
- }
-
- // Find the "Reschedule by office" template from the SMS template list
- const templateList = await storage.getSmsTemplateList(userId);
- const rescheduleTemplate = templateList.find((t) =>
- t.name.toLowerCase().includes("reschedule") && t.name.toLowerCase().includes("office")
- ) || templateList.find((t) => t.name.toLowerCase().includes("reschedule"));
-
- const DEFAULT_RESCHEDULE_SMS =
- "Hi {firstName}, this is {officeName}. We need to reschedule your appointment. Please reply to let us know your availability. Thank you!";
- const templateBody = rescheduleTemplate?.body?.trim() || DEFAULT_RESCHEDULE_SMS;
-
- const officeContact = await storage.getOfficeContact(userId);
- const officeName = (officeContact as any)?.officeName?.trim() || "";
- const officeAddress = [
- (officeContact as any)?.streetAddress?.trim(),
- (officeContact as any)?.city?.trim(),
- (officeContact as any)?.state?.trim(),
- (officeContact as any)?.zipCode?.trim(),
- ].filter(Boolean).join(", ");
- const officePhone = (officeContact as any)?.phoneNumber?.trim() || "";
-
- const dayStart = new Date(date);
- dayStart.setUTCHours(0, 0, 0, 0);
- const dayEnd = new Date(date);
- dayEnd.setUTCHours(23, 59, 59, 999);
-
- const appointments = await db.appointment.findMany({
- where: {
- staffId: { in: staffIds },
- date: { gte: dayStart, lte: dayEnd },
- status: { not: "cancelled" },
- patient: { userId },
- },
- include: {
- patient: { select: { id: true, firstName: true, phone: true } },
- },
- orderBy: { startTime: "asc" },
- });
-
- const months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
- const formatApptDate = (d: Date | string) => {
- const dt = new Date(d);
- return `${months[dt.getUTCMonth()]} ${dt.getUTCDate()}, ${dt.getUTCFullYear()}`;
- };
-
- const client = getTwilioClient(settings.accountSid, settings.authToken);
- let sent = 0;
- let skipped = 0;
- const seen = new Set();
-
- for (const appt of appointments) {
- const patient = appt.patient;
- if (!patient?.phone || seen.has(patient.id)) { skipped++; continue; }
- seen.add(patient.id);
-
- const apptDate = formatApptDate(appt.date);
- const apptTime = typeof appt.startTime === "string"
- ? appt.startTime.substring(0, 5)
- : String(appt.startTime);
-
- const message = templateBody
- .replace(/\{firstName\}/g, patient.firstName ?? "")
- .replace(/\{officeName\}/g, officeName)
- .replace(/\{officeAddress\}/g, officeAddress)
- .replace(/\{officePhone\}/g, officePhone)
- .replace(/\{twilioPhone\}/g, settings.phoneNumber)
- .replace(/\{appointmentDate\}/g, apptDate)
- .replace(/\{appointmentTime\}/g, apptTime)
- .replace(/\{date\}/g, apptDate)
- .replace(/\{time\}/g, apptTime);
-
- try {
- const twilioMsg = await client.messages.create({
- body: message,
- from: settings.phoneNumber,
- to: patient.phone,
- });
- await storage.createCommunication({
- patientId: patient.id,
- userId,
- channel: "sms",
- direction: "outbound",
- status: "sent",
- body: message,
- twilioSid: twilioMsg.sid,
- });
- if (aiFollowUp) {
- await startRescheduleConversation(userId, patient.id);
- }
- sent++;
- } catch {
- skipped++;
- }
- }
-
- return res.status(200).json({ sent, skipped });
- } catch (err: any) {
- return res.status(500).json({ error: err.message || "Failed to send reschedule messages" });
- }
-});
-
-// GET /api/twilio/sms-template-list
-router.get("/sms-template-list", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const list = await storage.getSmsTemplateList(userId);
- return res.status(200).json(list);
- } catch (err) {
- return res.status(500).json({ error: "Failed to fetch SMS templates", details: String(err) });
- }
-});
-
-// PUT /api/twilio/sms-template-list
-router.put("/sms-template-list", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const templates = req.body;
- if (!Array.isArray(templates)) return res.status(400).json({ message: "Expected an array of templates" });
- await storage.saveSmsTemplateList(userId, templates);
- return res.status(200).json({ ok: true });
- } catch (err) {
- return res.status(500).json({ error: "Failed to save SMS templates", details: String(err) });
- }
-});
-
-// GET /api/twilio/templates
-router.get("/templates", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const templates = await storage.getTemplates(userId);
- return res.status(200).json(templates);
- } catch (err) {
- return res.status(500).json({ error: "Failed to fetch templates", details: String(err) });
- }
-});
-
-// PUT /api/twilio/templates/:key
-router.put("/templates/:key", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const { key } = req.params;
- const { body } = req.body;
- if (!key || !body?.trim()) return res.status(400).json({ message: "key and body are required" });
- await storage.saveTemplate(userId, key, body.trim());
- return res.status(200).json({ key, body: body.trim() });
- } catch (err) {
- return res.status(500).json({ error: "Failed to save template", details: String(err) });
- }
-});
-
-// GET /api/twilio/after-hours-handoff
-router.get("/after-hours-handoff", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- return res.status(200).json({ enabled: await getAfterHoursHandoff(userId) });
- } catch (err) {
- return res.status(500).json({ error: "Failed to get after-hours handoff state" });
- }
-});
-
-// PUT /api/twilio/after-hours-handoff
-router.put("/after-hours-handoff", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const { enabled } = req.body;
- if (typeof enabled !== "boolean") return res.status(400).json({ message: "enabled must be a boolean" });
- await setAfterHoursHandoff(userId, enabled);
- return res.status(200).json({ enabled });
- } catch (err) {
- return res.status(500).json({ error: "Failed to set after-hours handoff state" });
- }
-});
-
-// GET /api/twilio/ai-handoff/:patientId
-router.get("/ai-handoff/:patientId", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const patientId = parseInt(req.params.patientId);
- if (isNaN(patientId)) return res.status(400).json({ message: "Invalid patientId" });
- return res.status(200).json({ enabled: await getHandoff(userId, patientId) });
- } catch (err) {
- return res.status(500).json({ error: "Failed to get AI handoff state" });
- }
-});
-
-// PUT /api/twilio/ai-handoff/:patientId
-router.put("/ai-handoff/:patientId", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
- const patientId = parseInt(req.params.patientId);
- if (isNaN(patientId)) return res.status(400).json({ message: "Invalid patientId" });
- const { enabled } = req.body;
- if (typeof enabled !== "boolean") return res.status(400).json({ message: "enabled must be a boolean" });
- await setHandoff(userId, patientId, enabled);
- return res.status(200).json({ enabled });
- } catch (err) {
- return res.status(500).json({ error: "Failed to set AI handoff state" });
- }
-});
-
-// GET /api/twilio/recent-communications
-router.get("/recent-communications", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const limit = Math.min(50, parseInt(req.query.limit as string) || 20);
- const communications = await storage.getRecentCommunicationsByUser(userId, limit);
- return res.status(200).json(communications);
- } catch (err) {
- return res.status(500).json({ error: "Failed to fetch recent communications", details: String(err) });
- }
-});
-
// POST /api/twilio/voice-token
// Returns a short-lived Twilio Access Token so the browser Voice SDK can place calls.
router.post("/voice-token", async (req: Request, res: Response): Promise => {
@@ -559,45 +97,4 @@ router.post("/voice-token", async (req: Request, res: Response): Promise =>
}
});
-// POST /api/twilio/make-call
-router.post("/make-call", async (req: Request, res: Response): Promise => {
- try {
- const userId = req.user?.id;
- if (!userId) return res.status(401).json({ message: "Unauthorized" });
-
- const { to, message, patientId } = req.body;
- if (!to) return res.status(400).json({ message: "to is required" });
-
- const settings = await storage.getTwilioSettings(userId);
- if (!settings) {
- return res.status(400).json({ message: "Twilio is not configured. Please add your Twilio credentials in Settings." });
- }
-
- const twimlMessage = message || "Hello, this is a call from your dental office.";
- const twiml = `${twimlMessage} `;
-
- const client = getTwilioClient(settings.accountSid, settings.authToken);
- const call = await client.calls.create({
- twiml,
- from: settings.phoneNumber,
- to,
- });
-
- if (patientId) {
- await storage.createCommunication({
- patientId: Number(patientId),
- userId,
- channel: "voice",
- direction: "outbound",
- status: "queued",
- twilioSid: call.sid,
- });
- }
-
- return res.status(200).json({ sid: call.sid, status: call.status });
- } catch (err: any) {
- return res.status(500).json({ error: err.message || "Failed to make call" });
- }
-});
-
export default router;
diff --git a/apps/Backend/src/storage/index.ts b/apps/Backend/src/storage/index.ts
index 59e2901b..ed37e262 100755
--- a/apps/Backend/src/storage/index.ts
+++ b/apps/Backend/src/storage/index.ts
@@ -18,6 +18,7 @@ import { patientDocumentsStorage } from './patientDocuments-storage';
import * as exportPaymentsReportsStorage from "./export-payments-reports-storage";
import { cronJobLogStorage } from "./cron-job-log-storage";
import { twilioStorage } from "./twilio-storage";
+import { telnyxStorage } from "./telnyx-storage";
import { aiSettingsStorage } from "./ai-settings-storage";
import { officeHoursStorage } from "./office-hours-storage";
import { officeContactStorage } from "./office-contact-storage";
@@ -47,6 +48,7 @@ export const storage = {
...exportPaymentsReportsStorage,
...cronJobLogStorage,
...twilioStorage,
+ ...telnyxStorage,
...aiSettingsStorage,
...officeHoursStorage,
...officeContactStorage,
diff --git a/apps/Backend/src/storage/telnyx-storage.ts b/apps/Backend/src/storage/telnyx-storage.ts
new file mode 100644
index 00000000..156a77d2
--- /dev/null
+++ b/apps/Backend/src/storage/telnyx-storage.ts
@@ -0,0 +1,25 @@
+import { prisma as db } from "@repo/db/client";
+
+export type TelnyxSettingsData = {
+ apiKey: string;
+ accountSid?: string | null;
+ phoneNumber: string;
+ texmlApplicationId?: string | null;
+ messagingProfileId?: string | null;
+ webhookPublicKey?: string | null;
+ greetingMessage?: string | null;
+};
+
+export const telnyxStorage = {
+ async getTelnyxSettings(userId: number) {
+ return db.telnyxSettings.findUnique({ where: { userId } });
+ },
+
+ async upsertTelnyxSettings(userId: number, data: TelnyxSettingsData) {
+ return db.telnyxSettings.upsert({
+ where: { userId },
+ update: data,
+ create: { userId, ...data },
+ });
+ },
+};
diff --git a/apps/Backend/src/storage/twilio-storage.ts b/apps/Backend/src/storage/twilio-storage.ts
index b0cabcba..bb30bc45 100644
--- a/apps/Backend/src/storage/twilio-storage.ts
+++ b/apps/Backend/src/storage/twilio-storage.ts
@@ -24,6 +24,9 @@ export type CommunicationCreateData = {
body?: string;
callDuration?: number;
twilioSid?: string;
+ // Which platform produced twilioSid — defaults to "twilio" (dial-pad calls) when
+ // omitted; Telnyx call sites (everything else) pass "telnyx" explicitly.
+ provider?: "twilio" | "telnyx";
};
export const twilioStorage = {
diff --git a/apps/Backend/src/utils/publicUrl.ts b/apps/Backend/src/utils/publicUrl.ts
index a375a888..847298a5 100644
--- a/apps/Backend/src/utils/publicUrl.ts
+++ b/apps/Backend/src/utils/publicUrl.ts
@@ -7,26 +7,27 @@ import type { Request } from "express";
* and Cloudflare/Let's Encrypt terminate TLS in front of it either way.
*
* Only valid for requests that actually arrived via the public tunnel (i.e. inside
- * a Twilio webhook handler). For anything triggered from the staff browser — which
- * reaches the backend over the LAN-only local-* hostname — use getTwilioPublicBaseUrl()
- * instead, since Twilio can never reach that LAN hostname to fetch a callback URL.
+ * a Twilio/Telnyx webhook handler). For anything triggered from the staff browser —
+ * which reaches the backend over the LAN-only local-* hostname — use
+ * getPublicTunnelBaseUrl() instead, since neither provider can reach that LAN
+ * hostname to fetch a callback URL.
*/
export function getPublicBaseUrl(req: Request): string {
return `https://${req.get("host")}`;
}
/**
- * Fixed public origin Twilio must use to call back into this office's server
- * (e.g. for outbound-call TwiML webhooks). Comes from CLOUDFLARE_HOST, the
- * per-office env var already reserved for this — not derived from the
- * triggering request, since that request may have arrived over the LAN-only
- * hostname, which Twilio cannot reach.
+ * Fixed public origin Twilio/Telnyx must use to call back into this office's server
+ * (e.g. for outbound-call webhooks). Comes from CLOUDFLARE_HOST, the per-office env
+ * var already reserved for this — not derived from the triggering request, since
+ * that request may have arrived over the LAN-only hostname, which neither provider
+ * can reach.
*/
-export function getTwilioPublicBaseUrl(): string {
+export function getPublicTunnelBaseUrl(): string {
const host = process.env.CLOUDFLARE_HOST?.trim();
if (!host) {
throw new Error(
- "CLOUDFLARE_HOST is not set — required to build a Twilio-reachable callback URL. Set it in .env to this office's public tunnel hostname."
+ "CLOUDFLARE_HOST is not set — required to build a provider-reachable callback URL. Set it in .env to this office's public tunnel hostname."
);
}
return `https://${host}`;
diff --git a/apps/Frontend/src/components/layout/sidebar.tsx b/apps/Frontend/src/components/layout/sidebar.tsx
index 36ef2a3b..1117768d 100755
--- a/apps/Frontend/src/components/layout/sidebar.tsx
+++ b/apps/Frontend/src/components/layout/sidebar.tsx
@@ -305,6 +305,11 @@ export function Sidebar() {
path: "/settings/twilio",
icon: ,
},
+ {
+ name: "Telnyx Settings",
+ path: "/settings/telnyx",
+ icon: ,
+ },
{
name: "AI API Setting",
path: "/settings/ai",
diff --git a/apps/Frontend/src/components/patient-connection/message-thread.tsx b/apps/Frontend/src/components/patient-connection/message-thread.tsx
index 594e70ed..07a5e621 100755
--- a/apps/Frontend/src/components/patient-connection/message-thread.tsx
+++ b/apps/Frontend/src/components/patient-connection/message-thread.tsx
@@ -269,9 +269,9 @@ export function MessageThread({ patient, onBack, appointmentInfo }: MessageThrea
const [pendingStartFlow, setPendingStartFlow] = useState<"new_patient" | "reschedule" | null>(null);
useQuery<{ enabled: boolean }>({
- queryKey: ["/api/twilio/ai-handoff", patient.id],
+ queryKey: ["/api/telnyx/ai-handoff", patient.id],
queryFn: async () => {
- const res = await apiRequest("GET", `/api/twilio/ai-handoff/${patient.id}`);
+ const res = await apiRequest("GET", `/api/telnyx/ai-handoff/${patient.id}`);
return res.json();
},
onSuccess: (data: { enabled: boolean }) => setHandOffToAI(data.enabled),
@@ -289,7 +289,7 @@ export function MessageThread({ patient, onBack, appointmentInfo }: MessageThrea
const handoffMutation = useMutation({
mutationFn: async (enabled: boolean) =>
- apiRequest("PUT", `/api/twilio/ai-handoff/${patient.id}`, { enabled }),
+ apiRequest("PUT", `/api/telnyx/ai-handoff/${patient.id}`, { enabled }),
});
const handleHandoffToggle = (enabled: boolean) => {
@@ -318,7 +318,7 @@ export function MessageThread({ patient, onBack, appointmentInfo }: MessageThrea
const sendMessageMutation = useMutation({
mutationFn: async (message: string) =>
- apiRequest("POST", "/api/twilio/send-sms", {
+ apiRequest("POST", "/api/telnyx/send-sms", {
to: patient.phone,
message,
patientId: patient.id,
diff --git a/apps/Frontend/src/components/patient-connection/sms-template-diaog.tsx b/apps/Frontend/src/components/patient-connection/sms-template-diaog.tsx
index 70683f25..10128aa2 100755
--- a/apps/Frontend/src/components/patient-connection/sms-template-diaog.tsx
+++ b/apps/Frontend/src/components/patient-connection/sms-template-diaog.tsx
@@ -78,7 +78,7 @@ export function SmsTemplateDialog({
const { toast } = useToast();
const { data: savedTemplates = {} } = useQuery>({
- queryKey: ["/api/twilio/templates"],
+ queryKey: ["/api/telnyx/templates"],
enabled: open,
});
@@ -99,7 +99,7 @@ export function SmsTemplateDialog({
const sendMutation = useMutation({
mutationFn: async (message: string) => {
- return apiRequest("POST", "/api/twilio/send-sms", {
+ return apiRequest("POST", "/api/telnyx/send-sms", {
to: patient!.phone,
message,
patientId: patient!.id,
@@ -112,16 +112,16 @@ export function SmsTemplateDialog({
setMessageText("");
},
onError: (err: any) => {
- toast({ title: "Failed to Send SMS", description: err.message || "Please check your Twilio configuration.", variant: "destructive" });
+ toast({ title: "Failed to Send SMS", description: err.message || "Please check your Telnyx configuration.", variant: "destructive" });
},
});
const updateMutation = useMutation({
mutationFn: async ({ key, body }: { key: string; body: string }) => {
- return apiRequest("PUT", `/api/twilio/templates/${key}`, { body });
+ return apiRequest("PUT", `/api/telnyx/templates/${key}`, { body });
},
onSuccess: () => {
- queryClient.invalidateQueries({ queryKey: ["/api/twilio/templates"] });
+ queryClient.invalidateQueries({ queryKey: ["/api/telnyx/templates"] });
toast({ title: "Template Updated", description: "This template will be used going forward." });
},
onError: (err: any) => {
diff --git a/apps/Frontend/src/components/settings/ai-chat-settings-card.tsx b/apps/Frontend/src/components/settings/ai-chat-settings-card.tsx
index f3a65fee..505f6cac 100644
--- a/apps/Frontend/src/components/settings/ai-chat-settings-card.tsx
+++ b/apps/Frontend/src/components/settings/ai-chat-settings-card.tsx
@@ -1107,9 +1107,9 @@ export function AiChatSettingsCard() {
});
const { data: smsTemplateListData, isLoading: smsLoading } = useQuery({
- queryKey: ["/api/twilio/sms-template-list"],
+ queryKey: ["/api/telnyx/sms-template-list"],
queryFn: async () => {
- const res = await apiRequest("GET", "/api/twilio/sms-template-list");
+ const res = await apiRequest("GET", "/api/telnyx/sms-template-list");
if (!res.ok) return [];
return res.json();
},
@@ -1200,7 +1200,7 @@ export function AiChatSettingsCard() {
const saveSmsListMutation = useMutation({
mutationFn: async (list: SmsTemplate[]) => {
- const res = await apiRequest("PUT", "/api/twilio/sms-template-list", list);
+ const res = await apiRequest("PUT", "/api/telnyx/sms-template-list", list);
if (!res.ok) {
const err = await res.json().catch(() => null);
throw new Error(err?.message || "Failed to save SMS templates");
@@ -1208,7 +1208,7 @@ export function AiChatSettingsCard() {
return res.json();
},
onSuccess: () => {
- queryClient.invalidateQueries({ queryKey: ["/api/twilio/sms-template-list"] });
+ queryClient.invalidateQueries({ queryKey: ["/api/telnyx/sms-template-list"] });
toast({ title: "SMS template saved" });
},
onError: (err: any) => {
@@ -1382,7 +1382,7 @@ export function AiChatSettingsCard() {
{"{officeName}"}{" "}
{"{officeAddress}"}{" "}
{"{officePhone}"}{" "}
- {"{twilioPhone}"}{" "}
+ {"{twilioPhone}"}{" "}
{"{appointmentDate}"}{" "}
{"{appointmentTime}"}
diff --git a/apps/Frontend/src/components/settings/telnyx-settings-card.tsx b/apps/Frontend/src/components/settings/telnyx-settings-card.tsx
new file mode 100644
index 00000000..1e8c7dcb
--- /dev/null
+++ b/apps/Frontend/src/components/settings/telnyx-settings-card.tsx
@@ -0,0 +1,227 @@
+import { useState, useEffect } from "react";
+import { useQuery, useMutation } from "@tanstack/react-query";
+import { Card, CardContent } from "@/components/ui/card";
+import { Eye, EyeOff, CheckCircle } from "lucide-react";
+import { useToast } from "@/hooks/use-toast";
+import { apiRequest, queryClient } from "@/lib/queryClient";
+
+type TelnyxSettings = {
+ id?: number;
+ apiKey: string;
+ accountSid?: string | null;
+ phoneNumber: string;
+ texmlApplicationId?: string | null;
+ messagingProfileId?: string | null;
+ webhookPublicKey?: string | null;
+ greetingMessage?: string | null;
+};
+
+export function TelnyxSettingsCard() {
+ const { toast } = useToast();
+ const [apiKey, setApiKey] = useState("");
+ const [accountSid, setAccountSid] = useState("");
+ const [phoneNumber, setPhoneNumber] = useState("");
+ const [texmlApplicationId, setTexmlApplicationId] = useState("");
+ const [messagingProfileId, setMessagingProfileId] = useState("");
+ const [webhookPublicKey, setWebhookPublicKey] = useState("");
+ const [greetingMessage, setGreetingMessage] = useState("");
+ const [showApiKey, setShowApiKey] = useState(false);
+
+ const { data: settings, isLoading } = useQuery({
+ queryKey: ["/api/telnyx/settings"],
+ queryFn: async () => {
+ const res = await apiRequest("GET", "/api/telnyx/settings");
+ if (!res.ok) return null;
+ return res.json();
+ },
+ });
+
+ useEffect(() => {
+ if (settings) {
+ setApiKey(settings.apiKey ?? "");
+ setAccountSid(settings.accountSid ?? "");
+ setPhoneNumber(settings.phoneNumber ?? "");
+ setTexmlApplicationId(settings.texmlApplicationId ?? "");
+ setMessagingProfileId(settings.messagingProfileId ?? "");
+ setWebhookPublicKey(settings.webhookPublicKey ?? "");
+ setGreetingMessage(settings.greetingMessage ?? "");
+ }
+ }, [settings]);
+
+ const saveMutation = useMutation({
+ mutationFn: async (data: TelnyxSettings) => {
+ const res = await apiRequest("PUT", "/api/telnyx/settings", data);
+ if (!res.ok) {
+ const err = await res.json().catch(() => null);
+ throw new Error(err?.message || "Failed to save Telnyx settings");
+ }
+ return res.json();
+ },
+ onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ["/api/telnyx/settings"] });
+ toast({ title: "Telnyx Settings Saved", description: "Your Telnyx credentials have been saved." });
+ },
+ onError: (err: any) => {
+ toast({ title: "Error", description: err?.message || "Failed to save settings", variant: "destructive" });
+ },
+ });
+
+ const handleSubmit = (e: React.FormEvent) => {
+ e.preventDefault();
+ if (!apiKey.trim() || !phoneNumber.trim()) return;
+ saveMutation.mutate({
+ apiKey: apiKey.trim(),
+ accountSid: accountSid.trim() || null,
+ phoneNumber: phoneNumber.trim(),
+ texmlApplicationId: texmlApplicationId.trim() || null,
+ messagingProfileId: messagingProfileId.trim() || null,
+ webhookPublicKey: webhookPublicKey.trim() || null,
+ greetingMessage: greetingMessage.trim() || null,
+ });
+ };
+
+ const isConfigured = !!(settings?.apiKey && settings?.phoneNumber);
+ const webhookOrigin = typeof window !== "undefined" ? window.location.origin : "";
+
+ return (
+
+
+
+
Telnyx Settings
+ {isConfigured && (
+
+ Configured
+
+ )}
+
+
+ Telnyx handles SMS, voicemail, and AI phone calls — everything except the in-browser dial pad
+ (see Twilio Settings above). Find these in your{" "}
+ Telnyx Mission Control Portal .
+
+
+ {isLoading ? (
+ Loading...
+ ) : (
+
+ )}
+
+
+ );
+}
diff --git a/apps/Frontend/src/components/settings/twilio-settings-card.tsx b/apps/Frontend/src/components/settings/twilio-settings-card.tsx
index 2da11c0d..2dac62b3 100644
--- a/apps/Frontend/src/components/settings/twilio-settings-card.tsx
+++ b/apps/Frontend/src/components/settings/twilio-settings-card.tsx
@@ -10,7 +10,6 @@ type TwilioSettings = {
accountSid: string;
authToken: string;
phoneNumber: string;
- greetingMessage?: string | null;
twimlAppSid?: string | null;
};
@@ -19,7 +18,6 @@ export function TwilioSettingsCard() {
const [accountSid, setAccountSid] = useState("");
const [authToken, setAuthToken] = useState("");
const [phoneNumber, setPhoneNumber] = useState("");
- const [greetingMessage, setGreetingMessage] = useState("");
const [twimlAppSid, setTwimlAppSid] = useState("");
const [showAuthToken, setShowAuthToken] = useState(false);
@@ -37,7 +35,6 @@ export function TwilioSettingsCard() {
setAccountSid(settings.accountSid ?? "");
setAuthToken(settings.authToken ?? "");
setPhoneNumber(settings.phoneNumber ?? "");
- setGreetingMessage(settings.greetingMessage ?? "");
setTwimlAppSid(settings.twimlAppSid ?? "");
}
}, [settings]);
@@ -63,10 +60,11 @@ export function TwilioSettingsCard() {
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (!accountSid.trim() || !authToken.trim() || !phoneNumber.trim()) return;
- saveMutation.mutate({ accountSid: accountSid.trim(), authToken: authToken.trim(), phoneNumber: phoneNumber.trim(), greetingMessage: greetingMessage.trim() || null, twimlAppSid: twimlAppSid.trim() || null });
+ saveMutation.mutate({ accountSid: accountSid.trim(), authToken: authToken.trim(), phoneNumber: phoneNumber.trim(), twimlAppSid: twimlAppSid.trim() || null });
};
const isConfigured = !!(settings?.accountSid && settings?.authToken && settings?.phoneNumber);
+ const webhookOrigin = typeof window !== "undefined" ? window.location.origin : "";
return (
@@ -80,7 +78,8 @@ export function TwilioSettingsCard() {
)}
- Enter your Twilio credentials to enable SMS and calling features. Find these in your{" "}
+ Twilio powers the in-browser dial pad only — SMS, voicemail, and AI calls run through{" "}
+ Telnyx (see Telnyx Settings below). Find these credentials in your{" "}
Twilio Console → Account Info.
@@ -132,19 +131,7 @@ export function TwilioSettingsCard() {
placeholder="+1xxxxxxxxxx"
required
/>
- Must be in E.164 format, e.g. +16175551234
-
-
-
-
Voicemail Greeting
-
setGreetingMessage(e.target.value)}
- className="mt-1 p-2 border rounded w-full text-sm resize-none"
- rows={3}
- placeholder="Thank you for calling. Please leave a message after the beep and we will get back to you shortly."
- />
- This message plays when a patient calls your Twilio number. Leave blank to use the default.
+ Must be in E.164 format, e.g. +16175551234. Used as the caller ID for dial pad calls.
@@ -158,7 +145,7 @@ export function TwilioSettingsCard() {
/>
In Twilio Console → TwiML Apps → create one → set Voice URL to{" "}
- https://communitydentistsoflowell.mydentalofficemanagement.com/api/twilio/webhook/voice-browser
+ {webhookOrigin}/api/twilio/webhook/voice-browser
{" "}then paste the App SID here. Required for the dial pad.
@@ -172,15 +159,6 @@ export function TwilioSettingsCard() {
{saveMutation.isPending ? "Saving..." : "Save Twilio Settings"}
-
- {isConfigured && (
-
-
Twilio Webhook URLs
-
SMS: https://communitydentistsoflowell.mydentalofficemanagement.com/api/twilio/webhook/sms
-
Voice: https://communitydentistsoflowell.mydentalofficemanagement.com/api/twilio/webhook/voice
-
Set these in your Twilio Console → Phone Numbers → your number
-
- )}
)}
diff --git a/apps/Frontend/src/pages/appointments-page.tsx b/apps/Frontend/src/pages/appointments-page.tsx
index b27157d4..1cdbce48 100755
--- a/apps/Frontend/src/pages/appointments-page.tsx
+++ b/apps/Frontend/src/pages/appointments-page.tsx
@@ -1460,7 +1460,7 @@ export default function AppointmentsPage() {
if (!user || selectedReminderColumns.size === 0) return;
setIsSendingReminders(true);
try {
- const res = await apiRequest("POST", "/api/twilio/send-reminders-batch", {
+ const res = await apiRequest("POST", "/api/telnyx/send-reminders-batch", {
date: formattedSelectedDate,
staffIds: Array.from(selectedReminderColumns),
aiFollowUp: reminderAiFollowUp,
@@ -1481,7 +1481,7 @@ export default function AppointmentsPage() {
if (!user || selectedRescheduleColumns.size === 0) return;
setIsSendingReschedule(true);
try {
- const res = await apiRequest("POST", "/api/twilio/send-reschedule-batch", {
+ const res = await apiRequest("POST", "/api/telnyx/send-reschedule-batch", {
date: formattedSelectedDate,
staffIds: Array.from(selectedRescheduleColumns),
aiFollowUp: rescheduleAiFollowUp,
diff --git a/apps/Frontend/src/pages/patient-connection-page.tsx b/apps/Frontend/src/pages/patient-connection-page.tsx
index 51e6643f..7ddc5cdc 100755
--- a/apps/Frontend/src/pages/patient-connection-page.tsx
+++ b/apps/Frontend/src/pages/patient-connection-page.tsx
@@ -43,9 +43,9 @@ export default function PatientConnectionPage() {
const { toast } = useToast();
useQuery<{ enabled: boolean }>({
- queryKey: ["/api/twilio/after-hours-handoff"],
+ queryKey: ["/api/telnyx/after-hours-handoff"],
queryFn: async () => {
- const res = await apiRequest("GET", "/api/twilio/after-hours-handoff");
+ const res = await apiRequest("GET", "/api/telnyx/after-hours-handoff");
return res.json();
},
onSuccess: (data: { enabled: boolean }) => setAfterHoursEnabled(data.enabled),
@@ -53,7 +53,7 @@ export default function PatientConnectionPage() {
const afterHoursMutation = useMutation({
mutationFn: async (enabled: boolean) =>
- apiRequest("PUT", "/api/twilio/after-hours-handoff", { enabled }),
+ apiRequest("PUT", "/api/telnyx/after-hours-handoff", { enabled }),
onSuccess: (_: any, enabled: boolean) => {
toast({
title: enabled ? "After-hours AI enabled" : "After-hours AI disabled",
@@ -81,7 +81,7 @@ export default function PatientConnectionPage() {
to: string;
patientId: number;
}) => {
- return apiRequest("POST", "/api/twilio/make-call", {
+ return apiRequest("POST", "/api/telnyx/make-call", {
to,
message:
"Hello, this is a call from your dental office. We are calling to connect with you.",
@@ -112,7 +112,7 @@ export default function PatientConnectionPage() {
to: string;
patientId: number;
}) => {
- return apiRequest("POST", "/api/twilio/make-ai-call", { to, patientId, purpose: "recall" });
+ return apiRequest("POST", "/api/telnyx/make-ai-call", { to, patientId, purpose: "recall" });
},
onSuccess: () => {
toast({
@@ -150,7 +150,7 @@ export default function PatientConnectionPage() {
);
});
- // Handle calling patient via Twilio
+ // Handle calling patient via Telnyx
const handleCall = (patient: Patient) => {
if (!patient.phone?.trim()) {
toast({
@@ -166,7 +166,7 @@ export default function PatientConnectionPage() {
});
};
- // Handle AI-driven call via Twilio
+ // Handle AI-driven call via Telnyx
const handleAiCall = (patient: Patient) => {
if (!patient.phone?.trim()) {
toast({
@@ -201,7 +201,7 @@ export default function PatientConnectionPage() {
};
const { data: recentCommunications = [] } = useQuery({
- queryKey: ["/api/twilio/recent-communications"],
+ queryKey: ["/api/telnyx/recent-communications"],
refetchInterval: 10000,
});
diff --git a/apps/Frontend/src/pages/settings-page.tsx b/apps/Frontend/src/pages/settings-page.tsx
index f73a0728..00596ab3 100755
--- a/apps/Frontend/src/pages/settings-page.tsx
+++ b/apps/Frontend/src/pages/settings-page.tsx
@@ -14,6 +14,7 @@ import { Staff } from "@repo/db/types";
import { NpiProviderTable } from "@/components/settings/npiProviderTable";
import { ProgramBridgeTable } from "@/components/settings/program-bridge-table";
import { TwilioSettingsCard } from "@/components/settings/twilio-settings-card";
+import { TelnyxSettingsCard } from "@/components/settings/telnyx-settings-card";
import { AiSettingsCard } from "@/components/settings/ai-settings-card";
import { OfficeHoursCard } from "@/components/settings/office-hours-card";
import { OfficeContactCard } from "@/components/settings/office-contact-card";
@@ -30,6 +31,7 @@ type SectionId =
| "npi"
| "programs"
| "twilio"
+ | "telnyx"
| "ai"
| "aichat"
| "officehours"
@@ -260,6 +262,9 @@ export default function SettingsPage() {
case "twilio":
return ;
+ case "telnyx":
+ return ;
+
case "ai":
return ;
diff --git a/nginx.conf b/nginx.conf
index 0c46c8d0..a950252a 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -45,11 +45,12 @@ server {
}
}
-# ── Public Twilio webhooks only ──────────────────────────────────────────
+# ── Public Twilio/Telnyx webhooks only ───────────────────────────────────
# https://summit.mydentalofficemanagement.com, reached via Cloudflare Tunnel.
# Cloudflare terminates TLS at its edge and cloudflared forwards plain HTTP
# to this block, so no certificate is needed here. Nothing except the
-# Twilio webhook path is exposed on this hostname.
+# Twilio (dial pad only) and Telnyx (everything else) webhook paths is
+# exposed on this hostname.
server {
listen 80;
server_name summit.mydentalofficemanagement.com;
@@ -64,6 +65,14 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
+ location /api/telnyx/ {
+ proxy_pass http://127.0.0.1:5000;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
location / {
return 403;
}
diff --git a/package-lock.json b/package-lock.json
index 1214378a..0381f716 100755
--- a/package-lock.json
+++ b/package-lock.json
@@ -59,6 +59,7 @@
"pdfkit": "^0.17.2",
"sharp": "^0.35.3",
"socket.io": "^4.8.1",
+ "telnyx": "^7.20.0",
"twilio": "^6.0.0",
"ws": "^8.18.0",
"zod": "^3.24.2",
@@ -14003,6 +14004,20 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"license": "ISC"
},
+ "node_modules/telnyx": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/telnyx/-/telnyx-7.20.0.tgz",
+ "integrity": "sha512-Y+M9h8I9cvd/Zv/RzgrWnQX22VJx8+oClwGtsxvwr3lfkA+Gl0XutwuDmKhuIzTcyrpkf/qCdC2kjPYARqXrqw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "^8.18.0"
+ },
+ "peerDependenciesMeta": {
+ "ws": {
+ "optional": true
+ }
+ }
+ },
"node_modules/text-decoder": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz",
diff --git a/packages/db/generated/prisma/edge.js b/packages/db/generated/prisma/edge.js
index b694f3ea..e9f714dc 100644
--- a/packages/db/generated/prisma/edge.js
+++ b/packages/db/generated/prisma/edge.js
@@ -385,6 +385,7 @@ exports.Prisma.CommunicationScalarFieldEnum = {
channel: 'channel',
direction: 'direction',
status: 'status',
+ provider: 'provider',
body: 'body',
callDuration: 'callDuration',
twilioSid: 'twilioSid',
@@ -413,6 +414,18 @@ exports.Prisma.TwilioSettingsScalarFieldEnum = {
templates: 'templates'
};
+exports.Prisma.TelnyxSettingsScalarFieldEnum = {
+ id: 'id',
+ userId: 'userId',
+ apiKey: 'apiKey',
+ accountSid: 'accountSid',
+ phoneNumber: 'phoneNumber',
+ texmlApplicationId: 'texmlApplicationId',
+ messagingProfileId: 'messagingProfileId',
+ webhookPublicKey: 'webhookPublicKey',
+ greetingMessage: 'greetingMessage'
+};
+
exports.Prisma.AiSettingsScalarFieldEnum = {
id: 'id',
userId: 'userId',
@@ -632,6 +645,11 @@ exports.CommunicationStatus = exports.$Enums.CommunicationStatus = {
no_answer: 'no_answer'
};
+exports.CommunicationProvider = exports.$Enums.CommunicationProvider = {
+ twilio: 'twilio',
+ telnyx: 'telnyx'
+};
+
exports.Prisma.ModelName = {
User: 'User',
Patient: 'Patient',
@@ -659,6 +677,7 @@ exports.Prisma.ModelName = {
Communication: 'Communication',
PatientDocument: 'PatientDocument',
TwilioSettings: 'TwilioSettings',
+ TelnyxSettings: 'TelnyxSettings',
AiSettings: 'AiSettings',
OfficeHours: 'OfficeHours',
OfficeContact: 'OfficeContact',
@@ -678,14 +697,14 @@ const config = {
"clientVersion": "7.4.1",
"engineVersion": "55ae170b1ced7fc6ed07a15f110549408c501bb3",
"activeProvider": "postgresql",
- "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/prisma\"\n}\n\ngenerator zod {\n provider = \"prisma-zod-generator\"\n output = \"../shared/\" // Zod schemas will be generated here inside `db/shared`\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n username String @unique\n password String\n autoBackupEnabled Boolean @default(true)\n autoBackupHour Int @default(20)\n usbBackupEnabled Boolean @default(false)\n usbBackupHour Int @default(21)\n autoMhCheckEnabled Boolean @default(false)\n autoMhCheckDayOfWeek Int @default(1)\n autoMhCheckHour Int @default(13)\n patients Patient[]\n appointments Appointment[]\n staff Staff[]\n npiProviders NpiProvider[]\n claims Claim[]\n insuranceCredentials InsuranceCredential[]\n shoppingVendors ShoppingVendor[]\n updatedPayments Payment[] @relation(\"PaymentUpdatedBy\")\n backups DatabaseBackup[]\n backupDestinations BackupDestination[]\n notifications Notification[]\n cloudFolders CloudFolder[]\n cloudFiles CloudFile[]\n communications Communication[]\n twilioSettings TwilioSettings?\n aiSettings AiSettings?\n officeHours OfficeHours?\n officeContact OfficeContact?\n procedureTimeslot ProcedureTimeslot?\n insuranceContacts InsuranceContact[]\n patientConversations PatientConversation[]\n labRxTemplates LabRxTemplate[]\n seleniumSettings SeleniumSettings?\n}\n\nmodel Patient {\n id Int @id @default(autoincrement())\n firstName String\n lastName String\n dateOfBirth DateTime? @db.Date\n gender String\n phone String\n email String?\n address String?\n city String?\n zipCode String?\n insuranceProvider String?\n insuranceId String?\n groupNumber String?\n policyHolder String?\n allergies String?\n medicalConditions String?\n preferredLanguage String? @default(\"English\")\n status PatientStatus @default(UNKNOWN)\n remainingBenefit String?\n thirdPartyInsurance String?\n userId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id])\n appointments Appointment[]\n procedures AppointmentProcedure[]\n claims Claim[]\n groups PdfGroup[]\n payment Payment[]\n communications Communication[]\n documents PatientDocument[]\n conversation PatientConversation?\n cloudFolders CloudFolder[] @relation(\"PatientCloudFolder\")\n\n @@index([insuranceId])\n @@index([createdAt])\n}\n\nenum PatientStatus {\n ACTIVE\n INACTIVE\n UNKNOWN\n PLAN_NOT_ACCEPTED\n}\n\nmodel Appointment {\n id Int @id @default(autoincrement())\n patientId Int\n userId Int\n staffId Int\n npiProviderId Int?\n title String\n date DateTime @db.Date\n startTime String // Store time as \"hh:mm\"\n endTime String // Store time as \"hh:mm\"\n type String // e.g., \"checkup\", \"cleaning\", \"filling\", etc.\n typeLocked Boolean @default(false) // true = user manually set; auto-sync will not overwrite\n notes String?\n procedureCodeNotes String?\n status String @default(\"scheduled\") // \"scheduled\", \"completed\", \"cancelled\", \"no-show\"\n movedByAi Boolean @default(false)\n createdAt DateTime @default(now())\n\n eligibilityStatus PatientStatus @default(UNKNOWN)\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id])\n staff Staff? @relation(fields: [staffId], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n procedures AppointmentProcedure[]\n claims Claim[]\n files AppointmentFile[]\n\n @@index([patientId])\n @@index([date])\n}\n\nmodel AppointmentFile {\n id Int @id @default(autoincrement())\n appointmentId Int\n filename String\n mimeType String?\n filePath String?\n\n appointment Appointment @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n\n @@index([appointmentId])\n}\n\nmodel Staff {\n id Int @id @default(autoincrement())\n userId Int\n name String\n email String?\n role String // e.g., \"Dentist\", \"Hygienist\", \"Assistant\"\n phone String?\n createdAt DateTime @default(now())\n user User? @relation(fields: [userId], references: [id], onDelete: Cascade)\n appointments Appointment[]\n claims Claim[] @relation(\"ClaimStaff\")\n}\n\nmodel NpiProvider {\n id Int @id @default(autoincrement())\n userId Int\n npiNumber String\n providerName String\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n claims Claim[]\n payments Payment[]\n commissionBatches CommissionBatch[]\n appointmentProcedures AppointmentProcedure[]\n appointments Appointment[]\n\n @@unique([userId, npiNumber])\n @@index([userId])\n}\n\nenum ProcedureSource {\n COMBO\n MANUAL\n}\n\nmodel AppointmentProcedure {\n id Int @id @default(autoincrement())\n appointmentId Int\n patientId Int\n npiProviderId Int?\n\n procedureCode String\n procedureLabel String?\n fee Decimal? @db.Decimal(10, 2)\n\n category String?\n\n toothNumber String?\n toothSurface String?\n oralCavityArea String?\n\n source ProcedureSource @default(MANUAL)\n comboKey String?\n\n createdAt DateTime @default(now())\n\n appointment Appointment @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n\n @@index([appointmentId])\n @@index([patientId])\n}\n\nmodel Claim {\n id Int @id @default(autoincrement())\n patientId Int\n /// @zod.number.int().nullable().optional()\n appointmentId Int?\n userId Int\n staffId Int\n patientName String\n memberId String\n dateOfBirth DateTime @db.Date\n remarks String\n missingTeethStatus MissingTeethStatus @default(No_missing)\n missingTeeth Json? // { \"T_14\": \"X\", \"T_G\": \"O\", ... }\n serviceDate DateTime\n insuranceProvider String // e.g., \"Delta MA\"\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n status ClaimStatus @default(PENDING)\n claimNumber String?\n preAuthNumber String?\n npiProviderId Int?\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n appointment Appointment? @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n user User? @relation(fields: [userId], references: [id])\n staff Staff? @relation(\"ClaimStaff\", fields: [staffId], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n\n serviceLines ServiceLine[]\n claimFiles ClaimFile[]\n payment Payment?\n}\n\nenum ClaimStatus {\n PENDING\n APPROVED\n CANCELLED\n REVIEW\n VOID\n PREAUTH\n}\n\nenum MissingTeethStatus {\n No_missing\n endentulous\n Yes_missing\n}\n\nmodel ServiceLine {\n id Int @id @default(autoincrement())\n claimId Int?\n paymentId Int?\n procedureCode String\n procedureDate DateTime @db.Date\n quad String?\n arch String?\n toothNumber String?\n toothSurface String?\n icn String?\n paidCode String?\n allowedAmount Decimal? @db.Decimal(10, 2)\n totalBilled Decimal @db.Decimal(10, 2)\n totalPaid Decimal @default(0.00) @db.Decimal(10, 2)\n totalAdjusted Decimal @default(0.00) @db.Decimal(10, 2)\n totalDue Decimal @default(0.00) @db.Decimal(10, 2)\n status ServiceLineStatus @default(UNPAID)\n\n claim Claim? @relation(fields: [claimId], references: [id], onDelete: Cascade)\n payment Payment? @relation(fields: [paymentId], references: [id], onDelete: Cascade)\n\n serviceLineTransactions ServiceLineTransaction[]\n}\n\nenum ServiceLineStatus {\n PENDING\n PARTIALLY_PAID\n PAID\n UNPAID\n ADJUSTED\n OVERPAID\n DENIED\n}\n\nmodel ClaimFile {\n id Int @id @default(autoincrement())\n claimId Int\n filename String\n mimeType String\n filePath String?\n\n claim Claim @relation(fields: [claimId], references: [id], onDelete: Cascade)\n}\n\nmodel InsuranceCredential {\n id Int @id @default(autoincrement())\n userId Int\n siteKey String\n username String\n password String\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([userId, siteKey])\n @@index([userId])\n}\n\nmodel ShoppingVendor {\n id Int @id @default(autoincrement())\n userId Int\n vendorName String\n websiteUrl String\n loginUsername String\n loginPassword String\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n}\n\nmodel PdfGroup {\n id Int @id @default(autoincrement())\n title String\n titleKey PdfTitleKey @default(OTHER)\n createdAt DateTime @default(now())\n patientId Int\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n pdfs PdfFile[]\n\n @@index([patientId])\n @@index([titleKey])\n}\n\nmodel PdfFile {\n id Int @id @default(autoincrement())\n filename String\n pdfData Bytes\n uploadedAt DateTime @default(now())\n groupId Int\n group PdfGroup @relation(fields: [groupId], references: [id], onDelete: Cascade)\n\n @@index([groupId])\n}\n\nenum PdfTitleKey {\n INSURANCE_CLAIM\n INSURANCE_CLAIM_PREAUTH\n ELIGIBILITY_STATUS\n CLAIM_STATUS\n OTHER\n}\n\nmodel Payment {\n id Int @id @default(autoincrement())\n claimId Int? @unique\n patientId Int\n userId Int\n updatedById Int?\n npiProviderId Int?\n totalBilled Decimal @db.Decimal(10, 2)\n totalPaid Decimal @default(0.00) @db.Decimal(10, 2)\n totalAdjusted Decimal @default(0.00) @db.Decimal(10, 2)\n totalDue Decimal @db.Decimal(10, 2)\n mhPaidAmount Decimal? @db.Decimal(10, 2)\n copayment Decimal @default(0.00) @db.Decimal(10, 2)\n adjustment Decimal @default(0.00) @db.Decimal(10, 2)\n status PaymentStatus @default(PENDING)\n notes String?\n icn String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n claim Claim? @relation(fields: [claimId], references: [id], onDelete: Cascade)\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n updatedBy User? @relation(\"PaymentUpdatedBy\", fields: [updatedById], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n serviceLineTransactions ServiceLineTransaction[]\n serviceLines ServiceLine[]\n commissionBatchItems CommissionBatchItem[]\n\n @@index([claimId])\n @@index([patientId])\n @@index([createdAt])\n}\n\nmodel ServiceLineTransaction {\n id Int @id @default(autoincrement())\n paymentId Int\n serviceLineId Int\n transactionId String?\n paidAmount Decimal @db.Decimal(10, 2)\n adjustedAmount Decimal @default(0.00) @db.Decimal(10, 2)\n method PaymentMethod\n receivedDate DateTime\n payerName String?\n notes String?\n createdAt DateTime @default(now())\n\n payment Payment @relation(fields: [paymentId], references: [id], onDelete: Cascade)\n serviceLine ServiceLine @relation(fields: [serviceLineId], references: [id], onDelete: Cascade)\n\n @@index([paymentId])\n @@index([serviceLineId])\n}\n\nenum PaymentStatus {\n PENDING\n PARTIALLY_PAID\n PAID\n OVERPAID\n DENIED\n VOID\n}\n\nenum PaymentMethod {\n EFT\n CHECK\n CASH\n CARD\n OTHER\n}\n\n// Database management page\nmodel DatabaseBackup {\n id Int @id @default(autoincrement())\n userId Int\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([createdAt])\n}\n\nmodel BackupDestination {\n id Int @id @default(autoincrement())\n userId Int\n path String\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id])\n}\n\nmodel Notification {\n id Int @id @default(autoincrement())\n userId Int\n type NotificationTypes\n message String\n createdAt DateTime @default(now())\n read Boolean @default(false)\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([createdAt])\n}\n\nenum NotificationTypes {\n BACKUP\n CLAIM\n PAYMENT\n ETC\n}\n\n// Cron job execution log\nmodel CronJobLog {\n id Int @id @default(autoincrement())\n jobName String // e.g. \"local-backup\", \"usb-backup\"\n status String // \"success\" | \"failed\" | \"skipped\"\n startedAt DateTime\n completedAt DateTime?\n durationMs Int?\n errorMessage String?\n\n @@index([jobName])\n @@index([startedAt])\n @@index([status])\n}\n\nmodel CloudFolder {\n id Int @id @default(autoincrement())\n userId Int\n name String\n parentId Int?\n patientId Int?\n parent CloudFolder? @relation(\"FolderChildren\", fields: [parentId], references: [id], onDelete: Cascade)\n children CloudFolder[] @relation(\"FolderChildren\")\n user User @relation(fields: [userId], references: [id])\n patient Patient? @relation(\"PatientCloudFolder\", fields: [patientId], references: [id], onDelete: SetNull)\n files CloudFile[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, parentId, name]) // prevents sibling folder name duplicates\n @@index([parentId])\n @@index([patientId])\n}\n\nmodel CloudFile {\n id Int @id @default(autoincrement())\n userId Int\n name String\n mimeType String?\n fileSize BigInt @db.BigInt\n folderId Int? // optional: null => root\n isComplete Boolean @default(false) // upload completed?\n totalChunks Int? // optional: expected number of chunks\n diskPath String? // relative path on disk under uploads/\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id])\n folder CloudFolder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n\n chunks CloudFileChunk[]\n\n @@index([folderId])\n}\n\nmodel CloudFileChunk {\n id Int @id @default(autoincrement())\n fileId Int\n seq Int\n data Bytes\n createdAt DateTime @default(now())\n\n file CloudFile @relation(fields: [fileId], references: [id], onDelete: Cascade)\n\n @@unique([fileId, seq])\n @@index([fileId, seq])\n}\n\n// patient-connection-\nenum CommunicationChannel {\n sms\n voice\n}\n\nenum CommunicationDirection {\n outbound\n inbound\n}\n\nenum CommunicationStatus {\n queued\n sent\n delivered\n failed\n completed\n busy\n no_answer\n}\n\nmodel Communication {\n id Int @id @default(autoincrement())\n patientId Int\n userId Int?\n\n channel CommunicationChannel\n direction CommunicationDirection\n status CommunicationStatus\n\n body String?\n callDuration Int?\n twilioSid String?\n\n createdAt DateTime @default(now())\n\n // Relations\n patient Patient @relation(fields: [patientId], references: [id])\n user User? @relation(fields: [userId], references: [id])\n\n @@map(\"communications\")\n}\n\nmodel PatientDocument {\n id Int @id @default(autoincrement())\n patientId Int\n filename String\n originalName String\n mimeType String\n fileSize BigInt\n filePath String\n uploadedAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n\n @@index([patientId])\n @@index([uploadedAt])\n}\n\nmodel TwilioSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n accountSid String\n authToken String\n phoneNumber String\n greetingMessage String?\n templates Json?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"twilio_settings\")\n}\n\nmodel AiSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n apiKey String\n aiEnabled Boolean @default(true)\n openAiKey String @default(\"\")\n openAiEnabled Boolean @default(false)\n claudeAiKey String @default(\"\")\n claudeAiEnabled Boolean @default(false)\n claudeAiModel String @default(\"claude-haiku-4-5-20251001\")\n openAiModel String @default(\"gpt-5.2\")\n googleAiModel String @default(\"gemini-2.5-flash\")\n dentalMgmtKey String @default(\"\")\n dentalMgmtEnabled Boolean @default(false)\n afterHoursEnabled Boolean @default(true)\n openPhoneReply Boolean @default(false)\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"ai_settings\")\n}\n\nmodel OfficeHours {\n id Int @id @default(autoincrement())\n userId Int @unique\n data Json\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"office_hours\")\n}\n\nmodel OfficeContact {\n id Int @id @default(autoincrement())\n userId Int @unique\n officeName String?\n receptionistName String?\n dentistName String?\n phoneNumber String?\n email String?\n fax String?\n streetAddress String?\n city String?\n state String?\n zipCode String?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"office_contact\")\n}\n\nmodel InsuranceContact {\n id Int @id @default(autoincrement())\n userId Int\n name String\n phoneNumber String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"insurance_contact\")\n}\n\nmodel ProcedureTimeslot {\n id Int @id @default(autoincrement())\n userId Int @unique\n data Json\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"procedure_timeslot\")\n}\n\nmodel PatientConversation {\n id Int @id @default(autoincrement())\n patientId Int @unique\n userId Int\n stage String @default(\"initial\")\n aiHandoff Boolean @default(true)\n updatedAt DateTime @updatedAt\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"patient_conversation\")\n}\n\nmodel LabRxTemplate {\n id Int @id @default(autoincrement())\n userId Int\n name String\n labName String?\n labPhone String?\n labFax String?\n labAddress String?\n labAccount String?\n caseType String?\n material String?\n instructions String?\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"lab_rx_template\")\n}\n\n// Commission tracking\nmodel CommissionBatch {\n id Int @id @default(autoincrement())\n npiProviderId Int\n totalCollection Decimal @db.Decimal(14, 2)\n commissionAmount Decimal @db.Decimal(14, 2)\n notes String?\n createdAt DateTime @default(now())\n\n npiProvider NpiProvider @relation(fields: [npiProviderId], references: [id])\n items CommissionBatchItem[]\n\n @@index([npiProviderId])\n}\n\nmodel CommissionBatchItem {\n id Int @id @default(autoincrement())\n commissionBatchId Int\n paymentId Int\n collectionAmount Decimal @db.Decimal(14, 2)\n\n commissionBatch CommissionBatch @relation(fields: [commissionBatchId], references: [id], onDelete: Cascade)\n payment Payment @relation(fields: [paymentId], references: [id])\n\n @@unique([commissionBatchId, paymentId])\n @@index([paymentId])\n}\n\nmodel SeleniumSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n paymentGroupId String @default(\"\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"selenium_settings\")\n}\n"
+ "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/prisma\"\n}\n\ngenerator zod {\n provider = \"prisma-zod-generator\"\n output = \"../shared/\" // Zod schemas will be generated here inside `db/shared`\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n username String @unique\n password String\n autoBackupEnabled Boolean @default(true)\n autoBackupHour Int @default(20)\n usbBackupEnabled Boolean @default(false)\n usbBackupHour Int @default(21)\n autoMhCheckEnabled Boolean @default(false)\n autoMhCheckDayOfWeek Int @default(1)\n autoMhCheckHour Int @default(13)\n patients Patient[]\n appointments Appointment[]\n staff Staff[]\n npiProviders NpiProvider[]\n claims Claim[]\n insuranceCredentials InsuranceCredential[]\n shoppingVendors ShoppingVendor[]\n updatedPayments Payment[] @relation(\"PaymentUpdatedBy\")\n backups DatabaseBackup[]\n backupDestinations BackupDestination[]\n notifications Notification[]\n cloudFolders CloudFolder[]\n cloudFiles CloudFile[]\n communications Communication[]\n twilioSettings TwilioSettings?\n telnyxSettings TelnyxSettings?\n aiSettings AiSettings?\n officeHours OfficeHours?\n officeContact OfficeContact?\n procedureTimeslot ProcedureTimeslot?\n insuranceContacts InsuranceContact[]\n patientConversations PatientConversation[]\n labRxTemplates LabRxTemplate[]\n seleniumSettings SeleniumSettings?\n}\n\nmodel Patient {\n id Int @id @default(autoincrement())\n firstName String\n lastName String\n dateOfBirth DateTime? @db.Date\n gender String\n phone String\n email String?\n address String?\n city String?\n zipCode String?\n insuranceProvider String?\n insuranceId String?\n groupNumber String?\n policyHolder String?\n allergies String?\n medicalConditions String?\n preferredLanguage String? @default(\"English\")\n status PatientStatus @default(UNKNOWN)\n remainingBenefit String?\n thirdPartyInsurance String?\n userId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id])\n appointments Appointment[]\n procedures AppointmentProcedure[]\n claims Claim[]\n groups PdfGroup[]\n payment Payment[]\n communications Communication[]\n documents PatientDocument[]\n conversation PatientConversation?\n cloudFolders CloudFolder[] @relation(\"PatientCloudFolder\")\n\n @@index([insuranceId])\n @@index([createdAt])\n}\n\nenum PatientStatus {\n ACTIVE\n INACTIVE\n UNKNOWN\n PLAN_NOT_ACCEPTED\n}\n\nmodel Appointment {\n id Int @id @default(autoincrement())\n patientId Int\n userId Int\n staffId Int\n npiProviderId Int?\n title String\n date DateTime @db.Date\n startTime String // Store time as \"hh:mm\"\n endTime String // Store time as \"hh:mm\"\n type String // e.g., \"checkup\", \"cleaning\", \"filling\", etc.\n typeLocked Boolean @default(false) // true = user manually set; auto-sync will not overwrite\n notes String?\n procedureCodeNotes String?\n status String @default(\"scheduled\") // \"scheduled\", \"completed\", \"cancelled\", \"no-show\"\n movedByAi Boolean @default(false)\n createdAt DateTime @default(now())\n\n eligibilityStatus PatientStatus @default(UNKNOWN)\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id])\n staff Staff? @relation(fields: [staffId], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n procedures AppointmentProcedure[]\n claims Claim[]\n files AppointmentFile[]\n\n @@index([patientId])\n @@index([date])\n}\n\nmodel AppointmentFile {\n id Int @id @default(autoincrement())\n appointmentId Int\n filename String\n mimeType String?\n filePath String?\n\n appointment Appointment @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n\n @@index([appointmentId])\n}\n\nmodel Staff {\n id Int @id @default(autoincrement())\n userId Int\n name String\n email String?\n role String // e.g., \"Dentist\", \"Hygienist\", \"Assistant\"\n phone String?\n createdAt DateTime @default(now())\n user User? @relation(fields: [userId], references: [id], onDelete: Cascade)\n appointments Appointment[]\n claims Claim[] @relation(\"ClaimStaff\")\n}\n\nmodel NpiProvider {\n id Int @id @default(autoincrement())\n userId Int\n npiNumber String\n providerName String\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n claims Claim[]\n payments Payment[]\n commissionBatches CommissionBatch[]\n appointmentProcedures AppointmentProcedure[]\n appointments Appointment[]\n\n @@unique([userId, npiNumber])\n @@index([userId])\n}\n\nenum ProcedureSource {\n COMBO\n MANUAL\n}\n\nmodel AppointmentProcedure {\n id Int @id @default(autoincrement())\n appointmentId Int\n patientId Int\n npiProviderId Int?\n\n procedureCode String\n procedureLabel String?\n fee Decimal? @db.Decimal(10, 2)\n\n category String?\n\n toothNumber String?\n toothSurface String?\n oralCavityArea String?\n\n source ProcedureSource @default(MANUAL)\n comboKey String?\n\n createdAt DateTime @default(now())\n\n appointment Appointment @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n\n @@index([appointmentId])\n @@index([patientId])\n}\n\nmodel Claim {\n id Int @id @default(autoincrement())\n patientId Int\n /// @zod.number.int().nullable().optional()\n appointmentId Int?\n userId Int\n staffId Int\n patientName String\n memberId String\n dateOfBirth DateTime @db.Date\n remarks String\n missingTeethStatus MissingTeethStatus @default(No_missing)\n missingTeeth Json? // { \"T_14\": \"X\", \"T_G\": \"O\", ... }\n serviceDate DateTime\n insuranceProvider String // e.g., \"Delta MA\"\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n status ClaimStatus @default(PENDING)\n claimNumber String?\n preAuthNumber String?\n npiProviderId Int?\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n appointment Appointment? @relation(fields: [appointmentId], references: [id], onDelete: Cascade)\n user User? @relation(fields: [userId], references: [id])\n staff Staff? @relation(\"ClaimStaff\", fields: [staffId], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n\n serviceLines ServiceLine[]\n claimFiles ClaimFile[]\n payment Payment?\n}\n\nenum ClaimStatus {\n PENDING\n APPROVED\n CANCELLED\n REVIEW\n VOID\n PREAUTH\n}\n\nenum MissingTeethStatus {\n No_missing\n endentulous\n Yes_missing\n}\n\nmodel ServiceLine {\n id Int @id @default(autoincrement())\n claimId Int?\n paymentId Int?\n procedureCode String\n procedureDate DateTime @db.Date\n quad String?\n arch String?\n toothNumber String?\n toothSurface String?\n icn String?\n paidCode String?\n allowedAmount Decimal? @db.Decimal(10, 2)\n totalBilled Decimal @db.Decimal(10, 2)\n totalPaid Decimal @default(0.00) @db.Decimal(10, 2)\n totalAdjusted Decimal @default(0.00) @db.Decimal(10, 2)\n totalDue Decimal @default(0.00) @db.Decimal(10, 2)\n status ServiceLineStatus @default(UNPAID)\n\n claim Claim? @relation(fields: [claimId], references: [id], onDelete: Cascade)\n payment Payment? @relation(fields: [paymentId], references: [id], onDelete: Cascade)\n\n serviceLineTransactions ServiceLineTransaction[]\n}\n\nenum ServiceLineStatus {\n PENDING\n PARTIALLY_PAID\n PAID\n UNPAID\n ADJUSTED\n OVERPAID\n DENIED\n}\n\nmodel ClaimFile {\n id Int @id @default(autoincrement())\n claimId Int\n filename String\n mimeType String\n filePath String?\n\n claim Claim @relation(fields: [claimId], references: [id], onDelete: Cascade)\n}\n\nmodel InsuranceCredential {\n id Int @id @default(autoincrement())\n userId Int\n siteKey String\n username String\n password String\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([userId, siteKey])\n @@index([userId])\n}\n\nmodel ShoppingVendor {\n id Int @id @default(autoincrement())\n userId Int\n vendorName String\n websiteUrl String\n loginUsername String\n loginPassword String\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n}\n\nmodel PdfGroup {\n id Int @id @default(autoincrement())\n title String\n titleKey PdfTitleKey @default(OTHER)\n createdAt DateTime @default(now())\n patientId Int\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n pdfs PdfFile[]\n\n @@index([patientId])\n @@index([titleKey])\n}\n\nmodel PdfFile {\n id Int @id @default(autoincrement())\n filename String\n pdfData Bytes\n uploadedAt DateTime @default(now())\n groupId Int\n group PdfGroup @relation(fields: [groupId], references: [id], onDelete: Cascade)\n\n @@index([groupId])\n}\n\nenum PdfTitleKey {\n INSURANCE_CLAIM\n INSURANCE_CLAIM_PREAUTH\n ELIGIBILITY_STATUS\n CLAIM_STATUS\n OTHER\n}\n\nmodel Payment {\n id Int @id @default(autoincrement())\n claimId Int? @unique\n patientId Int\n userId Int\n updatedById Int?\n npiProviderId Int?\n totalBilled Decimal @db.Decimal(10, 2)\n totalPaid Decimal @default(0.00) @db.Decimal(10, 2)\n totalAdjusted Decimal @default(0.00) @db.Decimal(10, 2)\n totalDue Decimal @db.Decimal(10, 2)\n mhPaidAmount Decimal? @db.Decimal(10, 2)\n copayment Decimal @default(0.00) @db.Decimal(10, 2)\n adjustment Decimal @default(0.00) @db.Decimal(10, 2)\n status PaymentStatus @default(PENDING)\n notes String?\n icn String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n claim Claim? @relation(fields: [claimId], references: [id], onDelete: Cascade)\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n updatedBy User? @relation(\"PaymentUpdatedBy\", fields: [updatedById], references: [id])\n npiProvider NpiProvider? @relation(fields: [npiProviderId], references: [id])\n serviceLineTransactions ServiceLineTransaction[]\n serviceLines ServiceLine[]\n commissionBatchItems CommissionBatchItem[]\n\n @@index([claimId])\n @@index([patientId])\n @@index([createdAt])\n}\n\nmodel ServiceLineTransaction {\n id Int @id @default(autoincrement())\n paymentId Int\n serviceLineId Int\n transactionId String?\n paidAmount Decimal @db.Decimal(10, 2)\n adjustedAmount Decimal @default(0.00) @db.Decimal(10, 2)\n method PaymentMethod\n receivedDate DateTime\n payerName String?\n notes String?\n createdAt DateTime @default(now())\n\n payment Payment @relation(fields: [paymentId], references: [id], onDelete: Cascade)\n serviceLine ServiceLine @relation(fields: [serviceLineId], references: [id], onDelete: Cascade)\n\n @@index([paymentId])\n @@index([serviceLineId])\n}\n\nenum PaymentStatus {\n PENDING\n PARTIALLY_PAID\n PAID\n OVERPAID\n DENIED\n VOID\n}\n\nenum PaymentMethod {\n EFT\n CHECK\n CASH\n CARD\n OTHER\n}\n\n// Database management page\nmodel DatabaseBackup {\n id Int @id @default(autoincrement())\n userId Int\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([createdAt])\n}\n\nmodel BackupDestination {\n id Int @id @default(autoincrement())\n userId Int\n path String\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id])\n}\n\nmodel Notification {\n id Int @id @default(autoincrement())\n userId Int\n type NotificationTypes\n message String\n createdAt DateTime @default(now())\n read Boolean @default(false)\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([createdAt])\n}\n\nenum NotificationTypes {\n BACKUP\n CLAIM\n PAYMENT\n ETC\n}\n\n// Cron job execution log\nmodel CronJobLog {\n id Int @id @default(autoincrement())\n jobName String // e.g. \"local-backup\", \"usb-backup\"\n status String // \"success\" | \"failed\" | \"skipped\"\n startedAt DateTime\n completedAt DateTime?\n durationMs Int?\n errorMessage String?\n\n @@index([jobName])\n @@index([startedAt])\n @@index([status])\n}\n\nmodel CloudFolder {\n id Int @id @default(autoincrement())\n userId Int\n name String\n parentId Int?\n patientId Int?\n parent CloudFolder? @relation(\"FolderChildren\", fields: [parentId], references: [id], onDelete: Cascade)\n children CloudFolder[] @relation(\"FolderChildren\")\n user User @relation(fields: [userId], references: [id])\n patient Patient? @relation(\"PatientCloudFolder\", fields: [patientId], references: [id], onDelete: SetNull)\n files CloudFile[]\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, parentId, name]) // prevents sibling folder name duplicates\n @@index([parentId])\n @@index([patientId])\n}\n\nmodel CloudFile {\n id Int @id @default(autoincrement())\n userId Int\n name String\n mimeType String?\n fileSize BigInt @db.BigInt\n folderId Int? // optional: null => root\n isComplete Boolean @default(false) // upload completed?\n totalChunks Int? // optional: expected number of chunks\n diskPath String? // relative path on disk under uploads/\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n user User @relation(fields: [userId], references: [id])\n folder CloudFolder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n\n chunks CloudFileChunk[]\n\n @@index([folderId])\n}\n\nmodel CloudFileChunk {\n id Int @id @default(autoincrement())\n fileId Int\n seq Int\n data Bytes\n createdAt DateTime @default(now())\n\n file CloudFile @relation(fields: [fileId], references: [id], onDelete: Cascade)\n\n @@unique([fileId, seq])\n @@index([fileId, seq])\n}\n\n// patient-connection-\nenum CommunicationChannel {\n sms\n voice\n}\n\nenum CommunicationDirection {\n outbound\n inbound\n}\n\nenum CommunicationStatus {\n queued\n sent\n delivered\n failed\n completed\n busy\n no_answer\n}\n\nenum CommunicationProvider {\n twilio\n telnyx\n}\n\nmodel Communication {\n id Int @id @default(autoincrement())\n patientId Int\n userId Int?\n\n channel CommunicationChannel\n direction CommunicationDirection\n status CommunicationStatus\n // Which platform produced twilioSid — twilio for dial-pad-originated calls,\n // telnyx for everything else (SMS, inbound/AI voice, staff-triggered outbound calls).\n provider CommunicationProvider @default(twilio)\n\n body String?\n callDuration Int?\n // Provider SID — Twilio MessageSid/CallSid, or Telnyx message/call id. See `provider`.\n twilioSid String?\n\n createdAt DateTime @default(now())\n\n // Relations\n patient Patient @relation(fields: [patientId], references: [id])\n user User? @relation(fields: [userId], references: [id])\n\n @@map(\"communications\")\n}\n\nmodel PatientDocument {\n id Int @id @default(autoincrement())\n patientId Int\n filename String\n originalName String\n mimeType String\n fileSize BigInt\n filePath String\n uploadedAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n\n @@index([patientId])\n @@index([uploadedAt])\n}\n\nmodel TwilioSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n accountSid String\n authToken String\n phoneNumber String\n // Vestigial — inbound voice moved to Telnyx (TelnyxSettings.greetingMessage). No longer\n // read/written; kept to avoid a destructive migration for a cosmetic cleanup.\n greetingMessage String?\n templates Json?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"twilio_settings\")\n}\n\nmodel TelnyxSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n apiKey String\n // Telnyx account SID (Mission Control Portal), required to place outbound\n // TeXML calls via POST /texml/Accounts/{accountSid}/Calls — separate from apiKey.\n accountSid String?\n phoneNumber String\n texmlApplicationId String?\n messagingProfileId String?\n webhookPublicKey String?\n greetingMessage String?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"telnyx_settings\")\n}\n\nmodel AiSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n apiKey String\n aiEnabled Boolean @default(true)\n openAiKey String @default(\"\")\n openAiEnabled Boolean @default(false)\n claudeAiKey String @default(\"\")\n claudeAiEnabled Boolean @default(false)\n claudeAiModel String @default(\"claude-haiku-4-5-20251001\")\n openAiModel String @default(\"gpt-5.2\")\n googleAiModel String @default(\"gemini-2.5-flash\")\n dentalMgmtKey String @default(\"\")\n dentalMgmtEnabled Boolean @default(false)\n afterHoursEnabled Boolean @default(true)\n openPhoneReply Boolean @default(false)\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"ai_settings\")\n}\n\nmodel OfficeHours {\n id Int @id @default(autoincrement())\n userId Int @unique\n data Json\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"office_hours\")\n}\n\nmodel OfficeContact {\n id Int @id @default(autoincrement())\n userId Int @unique\n officeName String?\n receptionistName String?\n dentistName String?\n phoneNumber String?\n email String?\n fax String?\n streetAddress String?\n city String?\n state String?\n zipCode String?\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"office_contact\")\n}\n\nmodel InsuranceContact {\n id Int @id @default(autoincrement())\n userId Int\n name String\n phoneNumber String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"insurance_contact\")\n}\n\nmodel ProcedureTimeslot {\n id Int @id @default(autoincrement())\n userId Int @unique\n data Json\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"procedure_timeslot\")\n}\n\nmodel PatientConversation {\n id Int @id @default(autoincrement())\n patientId Int @unique\n userId Int\n stage String @default(\"initial\")\n aiHandoff Boolean @default(true)\n updatedAt DateTime @updatedAt\n\n patient Patient @relation(fields: [patientId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"patient_conversation\")\n}\n\nmodel LabRxTemplate {\n id Int @id @default(autoincrement())\n userId Int\n name String\n labName String?\n labPhone String?\n labFax String?\n labAddress String?\n labAccount String?\n caseType String?\n material String?\n instructions String?\n sortOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"lab_rx_template\")\n}\n\n// Commission tracking\nmodel CommissionBatch {\n id Int @id @default(autoincrement())\n npiProviderId Int\n totalCollection Decimal @db.Decimal(14, 2)\n commissionAmount Decimal @db.Decimal(14, 2)\n notes String?\n createdAt DateTime @default(now())\n\n npiProvider NpiProvider @relation(fields: [npiProviderId], references: [id])\n items CommissionBatchItem[]\n\n @@index([npiProviderId])\n}\n\nmodel CommissionBatchItem {\n id Int @id @default(autoincrement())\n commissionBatchId Int\n paymentId Int\n collectionAmount Decimal @db.Decimal(14, 2)\n\n commissionBatch CommissionBatch @relation(fields: [commissionBatchId], references: [id], onDelete: Cascade)\n payment Payment @relation(fields: [paymentId], references: [id])\n\n @@unique([commissionBatchId, paymentId])\n @@index([paymentId])\n}\n\nmodel SeleniumSettings {\n id Int @id @default(autoincrement())\n userId Int @unique\n paymentGroupId String @default(\"\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"selenium_settings\")\n}\n"
}
-config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"autoBackupEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"autoBackupHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"usbBackupEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"usbBackupHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"autoMhCheckEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"autoMhCheckDayOfWeek\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"autoMhCheckHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patients\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"StaffToUser\"},{\"name\":\"npiProviders\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"NpiProviderToUser\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToUser\"},{\"name\":\"insuranceCredentials\",\"kind\":\"object\",\"type\":\"InsuranceCredential\",\"relationName\":\"InsuranceCredentialToUser\"},{\"name\":\"shoppingVendors\",\"kind\":\"object\",\"type\":\"ShoppingVendor\",\"relationName\":\"ShoppingVendorToUser\"},{\"name\":\"updatedPayments\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentUpdatedBy\"},{\"name\":\"backups\",\"kind\":\"object\",\"type\":\"DatabaseBackup\",\"relationName\":\"DatabaseBackupToUser\"},{\"name\":\"backupDestinations\",\"kind\":\"object\",\"type\":\"BackupDestination\",\"relationName\":\"BackupDestinationToUser\"},{\"name\":\"notifications\",\"kind\":\"object\",\"type\":\"Notification\",\"relationName\":\"NotificationToUser\"},{\"name\":\"cloudFolders\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"CloudFolderToUser\"},{\"name\":\"cloudFiles\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToUser\"},{\"name\":\"communications\",\"kind\":\"object\",\"type\":\"Communication\",\"relationName\":\"CommunicationToUser\"},{\"name\":\"twilioSettings\",\"kind\":\"object\",\"type\":\"TwilioSettings\",\"relationName\":\"TwilioSettingsToUser\"},{\"name\":\"aiSettings\",\"kind\":\"object\",\"type\":\"AiSettings\",\"relationName\":\"AiSettingsToUser\"},{\"name\":\"officeHours\",\"kind\":\"object\",\"type\":\"OfficeHours\",\"relationName\":\"OfficeHoursToUser\"},{\"name\":\"officeContact\",\"kind\":\"object\",\"type\":\"OfficeContact\",\"relationName\":\"OfficeContactToUser\"},{\"name\":\"procedureTimeslot\",\"kind\":\"object\",\"type\":\"ProcedureTimeslot\",\"relationName\":\"ProcedureTimeslotToUser\"},{\"name\":\"insuranceContacts\",\"kind\":\"object\",\"type\":\"InsuranceContact\",\"relationName\":\"InsuranceContactToUser\"},{\"name\":\"patientConversations\",\"kind\":\"object\",\"type\":\"PatientConversation\",\"relationName\":\"PatientConversationToUser\"},{\"name\":\"labRxTemplates\",\"kind\":\"object\",\"type\":\"LabRxTemplate\",\"relationName\":\"LabRxTemplateToUser\"},{\"name\":\"seleniumSettings\",\"kind\":\"object\",\"type\":\"SeleniumSettings\",\"relationName\":\"SeleniumSettingsToUser\"}],\"dbName\":null},\"Patient\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zipCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"insuranceProvider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"insuranceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"policyHolder\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"allergies\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"medicalConditions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferredLanguage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PatientStatus\"},{\"name\":\"remainingBenefit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"thirdPartyInsurance\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PatientToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToPatient\"},{\"name\":\"procedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentProcedureToPatient\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToPatient\"},{\"name\":\"groups\",\"kind\":\"object\",\"type\":\"PdfGroup\",\"relationName\":\"PatientToPdfGroup\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PatientToPayment\"},{\"name\":\"communications\",\"kind\":\"object\",\"type\":\"Communication\",\"relationName\":\"CommunicationToPatient\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"PatientDocument\",\"relationName\":\"PatientToPatientDocument\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"PatientConversation\",\"relationName\":\"PatientToPatientConversation\"},{\"name\":\"cloudFolders\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"PatientCloudFolder\"}],\"dbName\":null},\"Appointment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"staffId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"typeLocked\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureCodeNotes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"movedByAi\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"eligibilityStatus\",\"kind\":\"enum\",\"type\":\"PatientStatus\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"AppointmentToPatient\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AppointmentToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"AppointmentToStaff\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"AppointmentToNpiProvider\"},{\"name\":\"procedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentToAppointmentProcedure\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"AppointmentToClaim\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"AppointmentFile\",\"relationName\":\"AppointmentToAppointmentFile\"}],\"dbName\":null},\"AppointmentFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToAppointmentFile\"}],\"dbName\":null},\"Staff\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"StaffToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToStaff\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimStaff\"}],\"dbName\":null},\"NpiProvider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NpiProviderToUser\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToNpiProvider\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"NpiProviderToPayment\"},{\"name\":\"commissionBatches\",\"kind\":\"object\",\"type\":\"CommissionBatch\",\"relationName\":\"CommissionBatchToNpiProvider\"},{\"name\":\"appointmentProcedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentProcedureToNpiProvider\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToNpiProvider\"}],\"dbName\":null},\"AppointmentProcedure\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"procedureCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureLabel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fee\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"category\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothSurface\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"oralCavityArea\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source\",\"kind\":\"enum\",\"type\":\"ProcedureSource\"},{\"name\":\"comboKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToAppointmentProcedure\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"AppointmentProcedureToPatient\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"AppointmentProcedureToNpiProvider\"}],\"dbName\":null},\"Claim\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"staffId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"remarks\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"missingTeethStatus\",\"kind\":\"enum\",\"type\":\"MissingTeethStatus\"},{\"name\":\"missingTeeth\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"serviceDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"insuranceProvider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ClaimStatus\"},{\"name\":\"claimNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preAuthNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"ClaimToPatient\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToClaim\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ClaimToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"ClaimStaff\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"ClaimToNpiProvider\"},{\"name\":\"serviceLines\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"ClaimToServiceLine\"},{\"name\":\"claimFiles\",\"kind\":\"object\",\"type\":\"ClaimFile\",\"relationName\":\"ClaimToClaimFile\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"ClaimToPayment\"}],\"dbName\":null},\"ServiceLine\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"procedureCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"quad\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"arch\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothSurface\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"paidCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"allowedAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalBilled\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalPaid\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalAdjusted\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalDue\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ServiceLineStatus\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToServiceLine\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentToServiceLine\"},{\"name\":\"serviceLineTransactions\",\"kind\":\"object\",\"type\":\"ServiceLineTransaction\",\"relationName\":\"ServiceLineToServiceLineTransaction\"}],\"dbName\":null},\"ClaimFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToClaimFile\"}],\"dbName\":null},\"InsuranceCredential\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"siteKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InsuranceCredentialToUser\"}],\"dbName\":null},\"ShoppingVendor\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"vendorName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"websiteUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loginUsername\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loginPassword\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ShoppingVendorToUser\"}],\"dbName\":null},\"PdfGroup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"titleKey\",\"kind\":\"enum\",\"type\":\"PdfTitleKey\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPdfGroup\"},{\"name\":\"pdfs\",\"kind\":\"object\",\"type\":\"PdfFile\",\"relationName\":\"PdfFileToPdfGroup\"}],\"dbName\":null},\"PdfFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pdfData\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"uploadedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"PdfGroup\",\"relationName\":\"PdfFileToPdfGroup\"}],\"dbName\":null},\"Payment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedById\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalBilled\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalPaid\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalAdjusted\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalDue\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"mhPaidAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"copayment\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"adjustment\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PaymentStatus\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToPayment\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPayment\"},{\"name\":\"updatedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PaymentUpdatedBy\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"NpiProviderToPayment\"},{\"name\":\"serviceLineTransactions\",\"kind\":\"object\",\"type\":\"ServiceLineTransaction\",\"relationName\":\"PaymentToServiceLineTransaction\"},{\"name\":\"serviceLines\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"PaymentToServiceLine\"},{\"name\":\"commissionBatchItems\",\"kind\":\"object\",\"type\":\"CommissionBatchItem\",\"relationName\":\"CommissionBatchItemToPayment\"}],\"dbName\":null},\"ServiceLineTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"serviceLineId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"transactionId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"paidAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"adjustedAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"method\",\"kind\":\"enum\",\"type\":\"PaymentMethod\"},{\"name\":\"receivedDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payerName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentToServiceLineTransaction\"},{\"name\":\"serviceLine\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"ServiceLineToServiceLineTransaction\"}],\"dbName\":null},\"DatabaseBackup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DatabaseBackupToUser\"}],\"dbName\":null},\"BackupDestination\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"BackupDestinationToUser\"}],\"dbName\":null},\"Notification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"NotificationTypes\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"read\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotificationToUser\"}],\"dbName\":null},\"CronJobLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"jobName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"durationMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"CloudFolder\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"FolderChildren\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"FolderChildren\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CloudFolderToUser\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientCloudFolder\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToCloudFolder\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"CloudFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"folderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"isComplete\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"totalChunks\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"diskPath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CloudFileToUser\"},{\"name\":\"folder\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"CloudFileToCloudFolder\"},{\"name\":\"chunks\",\"kind\":\"object\",\"type\":\"CloudFileChunk\",\"relationName\":\"CloudFileToCloudFileChunk\"}],\"dbName\":null},\"CloudFileChunk\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fileId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"seq\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"file\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToCloudFileChunk\"}],\"dbName\":null},\"Communication\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommunicationChannel\"},{\"name\":\"direction\",\"kind\":\"enum\",\"type\":\"CommunicationDirection\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CommunicationStatus\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"callDuration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"twilioSid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"CommunicationToPatient\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CommunicationToUser\"}],\"dbName\":\"communications\"},\"PatientDocument\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"originalName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uploadedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPatientDocument\"}],\"dbName\":null},\"TwilioSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accountSid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"greetingMessage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"templates\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TwilioSettingsToUser\"}],\"dbName\":\"twilio_settings\"},\"AiSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"apiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openAiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openAiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"claudeAiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"claudeAiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"claudeAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"googleAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentalMgmtKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentalMgmtEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"afterHoursEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openPhoneReply\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AiSettingsToUser\"}],\"dbName\":\"ai_settings\"},\"OfficeHours\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfficeHoursToUser\"}],\"dbName\":\"office_hours\"},\"OfficeContact\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"officeName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receptionistName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentistName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fax\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"streetAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zipCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfficeContactToUser\"}],\"dbName\":\"office_contact\"},\"InsuranceContact\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InsuranceContactToUser\"}],\"dbName\":\"insurance_contact\"},\"ProcedureTimeslot\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProcedureTimeslotToUser\"}],\"dbName\":\"procedure_timeslot\"},\"PatientConversation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"stage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiHandoff\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPatientConversation\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PatientConversationToUser\"}],\"dbName\":\"patient_conversation\"},\"LabRxTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labPhone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labFax\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labAccount\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"caseType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"material\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instructions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"LabRxTemplateToUser\"}],\"dbName\":\"lab_rx_template\"},\"CommissionBatch\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalCollection\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"commissionAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"CommissionBatchToNpiProvider\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"CommissionBatchItem\",\"relationName\":\"CommissionBatchToCommissionBatchItem\"}],\"dbName\":null},\"CommissionBatchItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"commissionBatchId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"collectionAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"commissionBatch\",\"kind\":\"object\",\"type\":\"CommissionBatch\",\"relationName\":\"CommissionBatchToCommissionBatchItem\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"CommissionBatchItemToPayment\"}],\"dbName\":null},\"SeleniumSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentGroupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SeleniumSettingsToUser\"}],\"dbName\":\"selenium_settings\"}},\"enums\":{},\"types\":{}}")
+config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"autoBackupEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"autoBackupHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"usbBackupEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"usbBackupHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"autoMhCheckEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"autoMhCheckDayOfWeek\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"autoMhCheckHour\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patients\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"StaffToUser\"},{\"name\":\"npiProviders\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"NpiProviderToUser\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToUser\"},{\"name\":\"insuranceCredentials\",\"kind\":\"object\",\"type\":\"InsuranceCredential\",\"relationName\":\"InsuranceCredentialToUser\"},{\"name\":\"shoppingVendors\",\"kind\":\"object\",\"type\":\"ShoppingVendor\",\"relationName\":\"ShoppingVendorToUser\"},{\"name\":\"updatedPayments\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentUpdatedBy\"},{\"name\":\"backups\",\"kind\":\"object\",\"type\":\"DatabaseBackup\",\"relationName\":\"DatabaseBackupToUser\"},{\"name\":\"backupDestinations\",\"kind\":\"object\",\"type\":\"BackupDestination\",\"relationName\":\"BackupDestinationToUser\"},{\"name\":\"notifications\",\"kind\":\"object\",\"type\":\"Notification\",\"relationName\":\"NotificationToUser\"},{\"name\":\"cloudFolders\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"CloudFolderToUser\"},{\"name\":\"cloudFiles\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToUser\"},{\"name\":\"communications\",\"kind\":\"object\",\"type\":\"Communication\",\"relationName\":\"CommunicationToUser\"},{\"name\":\"twilioSettings\",\"kind\":\"object\",\"type\":\"TwilioSettings\",\"relationName\":\"TwilioSettingsToUser\"},{\"name\":\"telnyxSettings\",\"kind\":\"object\",\"type\":\"TelnyxSettings\",\"relationName\":\"TelnyxSettingsToUser\"},{\"name\":\"aiSettings\",\"kind\":\"object\",\"type\":\"AiSettings\",\"relationName\":\"AiSettingsToUser\"},{\"name\":\"officeHours\",\"kind\":\"object\",\"type\":\"OfficeHours\",\"relationName\":\"OfficeHoursToUser\"},{\"name\":\"officeContact\",\"kind\":\"object\",\"type\":\"OfficeContact\",\"relationName\":\"OfficeContactToUser\"},{\"name\":\"procedureTimeslot\",\"kind\":\"object\",\"type\":\"ProcedureTimeslot\",\"relationName\":\"ProcedureTimeslotToUser\"},{\"name\":\"insuranceContacts\",\"kind\":\"object\",\"type\":\"InsuranceContact\",\"relationName\":\"InsuranceContactToUser\"},{\"name\":\"patientConversations\",\"kind\":\"object\",\"type\":\"PatientConversation\",\"relationName\":\"PatientConversationToUser\"},{\"name\":\"labRxTemplates\",\"kind\":\"object\",\"type\":\"LabRxTemplate\",\"relationName\":\"LabRxTemplateToUser\"},{\"name\":\"seleniumSettings\",\"kind\":\"object\",\"type\":\"SeleniumSettings\",\"relationName\":\"SeleniumSettingsToUser\"}],\"dbName\":null},\"Patient\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zipCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"insuranceProvider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"insuranceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"policyHolder\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"allergies\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"medicalConditions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferredLanguage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PatientStatus\"},{\"name\":\"remainingBenefit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"thirdPartyInsurance\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PatientToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToPatient\"},{\"name\":\"procedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentProcedureToPatient\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToPatient\"},{\"name\":\"groups\",\"kind\":\"object\",\"type\":\"PdfGroup\",\"relationName\":\"PatientToPdfGroup\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PatientToPayment\"},{\"name\":\"communications\",\"kind\":\"object\",\"type\":\"Communication\",\"relationName\":\"CommunicationToPatient\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"PatientDocument\",\"relationName\":\"PatientToPatientDocument\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"PatientConversation\",\"relationName\":\"PatientToPatientConversation\"},{\"name\":\"cloudFolders\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"PatientCloudFolder\"}],\"dbName\":null},\"Appointment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"staffId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"typeLocked\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureCodeNotes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"movedByAi\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"eligibilityStatus\",\"kind\":\"enum\",\"type\":\"PatientStatus\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"AppointmentToPatient\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AppointmentToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"AppointmentToStaff\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"AppointmentToNpiProvider\"},{\"name\":\"procedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentToAppointmentProcedure\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"AppointmentToClaim\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"AppointmentFile\",\"relationName\":\"AppointmentToAppointmentFile\"}],\"dbName\":null},\"AppointmentFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToAppointmentFile\"}],\"dbName\":null},\"Staff\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"StaffToUser\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToStaff\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimStaff\"}],\"dbName\":null},\"NpiProvider\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NpiProviderToUser\"},{\"name\":\"claims\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToNpiProvider\"},{\"name\":\"payments\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"NpiProviderToPayment\"},{\"name\":\"commissionBatches\",\"kind\":\"object\",\"type\":\"CommissionBatch\",\"relationName\":\"CommissionBatchToNpiProvider\"},{\"name\":\"appointmentProcedures\",\"kind\":\"object\",\"type\":\"AppointmentProcedure\",\"relationName\":\"AppointmentProcedureToNpiProvider\"},{\"name\":\"appointments\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToNpiProvider\"}],\"dbName\":null},\"AppointmentProcedure\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"procedureCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureLabel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fee\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"category\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothSurface\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"oralCavityArea\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source\",\"kind\":\"enum\",\"type\":\"ProcedureSource\"},{\"name\":\"comboKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToAppointmentProcedure\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"AppointmentProcedureToPatient\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"AppointmentProcedureToNpiProvider\"}],\"dbName\":null},\"Claim\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"appointmentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"staffId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"memberId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dateOfBirth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"remarks\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"missingTeethStatus\",\"kind\":\"enum\",\"type\":\"MissingTeethStatus\"},{\"name\":\"missingTeeth\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"serviceDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"insuranceProvider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ClaimStatus\"},{\"name\":\"claimNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preAuthNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"ClaimToPatient\"},{\"name\":\"appointment\",\"kind\":\"object\",\"type\":\"Appointment\",\"relationName\":\"AppointmentToClaim\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ClaimToUser\"},{\"name\":\"staff\",\"kind\":\"object\",\"type\":\"Staff\",\"relationName\":\"ClaimStaff\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"ClaimToNpiProvider\"},{\"name\":\"serviceLines\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"ClaimToServiceLine\"},{\"name\":\"claimFiles\",\"kind\":\"object\",\"type\":\"ClaimFile\",\"relationName\":\"ClaimToClaimFile\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"ClaimToPayment\"}],\"dbName\":null},\"ServiceLine\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"procedureCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"procedureDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"quad\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"arch\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toothSurface\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"paidCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"allowedAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalBilled\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalPaid\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalAdjusted\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalDue\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ServiceLineStatus\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToServiceLine\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentToServiceLine\"},{\"name\":\"serviceLineTransactions\",\"kind\":\"object\",\"type\":\"ServiceLineTransaction\",\"relationName\":\"ServiceLineToServiceLineTransaction\"}],\"dbName\":null},\"ClaimFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToClaimFile\"}],\"dbName\":null},\"InsuranceCredential\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"siteKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InsuranceCredentialToUser\"}],\"dbName\":null},\"ShoppingVendor\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"vendorName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"websiteUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loginUsername\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"loginPassword\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ShoppingVendorToUser\"}],\"dbName\":null},\"PdfGroup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"titleKey\",\"kind\":\"enum\",\"type\":\"PdfTitleKey\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPdfGroup\"},{\"name\":\"pdfs\",\"kind\":\"object\",\"type\":\"PdfFile\",\"relationName\":\"PdfFileToPdfGroup\"}],\"dbName\":null},\"PdfFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pdfData\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"uploadedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"PdfGroup\",\"relationName\":\"PdfFileToPdfGroup\"}],\"dbName\":null},\"Payment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"claimId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedById\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalBilled\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalPaid\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalAdjusted\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"totalDue\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"mhPaidAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"copayment\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"adjustment\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PaymentStatus\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"icn\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"claim\",\"kind\":\"object\",\"type\":\"Claim\",\"relationName\":\"ClaimToPayment\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPayment\"},{\"name\":\"updatedBy\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PaymentUpdatedBy\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"NpiProviderToPayment\"},{\"name\":\"serviceLineTransactions\",\"kind\":\"object\",\"type\":\"ServiceLineTransaction\",\"relationName\":\"PaymentToServiceLineTransaction\"},{\"name\":\"serviceLines\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"PaymentToServiceLine\"},{\"name\":\"commissionBatchItems\",\"kind\":\"object\",\"type\":\"CommissionBatchItem\",\"relationName\":\"CommissionBatchItemToPayment\"}],\"dbName\":null},\"ServiceLineTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"serviceLineId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"transactionId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"paidAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"adjustedAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"method\",\"kind\":\"enum\",\"type\":\"PaymentMethod\"},{\"name\":\"receivedDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payerName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"PaymentToServiceLineTransaction\"},{\"name\":\"serviceLine\",\"kind\":\"object\",\"type\":\"ServiceLine\",\"relationName\":\"ServiceLineToServiceLineTransaction\"}],\"dbName\":null},\"DatabaseBackup\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DatabaseBackupToUser\"}],\"dbName\":null},\"BackupDestination\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"BackupDestinationToUser\"}],\"dbName\":null},\"Notification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"NotificationTypes\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"read\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotificationToUser\"}],\"dbName\":null},\"CronJobLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"jobName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"durationMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"CloudFolder\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"FolderChildren\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"FolderChildren\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CloudFolderToUser\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientCloudFolder\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToCloudFolder\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"CloudFile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"folderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"isComplete\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"totalChunks\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"diskPath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CloudFileToUser\"},{\"name\":\"folder\",\"kind\":\"object\",\"type\":\"CloudFolder\",\"relationName\":\"CloudFileToCloudFolder\"},{\"name\":\"chunks\",\"kind\":\"object\",\"type\":\"CloudFileChunk\",\"relationName\":\"CloudFileToCloudFileChunk\"}],\"dbName\":null},\"CloudFileChunk\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"fileId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"seq\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Bytes\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"file\",\"kind\":\"object\",\"type\":\"CloudFile\",\"relationName\":\"CloudFileToCloudFileChunk\"}],\"dbName\":null},\"Communication\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommunicationChannel\"},{\"name\":\"direction\",\"kind\":\"enum\",\"type\":\"CommunicationDirection\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CommunicationStatus\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommunicationProvider\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"callDuration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"twilioSid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"CommunicationToPatient\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CommunicationToUser\"}],\"dbName\":\"communications\"},\"PatientDocument\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"originalName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileSize\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"filePath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uploadedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPatientDocument\"}],\"dbName\":null},\"TwilioSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accountSid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"authToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"greetingMessage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"templates\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TwilioSettingsToUser\"}],\"dbName\":\"twilio_settings\"},\"TelnyxSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"apiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountSid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"texmlApplicationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"messagingProfileId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"webhookPublicKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"greetingMessage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TelnyxSettingsToUser\"}],\"dbName\":\"telnyx_settings\"},\"AiSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"apiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openAiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openAiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"claudeAiKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"claudeAiEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"claudeAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"googleAiModel\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentalMgmtKey\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentalMgmtEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"afterHoursEnabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openPhoneReply\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AiSettingsToUser\"}],\"dbName\":\"ai_settings\"},\"OfficeHours\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfficeHoursToUser\"}],\"dbName\":\"office_hours\"},\"OfficeContact\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"officeName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receptionistName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dentistName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fax\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"streetAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zipCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfficeContactToUser\"}],\"dbName\":\"office_contact\"},\"InsuranceContact\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phoneNumber\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InsuranceContactToUser\"}],\"dbName\":\"insurance_contact\"},\"ProcedureTimeslot\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"data\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProcedureTimeslotToUser\"}],\"dbName\":\"procedure_timeslot\"},\"PatientConversation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"patientId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"stage\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"aiHandoff\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"patient\",\"kind\":\"object\",\"type\":\"Patient\",\"relationName\":\"PatientToPatientConversation\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PatientConversationToUser\"}],\"dbName\":\"patient_conversation\"},\"LabRxTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labPhone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labFax\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labAccount\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"caseType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"material\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instructions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sortOrder\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"LabRxTemplateToUser\"}],\"dbName\":\"lab_rx_template\"},\"CommissionBatch\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"npiProviderId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalCollection\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"commissionAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"npiProvider\",\"kind\":\"object\",\"type\":\"NpiProvider\",\"relationName\":\"CommissionBatchToNpiProvider\"},{\"name\":\"items\",\"kind\":\"object\",\"type\":\"CommissionBatchItem\",\"relationName\":\"CommissionBatchToCommissionBatchItem\"}],\"dbName\":null},\"CommissionBatchItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"commissionBatchId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"collectionAmount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"commissionBatch\",\"kind\":\"object\",\"type\":\"CommissionBatch\",\"relationName\":\"CommissionBatchToCommissionBatchItem\"},{\"name\":\"payment\",\"kind\":\"object\",\"type\":\"Payment\",\"relationName\":\"CommissionBatchItemToPayment\"}],\"dbName\":null},\"SeleniumSettings\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"paymentGroupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SeleniumSettingsToUser\"}],\"dbName\":\"selenium_settings\"}},\"enums\":{},\"types\":{}}")
defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
config.parameterizationSchema = {
- strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"patient\",\"appointments\",\"appointment\",\"staff\",\"claims\",\"claim\",\"updatedBy\",\"npiProvider\",\"payment\",\"serviceLineTransactions\",\"_count\",\"serviceLine\",\"serviceLines\",\"items\",\"commissionBatch\",\"commissionBatchItems\",\"payments\",\"commissionBatches\",\"appointmentProcedures\",\"claimFiles\",\"procedures\",\"files\",\"group\",\"pdfs\",\"groups\",\"communications\",\"documents\",\"conversation\",\"parent\",\"children\",\"folder\",\"file\",\"chunks\",\"cloudFolders\",\"patients\",\"npiProviders\",\"insuranceCredentials\",\"shoppingVendors\",\"updatedPayments\",\"backups\",\"backupDestinations\",\"notifications\",\"cloudFiles\",\"twilioSettings\",\"aiSettings\",\"officeHours\",\"officeContact\",\"procedureTimeslot\",\"insuranceContacts\",\"patientConversations\",\"labRxTemplates\",\"seleniumSettings\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Patient.findUnique\",\"Patient.findUniqueOrThrow\",\"Patient.findFirst\",\"Patient.findFirstOrThrow\",\"Patient.findMany\",\"Patient.createOne\",\"Patient.createMany\",\"Patient.createManyAndReturn\",\"Patient.updateOne\",\"Patient.updateMany\",\"Patient.updateManyAndReturn\",\"Patient.upsertOne\",\"Patient.deleteOne\",\"Patient.deleteMany\",\"Patient.groupBy\",\"Patient.aggregate\",\"Appointment.findUnique\",\"Appointment.findUniqueOrThrow\",\"Appointment.findFirst\",\"Appointment.findFirstOrThrow\",\"Appointment.findMany\",\"Appointment.createOne\",\"Appointment.createMany\",\"Appointment.createManyAndReturn\",\"Appointment.updateOne\",\"Appointment.updateMany\",\"Appointment.updateManyAndReturn\",\"Appointment.upsertOne\",\"Appointment.deleteOne\",\"Appointment.deleteMany\",\"Appointment.groupBy\",\"Appointment.aggregate\",\"AppointmentFile.findUnique\",\"AppointmentFile.findUniqueOrThrow\",\"AppointmentFile.findFirst\",\"AppointmentFile.findFirstOrThrow\",\"AppointmentFile.findMany\",\"AppointmentFile.createOne\",\"AppointmentFile.createMany\",\"AppointmentFile.createManyAndReturn\",\"AppointmentFile.updateOne\",\"AppointmentFile.updateMany\",\"AppointmentFile.updateManyAndReturn\",\"AppointmentFile.upsertOne\",\"AppointmentFile.deleteOne\",\"AppointmentFile.deleteMany\",\"AppointmentFile.groupBy\",\"AppointmentFile.aggregate\",\"Staff.findUnique\",\"Staff.findUniqueOrThrow\",\"Staff.findFirst\",\"Staff.findFirstOrThrow\",\"Staff.findMany\",\"Staff.createOne\",\"Staff.createMany\",\"Staff.createManyAndReturn\",\"Staff.updateOne\",\"Staff.updateMany\",\"Staff.updateManyAndReturn\",\"Staff.upsertOne\",\"Staff.deleteOne\",\"Staff.deleteMany\",\"Staff.groupBy\",\"Staff.aggregate\",\"NpiProvider.findUnique\",\"NpiProvider.findUniqueOrThrow\",\"NpiProvider.findFirst\",\"NpiProvider.findFirstOrThrow\",\"NpiProvider.findMany\",\"NpiProvider.createOne\",\"NpiProvider.createMany\",\"NpiProvider.createManyAndReturn\",\"NpiProvider.updateOne\",\"NpiProvider.updateMany\",\"NpiProvider.updateManyAndReturn\",\"NpiProvider.upsertOne\",\"NpiProvider.deleteOne\",\"NpiProvider.deleteMany\",\"NpiProvider.groupBy\",\"NpiProvider.aggregate\",\"AppointmentProcedure.findUnique\",\"AppointmentProcedure.findUniqueOrThrow\",\"AppointmentProcedure.findFirst\",\"AppointmentProcedure.findFirstOrThrow\",\"AppointmentProcedure.findMany\",\"AppointmentProcedure.createOne\",\"AppointmentProcedure.createMany\",\"AppointmentProcedure.createManyAndReturn\",\"AppointmentProcedure.updateOne\",\"AppointmentProcedure.updateMany\",\"AppointmentProcedure.updateManyAndReturn\",\"AppointmentProcedure.upsertOne\",\"AppointmentProcedure.deleteOne\",\"AppointmentProcedure.deleteMany\",\"AppointmentProcedure.groupBy\",\"AppointmentProcedure.aggregate\",\"Claim.findUnique\",\"Claim.findUniqueOrThrow\",\"Claim.findFirst\",\"Claim.findFirstOrThrow\",\"Claim.findMany\",\"Claim.createOne\",\"Claim.createMany\",\"Claim.createManyAndReturn\",\"Claim.updateOne\",\"Claim.updateMany\",\"Claim.updateManyAndReturn\",\"Claim.upsertOne\",\"Claim.deleteOne\",\"Claim.deleteMany\",\"Claim.groupBy\",\"Claim.aggregate\",\"ServiceLine.findUnique\",\"ServiceLine.findUniqueOrThrow\",\"ServiceLine.findFirst\",\"ServiceLine.findFirstOrThrow\",\"ServiceLine.findMany\",\"ServiceLine.createOne\",\"ServiceLine.createMany\",\"ServiceLine.createManyAndReturn\",\"ServiceLine.updateOne\",\"ServiceLine.updateMany\",\"ServiceLine.updateManyAndReturn\",\"ServiceLine.upsertOne\",\"ServiceLine.deleteOne\",\"ServiceLine.deleteMany\",\"ServiceLine.groupBy\",\"ServiceLine.aggregate\",\"ClaimFile.findUnique\",\"ClaimFile.findUniqueOrThrow\",\"ClaimFile.findFirst\",\"ClaimFile.findFirstOrThrow\",\"ClaimFile.findMany\",\"ClaimFile.createOne\",\"ClaimFile.createMany\",\"ClaimFile.createManyAndReturn\",\"ClaimFile.updateOne\",\"ClaimFile.updateMany\",\"ClaimFile.updateManyAndReturn\",\"ClaimFile.upsertOne\",\"ClaimFile.deleteOne\",\"ClaimFile.deleteMany\",\"ClaimFile.groupBy\",\"ClaimFile.aggregate\",\"InsuranceCredential.findUnique\",\"InsuranceCredential.findUniqueOrThrow\",\"InsuranceCredential.findFirst\",\"InsuranceCredential.findFirstOrThrow\",\"InsuranceCredential.findMany\",\"InsuranceCredential.createOne\",\"InsuranceCredential.createMany\",\"InsuranceCredential.createManyAndReturn\",\"InsuranceCredential.updateOne\",\"InsuranceCredential.updateMany\",\"InsuranceCredential.updateManyAndReturn\",\"InsuranceCredential.upsertOne\",\"InsuranceCredential.deleteOne\",\"InsuranceCredential.deleteMany\",\"InsuranceCredential.groupBy\",\"InsuranceCredential.aggregate\",\"ShoppingVendor.findUnique\",\"ShoppingVendor.findUniqueOrThrow\",\"ShoppingVendor.findFirst\",\"ShoppingVendor.findFirstOrThrow\",\"ShoppingVendor.findMany\",\"ShoppingVendor.createOne\",\"ShoppingVendor.createMany\",\"ShoppingVendor.createManyAndReturn\",\"ShoppingVendor.updateOne\",\"ShoppingVendor.updateMany\",\"ShoppingVendor.updateManyAndReturn\",\"ShoppingVendor.upsertOne\",\"ShoppingVendor.deleteOne\",\"ShoppingVendor.deleteMany\",\"ShoppingVendor.groupBy\",\"ShoppingVendor.aggregate\",\"PdfGroup.findUnique\",\"PdfGroup.findUniqueOrThrow\",\"PdfGroup.findFirst\",\"PdfGroup.findFirstOrThrow\",\"PdfGroup.findMany\",\"PdfGroup.createOne\",\"PdfGroup.createMany\",\"PdfGroup.createManyAndReturn\",\"PdfGroup.updateOne\",\"PdfGroup.updateMany\",\"PdfGroup.updateManyAndReturn\",\"PdfGroup.upsertOne\",\"PdfGroup.deleteOne\",\"PdfGroup.deleteMany\",\"PdfGroup.groupBy\",\"PdfGroup.aggregate\",\"PdfFile.findUnique\",\"PdfFile.findUniqueOrThrow\",\"PdfFile.findFirst\",\"PdfFile.findFirstOrThrow\",\"PdfFile.findMany\",\"PdfFile.createOne\",\"PdfFile.createMany\",\"PdfFile.createManyAndReturn\",\"PdfFile.updateOne\",\"PdfFile.updateMany\",\"PdfFile.updateManyAndReturn\",\"PdfFile.upsertOne\",\"PdfFile.deleteOne\",\"PdfFile.deleteMany\",\"PdfFile.groupBy\",\"PdfFile.aggregate\",\"Payment.findUnique\",\"Payment.findUniqueOrThrow\",\"Payment.findFirst\",\"Payment.findFirstOrThrow\",\"Payment.findMany\",\"Payment.createOne\",\"Payment.createMany\",\"Payment.createManyAndReturn\",\"Payment.updateOne\",\"Payment.updateMany\",\"Payment.updateManyAndReturn\",\"Payment.upsertOne\",\"Payment.deleteOne\",\"Payment.deleteMany\",\"Payment.groupBy\",\"Payment.aggregate\",\"ServiceLineTransaction.findUnique\",\"ServiceLineTransaction.findUniqueOrThrow\",\"ServiceLineTransaction.findFirst\",\"ServiceLineTransaction.findFirstOrThrow\",\"ServiceLineTransaction.findMany\",\"ServiceLineTransaction.createOne\",\"ServiceLineTransaction.createMany\",\"ServiceLineTransaction.createManyAndReturn\",\"ServiceLineTransaction.updateOne\",\"ServiceLineTransaction.updateMany\",\"ServiceLineTransaction.updateManyAndReturn\",\"ServiceLineTransaction.upsertOne\",\"ServiceLineTransaction.deleteOne\",\"ServiceLineTransaction.deleteMany\",\"ServiceLineTransaction.groupBy\",\"ServiceLineTransaction.aggregate\",\"DatabaseBackup.findUnique\",\"DatabaseBackup.findUniqueOrThrow\",\"DatabaseBackup.findFirst\",\"DatabaseBackup.findFirstOrThrow\",\"DatabaseBackup.findMany\",\"DatabaseBackup.createOne\",\"DatabaseBackup.createMany\",\"DatabaseBackup.createManyAndReturn\",\"DatabaseBackup.updateOne\",\"DatabaseBackup.updateMany\",\"DatabaseBackup.updateManyAndReturn\",\"DatabaseBackup.upsertOne\",\"DatabaseBackup.deleteOne\",\"DatabaseBackup.deleteMany\",\"DatabaseBackup.groupBy\",\"DatabaseBackup.aggregate\",\"BackupDestination.findUnique\",\"BackupDestination.findUniqueOrThrow\",\"BackupDestination.findFirst\",\"BackupDestination.findFirstOrThrow\",\"BackupDestination.findMany\",\"BackupDestination.createOne\",\"BackupDestination.createMany\",\"BackupDestination.createManyAndReturn\",\"BackupDestination.updateOne\",\"BackupDestination.updateMany\",\"BackupDestination.updateManyAndReturn\",\"BackupDestination.upsertOne\",\"BackupDestination.deleteOne\",\"BackupDestination.deleteMany\",\"BackupDestination.groupBy\",\"BackupDestination.aggregate\",\"Notification.findUnique\",\"Notification.findUniqueOrThrow\",\"Notification.findFirst\",\"Notification.findFirstOrThrow\",\"Notification.findMany\",\"Notification.createOne\",\"Notification.createMany\",\"Notification.createManyAndReturn\",\"Notification.updateOne\",\"Notification.updateMany\",\"Notification.updateManyAndReturn\",\"Notification.upsertOne\",\"Notification.deleteOne\",\"Notification.deleteMany\",\"Notification.groupBy\",\"Notification.aggregate\",\"CronJobLog.findUnique\",\"CronJobLog.findUniqueOrThrow\",\"CronJobLog.findFirst\",\"CronJobLog.findFirstOrThrow\",\"CronJobLog.findMany\",\"CronJobLog.createOne\",\"CronJobLog.createMany\",\"CronJobLog.createManyAndReturn\",\"CronJobLog.updateOne\",\"CronJobLog.updateMany\",\"CronJobLog.updateManyAndReturn\",\"CronJobLog.upsertOne\",\"CronJobLog.deleteOne\",\"CronJobLog.deleteMany\",\"CronJobLog.groupBy\",\"CronJobLog.aggregate\",\"CloudFolder.findUnique\",\"CloudFolder.findUniqueOrThrow\",\"CloudFolder.findFirst\",\"CloudFolder.findFirstOrThrow\",\"CloudFolder.findMany\",\"CloudFolder.createOne\",\"CloudFolder.createMany\",\"CloudFolder.createManyAndReturn\",\"CloudFolder.updateOne\",\"CloudFolder.updateMany\",\"CloudFolder.updateManyAndReturn\",\"CloudFolder.upsertOne\",\"CloudFolder.deleteOne\",\"CloudFolder.deleteMany\",\"CloudFolder.groupBy\",\"CloudFolder.aggregate\",\"CloudFile.findUnique\",\"CloudFile.findUniqueOrThrow\",\"CloudFile.findFirst\",\"CloudFile.findFirstOrThrow\",\"CloudFile.findMany\",\"CloudFile.createOne\",\"CloudFile.createMany\",\"CloudFile.createManyAndReturn\",\"CloudFile.updateOne\",\"CloudFile.updateMany\",\"CloudFile.updateManyAndReturn\",\"CloudFile.upsertOne\",\"CloudFile.deleteOne\",\"CloudFile.deleteMany\",\"CloudFile.groupBy\",\"CloudFile.aggregate\",\"CloudFileChunk.findUnique\",\"CloudFileChunk.findUniqueOrThrow\",\"CloudFileChunk.findFirst\",\"CloudFileChunk.findFirstOrThrow\",\"CloudFileChunk.findMany\",\"CloudFileChunk.createOne\",\"CloudFileChunk.createMany\",\"CloudFileChunk.createManyAndReturn\",\"CloudFileChunk.updateOne\",\"CloudFileChunk.updateMany\",\"CloudFileChunk.updateManyAndReturn\",\"CloudFileChunk.upsertOne\",\"CloudFileChunk.deleteOne\",\"CloudFileChunk.deleteMany\",\"CloudFileChunk.groupBy\",\"CloudFileChunk.aggregate\",\"Communication.findUnique\",\"Communication.findUniqueOrThrow\",\"Communication.findFirst\",\"Communication.findFirstOrThrow\",\"Communication.findMany\",\"Communication.createOne\",\"Communication.createMany\",\"Communication.createManyAndReturn\",\"Communication.updateOne\",\"Communication.updateMany\",\"Communication.updateManyAndReturn\",\"Communication.upsertOne\",\"Communication.deleteOne\",\"Communication.deleteMany\",\"Communication.groupBy\",\"Communication.aggregate\",\"PatientDocument.findUnique\",\"PatientDocument.findUniqueOrThrow\",\"PatientDocument.findFirst\",\"PatientDocument.findFirstOrThrow\",\"PatientDocument.findMany\",\"PatientDocument.createOne\",\"PatientDocument.createMany\",\"PatientDocument.createManyAndReturn\",\"PatientDocument.updateOne\",\"PatientDocument.updateMany\",\"PatientDocument.updateManyAndReturn\",\"PatientDocument.upsertOne\",\"PatientDocument.deleteOne\",\"PatientDocument.deleteMany\",\"PatientDocument.groupBy\",\"PatientDocument.aggregate\",\"TwilioSettings.findUnique\",\"TwilioSettings.findUniqueOrThrow\",\"TwilioSettings.findFirst\",\"TwilioSettings.findFirstOrThrow\",\"TwilioSettings.findMany\",\"TwilioSettings.createOne\",\"TwilioSettings.createMany\",\"TwilioSettings.createManyAndReturn\",\"TwilioSettings.updateOne\",\"TwilioSettings.updateMany\",\"TwilioSettings.updateManyAndReturn\",\"TwilioSettings.upsertOne\",\"TwilioSettings.deleteOne\",\"TwilioSettings.deleteMany\",\"TwilioSettings.groupBy\",\"TwilioSettings.aggregate\",\"AiSettings.findUnique\",\"AiSettings.findUniqueOrThrow\",\"AiSettings.findFirst\",\"AiSettings.findFirstOrThrow\",\"AiSettings.findMany\",\"AiSettings.createOne\",\"AiSettings.createMany\",\"AiSettings.createManyAndReturn\",\"AiSettings.updateOne\",\"AiSettings.updateMany\",\"AiSettings.updateManyAndReturn\",\"AiSettings.upsertOne\",\"AiSettings.deleteOne\",\"AiSettings.deleteMany\",\"AiSettings.groupBy\",\"AiSettings.aggregate\",\"OfficeHours.findUnique\",\"OfficeHours.findUniqueOrThrow\",\"OfficeHours.findFirst\",\"OfficeHours.findFirstOrThrow\",\"OfficeHours.findMany\",\"OfficeHours.createOne\",\"OfficeHours.createMany\",\"OfficeHours.createManyAndReturn\",\"OfficeHours.updateOne\",\"OfficeHours.updateMany\",\"OfficeHours.updateManyAndReturn\",\"OfficeHours.upsertOne\",\"OfficeHours.deleteOne\",\"OfficeHours.deleteMany\",\"OfficeHours.groupBy\",\"OfficeHours.aggregate\",\"OfficeContact.findUnique\",\"OfficeContact.findUniqueOrThrow\",\"OfficeContact.findFirst\",\"OfficeContact.findFirstOrThrow\",\"OfficeContact.findMany\",\"OfficeContact.createOne\",\"OfficeContact.createMany\",\"OfficeContact.createManyAndReturn\",\"OfficeContact.updateOne\",\"OfficeContact.updateMany\",\"OfficeContact.updateManyAndReturn\",\"OfficeContact.upsertOne\",\"OfficeContact.deleteOne\",\"OfficeContact.deleteMany\",\"OfficeContact.groupBy\",\"OfficeContact.aggregate\",\"InsuranceContact.findUnique\",\"InsuranceContact.findUniqueOrThrow\",\"InsuranceContact.findFirst\",\"InsuranceContact.findFirstOrThrow\",\"InsuranceContact.findMany\",\"InsuranceContact.createOne\",\"InsuranceContact.createMany\",\"InsuranceContact.createManyAndReturn\",\"InsuranceContact.updateOne\",\"InsuranceContact.updateMany\",\"InsuranceContact.updateManyAndReturn\",\"InsuranceContact.upsertOne\",\"InsuranceContact.deleteOne\",\"InsuranceContact.deleteMany\",\"InsuranceContact.groupBy\",\"InsuranceContact.aggregate\",\"ProcedureTimeslot.findUnique\",\"ProcedureTimeslot.findUniqueOrThrow\",\"ProcedureTimeslot.findFirst\",\"ProcedureTimeslot.findFirstOrThrow\",\"ProcedureTimeslot.findMany\",\"ProcedureTimeslot.createOne\",\"ProcedureTimeslot.createMany\",\"ProcedureTimeslot.createManyAndReturn\",\"ProcedureTimeslot.updateOne\",\"ProcedureTimeslot.updateMany\",\"ProcedureTimeslot.updateManyAndReturn\",\"ProcedureTimeslot.upsertOne\",\"ProcedureTimeslot.deleteOne\",\"ProcedureTimeslot.deleteMany\",\"ProcedureTimeslot.groupBy\",\"ProcedureTimeslot.aggregate\",\"PatientConversation.findUnique\",\"PatientConversation.findUniqueOrThrow\",\"PatientConversation.findFirst\",\"PatientConversation.findFirstOrThrow\",\"PatientConversation.findMany\",\"PatientConversation.createOne\",\"PatientConversation.createMany\",\"PatientConversation.createManyAndReturn\",\"PatientConversation.updateOne\",\"PatientConversation.updateMany\",\"PatientConversation.updateManyAndReturn\",\"PatientConversation.upsertOne\",\"PatientConversation.deleteOne\",\"PatientConversation.deleteMany\",\"PatientConversation.groupBy\",\"PatientConversation.aggregate\",\"LabRxTemplate.findUnique\",\"LabRxTemplate.findUniqueOrThrow\",\"LabRxTemplate.findFirst\",\"LabRxTemplate.findFirstOrThrow\",\"LabRxTemplate.findMany\",\"LabRxTemplate.createOne\",\"LabRxTemplate.createMany\",\"LabRxTemplate.createManyAndReturn\",\"LabRxTemplate.updateOne\",\"LabRxTemplate.updateMany\",\"LabRxTemplate.updateManyAndReturn\",\"LabRxTemplate.upsertOne\",\"LabRxTemplate.deleteOne\",\"LabRxTemplate.deleteMany\",\"LabRxTemplate.groupBy\",\"LabRxTemplate.aggregate\",\"CommissionBatch.findUnique\",\"CommissionBatch.findUniqueOrThrow\",\"CommissionBatch.findFirst\",\"CommissionBatch.findFirstOrThrow\",\"CommissionBatch.findMany\",\"CommissionBatch.createOne\",\"CommissionBatch.createMany\",\"CommissionBatch.createManyAndReturn\",\"CommissionBatch.updateOne\",\"CommissionBatch.updateMany\",\"CommissionBatch.updateManyAndReturn\",\"CommissionBatch.upsertOne\",\"CommissionBatch.deleteOne\",\"CommissionBatch.deleteMany\",\"CommissionBatch.groupBy\",\"CommissionBatch.aggregate\",\"CommissionBatchItem.findUnique\",\"CommissionBatchItem.findUniqueOrThrow\",\"CommissionBatchItem.findFirst\",\"CommissionBatchItem.findFirstOrThrow\",\"CommissionBatchItem.findMany\",\"CommissionBatchItem.createOne\",\"CommissionBatchItem.createMany\",\"CommissionBatchItem.createManyAndReturn\",\"CommissionBatchItem.updateOne\",\"CommissionBatchItem.updateMany\",\"CommissionBatchItem.updateManyAndReturn\",\"CommissionBatchItem.upsertOne\",\"CommissionBatchItem.deleteOne\",\"CommissionBatchItem.deleteMany\",\"CommissionBatchItem.groupBy\",\"CommissionBatchItem.aggregate\",\"SeleniumSettings.findUnique\",\"SeleniumSettings.findUniqueOrThrow\",\"SeleniumSettings.findFirst\",\"SeleniumSettings.findFirstOrThrow\",\"SeleniumSettings.findMany\",\"SeleniumSettings.createOne\",\"SeleniumSettings.createMany\",\"SeleniumSettings.createManyAndReturn\",\"SeleniumSettings.updateOne\",\"SeleniumSettings.updateMany\",\"SeleniumSettings.updateManyAndReturn\",\"SeleniumSettings.upsertOne\",\"SeleniumSettings.deleteOne\",\"SeleniumSettings.deleteMany\",\"SeleniumSettings.groupBy\",\"SeleniumSettings.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"userId\",\"paymentGroupId\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"commissionBatchId\",\"paymentId\",\"collectionAmount\",\"npiProviderId\",\"totalCollection\",\"commissionAmount\",\"notes\",\"createdAt\",\"name\",\"labName\",\"labPhone\",\"labFax\",\"labAddress\",\"labAccount\",\"caseType\",\"material\",\"instructions\",\"sortOrder\",\"updatedAt\",\"patientId\",\"stage\",\"aiHandoff\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"phoneNumber\",\"officeName\",\"receptionistName\",\"dentistName\",\"email\",\"fax\",\"streetAddress\",\"city\",\"state\",\"zipCode\",\"apiKey\",\"aiEnabled\",\"openAiKey\",\"openAiEnabled\",\"claudeAiKey\",\"claudeAiEnabled\",\"claudeAiModel\",\"openAiModel\",\"googleAiModel\",\"dentalMgmtKey\",\"dentalMgmtEnabled\",\"afterHoursEnabled\",\"openPhoneReply\",\"accountSid\",\"authToken\",\"greetingMessage\",\"templates\",\"filename\",\"originalName\",\"mimeType\",\"fileSize\",\"filePath\",\"uploadedAt\",\"CommunicationChannel\",\"channel\",\"CommunicationDirection\",\"direction\",\"CommunicationStatus\",\"status\",\"body\",\"callDuration\",\"twilioSid\",\"fileId\",\"seq\",\"folderId\",\"isComplete\",\"totalChunks\",\"diskPath\",\"parentId\",\"jobName\",\"startedAt\",\"completedAt\",\"durationMs\",\"errorMessage\",\"NotificationTypes\",\"type\",\"message\",\"read\",\"path\",\"isActive\",\"serviceLineId\",\"transactionId\",\"paidAmount\",\"adjustedAmount\",\"PaymentMethod\",\"method\",\"receivedDate\",\"payerName\",\"claimId\",\"updatedById\",\"totalBilled\",\"totalPaid\",\"totalAdjusted\",\"totalDue\",\"mhPaidAmount\",\"copayment\",\"adjustment\",\"PaymentStatus\",\"icn\",\"pdfData\",\"groupId\",\"title\",\"PdfTitleKey\",\"titleKey\",\"vendorName\",\"websiteUrl\",\"loginUsername\",\"loginPassword\",\"siteKey\",\"username\",\"password\",\"procedureCode\",\"procedureDate\",\"quad\",\"arch\",\"toothNumber\",\"toothSurface\",\"paidCode\",\"allowedAmount\",\"ServiceLineStatus\",\"appointmentId\",\"staffId\",\"patientName\",\"memberId\",\"dateOfBirth\",\"remarks\",\"MissingTeethStatus\",\"missingTeethStatus\",\"missingTeeth\",\"serviceDate\",\"insuranceProvider\",\"ClaimStatus\",\"claimNumber\",\"preAuthNumber\",\"procedureLabel\",\"fee\",\"category\",\"oralCavityArea\",\"ProcedureSource\",\"source\",\"comboKey\",\"npiNumber\",\"providerName\",\"role\",\"phone\",\"date\",\"startTime\",\"endTime\",\"typeLocked\",\"procedureCodeNotes\",\"movedByAi\",\"PatientStatus\",\"eligibilityStatus\",\"firstName\",\"lastName\",\"gender\",\"address\",\"insuranceId\",\"groupNumber\",\"policyHolder\",\"allergies\",\"medicalConditions\",\"preferredLanguage\",\"remainingBenefit\",\"thirdPartyInsurance\",\"autoBackupEnabled\",\"autoBackupHour\",\"usbBackupEnabled\",\"usbBackupHour\",\"autoMhCheckEnabled\",\"autoMhCheckDayOfWeek\",\"autoMhCheckHour\",\"userId_siteKey\",\"userId_npiNumber\",\"every\",\"some\",\"none\",\"fileId_seq\",\"userId_parentId_name\",\"commissionBatchId_paymentId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
- graph: "qhT1AsAEJAUAAK0JACAHAADqCQAgCAAAqQkAIB0AAPEJACAlAAC6CQAgJgAA6QkAICcAAOsJACAoAADsCQAgKQAA7QkAICoAAKoJACArAADuCQAgLAAA7wkAIC0AAPAJACAuAAC8CQAgLwAA8gkAIDAAAPMJACAxAAD0CQAgMgAA9QkAIDMAAPYJACA0AAD3CQAgNQAA-AkAIDYAAPkJACA3AAD6CQAggAUAAOgJADCBBQAADQAQggUAAOgJADCDBQIAAAABhgYBAAAAAYcGAQClCAAhvgYgAMUIACG_BgIA5wgAIcAGIADFCAAhwQYCAOcIACHCBiAAxQgAIcMGAgDnCAAhxAYCAOcIACEBAAAAAQAgJAMAAKYIACAFAACtCQAgCAAAqQkAIAwAAKoJACAYAACsCQAgHAAA_wkAIB0AAPEJACAeAACACgAgHwAAgQoAICUAALoJACCABQAA_gkAMIEFAAADABCCBQAA_gkAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIaMFQADoCAAhsQUBAMAIACG0BQEAwAgAIbYFAQDACAAh0wUAAPwJsQYilQZAAOkIACGbBgEAwAgAIakGAQClCAAhsgYBAKUIACGzBgEApQgAIbQGAQClCAAhtQYBAMAIACG2BgEAwAgAIbcGAQDACAAhuAYBAMAIACG5BgEAwAgAIboGAQDACAAhuwYBAMAIACG8BgEAwAgAIb0GAQDACAAhGAMAAIsKACAFAADCEQAgCAAAxREAIAwAAMgRACAYAADaEQAgHAAA7BEAIB0AAM4RACAeAADtEQAgHwAA7hEAICUAAMwRACCxBQAAlgoAILQFAACWCgAgtgUAAJYKACCVBgAAlgoAIJsGAACWCgAgtQYAAJYKACC2BgAAlgoAILcGAACWCgAguAYAAJYKACC5BgAAlgoAILoGAACWCgAguwYAAJYKACC8BgAAlgoAIL0GAACWCgAgJAMAAKYIACAFAACtCQAgCAAAqQkAIAwAAKoJACAYAACsCQAgHAAA_wkAIB0AAPEJACAeAACACgAgHwAAgQoAICUAALoJACCABQAA_gkAMIEFAAADABCCBQAA_gkAMIMFAgAAAAGEBQIA5wgAIZgFQADoCAAhowVAAOgIACGxBQEAwAgAIbQFAQDACAAhtgUBAMAIACHTBQAA_AmxBiKVBkAA6QgAIZsGAQDACAAhqQYBAKUIACGyBgEApQgAIbMGAQClCAAhtAYBAKUIACG1BgEAwAgAIbYGAQDACAAhtwYBAMAIACG4BgEAwAgAIbkGAQDACAAhugYBAMAIACG7BgEAwAgAIbwGAQDACAAhvQYBAMAIACEDAAAAAwAgAQAABAAwAgAABQAgGwMAAKYIACAEAACeCQAgBwAA5gkAIAgAAKkJACALAADOCQAgGAAArAkAIBkAAP0JACCABQAA-wkAMIEFAAAHABCCBQAA-wkAMIMFAgDnCAAhhAUCAOcIACGUBQIA6ggAIZcFAQDACAAhmAVAAOgIACGkBQIA5wgAIdMFAQClCAAh5AUBAKUIACH-BQEApQgAIZIGAgDnCAAhqgZAAOgIACGrBgEApQgAIawGAQClCAAhrQYgAMUIACGuBgEAwAgAIa8GIADFCAAhsQYAAPwJsQYiCgMAAIsKACAEAADYEQAgBwAA6REAIAgAAMURACALAADiEQAgGAAA2hEAIBkAAOsRACCUBQAAlgoAIJcFAACWCgAgrgYAAJYKACAbAwAApggAIAQAAJ4JACAHAADmCQAgCAAAqQkAIAsAAM4JACAYAACsCQAgGQAA_QkAIIAFAAD7CQAwgQUAAAcAEIIFAAD7CQAwgwUCAAAAAYQFAgDnCAAhlAUCAOoIACGXBQEAwAgAIZgFQADoCAAhpAUCAOcIACHTBQEApQgAIeQFAQClCAAh_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_AUAAbIJACH9BQIA5wgAIQEaAADeEQAgCRoAAMMJACCABQAAwgkAMIEFAABfABCCBQAAwgkAMIMFAgAAAAHIBQEApQgAIc0FQADoCAAh_AUAAbIJACH9BQIA5wgAIQMAAABfACABAABgADACAABhACABAAAAXwAgAwAAABoAIAEAABsAMAIAABwAIA8DAACvCQAgBAAAngkAIIAFAAC-CQAwgQUAAGUAEIIFAAC-CQAwgwUCAOcIACGEBQIA6ggAIZgFQADoCAAhpAUCAOcIACHPBQAAvwnPBSLRBQAAwAnRBSLTBQAAwQnTBSLUBQEAwAgAIdUFAgDqCAAh1gUBAMAIACEGAwAAiwoAIAQAANgRACCEBQAAlgoAINQFAACWCgAg1QUAAJYKACDWBQAAlgoAIA8DAACvCQAgBAAAngkAIIAFAAC-CQAwgQUAAGUAEIIFAAC-CQAwgwUCAAAAAYQFAgDqCAAhmAVAAOgIACGkBQIA5wgAIc8FAAC_Cc8FItEFAADACdEFItMFAADBCdMFItQFAQDACAAh1QUCAOoIACHWBQEAwAgAIQMAAABlACABAABmADACAABnACABAAAADQAgDQQAAJ4JACCABQAAvQkAMIEFAABqABCCBQAAvQkAMIMFAgDnCAAhowVAAOgIACGkBQIA5wgAIcgFAQClCAAhyQUBAKUIACHKBQEApQgAIcsFBAC1CQAhzAUBAKUIACHNBUAA6AgAIQEEAADYEQAgDQQAAJ4JACCABQAAvQkAMIEFAABqABCCBQAAvQkAMIMFAgAAAAGjBUAA6AgAIaQFAgDnCAAhyAUBAKUIACHJBQEApQgAIcoFAQClCAAhywUEALUJACHMBQEApQgAIc0FQADoCAAhAwAAAGoAIAEAAGsAMAIAAGwAIAsDAACmCAAgBAAAngkAIIAFAACdCQAwgQUAAG4AEIIFAACdCQAwgwUCAOcIACGEBQIA5wgAIaMFQADoCAAhpAUCAOcIACGlBQEApQgAIaYFIADFCAAhAQAAAG4AIA8DAACmCAAgBAAAuwkAIBkAALwJACAgAAC2CQAgIQAAugkAIIAFAAC5CQAwgQUAAHAAEIIFAAC5CQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhmQUBAKUIACGjBUAA6AgAIaQFAgDqCAAh3QUCAOoIACEHAwAAiwoAIAQAANgRACAZAADNEQAgIAAA3BEAICEAAMwRACCkBQAAlgoAIN0FAACWCgAgEAMAAKYIACAEAAC7CQAgGQAAvAkAICAAALYJACAhAAC6CQAggAUAALkJADCBBQAAcAAQggUAALkJADCDBQIAAAABhAUCAOcIACGYBUAA6AgAIZkFAQClCAAhowVAAOgIACGkBQIA6ggAId0FAgDqCAAhywYAALgJACADAAAAcAAgAQAAcQAwAgAAcgAgAQAAAHAAIAMAAABwACABAABxADACAAByACABAAAAAwAgEQMAAKYIACAiAAC2CQAgJAAAtwkAIIAFAAC0CQAwgQUAAHcAEIIFAAC0CQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhmQUBAKUIACGjBUAA6AgAIcoFAQDACAAhywUEALUJACHZBQIA6ggAIdoFIADFCAAh2wUCAOoIACHcBQEAwAgAIQcDAACLCgAgIgAA3BEAICQAAN0RACDKBQAAlgoAINkFAACWCgAg2wUAAJYKACDcBQAAlgoAIBEDAACmCAAgIgAAtgkAICQAALcJACCABQAAtAkAMIEFAAB3ABCCBQAAtAkAMIMFAgAAAAGEBQIA5wgAIZgFQADoCAAhmQUBAKUIACGjBUAA6AgAIcoFAQDACAAhywUEALUJACHZBQIA6ggAIdoFIADFCAAh2wUCAOoIACHcBQEAwAgAIQMAAAB3ACABAAB4ADACAAB5ACABAAAAcAAgCSMAALMJACA9AAGyCQAhgAUAALEJADCBBQAAfAAQggUAALEJADCDBQIA5wgAIZgFQADoCAAh1wUCAOcIACHYBQIA5wgAIQEjAADbEQAgCiMAALMJACA9AAGyCQAhgAUAALEJADCBBQAAfAAQggUAALEJADCDBQIAAAABmAVAAOgIACHXBQIA5wgAIdgFAgDnCAAhygYAALAJACADAAAAfAAgAQAAfQAwAgAAfgAgAQAAAHwAIAEAAABwACABAAAAdwAgAQAAAAcAIAEAAAA6ACABAAAAEAAgAQAAAFsAIAEAAAAaACABAAAAZQAgAQAAAGoAIAEAAABwACADAAAABwAgAQAACAAwAgAACQAgBQMAAIsKACAFAADCEQAgCAAAxREAILEFAACWCgAgqQYAAJYKACANAwAArwkAIAUAAK0JACAIAACpCQAggAUAAK4JADCBBQAACwAQggUAAK4JADCDBQIAAAABhAUCAOcIACGYBUAA6AgAIZkFAQClCAAhsQUBAMAIACGoBgEApQgAIakGAQDACAAhAwAAAAsAIAEAAIwBADACAACNAQAgBgMAAIsKACAFAADCEQAgCAAAxREAIBQAAMgRACAVAADZEQAgFgAA2hEAIBADAACmCAAgBQAArQkAIAgAAKkJACAUAACqCQAgFQAAqwkAIBYAAKwJACCABQAAqAkAMIEFAAAXABCCBQAAqAkAMIMFAgAAAAGEBQIA5wgAIZgFQADoCAAhogUCAOcIACGmBgEApQgAIacGAQClCAAhxgYAAKcJACADAAAAFwAgAQAAjwEAMAIAAJABACADAAAAEAAgAQAAEQAwAgAAEgAgCQMAAKYIACCABQAApgkAMIEFAACTAQAQggUAAKYJADCDBQIA5wgAIYQFAgDnCAAhhQYBAKUIACGGBgEApQgAIYcGAQClCAAhAQMAAIsKACAKAwAApggAIIAFAACmCQAwgQUAAJMBABCCBQAApgkAMIMFAgAAAAGEBQIA5wgAIYUGAQClCAAhhgYBAKUIACGHBgEApQgAIcUGAAClCQAgAwAAAJMBACABAACUAQAwAgAAlQEAIAoDAACmCAAggAUAAKQJADCBBQAAlwEAEIIFAACkCQAwgwUCAOcIACGEBQIA5wgAIYEGAQClCAAhggYBAKUIACGDBgEApQgAIYQGAQClCAAhAQMAAIsKACAKAwAApggAIIAFAACkCQAwgQUAAJcBABCCBQAApAkAMIMFAgAAAAGEBQIA5wgAIYEGAQClCAAhggYBAKUIACGDBgEApQgAIYQGAQClCAAhAwAAAJcBACABAACYAQAwAgAAmQEAIAMAAAAaACABAAAbADACAAAcACAHAwAApggAIIAFAACjCQAwgQUAAJwBABCCBQAAowkAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIQEDAACLCgAgBwMAAKYIACCABQAAowkAMIEFAACcAQAQggUAAKMJADCDBQIAAAABhAUCAOcIACGYBUAA6AgAIQMAAACcAQAgAQAAnQEAMAIAAJ4BACAJAwAApggAIIAFAACiCQAwgQUAAKABABCCBQAAogkAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIecFAQClCAAh6AUgAMUIACEBAwAAiwoAIAkDAACmCAAggAUAAKIJADCBBQAAoAEAEIIFAACiCQAwgwUCAAAAAYQFAgDnCAAhmAVAAOgIACHnBQEApQgAIegFIADFCAAhAwAAAKABACABAAChAQAwAgAAogEAIAoDAACmCAAggAUAAKAJADCBBQAApAEAEIIFAACgCQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAh5AUAAKEJ5AUi5QUBAKUIACHmBSAAxQgAIQEDAACLCgAgCgMAAKYIACCABQAAoAkAMIEFAACkAQAQggUAAKAJADCDBQIAAAABhAUCAOcIACGYBUAA6AgAIeQFAAChCeQFIuUFAQClCAAh5gUgAMUIACEDAAAApAEAIAEAAKUBADACAACmAQAgAwAAAHAAIAEAAHEAMAIAAHIAIAMAAAB3ACABAAB4ADACAAB5ACADAAAAZQAgAQAAZgAwAgAAZwAgCwMAAKYIACCABQAAyQgAMIEFAACrAQAQggUAAMkIADCDBQIA5wgAIYQFAgDnCAAhrQUBAKUIACHEBQEApQgAIcUFAQClCAAhxgUBAMAIACHHBQAAyggAIAEAAACrAQAgEwMAAKYIACCABQAAxAgAMIEFAACtAQAQggUAAMQIADCDBQIA5wgAIYQFAgDnCAAhtwUBAKUIACG4BSAAxQgAIbkFAQClCAAhugUgAMUIACG7BQEApQgAIbwFIADFCAAhvQUBAKUIACG-BQEApQgAIb8FAQClCAAhwAUBAKUIACHBBSAAxQgAIcIFIADFCAAhwwUgAMUIACEBAAAArQEAIAcDAACmCAAgPQAAvAgAIIAFAADCCAAwgQUAAK8BABCCBQAAwggAMIMFAgDnCAAhhAUCAOcIACEBAAAArwEAIBADAACmCAAggAUAAL8IADCBBQAAsQEAEIIFAAC_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_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_AEAEIIFAACaCQAwgwUCAJ0IACGEBQIAnQgAIZgFQACtCAAhowVAAK0IACGxBQEArAgAIbQFAQCsCAAhtgUBAKwIACHTBQAAlwmxBiKVBkAA4wgAIZsGAQCsCAAhqQYBAJ4IACGyBgEAnggAIbMGAQCeCAAhtAYBAJ4IACG1BgEArAgAIbYGAQCsCAAhtwYBAKwIACG4BgEArAgAIbkGAQCsCAAhugYBAKwIACG7BgEArAgAIbwGAQCsCAAhvQYBAKwIACEDAAAAAwAgAQAA-wEAMEkAAPwBACADAAAAAwAgAQAABAAwAgAABQAgAQAAAAkAIAEAAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACAYAwAA5w0AIAQAAOYNACAHAADoDQAgCAAA6g0AIAsAALcOACAYAADpDQAgGQAA6w0AIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgE9AACEAgAgEYMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgE9AACGAgAwAT0AAIYCADABAAAACwAgAQAAABcAIBgDAAC8DQAgBAAAuw0AIAcAAL0NACAIAAC_DQAgCwAAtQ4AIBgAAL4NACAZAADADQAggwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhlwUBAJwKACGYBUAAnQoAIaQFAgCICgAh0wUBAIcKACHkBQEAhwoAIf4FAQCHCgAhkgYCAIgKACGqBkAAnQoAIasGAQCHCgAhrAYBAIcKACGtBiAAugoAIa4GAQCcCgAhrwYgALoKACGxBgAAuQ2xBiICAAAACQAgPQAAiwIAIBGDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhpAUCAIgKACHTBQEAhwoAIeQFAQCHCgAh_gUBAIcKACGSBgIAiAoAIaoGQACdCgAhqwYBAIcKACGsBgEAhwoAIa0GIAC6CgAhrgYBAJwKACGvBiAAugoAIbEGAAC5DbEGIgIAAAAHACA9AACNAgAgAgAAAAcAID0AAI0CACABAAAACwAgAQAAABcAIAMAAAAJACBEAACEAgAgRQAAiwIAIAEAAAAJACABAAAABwAgCA4AAMIOACBKAADDDgAgSwAAxg4AIEwAAMUOACBNAADEDgAglAUAAJYKACCXBQAAlgoAIK4GAACWCgAgFIAFAACWCQAwgQUAAJYCABCCBQAAlgkAMIMFAgCdCAAhhAUCAJ0IACGUBQIA0AgAIZcFAQCsCAAhmAVAAK0IACGkBQIAnQgAIdMFAQCeCAAh5AUBAJ4IACH-BQEAnggAIZIGAgCdCAAhqgZAAK0IACGrBgEAnggAIawGAQCeCAAhrQYgALUIACGuBgEArAgAIa8GIAC1CAAhsQYAAJcJsQYiAwAAAAcAIAEAAJUCADBJAACWAgAgAwAAAAcAIAEAAAgAMAIAAAkAIAEAAABUACABAAAAVAAgAwAAAFIAIAEAAFMAMAIAAFQAIAMAAABSACABAABTADACAABUACADAAAAUgAgAQAAUwAwAgAAVAAgBgYAAMEOACCDBQIAAAAByAUBAAAAAcoFAQAAAAHMBQEAAAABkQYCAAAAAQE9AACeAgAgBYMFAgAAAAHIBQEAAAABygUBAAAAAcwFAQAAAAGRBgIAAAABAT0AAKACADABPQAAoAIAMAYGAADADgAggwUCAIgKACHIBQEAhwoAIcoFAQCcCgAhzAUBAJwKACGRBgIAiAoAIQIAAABUACA9AACjAgAgBYMFAgCICgAhyAUBAIcKACHKBQEAnAoAIcwFAQCcCgAhkQYCAIgKACECAAAAUgAgPQAApQIAIAIAAABSACA9AAClAgAgAwAAAFQAIEQAAJ4CACBFAACjAgAgAQAAAFQAIAEAAABSACAHDgAAuw4AIEoAALwOACBLAAC_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_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_gUBAAAAAYAGAAAAgAYCAT0AAPQDACAFgwUCAAAAAZgFQAAAAAGkBQIAAAAB_gUBAAAAAYAGAAAAgAYCAT0AAPYDADABPQAA9gMAMAcEAAC7DAAgGwAAvAwAIIMFAgCICgAhmAVAAJ0KACGkBQIAiAoAIf4FAQCHCgAhgAYAALoMgAYiAgAAAF0AID0AAPkDACAFgwUCAIgKACGYBUAAnQoAIaQFAgCICgAh_gUBAIcKACGABgAAugyABiICAAAAWwAgPQAA-wMAIAIAAABbACA9AAD7AwAgAwAAAF0AIEQAAPQDACBFAAD5AwAgAQAAAF0AIAEAAABbACAFDgAAtQwAIEoAALYMACBLAAC5DAAgTAAAuAwAIE0AALcMACAIgAUAAP0IADCBBQAAggQAEIIFAAD9CAAwgwUCAJ0IACGYBUAArQgAIaQFAgCdCAAh_gUBAJ4IACGABgAA_giABiIDAAAAWwAgAQAAgQQAMEkAAIIEACADAAAAWwAgAQAAXAAwAgAAXQAgAQAAAGEAIAEAAABhACADAAAAXwAgAQAAYAAwAgAAYQAgAwAAAF8AIAEAAGAAMAIAAGEAIAMAAABfACABAABgADACAABhACAGGgAAtAwAIIMFAgAAAAHIBQEAAAABzQVAAAAAAfwFAAEAAAH9BQIAAAABAT0AAIoEACAFgwUCAAAAAcgFAQAAAAHNBUAAAAAB_AUAAQAAAf0FAgAAAAEBPQAAjAQAMAE9AACMBAAwBhoAALMMACCDBQIAiAoAIcgFAQCHCgAhzQVAAJ0KACH8BQABgwsAIf0FAgCICgAhAgAAAGEAID0AAI8EACAFgwUCAIgKACHIBQEAhwoAIc0FQACdCgAh_AUAAYMLACH9BQIAiAoAIQIAAABfACA9AACRBAAgAgAAAF8AID0AAJEEACADAAAAYQAgRAAAigQAIEUAAI8EACABAAAAYQAgAQAAAF8AIAUOAACuDAAgSgAArwwAIEsAALIMACBMAACxDAAgTQAAsAwAIAiABQAA_AgAMIEFAACYBAAQggUAAPwIADCDBQIAnQgAIcgFAQCeCAAhzQVAAK0IACH8BQAB3QgAIf0FAgCdCAAhAwAAAF8AIAEAAJcEADBJAACYBAAgAwAAAF8AIAEAAGAAMAIAAGEAIAEAAAAcACABAAAAHAAgAwAAABoAIAEAABsAMAIAABwAIAMAAAAaACABAAAbADACAAAcACADAAAAGgAgAQAAGwAwAgAAHAAgGQQAAKgMACAJAACnDAAgCgAAqQwAIAsAAKoMACANAACrDAAgEAAArAwAIBMAAK0MACCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAAD7BQLxBQIAAAAB8gUCAAAAAfMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH3BRAAAAAB-AUQAAAAAfkFEAAAAAH7BQEAAAABAT0AAKAEACASgwUCAAAAAYQFAgAAAAGUBQIAAAABlwUBAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAA-wUC8QUCAAAAAfIFAgAAAAHzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB9wUQAAAAAfgFEAAAAAH5BRAAAAAB-wUBAAAAAQE9AACiBAAwAT0AAKIEADABAAAAEAAgAQAAAA0AIAEAAAAXACAZBAAA8gsAIAkAAPELACAKAADzCwAgCwAA9AsAIA0AAPULACAQAAD2CwAgEwAA9wsAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8QUCAPkKACHyBQIA-QoAIfMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh9wUQAO8LACH4BRAAkQoAIfkFEACRCgAh-wUBAJwKACECAAAAHAAgPQAAqAQAIBKDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhowVAAJ0KACGkBQIAiAoAIdMFAADwC_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_BQAQggUAAOEIADCDBQIAnQgAIYQFAgCdCAAhmAVAAK0IACGZBQEAnggAIaMFQACtCAAhpAUCANAIACHdBQIA0AgAIQMAAABwACABAAC-BQAwSQAAvwUAIAMAAABwACABAABxADACAAByACABAAAAeQAgAQAAAHkAIAMAAAB3ACABAAB4ADACAAB5ACADAAAAdwAgAQAAeAAwAgAAeQAgAwAAAHcAIAEAAHgAMAIAAHkAIA4DAACaCwAgIgAAmwsAICQAAJwLACCDBQIAAAABhAUCAAAAAZgFQAAAAAGZBQEAAAABowVAAAAAAcoFAQAAAAHLBQQAAAAB2QUCAAAAAdoFIAAAAAHbBQIAAAAB3AUBAAAAAQE9AADHBQAgC4MFAgAAAAGEBQIAAAABmAVAAAAAAZkFAQAAAAGjBUAAAAABygUBAAAAAcsFBAAAAAHZBQIAAAAB2gUgAAAAAdsFAgAAAAHcBQEAAAABAT0AAMkFADABPQAAyQUAMAEAAABwACAOAwAAiwsAICIAAIwLACAkAACNCwAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhmQUBAIcKACGjBUAAnQoAIcoFAQCcCgAhywUEAO4KACHZBQIA-QoAIdoFIAC6CgAh2wUCAPkKACHcBQEAnAoAIQIAAAB5ACA9AADNBQAgC4MFAgCICgAhhAUCAIgKACGYBUAAnQoAIZkFAQCHCgAhowVAAJ0KACHKBQEAnAoAIcsFBADuCgAh2QUCAPkKACHaBSAAugoAIdsFAgD5CgAh3AUBAJwKACECAAAAdwAgPQAAzwUAIAIAAAB3ACA9AADPBQAgAQAAAHAAIAMAAAB5ACBEAADHBQAgRQAAzQUAIAEAAAB5ACABAAAAdwAgCQ4AAIYLACBKAACHCwAgSwAAigsAIEwAAIkLACBNAACICwAgygUAAJYKACDZBQAAlgoAINsFAACWCgAg3AUAAJYKACAOgAUAAOAIADCBBQAA1wUAEIIFAADgCAAwgwUCAJ0IACGEBQIAnQgAIZgFQACtCAAhmQUBAJ4IACGjBUAArQgAIcoFAQCsCAAhywUEAMwIACHZBQIA0AgAIdoFIAC1CAAh2wUCANAIACHcBQEArAgAIQMAAAB3ACABAADWBQAwSQAA1wUAIAMAAAB3ACABAAB4ADACAAB5ACABAAAAfgAgAQAAAH4AIAMAAAB8ACABAAB9ADACAAB-ACADAAAAfAAgAQAAfQAwAgAAfgAgAwAAAHwAIAEAAH0AMAIAAH4AIAYjAACFCwAgPQABAAABgwUCAAAAAZgFQAAAAAHXBQIAAAAB2AUCAAAAAQE9AADfBQAgBT0AAQAAAYMFAgAAAAGYBUAAAAAB1wUCAAAAAdgFAgAAAAEBPQAA4QUAMAE9AADhBQAwBiMAAIQLACA9AAGDCwAhgwUCAIgKACGYBUAAnQoAIdcFAgCICgAh2AUCAIgKACECAAAAfgAgPQAA5AUAIAU9AAGDCwAhgwUCAIgKACGYBUAAnQoAIdcFAgCICgAh2AUCAIgKACECAAAAfAAgPQAA5gUAIAIAAAB8ACA9AADmBQAgAwAAAH4AIEQAAN8FACBFAADkBQAgAQAAAH4AIAEAAAB8ACAFDgAA_goAIEoAAP8KACBLAACCCwAgTAAAgQsAIE0AAIALACAIPQAB3QgAIYAFAADcCAAwgQUAAO0FABCCBQAA3AgAMIMFAgCdCAAhmAVAAK0IACHXBQIAnQgAIdgFAgCdCAAhAwAAAHwAIAEAAOwFADBJAADtBQAgAwAAAHwAIAEAAH0AMAIAAH4AIAEAAABnACABAAAAZwAgAwAAAGUAIAEAAGYAMAIAAGcAIAMAAABlACABAABmADACAABnACADAAAAZQAgAQAAZgAwAgAAZwAgDAMAAP0KACAEAAD8CgAggwUCAAAAAYQFAgAAAAGYBUAAAAABpAUCAAAAAc8FAAAAzwUC0QUAAADRBQLTBQAAANMFAtQFAQAAAAHVBQIAAAAB1gUBAAAAAQE9AAD1BQAgCoMFAgAAAAGEBQIAAAABmAVAAAAAAaQFAgAAAAHPBQAAAM8FAtEFAAAA0QUC0wUAAADTBQLUBQEAAAAB1QUCAAAAAdYFAQAAAAEBPQAA9wUAMAE9AAD3BQAwAQAAAA0AIAwDAAD7CgAgBAAA-goAIIMFAgCICgAhhAUCAPkKACGYBUAAnQoAIaQFAgCICgAhzwUAAPYKzwUi0QUAAPcK0QUi0wUAAPgK0wUi1AUBAJwKACHVBQIA-QoAIdYFAQCcCgAhAgAAAGcAID0AAPsFACAKgwUCAIgKACGEBQIA-QoAIZgFQACdCgAhpAUCAIgKACHPBQAA9grPBSLRBQAA9wrRBSLTBQAA-ArTBSLUBQEAnAoAIdUFAgD5CgAh1gUBAJwKACECAAAAZQAgPQAA_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_BQEApQgAIcAFAQClCAAhwQUgAMUIACHCBSAAxQgAIcMFIADFCAAhAQAAALYGACABAAAAtgYAIAEDAACLCgAgAwAAAK0BACABAAC5BgAwAgAAtgYAIAMAAACtAQAgAQAAuQYAMAIAALYGACADAAAArQEAIAEAALkGADACAAC2BgAgEAMAAOEKACCDBQIAAAABhAUCAAAAAbcFAQAAAAG4BSAAAAABuQUBAAAAAboFIAAAAAG7BQEAAAABvAUgAAAAAb0FAQAAAAG-BQEAAAABvwUBAAAAAcAFAQAAAAHBBSAAAAABwgUgAAAAAcMFIAAAAAEBPQAAvQYAIA-DBQIAAAABhAUCAAAAAbcFAQAAAAG4BSAAAAABuQUBAAAAAboFIAAAAAG7BQEAAAABvAUgAAAAAb0FAQAAAAG-BQEAAAABvwUBAAAAAcAFAQAAAAHBBSAAAAABwgUgAAAAAcMFIAAAAAEBPQAAvwYAMAE9AAC_BgAwEAMAAOAKACCDBQIAiAoAIYQFAgCICgAhtwUBAIcKACG4BSAAugoAIbkFAQCHCgAhugUgALoKACG7BQEAhwoAIbwFIAC6CgAhvQUBAIcKACG-BQEAhwoAIb8FAQCHCgAhwAUBAIcKACHBBSAAugoAIcIFIAC6CgAhwwUgALoKACECAAAAtgYAID0AAMIGACAPgwUCAIgKACGEBQIAiAoAIbcFAQCHCgAhuAUgALoKACG5BQEAhwoAIboFIAC6CgAhuwUBAIcKACG8BSAAugoAIb0FAQCHCgAhvgUBAIcKACG_BQEAhwoAIcAFAQCHCgAhwQUgALoKACHCBSAAugoAIcMFIAC6CgAhAgAAAK0BACA9AADEBgAgAgAAAK0BACA9AADEBgAgAwAAALYGACBEAAC9BgAgRQAAwgYAIAEAAAC2BgAgAQAAAK0BACAFDgAA2woAIEoAANwKACBLAADfCgAgTAAA3goAIE0AAN0KACASgAUAAMMIADCBBQAAywYAEIIFAADDCAAwgwUCAJ0IACGEBQIAnQgAIbcFAQCeCAAhuAUgALUIACG5BQEAnggAIboFIAC1CAAhuwUBAJ4IACG8BSAAtQgAIb0FAQCeCAAhvgUBAJ4IACG_BQEAnggAIcAFAQCeCAAhwQUgALUIACHCBSAAtQgAIcMFIAC1CAAhAwAAAK0BACABAADKBgAwSQAAywYAIAMAAACtAQAgAQAAuQYAMAIAALYGACAHAwAApggAID0AALwIACCABQAAwggAMIEFAACvAQAQggUAAMIIADCDBQIAAAABhAUCAAAAAQEAAADOBgAgAQAAAM4GACABAwAAiwoAIAMAAACvAQAgAQAA0QYAMAIAAM4GACADAAAArwEAIAEAANEGADACAADOBgAgAwAAAK8BACABAADRBgAwAgAAzgYAIAQDAADaCgAgPYAAAAABgwUCAAAAAYQFAgAAAAEBPQAA1QYAIAM9gAAAAAGDBQIAAAABhAUCAAAAAQE9AADXBgAwAT0AANcGADAEAwAA2QoAID2AAAAAAYMFAgCICgAhhAUCAIgKACECAAAAzgYAID0AANoGACADPYAAAAABgwUCAIgKACGEBQIAiAoAIQIAAACvAQAgPQAA3AYAIAIAAACvAQAgPQAA3AYAIAMAAADOBgAgRAAA1QYAIEUAANoGACABAAAAzgYAIAEAAACvAQAgBQ4AANQKACBKAADVCgAgSwAA2AoAIEwAANcKACBNAADWCgAgBj0AALkIACCABQAAwQgAMIEFAADjBgAQggUAAMEIADCDBQIAnQgAIYQFAgCdCAAhAwAAAK8BACABAADiBgAwSQAA4wYAIAMAAACvAQAgAQAA0QYAMAIAAM4GACAQAwAApggAIIAFAAC_CAAwgQUAALEBABCCBQAAvwgAMIMFAgAAAAGEBQIAAAABrQUBAMAIACGuBQEAwAgAIa8FAQDACAAhsAUBAMAIACGxBQEAwAgAIbIFAQDACAAhswUBAMAIACG0BQEAwAgAIbUFAQDACAAhtgUBAMAIACEBAAAA5gYAIAEAAADmBgAgCwMAAIsKACCtBQAAlgoAIK4FAACWCgAgrwUAAJYKACCwBQAAlgoAILEFAACWCgAgsgUAAJYKACCzBQAAlgoAILQFAACWCgAgtQUAAJYKACC2BQAAlgoAIAMAAACxAQAgAQAA6QYAMAIAAOYGACADAAAAsQEAIAEAAOkGADACAADmBgAgAwAAALEBACABAADpBgAwAgAA5gYAIA0DAADTCgAggwUCAAAAAYQFAgAAAAGtBQEAAAABrgUBAAAAAa8FAQAAAAGwBQEAAAABsQUBAAAAAbIFAQAAAAGzBQEAAAABtAUBAAAAAbUFAQAAAAG2BQEAAAABAT0AAO0GACAMgwUCAAAAAYQFAgAAAAGtBQEAAAABrgUBAAAAAa8FAQAAAAGwBQEAAAABsQUBAAAAAbIFAQAAAAGzBQEAAAABtAUBAAAAAbUFAQAAAAG2BQEAAAABAT0AAO8GADABPQAA7wYAMA0DAADSCgAggwUCAIgKACGEBQIAiAoAIa0FAQCcCgAhrgUBAJwKACGvBQEAnAoAIbAFAQCcCgAhsQUBAJwKACGyBQEAnAoAIbMFAQCcCgAhtAUBAJwKACG1BQEAnAoAIbYFAQCcCgAhAgAAAOYGACA9AADyBgAgDIMFAgCICgAhhAUCAIgKACGtBQEAnAoAIa4FAQCcCgAhrwUBAJwKACGwBQEAnAoAIbEFAQCcCgAhsgUBAJwKACGzBQEAnAoAIbQFAQCcCgAhtQUBAJwKACG2BQEAnAoAIQIAAACxAQAgPQAA9AYAIAIAAACxAQAgPQAA9AYAIAMAAADmBgAgRAAA7QYAIEUAAPIGACABAAAA5gYAIAEAAACxAQAgDw4AAM0KACBKAADOCgAgSwAA0QoAIEwAANAKACBNAADPCgAgrQUAAJYKACCuBQAAlgoAIK8FAACWCgAgsAUAAJYKACCxBQAAlgoAILIFAACWCgAgswUAAJYKACC0BQAAlgoAILUFAACWCgAgtgUAAJYKACAPgAUAAL4IADCBBQAA-wYAEIIFAAC-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_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_BwAQggUAALQIADCDBQIAnQgAIYQFAgCdCAAhowVAAK0IACGkBQIAnQgAIaUFAQCeCAAhpgUgALUIACEFDgAAoAgAIEwAALcIACBNAAC3CAAghgUgAAAAAZAFIAC2CAAhBQ4AAKAIACBMAAC3CAAgTQAAtwgAIIYFIAAAAAGQBSAAtggAIQKGBSAAAAABkAUgALcIACEGPQAAuQgAIIAFAAC4CAAwgQUAAKkHABCCBQAAuAgAMIMFAgCdCAAhhAUCAJ0IACEPDgAAoAgAIEwAALoIACBNAAC6CAAghgWAAAAAAYkFgAAAAAGKBYAAAAABiwWAAAAAAYwFgAAAAAGQBYAAAAABpwUBAAAAAagFAQAAAAGpBQEAAAABqgWAAAAAAasFgAAAAAGsBYAAAAABDIYFgAAAAAGJBYAAAAABigWAAAAAAYsFgAAAAAGMBYAAAAABkAWAAAAAAacFAQAAAAGoBQEAAAABqQUBAAAAAaoFgAAAAAGrBYAAAAABrAWAAAAAAQcDAACmCAAgPQAAvAgAIIAFAAC7CAAwgQUAALMBABCCBQAAuwgAMIMFAgDnCAAhhAUCAOcIACEMhgWAAAAAAYkFgAAAAAGKBYAAAAABiwWAAAAAAYwFgAAAAAGQBYAAAAABpwUBAAAAAagFAQAAAAGpBQEAAAABqgWAAAAAAasFgAAAAAGsBYAAAAABCIAFAAC9CAAwgQUAAJEHABCCBQAAvQgAMIMFAgCdCAAhhAUCAJ0IACGYBUAArQgAIZkFAQCeCAAhrQUBAKwIACEPgAUAAL4IADCBBQAA-wYAEIIFAAC-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-wUIkAUAAPgI-wUiBw4AAKAIACBMAAD5CAAgTQAA-QgAIIYFAAAA-wUChwUAAAD7BQiIBQAAAPsFCJAFAAD4CPsFIgSGBQAAAPsFAocFAAAA-wUIiAUAAAD7BQiQBQAA-Qj7BSINDgAAsQgAIEoAAPsIACBLAAD7CAAgTAAA-wgAIE0AAPsIACCGBRAAAAABhwUQAAAABYgFEAAAAAWJBRAAAAABigUQAAAAAYsFEAAAAAGMBRAAAAABkAUQAPoIACEIhgUQAAAAAYcFEAAAAAWIBRAAAAAFiQUQAAAAAYoFEAAAAAGLBRAAAAABjAUQAAAAAZAFEAD7CAAhCIAFAAD8CAAwgQUAAJgEABCCBQAA_AgAMIMFAgCdCAAhyAUBAJ4IACHNBUAArQgAIfwFAAHdCAAh_QUCAJ0IACEIgAUAAP0IADCBBQAAggQAEIIFAAD9CAAwgwUCAJ0IACGYBUAArQgAIaQFAgCdCAAh_gUBAJ4IACGABgAA_giABiIHDgAAoAgAIEwAAIAJACBNAACACQAghgUAAACABgKHBQAAAIAGCIgFAAAAgAYIkAUAAP8IgAYiBw4AAKAIACBMAACACQAgTQAAgAkAIIYFAAAAgAYChwUAAACABgiIBQAAAIAGCJAFAAD_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_CQAgHQAA8QkAIB4AAIAKACAfAACBCgAgJQAAugkAIIAFAAD-CQAwgQUAAAMAEIIFAAD-CQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhowVAAOgIACGxBQEAwAgAIbQFAQDACAAhtgUBAMAIACHTBQAA_AmxBiKVBkAA6QgAIZsGAQDACAAhqQYBAKUIACGyBgEApQgAIbMGAQClCAAhtAYBAKUIACG1BgEAwAgAIbYGAQDACAAhtwYBAMAIACG4BgEAwAgAIbkGAQDACAAhugYBAMAIACG7BgEAwAgAIbwGAQDACAAhvQYBAMAIACHNBgAAAwAgzgYAAAMAIAkDAACmCAAggAUAAJ8JADCBBQAAtQEAEIIFAACfCQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhmQUBAKUIACGtBQEAwAgAIQoDAACmCAAggAUAAKAJADCBBQAApAEAEIIFAACgCQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAh5AUAAKEJ5AUi5QUBAKUIACHmBSAAxQgAIQSGBQAAAOQFAocFAAAA5AUIiAUAAADkBQiQBQAA7gjkBSIJAwAApggAIIAFAACiCQAwgQUAAKABABCCBQAAogkAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIecFAQClCAAh6AUgAMUIACEHAwAApggAIIAFAACjCQAwgQUAAJwBABCCBQAAowkAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIQoDAACmCAAggAUAAKQJADCBBQAAlwEAEIIFAACkCQAwgwUCAOcIACGEBQIA5wgAIYEGAQClCAAhggYBAKUIACGDBgEApQgAIYQGAQClCAAhAoQFAgAAAAGFBgEAAAABCQMAAKYIACCABQAApgkAMIEFAACTAQAQggUAAKYJADCDBQIA5wgAIYQFAgDnCAAhhQYBAKUIACGGBgEApQgAIYcGAQClCAAhAoQFAgAAAAGmBgEAAAABDwMAAKYIACAFAACtCQAgCAAAqQkAIBQAAKoJACAVAACrCQAgFgAArAkAIIAFAACoCQAwgQUAABcAEIIFAACoCQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhogUCAOcIACGmBgEApQgAIacGAQClCAAhA8cGAAAQACDIBgAAEAAgyQYAABAAIAPHBgAAGgAgyAYAABoAIMkGAAAaACADxwYAADYAIMgGAAA2ACDJBgAANgAgA8cGAAA6ACDIBgAAOgAgyQYAADoAIAPHBgAABwAgyAYAAAcAIMkGAAAHACANAwAArwkAIAUAAK0JACAIAACpCQAggAUAAK4JADCBBQAACwAQggUAAK4JADCDBQIA5wgAIYQFAgDnCAAhmAVAAOgIACGZBQEApQgAIbEFAQDACAAhqAYBAKUIACGpBgEAwAgAISYFAACtCQAgBwAA6gkAIAgAAKkJACAdAADxCQAgJQAAugkAICYAAOkJACAnAADrCQAgKAAA7AkAICkAAO0JACAqAACqCQAgKwAA7gkAICwAAO8JACAtAADwCQAgLgAAvAkAIC8AAPIJACAwAADzCQAgMQAA9AkAIDIAAPUJACAzAAD2CQAgNAAA9wkAIDUAAPgJACA2AAD5CQAgNwAA-gkAIIAFAADoCQAwgQUAAA0AEIIFAADoCQAwgwUCAOcIACGGBgEApQgAIYcGAQClCAAhvgYgAMUIACG_BgIA5wgAIcAGIADFCAAhwQYCAOcIACHCBiAAxQgAIcMGAgDnCAAhxAYCAOcIACHNBgAADQAgzgYAAA0AIALXBQIAAAAB2AUCAAAAAQkjAACzCQAgPQABsgkAIYAFAACxCQAwgQUAAHwAEIIFAACxCQAwgwUCAOcIACGYBUAA6AgAIdcFAgDnCAAh2AUCAOcIACEEhgUAAQAAAYcFAAEAAASIBQABAAAEkAUAAd8IACETAwAApggAICIAALYJACAkAAC3CQAggAUAALQJADCBBQAAdwAQggUAALQJADCDBQIA5wgAIYQFAgDnCAAhmAVAAOgIACGZBQEApQgAIaMFQADoCAAhygUBAMAIACHLBQQAtQkAIdkFAgDqCAAh2gUgAMUIACHbBQIA6ggAIdwFAQDACAAhzQYAAHcAIM4GAAB3ACARAwAApggAICIAALYJACAkAAC3CQAggAUAALQJADCBBQAAdwAQggUAALQJADCDBQIA5wgAIYQFAgDnCAAhmAVAAOgIACGZBQEApQgAIaMFQADoCAAhygUBAMAIACHLBQQAtQkAIdkFAgDqCAAh2gUgAMUIACHbBQIA6ggAIdwFAQDACAAhCIYFBAAAAAGHBQQAAAAEiAUEAAAABIkFBAAAAAGKBQQAAAABiwUEAAAAAYwFBAAAAAGQBQQAzggAIREDAACmCAAgBAAAuwkAIBkAALwJACAgAAC2CQAgIQAAugkAIIAFAAC5CQAwgQUAAHAAEIIFAAC5CQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhmQUBAKUIACGjBUAA6AgAIaQFAgDqCAAh3QUCAOoIACHNBgAAcAAgzgYAAHAAIAPHBgAAfAAgyAYAAHwAIMkGAAB8ACADhAUCAAAAAZkFAQAAAAHdBQIAAAABDwMAAKYIACAEAAC7CQAgGQAAvAkAICAAALYJACAhAAC6CQAggAUAALkJADCBBQAAcAAQggUAALkJADCDBQIA5wgAIYQFAgDnCAAhmAVAAOgIACGZBQEApQgAIaMFQADoCAAhpAUCAOoIACHdBQIA6ggAIQPHBgAAcAAgyAYAAHAAIMkGAABwACAmAwAApggAIAUAAK0JACAIAACpCQAgDAAAqgkAIBgAAKwJACAcAAD_CQAgHQAA8QkAIB4AAIAKACAfAACBCgAgJQAAugkAIIAFAAD-CQAwgQUAAAMAEIIFAAD-CQAwgwUCAOcIACGEBQIA5wgAIZgFQADoCAAhowVAAOgIACGxBQEAwAgAIbQFAQDACAAhtgUBAMAIACHTBQAA_AmxBiKVBkAA6QgAIZsGAQDACAAhqQYBAKUIACGyBgEApQgAIbMGAQClCAAhtAYBAKUIACG1BgEAwAgAIbYGAQDACAAhtwYBAMAIACG4BgEAwAgAIbkGAQDACAAhugYBAMAIACG7BgEAwAgAIbwGAQDACAAhvQYBAMAIACHNBgAAAwAgzgYAAAMAIAPHBgAAdwAgyAYAAHcAIMkGAAB3ACANBAAAngkAIIAFAAC9CQAwgQUAAGoAEIIFAAC9CQAwgwUCAOcIACGjBUAA6AgAIaQFAgDnCAAhyAUBAKUIACHJBQEApQgAIcoFAQClCAAhywUEALUJACHMBQEApQgAIc0FQADoCAAhDwMAAK8JACAEAACeCQAggAUAAL4JADCBBQAAZQAQggUAAL4JADCDBQIA5wgAIYQFAgDqCAAhmAVAAOgIACGkBQIA5wgAIc8FAAC_Cc8FItEFAADACdEFItMFAADBCdMFItQFAQDACAAh1QUCAOoIACHWBQEAwAgAIQSGBQAAAM8FAocFAAAAzwUIiAUAAADPBQiQBQAA2QjPBSIEhgUAAADRBQKHBQAAANEFCIgFAAAA0QUIkAUAANcI0QUiBIYFAAAA0wUChwUAAADTBQiIBQAAANMFCJAFAADVCNMFIgkaAADDCQAggAUAAMIJADCBBQAAXwAQggUAAMIJADCDBQIA5wgAIcgFAQClCAAhzQVAAOgIACH8BQABsgkAIf0FAgDnCAAhDAQAAJ4JACAbAADGCQAggAUAAMQJADCBBQAAWwAQggUAAMQJADCDBQIA5wgAIZgFQADoCAAhpAUCAOcIACH-BQEApQgAIYAGAADFCYAGIs0GAABbACDOBgAAWwAgCgQAAJ4JACAbAADGCQAggAUAAMQJADCBBQAAWwAQggUAAMQJADCDBQIA5wgAIZgFQADoCAAhpAUCAOcIACH-BQEApQgAIYAGAADFCYAGIgSGBQAAAIAGAocFAAAAgAYIiAUAAACABgiQBQAAgAmABiIDxwYAAF8AIMgGAABfACDJBgAAXwAgCQYAAMgJACCABQAAxwkAMIEFAABSABCCBQAAxwkAMIMFAgDnCAAhyAUBAKUIACHKBQEAwAgAIcwFAQDACAAhkQYCAOcIACEdAwAApggAIAQAAJ4JACAHAADmCQAgCAAAqQkAIAsAAM4JACAYAACsCQAgGQAA_QkAIIAFAAD7CQAwgQUAAAcAEIIFAAD7CQAwgwUCAOcIACGEBQIA5wgAIZQFAgDqCAAhlwUBAMAIACGYBUAA6AgAIaQFAgDnCAAh0wUBAKUIACHkBQEApQgAIf4FAQClCAAhkgYCAOcIACGqBkAA6AgAIasGAQClCAAhrAYBAKUIACGtBiAAxQgAIa4GAQDACAAhrwYgAMUIACGxBgAA_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-wUBAMAIACEEhgUAAAD7BQKHBQAAAPsFCIgFAAAA-wUIkAUAAPkI-wUiA8cGAAApACDIBgAAKQAgyQYAACkAIB4DAACvCQAgBAAAngkAIAYAAOUJACAHAADmCQAgCwAAzgkAIAwAANoJACAQAADhCQAgFwAA5wkAIIAFAADiCQAwgQUAABAAEIIFAADiCQAwgwUCAOcIACGEBQIA5wgAIZQFAgDqCAAhmAVAAOgIACGjBUAA6AgAIaQFAgDnCAAh0wUAAOQJnQYikQYCAOoIACGSBgIA5wgAIZMGAQClCAAhlAYBAKUIACGVBkAA6AgAIZYGAQClCAAhmAYAAOMJmAYimQYAAMoIACCaBkAA6AgAIZsGAQClCAAhnQYBAMAIACGeBgEAwAgAIQSGBQAAAJgGAocFAAAAmAYIiAUAAACYBgiQBQAAjgmYBiIEhgUAAACdBgKHBQAAAJ0GCIgFAAAAnQYIkAUAAIwJnQYiHQMAAKYIACAEAACeCQAgBwAA5gkAIAgAAKkJACALAADOCQAgGAAArAkAIBkAAP0JACCABQAA-wkAMIEFAAAHABCCBQAA-wkAMIMFAgDnCAAhhAUCAOcIACGUBQIA6ggAIZcFAQDACAAhmAVAAOgIACGkBQIA5wgAIdMFAQClCAAh5AUBAKUIACH-BQEApQgAIZIGAgDnCAAhqgZAAOgIACGrBgEApQgAIawGAQClCAAhrQYgAMUIACGuBgEAwAgAIa8GIADFCAAhsQYAAPwJsQYizQYAAAcAIM4GAAAHACAPAwAArwkAIAUAAK0JACAIAACpCQAggAUAAK4JADCBBQAACwAQggUAAK4JADCDBQIA5wgAIYQFAgDnCAAhmAVAAOgIACGZBQEApQgAIbEFAQDACAAhqAYBAKUIACGpBgEAwAgAIc0GAAALACDOBgAACwAgA8cGAABGACDIBgAARgAgyQYAAEYAICQFAACtCQAgBwAA6gkAIAgAAKkJACAdAADxCQAgJQAAugkAICYAAOkJACAnAADrCQAgKAAA7AkAICkAAO0JACAqAACqCQAgKwAA7gkAICwAAO8JACAtAADwCQAgLgAAvAkAIC8AAPIJACAwAADzCQAgMQAA9AkAIDIAAPUJACAzAAD2CQAgNAAA9wkAIDUAAPgJACA2AAD5CQAgNwAA-gkAIIAFAADoCQAwgQUAAA0AEIIFAADoCQAwgwUCAOcIACGGBgEApQgAIYcGAQClCAAhvgYgAMUIACG_BgIA5wgAIcAGIADFCAAhwQYCAOcIACHCBiAAxQgAIcMGAgDnCAAhxAYCAOcIACEDxwYAAAMAIMgGAAADACDJBgAAAwAgA8cGAAALACDIBgAACwAgyQYAAAsAIAPHBgAAFwAgyAYAABcAIMkGAAAXACADxwYAAJMBACDIBgAAkwEAIMkGAACTAQAgA8cGAACXAQAgyAYAAJcBACDJBgAAlwEAIAPHBgAAnAEAIMgGAACcAQAgyQYAAJwBACADxwYAAKABACDIBgAAoAEAIMkGAACgAQAgA8cGAACkAQAgyAYAAKQBACDJBgAApAEAIAPHBgAAZQAgyAYAAGUAIMkGAABlACANAwAApggAIIAFAADJCAAwgQUAAKsBABCCBQAAyQgAMIMFAgDnCAAhhAUCAOcIACGtBQEApQgAIcQFAQClCAAhxQUBAKUIACHGBQEAwAgAIccFAADKCAAgzQYAAKsBACDOBgAAqwEAIBUDAACmCAAggAUAAMQIADCBBQAArQEAEIIFAADECAAwgwUCAOcIACGEBQIA5wgAIbcFAQClCAAhuAUgAMUIACG5BQEApQgAIboFIADFCAAhuwUBAKUIACG8BSAAxQgAIb0FAQClCAAhvgUBAKUIACG_BQEApQgAIcAFAQClCAAhwQUgAMUIACHCBSAAxQgAIcMFIADFCAAhzQYAAK0BACDOBgAArQEAIAkDAACmCAAgPQAAvAgAIIAFAADCCAAwgQUAAK8BABCCBQAAwggAMIMFAgDnCAAhhAUCAOcIACHNBgAArwEAIM4GAACvAQAgEgMAAKYIACCABQAAvwgAMIEFAACxAQAQggUAAL8IADCDBQIA5wgAIYQFAgDnCAAhrQUBAMAIACGuBQEAwAgAIa8FAQDACAAhsAUBAMAIACGxBQEAwAgAIbIFAQDACAAhswUBAMAIACG0BQEAwAgAIbUFAQDACAAhtgUBAMAIACHNBgAAsQEAIM4GAACxAQAgCQMAAKYIACA9AAC8CAAggAUAALsIADCBBQAAswEAEIIFAAC7CAAwgwUCAOcIACGEBQIA5wgAIc0GAACzAQAgzgYAALMBACADxwYAALUBACDIBgAAtQEAIMkGAAC1AQAgA8cGAABuACDIBgAAbgAgyQYAAG4AIAPHBgAAvAEAIMgGAAC8AQAgyQYAALwBACAJAwAApggAIIAFAACkCAAwgQUAAMABABCCBQAApAgAMIMFAgDnCAAhhAUCAOcIACGFBQEApQgAIc0GAADAAQAgzgYAAMABACAbAwAApggAIAQAAJ4JACAHAADmCQAgCAAAqQkAIAsAAM4JACAYAACsCQAgGQAA_QkAIIAFAAD7CQAwgQUAAAcAEIIFAAD7CQAwgwUCAOcIACGEBQIA5wgAIZQFAgDqCAAhlwUBAMAIACGYBUAA6AgAIaQFAgDnCAAh0wUBAKUIACHkBQEApQgAIf4FAQClCAAhkgYCAOcIACGqBkAA6AgAIasGAQClCAAhrAYBAKUIACGtBiAAxQgAIa4GAQDACAAhrwYgAMUIACGxBgAA_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_xMAINUGAAABACADRAAA_RMAIM8GAAD-EwAg1QYAAAEAIAAAAAAABUQAAPgTACBFAAD7EwAgzwYAAPkTACDQBgAA-hMAINUGAAABACADRAAA-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-QoAIQoDAACkCwAgBAAApQsAIBkAAKYLACAhAACjCwAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhmQUBAIcKACGjBUAAnQoAIaQFAgD5CgAhCgMAAMALACAEAADBCwAgGQAAwgsAICEAAL8LACCDBQIAAAABhAUCAAAAAZgFQAAAAAGZBQEAAAABowVAAAAAAaQFAgAAAAEERAAAswsAMM8GAAC0CwAw0QYAALYLACDVBgAAtwsAMANEAAC9EwAgzwYAAL4TACDVBgAAAQAgA0QAALsTACDPBgAAvBMAINUGAAAFACAERAAApwsAMM8GAACoCwAw0QYAAKoLACDVBgAAqwsAMANEAAC5EwAgzwYAALoTACDVBgAAcgAgAAAAAAAB0gZAAAAAAQAAAAAAAdIGAAAA5AUCBUQAALQTACBFAAC3EwAgzwYAALUTACDQBgAAthMAINUGAAABACADRAAAtBMAIM8GAAC1EwAg1QYAAAEAIAAAAAAABUQAAK8TACBFAACyEwAgzwYAALATACDQBgAAsRMAINUGAAABACADRAAArxMAIM8GAACwEwAg1QYAAAEAIAAAAAAABUQAAKoTACBFAACtEwAgzwYAAKsTACDQBgAArBMAINUGAAABACADRAAAqhMAIM8GAACrEwAg1QYAAAEAIAAAAAAAAdIGAAAA7gUCBUQAAKITACBFAACoEwAgzwYAAKMTACDQBgAApxMAINUGAAAcACAFRAAAoBMAIEUAAKUTACDPBgAAoRMAINAGAACkEwAg1QYAACsAIANEAACiEwAgzwYAAKMTACDVBgAAHAAgA0QAAKATACDPBgAAoRMAINUGAAArACAAAAAAAAXSBhAAAAAB2AYQAAAAAdkGEAAAAAHaBhAAAAAB2wYQAAAAAQHSBgAAAPsFAgdEAACJEwAgRQAAnhMAIM8GAACKEwAg0AYAAJ0TACDTBgAAEAAg1AYAABAAINUGAAASACAFRAAAhxMAIEUAAJsTACDPBgAAiBMAINAGAACaEwAg1QYAAAUAIAdEAACFEwAgRQAAmBMAIM8GAACGEwAg0AYAAJcTACDTBgAADQAg1AYAAA0AINUGAAABACAHRAAAgxMAIEUAAJUTACDPBgAAhBMAINAGAACUEwAg0wYAABcAINQGAAAXACDVBgAAkAEAIAtEAACeDAAwRQAAogwAMM8GAACfDAAw0AYAAKAMADDRBgAAoQwAINIGAACTDAAw0wYAAJMMADDUBgAAkwwAMNUGAACTDAAw1gYAAKMMADDXBgAAlgwAMAtEAACBDAAwRQAAhgwAMM8GAACCDAAw0AYAAIMMADDRBgAAhAwAINIGAACFDAAw0wYAAIUMADDUBgAAhQwAMNUGAACFDAAw1gYAAIcMADDXBgAAiAwAMAtEAAD4CwAwRQAA_AsAMM8GAAD5CwAw0AYAAPoLADDRBgAA-wsAINIGAACkCgAw0wYAAKQKADDUBgAApAoAMNUGAACkCgAw1gYAAP0LADDXBgAApwoAMAQSAACUCgAggwUCAAAAAZEFAgAAAAGTBRAAAAABAgAAAC8AIEQAAIAMACADAAAALwAgRAAAgAwAIEUAAP8LACABPQAAkxMAMAIAAAAvACA9AAD_CwAgAgAAAKgKACA9AAD-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-QsAMNEGAAD7CwAg1QYAAKQKADAAAAAAAAVEAAD-EgAgRQAAgRMAIM8GAAD_EgAg0AYAAIATACDVBgAAXQAgA0QAAP4SACDPBgAA_xIAINUGAABdACAAAAAAAAHSBgAAAIAGAgVEAAD4EgAgRQAA_BIAIM8GAAD5EgAg0AYAAPsSACDVBgAABQAgC0QAAL0MADBFAADCDAAwzwYAAL4MADDQBgAAvwwAMNEGAADADAAg0gYAAMEMADDTBgAAwQwAMNQGAADBDAAw1QYAAMEMADDWBgAAwwwAMNcGAADEDAAwBIMFAgAAAAHIBQEAAAABzQVAAAAAAfwFAAEAAAECAAAAYQAgRAAAyAwAIAMAAABhACBEAADIDAAgRQAAxwwAIAE9AAD6EgAwCRoAAMMJACCABQAAwgkAMIEFAABfABCCBQAAwgkAMIMFAgAAAAHIBQEApQgAIc0FQADoCAAh_AUAAbIJACH9BQIA5wgAIQIAAABhACA9AADHDAAgAgAAAMUMACA9AADGDAAgCIAFAADEDAAwgQUAAMUMABCCBQAAxAwAMIMFAgDnCAAhyAUBAKUIACHNBUAA6AgAIfwFAAGyCQAh_QUCAOcIACEIgAUAAMQMADCBBQAAxQwAEIIFAADEDAAwgwUCAOcIACHIBQEApQgAIc0FQADoCAAh_AUAAbIJACH9BQIA5wgAIQSDBQIAiAoAIcgFAQCHCgAhzQVAAJ0KACH8BQABgwsAIQSDBQIAiAoAIcgFAQCHCgAhzQVAAJ0KACH8BQABgwsAIQSDBQIAAAAByAUBAAAAAc0FQAAAAAH8BQABAAABA0QAAPgSACDPBgAA-RIAINUGAAAFACAERAAAvQwAMM8GAAC-DAAw0QYAAMAMACDVBgAAwQwAMAAAAAAABUQAAPMSACBFAAD2EgAgzwYAAPQSACDQBgAA9RIAINUGAAABACADRAAA8xIAIM8GAAD0EgAg1QYAAAEAIAAAAAAABUQAAO4SACBFAADxEgAgzwYAAO8SACDQBgAA8BIAINUGAAABACADRAAA7hIAIM8GAADvEgAg1QYAAAEAIAAAAAAABUQAAOkSACBFAADsEgAgzwYAAOoSACDQBgAA6xIAINUGAAASACADRAAA6RIAIM8GAADqEgAg1QYAABIAIAAAAAAAB0QAAOQSACBFAADnEgAgzwYAAOUSACDQBgAA5hIAINMGAAAaACDUBgAAGgAg1QYAABwAIANEAADkEgAgzwYAAOUSACDVBgAAHAAgAAAAAAAB0gYAAACYBgIB0gYAAACdBgIFRAAA0RIAIEUAAOISACDPBgAA0hIAINAGAADhEgAg1QYAAAUAIAdEAADPEgAgRQAA3xIAIM8GAADQEgAg0AYAAN4SACDTBgAABwAg1AYAAAcAINUGAAAJACAHRAAAzRIAIEUAANwSACDPBgAAzhIAINAGAADbEgAg0wYAAA0AINQGAAANACDVBgAAAQAgB0QAAMsSACBFAADZEgAgzwYAAMwSACDQBgAA2BIAINMGAAALACDUBgAACwAg1QYAAI0BACAHRAAAyRIAIEUAANYSACDPBgAAyhIAINAGAADVEgAg0wYAABcAINQGAAAXACDVBgAAkAEAIAtEAACHDQAwRQAAiw0AMM8GAACIDQAw0AYAAIkNADDRBgAAig0AINIGAACFDAAw0wYAAIUMADDUBgAAhQwAMNUGAACFDAAw1gYAAIwNADDXBgAAiAwAMAtEAAD7DAAwRQAAgA0AMM8GAAD8DAAw0AYAAP0MADDRBgAA_gwAINIGAAD_DAAw0wYAAP8MADDUBgAA_wwAMNUGAAD_DAAw1gYAAIENADDXBgAAgg0AMAdEAAD2DAAgRQAA-QwAIM8GAAD3DAAg0AYAAPgMACDTBgAAGgAg1AYAABoAINUGAAAcACAXBAAAqAwAIAoAAKkMACALAACqDAAgDQAAqwwAIBAAAKwMACATAACtDAAggwUCAAAAAYQFAgAAAAGUBQIAAAABlwUBAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAA-wUC8gUCAAAAAfMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH3BRAAAAAB-AUQAAAAAfkFEAAAAAH7BQEAAAABAgAAABwAIEQAAPYMACADAAAAGgAgRAAA9gwAIEUAAPoMACAZAAAAGgAgBAAA8gsAIAoAAPMLACALAAD0CwAgDQAA9QsAIBAAAPYLACATAAD3CwAgPQAA-gwAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8gUCAPkKACHzBRAAkQoAIfQFEACRCgAh9QUQAJEKACH2BRAAkQoAIfcFEADvCwAh-AUQAJEKACH5BRAAkQoAIfsFAQCcCgAhFwQAAPILACAKAADzCwAgCwAA9AsAIA0AAPULACAQAAD2CwAgEwAA9wsAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8gUCAPkKACHzBRAAkQoAIfQFEACRCgAh9QUQAJEKACH2BRAAkQoAIfcFEADvCwAh-AUQAJEKACH5BRAAkQoAIfsFAQCcCgAhBIMFAgAAAAHIBQEAAAABygUBAAAAAcwFAQAAAAECAAAASAAgRAAAhg0AIAMAAABIACBEAACGDQAgRQAAhQ0AIAE9AADUEgAwCQkAAMoJACCABQAAyQkAMIEFAABGABCCBQAAyQkAMIMFAgAAAAHIBQEApQgAIcoFAQClCAAhzAUBAMAIACHxBQIA5wgAIQIAAABIACA9AACFDQAgAgAAAIMNACA9AACEDQAgCIAFAACCDQAwgQUAAIMNABCCBQAAgg0AMIMFAgDnCAAhyAUBAKUIACHKBQEApQgAIcwFAQDACAAh8QUCAOcIACEIgAUAAIINADCBBQAAgw0AEIIFAACCDQAwgwUCAOcIACHIBQEApQgAIcoFAQClCAAhzAUBAMAIACHxBQIA5wgAIQSDBQIAiAoAIcgFAQCHCgAhygUBAIcKACHMBQEAnAoAIQSDBQIAiAoAIcgFAQCHCgAhygUBAIcKACHMBQEAnAoAIQSDBQIAAAAByAUBAAAAAcoFAQAAAAHMBQEAAAABEgwAAOYMACANAACdDAAggwUCAAAAAZIFAgAAAAHTBQAAAJEGAvMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH7BQEAAAABiAYBAAAAAYkGQAAAAAGKBgEAAAABiwYBAAAAAYwGAQAAAAGNBgEAAAABjgYBAAAAAY8GEAAAAAECAAAAKwAgRAAAjw0AIAMAAAArACBEAACPDQAgRQAAjg0AIAE9AADTEgAwAgAAACsAID0AAI4NACACAAAAiQwAID0AAI0NACAQgwUCAIgKACGSBQIA-QoAIdMFAACLDJEGIvMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh-wUBAJwKACGIBgEAhwoAIYkGQACdCgAhigYBAJwKACGLBgEAnAoAIYwGAQCcCgAhjQYBAJwKACGOBgEAnAoAIY8GEADvCwAhEgwAAOUMACANAACODAAggwUCAIgKACGSBQIA-QoAIdMFAACLDJEGIvMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh-wUBAJwKACGIBgEAhwoAIYkGQACdCgAhigYBAJwKACGLBgEAnAoAIYwGAQCcCgAhjQYBAJwKACGOBgEAnAoAIY8GEADvCwAhEgwAAOYMACANAACdDAAggwUCAAAAAZIFAgAAAAHTBQAAAJEGAvMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH7BQEAAAABiAYBAAAAAYkGQAAAAAGKBgEAAAABiwYBAAAAAYwGAQAAAAGNBgEAAAABjgYBAAAAAY8GEAAAAAEDRAAA0RIAIM8GAADSEgAg1QYAAAUAIANEAADPEgAgzwYAANASACDVBgAACQAgA0QAAM0SACDPBgAAzhIAINUGAAABACADRAAAyxIAIM8GAADMEgAg1QYAAI0BACADRAAAyRIAIM8GAADKEgAg1QYAAJABACAERAAAhw0AMM8GAACIDQAw0QYAAIoNACDVBgAAhQwAMAREAAD7DAAwzwYAAPwMADDRBgAA_gwAINUGAAD_DAAwA0QAAPYMACDPBgAA9wwAINUGAAAcACAAAAAAAAHSBgAAAKQGAgVEAAC-EgAgRQAAxxIAIM8GAAC_EgAg0AYAAMYSACDVBgAACQAgBUQAALwSACBFAADEEgAgzwYAAL0SACDQBgAAwxIAINUGAAAFACAHRAAAuhIAIEUAAMESACDPBgAAuxIAINAGAADAEgAg0wYAABcAINQGAAAXACDVBgAAkAEAIANEAAC-EgAgzwYAAL8SACDVBgAACQAgA0QAALwSACDPBgAAvRIAINUGAAAFACADRAAAuhIAIM8GAAC7EgAg1QYAAJABACAAAAAAAAVEAACeEgAgRQAAuBIAIM8GAACfEgAg0AYAALcSACDVBgAAAQAgC0QAAI0OADBFAACRDgAwzwYAAI4OADDQBgAAjw4AMNEGAACQDgAg0gYAANENADDTBgAA0Q0AMNQGAADRDQAw1QYAANENADDWBgAAkg4AMNcGAADUDQAwC0QAAIEOADBFAACGDgAwzwYAAIIOADDQBgAAgw4AMNEGAACEDgAg0gYAAIUOADDTBgAAhQ4AMNQGAACFDgAw1QYAAIUOADDWBgAAhw4AMNcGAACIDgAwC0QAAPUNADBFAAD6DQAwzwYAAPYNADDQBgAA9w0AMNEGAAD4DQAg0gYAAPkNADDTBgAA-Q0AMNQGAAD5DQAw1QYAAPkNADDWBgAA-w0AMNcGAAD8DQAwC0QAAOwNADBFAADwDQAwzwYAAO0NADDQBgAA7g0AMNEGAADvDQAg0gYAAN0NADDTBgAA3Q0AMNQGAADdDQAw1QYAAN0NADDWBgAA8Q0AMNcGAADgDQAwC0QAAK8NADBFAAC0DQAwzwYAALANADDQBgAAsQ0AMNEGAACyDQAg0gYAALMNADDTBgAAsw0AMNQGAACzDQAw1QYAALMNADDWBgAAtQ0AMNcGAAC2DQAwFgMAAOcNACAEAADmDQAgBwAA6A0AIAgAAOoNACAYAADpDQAgGQAA6w0AIIMFAgAAAAGEBQIAAAABlwUBAAAAAZgFQAAAAAGkBQIAAAAB0wUBAAAAAeQFAQAAAAH-BQEAAAABkgYCAAAAAaoGQAAAAAGrBgEAAAABrAYBAAAAAa0GIAAAAAGuBgEAAAABrwYgAAAAAbEGAAAAsQYCAgAAAAkAIEQAAOUNACADAAAACQAgRAAA5Q0AIEUAALoNACABPQAAthIAMBsDAACmCAAgBAAAngkAIAcAAOYJACAIAACpCQAgCwAAzgkAIBgAAKwJACAZAAD9CQAggAUAAPsJADCBBQAABwAQggUAAPsJADCDBQIAAAABhAUCAOcIACGUBQIA6ggAIZcFAQDACAAhmAVAAOgIACGkBQIA5wgAIdMFAQClCAAh5AUBAKUIACH-BQEApQgAIZIGAgDnCAAhqgZAAOgIACGrBgEApQgAIawGAQClCAAhrQYgAMUIACGuBgEAwAgAIa8GIADFCAAhsQYAAPwJsQYiAgAAAAkAID0AALoNACACAAAAtw0AID0AALgNACAUgAUAALYNADCBBQAAtw0AEIIFAAC2DQAwgwUCAOcIACGEBQIA5wgAIZQFAgDqCAAhlwUBAMAIACGYBUAA6AgAIaQFAgDnCAAh0wUBAKUIACHkBQEApQgAIf4FAQClCAAhkgYCAOcIACGqBkAA6AgAIasGAQClCAAhrAYBAKUIACGtBiAAxQgAIa4GAQDACAAhrwYgAMUIACGxBgAA_AmxBiIUgAUAALYNADCBBQAAtw0AEIIFAAC2DQAwgwUCAOcIACGEBQIA5wgAIZQFAgDqCAAhlwUBAMAIACGYBUAA6AgAIaQFAgDnCAAh0wUBAKUIACHkBQEApQgAIf4FAQClCAAhkgYCAOcIACGqBkAA6AgAIasGAQClCAAhrAYBAKUIACGtBiAAxQgAIa4GAQDACAAhrwYgAMUIACGxBgAA_AmxBiIQgwUCAIgKACGEBQIAiAoAIZcFAQCcCgAhmAVAAJ0KACGkBQIAiAoAIdMFAQCHCgAh5AUBAIcKACH-BQEAhwoAIZIGAgCICgAhqgZAAJ0KACGrBgEAhwoAIawGAQCHCgAhrQYgALoKACGuBgEAnAoAIa8GIAC6CgAhsQYAALkNsQYiAdIGAAAAsQYCFgMAALwNACAEAAC7DQAgBwAAvQ0AIAgAAL8NACAYAAC-DQAgGQAAwA0AIIMFAgCICgAhhAUCAIgKACGXBQEAnAoAIZgFQACdCgAhpAUCAIgKACHTBQEAhwoAIeQFAQCHCgAh_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_w0AIAIAAAD9DQAgPQAA_g0AIAmABQAA_A0AMIEFAAD9DQAQggUAAPwNADCDBQIA5wgAIZQFAgDnCAAhlQUQANAJACGWBRAA0AkAIZcFAQDACAAhmAVAAOgIACEJgAUAAPwNADCBBQAA_Q0AEIIFAAD8DQAwgwUCAOcIACGUBQIA5wgAIZUFEADQCQAhlgUQANAJACGXBQEAwAgAIZgFQADoCAAhBYMFAgCICgAhlQUQAJEKACGWBRAAkQoAIZcFAQCcCgAhmAVAAJ0KACEGEQAAnwoAIIMFAgCICgAhlQUQAJEKACGWBRAAkQoAIZcFAQCcCgAhmAVAAJ0KACEGEQAArQoAIIMFAgAAAAGVBRAAAAABlgUQAAAAAZcFAQAAAAGYBUAAAAABFwQAAKgMACAJAACnDAAgCgAAqQwAIA0AAKsMACAQAACsDAAgEwAArQwAIIMFAgAAAAGEBQIAAAABlwUBAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAA-wUC8QUCAAAAAfIFAgAAAAHzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB9wUQAAAAAfgFEAAAAAH5BRAAAAAB-wUBAAAAAQIAAAAcACBEAACMDgAgAwAAABwAIEQAAIwOACBFAACLDgAgAT0AAKESADAcBAAAngkAIAkAANkJACAKAACvCQAgCwAAzgkAIA0AANsJACAQAADhCQAgEwAA0gkAIIAFAADfCQAwgQUAABoAEIIFAADfCQAwgwUCAAAAAYQFAgDnCAAhlAUCAOoIACGXBQEAwAgAIZgFQADoCAAhowVAAOgIACGkBQIA5wgAIdMFAADgCfsFIvEFAgAAAAHyBQIA6ggAIfMFEADQCQAh9AUQANAJACH1BRAA0AkAIfYFEADQCQAh9wUQAMwJACH4BRAA0AkAIfkFEADQCQAh-wUBAMAIACECAAAAHAAgPQAAiw4AIAIAAACJDgAgPQAAig4AIBWABQAAiA4AMIEFAACJDgAQggUAAIgOADCDBQIA5wgAIYQFAgDnCAAhlAUCAOoIACGXBQEAwAgAIZgFQADoCAAhowVAAOgIACGkBQIA5wgAIdMFAADgCfsFIvEFAgDqCAAh8gUCAOoIACHzBRAA0AkAIfQFEADQCQAh9QUQANAJACH2BRAA0AkAIfcFEADMCQAh-AUQANAJACH5BRAA0AkAIfsFAQDACAAhFYAFAACIDgAwgQUAAIkOABCCBQAAiA4AMIMFAgDnCAAhhAUCAOcIACGUBQIA6ggAIZcFAQDACAAhmAVAAOgIACGjBUAA6AgAIaQFAgDnCAAh0wUAAOAJ-wUi8QUCAOoIACHyBQIA6ggAIfMFEADQCQAh9AUQANAJACH1BRAA0AkAIfYFEADQCQAh9wUQAMwJACH4BRAA0AkAIfkFEADQCQAh-wUBAMAIACERgwUCAIgKACGEBQIAiAoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8QUCAPkKACHyBQIA-QoAIfMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh9wUQAO8LACH4BRAAkQoAIfkFEACRCgAh-wUBAJwKACEXBAAA8gsAIAkAAPELACAKAADzCwAgDQAA9QsAIBAAAPYLACATAAD3CwAggwUCAIgKACGEBQIAiAoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8QUCAPkKACHyBQIA-QoAIfMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh9wUQAO8LACH4BRAAkQoAIfkFEACRCgAh-wUBAJwKACEXBAAAqAwAIAkAAKcMACAKAACpDAAgDQAAqwwAIBAAAKwMACATAACtDAAggwUCAAAAAYQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAAD7BQLxBQIAAAAB8gUCAAAAAfMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH3BRAAAAAB-AUQAAAAAfkFEAAAAAH7BQEAAAABGQMAAJINACAEAACQDQAgBgAAkQ0AIAcAAJMNACAMAACXDQAgEAAAlQ0AIBcAAJYNACCDBQIAAAABhAUCAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAAnQYCkQYCAAAAAZIGAgAAAAGTBgEAAAABlAYBAAAAAZUGQAAAAAGWBgEAAAABmAYAAACYBgKZBoAAAAABmgZAAAAAAZsGAQAAAAGdBgEAAAABngYBAAAAAQIAAAASACBEAACVDgAgAwAAABIAIEQAAJUOACBFAACUDgAgAT0AAKASADACAAAAEgAgPQAAlA4AIAIAAADVDQAgPQAAkw4AIBKDBQIAiAoAIYQFAgCICgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAO0MnQYikQYCAPkKACGSBgIAiAoAIZMGAQCHCgAhlAYBAIcKACGVBkAAnQoAIZYGAQCHCgAhmAYAAOwMmAYimQaAAAAAAZoGQACdCgAhmwYBAIcKACGdBgEAnAoAIZ4GAQCcCgAhGQMAAPAMACAEAADuDAAgBgAA7wwAIAcAAPEMACAMAAD1DAAgEAAA8wwAIBcAAPQMACCDBQIAiAoAIYQFAgCICgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAO0MnQYikQYCAPkKACGSBgIAiAoAIZMGAQCHCgAhlAYBAIcKACGVBkAAnQoAIZYGAQCHCgAhmAYAAOwMmAYimQaAAAAAAZoGQACdCgAhmwYBAIcKACGdBgEAnAoAIZ4GAQCcCgAhGQMAAJINACAEAACQDQAgBgAAkQ0AIAcAAJMNACAMAACXDQAgEAAAlQ0AIBcAAJYNACCDBQIAAAABhAUCAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAAnQYCkQYCAAAAAZIGAgAAAAGTBgEAAAABlAYBAAAAAZUGQAAAAAGWBgEAAAABmAYAAACYBgKZBoAAAAABmgZAAAAAAZsGAQAAAAGdBgEAAAABngYBAAAAAQNEAACeEgAgzwYAAJ8SACDVBgAAAQAgBEQAAI0OADDPBgAAjg4AMNEGAACQDgAg1QYAANENADAERAAAgQ4AMM8GAACCDgAw0QYAAIQOACDVBgAAhQ4AMAREAAD1DQAwzwYAAPYNADDRBgAA-A0AINUGAAD5DQAwBEQAAOwNADDPBgAA7Q0AMNEGAADvDQAg1QYAAN0NADAERAAArw0AMM8GAACwDQAw0QYAALINACDVBgAAsw0AMAAAAAAAB0QAAJISACBFAACcEgAgzwYAAJMSACDQBgAAmxIAINMGAAANACDUBgAADQAg1QYAAAEAIAtEAACtDgAwRQAAsQ4AMM8GAACuDgAw0AYAAK8OADDRBgAAsA4AINIGAACzDQAw0wYAALMNADDUBgAAsw0AMNUGAACzDQAw1gYAALIOADDXBgAAtg0AMAtEAACkDgAwRQAAqA4AMM8GAAClDgAw0AYAAKYOADDRBgAApw4AINIGAADRDQAw0wYAANENADDUBgAA0Q0AMNUGAADRDQAw1gYAAKkOADDXBgAA1A0AMBkDAACSDQAgBAAAkA0AIAYAAJENACALAACUDQAgDAAAlw0AIBAAAJUNACAXAACWDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAACdBgKRBgIAAAABkwYBAAAAAZQGAQAAAAGVBkAAAAABlgYBAAAAAZgGAAAAmAYCmQaAAAAAAZoGQAAAAAGbBgEAAAABnQYBAAAAAZ4GAQAAAAECAAAAEgAgRAAArA4AIAMAAAASACBEAACsDgAgRQAAqw4AIAE9AACaEgAwAgAAABIAID0AAKsOACACAAAA1Q0AID0AAKoOACASgwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAO0MnQYikQYCAPkKACGTBgEAhwoAIZQGAQCHCgAhlQZAAJ0KACGWBgEAhwoAIZgGAADsDJgGIpkGgAAAAAGaBkAAnQoAIZsGAQCHCgAhnQYBAJwKACGeBgEAnAoAIRkDAADwDAAgBAAA7gwAIAYAAO8MACALAADyDAAgDAAA9QwAIBAAAPMMACAXAAD0DAAggwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAO0MnQYikQYCAPkKACGTBgEAhwoAIZQGAQCHCgAhlQZAAJ0KACGWBgEAhwoAIZgGAADsDJgGIpkGgAAAAAGaBkAAnQoAIZsGAQCHCgAhnQYBAJwKACGeBgEAnAoAIRkDAACSDQAgBAAAkA0AIAYAAJENACALAACUDQAgDAAAlw0AIBAAAJUNACAXAACWDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAACdBgKRBgIAAAABkwYBAAAAAZQGAQAAAAGVBkAAAAABlgYBAAAAAZgGAAAAmAYCmQaAAAAAAZoGQAAAAAGbBgEAAAABnQYBAAAAAZ4GAQAAAAEWAwAA5w0AIAQAAOYNACAIAADqDQAgCwAAtw4AIBgAAOkNACAZAADrDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABlwUBAAAAAZgFQAAAAAGkBQIAAAAB0wUBAAAAAeQFAQAAAAH-BQEAAAABqgZAAAAAAasGAQAAAAGsBgEAAAABrQYgAAAAAa4GAQAAAAGvBiAAAAABsQYAAACxBgICAAAACQAgRAAAtg4AIAMAAAAJACBEAAC2DgAgRQAAtA4AIAE9AACZEgAwAgAAAAkAID0AALQOACACAAAAtw0AID0AALMOACAQgwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhlwUBAJwKACGYBUAAnQoAIaQFAgCICgAh0wUBAIcKACHkBQEAhwoAIf4FAQCHCgAhqgZAAJ0KACGrBgEAhwoAIawGAQCHCgAhrQYgALoKACGuBgEAnAoAIa8GIAC6CgAhsQYAALkNsQYiFgMAALwNACAEAAC7DQAgCAAAvw0AIAsAALUOACAYAAC-DQAgGQAAwA0AIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGkBQIAiAoAIdMFAQCHCgAh5AUBAIcKACH-BQEAhwoAIaoGQACdCgAhqwYBAIcKACGsBgEAhwoAIa0GIAC6CgAhrgYBAJwKACGvBiAAugoAIbEGAAC5DbEGIgdEAACUEgAgRQAAlxIAIM8GAACVEgAg0AYAAJYSACDTBgAAFwAg1AYAABcAINUGAACQAQAgFgMAAOcNACAEAADmDQAgCAAA6g0AIAsAALcOACAYAADpDQAgGQAA6w0AIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAaoGQAAAAAGrBgEAAAABrAYBAAAAAa0GIAAAAAGuBgEAAAABrwYgAAAAAbEGAAAAsQYCA0QAAJQSACDPBgAAlRIAINUGAACQAQAgA0QAAJISACDPBgAAkxIAINUGAAABACAERAAArQ4AMM8GAACuDgAw0QYAALAOACDVBgAAsw0AMAREAACkDgAwzwYAAKUOADDRBgAApw4AINUGAADRDQAwAAAAAAAFRAAAjRIAIEUAAJASACDPBgAAjhIAINAGAACPEgAg1QYAAAkAIANEAACNEgAgzwYAAI4SACDVBgAACQAgAAAAAAAAAAAAAAVEAACAEgAgRQAAixIAIM8GAACBEgAg0AYAAIoSACDVBgAAAQAgC0QAAKMPADBFAACnDwAwzwYAAKQPADDQBgAApQ8AMNEGAACmDwAg0gYAALMNADDTBgAAsw0AMNQGAACzDQAw1QYAALMNADDWBgAAqA8AMNcGAAC2DQAwC0QAAJoPADBFAACeDwAwzwYAAJsPADDQBgAAnA8AMNEGAACdDwAg0gYAAN0NADDTBgAA3Q0AMNQGAADdDQAw1QYAAN0NADDWBgAAnw8AMNcGAADgDQAwC0QAAJEPADBFAACVDwAwzwYAAJIPADDQBgAAkw8AMNEGAACUDwAg0gYAANENADDTBgAA0Q0AMNQGAADRDQAw1QYAANENADDWBgAAlg8AMNcGAADUDQAwC0QAAIUPADBFAACKDwAwzwYAAIYPADDQBgAAhw8AMNEGAACIDwAg0gYAAIkPADDTBgAAiQ8AMNQGAACJDwAw1QYAAIkPADDWBgAAiw8AMNcGAACMDwAwC0QAAPwOADBFAACADwAwzwYAAP0OADDQBgAA_g4AMNEGAAD_DgAg0gYAAIUOADDTBgAAhQ4AMNQGAACFDgAw1QYAAIUOADDWBgAAgQ8AMNcGAACIDgAwC0QAAPAOADBFAAD1DgAwzwYAAPEOADDQBgAA8g4AMNEGAADzDgAg0gYAAPQOADDTBgAA9A4AMNQGAAD0DgAw1QYAAPQOADDWBgAA9g4AMNcGAAD3DgAwC0QAAOQOADBFAADpDgAwzwYAAOUOADDQBgAA5g4AMNEGAADnDgAg0gYAAOgOADDTBgAA6A4AMNQGAADoDgAw1QYAAOgOADDWBgAA6g4AMNcGAADrDgAwB0QAAN8OACBFAADiDgAgzwYAAOAOACDQBgAA4Q4AINMGAABuACDUBgAAbgAg1QYAALoBACALRAAA1g4AMEUAANoOADDPBgAA1w4AMNAGAADYDgAw0QYAANkOACDSBgAAtwsAMNMGAAC3CwAw1AYAALcLADDVBgAAtwsAMNYGAADbDgAw1wYAALoLADAKAwAAwAsAIBkAAMILACAgAADDCwAgIQAAvwsAIIMFAgAAAAGEBQIAAAABmAVAAAAAAZkFAQAAAAGjBUAAAAAB3QUCAAAAAQIAAAByACBEAADeDgAgAwAAAHIAIEQAAN4OACBFAADdDgAgAT0AAIkSADACAAAAcgAgPQAA3Q4AIAIAAAC7CwAgPQAA3A4AIAaDBQIAiAoAIYQFAgCICgAhmAVAAJ0KACGZBQEAhwoAIaMFQACdCgAh3QUCAPkKACEKAwAApAsAIBkAAKYLACAgAACiCwAgIQAAowsAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIZkFAQCHCgAhowVAAJ0KACHdBQIA-QoAIQoDAADACwAgGQAAwgsAICAAAMMLACAhAAC_CwAggwUCAAAAAYQFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHdBQIAAAABBgMAAL4KACCDBQIAAAABhAUCAAAAAaMFQAAAAAGlBQEAAAABpgUgAAAAAQIAAAC6AQAgRAAA3w4AIAMAAABuACBEAADfDgAgRQAA4w4AIAgAAABuACADAAC8CgAgPQAA4w4AIIMFAgCICgAhhAUCAIgKACGjBUAAnQoAIaUFAQCHCgAhpgUgALoKACEGAwAAvAoAIIMFAgCICgAhhAUCAIgKACGjBUAAnQoAIaUFAQCHCgAhpgUgALoKACEIgwUCAAAAAaMFQAAAAAHIBQEAAAAByQUBAAAAAcoFAQAAAAHLBQQAAAABzAUBAAAAAc0FQAAAAAECAAAAbAAgRAAA7w4AIAMAAABsACBEAADvDgAgRQAA7g4AIAE9AACIEgAwDQQAAJ4JACCABQAAvQkAMIEFAABqABCCBQAAvQkAMIMFAgAAAAGjBUAA6AgAIaQFAgDnCAAhyAUBAKUIACHJBQEApQgAIcoFAQClCAAhywUEALUJACHMBQEApQgAIc0FQADoCAAhAgAAAGwAID0AAO4OACACAAAA7A4AID0AAO0OACAMgAUAAOsOADCBBQAA7A4AEIIFAADrDgAwgwUCAOcIACGjBUAA6AgAIaQFAgDnCAAhyAUBAKUIACHJBQEApQgAIcoFAQClCAAhywUEALUJACHMBQEApQgAIc0FQADoCAAhDIAFAADrDgAwgQUAAOwOABCCBQAA6w4AMIMFAgDnCAAhowVAAOgIACGkBQIA5wgAIcgFAQClCAAhyQUBAKUIACHKBQEApQgAIcsFBAC1CQAhzAUBAKUIACHNBUAA6AgAIQiDBQIAiAoAIaMFQACdCgAhyAUBAIcKACHJBQEAhwoAIcoFAQCHCgAhywUEAO4KACHMBQEAhwoAIc0FQACdCgAhCIMFAgCICgAhowVAAJ0KACHIBQEAhwoAIckFAQCHCgAhygUBAIcKACHLBQQA7goAIcwFAQCHCgAhzQVAAJ0KACEIgwUCAAAAAaMFQAAAAAHIBQEAAAAByQUBAAAAAcoFAQAAAAHLBQQAAAABzAUBAAAAAc0FQAAAAAEKAwAA_QoAIIMFAgAAAAGEBQIAAAABmAVAAAAAAc8FAAAAzwUC0QUAAADRBQLTBQAAANMFAtQFAQAAAAHVBQIAAAAB1gUBAAAAAQIAAABnACBEAAD7DgAgAwAAAGcAIEQAAPsOACBFAAD6DgAgAT0AAIcSADAPAwAArwkAIAQAAJ4JACCABQAAvgkAMIEFAABlABCCBQAAvgkAMIMFAgAAAAGEBQIA6ggAIZgFQADoCAAhpAUCAOcIACHPBQAAvwnPBSLRBQAAwAnRBSLTBQAAwQnTBSLUBQEAwAgAIdUFAgDqCAAh1gUBAMAIACECAAAAZwAgPQAA-g4AIAIAAAD4DgAgPQAA-Q4AIA2ABQAA9w4AMIEFAAD4DgAQggUAAPcOADCDBQIA5wgAIYQFAgDqCAAhmAVAAOgIACGkBQIA5wgAIc8FAAC_Cc8FItEFAADACdEFItMFAADBCdMFItQFAQDACAAh1QUCAOoIACHWBQEAwAgAIQ2ABQAA9w4AMIEFAAD4DgAQggUAAPcOADCDBQIA5wgAIYQFAgDqCAAhmAVAAOgIACGkBQIA5wgAIc8FAAC_Cc8FItEFAADACdEFItMFAADBCdMFItQFAQDACAAh1QUCAOoIACHWBQEAwAgAIQmDBQIAiAoAIYQFAgD5CgAhmAVAAJ0KACHPBQAA9grPBSLRBQAA9wrRBSLTBQAA-ArTBSLUBQEAnAoAIdUFAgD5CgAh1gUBAJwKACEKAwAA-woAIIMFAgCICgAhhAUCAPkKACGYBUAAnQoAIc8FAAD2Cs8FItEFAAD3CtEFItMFAAD4CtMFItQFAQCcCgAh1QUCAPkKACHWBQEAnAoAIQoDAAD9CgAggwUCAAAAAYQFAgAAAAGYBUAAAAABzwUAAADPBQLRBQAAANEFAtMFAAAA0wUC1AUBAAAAAdUFAgAAAAHWBQEAAAABFwkAAKcMACAKAACpDAAgCwAAqgwAIA0AAKsMACAQAACsDAAgEwAArQwAIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABowVAAAAAAdMFAAAA-wUC8QUCAAAAAfIFAgAAAAHzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB9wUQAAAAAfgFEAAAAAH5BRAAAAAB-wUBAAAAAQIAAAAcACBEAACEDwAgAwAAABwAIEQAAIQPACBFAACDDwAgAT0AAIYSADACAAAAHAAgPQAAgw8AIAIAAACJDgAgPQAAgg8AIBGDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhowVAAJ0KACHTBQAA8Av7BSLxBQIA-QoAIfIFAgD5CgAh8wUQAJEKACH0BRAAkQoAIfUFEACRCgAh9gUQAJEKACH3BRAA7wsAIfgFEACRCgAh-QUQAJEKACH7BQEAnAoAIRcJAADxCwAgCgAA8wsAIAsAAPQLACANAAD1CwAgEAAA9gsAIBMAAPcLACCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhowVAAJ0KACHTBQAA8Av7BSLxBQIA-QoAIfIFAgD5CgAh8wUQAJEKACH0BRAAkQoAIfUFEACRCgAh9gUQAJEKACH3BRAA7wsAIfgFEACRCgAh-QUQAJEKACH7BQEAnAoAIRcJAACnDAAgCgAAqQwAIAsAAKoMACANAACrDAAgEAAArAwAIBMAAK0MACCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAHTBQAAAPsFAvEFAgAAAAHyBQIAAAAB8wUQAAAAAfQFEAAAAAH1BRAAAAAB9gUQAAAAAfcFEAAAAAH4BRAAAAAB-QUQAAAAAfsFAQAAAAEFGwAAygwAIIMFAgAAAAGYBUAAAAAB_gUBAAAAAYAGAAAAgAYCAgAAAF0AIEQAAJAPACADAAAAXQAgRAAAkA8AIEUAAI8PACABPQAAhRIAMAoEAACeCQAgGwAAxgkAIIAFAADECQAwgQUAAFsAEIIFAADECQAwgwUCAAAAAZgFQADoCAAhpAUCAOcIACH-BQEApQgAIYAGAADFCYAGIgIAAABdACA9AACPDwAgAgAAAI0PACA9AACODwAgCIAFAACMDwAwgQUAAI0PABCCBQAAjA8AMIMFAgDnCAAhmAVAAOgIACGkBQIA5wgAIf4FAQClCAAhgAYAAMUJgAYiCIAFAACMDwAwgQUAAI0PABCCBQAAjA8AMIMFAgDnCAAhmAVAAOgIACGkBQIA5wgAIf4FAQClCAAhgAYAAMUJgAYiBIMFAgCICgAhmAVAAJ0KACH-BQEAhwoAIYAGAAC6DIAGIgUbAAC8DAAggwUCAIgKACGYBUAAnQoAIf4FAQCHCgAhgAYAALoMgAYiBRsAAMoMACCDBQIAAAABmAVAAAAAAf4FAQAAAAGABgAAAIAGAhkDAACSDQAgBgAAkQ0AIAcAAJMNACALAACUDQAgDAAAlw0AIBAAAJUNACAXAACWDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABmAVAAAAAAaMFQAAAAAHTBQAAAJ0GApEGAgAAAAGSBgIAAAABkwYBAAAAAZQGAQAAAAGVBkAAAAABlgYBAAAAAZgGAAAAmAYCmQaAAAAAAZoGQAAAAAGbBgEAAAABnQYBAAAAAZ4GAQAAAAECAAAAEgAgRAAAmQ8AIAMAAAASACBEAACZDwAgRQAAmA8AIAE9AACEEgAwAgAAABIAID0AAJgPACACAAAA1Q0AID0AAJcPACASgwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGjBUAAnQoAIdMFAADtDJ0GIpEGAgD5CgAhkgYCAIgKACGTBgEAhwoAIZQGAQCHCgAhlQZAAJ0KACGWBgEAhwoAIZgGAADsDJgGIpkGgAAAAAGaBkAAnQoAIZsGAQCHCgAhnQYBAJwKACGeBgEAnAoAIRkDAADwDAAgBgAA7wwAIAcAAPEMACALAADyDAAgDAAA9QwAIBAAAPMMACAXAAD0DAAggwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGjBUAAnQoAIdMFAADtDJ0GIpEGAgD5CgAhkgYCAIgKACGTBgEAhwoAIZQGAQCHCgAhlQZAAJ0KACGWBgEAhwoAIZgGAADsDJgGIpkGgAAAAAGaBkAAnQoAIZsGAQCHCgAhnQYBAJwKACGeBgEAnAoAIRkDAACSDQAgBgAAkQ0AIAcAAJMNACALAACUDQAgDAAAlw0AIBAAAJUNACAXAACWDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABmAVAAAAAAaMFQAAAAAHTBQAAAJ0GApEGAgAAAAGSBgIAAAABkwYBAAAAAZQGAQAAAAGVBkAAAAABlgYBAAAAAZgGAAAAmAYCmQaAAAAAAZoGQAAAAAGbBgEAAAABnQYBAAAAAZ4GAQAAAAEPBgAAoQ0AIAsAAKMNACCDBQIAAAABlAUCAAAAAZgFQAAAAAGIBgEAAAABjAYBAAAAAY0GAQAAAAGRBgIAAAABnwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaQGAAAApAYCpQYBAAAAAQIAAAA8ACBEAACiDwAgAwAAADwAIEQAAKIPACBFAAChDwAgAT0AAIMSADACAAAAPAAgPQAAoQ8AIAIAAADhDQAgPQAAoA8AIA2DBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGIBgEAhwoAIYwGAQCcCgAhjQYBAJwKACGRBgIAiAoAIZ8GAQCcCgAhoAYQAO8LACGhBgEAnAoAIaIGAQCcCgAhpAYAAJ0NpAYipQYBAJwKACEPBgAAng0AIAsAAKANACCDBQIAiAoAIZQFAgD5CgAhmAVAAJ0KACGIBgEAhwoAIYwGAQCcCgAhjQYBAJwKACGRBgIAiAoAIZ8GAQCcCgAhoAYQAO8LACGhBgEAnAoAIaIGAQCcCgAhpAYAAJ0NpAYipQYBAJwKACEPBgAAoQ0AIAsAAKMNACCDBQIAAAABlAUCAAAAAZgFQAAAAAGIBgEAAAABjAYBAAAAAY0GAQAAAAGRBgIAAAABnwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaQGAAAApAYCpQYBAAAAARYDAADnDQAgBwAA6A0AIAgAAOoNACALAAC3DgAgGAAA6Q0AIBkAAOsNACCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgIAAAAJACBEAACrDwAgAwAAAAkAIEQAAKsPACBFAACqDwAgAT0AAIISADACAAAACQAgPQAAqg8AIAIAAAC3DQAgPQAAqQ8AIBCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAh0wUBAIcKACHkBQEAhwoAIf4FAQCHCgAhkgYCAIgKACGqBkAAnQoAIasGAQCHCgAhrAYBAIcKACGtBiAAugoAIa4GAQCcCgAhrwYgALoKACGxBgAAuQ2xBiIWAwAAvA0AIAcAAL0NACAIAAC_DQAgCwAAtQ4AIBgAAL4NACAZAADADQAggwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhlwUBAJwKACGYBUAAnQoAIdMFAQCHCgAh5AUBAIcKACH-BQEAhwoAIZIGAgCICgAhqgZAAJ0KACGrBgEAhwoAIawGAQCHCgAhrQYgALoKACGuBgEAnAoAIa8GIAC6CgAhsQYAALkNsQYiFgMAAOcNACAHAADoDQAgCAAA6g0AIAsAALcOACAYAADpDQAgGQAA6w0AIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAAB0wUBAAAAAeQFAQAAAAH-BQEAAAABkgYCAAAAAaoGQAAAAAGrBgEAAAABrAYBAAAAAa0GIAAAAAGuBgEAAAABrwYgAAAAAbEGAAAAsQYCA0QAAIASACDPBgAAgRIAINUGAAABACAERAAAow8AMM8GAACkDwAw0QYAAKYPACDVBgAAsw0AMAREAACaDwAwzwYAAJsPADDRBgAAnQ8AINUGAADdDQAwBEQAAJEPADDPBgAAkg8AMNEGAACUDwAg1QYAANENADAERAAAhQ8AMM8GAACGDwAw0QYAAIgPACDVBgAAiQ8AMAREAAD8DgAwzwYAAP0OADDRBgAA_w4AINUGAACFDgAwBEQAAPAOADDPBgAA8Q4AMNEGAADzDgAg1QYAAPQOADAERAAA5A4AMM8GAADlDgAw0QYAAOcOACDVBgAA6A4AMANEAADfDgAgzwYAAOAOACDVBgAAugEAIAREAADWDgAwzwYAANcOADDRBgAA2Q4AINUGAAC3CwAwAAAAAAALRAAAnhEAMEUAAKMRADDPBgAAnxEAMNAGAACgEQAw0QYAAKERACDSBgAAohEAMNMGAACiEQAw1AYAAKIRADDVBgAAohEAMNYGAACkEQAw1wYAAKURADALRAAAlREAMEUAAJkRADDPBgAAlhEAMNAGAACXEQAw0QYAAJgRACDSBgAAsw0AMNMGAACzDQAw1AYAALMNADDVBgAAsw0AMNYGAACaEQAw1wYAALYNADALRAAAiREAMEUAAI4RADDPBgAAihEAMNAGAACLEQAw0QYAAIwRACDSBgAAjREAMNMGAACNEQAw1AYAAI0RADDVBgAAjREAMNYGAACPEQAw1wYAAJARADALRAAA_RAAMEUAAIIRADDPBgAA_hAAMNAGAAD_EAAw0QYAAIARACDSBgAAgREAMNMGAACBEQAw1AYAAIERADDVBgAAgREAMNYGAACDEQAw1wYAAIQRADALRAAA9BAAMEUAAPgQADDPBgAA9RAAMNAGAAD2EAAw0QYAAPcQACDSBgAA0Q0AMNMGAADRDQAw1AYAANENADDVBgAA0Q0AMNYGAAD5EAAw1wYAANQNADALRAAA6BAAMEUAAO0QADDPBgAA6RAAMNAGAADqEAAw0QYAAOsQACDSBgAA7BAAMNMGAADsEAAw1AYAAOwQADDVBgAA7BAAMNYGAADuEAAw1wYAAO8QADALRAAA3BAAMEUAAOEQADDPBgAA3RAAMNAGAADeEAAw0QYAAN8QACDSBgAA4BAAMNMGAADgEAAw1AYAAOAQADDVBgAA4BAAMNYGAADiEAAw1wYAAOMQADALRAAA0xAAMEUAANcQADDPBgAA1BAAMNAGAADVEAAw0QYAANYQACDSBgAAhQ4AMNMGAACFDgAw1AYAAIUOADDVBgAAhQ4AMNYGAADYEAAw1wYAAIgOADALRAAAxxAAMEUAAMwQADDPBgAAyBAAMNAGAADJEAAw0QYAAMoQACDSBgAAyxAAMNMGAADLEAAw1AYAAMsQADDVBgAAyxAAMNYGAADNEAAw1wYAAM4QADALRAAAuxAAMEUAAMAQADDPBgAAvBAAMNAGAAC9EAAw0QYAAL4QACDSBgAAvxAAMNMGAAC_EAAw1AYAAL8QADDVBgAAvxAAMNYGAADBEAAw1wYAAMIQADALRAAArxAAMEUAALQQADDPBgAAsBAAMNAGAACxEAAw0QYAALIQACDSBgAAsxAAMNMGAACzEAAw1AYAALMQADDVBgAAsxAAMNYGAAC1EAAw1wYAALYQADALRAAAphAAMEUAAKoQADDPBgAApxAAMNAGAACoEAAw0QYAAKkQACDSBgAAtwsAMNMGAAC3CwAw1AYAALcLADDVBgAAtwsAMNYGAACrEAAw1wYAALoLADALRAAAnRAAMEUAAKEQADDPBgAAnhAAMNAGAACfEAAw0QYAAKAQACDSBgAAqwsAMNMGAACrCwAw1AYAAKsLADDVBgAAqwsAMNYGAACiEAAw1wYAAK4LADALRAAAlBAAMEUAAJgQADDPBgAAlRAAMNAGAACWEAAw0QYAAJcQACDSBgAA9A4AMNMGAAD0DgAw1AYAAPQOADDVBgAA9A4AMNYGAACZEAAw1wYAAPcOADAHRAAAjxAAIEUAAJIQACDPBgAAkBAAINAGAACREAAg0wYAAKsBACDUBgAAqwEAINUGAACeBgAgB0QAAIoQACBFAACNEAAgzwYAAIsQACDQBgAAjBAAINMGAACtAQAg1AYAAK0BACDVBgAAtgYAIAdEAACFEAAgRQAAiBAAIM8GAACGEAAg0AYAAIcQACDTBgAArwEAINQGAACvAQAg1QYAAM4GACAHRAAAgBAAIEUAAIMQACDPBgAAgRAAINAGAACCEAAg0wYAALEBACDUBgAAsQEAINUGAADmBgAgB0QAAPsPACBFAAD-DwAgzwYAAPwPACDQBgAA_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-w8AIAMAAACzAQAgRAAA-w8AIEUAAP8PACADAAAAswEAID2AAP8PACGDBQIAiAoAIQI9gAAAAAGDBQIAiAoAIQuDBQIAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUBAAAAAbQFAQAAAAG1BQEAAAABtgUBAAAAAQIAAADmBgAgRAAAgBAAIAMAAACxAQAgRAAAgBAAIEUAAIQQACANAAAAsQEAID0AAIQQACCDBQIAiAoAIa0FAQCcCgAhrgUBAJwKACGvBQEAnAoAIbAFAQCcCgAhsQUBAJwKACGyBQEAnAoAIbMFAQCcCgAhtAUBAJwKACG1BQEAnAoAIbYFAQCcCgAhC4MFAgCICgAhrQUBAJwKACGuBQEAnAoAIa8FAQCcCgAhsAUBAJwKACGxBQEAnAoAIbIFAQCcCgAhswUBAJwKACG0BQEAnAoAIbUFAQCcCgAhtgUBAJwKACECPYAAAAABgwUCAAAAAQIAAADOBgAgRAAAhRAAIAMAAACvAQAgRAAAhRAAIEUAAIkQACADAAAArwEAID2AAIkQACGDBQIAiAoAIQI9gAAAAAGDBQIAiAoAIQ6DBQIAAAABtwUBAAAAAbgFIAAAAAG5BQEAAAABugUgAAAAAbsFAQAAAAG8BSAAAAABvQUBAAAAAb4FAQAAAAG_BQEAAAABwAUBAAAAAcEFIAAAAAHCBSAAAAABwwUgAAAAAQIAAAC2BgAgRAAAihAAIAMAAACtAQAgRAAAihAAIEUAAI4QACAQAAAArQEAID0AAI4QACCDBQIAiAoAIbcFAQCHCgAhuAUgALoKACG5BQEAhwoAIboFIAC6CgAhuwUBAIcKACG8BSAAugoAIb0FAQCHCgAhvgUBAIcKACG_BQEAhwoAIcAFAQCHCgAhwQUgALoKACHCBSAAugoAIcMFIAC6CgAhDoMFAgCICgAhtwUBAIcKACG4BSAAugoAIbkFAQCHCgAhugUgALoKACG7BQEAhwoAIbwFIAC6CgAhvQUBAIcKACG-BQEAhwoAIb8FAQCHCgAhwAUBAIcKACHBBSAAugoAIcIFIAC6CgAhwwUgALoKACEGgwUCAAAAAa0FAQAAAAHEBQEAAAABxQUBAAAAAcYFAQAAAAHHBYAAAAABAgAAAJ4GACBEAACPEAAgAwAAAKsBACBEAACPEAAgRQAAkxAAIAgAAACrAQAgPQAAkxAAIIMFAgCICgAhrQUBAIcKACHEBQEAhwoAIcUFAQCHCgAhxgUBAJwKACHHBYAAAAABBoMFAgCICgAhrQUBAIcKACHEBQEAhwoAIcUFAQCHCgAhxgUBAJwKACHHBYAAAAABCgQAAPwKACCDBQIAAAABmAVAAAAAAaQFAgAAAAHPBQAAAM8FAtEFAAAA0QUC0wUAAADTBQLUBQEAAAAB1QUCAAAAAdYFAQAAAAECAAAAZwAgRAAAnBAAIAMAAABnACBEAACcEAAgRQAAmxAAIAE9AAD8EQAwAgAAAGcAID0AAJsQACACAAAA-A4AID0AAJoQACAJgwUCAIgKACGYBUAAnQoAIaQFAgCICgAhzwUAAPYKzwUi0QUAAPcK0QUi0wUAAPgK0wUi1AUBAJwKACHVBQIA-QoAIdYFAQCcCgAhCgQAAPoKACCDBQIAiAoAIZgFQACdCgAhpAUCAIgKACHPBQAA9grPBSLRBQAA9wrRBSLTBQAA-ArTBSLUBQEAnAoAIdUFAgD5CgAh1gUBAJwKACEKBAAA_AoAIIMFAgAAAAGYBUAAAAABpAUCAAAAAc8FAAAAzwUC0QUAAADRBQLTBQAAANMFAtQFAQAAAAHVBQIAAAAB1gUBAAAAAQwiAACbCwAgJAAAnAsAIIMFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHKBQEAAAABywUEAAAAAdkFAgAAAAHaBSAAAAAB2wUCAAAAAdwFAQAAAAECAAAAeQAgRAAApRAAIAMAAAB5ACBEAAClEAAgRQAApBAAIAE9AAD7EQAwAgAAAHkAID0AAKQQACACAAAArwsAID0AAKMQACAKgwUCAIgKACGYBUAAnQoAIZkFAQCHCgAhowVAAJ0KACHKBQEAnAoAIcsFBADuCgAh2QUCAPkKACHaBSAAugoAIdsFAgD5CgAh3AUBAJwKACEMIgAAjAsAICQAAI0LACCDBQIAiAoAIZgFQACdCgAhmQUBAIcKACGjBUAAnQoAIcoFAQCcCgAhywUEAO4KACHZBQIA-QoAIdoFIAC6CgAh2wUCAPkKACHcBQEAnAoAIQwiAACbCwAgJAAAnAsAIIMFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHKBQEAAAABywUEAAAAAdkFAgAAAAHaBSAAAAAB2wUCAAAAAdwFAQAAAAEKBAAAwQsAIBkAAMILACAgAADDCwAgIQAAvwsAIIMFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAGkBQIAAAAB3QUCAAAAAQIAAAByACBEAACuEAAgAwAAAHIAIEQAAK4QACBFAACtEAAgAT0AAPoRADACAAAAcgAgPQAArRAAIAIAAAC7CwAgPQAArBAAIAaDBQIAiAoAIZgFQACdCgAhmQUBAIcKACGjBUAAnQoAIaQFAgD5CgAh3QUCAPkKACEKBAAApQsAIBkAAKYLACAgAACiCwAgIQAAowsAIIMFAgCICgAhmAVAAJ0KACGZBQEAhwoAIaMFQACdCgAhpAUCAPkKACHdBQIA-QoAIQoEAADBCwAgGQAAwgsAICAAAMMLACAhAAC_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_BAAIAMAAAASACBEAAD8EAAgRQAA-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_gUBAIcKACGSBgIAiAoAIaoGQACdCgAhqwYBAIcKACGsBgEAhwoAIa0GIAC6CgAhrgYBAJwKACGvBiAAugoAIbEGAAC5DbEGIhYEAADmDQAgBwAA6A0AIAgAAOoNACALAAC3DgAgGAAA6Q0AIBkAAOsNACCDBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAh8FAACtDwAgCAAArw8AIAwAALEPACAYAACuDwAgHAAAsA8AIB0AALIPACAeAACzDwAgHwAAtA8AICUAALUPACCDBQIAAAABmAVAAAAAAaMFQAAAAAGxBQEAAAABtAUBAAAAAbYFAQAAAAHTBQAAALEGApUGQAAAAAGbBgEAAAABqQYBAAAAAbIGAQAAAAGzBgEAAAABtAYBAAAAAbUGAQAAAAG2BgEAAAABtwYBAAAAAbgGAQAAAAG5BgEAAAABugYBAAAAAbsGAQAAAAG8BgEAAAABvQYBAAAAAQIAAAAFACBEAACpEQAgAwAAAAUAIEQAAKkRACBFAACoEQAgAT0AAO8RADAkAwAApggAIAUAAK0JACAIAACpCQAgDAAAqgkAIBgAAKwJACAcAAD_CQAgHQAA8QkAIB4AAIAKACAfAACBCgAgJQAAugkAIIAFAAD-CQAwgQUAAAMAEIIFAAD-CQAwgwUCAAAAAYQFAgDnCAAhmAVAAOgIACGjBUAA6AgAIbEFAQDACAAhtAUBAMAIACG2BQEAwAgAIdMFAAD8CbEGIpUGQADpCAAhmwYBAMAIACGpBgEApQgAIbIGAQClCAAhswYBAKUIACG0BgEApQgAIbUGAQDACAAhtgYBAMAIACG3BgEAwAgAIbgGAQDACAAhuQYBAMAIACG6BgEAwAgAIbsGAQDACAAhvAYBAMAIACG9BgEAwAgAIQIAAAAFACA9AACoEQAgAgAAAKYRACA9AACnEQAgGoAFAAClEQAwgQUAAKYRABCCBQAApREAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIaMFQADoCAAhsQUBAMAIACG0BQEAwAgAIbYFAQDACAAh0wUAAPwJsQYilQZAAOkIACGbBgEAwAgAIakGAQClCAAhsgYBAKUIACGzBgEApQgAIbQGAQClCAAhtQYBAMAIACG2BgEAwAgAIbcGAQDACAAhuAYBAMAIACG5BgEAwAgAIboGAQDACAAhuwYBAMAIACG8BgEAwAgAIb0GAQDACAAhGoAFAAClEQAwgQUAAKYRABCCBQAApREAMIMFAgDnCAAhhAUCAOcIACGYBUAA6AgAIaMFQADoCAAhsQUBAMAIACG0BQEAwAgAIbYFAQDACAAh0wUAAPwJsQYilQZAAOkIACGbBgEAwAgAIakGAQClCAAhsgYBAKUIACGzBgEApQgAIbQGAQClCAAhtQYBAMAIACG2BgEAwAgAIbcGAQDACAAhuAYBAMAIACG5BgEAwAgAIboGAQDACAAhuwYBAMAIACG8BgEAwAgAIb0GAQDACAAhFoMFAgCICgAhmAVAAJ0KACGjBUAAnQoAIbEFAQCcCgAhtAUBAJwKACG2BQEAnAoAIdMFAAC5DbEGIpUGQADJCwAhmwYBAJwKACGpBgEAhwoAIbIGAQCHCgAhswYBAIcKACG0BgEAhwoAIbUGAQCcCgAhtgYBAJwKACG3BgEAnAoAIbgGAQCcCgAhuQYBAJwKACG6BgEAnAoAIbsGAQCcCgAhvAYBAJwKACG9BgEAnAoAIR8FAADNDgAgCAAAzw4AIAwAANEOACAYAADODgAgHAAA0A4AIB0AANIOACAeAADTDgAgHwAA1A4AICUAANUOACCDBQIAiAoAIZgFQACdCgAhowVAAJ0KACGxBQEAnAoAIbQFAQCcCgAhtgUBAJwKACHTBQAAuQ2xBiKVBkAAyQsAIZsGAQCcCgAhqQYBAIcKACGyBgEAhwoAIbMGAQCHCgAhtAYBAIcKACG1BgEAnAoAIbYGAQCcCgAhtwYBAJwKACG4BgEAnAoAIbkGAQCcCgAhugYBAJwKACG7BgEAnAoAIbwGAQCcCgAhvQYBAJwKACEfBQAArQ8AIAgAAK8PACAMAACxDwAgGAAArg8AIBwAALAPACAdAACyDwAgHgAAsw8AIB8AALQPACAlAAC1DwAggwUCAAAAAZgFQAAAAAGjBUAAAAABsQUBAAAAAbQFAQAAAAG2BQEAAAAB0wUAAACxBgKVBkAAAAABmwYBAAAAAakGAQAAAAGyBgEAAAABswYBAAAAAbQGAQAAAAG1BgEAAAABtgYBAAAAAbcGAQAAAAG4BgEAAAABuQYBAAAAAboGAQAAAAG7BgEAAAABvAYBAAAAAb0GAQAAAAEERAAAnhEAMM8GAACfEQAw0QYAAKERACDVBgAAohEAMAREAACVEQAwzwYAAJYRADDRBgAAmBEAINUGAACzDQAwBEQAAIkRADDPBgAAihEAMNEGAACMEQAg1QYAAI0RADAERAAA_RAAMM8GAAD-EAAw0QYAAIARACDVBgAAgREAMAREAAD0EAAwzwYAAPUQADDRBgAA9xAAINUGAADRDQAwBEQAAOgQADDPBgAA6RAAMNEGAADrEAAg1QYAAOwQADAERAAA3BAAMM8GAADdEAAw0QYAAN8QACDVBgAA4BAAMAREAADTEAAwzwYAANQQADDRBgAA1hAAINUGAACFDgAwBEQAAMcQADDPBgAAyBAAMNEGAADKEAAg1QYAAMsQADAERAAAuxAAMM8GAAC8EAAw0QYAAL4QACDVBgAAvxAAMAREAACvEAAwzwYAALAQADDRBgAAshAAINUGAACzEAAwBEQAAKYQADDPBgAApxAAMNEGAACpEAAg1QYAALcLADAERAAAnRAAMM8GAACeEAAw0QYAAKAQACDVBgAAqwsAMAREAACUEAAwzwYAAJUQADDRBgAAlxAAINUGAAD0DgAwA0QAAI8QACDPBgAAkBAAINUGAACeBgAgA0QAAIoQACDPBgAAixAAINUGAAC2BgAgA0QAAIUQACDPBgAAhhAAINUGAADOBgAgA0QAAIAQACDPBgAAgRAAINUGAADmBgAgA0QAAPsPACDPBgAA_A8AINUGAACUBwAgBEQAAO8PADDPBgAA8A8AMNEGAADyDwAg1QYAAPMPADAERAAA4w8AMM8GAADkDwAw0QYAAOYPACDVBgAA5w8AMAREAADXDwAwzwYAANgPADDRBgAA2g8AINUGAADbDwAwA0QAANIPACDPBgAA0w8AINUGAACECAAgAAAAAAAAAAAAAAAAAAADAwAAiwoAIMYFAACWCgAgxwUAAJYKACABAwAAiwoAIAEDAACLCgAgCwMAAIsKACCtBQAAlgoAIK4FAACWCgAgrwUAAJYKACCwBQAAlgoAILEFAACWCgAgsgUAAJYKACCzBQAAlgoAILQFAACWCgAgtQUAAJYKACC2BQAAlgoAIAEDAACLCgAgAAAAAQMAAIsKACAYAwAAiwoAIAUAAMIRACAIAADFEQAgDAAAyBEAIBgAANoRACAcAADsEQAgHQAAzhEAIB4AAO0RACAfAADuEQAgJQAAzBEAILEFAACWCgAgtAUAAJYKACC2BQAAlgoAIJUGAACWCgAgmwYAAJYKACC1BgAAlgoAILYGAACWCgAgtwYAAJYKACC4BgAAlgoAILkGAACWCgAgugYAAJYKACC7BgAAlgoAILwGAACWCgAgvQYAAJYKACAAAAcDAACLCgAgIgAA3BEAICQAAN0RACDKBQAAlgoAINkFAACWCgAg2wUAAJYKACDcBQAAlgoAIAcDAACLCgAgBAAA2BEAIBkAAM0RACAgAADcEQAgIQAAzBEAIKQFAACWCgAg3QUAAJYKACAAAgQAANgRACAbAADfEQAgAAoDAACLCgAgBAAA2BEAIAcAAOkRACAIAADFEQAgCwAA4hEAIBgAANoRACAZAADrEQAglAUAAJYKACCXBQAAlgoAIK4GAACWCgAgDQMAAIsKACAEAADYEQAgBgAA4BEAIAcAAOkRACALAADiEQAgDAAA5REAIBAAAOgRACAXAADqEQAglAUAAJYKACCRBgAAlgoAIJkGAACWCgAgnQYAAJYKACCeBgAAlgoAIAYDAACLCgAgBQAAwhEAIAgAAMURACAUAADIEQAgFQAA2REAIBYAANoRACAAAwsAAOIRACARAADjEQAglwUAAJYKACANBAAA2BEAIAkAAOERACAKAACLCgAgCwAA4hEAIA0AAOYRACAQAADoEQAgEwAA4xEAIJQFAACWCgAglwUAAJYKACDxBQAAlgoAIPIFAACWCgAg9wUAAJYKACD7BQAAlgoAIAAMCQAA4REAIAwAAOURACANAADmEQAgkgUAAJYKACDxBQAAlgoAIPsFAACWCgAgigYAAJYKACCLBgAAlgoAIIwGAACWCgAgjQYAAJYKACCOBgAAlgoAII8GAACWCgAgAAUDAACLCgAgBQAAwhEAIAgAAMURACCxBQAAlgoAIKkGAACWCgAgAAAAAAIDAACLCgAgBAAA2BEAIBaDBQIAAAABmAVAAAAAAaMFQAAAAAGxBQEAAAABtAUBAAAAAbYFAQAAAAHTBQAAALEGApUGQAAAAAGbBgEAAAABqQYBAAAAAbIGAQAAAAGzBgEAAAABtAYBAAAAAbUGAQAAAAG2BgEAAAABtwYBAAAAAbgGAQAAAAG5BgEAAAABugYBAAAAAbsGAQAAAAG8BgEAAAABvQYBAAAAARCDBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgaDBQIAAAABmAVAAAAAAZkFAQAAAAGxBQEAAAABqAYBAAAAAakGAQAAAAEFgwUCAAAAAZgFQAAAAAGiBQIAAAABpgYBAAAAAacGAQAAAAESgwUCAAAAAZQFAgAAAAGYBUAAAAABowVAAAAAAaQFAgAAAAHTBQAAAJ0GApEGAgAAAAGSBgIAAAABkwYBAAAAAZQGAQAAAAGVBkAAAAABlgYBAAAAAZgGAAAAmAYCmQaAAAAAAZoGQAAAAAGbBgEAAAABnQYBAAAAAZ4GAQAAAAEEgwUCAAAAAYUGAQAAAAGGBgEAAAABhwYBAAAAAQWDBQIAAAABgQYBAAAAAYIGAQAAAAGDBgEAAAABhAYBAAAAARGDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAAD7BQLxBQIAAAAB8wUQAAAAAfQFEAAAAAH1BRAAAAAB9gUQAAAAAfcFEAAAAAH4BRAAAAAB-QUQAAAAAfsFAQAAAAECgwUCAAAAAZgFQAAAAAEEgwUCAAAAAZgFQAAAAAHnBQEAAAAB6AUgAAAAAQWDBQIAAAABmAVAAAAAAeQFAAAA5AUC5QUBAAAAAeYFIAAAAAEGgwUCAAAAAZgFQAAAAAGZBQEAAAABowVAAAAAAaQFAgAAAAHdBQIAAAABCoMFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHKBQEAAAABywUEAAAAAdkFAgAAAAHaBSAAAAAB2wUCAAAAAdwFAQAAAAEJgwUCAAAAAZgFQAAAAAGkBQIAAAABzwUAAADPBQLRBQAAANEFAtMFAAAA0wUC1AUBAAAAAdUFAgAAAAHWBQEAAAABBIMFAgAAAAGYBUAAAAABmQUBAAAAAa0FAQAAAAEFgwUCAAAAAaMFQAAAAAGkBQIAAAABpQUBAAAAAaYFIAAAAAENgwUCAAAAAZgFQAAAAAGZBQEAAAABmgUBAAAAAZsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQAAAAGiBQIAAAABowVAAAAAASAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAACAEgAgEIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAAB0wUBAAAAAeQFAQAAAAH-BQEAAAABkgYCAAAAAaoGQAAAAAGrBgEAAAABrAYBAAAAAa0GIAAAAAGuBgEAAAABrwYgAAAAAbEGAAAAsQYCDYMFAgAAAAGUBQIAAAABmAVAAAAAAYgGAQAAAAGMBgEAAAABjQYBAAAAAZEGAgAAAAGfBgEAAAABoAYQAAAAAaEGAQAAAAGiBgEAAAABpAYAAACkBgKlBgEAAAABEoMFAgAAAAGEBQIAAAABlAUCAAAAAZgFQAAAAAGjBUAAAAAB0wUAAACdBgKRBgIAAAABkgYCAAAAAZMGAQAAAAGUBgEAAAABlQZAAAAAAZYGAQAAAAGYBgAAAJgGApkGgAAAAAGaBkAAAAABmwYBAAAAAZ0GAQAAAAGeBgEAAAABBIMFAgAAAAGYBUAAAAAB_gUBAAAAAYAGAAAAgAYCEYMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABowVAAAAAAdMFAAAA-wUC8QUCAAAAAfIFAgAAAAHzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB9wUQAAAAAfgFEAAAAAH5BRAAAAAB-wUBAAAAAQmDBQIAAAABhAUCAAAAAZgFQAAAAAHPBQAAAM8FAtEFAAAA0QUC0wUAAADTBQLUBQEAAAAB1QUCAAAAAdYFAQAAAAEIgwUCAAAAAaMFQAAAAAHIBQEAAAAByQUBAAAAAcoFAQAAAAHLBQQAAAABzAUBAAAAAc0FQAAAAAEGgwUCAAAAAYQFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHdBQIAAAABAwAAAA0AIEQAAIASACBFAACMEgAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AACMEgAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhFwMAAOcNACAEAADmDQAgBwAA6A0AIAgAAOoNACALAAC3DgAgGAAA6Q0AIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgIAAAAJACBEAACNEgAgAwAAAAcAIEQAAI0SACBFAACREgAgGQAAAAcAIAMAALwNACAEAAC7DQAgBwAAvQ0AIAgAAL8NACALAAC1DgAgGAAAvg0AID0AAJESACCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhpAUCAIgKACHTBQEAhwoAIeQFAQCHCgAh_gUBAIcKACGSBgIAiAoAIaoGQACdCgAhqwYBAIcKACGsBgEAhwoAIa0GIAC6CgAhrgYBAJwKACGvBiAAugoAIbEGAAC5DbEGIhcDAAC8DQAgBAAAuw0AIAcAAL0NACAIAAC_DQAgCwAAtQ4AIBgAAL4NACCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhpAUCAIgKACHTBQEAhwoAIeQFAQCHCgAh_gUBAIcKACGSBgIAiAoAIaoGQACdCgAhqwYBAIcKACGsBgEAhwoAIa0GIAC6CgAhrgYBAJwKACGvBiAAugoAIbEGAAC5DbEGIiAFAACrEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAACSEgAgCwMAAJYOACAIAACXDgAgFAAAmA4AIBUAAJkOACAWAACaDgAggwUCAAAAAYQFAgAAAAGYBUAAAAABogUCAAAAAaYGAQAAAAGnBgEAAAABAgAAAJABACBEAACUEgAgAwAAABcAIEQAAJQSACBFAACYEgAgDQAAABcAIAMAAKkNACAIAACqDQAgFAAAqw0AIBUAAKwNACAWAACtDQAgPQAAmBIAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaIFAgCICgAhpgYBAIcKACGnBgEAhwoAIQsDAACpDQAgCAAAqg0AIBQAAKsNACAVAACsDQAgFgAArQ0AIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaIFAgCICgAhpgYBAIcKACGnBgEAhwoAIRCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaQFAgAAAAHTBQEAAAAB5AUBAAAAAf4FAQAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAhKDBQIAAAABhAUCAAAAAZQFAgAAAAGYBUAAAAABowVAAAAAAaQFAgAAAAHTBQAAAJ0GApEGAgAAAAGTBgEAAAABlAYBAAAAAZUGQAAAAAGWBgEAAAABmAYAAACYBgKZBoAAAAABmgZAAAAAAZsGAQAAAAGdBgEAAAABngYBAAAAAQMAAAANACBEAACSEgAgRQAAnRIAICIAAAANACAFAAC8DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAgPQAAnRIAIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAALwPACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAACeEgAgEoMFAgAAAAGEBQIAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAACdBgKRBgIAAAABkgYCAAAAAZMGAQAAAAGUBgEAAAABlQZAAAAAAZYGAQAAAAGYBgAAAJgGApkGgAAAAAGaBkAAAAABmwYBAAAAAZ0GAQAAAAGeBgEAAAABEYMFAgAAAAGEBQIAAAABlwUBAAAAAZgFQAAAAAGjBUAAAAABpAUCAAAAAdMFAAAA-wUC8QUCAAAAAfIFAgAAAAHzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB9wUQAAAAAfgFEAAAAAH5BRAAAAAB-wUBAAAAAQWDBQIAAAABlQUQAAAAAZYFEAAAAAGXBQEAAAABmAVAAAAAAQ2DBQIAAAABmAVAAAAAAaQFAgAAAAGIBgEAAAABjAYBAAAAAY0GAQAAAAGRBgIAAAABnwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaQGAAAApAYCpQYBAAAAAQkDAAC4DgAgCAAAug4AIIMFAgAAAAGEBQIAAAABmAVAAAAAAZkFAQAAAAGxBQEAAAABqAYBAAAAAakGAQAAAAECAAAAjQEAIEQAAKQSACAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMQAAuhEAIDIAALsRACAzAAC8EQAgNAAAvREAIDUAAL4RACA2AAC_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_BgIAAAABwAYgAAAAAcEGAgAAAAHCBiAAAAABwwYCAAAAAcQGAgAAAAECAAAAAQAgRAAAphIAICADAACsDwAgCAAArw8AIAwAALEPACAYAACuDwAgHAAAsA8AIB0AALIPACAeAACzDwAgHwAAtA8AICUAALUPACCDBQIAAAABhAUCAAAAAZgFQAAAAAGjBUAAAAABsQUBAAAAAbQFAQAAAAG2BQEAAAAB0wUAAACxBgKVBkAAAAABmwYBAAAAAakGAQAAAAGyBgEAAAABswYBAAAAAbQGAQAAAAG1BgEAAAABtgYBAAAAAbcGAQAAAAG4BgEAAAABuQYBAAAAAboGAQAAAAG7BgEAAAABvAYBAAAAAb0GAQAAAAECAAAABQAgRAAAqBIAIA2DBQIAAAABlAUCAAAAAZgFQAAAAAGkBQIAAAABiAYBAAAAAYwGAQAAAAGNBgEAAAABnwYBAAAAAaAGEAAAAAGhBgEAAAABogYBAAAAAaQGAAAApAYCpQYBAAAAARKDBQIAAAABhAUCAAAAAZQFAgAAAAGYBUAAAAABowVAAAAAAaQFAgAAAAHTBQAAAJ0GApIGAgAAAAGTBgEAAAABlAYBAAAAAZUGQAAAAAGWBgEAAAABmAYAAACYBgKZBoAAAAABmgZAAAAAAZsGAQAAAAGdBgEAAAABngYBAAAAAQSDBQIAAAAByAUBAAAAAcoFAQAAAAHMBQEAAAABAwAAAAsAIEQAAKQSACBFAACvEgAgCwAAAAsAIAMAAKEOACAIAACjDgAgPQAArxIAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIZkFAQCHCgAhsQUBAJwKACGoBgEAhwoAIakGAQCcCgAhCQMAAKEOACAIAACjDgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhmQUBAIcKACGxBQEAnAoAIagGAQCHCgAhqQYBAJwKACEDAAAADQAgRAAAphIAIEUAALISACAiAAAADQAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AALISACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEDAAAAAwAgRAAAqBIAIEUAALUSACAiAAAAAwAgAwAAzA4AIAgAAM8OACAMAADRDgAgGAAAzg4AIBwAANAOACAdAADSDgAgHgAA0w4AIB8AANQOACAlAADVDgAgPQAAtRIAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaMFQACdCgAhsQUBAJwKACG0BQEAnAoAIbYFAQCcCgAh0wUAALkNsQYilQZAAMkLACGbBgEAnAoAIakGAQCHCgAhsgYBAIcKACGzBgEAhwoAIbQGAQCHCgAhtQYBAJwKACG2BgEAnAoAIbcGAQCcCgAhuAYBAJwKACG5BgEAnAoAIboGAQCcCgAhuwYBAJwKACG8BgEAnAoAIb0GAQCcCgAhIAMAAMwOACAIAADPDgAgDAAA0Q4AIBgAAM4OACAcAADQDgAgHQAA0g4AIB4AANMOACAfAADUDgAgJQAA1Q4AIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaMFQACdCgAhsQUBAJwKACG0BQEAnAoAIbYFAQCcCgAh0wUAALkNsQYilQZAAMkLACGbBgEAnAoAIakGAQCHCgAhsgYBAIcKACGzBgEAhwoAIbQGAQCHCgAhtQYBAJwKACG2BgEAnAoAIbcGAQCcCgAhuAYBAJwKACG5BgEAnAoAIboGAQCcCgAhuwYBAJwKACG8BgEAnAoAIb0GAQCcCgAhEIMFAgAAAAGEBQIAAAABlwUBAAAAAZgFQAAAAAGkBQIAAAAB0wUBAAAAAeQFAQAAAAH-BQEAAAABkgYCAAAAAaoGQAAAAAGrBgEAAAABrAYBAAAAAa0GIAAAAAGuBgEAAAABrwYgAAAAAbEGAAAAsQYCAwAAAA0AIEQAAJ4SACBFAAC5EgAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AAC5EgAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhCwMAAJYOACAFAACbDgAgCAAAlw4AIBQAAJgOACAVAACZDgAggwUCAAAAAYQFAgAAAAGYBUAAAAABogUCAAAAAaYGAQAAAAGnBgEAAAABAgAAAJABACBEAAC6EgAgIAMAAKwPACAFAACtDwAgCAAArw8AIAwAALEPACAcAACwDwAgHQAAsg8AIB4AALMPACAfAAC0DwAgJQAAtQ8AIIMFAgAAAAGEBQIAAAABmAVAAAAAAaMFQAAAAAGxBQEAAAABtAUBAAAAAbYFAQAAAAHTBQAAALEGApUGQAAAAAGbBgEAAAABqQYBAAAAAbIGAQAAAAGzBgEAAAABtAYBAAAAAbUGAQAAAAG2BgEAAAABtwYBAAAAAbgGAQAAAAG5BgEAAAABugYBAAAAAbsGAQAAAAG8BgEAAAABvQYBAAAAAQIAAAAFACBEAAC8EgAgFwMAAOcNACAEAADmDQAgBwAA6A0AIAgAAOoNACALAAC3DgAgGQAA6w0AIIMFAgAAAAGEBQIAAAABlAUCAAAAAZcFAQAAAAGYBUAAAAABpAUCAAAAAdMFAQAAAAHkBQEAAAAB_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_gUBAAAAAZIGAgAAAAGqBkAAAAABqwYBAAAAAawGAQAAAAGtBiAAAAABrgYBAAAAAa8GIAAAAAGxBgAAALEGAgIAAAAJACBEAADPEgAgIAMAAKwPACAFAACtDwAgDAAAsQ8AIBgAAK4PACAcAACwDwAgHQAAsg8AIB4AALMPACAfAAC0DwAgJQAAtQ8AIIMFAgAAAAGEBQIAAAABmAVAAAAAAaMFQAAAAAGxBQEAAAABtAUBAAAAAbYFAQAAAAHTBQAAALEGApUGQAAAAAGbBgEAAAABqQYBAAAAAbIGAQAAAAGzBgEAAAABtAYBAAAAAbUGAQAAAAG2BgEAAAABtwYBAAAAAbgGAQAAAAG5BgEAAAABugYBAAAAAbsGAQAAAAG8BgEAAAABvQYBAAAAAQIAAAAFACBEAADREgAgEIMFAgAAAAGSBQIAAAAB0wUAAACRBgLzBRAAAAAB9AUQAAAAAfUFEAAAAAH2BRAAAAAB-wUBAAAAAYgGAQAAAAGJBkAAAAABigYBAAAAAYsGAQAAAAGMBgEAAAABjQYBAAAAAY4GAQAAAAGPBhAAAAABBIMFAgAAAAHIBQEAAAABygUBAAAAAcwFAQAAAAEDAAAAFwAgRAAAyRIAIEUAANcSACANAAAAFwAgAwAAqQ0AIAUAAK4NACAUAACrDQAgFQAArA0AIBYAAK0NACA9AADXEgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhogUCAIgKACGmBgEAhwoAIacGAQCHCgAhCwMAAKkNACAFAACuDQAgFAAAqw0AIBUAAKwNACAWAACtDQAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhogUCAIgKACGmBgEAhwoAIacGAQCHCgAhAwAAAAsAIEQAAMsSACBFAADaEgAgCwAAAAsAIAMAAKEOACAFAACiDgAgPQAA2hIAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIZkFAQCHCgAhsQUBAJwKACGoBgEAhwoAIakGAQCcCgAhCQMAAKEOACAFAACiDgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhmQUBAIcKACGxBQEAnAoAIagGAQCHCgAhqQYBAJwKACEDAAAADQAgRAAAzRIAIEUAAN0SACAiAAAADQAgBQAAvA8AIAcAAL0PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAN0SACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEDAAAABwAgRAAAzxIAIEUAAOASACAZAAAABwAgAwAAvA0AIAQAALsNACAHAAC9DQAgCwAAtQ4AIBgAAL4NACAZAADADQAgPQAA4BIAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGkBQIAiAoAIdMFAQCHCgAh5AUBAIcKACH-BQEAhwoAIZIGAgCICgAhqgZAAJ0KACGrBgEAhwoAIawGAQCHCgAhrQYgALoKACGuBgEAnAoAIa8GIAC6CgAhsQYAALkNsQYiFwMAALwNACAEAAC7DQAgBwAAvQ0AIAsAALUOACAYAAC-DQAgGQAAwA0AIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGkBQIAiAoAIdMFAQCHCgAh5AUBAIcKACH-BQEAhwoAIZIGAgCICgAhqgZAAJ0KACGrBgEAhwoAIawGAQCHCgAhrQYgALoKACGuBgEAnAoAIa8GIAC6CgAhsQYAALkNsQYiAwAAAAMAIEQAANESACBFAADjEgAgIgAAAAMAIAMAAMwOACAFAADNDgAgDAAA0Q4AIBgAAM4OACAcAADQDgAgHQAA0g4AIB4AANMOACAfAADUDgAgJQAA1Q4AID0AAOMSACCDBQIAiAoAIYQFAgCICgAhmAVAAJ0KACGjBUAAnQoAIbEFAQCcCgAhtAUBAJwKACG2BQEAnAoAIdMFAAC5DbEGIpUGQADJCwAhmwYBAJwKACGpBgEAhwoAIbIGAQCHCgAhswYBAIcKACG0BgEAhwoAIbUGAQCcCgAhtgYBAJwKACG3BgEAnAoAIbgGAQCcCgAhuQYBAJwKACG6BgEAnAoAIbsGAQCcCgAhvAYBAJwKACG9BgEAnAoAISADAADMDgAgBQAAzQ4AIAwAANEOACAYAADODgAgHAAA0A4AIB0AANIOACAeAADTDgAgHwAA1A4AICUAANUOACCDBQIAiAoAIYQFAgCICgAhmAVAAJ0KACGjBUAAnQoAIbEFAQCcCgAhtAUBAJwKACG2BQEAnAoAIdMFAAC5DbEGIpUGQADJCwAhmwYBAJwKACGpBgEAhwoAIbIGAQCHCgAhswYBAIcKACG0BgEAhwoAIbUGAQCcCgAhtgYBAJwKACG3BgEAnAoAIbgGAQCcCgAhuQYBAJwKACG6BgEAnAoAIbsGAQCcCgAhvAYBAJwKACG9BgEAnAoAIRgEAACoDAAgCQAApwwAIAoAAKkMACALAACqDAAgDQAAqwwAIBMAAK0MACCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAAD7BQLxBQIAAAAB8gUCAAAAAfMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH3BRAAAAAB-AUQAAAAAfkFEAAAAAH7BQEAAAABAgAAABwAIEQAAOQSACADAAAAGgAgRAAA5BIAIEUAAOgSACAaAAAAGgAgBAAA8gsAIAkAAPELACAKAADzCwAgCwAA9AsAIA0AAPULACATAAD3CwAgPQAA6BIAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8QUCAPkKACHyBQIA-QoAIfMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh9wUQAO8LACH4BRAAkQoAIfkFEACRCgAh-wUBAJwKACEYBAAA8gsAIAkAAPELACAKAADzCwAgCwAA9AsAIA0AAPULACATAAD3CwAggwUCAIgKACGEBQIAiAoAIZQFAgD5CgAhlwUBAJwKACGYBUAAnQoAIaMFQACdCgAhpAUCAIgKACHTBQAA8Av7BSLxBQIA-QoAIfIFAgD5CgAh8wUQAJEKACH0BRAAkQoAIfUFEACRCgAh9gUQAJEKACH3BRAA7wsAIfgFEACRCgAh-QUQAJEKACH7BQEAnAoAIRoDAACSDQAgBAAAkA0AIAYAAJENACAHAACTDQAgCwAAlA0AIAwAAJcNACAQAACVDQAggwUCAAAAAYQFAgAAAAGUBQIAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAACdBgKRBgIAAAABkgYCAAAAAZMGAQAAAAGUBgEAAAABlQZAAAAAAZYGAQAAAAGYBgAAAJgGApkGgAAAAAGaBkAAAAABmwYBAAAAAZ0GAQAAAAGeBgEAAAABAgAAABIAIEQAAOkSACADAAAAEAAgRAAA6RIAIEUAAO0SACAcAAAAEAAgAwAA8AwAIAQAAO4MACAGAADvDAAgBwAA8QwAIAsAAPIMACAMAAD1DAAgEAAA8wwAID0AAO0SACCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGYBUAAnQoAIaMFQACdCgAhpAUCAIgKACHTBQAA7QydBiKRBgIA-QoAIZIGAgCICgAhkwYBAIcKACGUBgEAhwoAIZUGQACdCgAhlgYBAIcKACGYBgAA7AyYBiKZBoAAAAABmgZAAJ0KACGbBgEAhwoAIZ0GAQCcCgAhngYBAJwKACEaAwAA8AwAIAQAAO4MACAGAADvDAAgBwAA8QwAIAsAAPIMACAMAAD1DAAgEAAA8wwAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZgFQACdCgAhowVAAJ0KACGkBQIAiAoAIdMFAADtDJ0GIpEGAgD5CgAhkgYCAIgKACGTBgEAhwoAIZQGAQCHCgAhlQZAAJ0KACGWBgEAhwoAIZgGAADsDJgGIpkGgAAAAAGaBkAAnQoAIZsGAQCHCgAhnQYBAJwKACGeBgEAnAoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAADuEgAgAwAAAA0AIEQAAO4SACBFAADyEgAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AADyEgAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAAKsRACAHAACsEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKgAAsREAICsAALIRACAsAACzEQAgLQAAtBEAIC4AALYRACAvAAC4EQAgMAAAuREAIDEAALoRACAyAAC7EQAgMwAAvBEAIDQAAL0RACA1AAC-EQAgNgAAvxEAIDcAAMARACCDBQIAAAABhgYBAAAAAYcGAQAAAAG-BiAAAAABvwYCAAAAAcAGIAAAAAHBBgIAAAABwgYgAAAAAcMGAgAAAAHEBgIAAAABAgAAAAEAIEQAAPMSACADAAAADQAgRAAA8xIAIEUAAPcSACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAPcSACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgAwAArA8AIAUAAK0PACAIAACvDwAgDAAAsQ8AIBgAAK4PACAdAACyDwAgHgAAsw8AIB8AALQPACAlAAC1DwAggwUCAAAAAYQFAgAAAAGYBUAAAAABowVAAAAAAbEFAQAAAAG0BQEAAAABtgUBAAAAAdMFAAAAsQYClQZAAAAAAZsGAQAAAAGpBgEAAAABsgYBAAAAAbMGAQAAAAG0BgEAAAABtQYBAAAAAbYGAQAAAAG3BgEAAAABuAYBAAAAAbkGAQAAAAG6BgEAAAABuwYBAAAAAbwGAQAAAAG9BgEAAAABAgAAAAUAIEQAAPgSACAEgwUCAAAAAcgFAQAAAAHNBUAAAAAB_AUAAQAAAQMAAAADACBEAAD4EgAgRQAA_RIAICIAAAADACADAADMDgAgBQAAzQ4AIAgAAM8OACAMAADRDgAgGAAAzg4AIB0AANIOACAeAADTDgAgHwAA1A4AICUAANUOACA9AAD9EgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhowVAAJ0KACGxBQEAnAoAIbQFAQCcCgAhtgUBAJwKACHTBQAAuQ2xBiKVBkAAyQsAIZsGAQCcCgAhqQYBAIcKACGyBgEAhwoAIbMGAQCHCgAhtAYBAIcKACG1BgEAnAoAIbYGAQCcCgAhtwYBAJwKACG4BgEAnAoAIbkGAQCcCgAhugYBAJwKACG7BgEAnAoAIbwGAQCcCgAhvQYBAJwKACEgAwAAzA4AIAUAAM0OACAIAADPDgAgDAAA0Q4AIBgAAM4OACAdAADSDgAgHgAA0w4AIB8AANQOACAlAADVDgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhowVAAJ0KACGxBQEAnAoAIbQFAQCcCgAhtgUBAJwKACHTBQAAuQ2xBiKVBkAAyQsAIZsGAQCcCgAhqQYBAIcKACGyBgEAhwoAIbMGAQCHCgAhtAYBAIcKACG1BgEAnAoAIbYGAQCcCgAhtwYBAJwKACG4BgEAnAoAIbkGAQCcCgAhugYBAJwKACG7BgEAnAoAIbwGAQCcCgAhvQYBAJwKACEGBAAAyQwAIIMFAgAAAAGYBUAAAAABpAUCAAAAAf4FAQAAAAGABgAAAIAGAgIAAABdACBEAAD-EgAgAwAAAFsAIEQAAP4SACBFAACCEwAgCAAAAFsAIAQAALsMACA9AACCEwAggwUCAIgKACGYBUAAnQoAIaQFAgCICgAh_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_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAJkTACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_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_sFIvEFAgD5CgAh8gUCAPkKACHzBRAAkQoAIfQFEACRCgAh9QUQAJEKACH2BRAAkQoAIfcFEADvCwAh-AUQAJEKACH5BRAAkQoAIfsFAQCcCgAhIAUAAKsRACAHAACsEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACAsAACzEQAgLQAAtBEAIC4AALYRACAvAAC4EQAgMAAAuREAIDEAALoRACAyAAC7EQAgMwAAvBEAIDQAAL0RACA1AAC-EQAgNgAAvxEAIDcAAMARACCDBQIAAAABhgYBAAAAAYcGAQAAAAG-BiAAAAABvwYCAAAAAcAGIAAAAAHBBgIAAAABwgYgAAAAAcMGAgAAAAHEBgIAAAABAgAAAAEAIEQAAKoTACADAAAADQAgRAAAqhMAIEUAAK4TACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAK4TACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAqxEAIAcAAKwRACAIAACuEQAgHQAAtxEAICUAALURACAmAACqEQAgJwAArREAICgAAK8RACApAACwEQAgKgAAsREAICsAALIRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMQAAuhEAIDIAALsRACAzAAC8EQAgNAAAvREAIDUAAL4RACA2AAC_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_BgIAAAABwAYgAAAAAcEGAgAAAAHCBiAAAAABwwYCAAAAAcQGAgAAAAECAAAAAQAgRAAArxMAIAMAAAANACBEAACvEwAgRQAAsxMAICIAAAANACAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAgPQAAsxMAIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAAC0EwAgAwAAAA0AIEQAALQTACBFAAC4EwAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AAC4EwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhCwMAAMALACAEAADBCwAgGQAAwgsAICAAAMMLACCDBQIAAAABhAUCAAAAAZgFQAAAAAGZBQEAAAABowVAAAAAAaQFAgAAAAHdBQIAAAABAgAAAHIAIEQAALkTACAgAwAArA8AIAUAAK0PACAIAACvDwAgDAAAsQ8AIBgAAK4PACAcAACwDwAgHQAAsg8AIB4AALMPACAfAAC0DwAggwUCAAAAAYQFAgAAAAGYBUAAAAABowVAAAAAAbEFAQAAAAG0BQEAAAABtgUBAAAAAdMFAAAAsQYClQZAAAAAAZsGAQAAAAGpBgEAAAABsgYBAAAAAbMGAQAAAAG0BgEAAAABtQYBAAAAAbYGAQAAAAG3BgEAAAABuAYBAAAAAbkGAQAAAAG6BgEAAAABuwYBAAAAAbwGAQAAAAG9BgEAAAABAgAAAAUAIEQAALsTACAgBQAAqxEAIAcAAKwRACAIAACuEQAgHQAAtxEAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMQAAuhEAIDIAALsRACAzAAC8EQAgNAAAvREAIDUAAL4RACA2AAC_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_BgIAAAABwAYgAAAAAcEGAgAAAAHCBiAAAAABwwYCAAAAAcQGAgAAAAECAAAAAQAgRAAAvRMAIAaDBQIAAAABhAUCAAAAAZgFQAAAAAGZBQEAAAABowVAAAAAAaQFAgAAAAEKgwUCAAAAAYQFAgAAAAGYBUAAAAABmQUBAAAAAaMFQAAAAAHKBQEAAAABywUEAAAAAdoFIAAAAAHbBQIAAAAB3AUBAAAAAQMAAAADACBEAAC7EwAgRQAAwxMAICIAAAADACADAADMDgAgBQAAzQ4AIAgAAM8OACAMAADRDgAgGAAAzg4AIBwAANAOACAdAADSDgAgHgAA0w4AIB8AANQOACA9AADDEwAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhowVAAJ0KACGxBQEAnAoAIbQFAQCcCgAhtgUBAJwKACHTBQAAuQ2xBiKVBkAAyQsAIZsGAQCcCgAhqQYBAIcKACGyBgEAhwoAIbMGAQCHCgAhtAYBAIcKACG1BgEAnAoAIbYGAQCcCgAhtwYBAJwKACG4BgEAnAoAIbkGAQCcCgAhugYBAJwKACG7BgEAnAoAIbwGAQCcCgAhvQYBAJwKACEgAwAAzA4AIAUAAM0OACAIAADPDgAgDAAA0Q4AIBgAAM4OACAcAADQDgAgHQAA0g4AIB4AANMOACAfAADUDgAggwUCAIgKACGEBQIAiAoAIZgFQACdCgAhowVAAJ0KACGxBQEAnAoAIbQFAQCcCgAhtgUBAJwKACHTBQAAuQ2xBiKVBkAAyQsAIZsGAQCcCgAhqQYBAIcKACGyBgEAhwoAIbMGAQCHCgAhtAYBAIcKACG1BgEAnAoAIbYGAQCcCgAhtwYBAJwKACG4BgEAnAoAIbkGAQCcCgAhugYBAJwKACG7BgEAnAoAIbwGAQCcCgAhvQYBAJwKACEDAAAADQAgRAAAvRMAIEUAAMYTACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAMYTACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_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_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_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_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAO0TACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAqxEAIAcAAKwRACAIAACuEQAgHQAAtxEAICUAALURACAmAACqEQAgJwAArREAICgAAK8RACApAACwEQAgKgAAsREAICsAALIRACAsAACzEQAgLQAAtBEAIC4AALYRACAvAAC4EQAgMQAAuhEAIDIAALsRACAzAAC8EQAgNAAAvREAIDUAAL4RACA2AAC_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_BgIAAAABwAYgAAAAAcEGAgAAAAHCBiAAAAABwwYCAAAAAcQGAgAAAAECAAAAAQAgRAAA7hMAIAMAAAANACBEAADuEwAgRQAA8hMAICIAAAANACAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAgPQAA8hMAIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAADzEwAgAwAAAA0AIEQAAPMTACBFAAD3EwAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AAD3EwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAAKsRACAHAACsEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMwAAvBEAIDQAAL0RACA1AAC-EQAgNgAAvxEAIDcAAMARACCDBQIAAAABhgYBAAAAAYcGAQAAAAG-BiAAAAABvwYCAAAAAcAGIAAAAAHBBgIAAAABwgYgAAAAAcMGAgAAAAHEBgIAAAABAgAAAAEAIEQAAPgTACADAAAADQAgRAAA-BMAIEUAAPwTACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAzAADNDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AID0AAPwTACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAqxEAIAcAAKwRACAIAACuEQAgHQAAtxEAICUAALURACAmAACqEQAgJwAArREAICgAAK8RACApAACwEQAgKgAAsREAICsAALIRACAsAACzEQAgLQAAtBEAIC4AALYRACAvAAC4EQAgMAAAuREAIDEAALoRACAyAAC7EQAgMwAAvBEAIDUAAL4RACA2AAC_EQAgNwAAwBEAIIMFAgAAAAGGBgEAAAABhwYBAAAAAb4GIAAAAAG_BgIAAAABwAYgAAAAAcEGAgAAAAHCBiAAAAABwwYCAAAAAcQGAgAAAAECAAAAAQAgRAAA_RMAIAMAAAANACBEAAD9EwAgRQAAgRQAICIAAAANACAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNQAAzw8AIDYAANAPACA3AADRDwAgPQAAgRQAIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA1AADPDwAgNgAA0A8AIDcAANEPACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMQAAuhEAIDIAALsRACA0AAC9EQAgNQAAvhEAIDYAAL8RACA3AADAEQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAACCFAAgAwAAAA0AIEQAAIIUACBFAACGFAAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDQAAM4PACA1AADPDwAgNgAA0A8AIDcAANEPACA9AACGFAAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgNAAAzg8AIDUAAM8PACA2AADQDwAgNwAA0Q8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhIAUAAKsRACAHAACsEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNgAAvxEAIDcAAMARACCDBQIAAAABhgYBAAAAAYcGAQAAAAG-BiAAAAABvwYCAAAAAcAGIAAAAAHBBgIAAAABwgYgAAAAAcMGAgAAAAHEBgIAAAABAgAAAAEAIEQAAIcUACAgAwAArA8AIAUAAK0PACAIAACvDwAgDAAAsQ8AIBgAAK4PACAcAACwDwAgHQAAsg8AIB4AALMPACAlAAC1DwAggwUCAAAAAYQFAgAAAAGYBUAAAAABowVAAAAAAbEFAQAAAAG0BQEAAAABtgUBAAAAAdMFAAAAsQYClQZAAAAAAZsGAQAAAAGpBgEAAAABsgYBAAAAAbMGAQAAAAG0BgEAAAABtQYBAAAAAbYGAQAAAAG3BgEAAAABuAYBAAAAAbkGAQAAAAG6BgEAAAABuwYBAAAAAbwGAQAAAAG9BgEAAAABAgAAAAUAIEQAAIkUACADAAAADQAgRAAAhxQAIEUAAI0UACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA2AADQDwAgNwAA0Q8AID0AAI0UACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDYAANAPACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEDAAAAAwAgRAAAiRQAIEUAAJAUACAiAAAAAwAgAwAAzA4AIAUAAM0OACAIAADPDgAgDAAA0Q4AIBgAAM4OACAcAADQDgAgHQAA0g4AIB4AANMOACAlAADVDgAgPQAAkBQAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaMFQACdCgAhsQUBAJwKACG0BQEAnAoAIbYFAQCcCgAh0wUAALkNsQYilQZAAMkLACGbBgEAnAoAIakGAQCHCgAhsgYBAIcKACGzBgEAhwoAIbQGAQCHCgAhtQYBAJwKACG2BgEAnAoAIbcGAQCcCgAhuAYBAJwKACG5BgEAnAoAIboGAQCcCgAhuwYBAJwKACG8BgEAnAoAIb0GAQCcCgAhIAMAAMwOACAFAADNDgAgCAAAzw4AIAwAANEOACAYAADODgAgHAAA0A4AIB0AANIOACAeAADTDgAgJQAA1Q4AIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaMFQACdCgAhsQUBAJwKACG0BQEAnAoAIbYFAQCcCgAh0wUAALkNsQYilQZAAMkLACGbBgEAnAoAIakGAQCHCgAhsgYBAIcKACGzBgEAhwoAIbQGAQCHCgAhtQYBAJwKACG2BgEAnAoAIbcGAQCcCgAhuAYBAJwKACG5BgEAnAoAIboGAQCcCgAhuwYBAJwKACG8BgEAnAoAIb0GAQCcCgAhIAUAAKsRACAHAACsEQAgCAAArhEAIB0AALcRACAlAAC1EQAgJgAAqhEAICcAAK0RACAoAACvEQAgKQAAsBEAICoAALERACArAACyEQAgLAAAsxEAIC0AALQRACAuAAC2EQAgLwAAuBEAIDAAALkRACAxAAC6EQAgMgAAuxEAIDMAALwRACA0AAC9EQAgNQAAvhEAIDcAAMARACCDBQIAAAABhgYBAAAAAYcGAQAAAAG-BiAAAAABvwYCAAAAAcAGIAAAAAHBBgIAAAABwgYgAAAAAcMGAgAAAAHEBgIAAAABAgAAAAEAIEQAAJEUACADAAAADQAgRAAAkRQAIEUAAJUUACAiAAAADQAgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNwAA0Q8AID0AAJUUACCDBQIAiAoAIYYGAQCHCgAhhwYBAIcKACG-BiAAugoAIb8GAgCICgAhwAYgALoKACHBBgIAiAoAIcIGIAC6CgAhwwYCAIgKACHEBgIAiAoAISAFAAC8DwAgBwAAvQ8AIAgAAL8PACAdAADIDwAgJQAAxg8AICYAALsPACAnAAC-DwAgKAAAwA8AICkAAMEPACAqAADCDwAgKwAAww8AICwAAMQPACAtAADFDwAgLgAAxw8AIC8AAMkPACAwAADKDwAgMQAAyw8AIDIAAMwPACAzAADNDwAgNAAAzg8AIDUAAM8PACA3AADRDwAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACELAwAAlg4AIAUAAJsOACAIAACXDgAgFAAAmA4AIBYAAJoOACCDBQIAAAABhAUCAAAAAZgFQAAAAAGiBQIAAAABpgYBAAAAAacGAQAAAAECAAAAkAEAIEQAAJYUACADgwUCAAAAAZIFAgAAAAGTBRAAAAABAwAAABcAIEQAAJYUACBFAACbFAAgDQAAABcAIAMAAKkNACAFAACuDQAgCAAAqg0AIBQAAKsNACAWAACtDQAgPQAAmxQAIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaIFAgCICgAhpgYBAIcKACGnBgEAhwoAIQsDAACpDQAgBQAArg0AIAgAAKoNACAUAACrDQAgFgAArQ0AIIMFAgCICgAhhAUCAIgKACGYBUAAnQoAIaIFAgCICgAhpgYBAIcKACGnBgEAhwoAIRgEAACoDAAgCQAApwwAIAoAAKkMACALAACqDAAgDQAAqwwAIBAAAKwMACCDBQIAAAABhAUCAAAAAZQFAgAAAAGXBQEAAAABmAVAAAAAAaMFQAAAAAGkBQIAAAAB0wUAAAD7BQLxBQIAAAAB8gUCAAAAAfMFEAAAAAH0BRAAAAAB9QUQAAAAAfYFEAAAAAH3BRAAAAAB-AUQAAAAAfkFEAAAAAH7BQEAAAABAgAAABwAIEQAAJwUACAHCwAArAoAIIMFAgAAAAGUBQIAAAABlQUQAAAAAZYFEAAAAAGXBQEAAAABmAVAAAAAAQIAAAA4ACBEAACeFAAgAwAAABoAIEQAAJwUACBFAACiFAAgGgAAABoAIAQAAPILACAJAADxCwAgCgAA8wsAIAsAAPQLACANAAD1CwAgEAAA9gsAID0AAKIUACCDBQIAiAoAIYQFAgCICgAhlAUCAPkKACGXBQEAnAoAIZgFQACdCgAhowVAAJ0KACGkBQIAiAoAIdMFAADwC_sFIvEFAgD5CgAh8gUCAPkKACHzBRAAkQoAIfQFEACRCgAh9QUQAJEKACH2BRAAkQoAIfcFEADvCwAh-AUQAJEKACH5BRAAkQoAIfsFAQCcCgAhGAQAAPILACAJAADxCwAgCgAA8wsAIAsAAPQLACANAAD1CwAgEAAA9gsAIIMFAgCICgAhhAUCAIgKACGUBQIA-QoAIZcFAQCcCgAhmAVAAJ0KACGjBUAAnQoAIaQFAgCICgAh0wUAAPAL-wUi8QUCAPkKACHyBQIA-QoAIfMFEACRCgAh9AUQAJEKACH1BRAAkQoAIfYFEACRCgAh9wUQAO8LACH4BRAAkQoAIfkFEACRCgAh-wUBAJwKACEDAAAANgAgRAAAnhQAIEUAAKUUACAJAAAANgAgCwAAngoAID0AAKUUACCDBQIAiAoAIZQFAgCICgAhlQUQAJEKACGWBRAAkQoAIZcFAQCcCgAhmAVAAJ0KACEHCwAAngoAIIMFAgCICgAhlAUCAIgKACGVBRAAkQoAIZYFEACRCgAhlwUBAJwKACGYBUAAnQoAISAFAACrEQAgBwAArBEAIAgAAK4RACAdAAC3EQAgJQAAtREAICYAAKoRACAnAACtEQAgKAAArxEAICkAALARACAqAACxEQAgKwAAshEAICwAALMRACAtAAC0EQAgLgAAthEAIC8AALgRACAwAAC5EQAgMQAAuhEAIDIAALsRACAzAAC8EQAgNAAAvREAIDUAAL4RACA2AAC_EQAggwUCAAAAAYYGAQAAAAGHBgEAAAABvgYgAAAAAb8GAgAAAAHABiAAAAABwQYCAAAAAcIGIAAAAAHDBgIAAAABxAYCAAAAAQIAAAABACBEAACmFAAgAwAAAA0AIEQAAKYUACBFAACqFAAgIgAAAA0AIAUAALwPACAHAAC9DwAgCAAAvw8AIB0AAMgPACAlAADGDwAgJgAAuw8AICcAAL4PACAoAADADwAgKQAAwQ8AICoAAMIPACArAADDDwAgLAAAxA8AIC0AAMUPACAuAADHDwAgLwAAyQ8AIDAAAMoPACAxAADLDwAgMgAAzA8AIDMAAM0PACA0AADODwAgNQAAzw8AIDYAANAPACA9AACqFAAggwUCAIgKACGGBgEAhwoAIYcGAQCHCgAhvgYgALoKACG_BgIAiAoAIcAGIAC6CgAhwQYCAIgKACHCBiAAugoAIcMGAgCICgAhxAYCAIgKACEgBQAAvA8AIAcAAL0PACAIAAC_DwAgHQAAyA8AICUAAMYPACAmAAC7DwAgJwAAvg8AICgAAMAPACApAADBDwAgKgAAwg8AICsAAMMPACAsAADEDwAgLQAAxQ8AIC4AAMcPACAvAADJDwAgMAAAyg8AIDEAAMsPACAyAADMDwAgMwAAzQ8AIDQAAM4PACA1AADPDwAgNgAA0A8AIIMFAgCICgAhhgYBAIcKACGHBgEAhwoAIb4GIAC6CgAhvwYCAIgKACHABiAAugoAIcEGAgCICgAhwgYgALoKACHDBgIAiAoAIcQGAgCICgAhGAWLAQMHjgEECJIBBQ4ALx2qARklqAEcJgYCJ5EBBiiWASIpmgEjKpsBByufASQsowElLacBJi6pAR0vrAEnMK4BKDGwASkysgEqM7QBKzS4ASw1uwEbNr8BLTfBAS4LAwABBQoDCFoFDGQHDgAhGFkPHF4WHWgZHm0aH28bJXMcCAMAAQQAAgcMBAhRBQtPBg4AFRhQDxlVFAQDDgEFDwMIEwUOABMJAxUBBAACBhQDBxYECxgGDEoHDgASEEUJF0kRBwMAAQU_AwgZBQ4AEBQdBxU5DBY9DwgEAAIJHgUKHwELIAYNJAgOAA4QLAkTMAsCDAAHDwAJBAklBQwmBw0nCA4ACgENKAACDAAHEgAMAwsABg4ADRExCwERMgADDTMAEDQAEzUAAwQAAgYAAws-BgUFRAAIQAAUQQAVQgAWQwABCQAFAhBLABdMAAIFTQAITgABBgADAwhXABhWABlYAAMEAAIOABgbYhcBGgAWARtjAAIDaQEEAAIBBAACAgMAAQQAAgYDAAEEdgIOACAZeh0gdBwhdRwEAwABDgAfInscJH8eASMAHQEkgAEAAhmCAQAhgQEACAWDAQAIhQEADIcBABiEAQAchgEAHYgBAB6JAQAligEAAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAREFwwEAB8QBAAjGAQAdzwEAJc0BACbCAQAnxQEAKMcBACnIAQAqyQEAK8oBACzLAQAtzAEALs4BADTQAQA10QEANtIBAAAAAAUOADRKADVLADZMADdNADgAAAAAAAUOADRKADVLADZMADdNADgBAwABAQMAAQUOAD1KAD5LAD9MAEBNAEEAAAAAAAUOAD1KAD5LAD9MAEBNAEEEAwABBAACB4kCBAuKAgYEAwABBAACB5ACBAuRAgYFDgBGSgBHSwBITABJTQBKAAAAAAAFDgBGSgBHSwBITABJTQBKAQYAAwEGAAMFDgBPSgBQSwBRTABSTQBTAAAAAAAFDgBPSgBQSwBRTABSTQBTAQO5AgEBA78CAQUOAFhKAFlLAFpMAFtNAFwAAAAAAAUOAFhKAFlLAFpMAFtNAFwBAwABAQMAAQUOAGFKAGJLAGNMAGRNAGUAAAAAAAUOAGFKAGJLAGNMAGRNAGUDBAACBgADC-cCBgMEAAIGAAML7QIGBQ4AakoAa0sAbEwAbU0AbgAAAAAABQ4AakoAa0sAbEwAbU0AbgUDgAMBBAACBv8CAweBAwQLggMGBQOJAwEEAAIGiAMDB4oDBAuLAwYFDgBzSgB0SwB1TAB2TQB3AAAAAAAFDgBzSgB0SwB1TAB2TQB3AgmdAwUMngMHAgmkAwUMpQMHBQ4AfEoAfUsAfkwAf00AgAEAAAAAAAUOAHxKAH1LAH5MAH9NAIABAQkABQEJAAUFDgCFAUoAhgFLAIcBTACIAU0AiQEAAAAAAAUOAIUBSgCGAUsAhwFMAIgBTQCJAQEDAAEBAwABBQ4AjgFKAI8BSwCQAUwAkQFNAJIBAAAAAAAFDgCOAUoAjwFLAJABTACRAU0AkgEBAwABAQMAAQUOAJcBSgCYAUsAmQFMAJoBTQCbAQAAAAAABQ4AlwFKAJgBSwCZAUwAmgFNAJsBAQQAAgEEAAIFDgCgAUoAoQFLAKIBTACjAU0ApAEAAAAAAAUOAKABSgChAUsAogFMAKMBTQCkAQEaABYBGgAWBQ4AqQFKAKoBSwCrAUwArAFNAK0BAAAAAAAFDgCpAUoAqgFLAKsBTACsAU0ArQEEBAACCaUEBQqmBAELpwQGBAQAAgmtBAUKrgQBC68EBgUOALIBSgCzAUsAtAFMALUBTQC2AQAAAAAABQ4AsgFKALMBSwC0AUwAtQFNALYBAgwABw8ACQIMAAcPAAkFDgC7AUoAvAFLAL0BTAC-AU0AvwEAAAAAAAUOALsBSgC8AUsAvQFMAL4BTQC_AQEDAAEBAwABBQ4AxAFKAMUBSwDGAUwAxwFNAMgBAAAAAAAFDgDEAUoAxQFLAMYBTADHAU0AyAEBAwABAQMAAQUOAM0BSgDOAUsAzwFMANABTQDRAQAAAAAABQ4AzQFKAM4BSwDPAUwA0AFNANEBAQMAAQEDAAEFDgDWAUoA1wFLANgBTADZAU0A2gEAAAAAAAUOANYBSgDXAUsA2AFMANkBTQDaAQAAAAUOAOABSgDhAUsA4gFMAOMBTQDkAQAAAAAABQ4A4AFKAOEBSwDiAUwA4wFNAOQBAwMAAQSzBQIgsgUcAwMAAQS6BQIguQUcBQ4A6QFKAOoBSwDrAUwA7AFNAO0BAAAAAAAFDgDpAUoA6gFLAOsBTADsAU0A7QECAwABIswFHAIDAAEi0gUcBQ4A8gFKAPMBSwD0AUwA9QFNAPYBAAAAAAAFDgDyAUoA8wFLAPQBTAD1AU0A9gEBIwAdASMAHQUOAPsBSgD8AUsA_QFMAP4BTQD_AQAAAAAABQ4A-wFKAPwBSwD9AUwA_gFNAP8BAgP6BQEEAAICA4AGAQQAAgUOAIQCSgCFAksAhgJMAIcCTQCIAgAAAAAABQ4AhAJKAIUCSwCGAkwAhwJNAIgCAQQAAgEEAAIFDgCNAkoAjgJLAI8CTACQAk0AkQIAAAAAAAUOAI0CSgCOAksAjwJMAJACTQCRAgEDAAEBAwABBQ4AlgJKAJcCSwCYAkwAmQJNAJoCAAAAAAAFDgCWAkoAlwJLAJgCTACZAk0AmgIBAwABAQMAAQUOAJ8CSgCgAksAoQJMAKICTQCjAgAAAAAABQ4AnwJKAKACSwChAkwAogJNAKMCAQMAAQEDAAEFDgCoAkoAqQJLAKoCTACrAk0ArAIAAAAAAAUOAKgCSgCpAksAqgJMAKsCTQCsAgEDAAEBAwABBQ4AsQJKALICSwCzAkwAtAJNALUCAAAAAAAFDgCxAkoAsgJLALMCTAC0Ak0AtQIBAwABAQMAAQUOALoCSgC7AksAvAJMAL0CTQC-AgAAAAAABQ4AugJKALsCSwC8AkwAvQJNAL4CAQMAAQEDAAEFDgDDAkoAxAJLAMUCTADGAk0AxwIAAAAAAAUOAMMCSgDEAksAxQJMAMYCTQDHAgIDAAEEAAICAwABBAACBQ4AzAJKAM0CSwDOAkwAzwJNANACAAAAAAAFDgDMAkoAzQJLAM4CTADPAk0A0AIBAwABAQMAAQUOANUCSgDWAksA1wJMANgCTQDZAgAAAAAABQ4A1QJKANYCSwDXAkwA2AJNANkCAQsABgELAAYFDgDeAkoA3wJLAOACTADhAk0A4gIAAAAAAAUOAN4CSgDfAksA4AJMAOECTQDiAgIMAAcSAAwCDAAHEgAMBQ4A5wJKAOgCSwDpAkwA6gJNAOsCAAAAAAAFDgDnAkoA6AJLAOkCTADqAk0A6wIBAwABAQMAAQUOAPACSgDxAksA8gJMAPMCTQD0AgAAAAAABQ4A8AJKAPECSwDyAkwA8wJNAPQCOAIBOdMBATrVAQE71gEBPNcBAT7ZAQE_2wEwQNwBMUHeAQFC4AEwQ-EBMkbiAQFH4wEBSOQBME7nATNP6AE5UOkBAlHqAQJS6wECU-wBAlTtAQJV7wECVvEBMFfyATpY9AECWfYBMFr3ATtb-AECXPkBAl36ATBe_QE8X_4BQmD_AQNhgAIDYoECA2OCAgNkgwIDZYUCA2aHAjBniAJDaIwCA2mOAjBqjwJEa5ICA2yTAgNtlAIwbpcCRW-YAktwmQIUcZoCFHKbAhRznAIUdJ0CFHWfAhR2oQIwd6ICTHikAhR5pgIweqcCTXuoAhR8qQIUfaoCMH6tAk5_rgJUgAGvAgSBAbACBIIBsQIEgwGyAgSEAbMCBIUBtQIEhgG3AjCHAbgCVYgBuwIEiQG9AjCKAb4CVosBwAIEjAHBAgSNAcICMI4BxQJXjwHGAl2QAccCBpEByAIGkgHJAgaTAcoCBpQBywIGlQHNAgaWAc8CMJcB0AJemAHSAgaZAdQCMJoB1QJfmwHWAgacAdcCBp0B2AIwngHbAmCfAdwCZqAB3QIPoQHeAg-iAd8CD6MB4AIPpAHhAg-lAeMCD6YB5QIwpwHmAmeoAekCD6kB6wIwqgHsAmirAe4CD6wB7wIPrQHwAjCuAfMCaa8B9AJvsAH1AgWxAfYCBbIB9wIFswH4AgW0AfkCBbUB-wIFtgH9AjC3Af4CcLgBhAMFuQGGAzC6AYcDcbsBjAMFvAGNAwW9AY4DML4BkQNyvwGSA3jAAZMDCcEBlAMJwgGVAwnDAZYDCcQBlwMJxQGZAwnGAZsDMMcBnAN5yAGgAwnJAaIDMMoBowN6ywGmAwnMAacDCc0BqAMwzgGrA3vPAawDgQHQAa0DEdEBrgMR0gGvAxHTAbADEdQBsQMR1QGzAxHWAbUDMNcBtgOCAdgBuAMR2QG6AzDaAbsDgwHbAbwDEdwBvQMR3QG-AzDeAcEDhAHfAcIDigHgAcMDIuEBxAMi4gHFAyLjAcYDIuQBxwMi5QHJAyLmAcsDMOcBzAOLAegBzgMi6QHQAzDqAdEDjAHrAdIDIuwB0wMi7QHUAzDuAdcDjQHvAdgDkwHwAdkDI_EB2gMj8gHbAyPzAdwDI_QB3QMj9QHfAyP2AeEDMPcB4gOUAfgB5AMj-QHmAzD6AecDlQH7AegDI_wB6QMj_QHqAzD-Ae0DlgH_Ae4DnAGAAu8DFoEC8AMWggLxAxaDAvIDFoQC8wMWhQL1AxaGAvcDMIcC-AOdAYgC-gMWiQL8AzCKAv0DngGLAv4DFowC_wMWjQKABDCOAoMEnwGPAoQEpQGQAoUEF5EChgQXkgKHBBeTAogEF5QCiQQXlQKLBBeWAo0EMJcCjgSmAZgCkAQXmQKSBDCaApMEpwGbApQEF5wClQQXnQKWBDCeApkEqAGfApoErgGgApsEB6ECnAQHogKdBAejAp4EB6QCnwQHpQKhBAemAqMEMKcCpASvAagCqQQHqQKrBDCqAqwEsAGrArAEB6wCsQQHrQKyBDCuArUEsQGvArYEtwGwArcECLECuAQIsgK5BAizAroECLQCuwQItQK9BAi2Ar8EMLcCwAS4AbgCwgQIuQLEBDC6AsUEuQG7AsYECLwCxwQIvQLIBDC-AssEugG_AswEwAHAAs0EJMECzgQkwgLPBCTDAtAEJMQC0QQkxQLTBCTGAtUEMMcC1gTBAcgC2AQkyQLaBDDKAtsEwgHLAtwEJMwC3QQkzQLeBDDOAuEEwwHPAuIEyQHQAuMEJdEC5AQl0gLlBCXTAuYEJdQC5wQl1QLpBCXWAusEMNcC7ATKAdgC7gQl2QLwBDDaAvEEywHbAvIEJdwC8wQl3QL0BDDeAvcEzAHfAvgE0gHgAvkEJuEC-gQm4gL7BCbjAvwEJuQC_QQm5QL_BCbmAoEFMOcCggXTAegChAUm6QKGBTDqAocF1AHrAogFJuwCiQUm7QKKBTDuAo0F1QHvAo4F2wHwApAF3AHxApEF3AHyApQF3AHzApUF3AH0ApYF3AH1ApgF3AH2ApoFMPcCmwXdAfgCnQXcAfkCnwUw-gKgBd4B-wKhBdwB_AKiBdwB_QKjBTD-AqYF3wH_AqcF5QGAA6gFHIEDqQUcggOqBRyDA6sFHIQDrAUchQOuBRyGA7AFMIcDsQXmAYgDtQUciQO3BTCKA7gF5wGLA7sFHIwDvAUcjQO9BTCOA8AF6AGPA8EF7gGQA8IFHZEDwwUdkgPEBR2TA8UFHZQDxgUdlQPIBR2WA8oFMJcDywXvAZgDzgUdmQPQBTCaA9EF8AGbA9MFHZwD1AUdnQPVBTCeA9gF8QGfA9kF9wGgA9oFHqED2wUeogPcBR6jA90FHqQD3gUepQPgBR6mA-IFMKcD4wX4AagD5QUeqQPnBTCqA-gF-QGrA-kFHqwD6gUerQPrBTCuA-4F-gGvA-8FgAKwA_AFGbED8QUZsgPyBRmzA_MFGbQD9AUZtQP2BRm2A_gFMLcD-QWBArgD_AUZuQP-BTC6A_8FggK7A4EGGbwDggYZvQODBjC-A4YGgwK_A4cGiQLAA4gGGsEDiQYawgOKBhrDA4sGGsQDjAYaxQOOBhrGA5AGMMcDkQaKAsgDkwYayQOVBjDKA5YGiwLLA5cGGswDmAYazQOZBjDOA5wGjALPA50GkgLQA58GJ9EDoAYn0gOiBifTA6MGJ9QDpAYn1QOmBifWA6gGMNcDqQaTAtgDqwYn2QOtBjDaA64GlALbA68GJ9wDsAYn3QOxBjDeA7QGlQLfA7UGmwLgA7cGKOEDuAYo4gO6BijjA7sGKOQDvAYo5QO-BijmA8AGMOcDwQacAugDwwYo6QPFBjDqA8YGnQLrA8cGKOwDyAYo7QPJBjDuA8wGngLvA80GpALwA88GKfED0AYp8gPSBinzA9MGKfQD1AYp9QPWBin2A9gGMPcD2QalAvgD2wYp-QPdBjD6A94GpgL7A98GKfwD4AYp_QPhBjD-A-QGpwL_A-UGrQKABOcGKoEE6AYqggTqBiqDBOsGKoQE7AYqhQTuBiqGBPAGMIcE8QauAogE8wYqiQT1BjCKBPYGrwKLBPcGKowE-AYqjQT5BjCOBPwGsAKPBP0GtgKQBP4GLJEE_wYskgSAByyTBIEHLJQEggcslQSEByyWBIYHMJcEhwe3ApgEiQcsmQSLBzCaBIwHuAKbBI0HLJwEjgcsnQSPBzCeBJIHuQKfBJMHvwKgBJUHK6EElgcrogSYByujBJkHK6QEmgcrpQScByumBJ4HMKcEnwfAAqgEoQcrqQSjBzCqBKQHwQKrBKUHK6wEpgcrrQSnBzCuBKoHwgKvBKsHyAKwBKwHG7EErQcbsgSuBxuzBK8HG7QEsAcbtQSyBxu2BLQHMLcEtQfJArgEtwcbuQS5BzC6BLoHygK7BLsHG7wEvAcbvQS9BzC-BMAHywK_BMEH0QLABMIHLcEEwwctwgTEBy3DBMUHLcQExgctxQTIBy3GBMoHMMcEywfSAsgEzQctyQTPBzDKBNAH0wLLBNEHLcwE0gctzQTTBzDOBNYH1ALPBNcH2gLQBNgHDNEE2QcM0gTaBwzTBNsHDNQE3AcM1QTeBwzWBOAHMNcE4QfbAtgE4wcM2QTlBzDaBOYH3ALbBOcHDNwE6AcM3QTpBzDeBOwH3QLfBO0H4wLgBO4HC-EE7wcL4gTwBwvjBPEHC-QE8gcL5QT0BwvmBPYHMOcE9wfkAugE-QcL6QT7BzDqBPwH5QLrBP0HC-wE_gcL7QT_BzDuBIII5gLvBIMI7ALwBIUILvEEhggu8gSICC7zBIkILvQEiggu9QSMCC72BI4IMPcEjwjtAvgEkQgu-QSTCDD6BJQI7gL7BJUILvwElggu_QSXCDD-BJoI7wL_BJsI9QI"
+ strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"patient\",\"appointments\",\"appointment\",\"staff\",\"claims\",\"claim\",\"updatedBy\",\"npiProvider\",\"payment\",\"serviceLineTransactions\",\"_count\",\"serviceLine\",\"serviceLines\",\"items\",\"commissionBatch\",\"commissionBatchItems\",\"payments\",\"commissionBatches\",\"appointmentProcedures\",\"claimFiles\",\"procedures\",\"files\",\"group\",\"pdfs\",\"groups\",\"communications\",\"documents\",\"conversation\",\"parent\",\"children\",\"folder\",\"file\",\"chunks\",\"cloudFolders\",\"patients\",\"npiProviders\",\"insuranceCredentials\",\"shoppingVendors\",\"updatedPayments\",\"backups\",\"backupDestinations\",\"notifications\",\"cloudFiles\",\"twilioSettings\",\"telnyxSettings\",\"aiSettings\",\"officeHours\",\"officeContact\",\"procedureTimeslot\",\"insuranceContacts\",\"patientConversations\",\"labRxTemplates\",\"seleniumSettings\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Patient.findUnique\",\"Patient.findUniqueOrThrow\",\"Patient.findFirst\",\"Patient.findFirstOrThrow\",\"Patient.findMany\",\"Patient.createOne\",\"Patient.createMany\",\"Patient.createManyAndReturn\",\"Patient.updateOne\",\"Patient.updateMany\",\"Patient.updateManyAndReturn\",\"Patient.upsertOne\",\"Patient.deleteOne\",\"Patient.deleteMany\",\"Patient.groupBy\",\"Patient.aggregate\",\"Appointment.findUnique\",\"Appointment.findUniqueOrThrow\",\"Appointment.findFirst\",\"Appointment.findFirstOrThrow\",\"Appointment.findMany\",\"Appointment.createOne\",\"Appointment.createMany\",\"Appointment.createManyAndReturn\",\"Appointment.updateOne\",\"Appointment.updateMany\",\"Appointment.updateManyAndReturn\",\"Appointment.upsertOne\",\"Appointment.deleteOne\",\"Appointment.deleteMany\",\"Appointment.groupBy\",\"Appointment.aggregate\",\"AppointmentFile.findUnique\",\"AppointmentFile.findUniqueOrThrow\",\"AppointmentFile.findFirst\",\"AppointmentFile.findFirstOrThrow\",\"AppointmentFile.findMany\",\"AppointmentFile.createOne\",\"AppointmentFile.createMany\",\"AppointmentFile.createManyAndReturn\",\"AppointmentFile.updateOne\",\"AppointmentFile.updateMany\",\"AppointmentFile.updateManyAndReturn\",\"AppointmentFile.upsertOne\",\"AppointmentFile.deleteOne\",\"AppointmentFile.deleteMany\",\"AppointmentFile.groupBy\",\"AppointmentFile.aggregate\",\"Staff.findUnique\",\"Staff.findUniqueOrThrow\",\"Staff.findFirst\",\"Staff.findFirstOrThrow\",\"Staff.findMany\",\"Staff.createOne\",\"Staff.createMany\",\"Staff.createManyAndReturn\",\"Staff.updateOne\",\"Staff.updateMany\",\"Staff.updateManyAndReturn\",\"Staff.upsertOne\",\"Staff.deleteOne\",\"Staff.deleteMany\",\"Staff.groupBy\",\"Staff.aggregate\",\"NpiProvider.findUnique\",\"NpiProvider.findUniqueOrThrow\",\"NpiProvider.findFirst\",\"NpiProvider.findFirstOrThrow\",\"NpiProvider.findMany\",\"NpiProvider.createOne\",\"NpiProvider.createMany\",\"NpiProvider.createManyAndReturn\",\"NpiProvider.updateOne\",\"NpiProvider.updateMany\",\"NpiProvider.updateManyAndReturn\",\"NpiProvider.upsertOne\",\"NpiProvider.deleteOne\",\"NpiProvider.deleteMany\",\"NpiProvider.groupBy\",\"NpiProvider.aggregate\",\"AppointmentProcedure.findUnique\",\"AppointmentProcedure.findUniqueOrThrow\",\"AppointmentProcedure.findFirst\",\"AppointmentProcedure.findFirstOrThrow\",\"AppointmentProcedure.findMany\",\"AppointmentProcedure.createOne\",\"AppointmentProcedure.createMany\",\"AppointmentProcedure.createManyAndReturn\",\"AppointmentProcedure.updateOne\",\"AppointmentProcedure.updateMany\",\"AppointmentProcedure.updateManyAndReturn\",\"AppointmentProcedure.upsertOne\",\"AppointmentProcedure.deleteOne\",\"AppointmentProcedure.deleteMany\",\"AppointmentProcedure.groupBy\",\"AppointmentProcedure.aggregate\",\"Claim.findUnique\",\"Claim.findUniqueOrThrow\",\"Claim.findFirst\",\"Claim.findFirstOrThrow\",\"Claim.findMany\",\"Claim.createOne\",\"Claim.createMany\",\"Claim.createManyAndReturn\",\"Claim.updateOne\",\"Claim.updateMany\",\"Claim.updateManyAndReturn\",\"Claim.upsertOne\",\"Claim.deleteOne\",\"Claim.deleteMany\",\"Claim.groupBy\",\"Claim.aggregate\",\"ServiceLine.findUnique\",\"ServiceLine.findUniqueOrThrow\",\"ServiceLine.findFirst\",\"ServiceLine.findFirstOrThrow\",\"ServiceLine.findMany\",\"ServiceLine.createOne\",\"ServiceLine.createMany\",\"ServiceLine.createManyAndReturn\",\"ServiceLine.updateOne\",\"ServiceLine.updateMany\",\"ServiceLine.updateManyAndReturn\",\"ServiceLine.upsertOne\",\"ServiceLine.deleteOne\",\"ServiceLine.deleteMany\",\"ServiceLine.groupBy\",\"ServiceLine.aggregate\",\"ClaimFile.findUnique\",\"ClaimFile.findUniqueOrThrow\",\"ClaimFile.findFirst\",\"ClaimFile.findFirstOrThrow\",\"ClaimFile.findMany\",\"ClaimFile.createOne\",\"ClaimFile.createMany\",\"ClaimFile.createManyAndReturn\",\"ClaimFile.updateOne\",\"ClaimFile.updateMany\",\"ClaimFile.updateManyAndReturn\",\"ClaimFile.upsertOne\",\"ClaimFile.deleteOne\",\"ClaimFile.deleteMany\",\"ClaimFile.groupBy\",\"ClaimFile.aggregate\",\"InsuranceCredential.findUnique\",\"InsuranceCredential.findUniqueOrThrow\",\"InsuranceCredential.findFirst\",\"InsuranceCredential.findFirstOrThrow\",\"InsuranceCredential.findMany\",\"InsuranceCredential.createOne\",\"InsuranceCredential.createMany\",\"InsuranceCredential.createManyAndReturn\",\"InsuranceCredential.updateOne\",\"InsuranceCredential.updateMany\",\"InsuranceCredential.updateManyAndReturn\",\"InsuranceCredential.upsertOne\",\"InsuranceCredential.deleteOne\",\"InsuranceCredential.deleteMany\",\"InsuranceCredential.groupBy\",\"InsuranceCredential.aggregate\",\"ShoppingVendor.findUnique\",\"ShoppingVendor.findUniqueOrThrow\",\"ShoppingVendor.findFirst\",\"ShoppingVendor.findFirstOrThrow\",\"ShoppingVendor.findMany\",\"ShoppingVendor.createOne\",\"ShoppingVendor.createMany\",\"ShoppingVendor.createManyAndReturn\",\"ShoppingVendor.updateOne\",\"ShoppingVendor.updateMany\",\"ShoppingVendor.updateManyAndReturn\",\"ShoppingVendor.upsertOne\",\"ShoppingVendor.deleteOne\",\"ShoppingVendor.deleteMany\",\"ShoppingVendor.groupBy\",\"ShoppingVendor.aggregate\",\"PdfGroup.findUnique\",\"PdfGroup.findUniqueOrThrow\",\"PdfGroup.findFirst\",\"PdfGroup.findFirstOrThrow\",\"PdfGroup.findMany\",\"PdfGroup.createOne\",\"PdfGroup.createMany\",\"PdfGroup.createManyAndReturn\",\"PdfGroup.updateOne\",\"PdfGroup.updateMany\",\"PdfGroup.updateManyAndReturn\",\"PdfGroup.upsertOne\",\"PdfGroup.deleteOne\",\"PdfGroup.deleteMany\",\"PdfGroup.groupBy\",\"PdfGroup.aggregate\",\"PdfFile.findUnique\",\"PdfFile.findUniqueOrThrow\",\"PdfFile.findFirst\",\"PdfFile.findFirstOrThrow\",\"PdfFile.findMany\",\"PdfFile.createOne\",\"PdfFile.createMany\",\"PdfFile.createManyAndReturn\",\"PdfFile.updateOne\",\"PdfFile.updateMany\",\"PdfFile.updateManyAndReturn\",\"PdfFile.upsertOne\",\"PdfFile.deleteOne\",\"PdfFile.deleteMany\",\"PdfFile.groupBy\",\"PdfFile.aggregate\",\"Payment.findUnique\",\"Payment.findUniqueOrThrow\",\"Payment.findFirst\",\"Payment.findFirstOrThrow\",\"Payment.findMany\",\"Payment.createOne\",\"Payment.createMany\",\"Payment.createManyAndReturn\",\"Payment.updateOne\",\"Payment.updateMany\",\"Payment.updateManyAndReturn\",\"Payment.upsertOne\",\"Payment.deleteOne\",\"Payment.deleteMany\",\"Payment.groupBy\",\"Payment.aggregate\",\"ServiceLineTransaction.findUnique\",\"ServiceLineTransaction.findUniqueOrThrow\",\"ServiceLineTransaction.findFirst\",\"ServiceLineTransaction.findFirstOrThrow\",\"ServiceLineTransaction.findMany\",\"ServiceLineTransaction.createOne\",\"ServiceLineTransaction.createMany\",\"ServiceLineTransaction.createManyAndReturn\",\"ServiceLineTransaction.updateOne\",\"ServiceLineTransaction.updateMany\",\"ServiceLineTransaction.updateManyAndReturn\",\"ServiceLineTransaction.upsertOne\",\"ServiceLineTransaction.deleteOne\",\"ServiceLineTransaction.deleteMany\",\"ServiceLineTransaction.groupBy\",\"ServiceLineTransaction.aggregate\",\"DatabaseBackup.findUnique\",\"DatabaseBackup.findUniqueOrThrow\",\"DatabaseBackup.findFirst\",\"DatabaseBackup.findFirstOrThrow\",\"DatabaseBackup.findMany\",\"DatabaseBackup.createOne\",\"DatabaseBackup.createMany\",\"DatabaseBackup.createManyAndReturn\",\"DatabaseBackup.updateOne\",\"DatabaseBackup.updateMany\",\"DatabaseBackup.updateManyAndReturn\",\"DatabaseBackup.upsertOne\",\"DatabaseBackup.deleteOne\",\"DatabaseBackup.deleteMany\",\"DatabaseBackup.groupBy\",\"DatabaseBackup.aggregate\",\"BackupDestination.findUnique\",\"BackupDestination.findUniqueOrThrow\",\"BackupDestination.findFirst\",\"BackupDestination.findFirstOrThrow\",\"BackupDestination.findMany\",\"BackupDestination.createOne\",\"BackupDestination.createMany\",\"BackupDestination.createManyAndReturn\",\"BackupDestination.updateOne\",\"BackupDestination.updateMany\",\"BackupDestination.updateManyAndReturn\",\"BackupDestination.upsertOne\",\"BackupDestination.deleteOne\",\"BackupDestination.deleteMany\",\"BackupDestination.groupBy\",\"BackupDestination.aggregate\",\"Notification.findUnique\",\"Notification.findUniqueOrThrow\",\"Notification.findFirst\",\"Notification.findFirstOrThrow\",\"Notification.findMany\",\"Notification.createOne\",\"Notification.createMany\",\"Notification.createManyAndReturn\",\"Notification.updateOne\",\"Notification.updateMany\",\"Notification.updateManyAndReturn\",\"Notification.upsertOne\",\"Notification.deleteOne\",\"Notification.deleteMany\",\"Notification.groupBy\",\"Notification.aggregate\",\"CronJobLog.findUnique\",\"CronJobLog.findUniqueOrThrow\",\"CronJobLog.findFirst\",\"CronJobLog.findFirstOrThrow\",\"CronJobLog.findMany\",\"CronJobLog.createOne\",\"CronJobLog.createMany\",\"CronJobLog.createManyAndReturn\",\"CronJobLog.updateOne\",\"CronJobLog.updateMany\",\"CronJobLog.updateManyAndReturn\",\"CronJobLog.upsertOne\",\"CronJobLog.deleteOne\",\"CronJobLog.deleteMany\",\"CronJobLog.groupBy\",\"CronJobLog.aggregate\",\"CloudFolder.findUnique\",\"CloudFolder.findUniqueOrThrow\",\"CloudFolder.findFirst\",\"CloudFolder.findFirstOrThrow\",\"CloudFolder.findMany\",\"CloudFolder.createOne\",\"CloudFolder.createMany\",\"CloudFolder.createManyAndReturn\",\"CloudFolder.updateOne\",\"CloudFolder.updateMany\",\"CloudFolder.updateManyAndReturn\",\"CloudFolder.upsertOne\",\"CloudFolder.deleteOne\",\"CloudFolder.deleteMany\",\"CloudFolder.groupBy\",\"CloudFolder.aggregate\",\"CloudFile.findUnique\",\"CloudFile.findUniqueOrThrow\",\"CloudFile.findFirst\",\"CloudFile.findFirstOrThrow\",\"CloudFile.findMany\",\"CloudFile.createOne\",\"CloudFile.createMany\",\"CloudFile.createManyAndReturn\",\"CloudFile.updateOne\",\"CloudFile.updateMany\",\"CloudFile.updateManyAndReturn\",\"CloudFile.upsertOne\",\"CloudFile.deleteOne\",\"CloudFile.deleteMany\",\"CloudFile.groupBy\",\"CloudFile.aggregate\",\"CloudFileChunk.findUnique\",\"CloudFileChunk.findUniqueOrThrow\",\"CloudFileChunk.findFirst\",\"CloudFileChunk.findFirstOrThrow\",\"CloudFileChunk.findMany\",\"CloudFileChunk.createOne\",\"CloudFileChunk.createMany\",\"CloudFileChunk.createManyAndReturn\",\"CloudFileChunk.updateOne\",\"CloudFileChunk.updateMany\",\"CloudFileChunk.updateManyAndReturn\",\"CloudFileChunk.upsertOne\",\"CloudFileChunk.deleteOne\",\"CloudFileChunk.deleteMany\",\"CloudFileChunk.groupBy\",\"CloudFileChunk.aggregate\",\"Communication.findUnique\",\"Communication.findUniqueOrThrow\",\"Communication.findFirst\",\"Communication.findFirstOrThrow\",\"Communication.findMany\",\"Communication.createOne\",\"Communication.createMany\",\"Communication.createManyAndReturn\",\"Communication.updateOne\",\"Communication.updateMany\",\"Communication.updateManyAndReturn\",\"Communication.upsertOne\",\"Communication.deleteOne\",\"Communication.deleteMany\",\"Communication.groupBy\",\"Communication.aggregate\",\"PatientDocument.findUnique\",\"PatientDocument.findUniqueOrThrow\",\"PatientDocument.findFirst\",\"PatientDocument.findFirstOrThrow\",\"PatientDocument.findMany\",\"PatientDocument.createOne\",\"PatientDocument.createMany\",\"PatientDocument.createManyAndReturn\",\"PatientDocument.updateOne\",\"PatientDocument.updateMany\",\"PatientDocument.updateManyAndReturn\",\"PatientDocument.upsertOne\",\"PatientDocument.deleteOne\",\"PatientDocument.deleteMany\",\"PatientDocument.groupBy\",\"PatientDocument.aggregate\",\"TwilioSettings.findUnique\",\"TwilioSettings.findUniqueOrThrow\",\"TwilioSettings.findFirst\",\"TwilioSettings.findFirstOrThrow\",\"TwilioSettings.findMany\",\"TwilioSettings.createOne\",\"TwilioSettings.createMany\",\"TwilioSettings.createManyAndReturn\",\"TwilioSettings.updateOne\",\"TwilioSettings.updateMany\",\"TwilioSettings.updateManyAndReturn\",\"TwilioSettings.upsertOne\",\"TwilioSettings.deleteOne\",\"TwilioSettings.deleteMany\",\"TwilioSettings.groupBy\",\"TwilioSettings.aggregate\",\"TelnyxSettings.findUnique\",\"TelnyxSettings.findUniqueOrThrow\",\"TelnyxSettings.findFirst\",\"TelnyxSettings.findFirstOrThrow\",\"TelnyxSettings.findMany\",\"TelnyxSettings.createOne\",\"TelnyxSettings.createMany\",\"TelnyxSettings.createManyAndReturn\",\"TelnyxSettings.updateOne\",\"TelnyxSettings.updateMany\",\"TelnyxSettings.updateManyAndReturn\",\"TelnyxSettings.upsertOne\",\"TelnyxSettings.deleteOne\",\"TelnyxSettings.deleteMany\",\"TelnyxSettings.groupBy\",\"TelnyxSettings.aggregate\",\"AiSettings.findUnique\",\"AiSettings.findUniqueOrThrow\",\"AiSettings.findFirst\",\"AiSettings.findFirstOrThrow\",\"AiSettings.findMany\",\"AiSettings.createOne\",\"AiSettings.createMany\",\"AiSettings.createManyAndReturn\",\"AiSettings.updateOne\",\"AiSettings.updateMany\",\"AiSettings.updateManyAndReturn\",\"AiSettings.upsertOne\",\"AiSettings.deleteOne\",\"AiSettings.deleteMany\",\"AiSettings.groupBy\",\"AiSettings.aggregate\",\"OfficeHours.findUnique\",\"OfficeHours.findUniqueOrThrow\",\"OfficeHours.findFirst\",\"OfficeHours.findFirstOrThrow\",\"OfficeHours.findMany\",\"OfficeHours.createOne\",\"OfficeHours.createMany\",\"OfficeHours.createManyAndReturn\",\"OfficeHours.updateOne\",\"OfficeHours.updateMany\",\"OfficeHours.updateManyAndReturn\",\"OfficeHours.upsertOne\",\"OfficeHours.deleteOne\",\"OfficeHours.deleteMany\",\"OfficeHours.groupBy\",\"OfficeHours.aggregate\",\"OfficeContact.findUnique\",\"OfficeContact.findUniqueOrThrow\",\"OfficeContact.findFirst\",\"OfficeContact.findFirstOrThrow\",\"OfficeContact.findMany\",\"OfficeContact.createOne\",\"OfficeContact.createMany\",\"OfficeContact.createManyAndReturn\",\"OfficeContact.updateOne\",\"OfficeContact.updateMany\",\"OfficeContact.updateManyAndReturn\",\"OfficeContact.upsertOne\",\"OfficeContact.deleteOne\",\"OfficeContact.deleteMany\",\"OfficeContact.groupBy\",\"OfficeContact.aggregate\",\"InsuranceContact.findUnique\",\"InsuranceContact.findUniqueOrThrow\",\"InsuranceContact.findFirst\",\"InsuranceContact.findFirstOrThrow\",\"InsuranceContact.findMany\",\"InsuranceContact.createOne\",\"InsuranceContact.createMany\",\"InsuranceContact.createManyAndReturn\",\"InsuranceContact.updateOne\",\"InsuranceContact.updateMany\",\"InsuranceContact.updateManyAndReturn\",\"InsuranceContact.upsertOne\",\"InsuranceContact.deleteOne\",\"InsuranceContact.deleteMany\",\"InsuranceContact.groupBy\",\"InsuranceContact.aggregate\",\"ProcedureTimeslot.findUnique\",\"ProcedureTimeslot.findUniqueOrThrow\",\"ProcedureTimeslot.findFirst\",\"ProcedureTimeslot.findFirstOrThrow\",\"ProcedureTimeslot.findMany\",\"ProcedureTimeslot.createOne\",\"ProcedureTimeslot.createMany\",\"ProcedureTimeslot.createManyAndReturn\",\"ProcedureTimeslot.updateOne\",\"ProcedureTimeslot.updateMany\",\"ProcedureTimeslot.updateManyAndReturn\",\"ProcedureTimeslot.upsertOne\",\"ProcedureTimeslot.deleteOne\",\"ProcedureTimeslot.deleteMany\",\"ProcedureTimeslot.groupBy\",\"ProcedureTimeslot.aggregate\",\"PatientConversation.findUnique\",\"PatientConversation.findUniqueOrThrow\",\"PatientConversation.findFirst\",\"PatientConversation.findFirstOrThrow\",\"PatientConversation.findMany\",\"PatientConversation.createOne\",\"PatientConversation.createMany\",\"PatientConversation.createManyAndReturn\",\"PatientConversation.updateOne\",\"PatientConversation.updateMany\",\"PatientConversation.updateManyAndReturn\",\"PatientConversation.upsertOne\",\"PatientConversation.deleteOne\",\"PatientConversation.deleteMany\",\"PatientConversation.groupBy\",\"PatientConversation.aggregate\",\"LabRxTemplate.findUnique\",\"LabRxTemplate.findUniqueOrThrow\",\"LabRxTemplate.findFirst\",\"LabRxTemplate.findFirstOrThrow\",\"LabRxTemplate.findMany\",\"LabRxTemplate.createOne\",\"LabRxTemplate.createMany\",\"LabRxTemplate.createManyAndReturn\",\"LabRxTemplate.updateOne\",\"LabRxTemplate.updateMany\",\"LabRxTemplate.updateManyAndReturn\",\"LabRxTemplate.upsertOne\",\"LabRxTemplate.deleteOne\",\"LabRxTemplate.deleteMany\",\"LabRxTemplate.groupBy\",\"LabRxTemplate.aggregate\",\"CommissionBatch.findUnique\",\"CommissionBatch.findUniqueOrThrow\",\"CommissionBatch.findFirst\",\"CommissionBatch.findFirstOrThrow\",\"CommissionBatch.findMany\",\"CommissionBatch.createOne\",\"CommissionBatch.createMany\",\"CommissionBatch.createManyAndReturn\",\"CommissionBatch.updateOne\",\"CommissionBatch.updateMany\",\"CommissionBatch.updateManyAndReturn\",\"CommissionBatch.upsertOne\",\"CommissionBatch.deleteOne\",\"CommissionBatch.deleteMany\",\"CommissionBatch.groupBy\",\"CommissionBatch.aggregate\",\"CommissionBatchItem.findUnique\",\"CommissionBatchItem.findUniqueOrThrow\",\"CommissionBatchItem.findFirst\",\"CommissionBatchItem.findFirstOrThrow\",\"CommissionBatchItem.findMany\",\"CommissionBatchItem.createOne\",\"CommissionBatchItem.createMany\",\"CommissionBatchItem.createManyAndReturn\",\"CommissionBatchItem.updateOne\",\"CommissionBatchItem.updateMany\",\"CommissionBatchItem.updateManyAndReturn\",\"CommissionBatchItem.upsertOne\",\"CommissionBatchItem.deleteOne\",\"CommissionBatchItem.deleteMany\",\"CommissionBatchItem.groupBy\",\"CommissionBatchItem.aggregate\",\"SeleniumSettings.findUnique\",\"SeleniumSettings.findUniqueOrThrow\",\"SeleniumSettings.findFirst\",\"SeleniumSettings.findFirstOrThrow\",\"SeleniumSettings.findMany\",\"SeleniumSettings.createOne\",\"SeleniumSettings.createMany\",\"SeleniumSettings.createManyAndReturn\",\"SeleniumSettings.updateOne\",\"SeleniumSettings.updateMany\",\"SeleniumSettings.updateManyAndReturn\",\"SeleniumSettings.upsertOne\",\"SeleniumSettings.deleteOne\",\"SeleniumSettings.deleteMany\",\"SeleniumSettings.groupBy\",\"SeleniumSettings.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"userId\",\"paymentGroupId\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"commissionBatchId\",\"paymentId\",\"collectionAmount\",\"npiProviderId\",\"totalCollection\",\"commissionAmount\",\"notes\",\"createdAt\",\"name\",\"labName\",\"labPhone\",\"labFax\",\"labAddress\",\"labAccount\",\"caseType\",\"material\",\"instructions\",\"sortOrder\",\"updatedAt\",\"patientId\",\"stage\",\"aiHandoff\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"phoneNumber\",\"officeName\",\"receptionistName\",\"dentistName\",\"email\",\"fax\",\"streetAddress\",\"city\",\"state\",\"zipCode\",\"apiKey\",\"aiEnabled\",\"openAiKey\",\"openAiEnabled\",\"claudeAiKey\",\"claudeAiEnabled\",\"claudeAiModel\",\"openAiModel\",\"googleAiModel\",\"dentalMgmtKey\",\"dentalMgmtEnabled\",\"afterHoursEnabled\",\"openPhoneReply\",\"accountSid\",\"texmlApplicationId\",\"messagingProfileId\",\"webhookPublicKey\",\"greetingMessage\",\"authToken\",\"templates\",\"filename\",\"originalName\",\"mimeType\",\"fileSize\",\"filePath\",\"uploadedAt\",\"CommunicationChannel\",\"channel\",\"CommunicationDirection\",\"direction\",\"CommunicationStatus\",\"status\",\"CommunicationProvider\",\"provider\",\"body\",\"callDuration\",\"twilioSid\",\"fileId\",\"seq\",\"folderId\",\"isComplete\",\"totalChunks\",\"diskPath\",\"parentId\",\"jobName\",\"startedAt\",\"completedAt\",\"durationMs\",\"errorMessage\",\"NotificationTypes\",\"type\",\"message\",\"read\",\"path\",\"isActive\",\"serviceLineId\",\"transactionId\",\"paidAmount\",\"adjustedAmount\",\"PaymentMethod\",\"method\",\"receivedDate\",\"payerName\",\"claimId\",\"updatedById\",\"totalBilled\",\"totalPaid\",\"totalAdjusted\",\"totalDue\",\"mhPaidAmount\",\"copayment\",\"adjustment\",\"PaymentStatus\",\"icn\",\"pdfData\",\"groupId\",\"title\",\"PdfTitleKey\",\"titleKey\",\"vendorName\",\"websiteUrl\",\"loginUsername\",\"loginPassword\",\"siteKey\",\"username\",\"password\",\"procedureCode\",\"procedureDate\",\"quad\",\"arch\",\"toothNumber\",\"toothSurface\",\"paidCode\",\"allowedAmount\",\"ServiceLineStatus\",\"appointmentId\",\"staffId\",\"patientName\",\"memberId\",\"dateOfBirth\",\"remarks\",\"MissingTeethStatus\",\"missingTeethStatus\",\"missingTeeth\",\"serviceDate\",\"insuranceProvider\",\"ClaimStatus\",\"claimNumber\",\"preAuthNumber\",\"procedureLabel\",\"fee\",\"category\",\"oralCavityArea\",\"ProcedureSource\",\"source\",\"comboKey\",\"npiNumber\",\"providerName\",\"role\",\"phone\",\"date\",\"startTime\",\"endTime\",\"typeLocked\",\"procedureCodeNotes\",\"movedByAi\",\"PatientStatus\",\"eligibilityStatus\",\"firstName\",\"lastName\",\"gender\",\"address\",\"insuranceId\",\"groupNumber\",\"policyHolder\",\"allergies\",\"medicalConditions\",\"preferredLanguage\",\"remainingBenefit\",\"thirdPartyInsurance\",\"autoBackupEnabled\",\"autoBackupHour\",\"usbBackupEnabled\",\"usbBackupHour\",\"autoMhCheckEnabled\",\"autoMhCheckDayOfWeek\",\"autoMhCheckHour\",\"userId_siteKey\",\"userId_npiNumber\",\"every\",\"some\",\"none\",\"fileId_seq\",\"userId_parentId_name\",\"commissionBatchId_paymentId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
+ graph: "4BT_AtAEJQUAAMwJACAHAACKCgAgCAAAyAkAIB0AAJEKACAlAADZCQAgJgAAiQoAICcAAIsKACAoAACMCgAgKQAAjQoAICoAAMkJACArAACOCgAgLAAAjwoAIC0AAJAKACAuAADbCQAgLwAAkgoAIDAAAJMKACAxAACUCgAgMgAAlQoAIDMAAJYKACA0AACXCgAgNQAAmAoAIDYAAJkKACA3AACaCgAgOAAAmwoAIJEFAACICgAwkgUAAA0AEJMFAACICgAwlAUCAAAAAZwGAQAAAAGdBgEAvwgAIdQGIADfCAAh1QYCAIYJACHWBiAA3wgAIdcGAgCGCQAh2AYgAN8IACHZBgIAhgkAIdoGAgCGCQAhAQAAAAEAICQDAADACAAgBQAAzAkAIAgAAMgJACAMAADJCQAgGAAAywkAIBwAAKAKACAdAACRCgAgHgAAoQoAIB8AAKIKACAlAADZCQAgkQUAAJ8KADCSBQAAAwAQkwUAAJ8KADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACG0BUAAhwkAIcIFAQDaCAAhxQUBANoIACHHBQEA2ggAIecFAACdCscGIqsGQACICQAhsQYBANoIACG_BgEAvwgAIcgGAQC_CAAhyQYBAL8IACHKBgEAvwgAIcsGAQDaCAAhzAYBANoIACHNBgEA2ggAIc4GAQDaCAAhzwYBANoIACHQBgEA2ggAIdEGAQDaCAAh0gYBANoIACHTBgEA2ggAIRgDAACsCgAgBQAA8hEAIAgAAPURACAMAAD4EQAgGAAAixIAIBwAAJ0SACAdAAD-EQAgHgAAnhIAIB8AAJ8SACAlAAD8EQAgwgUAALcKACDFBQAAtwoAIMcFAAC3CgAgqwYAALcKACCxBgAAtwoAIMsGAAC3CgAgzAYAALcKACDNBgAAtwoAIM4GAAC3CgAgzwYAALcKACDQBgAAtwoAINEGAAC3CgAg0gYAALcKACDTBgAAtwoAICQDAADACAAgBQAAzAkAIAgAAMgJACAMAADJCQAgGAAAywkAIBwAAKAKACAdAACRCgAgHgAAoQoAIB8AAKIKACAlAADZCQAgkQUAAJ8KADCSBQAAAwAQkwUAAJ8KADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIbQFQACHCQAhwgUBANoIACHFBQEA2ggAIccFAQDaCAAh5wUAAJ0KxwYiqwZAAIgJACGxBgEA2ggAIb8GAQC_CAAhyAYBAL8IACHJBgEAvwgAIcoGAQC_CAAhywYBANoIACHMBgEA2ggAIc0GAQDaCAAhzgYBANoIACHPBgEA2ggAIdAGAQDaCAAh0QYBANoIACHSBgEA2ggAIdMGAQDaCAAhAwAAAAMAIAEAAAQAMAIAAAUAIBsDAADACAAgBAAAvQkAIAcAAIYKACAIAADICQAgCwAA7gkAIBgAAMsJACAZAACeCgAgkQUAAJwKADCSBQAABwAQkwUAAJwKADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtQUCAIYJACHnBQEAvwgAIfoFAQC_CAAhlAYBAL8IACGoBgIAhgkAIcAGQACHCQAhwQYBAL8IACHCBgEAvwgAIcMGIADfCAAhxAYBANoIACHFBiAA3wgAIccGAACdCscGIgoDAACsCgAgBAAAiRIAIAcAAJoSACAIAAD1EQAgCwAAkxIAIBgAAIsSACAZAACcEgAgpQUAALcKACCoBQAAtwoAIMQGAAC3CgAgGwMAAMAIACAEAAC9CQAgBwAAhgoAIAgAAMgJACALAADuCQAgGAAAywkAIBkAAJ4KACCRBQAAnAoAMJIFAAAHABCTBQAAnAoAMJQFAgAAAAGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbUFAgCGCQAh5wUBAL8IACH6BQEAvwgAIZQGAQC_CAAhqAYCAIYJACHABkAAhwkAIcEGAQC_CAAhwgYBAL8IACHDBiAA3wgAIcQGAQDaCAAhxQYgAN8IACHHBgAAnQrHBiIDAAAABwAgAQAACAAwAgAACQAgDQMAAM4JACAFAADMCQAgCAAAyAkAIJEFAADNCQAwkgUAAAsAEJMFAADNCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACHCBQEA2ggAIb4GAQC_CAAhvwYBANoIACEBAAAACwAgJQUAAMwJACAHAACKCgAgCAAAyAkAIB0AAJEKACAlAADZCQAgJgAAiQoAICcAAIsKACAoAACMCgAgKQAAjQoAICoAAMkJACArAACOCgAgLAAAjwoAIC0AAJAKACAuAADbCQAgLwAAkgoAIDAAAJMKACAxAACUCgAgMgAAlQoAIDMAAJYKACA0AACXCgAgNQAAmAoAIDYAAJkKACA3AACaCgAgOAAAmwoAIJEFAACICgAwkgUAAA0AEJMFAACICgAwlAUCAIYJACGcBgEAvwgAIZ0GAQC_CAAh1AYgAN8IACHVBgIAhgkAIdYGIADfCAAh1wYCAIYJACHYBiAA3wgAIdkGAgCGCQAh2gYCAIYJACEBAAAADQAgAwAAAAcAIAEAAAgAMAIAAAkAIB4DAADOCQAgBAAAvQkAIAYAAIUKACAHAACGCgAgCwAA7gkAIAwAAPoJACAQAACBCgAgFwAAhwoAIJEFAACCCgAwkgUAABAAEJMFAACCCgAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIQKswYipwYCAIkJACGoBgIAhgkAIakGAQC_CAAhqgYBAL8IACGrBkAAhwkAIawGAQC_CAAhrgYAAIMKrgYirwYAAOYIACCwBkAAhwkAIbEGAQC_CAAhswYBANoIACG0BgEA2ggAIQ0DAACsCgAgBAAAiRIAIAYAAJESACAHAACaEgAgCwAAkxIAIAwAAJYSACAQAACZEgAgFwAAmxIAIKUFAAC3CgAgpwYAALcKACCvBgAAtwoAILMGAAC3CgAgtAYAALcKACAeAwAAzgkAIAQAAL0JACAGAACFCgAgBwAAhgoAIAsAAO4JACAMAAD6CQAgEAAAgQoAIBcAAIcKACCRBQAAggoAMJIFAAAQABCTBQAAggoAMJQFAgAAAAGVBQIAhgkAIaUFAgCJCQAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIQKswYipwYCAIkJACGoBgIAhgkAIakGAQC_CAAhqgYBAL8IACGrBkAAhwkAIawGAQC_CAAhrgYAAIMKrgYirwYAAOYIACCwBkAAhwkAIbEGAQC_CAAhswYBANoIACG0BgEA2ggAIQMAAAAQACABAAARADACAAASACABAAAABwAgAQAAAA0AIAEAAAALACAPAwAAwAgAIAUAAMwJACAIAADICQAgFAAAyQkAIBUAAMoJACAWAADLCQAgkQUAAMcJADCSBQAAFwAQkwUAAMcJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGzBQIAhgkAIbwGAQC_CAAhvQYBAL8IACEBAAAAFwAgAwAAABAAIAEAABEAMAIAABIAIBwEAAC9CQAgCQAA-QkAIAoAAM4JACALAADuCQAgDQAA-wkAIBAAAIEKACATAADyCQAgkQUAAP8JADCSBQAAGgAQkwUAAP8JADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtAVAAIcJACG1BQIAhgkAIecFAACACpEGIocGAgCJCQAhiAYCAIkJACGJBhAA8AkAIYoGEADwCQAhiwYQAPAJACGMBhAA8AkAIY0GEADsCQAhjgYQAPAJACGPBhAA8AkAIZEGAQDaCAAhDQQAAIkSACAJAACSEgAgCgAArAoAIAsAAJMSACANAACXEgAgEAAAmRIAIBMAAJQSACClBQAAtwoAIKgFAAC3CgAghwYAALcKACCIBgAAtwoAII0GAAC3CgAgkQYAALcKACAcBAAAvQkAIAkAAPkJACAKAADOCQAgCwAA7gkAIA0AAPsJACAQAACBCgAgEwAA8gkAIJEFAAD_CQAwkgUAABoAEJMFAAD_CQAwlAUCAAAAAZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtAVAAIcJACG1BQIAhgkAIecFAACACpEGIocGAgAAAAGIBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhjQYQAOwJACGOBhAA8AkAIY8GEADwCQAhkQYBANoIACEDAAAAGgAgAQAAGwAwAgAAHAAgAQAAABAAIAEAAAANACABAAAAFwAgEAwAAPYJACAPAAD-CQAgkQUAAPwJADCSBQAAIQAQkwUAAPwJADCUBQIAhgkAIaMFAgCGCQAhqAUBANoIACGpBUAAhwkAIf8FAgCGCQAhgAYBANoIACGBBhAA8AkAIYIGEADwCQAhhAYAAP0JhAYihQZAAIcJACGGBgEA2ggAIQUMAACWEgAgDwAAmBIAIKgFAAC3CgAggAYAALcKACCGBgAAtwoAIBAMAAD2CQAgDwAA_gkAIJEFAAD8CQAwkgUAACEAEJMFAAD8CQAwlAUCAAAAAaMFAgCGCQAhqAUBANoIACGpBUAAhwkAIf8FAgCGCQAhgAYBANoIACGBBhAA8AkAIYIGEADwCQAhhAYAAP0JhAYihQZAAIcJACGGBgEA2ggAIQMAAAAhACABAAAiADACAAAjACABAAAAEAAgAQAAABoAIAMAAAAhACABAAAiADACAAAjACABAAAAIQAgFwkAAPkJACAMAAD6CQAgDQAA-wkAIJEFAAD3CQAwkgUAACkAEJMFAAD3CQAwlAUCAIYJACGjBQIAiQkAIecFAAD4CacGIocGAgCJCQAhiQYQAPAJACGKBhAA8AkAIYsGEADwCQAhjAYQAPAJACGRBgEA2ggAIZ4GAQC_CAAhnwZAAIcJACGgBgEA2ggAIaEGAQDaCAAhogYBANoIACGjBgEA2ggAIaQGAQDaCAAhpQYQAOwJACEMCQAAkhIAIAwAAJYSACANAACXEgAgowUAALcKACCHBgAAtwoAIJEGAAC3CgAgoAYAALcKACChBgAAtwoAIKIGAAC3CgAgowYAALcKACCkBgAAtwoAIKUGAAC3CgAgFwkAAPkJACAMAAD6CQAgDQAA-wkAIJEFAAD3CQAwkgUAACkAEJMFAAD3CQAwlAUCAAAAAaMFAgCJCQAh5wUAAPgJpwYihwYCAIkJACGJBhAA8AkAIYoGEADwCQAhiwYQAPAJACGMBhAA8AkAIZEGAQDaCAAhngYBAL8IACGfBkAAhwkAIaAGAQDaCAAhoQYBANoIACGiBgEA2ggAIaMGAQDaCAAhpAYBANoIACGlBhAA7AkAIQMAAAApACABAAAqADACAAArACAJDAAA9gkAIBIAAPUJACCRBQAA9AkAMJIFAAAtABCTBQAA9AkAMJQFAgCGCQAhogUCAIYJACGjBQIAhgkAIaQFEADwCQAhAgwAAJYSACASAACVEgAgCgwAAPYJACASAAD1CQAgkQUAAPQJADCSBQAALQAQkwUAAPQJADCUBQIAAAABogUCAIYJACGjBQIAhgkAIaQFEADwCQAh4gYAAPMJACADAAAALQAgAQAALgAwAgAALwAgAwAAAC0AIAEAAC4AMAIAAC8AIAEAAAAtACABAAAAIQAgAQAAACkAIAEAAAAtACALCwAA8QkAIBEAAPIJACCRBQAA7wkAMJIFAAA2ABCTBQAA7wkAMJQFAgCGCQAhpQUCAIYJACGmBRAA8AkAIacFEADwCQAhqAUBANoIACGpBUAAhwkAIQMLAACTEgAgEQAAlBIAIKgFAAC3CgAgCwsAAPEJACARAADyCQAgkQUAAO8JADCSBQAANgAQkwUAAO8JADCUBQIAAAABpQUCAIYJACGmBRAA8AkAIacFEADwCQAhqAUBANoIACGpBUAAhwkAIQMAAAA2ACABAAA3ADACAAA4ACAUBAAAvQkAIAYAAOgJACALAADuCQAgkQUAAOsJADCSBQAAOgAQkwUAAOsJADCUBQIAhgkAIaUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIZ4GAQC_CAAhogYBANoIACGjBgEA2ggAIacGAgCGCQAhtQYBANoIACG2BhAA7AkAIbcGAQDaCAAhuAYBANoIACG6BgAA7Qm6BiK7BgEA2ggAIQsEAACJEgAgBgAAkRIAIAsAAJMSACClBQAAtwoAIKIGAAC3CgAgowYAALcKACC1BgAAtwoAILYGAAC3CgAgtwYAALcKACC4BgAAtwoAILsGAAC3CgAgFAQAAL0JACAGAADoCQAgCwAA7gkAIJEFAADrCQAwkgUAADoAEJMFAADrCQAwlAUCAAAAAaUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIZ4GAQC_CAAhogYBANoIACGjBgEA2ggAIacGAgCGCQAhtQYBANoIACG2BhAA7AkAIbcGAQDaCAAhuAYBANoIACG6BgAA7Qm6BiK7BgEA2ggAIQMAAAA6ACABAAA7ADACAAA8ACABAAAAFwAgAwAAAAcAIAEAAAgAMAIAAAkAIAEAAAAQACABAAAAGgAgAQAAADYAIAEAAAA6ACABAAAABwAgAwAAACkAIAEAACoAMAIAACsAIAkJAADqCQAgkQUAAOkJADCSBQAARgAQkwUAAOkJADCUBQIAhgkAIdwFAQC_CAAh3gUBAL8IACHgBQEA2ggAIYcGAgCGCQAhAgkAAJISACDgBQAAtwoAIAkJAADqCQAgkQUAAOkJADCSBQAARgAQkwUAAOkJADCUBQIAAAAB3AUBAL8IACHeBQEAvwgAIeAFAQDaCAAhhwYCAIYJACEDAAAARgAgAQAARwAwAgAASAAgAQAAABoAIAEAAAApACABAAAARgAgAQAAAAcAIAEAAAAQACABAAAAFwAgAwAAADoAIAEAADsAMAIAADwAIAMAAAAQACABAAARADACAAASACAJBgAA6AkAIJEFAADnCQAwkgUAAFIAEJMFAADnCQAwlAUCAIYJACHcBQEAvwgAId4FAQDaCAAh4AUBANoIACGnBgIAhgkAIQMGAACREgAg3gUAALcKACDgBQAAtwoAIAkGAADoCQAgkQUAAOcJADCSBQAAUgAQkwUAAOcJADCUBQIAAAAB3AUBAL8IACHeBQEA2ggAIeAFAQDaCAAhpwYCAIYJACEDAAAAUgAgAQAAUwAwAgAAVAAgAQAAADoAIAEAAAAQACABAAAAUgAgAwAAADoAIAEAADsAMAIAADwAIAMAAAAQACABAAARADACAAASACAKBAAAvQkAIBsAAOYJACCRBQAA5AkAMJIFAABbABCTBQAA5AkAMJQFAgCGCQAhqQVAAIcJACG1BQIAhgkAIZQGAQC_CAAhlgYAAOUJlgYiAgQAAIkSACAbAACQEgAgCgQAAL0JACAbAADmCQAgkQUAAOQJADCSBQAAWwAQkwUAAOQJADCUBQIAAAABqQVAAIcJACG1BQIAhgkAIZQGAQC_CAAhlgYAAOUJlgYiAwAAAFsAIAEAAFwAMAIAAF0AIAkaAADjCQAgkQUAAOIJADCSBQAAXwAQkwUAAOIJADCUBQIAhgkAIdwFAQC_CAAh4QVAAIcJACGSBgAB0QkAIZMGAgCGCQAhARoAAI8SACAJGgAA4wkAIJEFAADiCQAwkgUAAF8AEJMFAADiCQAwlAUCAAAAAdwFAQC_CAAh4QVAAIcJACGSBgAB0QkAIZMGAgCGCQAhAwAAAF8AIAEAAGAAMAIAAGEAIAEAAABfACADAAAAGgAgAQAAGwAwAgAAHAAgEAMAAM4JACAEAAC9CQAgkQUAAN0JADCSBQAAZQAQkwUAAN0JADCUBQIAhgkAIZUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIeMFAADeCeMFIuUFAADfCeUFIucFAADgCecFIukFAADhCekFIuoFAQDaCAAh6wUCAIkJACHsBQEA2ggAIQYDAACsCgAgBAAAiRIAIJUFAAC3CgAg6gUAALcKACDrBQAAtwoAIOwFAAC3CgAgEAMAAM4JACAEAAC9CQAgkQUAAN0JADCSBQAAZQAQkwUAAN0JADCUBQIAAAABlQUCAIkJACGpBUAAhwkAIbUFAgCGCQAh4wUAAN4J4wUi5QUAAN8J5QUi5wUAAOAJ5wUi6QUAAOEJ6QUi6gUBANoIACHrBQIAiQkAIewFAQDaCAAhAwAAAGUAIAEAAGYAMAIAAGcAIAEAAAANACANBAAAvQkAIJEFAADcCQAwkgUAAGoAEJMFAADcCQAwlAUCAIYJACG0BUAAhwkAIbUFAgCGCQAh3AUBAL8IACHdBQEAvwgAId4FAQC_CAAh3wUEANQJACHgBQEAvwgAIeEFQACHCQAhAQQAAIkSACANBAAAvQkAIJEFAADcCQAwkgUAAGoAEJMFAADcCQAwlAUCAAAAAbQFQACHCQAhtQUCAIYJACHcBQEAvwgAId0FAQC_CAAh3gUBAL8IACHfBQQA1AkAIeAFAQC_CAAh4QVAAIcJACEDAAAAagAgAQAAawAwAgAAbAAgCwMAAMAIACAEAAC9CQAgkQUAALwJADCSBQAAbgAQkwUAALwJADCUBQIAhgkAIZUFAgCGCQAhtAVAAIcJACG1BQIAhgkAIbYFAQC_CAAhtwUgAN8IACEBAAAAbgAgDwMAAMAIACAEAADaCQAgGQAA2wkAICAAANUJACAhAADZCQAgkQUAANgJADCSBQAAcAAQkwUAANgJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIbQFQACHCQAhtQUCAIkJACHzBQIAiQkAIQcDAACsCgAgBAAAiRIAIBkAAP0RACAgAACNEgAgIQAA_BEAILUFAAC3CgAg8wUAALcKACAQAwAAwAgAIAQAANoJACAZAADbCQAgIAAA1QkAICEAANkJACCRBQAA2AkAMJIFAABwABCTBQAA2AkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG0BUAAhwkAIbUFAgCJCQAh8wUCAIkJACHhBgAA1wkAIAMAAABwACABAABxADACAAByACABAAAAcAAgAwAAAHAAIAEAAHEAMAIAAHIAIAEAAAADACARAwAAwAgAICIAANUJACAkAADWCQAgkQUAANMJADCSBQAAdwAQkwUAANMJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIbQFQACHCQAh3gUBANoIACHfBQQA1AkAIe8FAgCJCQAh8AUgAN8IACHxBQIAiQkAIfIFAQDaCAAhBwMAAKwKACAiAACNEgAgJAAAjhIAIN4FAAC3CgAg7wUAALcKACDxBQAAtwoAIPIFAAC3CgAgEQMAAMAIACAiAADVCQAgJAAA1gkAIJEFAADTCQAwkgUAAHcAEJMFAADTCQAwlAUCAAAAAZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIbQFQACHCQAh3gUBANoIACHfBQQA1AkAIe8FAgCJCQAh8AUgAN8IACHxBQIAiQkAIfIFAQDaCAAhAwAAAHcAIAEAAHgAMAIAAHkAIAEAAABwACAJIwAA0gkAID4AAdEJACGRBQAA0AkAMJIFAAB8ABCTBQAA0AkAMJQFAgCGCQAhqQVAAIcJACHtBQIAhgkAIe4FAgCGCQAhASMAAIwSACAKIwAA0gkAID4AAdEJACGRBQAA0AkAMJIFAAB8ABCTBQAA0AkAMJQFAgAAAAGpBUAAhwkAIe0FAgCGCQAh7gUCAIYJACHgBgAAzwkAIAMAAAB8ACABAAB9ADACAAB-ACABAAAAfAAgAQAAAHAAIAEAAAB3ACABAAAABwAgAQAAADoAIAEAAAAQACABAAAAWwAgAQAAABoAIAEAAABlACABAAAAagAgAQAAAHAAIAMAAAAHACABAAAIADACAAAJACAFAwAArAoAIAUAAPIRACAIAAD1EQAgwgUAALcKACC_BgAAtwoAIA0DAADOCQAgBQAAzAkAIAgAAMgJACCRBQAAzQkAMJIFAAALABCTBQAAzQkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAhqgUBAL8IACHCBQEA2ggAIb4GAQC_CAAhvwYBANoIACEDAAAACwAgAQAAjAEAMAIAAI0BACAGAwAArAoAIAUAAPIRACAIAAD1EQAgFAAA-BEAIBUAAIoSACAWAACLEgAgEAMAAMAIACAFAADMCQAgCAAAyAkAIBQAAMkJACAVAADKCQAgFgAAywkAIJEFAADHCQAwkgUAABcAEJMFAADHCQAwlAUCAAAAAZUFAgCGCQAhqQVAAIcJACGzBQIAhgkAIbwGAQC_CAAhvQYBAL8IACHcBgAAxgkAIAMAAAAXACABAACPAQAwAgAAkAEAIAMAAAAQACABAAARADACAAASACAJAwAAwAgAIJEFAADFCQAwkgUAAJMBABCTBQAAxQkAMJQFAgCGCQAhlQUCAIYJACGbBgEAvwgAIZwGAQC_CAAhnQYBAL8IACEBAwAArAoAIAoDAADACAAgkQUAAMUJADCSBQAAkwEAEJMFAADFCQAwlAUCAAAAAZUFAgCGCQAhmwYBAL8IACGcBgEAvwgAIZ0GAQC_CAAh2wYAAMQJACADAAAAkwEAIAEAAJQBADACAACVAQAgCgMAAMAIACCRBQAAwwkAMJIFAACXAQAQkwUAAMMJADCUBQIAhgkAIZUFAgCGCQAhlwYBAL8IACGYBgEAvwgAIZkGAQC_CAAhmgYBAL8IACEBAwAArAoAIAoDAADACAAgkQUAAMMJADCSBQAAlwEAEJMFAADDCQAwlAUCAAAAAZUFAgCGCQAhlwYBAL8IACGYBgEAvwgAIZkGAQC_CAAhmgYBAL8IACEDAAAAlwEAIAEAAJgBADACAACZAQAgAwAAABoAIAEAABsAMAIAABwAIAcDAADACAAgkQUAAMIJADCSBQAAnAEAEJMFAADCCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhAQMAAKwKACAHAwAAwAgAIJEFAADCCQAwkgUAAJwBABCTBQAAwgkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAhAwAAAJwBACABAACdAQAwAgAAngEAIAkDAADACAAgkQUAAMEJADCSBQAAoAEAEJMFAADBCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAh_QUBAL8IACH-BSAA3wgAIQEDAACsCgAgCQMAAMAIACCRBQAAwQkAMJIFAACgAQAQkwUAAMEJADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIf0FAQC_CAAh_gUgAN8IACEDAAAAoAEAIAEAAKEBADACAACiAQAgCgMAAMAIACCRBQAAvwkAMJIFAACkAQAQkwUAAL8JADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACH6BQAAwAn6BSL7BQEAvwgAIfwFIADfCAAhAQMAAKwKACAKAwAAwAgAIJEFAAC_CQAwkgUAAKQBABCTBQAAvwkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAh-gUAAMAJ-gUi-wUBAL8IACH8BSAA3wgAIQMAAACkAQAgAQAApQEAMAIAAKYBACADAAAAcAAgAQAAcQAwAgAAcgAgAwAAAHcAIAEAAHgAMAIAAHkAIAMAAABlACABAABmADACAABnACALAwAAwAgAIJEFAADlCAAwkgUAAKsBABCTBQAA5QgAMJQFAgCGCQAhlQUCAIYJACG-BQEAvwgAIdUFAQC_CAAh2QUBANoIACHaBQEAvwgAIdsFAADmCAAgAQAAAKsBACANAwAAwAgAIJEFAADhCAAwkgUAAK0BABCTBQAA4QgAMJQFAgCGCQAhlQUCAIYJACG-BQEAvwgAIcgFAQC_CAAh1QUBANoIACHWBQEA2ggAIdcFAQDaCAAh2AUBANoIACHZBQEA2ggAIQEAAACtAQAgEwMAAMAIACCRBQAA3ggAMJIFAACvAQAQkwUAAN4IADCUBQIAhgkAIZUFAgCGCQAhyAUBAL8IACHJBSAA3wgAIcoFAQC_CAAhywUgAN8IACHMBQEAvwgAIc0FIADfCAAhzgUBAL8IACHPBQEAvwgAIdAFAQC_CAAh0QUBAL8IACHSBSAA3wgAIdMFIADfCAAh1AUgAN8IACEBAAAArwEAIAcDAADACAAgPgAA1ggAIJEFAADcCAAwkgUAALEBABCTBQAA3AgAMJQFAgCGCQAhlQUCAIYJACEBAAAAsQEAIBADAADACAAgkQUAANkIADCSBQAAswEAEJMFAADZCAAwlAUCAIYJACGVBQIAhgkAIb4FAQDaCAAhvwUBANoIACHABQEA2ggAIcEFAQDaCAAhwgUBANoIACHDBQEA2ggAIcQFAQDaCAAhxQUBANoIACHGBQEA2ggAIccFAQDaCAAhAQAAALMBACAHAwAAwAgAID4AANYIACCRBQAA1QgAMJIFAAC1AQAQkwUAANUIADCUBQIAhgkAIZUFAgCGCQAhAQAAALUBACAJAwAAwAgAIJEFAAC-CQAwkgUAALcBABCTBQAAvgkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhvgUBANoIACECAwAArAoAIL4FAAC3CgAgCQMAAMAIACCRBQAAvgkAMJIFAAC3AQAQkwUAAL4JADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhvgUBANoIACEDAAAAtwEAIAEAALgBADACAAC5AQAgAgMAAKwKACAEAACJEgAgCwMAAMAIACAEAAC9CQAgkQUAALwJADCSBQAAbgAQkwUAALwJADCUBQIAAAABlQUCAIYJACG0BUAAhwkAIbUFAgAAAAG2BQEAvwgAIbcFIADfCAAhAwAAAG4AIAEAALsBADACAAC8AQAgEgMAAMAIACCRBQAAuwkAMJIFAAC-AQAQkwUAALsJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIasFAQDaCAAhrAUBANoIACGtBQEA2ggAIa4FAQDaCAAhrwUBANoIACGwBQEA2ggAIbEFAQDaCAAhsgUBANoIACGzBQIAhgkAIbQFQACHCQAhCQMAAKwKACCrBQAAtwoAIKwFAAC3CgAgrQUAALcKACCuBQAAtwoAIK8FAAC3CgAgsAUAALcKACCxBQAAtwoAILIFAAC3CgAgEgMAAMAIACCRBQAAuwkAMJIFAAC-AQAQkwUAALsJADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhqwUBANoIACGsBQEA2ggAIa0FAQDaCAAhrgUBANoIACGvBQEA2ggAIbAFAQDaCAAhsQUBANoIACGyBQEA2ggAIbMFAgCGCQAhtAVAAIcJACEDAAAAvgEAIAEAAL8BADACAADAAQAgBwMAAMAIACCRBQAAvggAMJIFAADCAQAQkwUAAL4IADCUBQIAhgkAIZUFAgCGCQAhlgUBAL8IACEBAAAAwgEAIAEAAAADACABAAAABwAgAQAAAAsAIAEAAAAXACABAAAAEAAgAQAAAJMBACABAAAAlwEAIAEAAAAaACABAAAAnAEAIAEAAACgAQAgAQAAAKQBACABAAAAcAAgAQAAAHcAIAEAAABlACABAAAAtwEAIAEAAABuACABAAAAvgEAIAEAAAABACAYBQAA8hEAIAcAAPMRACAIAAD1EQAgHQAA_hEAICUAAPwRACAmAADxEQAgJwAA9BEAICgAAPYRACApAAD3EQAgKgAA-BEAICsAAPkRACAsAAD6EQAgLQAA-xEAIC4AAP0RACAvAAD_EQAgMAAAgBIAIDEAAIESACAyAACCEgAgMwAAgxIAIDQAAIQSACA1AACFEgAgNgAAhhIAIDcAAIcSACA4AACIEgAgAwAAAA0AIAEAANYBADACAAABACADAAAADQAgAQAA1gEAMAIAAAEAIAMAAAANACABAADWAQAwAgAAAQAgIgUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAEBPgAA2gEAIAqUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAT4AANwBADABPgAA3AEAMCIFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAIQIAAAABACA-AADfAQAgCpQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhAgAAAA0AID4AAOEBACACAAAADQAgPgAA4QEAIAMAAAABACBFAADaAQAgRgAA3wEAIAEAAAABACABAAAADQAgBQ4AAN8PACBLAADgDwAgTAAA4w8AIE0AAOIPACBOAADhDwAgDZEFAAC6CQAwkgUAAOgBABCTBQAAugkAMJQFAgC3CAAhnAYBALgIACGdBgEAuAgAIdQGIADPCAAh1QYCALcIACHWBiAAzwgAIdcGAgC3CAAh2AYgAM8IACHZBgIAtwgAIdoGAgC3CAAhAwAAAA0AIAEAAOcBADBKAADoAQAgAwAAAA0AIAEAANYBADACAAABACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAICEDAADVDwAgBQAA1g8AIAgAANgPACAMAADaDwAgGAAA1w8AIBwAANkPACAdAADbDwAgHgAA3A8AIB8AAN0PACAlAADeDwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAT4AAPABACAXlAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAT4AAPIBADABPgAA8gEAMCEDAAD1DgAgBQAA9g4AIAgAAPgOACAMAAD6DgAgGAAA9w4AIBwAAPkOACAdAAD7DgAgHgAA_A4AIB8AAP0OACAlAAD-DgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACECAAAABQAgPgAA9QEAIBeUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_BgEAqAoAIcgGAQCoCgAhyQYBAKgKACHKBgEAqAoAIcsGAQC9CgAhzAYBAL0KACHNBgEAvQoAIc4GAQC9CgAhzwYBAL0KACHQBgEAvQoAIdEGAQC9CgAh0gYBAL0KACHTBgEAvQoAIQIAAAADACA-AAD3AQAgAgAAAAMAID4AAPcBACADAAAABQAgRQAA8AEAIEYAAPUBACABAAAABQAgAQAAAAMAIBMOAADwDgAgSwAA8Q4AIEwAAPQOACBNAADzDgAgTgAA8g4AIMIFAAC3CgAgxQUAALcKACDHBQAAtwoAIKsGAAC3CgAgsQYAALcKACDLBgAAtwoAIMwGAAC3CgAgzQYAALcKACDOBgAAtwoAIM8GAAC3CgAg0AYAALcKACDRBgAAtwoAINIGAAC3CgAg0wYAALcKACAakQUAALkJADCSBQAA_gEAEJMFAAC5CQAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhtAVAAMcIACHCBQEAxggAIcUFAQDGCAAhxwUBAMYIACHnBQAAtgnHBiKrBkAAggkAIbEGAQDGCAAhvwYBALgIACHIBgEAuAgAIckGAQC4CAAhygYBALgIACHLBgEAxggAIcwGAQDGCAAhzQYBAMYIACHOBgEAxggAIc8GAQDGCAAh0AYBAMYIACHRBgEAxggAIdIGAQDGCAAh0wYBAMYIACEDAAAAAwAgAQAA_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_BgEAAAABAT4AALYCACAHlAUCAAAAAZUFAgAAAAGpBUAAAAABqgUBAAAAAcIFAQAAAAG-BgEAAAABvwYBAAAAAQE-AAC4AgAwAT4AALgCADABAAAADQAgCgMAAMoOACAFAADLDgAgCAAAzA4AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhwgUBAL0KACG-BgEAqAoAIb8GAQC9CgAhAgAAAI0BACA-AAC8AgAgB5QFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhwgUBAL0KACG-BgEAqAoAIb8GAQC9CgAhAgAAAAsAID4AAL4CACACAAAACwAgPgAAvgIAIAEAAAANACADAAAAjQEAIEUAALYCACBGAAC8AgAgAQAAAI0BACABAAAACwAgBw4AAMUOACBLAADGDgAgTAAAyQ4AIE0AAMgOACBOAADHDgAgwgUAALcKACC_BgAAtwoAIAqRBQAAswkAMJIFAADGAgAQkwUAALMJADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACGqBQEAuAgAIcIFAQDGCAAhvgYBALgIACG_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_DQAglAUCAAAAAZUFAgAAAAGlBQIAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACzBgKnBgIAAAABqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABAT4AAPwCACATlAUCAAAAAZUFAgAAAAGlBQIAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACzBgKnBgIAAAABqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABAT4AAP4CADABPgAA_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_wwAIE0AAP4MACBOAAD9DAAgCJEFAAChCQAwkgUAANgDABCTBQAAoQkAMJQFAgC3CAAhlQUCALcIACGbBgEAuAgAIZwGAQC4CAAhnQYBALgIACEDAAAAkwEAIAEAANcDADBKAADYAwAgAwAAAJMBACABAACUAQAwAgAAlQEAIAEAAACZAQAgAQAAAJkBACADAAAAlwEAIAEAAJgBADACAACZAQAgAwAAAJcBACABAACYAQAwAgAAmQEAIAMAAACXAQAgAQAAmAEAMAIAAJkBACAHAwAA-gwAIJQFAgAAAAGVBQIAAAABlwYBAAAAAZgGAQAAAAGZBgEAAAABmgYBAAAAAQE-AADgAwAgBpQFAgAAAAGVBQIAAAABlwYBAAAAAZgGAQAAAAGZBgEAAAABmgYBAAAAAQE-AADiAwAwAT4AAOIDADAHAwAA-QwAIJQFAgCpCgAhlQUCAKkKACGXBgEAqAoAIZgGAQCoCgAhmQYBAKgKACGaBgEAqAoAIQIAAACZAQAgPgAA5QMAIAaUBQIAqQoAIZUFAgCpCgAhlwYBAKgKACGYBgEAqAoAIZkGAQCoCgAhmgYBAKgKACECAAAAlwEAID4AAOcDACACAAAAlwEAID4AAOcDACADAAAAmQEAIEUAAOADACBGAADlAwAgAQAAAJkBACABAAAAlwEAIAUOAAD0DAAgSwAA9QwAIEwAAPgMACBNAAD3DAAgTgAA9gwAIAmRBQAAoAkAMJIFAADuAwAQkwUAAKAJADCUBQIAtwgAIZUFAgC3CAAhlwYBALgIACGYBgEAuAgAIZkGAQC4CAAhmgYBALgIACEDAAAAlwEAIAEAAO0DADBKAADuAwAgAwAAAJcBACABAACYAQAwAgAAmQEAIAEAAABdACABAAAAXQAgAwAAAFsAIAEAAFwAMAIAAF0AIAMAAABbACABAABcADACAABdACADAAAAWwAgAQAAXAAwAgAAXQAgBwQAAPIMACAbAADzDAAglAUCAAAAAakFQAAAAAG1BQIAAAABlAYBAAAAAZYGAAAAlgYCAT4AAPYDACAFlAUCAAAAAakFQAAAAAG1BQIAAAABlAYBAAAAAZYGAAAAlgYCAT4AAPgDADABPgAA-AMAMAcEAADkDAAgGwAA5QwAIJQFAgCpCgAhqQVAAL4KACG1BQIAqQoAIZQGAQCoCgAhlgYAAOMMlgYiAgAAAF0AID4AAPsDACAFlAUCAKkKACGpBUAAvgoAIbUFAgCpCgAhlAYBAKgKACGWBgAA4wyWBiICAAAAWwAgPgAA_QMAIAIAAABbACA-AAD9AwAgAwAAAF0AIEUAAPYDACBGAAD7AwAgAQAAAF0AIAEAAABbACAFDgAA3gwAIEsAAN8MACBMAADiDAAgTQAA4QwAIE4AAOAMACAIkQUAAJwJADCSBQAAhAQAEJMFAACcCQAwlAUCALcIACGpBUAAxwgAIbUFAgC3CAAhlAYBALgIACGWBgAAnQmWBiIDAAAAWwAgAQAAgwQAMEoAAIQEACADAAAAWwAgAQAAXAAwAgAAXQAgAQAAAGEAIAEAAABhACADAAAAXwAgAQAAYAAwAgAAYQAgAwAAAF8AIAEAAGAAMAIAAGEAIAMAAABfACABAABgADACAABhACAGGgAA3QwAIJQFAgAAAAHcBQEAAAAB4QVAAAAAAZIGAAEAAAGTBgIAAAABAT4AAIwEACAFlAUCAAAAAdwFAQAAAAHhBUAAAAABkgYAAQAAAZMGAgAAAAEBPgAAjgQAMAE-AACOBAAwBhoAANwMACCUBQIAqQoAIdwFAQCoCgAh4QVAAL4KACGSBgABrAsAIZMGAgCpCgAhAgAAAGEAID4AAJEEACAFlAUCAKkKACHcBQEAqAoAIeEFQAC-CgAhkgYAAawLACGTBgIAqQoAIQIAAABfACA-AACTBAAgAgAAAF8AID4AAJMEACADAAAAYQAgRQAAjAQAIEYAAJEEACABAAAAYQAgAQAAAF8AIAUOAADXDAAgSwAA2AwAIEwAANsMACBNAADaDAAgTgAA2QwAIAiRBQAAmwkAMJIFAACaBAAQkwUAAJsJADCUBQIAtwgAIdwFAQC4CAAh4QVAAMcIACGSBgAB_AgAIZMGAgC3CAAhAwAAAF8AIAEAAJkEADBKAACaBAAgAwAAAF8AIAEAAGAAMAIAAGEAIAEAAAAcACABAAAAHAAgAwAAABoAIAEAABsAMAIAABwAIAMAAAAaACABAAAbADACAAAcACADAAAAGgAgAQAAGwAwAgAAHAAgGQQAANEMACAJAADQDAAgCgAA0gwAIAsAANMMACANAADUDAAgEAAA1QwAIBMAANYMACCUBQIAAAABlQUCAAAAAaUFAgAAAAGoBQEAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACRBgKHBgIAAAABiAYCAAAAAYkGEAAAAAGKBhAAAAABiwYQAAAAAYwGEAAAAAGNBhAAAAABjgYQAAAAAY8GEAAAAAGRBgEAAAABAT4AAKIEACASlAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAkQYChwYCAAAAAYgGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABjQYQAAAAAY4GEAAAAAGPBhAAAAABkQYBAAAAAQE-AACkBAAwAT4AAKQEADABAAAAEAAgAQAAAA0AIAEAAAAXACAZBAAAmwwAIAkAAJoMACAKAACcDAAgCwAAnQwAIA0AAJ4MACAQAACfDAAgEwAAoAwAIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG0BUAAvgoAIbUFAgCpCgAh5wUAAJkMkQYihwYCAKILACGIBgIAogsAIYkGEACyCgAhigYQALIKACGLBhAAsgoAIYwGEACyCgAhjQYQAJgMACGOBhAAsgoAIY8GEACyCgAhkQYBAL0KACECAAAAHAAgPgAAqgQAIBKUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACZDJEGIocGAgCiCwAhiAYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIY0GEACYDAAhjgYQALIKACGPBhAAsgoAIZEGAQC9CgAhAgAAABoAID4AAKwEACACAAAAGgAgPgAArAQAIAEAAAAQACABAAAADQAgAQAAABcAIAMAAAAcACBFAACiBAAgRgAAqgQAIAEAAAAcACABAAAAGgAgCw4AAJMMACBLAACUDAAgTAAAlwwAIE0AAJYMACBOAACVDAAgpQUAALcKACCoBQAAtwoAIIcGAAC3CgAgiAYAALcKACCNBgAAtwoAIJEGAAC3CgAgFZEFAACUCQAwkgUAALYEABCTBQAAlAkAMJQFAgC3CAAhlQUCALcIACGlBQIA7AgAIagFAQDGCAAhqQVAAMcIACG0BUAAxwgAIbUFAgC3CAAh5wUAAJYJkQYihwYCAOwIACGIBgIA7AgAIYkGEADCCAAhigYQAMIIACGLBhAAwggAIYwGEADCCAAhjQYQAJUJACGOBhAAwggAIY8GEADCCAAhkQYBAMYIACEDAAAAGgAgAQAAtQQAMEoAALYEACADAAAAGgAgAQAAGwAwAgAAHAAgAQAAACMAIAEAAAAjACADAAAAIQAgAQAAIgAwAgAAIwAgAwAAACEAIAEAACIAMAIAACMAIAMAAAAhACABAAAiADACAAAjACANDAAAkQwAIA8AAJIMACCUBQIAAAABowUCAAAAAagFAQAAAAGpBUAAAAAB_wUCAAAAAYAGAQAAAAGBBhAAAAABggYQAAAAAYQGAAAAhAYChQZAAAAAAYYGAQAAAAEBPgAAvgQAIAuUBQIAAAABowUCAAAAAagFAQAAAAGpBUAAAAAB_wUCAAAAAYAGAQAAAAGBBhAAAAABggYQAAAAAYQGAAAAhAYChQZAAAAAAYYGAQAAAAEBPgAAwAQAMAE-AADABAAwDQwAAI8MACAPAACQDAAglAUCAKkKACGjBQIAqQoAIagFAQC9CgAhqQVAAL4KACH_BQIAqQoAIYAGAQC9CgAhgQYQALIKACGCBhAAsgoAIYQGAACODIQGIoUGQAC-CgAhhgYBAL0KACECAAAAIwAgPgAAwwQAIAuUBQIAqQoAIaMFAgCpCgAhqAUBAL0KACGpBUAAvgoAIf8FAgCpCgAhgAYBAL0KACGBBhAAsgoAIYIGEACyCgAhhAYAAI4MhAYihQZAAL4KACGGBgEAvQoAIQIAAAAhACA-AADFBAAgAgAAACEAID4AAMUEACADAAAAIwAgRQAAvgQAIEYAAMMEACABAAAAIwAgAQAAACEAIAgOAACJDAAgSwAAigwAIEwAAI0MACBNAACMDAAgTgAAiwwAIKgFAAC3CgAggAYAALcKACCGBgAAtwoAIA6RBQAAkAkAMJIFAADMBAAQkwUAAJAJADCUBQIAtwgAIaMFAgC3CAAhqAUBAMYIACGpBUAAxwgAIf8FAgC3CAAhgAYBAMYIACGBBhAAwggAIYIGEADCCAAhhAYAAJEJhAYihQZAAMcIACGGBgEAxggAIQMAAAAhACABAADLBAAwSgAAzAQAIAMAAAAhACABAAAiADACAAAjACABAAAAngEAIAEAAACeAQAgAwAAAJwBACABAACdAQAwAgAAngEAIAMAAACcAQAgAQAAnQEAMAIAAJ4BACADAAAAnAEAIAEAAJ0BADACAACeAQAgBAMAAIgMACCUBQIAAAABlQUCAAAAAakFQAAAAAEBPgAA1AQAIAOUBQIAAAABlQUCAAAAAakFQAAAAAEBPgAA1gQAMAE-AADWBAAwBAMAAIcMACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACECAAAAngEAID4AANkEACADlAUCAKkKACGVBQIAqQoAIakFQAC-CgAhAgAAAJwBACA-AADbBAAgAgAAAJwBACA-AADbBAAgAwAAAJ4BACBFAADUBAAgRgAA2QQAIAEAAACeAQAgAQAAAJwBACAFDgAAggwAIEsAAIMMACBMAACGDAAgTQAAhQwAIE4AAIQMACAGkQUAAI8JADCSBQAA4gQAEJMFAACPCQAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhAwAAAJwBACABAADhBAAwSgAA4gQAIAMAAACcAQAgAQAAnQEAMAIAAJ4BACABAAAAogEAIAEAAACiAQAgAwAAAKABACABAAChAQAwAgAAogEAIAMAAACgAQAgAQAAoQEAMAIAAKIBACADAAAAoAEAIAEAAKEBADACAACiAQAgBgMAAIEMACCUBQIAAAABlQUCAAAAAakFQAAAAAH9BQEAAAAB_gUgAAAAAQE-AADqBAAgBZQFAgAAAAGVBQIAAAABqQVAAAAAAf0FAQAAAAH-BSAAAAABAT4AAOwEADABPgAA7AQAMAYDAACADAAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAh_QUBAKgKACH-BSAA2woAIQIAAACiAQAgPgAA7wQAIAWUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACH9BQEAqAoAIf4FIADbCgAhAgAAAKABACA-AADxBAAgAgAAAKABACA-AADxBAAgAwAAAKIBACBFAADqBAAgRgAA7wQAIAEAAACiAQAgAQAAAKABACAFDgAA-wsAIEsAAPwLACBMAAD_CwAgTQAA_gsAIE4AAP0LACAIkQUAAI4JADCSBQAA-AQAEJMFAACOCQAwlAUCALcIACGVBQIAtwgAIakFQADHCAAh_QUBALgIACH-BSAAzwgAIQMAAACgAQAgAQAA9wQAMEoAAPgEACADAAAAoAEAIAEAAKEBADACAACiAQAgAQAAAKYBACABAAAApgEAIAMAAACkAQAgAQAApQEAMAIAAKYBACADAAAApAEAIAEAAKUBADACAACmAQAgAwAAAKQBACABAAClAQAwAgAApgEAIAcDAAD6CwAglAUCAAAAAZUFAgAAAAGpBUAAAAAB-gUAAAD6BQL7BQEAAAAB_AUgAAAAAQE-AACABQAgBpQFAgAAAAGVBQIAAAABqQVAAAAAAfoFAAAA-gUC-wUBAAAAAfwFIAAAAAEBPgAAggUAMAE-AACCBQAwBwMAAPkLACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACH6BQAA-Av6BSL7BQEAqAoAIfwFIADbCgAhAgAAAKYBACA-AACFBQAgBpQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIfoFAAD4C_oFIvsFAQCoCgAh_AUgANsKACECAAAApAEAID4AAIcFACACAAAApAEAID4AAIcFACADAAAApgEAIEUAAIAFACBGAACFBQAgAQAAAKYBACABAAAApAEAIAUOAADzCwAgSwAA9AsAIEwAAPcLACBNAAD2CwAgTgAA9QsAIAmRBQAAigkAMJIFAACOBQAQkwUAAIoJADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACH6BQAAiwn6BSL7BQEAuAgAIfwFIADPCAAhAwAAAKQBACABAACNBQAwSgAAjgUAIAMAAACkAQAgAQAApQEAMAIAAKYBACAKkQUAAIUJADCSBQAAlAUAEJMFAACFCQAwlAUCAAAAAecFAQC_CAAh9AUBAL8IACH1BUAAhwkAIfYFQACICQAh9wUCAIkJACH4BQEA2ggAIQEAAACRBQAgAQAAAJEFACAKkQUAAIUJADCSBQAAlAUAEJMFAACFCQAwlAUCAIYJACHnBQEAvwgAIfQFAQC_CAAh9QVAAIcJACH2BUAAiAkAIfcFAgCJCQAh-AUBANoIACED9gUAALcKACD3BQAAtwoAIPgFAAC3CgAgAwAAAJQFACABAACVBQAwAgAAkQUAIAMAAACUBQAgAQAAlQUAMAIAAJEFACADAAAAlAUAIAEAAJUFADACAACRBQAgB5QFAgAAAAHnBQEAAAAB9AUBAAAAAfUFQAAAAAH2BUAAAAAB9wUCAAAAAfgFAQAAAAEBPgAAmQUAIAeUBQIAAAAB5wUBAAAAAfQFAQAAAAH1BUAAAAAB9gVAAAAAAfcFAgAAAAH4BQEAAAABAT4AAJsFADABPgAAmwUAMAeUBQIAqQoAIecFAQCoCgAh9AUBAKgKACH1BUAAvgoAIfYFQADyCwAh9wUCAKILACH4BQEAvQoAIQIAAACRBQAgPgAAngUAIAeUBQIAqQoAIecFAQCoCgAh9AUBAKgKACH1BUAAvgoAIfYFQADyCwAh9wUCAKILACH4BQEAvQoAIQIAAACUBQAgPgAAoAUAIAIAAACUBQAgPgAAoAUAIAMAAACRBQAgRQAAmQUAIEYAAJ4FACABAAAAkQUAIAEAAACUBQAgCA4AAO0LACBLAADuCwAgTAAA8QsAIE0AAPALACBOAADvCwAg9gUAALcKACD3BQAAtwoAIPgFAAC3CgAgCpEFAACBCQAwkgUAAKcFABCTBQAAgQkAMJQFAgC3CAAh5wUBALgIACH0BQEAuAgAIfUFQADHCAAh9gVAAIIJACH3BQIA7AgAIfgFAQDGCAAhAwAAAJQFACABAACmBQAwSgAApwUAIAMAAACUBQAgAQAAlQUAMAIAAJEFACABAAAAcgAgAQAAAHIAIAMAAABwACABAABxADACAAByACADAAAAcAAgAQAAcQAwAgAAcgAgAwAAAHAAIAEAAHEAMAIAAHIAIAwDAADpCwAgBAAA6gsAIBkAAOsLACAgAADsCwAgIQAA6AsAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAABtQUCAAAAAfMFAgAAAAEBPgAArwUAIAeUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAbUFAgAAAAHzBQIAAAABAT4AALEFADABPgAAsQUAMAEAAABwACABAAAAAwAgDAMAAM0LACAEAADOCwAgGQAAzwsAICAAAMsLACAhAADMCwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAIbUFAgCiCwAh8wUCAKILACECAAAAcgAgPgAAtgUAIAeUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAhtQUCAKILACHzBQIAogsAIQIAAABwACA-AAC4BQAgAgAAAHAAID4AALgFACABAAAAcAAgAQAAAAMAIAMAAAByACBFAACvBQAgRgAAtgUAIAEAAAByACABAAAAcAAgBw4AAMYLACBLAADHCwAgTAAAygsAIE0AAMkLACBOAADICwAgtQUAALcKACDzBQAAtwoAIAqRBQAAgAkAMJIFAADBBQAQkwUAAIAJADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACGqBQEAuAgAIbQFQADHCAAhtQUCAOwIACHzBQIA7AgAIQMAAABwACABAADABQAwSgAAwQUAIAMAAABwACABAABxADACAAByACABAAAAeQAgAQAAAHkAIAMAAAB3ACABAAB4ADACAAB5ACADAAAAdwAgAQAAeAAwAgAAeQAgAwAAAHcAIAEAAHgAMAIAAHkAIA4DAADDCwAgIgAAxAsAICQAAMULACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAd4FAQAAAAHfBQQAAAAB7wUCAAAAAfAFIAAAAAHxBQIAAAAB8gUBAAAAAQE-AADJBQAgC5QFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB3gUBAAAAAd8FBAAAAAHvBQIAAAAB8AUgAAAAAfEFAgAAAAHyBQEAAAABAT4AAMsFADABPgAAywUAMAEAAABwACAOAwAAtAsAICIAALULACAkAAC2CwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAId4FAQC9CgAh3wUEAJYLACHvBQIAogsAIfAFIADbCgAh8QUCAKILACHyBQEAvQoAIQIAAAB5ACA-AADPBQAgC5QFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhtAVAAL4KACHeBQEAvQoAId8FBACWCwAh7wUCAKILACHwBSAA2woAIfEFAgCiCwAh8gUBAL0KACECAAAAdwAgPgAA0QUAIAIAAAB3ACA-AADRBQAgAQAAAHAAIAMAAAB5ACBFAADJBQAgRgAAzwUAIAEAAAB5ACABAAAAdwAgCQ4AAK8LACBLAACwCwAgTAAAswsAIE0AALILACBOAACxCwAg3gUAALcKACDvBQAAtwoAIPEFAAC3CgAg8gUAALcKACAOkQUAAP8IADCSBQAA2QUAEJMFAAD_CAAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhqgUBALgIACG0BUAAxwgAId4FAQDGCAAh3wUEAOgIACHvBQIA7AgAIfAFIADPCAAh8QUCAOwIACHyBQEAxggAIQMAAAB3ACABAADYBQAwSgAA2QUAIAMAAAB3ACABAAB4ADACAAB5ACABAAAAfgAgAQAAAH4AIAMAAAB8ACABAAB9ADACAAB-ACADAAAAfAAgAQAAfQAwAgAAfgAgAwAAAHwAIAEAAH0AMAIAAH4AIAYjAACuCwAgPgABAAABlAUCAAAAAakFQAAAAAHtBQIAAAAB7gUCAAAAAQE-AADhBQAgBT4AAQAAAZQFAgAAAAGpBUAAAAAB7QUCAAAAAe4FAgAAAAEBPgAA4wUAMAE-AADjBQAwBiMAAK0LACA-AAGsCwAhlAUCAKkKACGpBUAAvgoAIe0FAgCpCgAh7gUCAKkKACECAAAAfgAgPgAA5gUAIAU-AAGsCwAhlAUCAKkKACGpBUAAvgoAIe0FAgCpCgAh7gUCAKkKACECAAAAfAAgPgAA6AUAIAIAAAB8ACA-AADoBQAgAwAAAH4AIEUAAOEFACBGAADmBQAgAQAAAH4AIAEAAAB8ACAFDgAApwsAIEsAAKgLACBMAACrCwAgTQAAqgsAIE4AAKkLACAIPgAB_AgAIZEFAAD7CAAwkgUAAO8FABCTBQAA-wgAMJQFAgC3CAAhqQVAAMcIACHtBQIAtwgAIe4FAgC3CAAhAwAAAHwAIAEAAO4FADBKAADvBQAgAwAAAHwAIAEAAH0AMAIAAH4AIAEAAABnACABAAAAZwAgAwAAAGUAIAEAAGYAMAIAAGcAIAMAAABlACABAABmADACAABnACADAAAAZQAgAQAAZgAwAgAAZwAgDQMAAKYLACAEAAClCwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtQUCAAAAAeMFAAAA4wUC5QUAAADlBQLnBQAAAOcFAukFAAAA6QUC6gUBAAAAAesFAgAAAAHsBQEAAAABAT4AAPcFACALlAUCAAAAAZUFAgAAAAGpBUAAAAABtQUCAAAAAeMFAAAA4wUC5QUAAADlBQLnBQAAAOcFAukFAAAA6QUC6gUBAAAAAesFAgAAAAHsBQEAAAABAT4AAPkFADABPgAA-QUAMAEAAAANACANAwAApAsAIAQAAKMLACCUBQIAqQoAIZUFAgCiCwAhqQVAAL4KACG1BQIAqQoAIeMFAACeC-MFIuUFAACfC-UFIucFAACgC-cFIukFAAChC-kFIuoFAQC9CgAh6wUCAKILACHsBQEAvQoAIQIAAABnACA-AAD9BQAgC5QFAgCpCgAhlQUCAKILACGpBUAAvgoAIbUFAgCpCgAh4wUAAJ4L4wUi5QUAAJ8L5QUi5wUAAKAL5wUi6QUAAKEL6QUi6gUBAL0KACHrBQIAogsAIewFAQC9CgAhAgAAAGUAID4AAP8FACACAAAAZQAgPgAA_wUAIAEAAAANACADAAAAZwAgRQAA9wUAIEYAAP0FACABAAAAZwAgAQAAAGUAIAkOAACZCwAgSwAAmgsAIEwAAJ0LACBNAACcCwAgTgAAmwsAIJUFAAC3CgAg6gUAALcKACDrBQAAtwoAIOwFAAC3CgAgDpEFAADrCAAwkgUAAIcGABCTBQAA6wgAMJQFAgC3CAAhlQUCAOwIACGpBUAAxwgAIbUFAgC3CAAh4wUAAO0I4wUi5QUAAO4I5QUi5wUAAO8I5wUi6QUAAPAI6QUi6gUBAMYIACHrBQIA7AgAIewFAQDGCAAhAwAAAGUAIAEAAIYGADBKAACHBgAgAwAAAGUAIAEAAGYAMAIAAGcAIAEAAABsACABAAAAbAAgAwAAAGoAIAEAAGsAMAIAAGwAIAMAAABqACABAABrADACAABsACADAAAAagAgAQAAawAwAgAAbAAgCgQAAJgLACCUBQIAAAABtAVAAAAAAbUFAgAAAAHcBQEAAAAB3QUBAAAAAd4FAQAAAAHfBQQAAAAB4AUBAAAAAeEFQAAAAAEBPgAAjwYAIAmUBQIAAAABtAVAAAAAAbUFAgAAAAHcBQEAAAAB3QUBAAAAAd4FAQAAAAHfBQQAAAAB4AUBAAAAAeEFQAAAAAEBPgAAkQYAMAE-AACRBgAwCgQAAJcLACCUBQIAqQoAIbQFQAC-CgAhtQUCAKkKACHcBQEAqAoAId0FAQCoCgAh3gUBAKgKACHfBQQAlgsAIeAFAQCoCgAh4QVAAL4KACECAAAAbAAgPgAAlAYAIAmUBQIAqQoAIbQFQAC-CgAhtQUCAKkKACHcBQEAqAoAId0FAQCoCgAh3gUBAKgKACHfBQQAlgsAIeAFAQCoCgAh4QVAAL4KACECAAAAagAgPgAAlgYAIAIAAABqACA-AACWBgAgAwAAAGwAIEUAAI8GACBGAACUBgAgAQAAAGwAIAEAAABqACAFDgAAkQsAIEsAAJILACBMAACVCwAgTQAAlAsAIE4AAJMLACAMkQUAAOcIADCSBQAAnQYAEJMFAADnCAAwlAUCALcIACG0BUAAxwgAIbUFAgC3CAAh3AUBALgIACHdBQEAuAgAId4FAQC4CAAh3wUEAOgIACHgBQEAuAgAIeEFQADHCAAhAwAAAGoAIAEAAJwGADBKAACdBgAgAwAAAGoAIAEAAGsAMAIAAGwAIAsDAADACAAgkQUAAOUIADCSBQAAqwEAEJMFAADlCAAwlAUCAAAAAZUFAgAAAAG-BQEAvwgAIdUFAQC_CAAh2QUBANoIACHaBQEAvwgAIdsFAADmCAAgAQAAAKAGACABAAAAoAYAIAMDAACsCgAg2QUAALcKACDbBQAAtwoAIAMAAACrAQAgAQAAowYAMAIAAKAGACADAAAAqwEAIAEAAKMGADACAACgBgAgAwAAAKsBACABAACjBgAwAgAAoAYAIAgDAACQCwAglAUCAAAAAZUFAgAAAAG-BQEAAAAB1QUBAAAAAdkFAQAAAAHaBQEAAAAB2wWAAAAAAQE-AACnBgAgB5QFAgAAAAGVBQIAAAABvgUBAAAAAdUFAQAAAAHZBQEAAAAB2gUBAAAAAdsFgAAAAAEBPgAAqQYAMAE-AACpBgAwCAMAAI8LACCUBQIAqQoAIZUFAgCpCgAhvgUBAKgKACHVBQEAqAoAIdkFAQC9CgAh2gUBAKgKACHbBYAAAAABAgAAAKAGACA-AACsBgAgB5QFAgCpCgAhlQUCAKkKACG-BQEAqAoAIdUFAQCoCgAh2QUBAL0KACHaBQEAqAoAIdsFgAAAAAECAAAAqwEAID4AAK4GACACAAAAqwEAID4AAK4GACADAAAAoAYAIEUAAKcGACBGAACsBgAgAQAAAKAGACABAAAAqwEAIAcOAACKCwAgSwAAiwsAIEwAAI4LACBNAACNCwAgTgAAjAsAINkFAAC3CgAg2wUAALcKACAKkQUAAOIIADCSBQAAtQYAEJMFAADiCAAwlAUCALcIACGVBQIAtwgAIb4FAQC4CAAh1QUBALgIACHZBQEAxggAIdoFAQC4CAAh2wUAAOMIACADAAAAqwEAIAEAALQGADBKAAC1BgAgAwAAAKsBACABAACjBgAwAgAAoAYAIA0DAADACAAgkQUAAOEIADCSBQAArQEAEJMFAADhCAAwlAUCAAAAAZUFAgAAAAG-BQEAvwgAIcgFAQC_CAAh1QUBANoIACHWBQEA2ggAIdcFAQDaCAAh2AUBANoIACHZBQEA2ggAIQEAAAC4BgAgAQAAALgGACAGAwAArAoAINUFAAC3CgAg1gUAALcKACDXBQAAtwoAINgFAAC3CgAg2QUAALcKACADAAAArQEAIAEAALsGADACAAC4BgAgAwAAAK0BACABAAC7BgAwAgAAuAYAIAMAAACtAQAgAQAAuwYAMAIAALgGACAKAwAAiQsAIJQFAgAAAAGVBQIAAAABvgUBAAAAAcgFAQAAAAHVBQEAAAAB1gUBAAAAAdcFAQAAAAHYBQEAAAAB2QUBAAAAAQE-AAC_BgAgCZQFAgAAAAGVBQIAAAABvgUBAAAAAcgFAQAAAAHVBQEAAAAB1gUBAAAAAdcFAQAAAAHYBQEAAAAB2QUBAAAAAQE-AADBBgAwAT4AAMEGADAKAwAAiAsAIJQFAgCpCgAhlQUCAKkKACG-BQEAqAoAIcgFAQCoCgAh1QUBAL0KACHWBQEAvQoAIdcFAQC9CgAh2AUBAL0KACHZBQEAvQoAIQIAAAC4BgAgPgAAxAYAIAmUBQIAqQoAIZUFAgCpCgAhvgUBAKgKACHIBQEAqAoAIdUFAQC9CgAh1gUBAL0KACHXBQEAvQoAIdgFAQC9CgAh2QUBAL0KACECAAAArQEAID4AAMYGACACAAAArQEAID4AAMYGACADAAAAuAYAIEUAAL8GACBGAADEBgAgAQAAALgGACABAAAArQEAIAoOAACDCwAgSwAAhAsAIEwAAIcLACBNAACGCwAgTgAAhQsAINUFAAC3CgAg1gUAALcKACDXBQAAtwoAINgFAAC3CgAg2QUAALcKACAMkQUAAOAIADCSBQAAzQYAEJMFAADgCAAwlAUCALcIACGVBQIAtwgAIb4FAQC4CAAhyAUBALgIACHVBQEAxggAIdYFAQDGCAAh1wUBAMYIACHYBQEAxggAIdkFAQDGCAAhAwAAAK0BACABAADMBgAwSgAAzQYAIAMAAACtAQAgAQAAuwYAMAIAALgGACATAwAAwAgAIJEFAADeCAAwkgUAAK8BABCTBQAA3ggAMJQFAgAAAAGVBQIAAAAByAUBAL8IACHJBSAA3wgAIcoFAQC_CAAhywUgAN8IACHMBQEAvwgAIc0FIADfCAAhzgUBAL8IACHPBQEAvwgAIdAFAQC_CAAh0QUBAL8IACHSBSAA3wgAIdMFIADfCAAh1AUgAN8IACEBAAAA0AYAIAEAAADQBgAgAQMAAKwKACADAAAArwEAIAEAANMGADACAADQBgAgAwAAAK8BACABAADTBgAwAgAA0AYAIAMAAACvAQAgAQAA0wYAMAIAANAGACAQAwAAggsAIJQFAgAAAAGVBQIAAAAByAUBAAAAAckFIAAAAAHKBQEAAAABywUgAAAAAcwFAQAAAAHNBSAAAAABzgUBAAAAAc8FAQAAAAHQBQEAAAAB0QUBAAAAAdIFIAAAAAHTBSAAAAAB1AUgAAAAAQE-AADXBgAgD5QFAgAAAAGVBQIAAAAByAUBAAAAAckFIAAAAAHKBQEAAAABywUgAAAAAcwFAQAAAAHNBSAAAAABzgUBAAAAAc8FAQAAAAHQBQEAAAAB0QUBAAAAAdIFIAAAAAHTBSAAAAAB1AUgAAAAAQE-AADZBgAwAT4AANkGADAQAwAAgQsAIJQFAgCpCgAhlQUCAKkKACHIBQEAqAoAIckFIADbCgAhygUBAKgKACHLBSAA2woAIcwFAQCoCgAhzQUgANsKACHOBQEAqAoAIc8FAQCoCgAh0AUBAKgKACHRBQEAqAoAIdIFIADbCgAh0wUgANsKACHUBSAA2woAIQIAAADQBgAgPgAA3AYAIA-UBQIAqQoAIZUFAgCpCgAhyAUBAKgKACHJBSAA2woAIcoFAQCoCgAhywUgANsKACHMBQEAqAoAIc0FIADbCgAhzgUBAKgKACHPBQEAqAoAIdAFAQCoCgAh0QUBAKgKACHSBSAA2woAIdMFIADbCgAh1AUgANsKACECAAAArwEAID4AAN4GACACAAAArwEAID4AAN4GACADAAAA0AYAIEUAANcGACBGAADcBgAgAQAAANAGACABAAAArwEAIAUOAAD8CgAgSwAA_QoAIEwAAIALACBNAAD_CgAgTgAA_goAIBKRBQAA3QgAMJIFAADlBgAQkwUAAN0IADCUBQIAtwgAIZUFAgC3CAAhyAUBALgIACHJBSAAzwgAIcoFAQC4CAAhywUgAM8IACHMBQEAuAgAIc0FIADPCAAhzgUBALgIACHPBQEAuAgAIdAFAQC4CAAh0QUBALgIACHSBSAAzwgAIdMFIADPCAAh1AUgAM8IACEDAAAArwEAIAEAAOQGADBKAADlBgAgAwAAAK8BACABAADTBgAwAgAA0AYAIAcDAADACAAgPgAA1ggAIJEFAADcCAAwkgUAALEBABCTBQAA3AgAMJQFAgAAAAGVBQIAAAABAQAAAOgGACABAAAA6AYAIAEDAACsCgAgAwAAALEBACABAADrBgAwAgAA6AYAIAMAAACxAQAgAQAA6wYAMAIAAOgGACADAAAAsQEAIAEAAOsGADACAADoBgAgBAMAAPsKACA-gAAAAAGUBQIAAAABlQUCAAAAAQE-AADvBgAgAz6AAAAAAZQFAgAAAAGVBQIAAAABAT4AAPEGADABPgAA8QYAMAQDAAD6CgAgPoAAAAABlAUCAKkKACGVBQIAqQoAIQIAAADoBgAgPgAA9AYAIAM-gAAAAAGUBQIAqQoAIZUFAgCpCgAhAgAAALEBACA-AAD2BgAgAgAAALEBACA-AAD2BgAgAwAAAOgGACBFAADvBgAgRgAA9AYAIAEAAADoBgAgAQAAALEBACAFDgAA9QoAIEsAAPYKACBMAAD5CgAgTQAA-AoAIE4AAPcKACAGPgAA0wgAIJEFAADbCAAwkgUAAP0GABCTBQAA2wgAMJQFAgC3CAAhlQUCALcIACEDAAAAsQEAIAEAAPwGADBKAAD9BgAgAwAAALEBACABAADrBgAwAgAA6AYAIBADAADACAAgkQUAANkIADCSBQAAswEAEJMFAADZCAAwlAUCAAAAAZUFAgAAAAG-BQEA2ggAIb8FAQDaCAAhwAUBANoIACHBBQEA2ggAIcIFAQDaCAAhwwUBANoIACHEBQEA2ggAIcUFAQDaCAAhxgUBANoIACHHBQEA2ggAIQEAAACABwAgAQAAAIAHACALAwAArAoAIL4FAAC3CgAgvwUAALcKACDABQAAtwoAIMEFAAC3CgAgwgUAALcKACDDBQAAtwoAIMQFAAC3CgAgxQUAALcKACDGBQAAtwoAIMcFAAC3CgAgAwAAALMBACABAACDBwAwAgAAgAcAIAMAAACzAQAgAQAAgwcAMAIAAIAHACADAAAAswEAIAEAAIMHADACAACABwAgDQMAAPQKACCUBQIAAAABlQUCAAAAAb4FAQAAAAG_BQEAAAABwAUBAAAAAcEFAQAAAAHCBQEAAAABwwUBAAAAAcQFAQAAAAHFBQEAAAABxgUBAAAAAccFAQAAAAEBPgAAhwcAIAyUBQIAAAABlQUCAAAAAb4FAQAAAAG_BQEAAAABwAUBAAAAAcEFAQAAAAHCBQEAAAABwwUBAAAAAcQFAQAAAAHFBQEAAAABxgUBAAAAAccFAQAAAAEBPgAAiQcAMAE-AACJBwAwDQMAAPMKACCUBQIAqQoAIZUFAgCpCgAhvgUBAL0KACG_BQEAvQoAIcAFAQC9CgAhwQUBAL0KACHCBQEAvQoAIcMFAQC9CgAhxAUBAL0KACHFBQEAvQoAIcYFAQC9CgAhxwUBAL0KACECAAAAgAcAID4AAIwHACAMlAUCAKkKACGVBQIAqQoAIb4FAQC9CgAhvwUBAL0KACHABQEAvQoAIcEFAQC9CgAhwgUBAL0KACHDBQEAvQoAIcQFAQC9CgAhxQUBAL0KACHGBQEAvQoAIccFAQC9CgAhAgAAALMBACA-AACOBwAgAgAAALMBACA-AACOBwAgAwAAAIAHACBFAACHBwAgRgAAjAcAIAEAAACABwAgAQAAALMBACAPDgAA7goAIEsAAO8KACBMAADyCgAgTQAA8QoAIE4AAPAKACC-BQAAtwoAIL8FAAC3CgAgwAUAALcKACDBBQAAtwoAIMIFAAC3CgAgwwUAALcKACDEBQAAtwoAIMUFAAC3CgAgxgUAALcKACDHBQAAtwoAIA-RBQAA2AgAMJIFAACVBwAQkwUAANgIADCUBQIAtwgAIZUFAgC3CAAhvgUBAMYIACG_BQEAxggAIcAFAQDGCAAhwQUBAMYIACHCBQEAxggAIcMFAQDGCAAhxAUBAMYIACHFBQEAxggAIcYFAQDGCAAhxwUBAMYIACEDAAAAswEAIAEAAJQHADBKAACVBwAgAwAAALMBACABAACDBwAwAgAAgAcAIAEAAAC5AQAgAQAAALkBACADAAAAtwEAIAEAALgBADACAAC5AQAgAwAAALcBACABAAC4AQAwAgAAuQEAIAMAAAC3AQAgAQAAuAEAMAIAALkBACAGAwAA7QoAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG-BQEAAAABAT4AAJ0HACAFlAUCAAAAAZUFAgAAAAGpBUAAAAABqgUBAAAAAb4FAQAAAAEBPgAAnwcAMAE-AACfBwAwBgMAAOwKACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIb4FAQC9CgAhAgAAALkBACA-AACiBwAgBZQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhvgUBAL0KACECAAAAtwEAID4AAKQHACACAAAAtwEAID4AAKQHACADAAAAuQEAIEUAAJ0HACBGAACiBwAgAQAAALkBACABAAAAtwEAIAYOAADnCgAgSwAA6AoAIEwAAOsKACBNAADqCgAgTgAA6QoAIL4FAAC3CgAgCJEFAADXCAAwkgUAAKsHABCTBQAA1wgAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIaoFAQC4CAAhvgUBAMYIACEDAAAAtwEAIAEAAKoHADBKAACrBwAgAwAAALcBACABAAC4AQAwAgAAuQEAIAcDAADACAAgPgAA1ggAIJEFAADVCAAwkgUAALUBABCTBQAA1QgAMJQFAgAAAAGVBQIAAAABAQAAAK4HACABAAAArgcAIAEDAACsCgAgAwAAALUBACABAACxBwAwAgAArgcAIAMAAAC1AQAgAQAAsQcAMAIAAK4HACADAAAAtQEAIAEAALEHADACAACuBwAgBAMAAOYKACA-gAAAAAGUBQIAAAABlQUCAAAAAQE-AAC1BwAgAz6AAAAAAZQFAgAAAAGVBQIAAAABAT4AALcHADABPgAAtwcAMAQDAADlCgAgPoAAAAABlAUCAKkKACGVBQIAqQoAIQIAAACuBwAgPgAAugcAIAM-gAAAAAGUBQIAqQoAIZUFAgCpCgAhAgAAALUBACA-AAC8BwAgAgAAALUBACA-AAC8BwAgAwAAAK4HACBFAAC1BwAgRgAAugcAIAEAAACuBwAgAQAAALUBACAFDgAA4AoAIEsAAOEKACBMAADkCgAgTQAA4woAIE4AAOIKACAGPgAA0wgAIJEFAADSCAAwkgUAAMMHABCTBQAA0ggAMJQFAgC3CAAhlQUCALcIACEDAAAAtQEAIAEAAMIHADBKAADDBwAgAwAAALUBACABAACxBwAwAgAArgcAIAEAAAC8AQAgAQAAALwBACADAAAAbgAgAQAAuwEAMAIAALwBACADAAAAbgAgAQAAuwEAMAIAALwBACADAAAAbgAgAQAAuwEAMAIAALwBACAIAwAA3woAIAQAAN4KACCUBQIAAAABlQUCAAAAAbQFQAAAAAG1BQIAAAABtgUBAAAAAbcFIAAAAAEBPgAAywcAIAaUBQIAAAABlQUCAAAAAbQFQAAAAAG1BQIAAAABtgUBAAAAAbcFIAAAAAEBPgAAzQcAMAE-AADNBwAwCAMAAN0KACAEAADcCgAglAUCAKkKACGVBQIAqQoAIbQFQAC-CgAhtQUCAKkKACG2BQEAqAoAIbcFIADbCgAhAgAAALwBACA-AADQBwAgBpQFAgCpCgAhlQUCAKkKACG0BUAAvgoAIbUFAgCpCgAhtgUBAKgKACG3BSAA2woAIQIAAABuACA-AADSBwAgAgAAAG4AID4AANIHACADAAAAvAEAIEUAAMsHACBGAADQBwAgAQAAALwBACABAAAAbgAgBQ4AANYKACBLAADXCgAgTAAA2goAIE0AANkKACBOAADYCgAgCZEFAADOCAAwkgUAANkHABCTBQAAzggAMJQFAgC3CAAhlQUCALcIACG0BUAAxwgAIbUFAgC3CAAhtgUBALgIACG3BSAAzwgAIQMAAABuACABAADYBwAwSgAA2QcAIAMAAABuACABAAC7AQAwAgAAvAEAIAEAAADAAQAgAQAAAMABACADAAAAvgEAIAEAAL8BADACAADAAQAgAwAAAL4BACABAAC_AQAwAgAAwAEAIAMAAAC-AQAgAQAAvwEAMAIAAMABACAPAwAA1QoAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BUAAAAABAT4AAOEHACAOlAUCAAAAAZUFAgAAAAGpBUAAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFQAAAAAEBPgAA4wcAMAE-AADjBwAwDwMAANQKACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIasFAQC9CgAhrAUBAL0KACGtBQEAvQoAIa4FAQC9CgAhrwUBAL0KACGwBQEAvQoAIbEFAQC9CgAhsgUBAL0KACGzBQIAqQoAIbQFQAC-CgAhAgAAAMABACA-AADmBwAgDpQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhqwUBAL0KACGsBQEAvQoAIa0FAQC9CgAhrgUBAL0KACGvBQEAvQoAIbAFAQC9CgAhsQUBAL0KACGyBQEAvQoAIbMFAgCpCgAhtAVAAL4KACECAAAAvgEAID4AAOgHACACAAAAvgEAID4AAOgHACADAAAAwAEAIEUAAOEHACBGAADmBwAgAQAAAMABACABAAAAvgEAIA0OAADPCgAgSwAA0AoAIEwAANMKACBNAADSCgAgTgAA0QoAIKsFAAC3CgAgrAUAALcKACCtBQAAtwoAIK4FAAC3CgAgrwUAALcKACCwBQAAtwoAILEFAAC3CgAgsgUAALcKACARkQUAAM0IADCSBQAA7wcAEJMFAADNCAAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhqgUBALgIACGrBQEAxggAIawFAQDGCAAhrQUBAMYIACGuBQEAxggAIa8FAQDGCAAhsAUBAMYIACGxBQEAxggAIbIFAQDGCAAhswUCALcIACG0BUAAxwgAIQMAAAC-AQAgAQAA7gcAMEoAAO8HACADAAAAvgEAIAEAAL8BADACAADAAQAgAQAAADgAIAEAAAA4ACADAAAANgAgAQAANwAwAgAAOAAgAwAAADYAIAEAADcAMAIAADgAIAMAAAA2ACABAAA3ADACAAA4ACAICwAAzQoAIBEAAM4KACCUBQIAAAABpQUCAAAAAaYFEAAAAAGnBRAAAAABqAUBAAAAAakFQAAAAAEBPgAA9wcAIAaUBQIAAAABpQUCAAAAAaYFEAAAAAGnBRAAAAABqAUBAAAAAakFQAAAAAEBPgAA-QcAMAE-AAD5BwAwCAsAAL8KACARAADACgAglAUCAKkKACGlBQIAqQoAIaYFEACyCgAhpwUQALIKACGoBQEAvQoAIakFQAC-CgAhAgAAADgAID4AAPwHACAGlAUCAKkKACGlBQIAqQoAIaYFEACyCgAhpwUQALIKACGoBQEAvQoAIakFQAC-CgAhAgAAADYAID4AAP4HACACAAAANgAgPgAA_gcAIAMAAAA4ACBFAAD3BwAgRgAA_AcAIAEAAAA4ACABAAAANgAgBg4AALgKACBLAAC5CgAgTAAAvAoAIE0AALsKACBOAAC6CgAgqAUAALcKACAJkQUAAMUIADCSBQAAhQgAEJMFAADFCAAwlAUCALcIACGlBQIAtwgAIaYFEADCCAAhpwUQAMIIACGoBQEAxggAIakFQADHCAAhAwAAADYAIAEAAIQIADBKAACFCAAgAwAAADYAIAEAADcAMAIAADgAIAEAAAAvACABAAAALwAgAwAAAC0AIAEAAC4AMAIAAC8AIAMAAAAtACABAAAuADACAAAvACADAAAALQAgAQAALgAwAgAALwAgBgwAALYKACASAAC1CgAglAUCAAAAAaIFAgAAAAGjBQIAAAABpAUQAAAAAQE-AACNCAAgBJQFAgAAAAGiBQIAAAABowUCAAAAAaQFEAAAAAEBPgAAjwgAMAE-AACPCAAwBgwAALQKACASAACzCgAglAUCAKkKACGiBQIAqQoAIaMFAgCpCgAhpAUQALIKACECAAAALwAgPgAAkggAIASUBQIAqQoAIaIFAgCpCgAhowUCAKkKACGkBRAAsgoAIQIAAAAtACA-AACUCAAgAgAAAC0AID4AAJQIACADAAAALwAgRQAAjQgAIEYAAJIIACABAAAALwAgAQAAAC0AIAUOAACtCgAgSwAArgoAIEwAALEKACBNAACwCgAgTgAArwoAIAeRBQAAwQgAMJIFAACbCAAQkwUAAMEIADCUBQIAtwgAIaIFAgC3CAAhowUCALcIACGkBRAAwggAIQMAAAAtACABAACaCAAwSgAAmwgAIAMAAAAtACABAAAuADACAAAvACAHAwAAwAgAIJEFAAC-CAAwkgUAAMIBABCTBQAAvggAMJQFAgAAAAGVBQIAAAABlgUBAL8IACEBAAAAnggAIAEAAACeCAAgAQMAAKwKACADAAAAwgEAIAEAAKEIADACAACeCAAgAwAAAMIBACABAAChCAAwAgAAnggAIAMAAADCAQAgAQAAoQgAMAIAAJ4IACAEAwAAqwoAIJQFAgAAAAGVBQIAAAABlgUBAAAAAQE-AAClCAAgA5QFAgAAAAGVBQIAAAABlgUBAAAAAQE-AACnCAAwAT4AAKcIADAEAwAAqgoAIJQFAgCpCgAhlQUCAKkKACGWBQEAqAoAIQIAAACeCAAgPgAAqggAIAOUBQIAqQoAIZUFAgCpCgAhlgUBAKgKACECAAAAwgEAID4AAKwIACACAAAAwgEAID4AAKwIACADAAAAnggAIEUAAKUIACBGAACqCAAgAQAAAJ4IACABAAAAwgEAIAUOAACjCgAgSwAApAoAIEwAAKcKACBNAACmCgAgTgAApQoAIAaRBQAAtggAMJIFAACzCAAQkwUAALYIADCUBQIAtwgAIZUFAgC3CAAhlgUBALgIACEDAAAAwgEAIAEAALIIADBKAACzCAAgAwAAAMIBACABAAChCAAwAgAAnggAIAaRBQAAtggAMJIFAACzCAAQkwUAALYIADCUBQIAtwgAIZUFAgC3CAAhlgUBALgIACENDgAAuggAIEsAAL0IACBMAAC6CAAgTQAAuggAIE4AALoIACCXBQIAAAABmAUCAAAABJkFAgAAAASaBQIAAAABmwUCAAAAAZwFAgAAAAGdBQIAAAABoQUCALwIACEODgAAuggAIE0AALsIACBOAAC7CAAglwUBAAAAAZgFAQAAAASZBQEAAAAEmgUBAAAAAZsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQC5CAAhDg4AALoIACBNAAC7CAAgTgAAuwgAIJcFAQAAAAGYBQEAAAAEmQUBAAAABJoFAQAAAAGbBQEAAAABnAUBAAAAAZ0FAQAAAAGeBQEAAAABnwUBAAAAAaAFAQAAAAGhBQEAuQgAIQiXBQIAAAABmAUCAAAABJkFAgAAAASaBQIAAAABmwUCAAAAAZwFAgAAAAGdBQIAAAABoQUCALoIACELlwUBAAAAAZgFAQAAAASZBQEAAAAEmgUBAAAAAZsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQC7CAAhDQ4AALoIACBLAAC9CAAgTAAAuggAIE0AALoIACBOAAC6CAAglwUCAAAAAZgFAgAAAASZBQIAAAAEmgUCAAAAAZsFAgAAAAGcBQIAAAABnQUCAAAAAaEFAgC8CAAhCJcFCAAAAAGYBQgAAAAEmQUIAAAABJoFCAAAAAGbBQgAAAABnAUIAAAAAZ0FCAAAAAGhBQgAvQgAIQcDAADACAAgkQUAAL4IADCSBQAAwgEAEJMFAAC-CAAwlAUCAIYJACGVBQIAhgkAIZYFAQC_CAAhC5cFAQAAAAGYBQEAAAAEmQUBAAAABJoFAQAAAAGbBQEAAAABnAUBAAAAAZ0FAQAAAAGeBQEAAAABnwUBAAAAAaAFAQAAAAGhBQEAuwgAIScFAADMCQAgBwAAigoAIAgAAMgJACAdAACRCgAgJQAA2QkAICYAAIkKACAnAACLCgAgKAAAjAoAICkAAI0KACAqAADJCQAgKwAAjgoAICwAAI8KACAtAACQCgAgLgAA2wkAIC8AAJIKACAwAACTCgAgMQAAlAoAIDIAAJUKACAzAACWCgAgNAAAlwoAIDUAAJgKACA2AACZCgAgNwAAmgoAIDgAAJsKACCRBQAAiAoAMJIFAAANABCTBQAAiAoAMJQFAgCGCQAhnAYBAL8IACGdBgEAvwgAIdQGIADfCAAh1QYCAIYJACHWBiAA3wgAIdcGAgCGCQAh2AYgAN8IACHZBgIAhgkAIdoGAgCGCQAh4wYAAA0AIOQGAAANACAHkQUAAMEIADCSBQAAmwgAEJMFAADBCAAwlAUCALcIACGiBQIAtwgAIaMFAgC3CAAhpAUQAMIIACENDgAAuggAIEsAAMQIACBMAADECAAgTQAAxAgAIE4AAMQIACCXBRAAAAABmAUQAAAABJkFEAAAAASaBRAAAAABmwUQAAAAAZwFEAAAAAGdBRAAAAABoQUQAMMIACENDgAAuggAIEsAAMQIACBMAADECAAgTQAAxAgAIE4AAMQIACCXBRAAAAABmAUQAAAABJkFEAAAAASaBRAAAAABmwUQAAAAAZwFEAAAAAGdBRAAAAABoQUQAMMIACEIlwUQAAAAAZgFEAAAAASZBRAAAAAEmgUQAAAAAZsFEAAAAAGcBRAAAAABnQUQAAAAAaEFEADECAAhCZEFAADFCAAwkgUAAIUIABCTBQAAxQgAMJQFAgC3CAAhpQUCALcIACGmBRAAwggAIacFEADCCAAhqAUBAMYIACGpBUAAxwgAIQ4OAADLCAAgTQAAzAgAIE4AAMwIACCXBQEAAAABmAUBAAAABZkFAQAAAAWaBQEAAAABmwUBAAAAAZwFAQAAAAGdBQEAAAABngUBAAAAAZ8FAQAAAAGgBQEAAAABoQUBAMoIACELDgAAuggAIE0AAMkIACBOAADJCAAglwVAAAAAAZgFQAAAAASZBUAAAAAEmgVAAAAAAZsFQAAAAAGcBUAAAAABnQVAAAAAAaEFQADICAAhCw4AALoIACBNAADJCAAgTgAAyQgAIJcFQAAAAAGYBUAAAAAEmQVAAAAABJoFQAAAAAGbBUAAAAABnAVAAAAAAZ0FQAAAAAGhBUAAyAgAIQiXBUAAAAABmAVAAAAABJkFQAAAAASaBUAAAAABmwVAAAAAAZwFQAAAAAGdBUAAAAABoQVAAMkIACEODgAAywgAIE0AAMwIACBOAADMCAAglwUBAAAAAZgFAQAAAAWZBQEAAAAFmgUBAAAAAZsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQDKCAAhCJcFAgAAAAGYBQIAAAAFmQUCAAAABZoFAgAAAAGbBQIAAAABnAUCAAAAAZ0FAgAAAAGhBQIAywgAIQuXBQEAAAABmAUBAAAABZkFAQAAAAWaBQEAAAABmwUBAAAAAZwFAQAAAAGdBQEAAAABngUBAAAAAZ8FAQAAAAGgBQEAAAABoQUBAMwIACERkQUAAM0IADCSBQAA7wcAEJMFAADNCAAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhqgUBALgIACGrBQEAxggAIawFAQDGCAAhrQUBAMYIACGuBQEAxggAIa8FAQDGCAAhsAUBAMYIACGxBQEAxggAIbIFAQDGCAAhswUCALcIACG0BUAAxwgAIQmRBQAAzggAMJIFAADZBwAQkwUAAM4IADCUBQIAtwgAIZUFAgC3CAAhtAVAAMcIACG1BQIAtwgAIbYFAQC4CAAhtwUgAM8IACEFDgAAuggAIE0AANEIACBOAADRCAAglwUgAAAAAaEFIADQCAAhBQ4AALoIACBNAADRCAAgTgAA0QgAIJcFIAAAAAGhBSAA0AgAIQKXBSAAAAABoQUgANEIACEGPgAA0wgAIJEFAADSCAAwkgUAAMMHABCTBQAA0ggAMJQFAgC3CAAhlQUCALcIACEPDgAAuggAIE0AANQIACBOAADUCAAglwWAAAAAAZoFgAAAAAGbBYAAAAABnAWAAAAAAZ0FgAAAAAGhBYAAAAABuAUBAAAAAbkFAQAAAAG6BQEAAAABuwWAAAAAAbwFgAAAAAG9BYAAAAABDJcFgAAAAAGaBYAAAAABmwWAAAAAAZwFgAAAAAGdBYAAAAABoQWAAAAAAbgFAQAAAAG5BQEAAAABugUBAAAAAbsFgAAAAAG8BYAAAAABvQWAAAAAAQcDAADACAAgPgAA1ggAIJEFAADVCAAwkgUAALUBABCTBQAA1QgAMJQFAgCGCQAhlQUCAIYJACEMlwWAAAAAAZoFgAAAAAGbBYAAAAABnAWAAAAAAZ0FgAAAAAGhBYAAAAABuAUBAAAAAbkFAQAAAAG6BQEAAAABuwWAAAAAAbwFgAAAAAG9BYAAAAABCJEFAADXCAAwkgUAAKsHABCTBQAA1wgAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIaoFAQC4CAAhvgUBAMYIACEPkQUAANgIADCSBQAAlQcAEJMFAADYCAAwlAUCALcIACGVBQIAtwgAIb4FAQDGCAAhvwUBAMYIACHABQEAxggAIcEFAQDGCAAhwgUBAMYIACHDBQEAxggAIcQFAQDGCAAhxQUBAMYIACHGBQEAxggAIccFAQDGCAAhEAMAAMAIACCRBQAA2QgAMJIFAACzAQAQkwUAANkIADCUBQIAhgkAIZUFAgCGCQAhvgUBANoIACG_BQEA2ggAIcAFAQDaCAAhwQUBANoIACHCBQEA2ggAIcMFAQDaCAAhxAUBANoIACHFBQEA2ggAIcYFAQDaCAAhxwUBANoIACELlwUBAAAAAZgFAQAAAAWZBQEAAAAFmgUBAAAAAZsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQDMCAAhBj4AANMIACCRBQAA2wgAMJIFAAD9BgAQkwUAANsIADCUBQIAtwgAIZUFAgC3CAAhBwMAAMAIACA-AADWCAAgkQUAANwIADCSBQAAsQEAEJMFAADcCAAwlAUCAIYJACGVBQIAhgkAIRKRBQAA3QgAMJIFAADlBgAQkwUAAN0IADCUBQIAtwgAIZUFAgC3CAAhyAUBALgIACHJBSAAzwgAIcoFAQC4CAAhywUgAM8IACHMBQEAuAgAIc0FIADPCAAhzgUBALgIACHPBQEAuAgAIdAFAQC4CAAh0QUBALgIACHSBSAAzwgAIdMFIADPCAAh1AUgAM8IACETAwAAwAgAIJEFAADeCAAwkgUAAK8BABCTBQAA3ggAMJQFAgCGCQAhlQUCAIYJACHIBQEAvwgAIckFIADfCAAhygUBAL8IACHLBSAA3wgAIcwFAQC_CAAhzQUgAN8IACHOBQEAvwgAIc8FAQC_CAAh0AUBAL8IACHRBQEAvwgAIdIFIADfCAAh0wUgAN8IACHUBSAA3wgAIQKXBSAAAAABoQUgANEIACEMkQUAAOAIADCSBQAAzQYAEJMFAADgCAAwlAUCALcIACGVBQIAtwgAIb4FAQC4CAAhyAUBALgIACHVBQEAxggAIdYFAQDGCAAh1wUBAMYIACHYBQEAxggAIdkFAQDGCAAhDQMAAMAIACCRBQAA4QgAMJIFAACtAQAQkwUAAOEIADCUBQIAhgkAIZUFAgCGCQAhvgUBAL8IACHIBQEAvwgAIdUFAQDaCAAh1gUBANoIACHXBQEA2ggAIdgFAQDaCAAh2QUBANoIACEKkQUAAOIIADCSBQAAtQYAEJMFAADiCAAwlAUCALcIACGVBQIAtwgAIb4FAQC4CAAh1QUBALgIACHZBQEAxggAIdoFAQC4CAAh2wUAAOMIACAPDgAAywgAIE0AAOQIACBOAADkCAAglwWAAAAAAZoFgAAAAAGbBYAAAAABnAWAAAAAAZ0FgAAAAAGhBYAAAAABuAUBAAAAAbkFAQAAAAG6BQEAAAABuwWAAAAAAbwFgAAAAAG9BYAAAAABDJcFgAAAAAGaBYAAAAABmwWAAAAAAZwFgAAAAAGdBYAAAAABoQWAAAAAAbgFAQAAAAG5BQEAAAABugUBAAAAAbsFgAAAAAG8BYAAAAABvQWAAAAAAQsDAADACAAgkQUAAOUIADCSBQAAqwEAEJMFAADlCAAwlAUCAIYJACGVBQIAhgkAIb4FAQC_CAAh1QUBAL8IACHZBQEA2ggAIdoFAQC_CAAh2wUAAOYIACAMlwWAAAAAAZoFgAAAAAGbBYAAAAABnAWAAAAAAZ0FgAAAAAGhBYAAAAABuAUBAAAAAbkFAQAAAAG6BQEAAAABuwWAAAAAAbwFgAAAAAG9BYAAAAABDJEFAADnCAAwkgUAAJ0GABCTBQAA5wgAMJQFAgC3CAAhtAVAAMcIACG1BQIAtwgAIdwFAQC4CAAh3QUBALgIACHeBQEAuAgAId8FBADoCAAh4AUBALgIACHhBUAAxwgAIQ0OAAC6CAAgSwAAvQgAIEwAAOoIACBNAADqCAAgTgAA6ggAIJcFBAAAAAGYBQQAAAAEmQUEAAAABJoFBAAAAAGbBQQAAAABnAUEAAAAAZ0FBAAAAAGhBQQA6QgAIQ0OAAC6CAAgSwAAvQgAIEwAAOoIACBNAADqCAAgTgAA6ggAIJcFBAAAAAGYBQQAAAAEmQUEAAAABJoFBAAAAAGbBQQAAAABnAUEAAAAAZ0FBAAAAAGhBQQA6QgAIQiXBQQAAAABmAUEAAAABJkFBAAAAASaBQQAAAABmwUEAAAAAZwFBAAAAAGdBQQAAAABoQUEAOoIACEOkQUAAOsIADCSBQAAhwYAEJMFAADrCAAwlAUCALcIACGVBQIA7AgAIakFQADHCAAhtQUCALcIACHjBQAA7QjjBSLlBQAA7gjlBSLnBQAA7wjnBSLpBQAA8AjpBSLqBQEAxggAIesFAgDsCAAh7AUBAMYIACENDgAAywgAIEsAAPoIACBMAADLCAAgTQAAywgAIE4AAMsIACCXBQIAAAABmAUCAAAABZkFAgAAAAWaBQIAAAABmwUCAAAAAZwFAgAAAAGdBQIAAAABoQUCAPkIACEHDgAAuggAIE0AAPgIACBOAAD4CAAglwUAAADjBQKYBQAAAOMFCJkFAAAA4wUIoQUAAPcI4wUiBw4AALoIACBNAAD2CAAgTgAA9ggAIJcFAAAA5QUCmAUAAADlBQiZBQAAAOUFCKEFAAD1COUFIgcOAAC6CAAgTQAA9AgAIE4AAPQIACCXBQAAAOcFApgFAAAA5wUImQUAAADnBQihBQAA8wjnBSIHDgAAuggAIE0AAPIIACBOAADyCAAglwUAAADpBQKYBQAAAOkFCJkFAAAA6QUIoQUAAPEI6QUiBw4AALoIACBNAADyCAAgTgAA8ggAIJcFAAAA6QUCmAUAAADpBQiZBQAAAOkFCKEFAADxCOkFIgSXBQAAAOkFApgFAAAA6QUImQUAAADpBQihBQAA8gjpBSIHDgAAuggAIE0AAPQIACBOAAD0CAAglwUAAADnBQKYBQAAAOcFCJkFAAAA5wUIoQUAAPMI5wUiBJcFAAAA5wUCmAUAAADnBQiZBQAAAOcFCKEFAAD0COcFIgcOAAC6CAAgTQAA9ggAIE4AAPYIACCXBQAAAOUFApgFAAAA5QUImQUAAADlBQihBQAA9QjlBSIElwUAAADlBQKYBQAAAOUFCJkFAAAA5QUIoQUAAPYI5QUiBw4AALoIACBNAAD4CAAgTgAA-AgAIJcFAAAA4wUCmAUAAADjBQiZBQAAAOMFCKEFAAD3COMFIgSXBQAAAOMFApgFAAAA4wUImQUAAADjBQihBQAA-AjjBSINDgAAywgAIEsAAPoIACBMAADLCAAgTQAAywgAIE4AAMsIACCXBQIAAAABmAUCAAAABZkFAgAAAAWaBQIAAAABmwUCAAAAAZwFAgAAAAGdBQIAAAABoQUCAPkIACEIlwUIAAAAAZgFCAAAAAWZBQgAAAAFmgUIAAAAAZsFCAAAAAGcBQgAAAABnQUIAAAAAaEFCAD6CAAhCD4AAfwIACGRBQAA-wgAMJIFAADvBQAQkwUAAPsIADCUBQIAtwgAIakFQADHCAAh7QUCALcIACHuBQIAtwgAIQcOAAC6CAAgTQAA_ggAIE4AAP4IACCXBQABAAABmAUAAQAABJkFAAEAAAShBQAB_QgAIQcOAAC6CAAgTQAA_ggAIE4AAP4IACCXBQABAAABmAUAAQAABJkFAAEAAAShBQAB_QgAIQSXBQABAAABmAUAAQAABJkFAAEAAAShBQAB_ggAIQ6RBQAA_wgAMJIFAADZBQAQkwUAAP8IADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACGqBQEAuAgAIbQFQADHCAAh3gUBAMYIACHfBQQA6AgAIe8FAgDsCAAh8AUgAM8IACHxBQIA7AgAIfIFAQDGCAAhCpEFAACACQAwkgUAAMEFABCTBQAAgAkAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIaoFAQC4CAAhtAVAAMcIACG1BQIA7AgAIfMFAgDsCAAhCpEFAACBCQAwkgUAAKcFABCTBQAAgQkAMJQFAgC3CAAh5wUBALgIACH0BQEAuAgAIfUFQADHCAAh9gVAAIIJACH3BQIA7AgAIfgFAQDGCAAhCw4AAMsIACBNAACECQAgTgAAhAkAIJcFQAAAAAGYBUAAAAAFmQVAAAAABZoFQAAAAAGbBUAAAAABnAVAAAAAAZ0FQAAAAAGhBUAAgwkAIQsOAADLCAAgTQAAhAkAIE4AAIQJACCXBUAAAAABmAVAAAAABZkFQAAAAAWaBUAAAAABmwVAAAAAAZwFQAAAAAGdBUAAAAABoQVAAIMJACEIlwVAAAAAAZgFQAAAAAWZBUAAAAAFmgVAAAAAAZsFQAAAAAGcBUAAAAABnQVAAAAAAaEFQACECQAhCpEFAACFCQAwkgUAAJQFABCTBQAAhQkAMJQFAgCGCQAh5wUBAL8IACH0BQEAvwgAIfUFQACHCQAh9gVAAIgJACH3BQIAiQkAIfgFAQDaCAAhCJcFAgAAAAGYBQIAAAAEmQUCAAAABJoFAgAAAAGbBQIAAAABnAUCAAAAAZ0FAgAAAAGhBQIAuggAIQiXBUAAAAABmAVAAAAABJkFQAAAAASaBUAAAAABmwVAAAAAAZwFQAAAAAGdBUAAAAABoQVAAMkIACEIlwVAAAAAAZgFQAAAAAWZBUAAAAAFmgVAAAAAAZsFQAAAAAGcBUAAAAABnQVAAAAAAaEFQACECQAhCJcFAgAAAAGYBQIAAAAFmQUCAAAABZoFAgAAAAGbBQIAAAABnAUCAAAAAZ0FAgAAAAGhBQIAywgAIQmRBQAAigkAMJIFAACOBQAQkwUAAIoJADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACH6BQAAiwn6BSL7BQEAuAgAIfwFIADPCAAhBw4AALoIACBNAACNCQAgTgAAjQkAIJcFAAAA-gUCmAUAAAD6BQiZBQAAAPoFCKEFAACMCfoFIgcOAAC6CAAgTQAAjQkAIE4AAI0JACCXBQAAAPoFApgFAAAA-gUImQUAAAD6BQihBQAAjAn6BSIElwUAAAD6BQKYBQAAAPoFCJkFAAAA-gUIoQUAAI0J-gUiCJEFAACOCQAwkgUAAPgEABCTBQAAjgkAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIf0FAQC4CAAh_gUgAM8IACEGkQUAAI8JADCSBQAA4gQAEJMFAACPCQAwlAUCALcIACGVBQIAtwgAIakFQADHCAAhDpEFAACQCQAwkgUAAMwEABCTBQAAkAkAMJQFAgC3CAAhowUCALcIACGoBQEAxggAIakFQADHCAAh_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QAAALMGApgFAAAAswYImQUAAACzBgihBQAAqgmzBiIHDgAAuggAIE0AAKsJACBOAACrCQAglwUAAACzBgKYBQAAALMGCJkFAAAAswYIoQUAAKoJswYiBJcFAAAAswYCmAUAAACzBgiZBQAAALMGCKEFAACrCbMGIgcOAAC6CAAgTQAArQkAIE4AAK0JACCXBQAAAK4GApgFAAAArgYImQUAAACuBgihBQAArAmuBiIElwUAAACuBgKYBQAAAK4GCJkFAAAArgYIoQUAAK0JrgYiEZEFAACuCQAwkgUAAPQCABCTBQAArgkAMJQFAgC3CAAhpQUCAOwIACGpBUAAxwgAIbUFAgC3CAAhngYBALgIACGiBgEAxggAIaMGAQDGCAAhpwYCALcIACG1BgEAxggAIbYGEACVCQAhtwYBAMYIACG4BgEAxggAIboGAACvCboGIrsGAQDGCAAhBw4AALoIACBNAACxCQAgTgAAsQkAIJcFAAAAugYCmAUAAAC6BgiZBQAAALoGCKEFAACwCboGIgcOAAC6CAAgTQAAsQkAIE4AALEJACCXBQAAALoGApgFAAAAugYImQUAAAC6BgihBQAAsAm6BiIElwUAAAC6BgKYBQAAALoGCJkFAAAAugYIoQUAALEJugYiCZEFAACyCQAwkgUAANwCABCTBQAAsgkAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIbMFAgC3CAAhvAYBALgIACG9BgEAuAgAIQqRBQAAswkAMJIFAADGAgAQkwUAALMJADCUBQIAtwgAIZUFAgC3CAAhqQVAAMcIACGqBQEAuAgAIcIFAQDGCAAhvgYBALgIACG_BgEAxggAIQiRBQAAtAkAMJIFAACuAgAQkwUAALQJADCUBQIAtwgAIdwFAQC4CAAh3gUBAMYIACHgBQEAxggAIacGAgC3CAAhFJEFAAC1CQAwkgUAAJgCABCTBQAAtQkAMJQFAgC3CAAhlQUCALcIACGlBQIA7AgAIagFAQDGCAAhqQVAAMcIACG1BQIAtwgAIecFAQC4CAAh-gUBALgIACGUBgEAuAgAIagGAgC3CAAhwAZAAMcIACHBBgEAuAgAIcIGAQC4CAAhwwYgAM8IACHEBgEAxggAIcUGIADPCAAhxwYAALYJxwYiBw4AALoIACBNAAC4CQAgTgAAuAkAIJcFAAAAxwYCmAUAAADHBgiZBQAAAMcGCKEFAAC3CccGIgcOAAC6CAAgTQAAuAkAIE4AALgJACCXBQAAAMcGApgFAAAAxwYImQUAAADHBgihBQAAtwnHBiIElwUAAADHBgKYBQAAAMcGCJkFAAAAxwYIoQUAALgJxwYiGpEFAAC5CQAwkgUAAP4BABCTBQAAuQkAMJQFAgC3CAAhlQUCALcIACGpBUAAxwgAIbQFQADHCAAhwgUBAMYIACHFBQEAxggAIccFAQDGCAAh5wUAALYJxwYiqwZAAIIJACGxBgEAxggAIb8GAQC4CAAhyAYBALgIACHJBgEAuAgAIcoGAQC4CAAhywYBAMYIACHMBgEAxggAIc0GAQDGCAAhzgYBAMYIACHPBgEAxggAIdAGAQDGCAAh0QYBAMYIACHSBgEAxggAIdMGAQDGCAAhDZEFAAC6CQAwkgUAAOgBABCTBQAAugkAMJQFAgC3CAAhnAYBALgIACGdBgEAuAgAIdQGIADPCAAh1QYCALcIACHWBiAAzwgAIdcGAgC3CAAh2AYgAM8IACHZBgIAtwgAIdoGAgC3CAAhEgMAAMAIACCRBQAAuwkAMJIFAAC-AQAQkwUAALsJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIasFAQDaCAAhrAUBANoIACGtBQEA2ggAIa4FAQDaCAAhrwUBANoIACGwBQEA2ggAIbEFAQDaCAAhsgUBANoIACGzBQIAhgkAIbQFQACHCQAhCwMAAMAIACAEAAC9CQAgkQUAALwJADCSBQAAbgAQkwUAALwJADCUBQIAhgkAIZUFAgCGCQAhtAVAAIcJACG1BQIAhgkAIbYFAQC_CAAhtwUgAN8IACEmAwAAwAgAIAUAAMwJACAIAADICQAgDAAAyQkAIBgAAMsJACAcAACgCgAgHQAAkQoAIB4AAKEKACAfAACiCgAgJQAA2QkAIJEFAACfCgAwkgUAAAMAEJMFAACfCgAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhtAVAAIcJACHCBQEA2ggAIcUFAQDaCAAhxwUBANoIACHnBQAAnQrHBiKrBkAAiAkAIbEGAQDaCAAhvwYBAL8IACHIBgEAvwgAIckGAQC_CAAhygYBAL8IACHLBgEA2ggAIcwGAQDaCAAhzQYBANoIACHOBgEA2ggAIc8GAQDaCAAh0AYBANoIACHRBgEA2ggAIdIGAQDaCAAh0wYBANoIACHjBgAAAwAg5AYAAAMAIAkDAADACAAgkQUAAL4JADCSBQAAtwEAEJMFAAC-CQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG-BQEA2ggAIQoDAADACAAgkQUAAL8JADCSBQAApAEAEJMFAAC_CQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAh-gUAAMAJ-gUi-wUBAL8IACH8BSAA3wgAIQSXBQAAAPoFApgFAAAA-gUImQUAAAD6BQihBQAAjQn6BSIJAwAAwAgAIJEFAADBCQAwkgUAAKABABCTBQAAwQkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIf0FAQC_CAAh_gUgAN8IACEHAwAAwAgAIJEFAADCCQAwkgUAAJwBABCTBQAAwgkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIQoDAADACAAgkQUAAMMJADCSBQAAlwEAEJMFAADDCQAwlAUCAIYJACGVBQIAhgkAIZcGAQC_CAAhmAYBAL8IACGZBgEAvwgAIZoGAQC_CAAhApUFAgAAAAGbBgEAAAABCQMAAMAIACCRBQAAxQkAMJIFAACTAQAQkwUAAMUJADCUBQIAhgkAIZUFAgCGCQAhmwYBAL8IACGcBgEAvwgAIZ0GAQC_CAAhApUFAgAAAAG8BgEAAAABDwMAAMAIACAFAADMCQAgCAAAyAkAIBQAAMkJACAVAADKCQAgFgAAywkAIJEFAADHCQAwkgUAABcAEJMFAADHCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhswUCAIYJACG8BgEAvwgAIb0GAQC_CAAhA90GAAAQACDeBgAAEAAg3wYAABAAIAPdBgAAGgAg3gYAABoAIN8GAAAaACAD3QYAADYAIN4GAAA2ACDfBgAANgAgA90GAAA6ACDeBgAAOgAg3wYAADoAIAPdBgAABwAg3gYAAAcAIN8GAAAHACANAwAAzgkAIAUAAMwJACAIAADICQAgkQUAAM0JADCSBQAACwAQkwUAAM0JADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIcIFAQDaCAAhvgYBAL8IACG_BgEA2ggAIScFAADMCQAgBwAAigoAIAgAAMgJACAdAACRCgAgJQAA2QkAICYAAIkKACAnAACLCgAgKAAAjAoAICkAAI0KACAqAADJCQAgKwAAjgoAICwAAI8KACAtAACQCgAgLgAA2wkAIC8AAJIKACAwAACTCgAgMQAAlAoAIDIAAJUKACAzAACWCgAgNAAAlwoAIDUAAJgKACA2AACZCgAgNwAAmgoAIDgAAJsKACCRBQAAiAoAMJIFAAANABCTBQAAiAoAMJQFAgCGCQAhnAYBAL8IACGdBgEAvwgAIdQGIADfCAAh1QYCAIYJACHWBiAA3wgAIdcGAgCGCQAh2AYgAN8IACHZBgIAhgkAIdoGAgCGCQAh4wYAAA0AIOQGAAANACAC7QUCAAAAAe4FAgAAAAEJIwAA0gkAID4AAdEJACGRBQAA0AkAMJIFAAB8ABCTBQAA0AkAMJQFAgCGCQAhqQVAAIcJACHtBQIAhgkAIe4FAgCGCQAhBJcFAAEAAAGYBQABAAAEmQUAAQAABKEFAAH-CAAhEwMAAMAIACAiAADVCQAgJAAA1gkAIJEFAADTCQAwkgUAAHcAEJMFAADTCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG0BUAAhwkAId4FAQDaCAAh3wUEANQJACHvBQIAiQkAIfAFIADfCAAh8QUCAIkJACHyBQEA2ggAIeMGAAB3ACDkBgAAdwAgEQMAAMAIACAiAADVCQAgJAAA1gkAIJEFAADTCQAwkgUAAHcAEJMFAADTCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG0BUAAhwkAId4FAQDaCAAh3wUEANQJACHvBQIAiQkAIfAFIADfCAAh8QUCAIkJACHyBQEA2ggAIQiXBQQAAAABmAUEAAAABJkFBAAAAASaBQQAAAABmwUEAAAAAZwFBAAAAAGdBQQAAAABoQUEAOoIACERAwAAwAgAIAQAANoJACAZAADbCQAgIAAA1QkAICEAANkJACCRBQAA2AkAMJIFAABwABCTBQAA2AkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhtAVAAIcJACG1BQIAiQkAIfMFAgCJCQAh4wYAAHAAIOQGAABwACAD3QYAAHwAIN4GAAB8ACDfBgAAfAAgA5UFAgAAAAGqBQEAAAAB8wUCAAAAAQ8DAADACAAgBAAA2gkAIBkAANsJACAgAADVCQAgIQAA2QkAIJEFAADYCQAwkgUAAHAAEJMFAADYCQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG0BUAAhwkAIbUFAgCJCQAh8wUCAIkJACED3QYAAHAAIN4GAABwACDfBgAAcAAgJgMAAMAIACAFAADMCQAgCAAAyAkAIAwAAMkJACAYAADLCQAgHAAAoAoAIB0AAJEKACAeAAChCgAgHwAAogoAICUAANkJACCRBQAAnwoAMJIFAAADABCTBQAAnwoAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIbQFQACHCQAhwgUBANoIACHFBQEA2ggAIccFAQDaCAAh5wUAAJ0KxwYiqwZAAIgJACGxBgEA2ggAIb8GAQC_CAAhyAYBAL8IACHJBgEAvwgAIcoGAQC_CAAhywYBANoIACHMBgEA2ggAIc0GAQDaCAAhzgYBANoIACHPBgEA2ggAIdAGAQDaCAAh0QYBANoIACHSBgEA2ggAIdMGAQDaCAAh4wYAAAMAIOQGAAADACAD3QYAAHcAIN4GAAB3ACDfBgAAdwAgDQQAAL0JACCRBQAA3AkAMJIFAABqABCTBQAA3AkAMJQFAgCGCQAhtAVAAIcJACG1BQIAhgkAIdwFAQC_CAAh3QUBAL8IACHeBQEAvwgAId8FBADUCQAh4AUBAL8IACHhBUAAhwkAIRADAADOCQAgBAAAvQkAIJEFAADdCQAwkgUAAGUAEJMFAADdCQAwlAUCAIYJACGVBQIAiQkAIakFQACHCQAhtQUCAIYJACHjBQAA3gnjBSLlBQAA3wnlBSLnBQAA4AnnBSLpBQAA4QnpBSLqBQEA2ggAIesFAgCJCQAh7AUBANoIACEElwUAAADjBQKYBQAAAOMFCJkFAAAA4wUIoQUAAPgI4wUiBJcFAAAA5QUCmAUAAADlBQiZBQAAAOUFCKEFAAD2COUFIgSXBQAAAOcFApgFAAAA5wUImQUAAADnBQihBQAA9AjnBSIElwUAAADpBQKYBQAAAOkFCJkFAAAA6QUIoQUAAPII6QUiCRoAAOMJACCRBQAA4gkAMJIFAABfABCTBQAA4gkAMJQFAgCGCQAh3AUBAL8IACHhBUAAhwkAIZIGAAHRCQAhkwYCAIYJACEMBAAAvQkAIBsAAOYJACCRBQAA5AkAMJIFAABbABCTBQAA5AkAMJQFAgCGCQAhqQVAAIcJACG1BQIAhgkAIZQGAQC_CAAhlgYAAOUJlgYi4wYAAFsAIOQGAABbACAKBAAAvQkAIBsAAOYJACCRBQAA5AkAMJIFAABbABCTBQAA5AkAMJQFAgCGCQAhqQVAAIcJACG1BQIAhgkAIZQGAQC_CAAhlgYAAOUJlgYiBJcFAAAAlgYCmAUAAACWBgiZBQAAAJYGCKEFAACfCZYGIgPdBgAAXwAg3gYAAF8AIN8GAABfACAJBgAA6AkAIJEFAADnCQAwkgUAAFIAEJMFAADnCQAwlAUCAIYJACHcBQEAvwgAId4FAQDaCAAh4AUBANoIACGnBgIAhgkAIR0DAADACAAgBAAAvQkAIAcAAIYKACAIAADICQAgCwAA7gkAIBgAAMsJACAZAACeCgAgkQUAAJwKADCSBQAABwAQkwUAAJwKADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtQUCAIYJACHnBQEAvwgAIfoFAQC_CAAhlAYBAL8IACGoBgIAhgkAIcAGQACHCQAhwQYBAL8IACHCBgEAvwgAIcMGIADfCAAhxAYBANoIACHFBiAA3wgAIccGAACdCscGIuMGAAAHACDkBgAABwAgCQkAAOoJACCRBQAA6QkAMJIFAABGABCTBQAA6QkAMJQFAgCGCQAh3AUBAL8IACHeBQEAvwgAIeAFAQDaCAAhhwYCAIYJACEgAwAAzgkAIAQAAL0JACAGAACFCgAgBwAAhgoAIAsAAO4JACAMAAD6CQAgEAAAgQoAIBcAAIcKACCRBQAAggoAMJIFAAAQABCTBQAAggoAMJQFAgCGCQAhlQUCAIYJACGlBQIAiQkAIakFQACHCQAhtAVAAIcJACG1BQIAhgkAIecFAACECrMGIqcGAgCJCQAhqAYCAIYJACGpBgEAvwgAIaoGAQC_CAAhqwZAAIcJACGsBgEAvwgAIa4GAACDCq4GIq8GAADmCAAgsAZAAIcJACGxBgEAvwgAIbMGAQDaCAAhtAYBANoIACHjBgAAEAAg5AYAABAAIBQEAAC9CQAgBgAA6AkAIAsAAO4JACCRBQAA6wkAMJIFAAA6ABCTBQAA6wkAMJQFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbUFAgCGCQAhngYBAL8IACGiBgEA2ggAIaMGAQDaCAAhpwYCAIYJACG1BgEA2ggAIbYGEADsCQAhtwYBANoIACG4BgEA2ggAIboGAADtCboGIrsGAQDaCAAhCJcFEAAAAAGYBRAAAAAFmQUQAAAABZoFEAAAAAGbBRAAAAABnAUQAAAAAZ0FEAAAAAGhBRAAmgkAIQSXBQAAALoGApgFAAAAugYImQUAAAC6BgihBQAAsQm6BiIRAwAAwAgAIAUAAMwJACAIAADICQAgFAAAyQkAIBUAAMoJACAWAADLCQAgkQUAAMcJADCSBQAAFwAQkwUAAMcJADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGzBQIAhgkAIbwGAQC_CAAhvQYBAL8IACHjBgAAFwAg5AYAABcAIAsLAADxCQAgEQAA8gkAIJEFAADvCQAwkgUAADYAEJMFAADvCQAwlAUCAIYJACGlBQIAhgkAIaYFEADwCQAhpwUQAPAJACGoBQEA2ggAIakFQACHCQAhCJcFEAAAAAGYBRAAAAAEmQUQAAAABJoFEAAAAAGbBRAAAAABnAUQAAAAAZ0FEAAAAAGhBRAAxAgAIREDAADACAAgBQAAzAkAIAgAAMgJACAUAADJCQAgFQAAygkAIBYAAMsJACCRBQAAxwkAMJIFAAAXABCTBQAAxwkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIbMFAgCGCQAhvAYBAL8IACG9BgEAvwgAIeMGAAAXACDkBgAAFwAgA90GAAAtACDeBgAALQAg3wYAAC0AIAKiBQIAAAABowUCAAAAAQkMAAD2CQAgEgAA9QkAIJEFAAD0CQAwkgUAAC0AEJMFAAD0CQAwlAUCAIYJACGiBQIAhgkAIaMFAgCGCQAhpAUQAPAJACENCwAA8QkAIBEAAPIJACCRBQAA7wkAMJIFAAA2ABCTBQAA7wkAMJQFAgCGCQAhpQUCAIYJACGmBRAA8AkAIacFEADwCQAhqAUBANoIACGpBUAAhwkAIeMGAAA2ACDkBgAANgAgHgQAAL0JACAJAAD5CQAgCgAAzgkAIAsAAO4JACANAAD7CQAgEAAAgQoAIBMAAPIJACCRBQAA_wkAMJIFAAAaABCTBQAA_wkAMJQFAgCGCQAhlQUCAIYJACGlBQIAiQkAIagFAQDaCAAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIAKkQYihwYCAIkJACGIBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhjQYQAOwJACGOBhAA8AkAIY8GEADwCQAhkQYBANoIACHjBgAAGgAg5AYAABoAIBcJAAD5CQAgDAAA-gkAIA0AAPsJACCRBQAA9wkAMJIFAAApABCTBQAA9wkAMJQFAgCGCQAhowUCAIkJACHnBQAA-AmnBiKHBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhkQYBANoIACGeBgEAvwgAIZ8GQACHCQAhoAYBANoIACGhBgEA2ggAIaIGAQDaCAAhowYBANoIACGkBgEA2ggAIaUGEADsCQAhBJcFAAAApwYCmAUAAACnBgiZBQAAAKcGCKEFAACmCacGIiADAADOCQAgBAAAvQkAIAYAAIUKACAHAACGCgAgCwAA7gkAIAwAAPoJACAQAACBCgAgFwAAhwoAIJEFAACCCgAwkgUAABAAEJMFAACCCgAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIQKswYipwYCAIkJACGoBgIAhgkAIakGAQC_CAAhqgYBAL8IACGrBkAAhwkAIawGAQC_CAAhrgYAAIMKrgYirwYAAOYIACCwBkAAhwkAIbEGAQC_CAAhswYBANoIACG0BgEA2ggAIeMGAAAQACDkBgAAEAAgHgQAAL0JACAJAAD5CQAgCgAAzgkAIAsAAO4JACANAAD7CQAgEAAAgQoAIBMAAPIJACCRBQAA_wkAMJIFAAAaABCTBQAA_wkAMJQFAgCGCQAhlQUCAIYJACGlBQIAiQkAIagFAQDaCAAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIAKkQYihwYCAIkJACGIBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhjQYQAOwJACGOBhAA8AkAIY8GEADwCQAhkQYBANoIACHjBgAAGgAg5AYAABoAIAPdBgAAIQAg3gYAACEAIN8GAAAhACAQDAAA9gkAIA8AAP4JACCRBQAA_AkAMJIFAAAhABCTBQAA_AkAMJQFAgCGCQAhowUCAIYJACGoBQEA2ggAIakFQACHCQAh_wUCAIYJACGABgEA2ggAIYEGEADwCQAhggYQAPAJACGEBgAA_QmEBiKFBkAAhwkAIYYGAQDaCAAhBJcFAAAAhAYCmAUAAACEBgiZBQAAAIQGCKEFAACTCYQGIhkJAAD5CQAgDAAA-gkAIA0AAPsJACCRBQAA9wkAMJIFAAApABCTBQAA9wkAMJQFAgCGCQAhowUCAIkJACHnBQAA-AmnBiKHBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhkQYBANoIACGeBgEAvwgAIZ8GQACHCQAhoAYBANoIACGhBgEA2ggAIaIGAQDaCAAhowYBANoIACGkBgEA2ggAIaUGEADsCQAh4wYAACkAIOQGAAApACAcBAAAvQkAIAkAAPkJACAKAADOCQAgCwAA7gkAIA0AAPsJACAQAACBCgAgEwAA8gkAIJEFAAD_CQAwkgUAABoAEJMFAAD_CQAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAgAqRBiKHBgIAiQkAIYgGAgCJCQAhiQYQAPAJACGKBhAA8AkAIYsGEADwCQAhjAYQAPAJACGNBhAA7AkAIY4GEADwCQAhjwYQAPAJACGRBgEA2ggAIQSXBQAAAJEGApgFAAAAkQYImQUAAACRBgihBQAAmAmRBiID3QYAACkAIN4GAAApACDfBgAAKQAgHgMAAM4JACAEAAC9CQAgBgAAhQoAIAcAAIYKACALAADuCQAgDAAA-gkAIBAAAIEKACAXAACHCgAgkQUAAIIKADCSBQAAEAAQkwUAAIIKADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAhAqzBiKnBgIAiQkAIagGAgCGCQAhqQYBAL8IACGqBgEAvwgAIasGQACHCQAhrAYBAL8IACGuBgAAgwquBiKvBgAA5ggAILAGQACHCQAhsQYBAL8IACGzBgEA2ggAIbQGAQDaCAAhBJcFAAAArgYCmAUAAACuBgiZBQAAAK4GCKEFAACtCa4GIgSXBQAAALMGApgFAAAAswYImQUAAACzBgihBQAAqwmzBiIdAwAAwAgAIAQAAL0JACAHAACGCgAgCAAAyAkAIAsAAO4JACAYAADLCQAgGQAAngoAIJEFAACcCgAwkgUAAAcAEJMFAACcCgAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbUFAgCGCQAh5wUBAL8IACH6BQEAvwgAIZQGAQC_CAAhqAYCAIYJACHABkAAhwkAIcEGAQC_CAAhwgYBAL8IACHDBiAA3wgAIcQGAQDaCAAhxQYgAN8IACHHBgAAnQrHBiLjBgAABwAg5AYAAAcAIA8DAADOCQAgBQAAzAkAIAgAAMgJACCRBQAAzQkAMJIFAAALABCTBQAAzQkAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhwgUBANoIACG-BgEAvwgAIb8GAQDaCAAh4wYAAAsAIOQGAAALACAD3QYAAEYAIN4GAABGACDfBgAARgAgJQUAAMwJACAHAACKCgAgCAAAyAkAIB0AAJEKACAlAADZCQAgJgAAiQoAICcAAIsKACAoAACMCgAgKQAAjQoAICoAAMkJACArAACOCgAgLAAAjwoAIC0AAJAKACAuAADbCQAgLwAAkgoAIDAAAJMKACAxAACUCgAgMgAAlQoAIDMAAJYKACA0AACXCgAgNQAAmAoAIDYAAJkKACA3AACaCgAgOAAAmwoAIJEFAACICgAwkgUAAA0AEJMFAACICgAwlAUCAIYJACGcBgEAvwgAIZ0GAQC_CAAh1AYgAN8IACHVBgIAhgkAIdYGIADfCAAh1wYCAIYJACHYBiAA3wgAIdkGAgCGCQAh2gYCAIYJACED3QYAAAMAIN4GAAADACDfBgAAAwAgA90GAAALACDeBgAACwAg3wYAAAsAIAPdBgAAFwAg3gYAABcAIN8GAAAXACAD3QYAAJMBACDeBgAAkwEAIN8GAACTAQAgA90GAACXAQAg3gYAAJcBACDfBgAAlwEAIAPdBgAAnAEAIN4GAACcAQAg3wYAAJwBACAD3QYAAKABACDeBgAAoAEAIN8GAACgAQAgA90GAACkAQAg3gYAAKQBACDfBgAApAEAIAPdBgAAZQAg3gYAAGUAIN8GAABlACANAwAAwAgAIJEFAADlCAAwkgUAAKsBABCTBQAA5QgAMJQFAgCGCQAhlQUCAIYJACG-BQEAvwgAIdUFAQC_CAAh2QUBANoIACHaBQEAvwgAIdsFAADmCAAg4wYAAKsBACDkBgAAqwEAIA8DAADACAAgkQUAAOEIADCSBQAArQEAEJMFAADhCAAwlAUCAIYJACGVBQIAhgkAIb4FAQC_CAAhyAUBAL8IACHVBQEA2ggAIdYFAQDaCAAh1wUBANoIACHYBQEA2ggAIdkFAQDaCAAh4wYAAK0BACDkBgAArQEAIBUDAADACAAgkQUAAN4IADCSBQAArwEAEJMFAADeCAAwlAUCAIYJACGVBQIAhgkAIcgFAQC_CAAhyQUgAN8IACHKBQEAvwgAIcsFIADfCAAhzAUBAL8IACHNBSAA3wgAIc4FAQC_CAAhzwUBAL8IACHQBQEAvwgAIdEFAQC_CAAh0gUgAN8IACHTBSAA3wgAIdQFIADfCAAh4wYAAK8BACDkBgAArwEAIAkDAADACAAgPgAA1ggAIJEFAADcCAAwkgUAALEBABCTBQAA3AgAMJQFAgCGCQAhlQUCAIYJACHjBgAAsQEAIOQGAACxAQAgEgMAAMAIACCRBQAA2QgAMJIFAACzAQAQkwUAANkIADCUBQIAhgkAIZUFAgCGCQAhvgUBANoIACG_BQEA2ggAIcAFAQDaCAAhwQUBANoIACHCBQEA2ggAIcMFAQDaCAAhxAUBANoIACHFBQEA2ggAIcYFAQDaCAAhxwUBANoIACHjBgAAswEAIOQGAACzAQAgCQMAAMAIACA-AADWCAAgkQUAANUIADCSBQAAtQEAEJMFAADVCAAwlAUCAIYJACGVBQIAhgkAIeMGAAC1AQAg5AYAALUBACAD3QYAALcBACDeBgAAtwEAIN8GAAC3AQAgA90GAABuACDeBgAAbgAg3wYAAG4AIAPdBgAAvgEAIN4GAAC-AQAg3wYAAL4BACAJAwAAwAgAIJEFAAC-CAAwkgUAAMIBABCTBQAAvggAMJQFAgCGCQAhlQUCAIYJACGWBQEAvwgAIeMGAADCAQAg5AYAAMIBACAbAwAAwAgAIAQAAL0JACAHAACGCgAgCAAAyAkAIAsAAO4JACAYAADLCQAgGQAAngoAIJEFAACcCgAwkgUAAAcAEJMFAACcCgAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbUFAgCGCQAh5wUBAL8IACH6BQEAvwgAIZQGAQC_CAAhqAYCAIYJACHABkAAhwkAIcEGAQC_CAAhwgYBAL8IACHDBiAA3wgAIcQGAQDaCAAhxQYgAN8IACHHBgAAnQrHBiIElwUAAADHBgKYBQAAAMcGCJkFAAAAxwYIoQUAALgJxwYiA90GAABSACDeBgAAUgAg3wYAAFIAICQDAADACAAgBQAAzAkAIAgAAMgJACAMAADJCQAgGAAAywkAIBwAAKAKACAdAACRCgAgHgAAoQoAIB8AAKIKACAlAADZCQAgkQUAAJ8KADCSBQAAAwAQkwUAAJ8KADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACG0BUAAhwkAIcIFAQDaCAAhxQUBANoIACHHBQEA2ggAIecFAACdCscGIqsGQACICQAhsQYBANoIACG_BgEAvwgAIcgGAQC_CAAhyQYBAL8IACHKBgEAvwgAIcsGAQDaCAAhzAYBANoIACHNBgEA2ggAIc4GAQDaCAAhzwYBANoIACHQBgEA2ggAIdEGAQDaCAAh0gYBANoIACHTBgEA2ggAIQPdBgAAWwAg3gYAAFsAIN8GAABbACAD3QYAAGoAIN4GAABqACDfBgAAagAgDQMAAMAIACAEAAC9CQAgkQUAALwJADCSBQAAbgAQkwUAALwJADCUBQIAhgkAIZUFAgCGCQAhtAVAAIcJACG1BQIAhgkAIbYFAQC_CAAhtwUgAN8IACHjBgAAbgAg5AYAAG4AIAAAAAAAAegGAQAAAAEF6AYCAAAAAe4GAgAAAAHvBgIAAAAB8AYCAAAAAfEGAgAAAAEFRQAA3BQAIEYAAN8UACDlBgAA3RQAIOYGAADeFAAg6wYAAAEAIANFAADcFAAg5QYAAN0UACDrBgAAAQAgGAUAAPIRACAHAADzEQAgCAAA9REAIB0AAP4RACAlAAD8EQAgJgAA8REAICcAAPQRACAoAAD2EQAgKQAA9xEAICoAAPgRACArAAD5EQAgLAAA-hEAIC0AAPsRACAuAAD9EQAgLwAA_xEAIDAAAIASACAxAACBEgAgMgAAghIAIDMAAIMSACA0AACEEgAgNQAAhRIAIDYAAIYSACA3AACHEgAgOAAAiBIAIAAAAAAABegGEAAAAAHuBhAAAAAB7wYQAAAAAfAGEAAAAAHxBhAAAAABBUUAANQUACBGAADaFAAg5QYAANUUACDmBgAA2RQAIOsGAAA4ACAFRQAA0hQAIEYAANcUACDlBgAA0xQAIOYGAADWFAAg6wYAABwAIANFAADUFAAg5QYAANUUACDrBgAAOAAgA0UAANIUACDlBgAA0xQAIOsGAAAcACAAAAAAAAAB6AYBAAAAAQHoBkAAAAABBUUAAMwUACBGAADQFAAg5QYAAM0UACDmBgAAzxQAIOsGAACQAQAgC0UAAMEKADBGAADGCgAw5QYAAMIKADDmBgAAwwoAMOcGAADECgAg6AYAAMUKADDpBgAAxQoAMOoGAADFCgAw6wYAAMUKADDsBgAAxwoAMO0GAADICgAwBAwAALYKACCUBQIAAAABowUCAAAAAaQFEAAAAAECAAAALwAgRQAAzAoAIAMAAAAvACBFAADMCgAgRgAAywoAIAE-AADOFAAwCgwAAPYJACASAAD1CQAgkQUAAPQJADCSBQAALQAQkwUAAPQJADCUBQIAAAABogUCAIYJACGjBQIAhgkAIaQFEADwCQAh4gYAAPMJACACAAAALwAgPgAAywoAIAIAAADJCgAgPgAAygoAIAeRBQAAyAoAMJIFAADJCgAQkwUAAMgKADCUBQIAhgkAIaIFAgCGCQAhowUCAIYJACGkBRAA8AkAIQeRBQAAyAoAMJIFAADJCgAQkwUAAMgKADCUBQIAhgkAIaIFAgCGCQAhowUCAIYJACGkBRAA8AkAIQOUBQIAqQoAIaMFAgCpCgAhpAUQALIKACEEDAAAtAoAIJQFAgCpCgAhowUCAKkKACGkBRAAsgoAIQQMAAC2CgAglAUCAAAAAaMFAgAAAAGkBRAAAAABA0UAAMwUACDlBgAAzRQAIOsGAACQAQAgBEUAAMEKADDlBgAAwgoAMOcGAADECgAg6wYAAMUKADAAAAAAAAVFAADHFAAgRgAAyhQAIOUGAADIFAAg5gYAAMkUACDrBgAAAQAgA0UAAMcUACDlBgAAyBQAIOsGAAABACAAAAAAAAHoBiAAAAABBUUAAL8UACBGAADFFAAg5QYAAMAUACDmBgAAxBQAIOsGAAAFACAFRQAAvRQAIEYAAMIUACDlBgAAvhQAIOYGAADBFAAg6wYAAAEAIANFAAC_FAAg5QYAAMAUACDrBgAABQAgA0UAAL0UACDlBgAAvhQAIOsGAAABACAAAAAAAAVFAAC4FAAgRgAAuxQAIOUGAAC5FAAg5gYAALoUACDrBgAAAQAgA0UAALgUACDlBgAAuRQAIOsGAAABACAAAAAAAAVFAACzFAAgRgAAthQAIOUGAAC0FAAg5gYAALUUACDrBgAAAQAgA0UAALMUACDlBgAAtBQAIOsGAAABACAAAAAAAAVFAACuFAAgRgAAsRQAIOUGAACvFAAg5gYAALAUACDrBgAAAQAgA0UAAK4UACDlBgAArxQAIOsGAAABACAAAAAAAAVFAACpFAAgRgAArBQAIOUGAACqFAAg5gYAAKsUACDrBgAAAQAgA0UAAKkUACDlBgAAqhQAIOsGAAABACAAAAAAAAVFAACkFAAgRgAApxQAIOUGAAClFAAg5gYAAKYUACDrBgAAAQAgA0UAAKQUACDlBgAApRQAIOsGAAABACAAAAAAAAVFAACfFAAgRgAAohQAIOUGAACgFAAg5gYAAKEUACDrBgAAAQAgA0UAAJ8UACDlBgAAoBQAIOsGAAABACAAAAAAAAVFAACaFAAgRgAAnRQAIOUGAACbFAAg5gYAAJwUACDrBgAAAQAgA0UAAJoUACDlBgAAmxQAIOsGAAABACAAAAAAAAXoBgQAAAAB7gYEAAAAAe8GBAAAAAHwBgQAAAAB8QYEAAAAAQVFAACVFAAgRgAAmBQAIOUGAACWFAAg5gYAAJcUACDrBgAABQAgA0UAAJUUACDlBgAAlhQAIOsGAAAFACAAAAAAAAHoBgAAAOMFAgHoBgAAAOUFAgHoBgAAAOcFAgHoBgAAAOkFAgXoBgIAAAAB7gYCAAAAAe8GAgAAAAHwBgIAAAAB8QYCAAAAAQVFAACNFAAgRgAAkxQAIOUGAACOFAAg5gYAAJIUACDrBgAABQAgB0UAAIsUACBGAACQFAAg5QYAAIwUACDmBgAAjxQAIOkGAAANACDqBgAADQAg6wYAAAEAIANFAACNFAAg5QYAAI4UACDrBgAABQAgA0UAAIsUACDlBgAAjBQAIOsGAAABACAAAAAAAAHoBgABAAABBUUAAIYUACBGAACJFAAg5QYAAIcUACDmBgAAiBQAIOsGAAB5ACADRQAAhhQAIOUGAACHFAAg6wYAAHkAIAAAAAAABUUAAP0TACBGAACEFAAg5QYAAP4TACDmBgAAgxQAIOsGAAABACAHRQAA-xMAIEYAAIEUACDlBgAA_BMAIOYGAACAFAAg6QYAAHAAIOoGAABwACDrBgAAcgAgC0UAALcLADBGAAC8CwAw5QYAALgLADDmBgAAuQsAMOcGAAC6CwAg6AYAALsLADDpBgAAuwsAMOoGAAC7CwAw6wYAALsLADDsBgAAvQsAMO0GAAC-CwAwBD4AAQAAAZQFAgAAAAGpBUAAAAAB7gUCAAAAAQIAAAB-ACBFAADCCwAgAwAAAH4AIEUAAMILACBGAADBCwAgAT4AAP8TADAKIwAA0gkAID4AAdEJACGRBQAA0AkAMJIFAAB8ABCTBQAA0AkAMJQFAgAAAAGpBUAAhwkAIe0FAgCGCQAh7gUCAIYJACHgBgAAzwkAIAIAAAB-ACA-AADBCwAgAgAAAL8LACA-AADACwAgCD4AAdEJACGRBQAAvgsAMJIFAAC_CwAQkwUAAL4LADCUBQIAhgkAIakFQACHCQAh7QUCAIYJACHuBQIAhgkAIQg-AAHRCQAhkQUAAL4LADCSBQAAvwsAEJMFAAC-CwAwlAUCAIYJACGpBUAAhwkAIe0FAgCGCQAh7gUCAIYJACEEPgABrAsAIZQFAgCpCgAhqQVAAL4KACHuBQIAqQoAIQQ-AAGsCwAhlAUCAKkKACGpBUAAvgoAIe4FAgCpCgAhBD4AAQAAAZQFAgAAAAGpBUAAAAAB7gUCAAAAAQNFAAD9EwAg5QYAAP4TACDrBgAAAQAgA0UAAPsTACDlBgAA_BMAIOsGAAByACAERQAAtwsAMOUGAAC4CwAw5wYAALoLACDrBgAAuwsAMAAAAAAAB0UAAOoTACBGAAD5EwAg5QYAAOsTACDmBgAA-BMAIOkGAABwACDqBgAAcAAg6wYAAHIAIAtFAADcCwAwRgAA4QsAMOUGAADdCwAw5gYAAN4LADDnBgAA3wsAIOgGAADgCwAw6QYAAOALADDqBgAA4AsAMOsGAADgCwAw7AYAAOILADDtBgAA4wsAMAVFAADuEwAgRgAA9hMAIOUGAADvEwAg5gYAAPUTACDrBgAAAQAgB0UAAOwTACBGAADzEwAg5QYAAO0TACDmBgAA8hMAIOkGAAADACDqBgAAAwAg6wYAAAUAIAtFAADQCwAwRgAA1QsAMOUGAADRCwAw5gYAANILADDnBgAA0wsAIOgGAADUCwAw6QYAANQLADDqBgAA1AsAMOsGAADUCwAw7AYAANYLADDtBgAA1wsAMAwDAADDCwAgJAAAxQsAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB3gUBAAAAAd8FBAAAAAHwBSAAAAAB8QUCAAAAAfIFAQAAAAECAAAAeQAgRQAA2wsAIAMAAAB5ACBFAADbCwAgRgAA2gsAIAE-AADxEwAwEQMAAMAIACAiAADVCQAgJAAA1gkAIJEFAADTCQAwkgUAAHcAEJMFAADTCQAwlAUCAAAAAZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIbQFQACHCQAh3gUBANoIACHfBQQA1AkAIe8FAgCJCQAh8AUgAN8IACHxBQIAiQkAIfIFAQDaCAAhAgAAAHkAID4AANoLACACAAAA2AsAID4AANkLACAOkQUAANcLADCSBQAA2AsAEJMFAADXCwAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG0BUAAhwkAId4FAQDaCAAh3wUEANQJACHvBQIAiQkAIfAFIADfCAAh8QUCAIkJACHyBQEA2ggAIQ6RBQAA1wsAMJIFAADYCwAQkwUAANcLADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIbQFQACHCQAh3gUBANoIACHfBQQA1AkAIe8FAgCJCQAh8AUgAN8IACHxBQIAiQkAIfIFAQDaCAAhCpQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhtAVAAL4KACHeBQEAvQoAId8FBACWCwAh8AUgANsKACHxBQIAogsAIfIFAQC9CgAhDAMAALQLACAkAAC2CwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAId4FAQC9CgAh3wUEAJYLACHwBSAA2woAIfEFAgCiCwAh8gUBAL0KACEMAwAAwwsAICQAAMULACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAd4FAQAAAAHfBQQAAAAB8AUgAAAAAfEFAgAAAAHyBQEAAAABCgMAAOkLACAEAADqCwAgGQAA6wsAICEAAOgLACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAbUFAgAAAAECAAAAcgAgRQAA5wsAIAMAAAByACBFAADnCwAgRgAA5gsAIAE-AADwEwAwEAMAAMAIACAEAADaCQAgGQAA2wkAICAAANUJACAhAADZCQAgkQUAANgJADCSBQAAcAAQkwUAANgJADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIaoFAQC_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-AADDEwAwFwkAAPkJACAMAAD6CQAgDQAA-wkAIJEFAAD3CQAwkgUAACkAEJMFAAD3CQAwlAUCAAAAAaMFAgCJCQAh5wUAAPgJpwYihwYCAIkJACGJBhAA8AkAIYoGEADwCQAhiwYQAPAJACGMBhAA8AkAIZEGAQDaCAAhngYBAL8IACGfBkAAhwkAIaAGAQDaCAAhoQYBANoIACGiBgEA2ggAIaMGAQDaCAAhpAYBANoIACGlBhAA7AkAIQIAAAArACA-AAC1DAAgAgAAALIMACA-AACzDAAgFJEFAACxDAAwkgUAALIMABCTBQAAsQwAMJQFAgCGCQAhowUCAIkJACHnBQAA-AmnBiKHBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhkQYBANoIACGeBgEAvwgAIZ8GQACHCQAhoAYBANoIACGhBgEA2ggAIaIGAQDaCAAhowYBANoIACGkBgEA2ggAIaUGEADsCQAhFJEFAACxDAAwkgUAALIMABCTBQAAsQwAMJQFAgCGCQAhowUCAIkJACHnBQAA-AmnBiKHBgIAiQkAIYkGEADwCQAhigYQAPAJACGLBhAA8AkAIYwGEADwCQAhkQYBANoIACGeBgEAvwgAIZ8GQACHCQAhoAYBANoIACGhBgEA2ggAIaIGAQDaCAAhowYBANoIACGkBgEA2ggAIaUGEADsCQAhEJQFAgCpCgAh5wUAALQMpwYihwYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIZEGAQC9CgAhngYBAKgKACGfBkAAvgoAIaAGAQC9CgAhoQYBAL0KACGiBgEAvQoAIaMGAQC9CgAhpAYBAL0KACGlBhAAmAwAIQHoBgAAAKcGAhIJAAC2DAAgDQAAtwwAIJQFAgCpCgAh5wUAALQMpwYihwYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIZEGAQC9CgAhngYBAKgKACGfBkAAvgoAIaAGAQC9CgAhoQYBAL0KACGiBgEAvQoAIaMGAQC9CgAhpAYBAL0KACGlBhAAmAwAIQdFAAC9EwAgRgAAwRMAIOUGAAC-EwAg5gYAAMATACDpBgAAEAAg6gYAABAAIOsGAAASACALRQAAuAwAMEYAAL0MADDlBgAAuQwAMOYGAAC6DAAw5wYAALsMACDoBgAAvAwAMOkGAAC8DAAw6gYAALwMADDrBgAAvAwAMOwGAAC-DAAw7QYAAL8MADALDAAAkQwAIJQFAgAAAAGjBQIAAAABqAUBAAAAAakFQAAAAAGABgEAAAABgQYQAAAAAYIGEAAAAAGEBgAAAIQGAoUGQAAAAAGGBgEAAAABAgAAACMAIEUAAMMMACADAAAAIwAgRQAAwwwAIEYAAMIMACABPgAAvxMAMBAMAAD2CQAgDwAA_gkAIJEFAAD8CQAwkgUAACEAEJMFAAD8CQAwlAUCAAAAAaMFAgCGCQAhqAUBANoIACGpBUAAhwkAIf8FAgCGCQAhgAYBANoIACGBBhAA8AkAIYIGEADwCQAhhAYAAP0JhAYihQZAAIcJACGGBgEA2ggAIQIAAAAjACA-AADCDAAgAgAAAMAMACA-AADBDAAgDpEFAAC_DAAwkgUAAMAMABCTBQAAvwwAMJQFAgCGCQAhowUCAIYJACGoBQEA2ggAIakFQACHCQAh_wUCAIYJACGABgEA2ggAIYEGEADwCQAhggYQAPAJACGEBgAA_QmEBiKFBkAAhwkAIYYGAQDaCAAhDpEFAAC_DAAwkgUAAMAMABCTBQAAvwwAMJQFAgCGCQAhowUCAIYJACGoBQEA2ggAIakFQACHCQAh_wUCAIYJACGABgEA2ggAIYEGEADwCQAhggYQAPAJACGEBgAA_QmEBiKFBkAAhwkAIYYGAQDaCAAhCpQFAgCpCgAhowUCAKkKACGoBQEAvQoAIakFQAC-CgAhgAYBAL0KACGBBhAAsgoAIYIGEACyCgAhhAYAAI4MhAYihQZAAL4KACGGBgEAvQoAIQsMAACPDAAglAUCAKkKACGjBQIAqQoAIagFAQC9CgAhqQVAAL4KACGABgEAvQoAIYEGEACyCgAhggYQALIKACGEBgAAjgyEBiKFBkAAvgoAIYYGAQC9CgAhCwwAAJEMACCUBQIAAAABowUCAAAAAagFAQAAAAGpBUAAAAABgAYBAAAAAYEGEAAAAAGCBhAAAAABhAYAAACEBgKFBkAAAAABhgYBAAAAARIJAADFDAAgDQAAxgwAIJQFAgAAAAHnBQAAAKcGAocGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABkQYBAAAAAZ4GAQAAAAGfBkAAAAABoAYBAAAAAaEGAQAAAAGiBgEAAAABowYBAAAAAaQGAQAAAAGlBhAAAAABA0UAAL0TACDlBgAAvhMAIOsGAAASACAERQAAuAwAMOUGAAC5DAAw5wYAALsMACDrBgAAvAwAMAsPAACSDAAglAUCAAAAAagFAQAAAAGpBUAAAAAB_wUCAAAAAYAGAQAAAAGBBhAAAAABggYQAAAAAYQGAAAAhAYChQZAAAAAAYYGAQAAAAECAAAAIwAgRQAAzwwAIAMAAAAjACBFAADPDAAgRgAAzgwAIAE-AAC8EwAwAgAAACMAID4AAM4MACACAAAAwAwAID4AAM0MACAKlAUCAKkKACGoBQEAvQoAIakFQAC-CgAh_wUCAKkKACGABgEAvQoAIYEGEACyCgAhggYQALIKACGEBgAAjgyEBiKFBkAAvgoAIYYGAQC9CgAhCw8AAJAMACCUBQIAqQoAIagFAQC9CgAhqQVAAL4KACH_BQIAqQoAIYAGAQC9CgAhgQYQALIKACGCBhAAsgoAIYQGAACODIQGIoUGQAC-CgAhhgYBAL0KACELDwAAkgwAIJQFAgAAAAGoBQEAAAABqQVAAAAAAf8FAgAAAAGABgEAAAABgQYQAAAAAYIGEAAAAAGEBgAAAIQGAoUGQAAAAAGGBgEAAAABA0UAALoTACDlBgAAuxMAIOsGAAASACADRQAAuBMAIOUGAAC5EwAg6wYAAAUAIANFAAC2EwAg5QYAALcTACDrBgAAAQAgA0UAALQTACDlBgAAtRMAIOsGAACQAQAgBEUAAMcMADDlBgAAyAwAMOcGAADKDAAg6wYAALwMADAERQAAqgwAMOUGAACrDAAw5wYAAK0MACDrBgAArgwAMARFAAChDAAw5QYAAKIMADDnBgAApAwAIOsGAADFCgAwAAAAAAAFRQAArxMAIEYAALITACDlBgAAsBMAIOYGAACxEwAg6wYAAF0AIANFAACvEwAg5QYAALATACDrBgAAXQAgAAAAAAAB6AYAAACWBgIFRQAAqRMAIEYAAK0TACDlBgAAqhMAIOYGAACsEwAg6wYAAAUAIAtFAADmDAAwRgAA6wwAMOUGAADnDAAw5gYAAOgMADDnBgAA6QwAIOgGAADqDAAw6QYAAOoMADDqBgAA6gwAMOsGAADqDAAw7AYAAOwMADDtBgAA7QwAMASUBQIAAAAB3AUBAAAAAeEFQAAAAAGSBgABAAABAgAAAGEAIEUAAPEMACADAAAAYQAgRQAA8QwAIEYAAPAMACABPgAAqxMAMAkaAADjCQAgkQUAAOIJADCSBQAAXwAQkwUAAOIJADCUBQIAAAAB3AUBAL8IACHhBUAAhwkAIZIGAAHRCQAhkwYCAIYJACECAAAAYQAgPgAA8AwAIAIAAADuDAAgPgAA7wwAIAiRBQAA7QwAMJIFAADuDAAQkwUAAO0MADCUBQIAhgkAIdwFAQC_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_CAAh3gUBAL8IACHgBQEA2ggAIYcGAgCGCQAhCJEFAACrDQAwkgUAAKwNABCTBQAAqw0AMJQFAgCGCQAh3AUBAL8IACHeBQEAvwgAIeAFAQDaCAAhhwYCAIYJACEElAUCAKkKACHcBQEAqAoAId4FAQCoCgAh4AUBAL0KACEElAUCAKkKACHcBQEAqAoAId4FAQCoCgAh4AUBAL0KACEElAUCAAAAAdwFAQAAAAHeBQEAAAAB4AUBAAAAARIMAACPDQAgDQAAxgwAIJQFAgAAAAGjBQIAAAAB5wUAAACnBgKJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABkQYBAAAAAZ4GAQAAAAGfBkAAAAABoAYBAAAAAaEGAQAAAAGiBgEAAAABowYBAAAAAaQGAQAAAAGlBhAAAAABAgAAACsAIEUAALgNACADAAAAKwAgRQAAuA0AIEYAALcNACABPgAAhBMAMAIAAAArACA-AAC3DQAgAgAAALIMACA-AAC2DQAgEJQFAgCpCgAhowUCAKILACHnBQAAtAynBiKJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIZEGAQC9CgAhngYBAKgKACGfBkAAvgoAIaAGAQC9CgAhoQYBAL0KACGiBgEAvQoAIaMGAQC9CgAhpAYBAL0KACGlBhAAmAwAIRIMAACODQAgDQAAtwwAIJQFAgCpCgAhowUCAKILACHnBQAAtAynBiKJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIZEGAQC9CgAhngYBAKgKACGfBkAAvgoAIaAGAQC9CgAhoQYBAL0KACGiBgEAvQoAIaMGAQC9CgAhpAYBAL0KACGlBhAAmAwAIRIMAACPDQAgDQAAxgwAIJQFAgAAAAGjBQIAAAAB5wUAAACnBgKJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABkQYBAAAAAZ4GAQAAAAGfBkAAAAABoAYBAAAAAaEGAQAAAAGiBgEAAAABowYBAAAAAaQGAQAAAAGlBhAAAAABA0UAAIITACDlBgAAgxMAIOsGAAAFACADRQAAgBMAIOUGAACBEwAg6wYAAAkAIANFAAD-EgAg5QYAAP8SACDrBgAAAQAgA0UAAPwSACDlBgAA_RIAIOsGAACNAQAgA0UAAPoSACDlBgAA-xIAIOsGAACQAQAgBEUAALANADDlBgAAsQ0AMOcGAACzDQAg6wYAAK4MADAERQAApA0AMOUGAAClDQAw5wYAAKcNACDrBgAAqA0AMANFAACfDQAg5QYAAKANACDrBgAAHAAgAAAAAAAB6AYAAAC6BgIFRQAA7xIAIEYAAPgSACDlBgAA8BIAIOYGAAD3EgAg6wYAAAkAIAVFAADtEgAgRgAA9RIAIOUGAADuEgAg5gYAAPQSACDrBgAABQAgB0UAAOsSACBGAADyEgAg5QYAAOwSACDmBgAA8RIAIOkGAAAXACDqBgAAFwAg6wYAAJABACADRQAA7xIAIOUGAADwEgAg6wYAAAkAIANFAADtEgAg5QYAAO4SACDrBgAABQAgA0UAAOsSACDlBgAA7BIAIOsGAACQAQAgAAAAAAAFRQAAzxIAIEYAAOkSACDlBgAA0BIAIOYGAADoEgAg6wYAAAEAIAtFAAC2DgAwRgAAug4AMOUGAAC3DgAw5gYAALgOADDnBgAAuQ4AIOgGAAD6DQAw6QYAAPoNADDqBgAA-g0AMOsGAAD6DQAw7AYAALsOADDtBgAA_Q0AMAtFAACqDgAwRgAArw4AMOUGAACrDgAw5gYAAKwOADDnBgAArQ4AIOgGAACuDgAw6QYAAK4OADDqBgAArg4AMOsGAACuDgAw7AYAALAOADDtBgAAsQ4AMAtFAACeDgAwRgAAow4AMOUGAACfDgAw5gYAAKAOADDnBgAAoQ4AIOgGAACiDgAw6QYAAKIOADDqBgAAog4AMOsGAACiDgAw7AYAAKQOADDtBgAApQ4AMAtFAACVDgAwRgAAmQ4AMOUGAACWDgAw5gYAAJcOADDnBgAAmA4AIOgGAACGDgAw6QYAAIYOADDqBgAAhg4AMOsGAACGDgAw7AYAAJoOADDtBgAAiQ4AMAtFAADYDQAwRgAA3Q0AMOUGAADZDQAw5gYAANoNADDnBgAA2w0AIOgGAADcDQAw6QYAANwNADDqBgAA3A0AMOsGAADcDQAw7AYAAN4NADDtBgAA3w0AMBYDAACQDgAgBAAAjw4AIAcAAJEOACAIAACTDgAgGAAAkg4AIBkAAJQOACCUBQIAAAABlQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAagGAgAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgIAAAAJACBFAACODgAgAwAAAAkAIEUAAI4OACBGAADjDQAgAT4AAOcSADAbAwAAwAgAIAQAAL0JACAHAACGCgAgCAAAyAkAIAsAAO4JACAYAADLCQAgGQAAngoAIJEFAACcCgAwkgUAAAcAEJMFAACcCgAwlAUCAAAAAZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtQUCAIYJACHnBQEAvwgAIfoFAQC_CAAhlAYBAL8IACGoBgIAhgkAIcAGQACHCQAhwQYBAL8IACHCBgEAvwgAIcMGIADfCAAhxAYBANoIACHFBiAA3wgAIccGAACdCscGIgIAAAAJACA-AADjDQAgAgAAAOANACA-AADhDQAgFJEFAADfDQAwkgUAAOANABCTBQAA3w0AMJQFAgCGCQAhlQUCAIYJACGlBQIAiQkAIagFAQDaCAAhqQVAAIcJACG1BQIAhgkAIecFAQC_CAAh-gUBAL8IACGUBgEAvwgAIagGAgCGCQAhwAZAAIcJACHBBgEAvwgAIcIGAQC_CAAhwwYgAN8IACHEBgEA2ggAIcUGIADfCAAhxwYAAJ0KxwYiFJEFAADfDQAwkgUAAOANABCTBQAA3w0AMJQFAgCGCQAhlQUCAIYJACGlBQIAiQkAIagFAQDaCAAhqQVAAIcJACG1BQIAhgkAIecFAQC_CAAh-gUBAL8IACGUBgEAvwgAIagGAgCGCQAhwAZAAIcJACHBBgEAvwgAIcIGAQC_CAAhwwYgAN8IACHEBgEA2ggAIcUGIADfCAAhxwYAAJ0KxwYiEJQFAgCpCgAhlQUCAKkKACGoBQEAvQoAIakFQAC-CgAhtQUCAKkKACHnBQEAqAoAIfoFAQCoCgAhlAYBAKgKACGoBgIAqQoAIcAGQAC-CgAhwQYBAKgKACHCBgEAqAoAIcMGIADbCgAhxAYBAL0KACHFBiAA2woAIccGAADiDccGIgHoBgAAAMcGAhYDAADlDQAgBAAA5A0AIAcAAOYNACAIAADoDQAgGAAA5w0AIBkAAOkNACCUBQIAqQoAIZUFAgCpCgAhqAUBAL0KACGpBUAAvgoAIbUFAgCpCgAh5wUBAKgKACH6BQEAqAoAIZQGAQCoCgAhqAYCAKkKACHABkAAvgoAIcEGAQCoCgAhwgYBAKgKACHDBiAA2woAIcQGAQC9CgAhxQYgANsKACHHBgAA4g3HBiIFRQAA2RIAIEYAAOUSACDlBgAA2hIAIOYGAADkEgAg6wYAAAUAIAVFAADXEgAgRgAA4hIAIOUGAADYEgAg5gYAAOESACDrBgAAAQAgB0UAANUSACBGAADfEgAg5QYAANYSACDmBgAA3hIAIOkGAAALACDqBgAACwAg6wYAAI0BACALRQAAgg4AMEYAAIcOADDlBgAAgw4AMOYGAACEDgAw5wYAAIUOACDoBgAAhg4AMOkGAACGDgAw6gYAAIYOADDrBgAAhg4AMOwGAACIDgAw7QYAAIkOADALRQAA9g0AMEYAAPsNADDlBgAA9w0AMOYGAAD4DQAw5wYAAPkNACDoBgAA-g0AMOkGAAD6DQAw6gYAAPoNADDrBgAA-g0AMOwGAAD8DQAw7QYAAP0NADALRQAA6g0AMEYAAO8NADDlBgAA6w0AMOYGAADsDQAw5wYAAO0NACDoBgAA7g0AMOkGAADuDQAw6gYAAO4NADDrBgAA7g0AMOwGAADwDQAw7QYAAPENADAElAUCAAAAAdwFAQAAAAHeBQEAAAAB4AUBAAAAAQIAAABUACBFAAD1DQAgAwAAAFQAIEUAAPUNACBGAAD0DQAgAT4AAN0SADAJBgAA6AkAIJEFAADnCQAwkgUAAFIAEJMFAADnCQAwlAUCAAAAAdwFAQC_CAAh3gUBANoIACHgBQEA2ggAIacGAgCGCQAhAgAAAFQAID4AAPQNACACAAAA8g0AID4AAPMNACAIkQUAAPENADCSBQAA8g0AEJMFAADxDQAwlAUCAIYJACHcBQEAvwgAId4FAQDaCAAh4AUBANoIACGnBgIAhgkAIQiRBQAA8Q0AMJIFAADyDQAQkwUAAPENADCUBQIAhgkAIdwFAQC_CAAh3gUBANoIACHgBQEA2ggAIacGAgCGCQAhBJQFAgCpCgAh3AUBAKgKACHeBQEAvQoAIeAFAQC9CgAhBJQFAgCpCgAh3AUBAKgKACHeBQEAvQoAIeAFAQC9CgAhBJQFAgAAAAHcBQEAAAAB3gUBAAAAAeAFAQAAAAEZAwAAuw0AIAQAALkNACAHAAC8DQAgCwAAvQ0AIAwAAMANACAQAAC-DQAgFwAAvw0AIJQFAgAAAAGVBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABAgAAABIAIEUAAIEOACADAAAAEgAgRQAAgQ4AIEYAAIAOACABPgAA3BIAMB4DAADOCQAgBAAAvQkAIAYAAIUKACAHAACGCgAgCwAA7gkAIAwAAPoJACAQAACBCgAgFwAAhwoAIJEFAACCCgAwkgUAABAAEJMFAACCCgAwlAUCAAAAAZUFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAhAqzBiKnBgIAiQkAIagGAgCGCQAhqQYBAL8IACGqBgEAvwgAIasGQACHCQAhrAYBAL8IACGuBgAAgwquBiKvBgAA5ggAILAGQACHCQAhsQYBAL8IACGzBgEA2ggAIbQGAQDaCAAhAgAAABIAID4AAIAOACACAAAA_g0AID4AAP8NACAWkQUAAP0NADCSBQAA_g0AEJMFAAD9DQAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqQVAAIcJACG0BUAAhwkAIbUFAgCGCQAh5wUAAIQKswYipwYCAIkJACGoBgIAhgkAIakGAQC_CAAhqgYBAL8IACGrBkAAhwkAIawGAQC_CAAhrgYAAIMKrgYirwYAAOYIACCwBkAAhwkAIbEGAQC_CAAhswYBANoIACG0BgEA2ggAIRaRBQAA_Q0AMJIFAAD-DQAQkwUAAP0NADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAhAqzBiKnBgIAiQkAIagGAgCGCQAhqQYBAL8IACGqBgEAvwgAIasGQACHCQAhrAYBAL8IACGuBgAAgwquBiKvBgAA5ggAILAGQACHCQAhsQYBAL8IACGzBgEA2ggAIbQGAQDaCAAhEpQFAgCpCgAhlQUCAKkKACGlBQIAogsAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqgGAgCpCgAhqQYBAKgKACGqBgEAqAoAIasGQAC-CgAhrAYBAKgKACGuBgAAlQ2uBiKvBoAAAAABsAZAAL4KACGxBgEAqAoAIbMGAQC9CgAhtAYBAL0KACEZAwAAmQ0AIAQAAJcNACAHAACaDQAgCwAAmw0AIAwAAJ4NACAQAACcDQAgFwAAnQ0AIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqgGAgCpCgAhqQYBAKgKACGqBgEAqAoAIasGQAC-CgAhrAYBAKgKACGuBgAAlQ2uBiKvBoAAAAABsAZAAL4KACGxBgEAqAoAIbMGAQC9CgAhtAYBAL0KACEZAwAAuw0AIAQAALkNACAHAAC8DQAgCwAAvQ0AIAwAAMANACAQAAC-DQAgFwAAvw0AIJQFAgAAAAGVBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABDwQAAMsNACALAADMDQAglAUCAAAAAaUFAgAAAAGpBUAAAAABtQUCAAAAAZ4GAQAAAAGiBgEAAAABowYBAAAAAbUGAQAAAAG2BhAAAAABtwYBAAAAAbgGAQAAAAG6BgAAALoGArsGAQAAAAECAAAAPAAgRQAAjQ4AIAMAAAA8ACBFAACNDgAgRgAAjA4AIAE-AADbEgAwFAQAAL0JACAGAADoCQAgCwAA7gkAIJEFAADrCQAwkgUAADoAEJMFAADrCQAwlAUCAAAAAaUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIZ4GAQC_CAAhogYBANoIACGjBgEA2ggAIacGAgCGCQAhtQYBANoIACG2BhAA7AkAIbcGAQDaCAAhuAYBANoIACG6BgAA7Qm6BiK7BgEA2ggAIQIAAAA8ACA-AACMDgAgAgAAAIoOACA-AACLDgAgEZEFAACJDgAwkgUAAIoOABCTBQAAiQ4AMJQFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbUFAgCGCQAhngYBAL8IACGiBgEA2ggAIaMGAQDaCAAhpwYCAIYJACG1BgEA2ggAIbYGEADsCQAhtwYBANoIACG4BgEA2ggAIboGAADtCboGIrsGAQDaCAAhEZEFAACJDgAwkgUAAIoOABCTBQAAiQ4AMJQFAgCGCQAhpQUCAIkJACGpBUAAhwkAIbUFAgCGCQAhngYBAL8IACGiBgEA2ggAIaMGAQDaCAAhpwYCAIYJACG1BgEA2ggAIbYGEADsCQAhtwYBANoIACG4BgEA2ggAIboGAADtCboGIrsGAQDaCAAhDZQFAgCpCgAhpQUCAKILACGpBUAAvgoAIbUFAgCpCgAhngYBAKgKACGiBgEAvQoAIaMGAQC9CgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8EAADIDQAgCwAAyQ0AIJQFAgCpCgAhpQUCAKILACGpBUAAvgoAIbUFAgCpCgAhngYBAKgKACGiBgEAvQoAIaMGAQC9CgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8EAADLDQAgCwAAzA0AIJQFAgAAAAGlBQIAAAABqQVAAAAAAbUFAgAAAAGeBgEAAAABogYBAAAAAaMGAQAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABFgMAAJAOACAEAACPDgAgBwAAkQ4AIAgAAJMOACAYAACSDgAgGQAAlA4AIJQFAgAAAAGVBQIAAAABqAUBAAAAAakFQAAAAAG1BQIAAAAB5wUBAAAAAfoFAQAAAAGUBgEAAAABqAYCAAAAAcAGQAAAAAHBBgEAAAABwgYBAAAAAcMGIAAAAAHEBgEAAAABxQYgAAAAAccGAAAAxwYCA0UAANkSACDlBgAA2hIAIOsGAAAFACADRQAA1xIAIOUGAADYEgAg6wYAAAEAIANFAADVEgAg5QYAANYSACDrBgAAjQEAIARFAACCDgAw5QYAAIMOADDnBgAAhQ4AIOsGAACGDgAwBEUAAPYNADDlBgAA9w0AMOcGAAD5DQAg6wYAAPoNADAERQAA6g0AMOUGAADrDQAw5wYAAO0NACDrBgAA7g0AMA8EAADLDQAgBgAAyg0AIJQFAgAAAAGpBUAAAAABtQUCAAAAAZ4GAQAAAAGiBgEAAAABowYBAAAAAacGAgAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABAgAAADwAIEUAAJ0OACADAAAAPAAgRQAAnQ4AIEYAAJwOACABPgAA1BIAMAIAAAA8ACA-AACcDgAgAgAAAIoOACA-AACbDgAgDZQFAgCpCgAhqQVAAL4KACG1BQIAqQoAIZ4GAQCoCgAhogYBAL0KACGjBgEAvQoAIacGAgCpCgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8EAADIDQAgBgAAxw0AIJQFAgCpCgAhqQVAAL4KACG1BQIAqQoAIZ4GAQCoCgAhogYBAL0KACGjBgEAvQoAIacGAgCpCgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8EAADLDQAgBgAAyg0AIJQFAgAAAAGpBUAAAAABtQUCAAAAAZ4GAQAAAAGiBgEAAAABowYBAAAAAacGAgAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABBhEAAM4KACCUBQIAAAABpgUQAAAAAacFEAAAAAGoBQEAAAABqQVAAAAAAQIAAAA4ACBFAACpDgAgAwAAADgAIEUAAKkOACBGAACoDgAgAT4AANMSADALCwAA8QkAIBEAAPIJACCRBQAA7wkAMJIFAAA2ABCTBQAA7wkAMJQFAgAAAAGlBQIAhgkAIaYFEADwCQAhpwUQAPAJACGoBQEA2ggAIakFQACHCQAhAgAAADgAID4AAKgOACACAAAApg4AID4AAKcOACAJkQUAAKUOADCSBQAApg4AEJMFAAClDgAwlAUCAIYJACGlBQIAhgkAIaYFEADwCQAhpwUQAPAJACGoBQEA2ggAIakFQACHCQAhCZEFAAClDgAwkgUAAKYOABCTBQAApQ4AMJQFAgCGCQAhpQUCAIYJACGmBRAA8AkAIacFEADwCQAhqAUBANoIACGpBUAAhwkAIQWUBQIAqQoAIaYFEACyCgAhpwUQALIKACGoBQEAvQoAIakFQAC-CgAhBhEAAMAKACCUBQIAqQoAIaYFEACyCgAhpwUQALIKACGoBQEAvQoAIakFQAC-CgAhBhEAAM4KACCUBQIAAAABpgUQAAAAAacFEAAAAAGoBQEAAAABqQVAAAAAARcEAADRDAAgCQAA0AwAIAoAANIMACANAADUDAAgEAAA1QwAIBMAANYMACCUBQIAAAABlQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAAJEGAocGAgAAAAGIBgIAAAABiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAY0GEAAAAAGOBhAAAAABjwYQAAAAAZEGAQAAAAECAAAAHAAgRQAAtQ4AIAMAAAAcACBFAAC1DgAgRgAAtA4AIAE-AADSEgAwHAQAAL0JACAJAAD5CQAgCgAAzgkAIAsAAO4JACANAAD7CQAgEAAAgQoAIBMAAPIJACCRBQAA_wkAMJIFAAAaABCTBQAA_wkAMJQFAgAAAAGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAgAqRBiKHBgIAAAABiAYCAIkJACGJBhAA8AkAIYoGEADwCQAhiwYQAPAJACGMBhAA8AkAIY0GEADsCQAhjgYQAPAJACGPBhAA8AkAIZEGAQDaCAAhAgAAABwAID4AALQOACACAAAAsg4AID4AALMOACAVkQUAALEOADCSBQAAsg4AEJMFAACxDgAwlAUCAIYJACGVBQIAhgkAIaUFAgCJCQAhqAUBANoIACGpBUAAhwkAIbQFQACHCQAhtQUCAIYJACHnBQAAgAqRBiKHBgIAiQkAIYgGAgCJCQAhiQYQAPAJACGKBhAA8AkAIYsGEADwCQAhjAYQAPAJACGNBhAA7AkAIY4GEADwCQAhjwYQAPAJACGRBgEA2ggAIRWRBQAAsQ4AMJIFAACyDgAQkwUAALEOADCUBQIAhgkAIZUFAgCGCQAhpQUCAIkJACGoBQEA2ggAIakFQACHCQAhtAVAAIcJACG1BQIAhgkAIecFAACACpEGIocGAgCJCQAhiAYCAIkJACGJBhAA8AkAIYoGEADwCQAhiwYQAPAJACGMBhAA8AkAIY0GEADsCQAhjgYQAPAJACGPBhAA8AkAIZEGAQDaCAAhEZQFAgCpCgAhlQUCAKkKACGoBQEAvQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACZDJEGIocGAgCiCwAhiAYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIY0GEACYDAAhjgYQALIKACGPBhAAsgoAIZEGAQC9CgAhFwQAAJsMACAJAACaDAAgCgAAnAwAIA0AAJ4MACAQAACfDAAgEwAAoAwAIJQFAgCpCgAhlQUCAKkKACGoBQEAvQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACZDJEGIocGAgCiCwAhiAYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIY0GEACYDAAhjgYQALIKACGPBhAAsgoAIZEGAQC9CgAhFwQAANEMACAJAADQDAAgCgAA0gwAIA0AANQMACAQAADVDAAgEwAA1gwAIJQFAgAAAAGVBQIAAAABqAUBAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAkQYChwYCAAAAAYgGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABjQYQAAAAAY4GEAAAAAGPBhAAAAABkQYBAAAAARkDAAC7DQAgBAAAuQ0AIAYAALoNACAHAAC8DQAgDAAAwA0AIBAAAL4NACAXAAC_DQAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAALMGAqcGAgAAAAGoBgIAAAABqQYBAAAAAaoGAQAAAAGrBkAAAAABrAYBAAAAAa4GAAAArgYCrwaAAAAAAbAGQAAAAAGxBgEAAAABswYBAAAAAbQGAQAAAAECAAAAEgAgRQAAvg4AIAMAAAASACBFAAC-DgAgRgAAvQ4AIAE-AADREgAwAgAAABIAID4AAL0OACACAAAA_g0AID4AALwOACASlAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqcGAgCiCwAhqAYCAKkKACGpBgEAqAoAIaoGAQCoCgAhqwZAAL4KACGsBgEAqAoAIa4GAACVDa4GIq8GgAAAAAGwBkAAvgoAIbEGAQCoCgAhswYBAL0KACG0BgEAvQoAIRkDAACZDQAgBAAAlw0AIAYAAJgNACAHAACaDQAgDAAAng0AIBAAAJwNACAXAACdDQAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqcGAgCiCwAhqAYCAKkKACGpBgEAqAoAIaoGAQCoCgAhqwZAAL4KACGsBgEAqAoAIa4GAACVDa4GIq8GgAAAAAGwBkAAvgoAIbEGAQCoCgAhswYBAL0KACG0BgEAvQoAIRkDAAC7DQAgBAAAuQ0AIAYAALoNACAHAAC8DQAgDAAAwA0AIBAAAL4NACAXAAC_DQAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAALMGAqcGAgAAAAGoBgIAAAABqQYBAAAAAaoGAQAAAAGrBkAAAAABrAYBAAAAAa4GAAAArgYCrwaAAAAAAbAGQAAAAAGxBgEAAAABswYBAAAAAbQGAQAAAAEDRQAAzxIAIOUGAADQEgAg6wYAAAEAIARFAAC2DgAw5QYAALcOADDnBgAAuQ4AIOsGAAD6DQAwBEUAAKoOADDlBgAAqw4AMOcGAACtDgAg6wYAAK4OADAERQAAng4AMOUGAACfDgAw5wYAAKEOACDrBgAAog4AMARFAACVDgAw5QYAAJYOADDnBgAAmA4AIOsGAACGDgAwBEUAANgNADDlBgAA2Q0AMOcGAADbDQAg6wYAANwNADAAAAAAAAdFAADDEgAgRgAAzRIAIOUGAADEEgAg5gYAAMwSACDpBgAADQAg6gYAAA0AIOsGAAABACALRQAA1g4AMEYAANoOADDlBgAA1w4AMOYGAADYDgAw5wYAANkOACDoBgAA3A0AMOkGAADcDQAw6gYAANwNADDrBgAA3A0AMOwGAADbDgAw7QYAAN8NADALRQAAzQ4AMEYAANEOADDlBgAAzg4AMOYGAADPDgAw5wYAANAOACDoBgAA-g0AMOkGAAD6DQAw6gYAAPoNADDrBgAA-g0AMOwGAADSDgAw7QYAAP0NADAZAwAAuw0AIAQAALkNACAGAAC6DQAgCwAAvQ0AIAwAAMANACAQAAC-DQAgFwAAvw0AIJQFAgAAAAGVBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABAgAAABIAIEUAANUOACADAAAAEgAgRQAA1Q4AIEYAANQOACABPgAAyxIAMAIAAAASACA-AADUDgAgAgAAAP4NACA-AADTDgAgEpQFAgCpCgAhlQUCAKkKACGlBQIAogsAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqcGAgCiCwAhqQYBAKgKACGqBgEAqAoAIasGQAC-CgAhrAYBAKgKACGuBgAAlQ2uBiKvBoAAAAABsAZAAL4KACGxBgEAqAoAIbMGAQC9CgAhtAYBAL0KACEZAwAAmQ0AIAQAAJcNACAGAACYDQAgCwAAmw0AIAwAAJ4NACAQAACcDQAgFwAAnQ0AIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqcGAgCiCwAhqQYBAKgKACGqBgEAqAoAIasGQAC-CgAhrAYBAKgKACGuBgAAlQ2uBiKvBoAAAAABsAZAAL4KACGxBgEAqAoAIbMGAQC9CgAhtAYBAL0KACEZAwAAuw0AIAQAALkNACAGAAC6DQAgCwAAvQ0AIAwAAMANACAQAAC-DQAgFwAAvw0AIJQFAgAAAAGVBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABFgMAAJAOACAEAACPDgAgCAAAkw4AIAsAAOAOACAYAACSDgAgGQAAlA4AIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAcAGQAAAAAHBBgEAAAABwgYBAAAAAcMGIAAAAAHEBgEAAAABxQYgAAAAAccGAAAAxwYCAgAAAAkAIEUAAN8OACADAAAACQAgRQAA3w4AIEYAAN0OACABPgAAyhIAMAIAAAAJACA-AADdDgAgAgAAAOANACA-AADcDgAgEJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIcAGQAC-CgAhwQYBAKgKACHCBgEAqAoAIcMGIADbCgAhxAYBAL0KACHFBiAA2woAIccGAADiDccGIhYDAADlDQAgBAAA5A0AIAgAAOgNACALAADeDgAgGAAA5w0AIBkAAOkNACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtQUCAKkKACHnBQEAqAoAIfoFAQCoCgAhlAYBAKgKACHABkAAvgoAIcEGAQCoCgAhwgYBAKgKACHDBiAA2woAIcQGAQC9CgAhxQYgANsKACHHBgAA4g3HBiIHRQAAxRIAIEYAAMgSACDlBgAAxhIAIOYGAADHEgAg6QYAABcAIOoGAAAXACDrBgAAkAEAIBYDAACQDgAgBAAAjw4AIAgAAJMOACALAADgDgAgGAAAkg4AIBkAAJQOACCUBQIAAAABlQUCAAAAAaUFAgAAAAGoBQEAAAABqQVAAAAAAbUFAgAAAAHnBQEAAAAB-gUBAAAAAZQGAQAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgNFAADFEgAg5QYAAMYSACDrBgAAkAEAIANFAADDEgAg5QYAAMQSACDrBgAAAQAgBEUAANYOADDlBgAA1w4AMOcGAADZDgAg6wYAANwNADAERQAAzQ4AMOUGAADODgAw5wYAANAOACDrBgAA-g0AMAAAAAAABUUAAL4SACBGAADBEgAg5QYAAL8SACDmBgAAwBIAIOsGAAAJACADRQAAvhIAIOUGAAC_EgAg6wYAAAkAIAAAAAAAAAAAAAAFRQAAsRIAIEYAALwSACDlBgAAshIAIOYGAAC7EgAg6wYAAAEAIAtFAADMDwAwRgAA0A8AMOUGAADNDwAw5gYAAM4PADDnBgAAzw8AIOgGAADcDQAw6QYAANwNADDqBgAA3A0AMOsGAADcDQAw7AYAANEPADDtBgAA3w0AMAtFAADDDwAwRgAAxw8AMOUGAADEDwAw5gYAAMUPADDnBgAAxg8AIOgGAACGDgAw6QYAAIYOADDqBgAAhg4AMOsGAACGDgAw7AYAAMgPADDtBgAAiQ4AMAtFAAC6DwAwRgAAvg8AMOUGAAC7DwAw5gYAALwPADDnBgAAvQ8AIOgGAAD6DQAw6QYAAPoNADDqBgAA-g0AMOsGAAD6DQAw7AYAAL8PADDtBgAA_Q0AMAtFAACuDwAwRgAAsw8AMOUGAACvDwAw5gYAALAPADDnBgAAsQ8AIOgGAACyDwAw6QYAALIPADDqBgAAsg8AMOsGAACyDwAw7AYAALQPADDtBgAAtQ8AMAtFAAClDwAwRgAAqQ8AMOUGAACmDwAw5gYAAKcPADDnBgAAqA8AIOgGAACuDgAw6QYAAK4OADDqBgAArg4AMOsGAACuDgAw7AYAAKoPADDtBgAAsQ4AMAtFAACZDwAwRgAAng8AMOUGAACaDwAw5gYAAJsPADDnBgAAnA8AIOgGAACdDwAw6QYAAJ0PADDqBgAAnQ8AMOsGAACdDwAw7AYAAJ8PADDtBgAAoA8AMAtFAACNDwAwRgAAkg8AMOUGAACODwAw5gYAAI8PADDnBgAAkA8AIOgGAACRDwAw6QYAAJEPADDqBgAAkQ8AMOsGAACRDwAw7AYAAJMPADDtBgAAlA8AMAdFAACIDwAgRgAAiw8AIOUGAACJDwAg5gYAAIoPACDpBgAAbgAg6gYAAG4AIOsGAAC8AQAgC0UAAP8OADBGAACDDwAw5QYAAIAPADDmBgAAgQ8AMOcGAACCDwAg6AYAAOALADDpBgAA4AsAMOoGAADgCwAw6wYAAOALADDsBgAAhA8AMO0GAADjCwAwCgMAAOkLACAZAADrCwAgIAAA7AsAICEAAOgLACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAfMFAgAAAAECAAAAcgAgRQAAhw8AIAMAAAByACBFAACHDwAgRgAAhg8AIAE-AAC6EgAwAgAAAHIAID4AAIYPACACAAAA5AsAID4AAIUPACAGlAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAIfMFAgCiCwAhCgMAAM0LACAZAADPCwAgIAAAywsAICEAAMwLACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAh8wUCAKILACEKAwAA6QsAIBkAAOsLACAgAADsCwAgIQAA6AsAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB8wUCAAAAAQYDAADfCgAglAUCAAAAAZUFAgAAAAG0BUAAAAABtgUBAAAAAbcFIAAAAAECAAAAvAEAIEUAAIgPACADAAAAbgAgRQAAiA8AIEYAAIwPACAIAAAAbgAgAwAA3QoAID4AAIwPACCUBQIAqQoAIZUFAgCpCgAhtAVAAL4KACG2BQEAqAoAIbcFIADbCgAhBgMAAN0KACCUBQIAqQoAIZUFAgCpCgAhtAVAAL4KACG2BQEAqAoAIbcFIADbCgAhCJQFAgAAAAG0BUAAAAAB3AUBAAAAAd0FAQAAAAHeBQEAAAAB3wUEAAAAAeAFAQAAAAHhBUAAAAABAgAAAGwAIEUAAJgPACADAAAAbAAgRQAAmA8AIEYAAJcPACABPgAAuRIAMA0EAAC9CQAgkQUAANwJADCSBQAAagAQkwUAANwJADCUBQIAAAABtAVAAIcJACG1BQIAhgkAIdwFAQC_CAAh3QUBAL8IACHeBQEAvwgAId8FBADUCQAh4AUBAL8IACHhBUAAhwkAIQIAAABsACA-AACXDwAgAgAAAJUPACA-AACWDwAgDJEFAACUDwAwkgUAAJUPABCTBQAAlA8AMJQFAgCGCQAhtAVAAIcJACG1BQIAhgkAIdwFAQC_CAAh3QUBAL8IACHeBQEAvwgAId8FBADUCQAh4AUBAL8IACHhBUAAhwkAIQyRBQAAlA8AMJIFAACVDwAQkwUAAJQPADCUBQIAhgkAIbQFQACHCQAhtQUCAIYJACHcBQEAvwgAId0FAQC_CAAh3gUBAL8IACHfBQQA1AkAIeAFAQC_CAAh4QVAAIcJACEIlAUCAKkKACG0BUAAvgoAIdwFAQCoCgAh3QUBAKgKACHeBQEAqAoAId8FBACWCwAh4AUBAKgKACHhBUAAvgoAIQiUBQIAqQoAIbQFQAC-CgAh3AUBAKgKACHdBQEAqAoAId4FAQCoCgAh3wUEAJYLACHgBQEAqAoAIeEFQAC-CgAhCJQFAgAAAAG0BUAAAAAB3AUBAAAAAd0FAQAAAAHeBQEAAAAB3wUEAAAAAeAFAQAAAAHhBUAAAAABCwMAAKYLACCUBQIAAAABlQUCAAAAAakFQAAAAAHjBQAAAOMFAuUFAAAA5QUC5wUAAADnBQLpBQAAAOkFAuoFAQAAAAHrBQIAAAAB7AUBAAAAAQIAAABnACBFAACkDwAgAwAAAGcAIEUAAKQPACBGAACjDwAgAT4AALgSADAQAwAAzgkAIAQAAL0JACCRBQAA3QkAMJIFAABlABCTBQAA3QkAMJQFAgAAAAGVBQIAiQkAIakFQACHCQAhtQUCAIYJACHjBQAA3gnjBSLlBQAA3wnlBSLnBQAA4AnnBSLpBQAA4QnpBSLqBQEA2ggAIesFAgCJCQAh7AUBANoIACECAAAAZwAgPgAAow8AIAIAAAChDwAgPgAAog8AIA6RBQAAoA8AMJIFAAChDwAQkwUAAKAPADCUBQIAhgkAIZUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIeMFAADeCeMFIuUFAADfCeUFIucFAADgCecFIukFAADhCekFIuoFAQDaCAAh6wUCAIkJACHsBQEA2ggAIQ6RBQAAoA8AMJIFAAChDwAQkwUAAKAPADCUBQIAhgkAIZUFAgCJCQAhqQVAAIcJACG1BQIAhgkAIeMFAADeCeMFIuUFAADfCeUFIucFAADgCecFIukFAADhCekFIuoFAQDaCAAh6wUCAIkJACHsBQEA2ggAIQqUBQIAqQoAIZUFAgCiCwAhqQVAAL4KACHjBQAAngvjBSLlBQAAnwvlBSLnBQAAoAvnBSLpBQAAoQvpBSLqBQEAvQoAIesFAgCiCwAh7AUBAL0KACELAwAApAsAIJQFAgCpCgAhlQUCAKILACGpBUAAvgoAIeMFAACeC-MFIuUFAACfC-UFIucFAACgC-cFIukFAAChC-kFIuoFAQC9CgAh6wUCAKILACHsBQEAvQoAIQsDAACmCwAglAUCAAAAAZUFAgAAAAGpBUAAAAAB4wUAAADjBQLlBQAAAOUFAucFAAAA5wUC6QUAAADpBQLqBQEAAAAB6wUCAAAAAewFAQAAAAEXCQAA0AwAIAoAANIMACALAADTDAAgDQAA1AwAIBAAANUMACATAADWDAAglAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG0BUAAAAAB5wUAAACRBgKHBgIAAAABiAYCAAAAAYkGEAAAAAGKBhAAAAABiwYQAAAAAYwGEAAAAAGNBhAAAAABjgYQAAAAAY8GEAAAAAGRBgEAAAABAgAAABwAIEUAAK0PACADAAAAHAAgRQAArQ8AIEYAAKwPACABPgAAtxIAMAIAAAAcACA-AACsDwAgAgAAALIOACA-AACrDwAgEZQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG0BUAAvgoAIecFAACZDJEGIocGAgCiCwAhiAYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIY0GEACYDAAhjgYQALIKACGPBhAAsgoAIZEGAQC9CgAhFwkAAJoMACAKAACcDAAgCwAAnQwAIA0AAJ4MACAQAACfDAAgEwAAoAwAIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG0BUAAvgoAIecFAACZDJEGIocGAgCiCwAhiAYCAKILACGJBhAAsgoAIYoGEACyCgAhiwYQALIKACGMBhAAsgoAIY0GEACYDAAhjgYQALIKACGPBhAAsgoAIZEGAQC9CgAhFwkAANAMACAKAADSDAAgCwAA0wwAIA0AANQMACAQAADVDAAgEwAA1gwAIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAecFAAAAkQYChwYCAAAAAYgGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABjQYQAAAAAY4GEAAAAAGPBhAAAAABkQYBAAAAAQUbAADzDAAglAUCAAAAAakFQAAAAAGUBgEAAAABlgYAAACWBgICAAAAXQAgRQAAuQ8AIAMAAABdACBFAAC5DwAgRgAAuA8AIAE-AAC2EgAwCgQAAL0JACAbAADmCQAgkQUAAOQJADCSBQAAWwAQkwUAAOQJADCUBQIAAAABqQVAAIcJACG1BQIAhgkAIZQGAQC_CAAhlgYAAOUJlgYiAgAAAF0AID4AALgPACACAAAAtg8AID4AALcPACAIkQUAALUPADCSBQAAtg8AEJMFAAC1DwAwlAUCAIYJACGpBUAAhwkAIbUFAgCGCQAhlAYBAL8IACGWBgAA5QmWBiIIkQUAALUPADCSBQAAtg8AEJMFAAC1DwAwlAUCAIYJACGpBUAAhwkAIbUFAgCGCQAhlAYBAL8IACGWBgAA5QmWBiIElAUCAKkKACGpBUAAvgoAIZQGAQCoCgAhlgYAAOMMlgYiBRsAAOUMACCUBQIAqQoAIakFQAC-CgAhlAYBAKgKACGWBgAA4wyWBiIFGwAA8wwAIJQFAgAAAAGpBUAAAAABlAYBAAAAAZYGAAAAlgYCGQMAALsNACAGAAC6DQAgBwAAvA0AIAsAAL0NACAMAADADQAgEAAAvg0AIBcAAL8NACCUBQIAAAABlQUCAAAAAaUFAgAAAAGpBUAAAAABtAVAAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAAQIAAAASACBFAADCDwAgAwAAABIAIEUAAMIPACBGAADBDwAgAT4AALUSADACAAAAEgAgPgAAwQ8AIAIAAAD-DQAgPgAAwA8AIBKUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGpBUAAvgoAIbQFQAC-CgAh5wUAAJYNswYipwYCAKILACGoBgIAqQoAIakGAQCoCgAhqgYBAKgKACGrBkAAvgoAIawGAQCoCgAhrgYAAJUNrgYirwaAAAAAAbAGQAC-CgAhsQYBAKgKACGzBgEAvQoAIbQGAQC9CgAhGQMAAJkNACAGAACYDQAgBwAAmg0AIAsAAJsNACAMAACeDQAgEAAAnA0AIBcAAJ0NACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGpBUAAvgoAIbQFQAC-CgAh5wUAAJYNswYipwYCAKILACGoBgIAqQoAIakGAQCoCgAhqgYBAKgKACGrBkAAvgoAIawGAQCoCgAhrgYAAJUNrgYirwaAAAAAAbAGQAC-CgAhsQYBAKgKACGzBgEAvQoAIbQGAQC9CgAhGQMAALsNACAGAAC6DQAgBwAAvA0AIAsAAL0NACAMAADADQAgEAAAvg0AIBcAAL8NACCUBQIAAAABlQUCAAAAAaUFAgAAAAGpBUAAAAABtAVAAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAAQ8GAADKDQAgCwAAzA0AIJQFAgAAAAGlBQIAAAABqQVAAAAAAZ4GAQAAAAGiBgEAAAABowYBAAAAAacGAgAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABAgAAADwAIEUAAMsPACADAAAAPAAgRQAAyw8AIEYAAMoPACABPgAAtBIAMAIAAAA8ACA-AADKDwAgAgAAAIoOACA-AADJDwAgDZQFAgCpCgAhpQUCAKILACGpBUAAvgoAIZ4GAQCoCgAhogYBAL0KACGjBgEAvQoAIacGAgCpCgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8GAADHDQAgCwAAyQ0AIJQFAgCpCgAhpQUCAKILACGpBUAAvgoAIZ4GAQCoCgAhogYBAL0KACGjBgEAvQoAIacGAgCpCgAhtQYBAL0KACG2BhAAmAwAIbcGAQC9CgAhuAYBAL0KACG6BgAAxg26BiK7BgEAvQoAIQ8GAADKDQAgCwAAzA0AIJQFAgAAAAGlBQIAAAABqQVAAAAAAZ4GAQAAAAGiBgEAAAABowYBAAAAAacGAgAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABFgMAAJAOACAHAACRDgAgCAAAkw4AIAsAAOAOACAYAACSDgAgGQAAlA4AIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAAB5wUBAAAAAfoFAQAAAAGUBgEAAAABqAYCAAAAAcAGQAAAAAHBBgEAAAABwgYBAAAAAcMGIAAAAAHEBgEAAAABxQYgAAAAAccGAAAAxwYCAgAAAAkAIEUAANQPACADAAAACQAgRQAA1A8AIEYAANMPACABPgAAsxIAMAIAAAAJACA-AADTDwAgAgAAAOANACA-AADSDwAgEJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACHnBQEAqAoAIfoFAQCoCgAhlAYBAKgKACGoBgIAqQoAIcAGQAC-CgAhwQYBAKgKACHCBgEAqAoAIcMGIADbCgAhxAYBAL0KACHFBiAA2woAIccGAADiDccGIhYDAADlDQAgBwAA5g0AIAgAAOgNACALAADeDgAgGAAA5w0AIBkAAOkNACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAh5wUBAKgKACH6BQEAqAoAIZQGAQCoCgAhqAYCAKkKACHABkAAvgoAIcEGAQCoCgAhwgYBAKgKACHDBiAA2woAIcQGAQC9CgAhxQYgANsKACHHBgAA4g3HBiIWAwAAkA4AIAcAAJEOACAIAACTDgAgCwAA4A4AIBgAAJIOACAZAACUDgAglAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAHnBQEAAAAB-gUBAAAAAZQGAQAAAAGoBgIAAAABwAZAAAAAAcEGAQAAAAHCBgEAAAABwwYgAAAAAcQGAQAAAAHFBiAAAAABxwYAAADHBgIDRQAAsRIAIOUGAACyEgAg6wYAAAEAIARFAADMDwAw5QYAAM0PADDnBgAAzw8AIOsGAADcDQAwBEUAAMMPADDlBgAAxA8AMOcGAADGDwAg6wYAAIYOADAERQAAug8AMOUGAAC7DwAw5wYAAL0PACDrBgAA-g0AMARFAACuDwAw5QYAAK8PADDnBgAAsQ8AIOsGAACyDwAwBEUAAKUPADDlBgAApg8AMOcGAACoDwAg6wYAAK4OADAERQAAmQ8AMOUGAACaDwAw5wYAAJwPACDrBgAAnQ8AMARFAACNDwAw5QYAAI4PADDnBgAAkA8AIOsGAACRDwAwA0UAAIgPACDlBgAAiQ8AIOsGAAC8AQAgBEUAAP8OADDlBgAAgA8AMOcGAACCDwAg6wYAAOALADAAAAAAAAtFAADNEQAwRgAA0hEAMOUGAADOEQAw5gYAAM8RADDnBgAA0BEAIOgGAADREQAw6QYAANERADDqBgAA0REAMOsGAADREQAw7AYAANMRADDtBgAA1BEAMAtFAADEEQAwRgAAyBEAMOUGAADFEQAw5gYAAMYRADDnBgAAxxEAIOgGAADcDQAw6QYAANwNADDqBgAA3A0AMOsGAADcDQAw7AYAAMkRADDtBgAA3w0AMAtFAAC4EQAwRgAAvREAMOUGAAC5EQAw5gYAALoRADDnBgAAuxEAIOgGAAC8EQAw6QYAALwRADDqBgAAvBEAMOsGAAC8EQAw7AYAAL4RADDtBgAAvxEAMAtFAACsEQAwRgAAsREAMOUGAACtEQAw5gYAAK4RADDnBgAArxEAIOgGAACwEQAw6QYAALARADDqBgAAsBEAMOsGAACwEQAw7AYAALIRADDtBgAAsxEAMAtFAACjEQAwRgAApxEAMOUGAACkEQAw5gYAAKURADDnBgAAphEAIOgGAAD6DQAw6QYAAPoNADDqBgAA-g0AMOsGAAD6DQAw7AYAAKgRADDtBgAA_Q0AMAtFAACXEQAwRgAAnBEAMOUGAACYEQAw5gYAAJkRADDnBgAAmhEAIOgGAACbEQAw6QYAAJsRADDqBgAAmxEAMOsGAACbEQAw7AYAAJ0RADDtBgAAnhEAMAtFAACLEQAwRgAAkBEAMOUGAACMEQAw5gYAAI0RADDnBgAAjhEAIOgGAACPEQAw6QYAAI8RADDqBgAAjxEAMOsGAACPEQAw7AYAAJERADDtBgAAkhEAMAtFAACCEQAwRgAAhhEAMOUGAACDEQAw5gYAAIQRADDnBgAAhREAIOgGAACuDgAw6QYAAK4OADDqBgAArg4AMOsGAACuDgAw7AYAAIcRADDtBgAAsQ4AMAtFAAD2EAAwRgAA-xAAMOUGAAD3EAAw5gYAAPgQADDnBgAA-RAAIOgGAAD6EAAw6QYAAPoQADDqBgAA-hAAMOsGAAD6EAAw7AYAAPwQADDtBgAA_RAAMAtFAADqEAAwRgAA7xAAMOUGAADrEAAw5gYAAOwQADDnBgAA7RAAIOgGAADuEAAw6QYAAO4QADDqBgAA7hAAMOsGAADuEAAw7AYAAPAQADDtBgAA8RAAMAtFAADeEAAwRgAA4xAAMOUGAADfEAAw5gYAAOAQADDnBgAA4RAAIOgGAADiEAAw6QYAAOIQADDqBgAA4hAAMOsGAADiEAAw7AYAAOQQADDtBgAA5RAAMAtFAADVEAAwRgAA2RAAMOUGAADWEAAw5gYAANcQADDnBgAA2BAAIOgGAADgCwAw6QYAAOALADDqBgAA4AsAMOsGAADgCwAw7AYAANoQADDtBgAA4wsAMAtFAADMEAAwRgAA0BAAMOUGAADNEAAw5gYAAM4QADDnBgAAzxAAIOgGAADUCwAw6QYAANQLADDqBgAA1AsAMOsGAADUCwAw7AYAANEQADDtBgAA1wsAMAtFAADDEAAwRgAAxxAAMOUGAADEEAAw5gYAAMUQADDnBgAAxhAAIOgGAACdDwAw6QYAAJ0PADDqBgAAnQ8AMOsGAACdDwAw7AYAAMgQADDtBgAAoA8AMAdFAAC-EAAgRgAAwRAAIOUGAAC_EAAg5gYAAMAQACDpBgAAqwEAIOoGAACrAQAg6wYAAKAGACAHRQAAuRAAIEYAALwQACDlBgAAuhAAIOYGAAC7EAAg6QYAAK0BACDqBgAArQEAIOsGAAC4BgAgB0UAALQQACBGAAC3EAAg5QYAALUQACDmBgAAthAAIOkGAACvAQAg6gYAAK8BACDrBgAA0AYAIAdFAACvEAAgRgAAshAAIOUGAACwEAAg5gYAALEQACDpBgAAsQEAIOoGAACxAQAg6wYAAOgGACAHRQAAqhAAIEYAAK0QACDlBgAAqxAAIOYGAACsEAAg6QYAALMBACDqBgAAswEAIOsGAACABwAgB0UAAKUQACBGAACoEAAg5QYAAKYQACDmBgAApxAAIOkGAAC1AQAg6gYAALUBACDrBgAArgcAIAtFAACZEAAwRgAAnhAAMOUGAACaEAAw5gYAAJsQADDnBgAAnBAAIOgGAACdEAAw6QYAAJ0QADDqBgAAnRAAMOsGAACdEAAw7AYAAJ8QADDtBgAAoBAAMAtFAACNEAAwRgAAkhAAMOUGAACOEAAw5gYAAI8QADDnBgAAkBAAIOgGAACREAAw6QYAAJEQADDqBgAAkRAAMOsGAACREAAw7AYAAJMQADDtBgAAlBAAMAtFAACBEAAwRgAAhhAAMOUGAACCEAAw5gYAAIMQADDnBgAAhBAAIOgGAACFEAAw6QYAAIUQADDqBgAAhRAAMOsGAACFEAAw7AYAAIcQADDtBgAAiBAAMAdFAAD8DwAgRgAA_w8AIOUGAAD9DwAg5gYAAP4PACDpBgAAwgEAIOoGAADCAQAg6wYAAJ4IACAClAUCAAAAAZYFAQAAAAECAAAAnggAIEUAAPwPACADAAAAwgEAIEUAAPwPACBGAACAEAAgBAAAAMIBACA-AACAEAAglAUCAKkKACGWBQEAqAoAIQKUBQIAqQoAIZYFAQCoCgAhDZQFAgAAAAGpBUAAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFQAAAAAECAAAAwAEAIEUAAIwQACADAAAAwAEAIEUAAIwQACBGAACLEAAgAT4AALASADASAwAAwAgAIJEFAAC7CQAwkgUAAL4BABCTBQAAuwkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAhqgUBAL8IACGrBQEA2ggAIawFAQDaCAAhrQUBANoIACGuBQEA2ggAIa8FAQDaCAAhsAUBANoIACGxBQEA2ggAIbIFAQDaCAAhswUCAIYJACG0BUAAhwkAIQIAAADAAQAgPgAAixAAIAIAAACJEAAgPgAAihAAIBGRBQAAiBAAMJIFAACJEAAQkwUAAIgQADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIasFAQDaCAAhrAUBANoIACGtBQEA2ggAIa4FAQDaCAAhrwUBANoIACGwBQEA2ggAIbEFAQDaCAAhsgUBANoIACGzBQIAhgkAIbQFQACHCQAhEZEFAACIEAAwkgUAAIkQABCTBQAAiBAAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhqwUBANoIACGsBQEA2ggAIa0FAQDaCAAhrgUBANoIACGvBQEA2ggAIbAFAQDaCAAhsQUBANoIACGyBQEA2ggAIbMFAgCGCQAhtAVAAIcJACENlAUCAKkKACGpBUAAvgoAIaoFAQCoCgAhqwUBAL0KACGsBQEAvQoAIa0FAQC9CgAhrgUBAL0KACGvBQEAvQoAIbAFAQC9CgAhsQUBAL0KACGyBQEAvQoAIbMFAgCpCgAhtAVAAL4KACENlAUCAKkKACGpBUAAvgoAIaoFAQCoCgAhqwUBAL0KACGsBQEAvQoAIa0FAQC9CgAhrgUBAL0KACGvBQEAvQoAIbAFAQC9CgAhsQUBAL0KACGyBQEAvQoAIbMFAgCpCgAhtAVAAL4KACENlAUCAAAAAakFQAAAAAGqBQEAAAABqwUBAAAAAawFAQAAAAGtBQEAAAABrgUBAAAAAa8FAQAAAAGwBQEAAAABsQUBAAAAAbIFAQAAAAGzBQIAAAABtAVAAAAAAQYEAADeCgAglAUCAAAAAbQFQAAAAAG1BQIAAAABtgUBAAAAAbcFIAAAAAECAAAAvAEAIEUAAJgQACADAAAAvAEAIEUAAJgQACBGAACXEAAgAT4AAK8SADALAwAAwAgAIAQAAL0JACCRBQAAvAkAMJIFAABuABCTBQAAvAkAMJQFAgAAAAGVBQIAhgkAIbQFQACHCQAhtQUCAAAAAbYFAQC_CAAhtwUgAN8IACECAAAAvAEAID4AAJcQACACAAAAlRAAID4AAJYQACAJkQUAAJQQADCSBQAAlRAAEJMFAACUEAAwlAUCAIYJACGVBQIAhgkAIbQFQACHCQAhtQUCAIYJACG2BQEAvwgAIbcFIADfCAAhCZEFAACUEAAwkgUAAJUQABCTBQAAlBAAMJQFAgCGCQAhlQUCAIYJACG0BUAAhwkAIbUFAgCGCQAhtgUBAL8IACG3BSAA3wgAIQWUBQIAqQoAIbQFQAC-CgAhtQUCAKkKACG2BQEAqAoAIbcFIADbCgAhBgQAANwKACCUBQIAqQoAIbQFQAC-CgAhtQUCAKkKACG2BQEAqAoAIbcFIADbCgAhBgQAAN4KACCUBQIAAAABtAVAAAAAAbUFAgAAAAG2BQEAAAABtwUgAAAAAQSUBQIAAAABqQVAAAAAAaoFAQAAAAG-BQEAAAABAgAAALkBACBFAACkEAAgAwAAALkBACBFAACkEAAgRgAAoxAAIAE-AACuEgAwCQMAAMAIACCRBQAAvgkAMJIFAAC3AQAQkwUAAL4JADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhvgUBANoIACECAAAAuQEAID4AAKMQACACAAAAoRAAID4AAKIQACAIkQUAAKAQADCSBQAAoRAAEJMFAACgEAAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhqgUBAL8IACG-BQEA2ggAIQiRBQAAoBAAMJIFAAChEAAQkwUAAKAQADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGqBQEAvwgAIb4FAQDaCAAhBJQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIb4FAQC9CgAhBJQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIb4FAQC9CgAhBJQFAgAAAAGpBUAAAAABqgUBAAAAAb4FAQAAAAECPoAAAAABlAUCAAAAAQIAAACuBwAgRQAApRAAIAMAAAC1AQAgRQAApRAAIEYAAKkQACADAAAAtQEAID6AAKkQACGUBQIAqQoAIQI-gAAAAAGUBQIAqQoAIQuUBQIAAAABvgUBAAAAAb8FAQAAAAHABQEAAAABwQUBAAAAAcIFAQAAAAHDBQEAAAABxAUBAAAAAcUFAQAAAAHGBQEAAAABxwUBAAAAAQIAAACABwAgRQAAqhAAIAMAAACzAQAgRQAAqhAAIEYAAK4QACANAAAAswEAID4AAK4QACCUBQIAqQoAIb4FAQC9CgAhvwUBAL0KACHABQEAvQoAIcEFAQC9CgAhwgUBAL0KACHDBQEAvQoAIcQFAQC9CgAhxQUBAL0KACHGBQEAvQoAIccFAQC9CgAhC5QFAgCpCgAhvgUBAL0KACG_BQEAvQoAIcAFAQC9CgAhwQUBAL0KACHCBQEAvQoAIcMFAQC9CgAhxAUBAL0KACHFBQEAvQoAIcYFAQC9CgAhxwUBAL0KACECPoAAAAABlAUCAAAAAQIAAADoBgAgRQAArxAAIAMAAACxAQAgRQAArxAAIEYAALMQACADAAAAsQEAID6AALMQACGUBQIAqQoAIQI-gAAAAAGUBQIAqQoAIQ6UBQIAAAAByAUBAAAAAckFIAAAAAHKBQEAAAABywUgAAAAAcwFAQAAAAHNBSAAAAABzgUBAAAAAc8FAQAAAAHQBQEAAAAB0QUBAAAAAdIFIAAAAAHTBSAAAAAB1AUgAAAAAQIAAADQBgAgRQAAtBAAIAMAAACvAQAgRQAAtBAAIEYAALgQACAQAAAArwEAID4AALgQACCUBQIAqQoAIcgFAQCoCgAhyQUgANsKACHKBQEAqAoAIcsFIADbCgAhzAUBAKgKACHNBSAA2woAIc4FAQCoCgAhzwUBAKgKACHQBQEAqAoAIdEFAQCoCgAh0gUgANsKACHTBSAA2woAIdQFIADbCgAhDpQFAgCpCgAhyAUBAKgKACHJBSAA2woAIcoFAQCoCgAhywUgANsKACHMBQEAqAoAIc0FIADbCgAhzgUBAKgKACHPBQEAqAoAIdAFAQCoCgAh0QUBAKgKACHSBSAA2woAIdMFIADbCgAh1AUgANsKACEIlAUCAAAAAb4FAQAAAAHIBQEAAAAB1QUBAAAAAdYFAQAAAAHXBQEAAAAB2AUBAAAAAdkFAQAAAAECAAAAuAYAIEUAALkQACADAAAArQEAIEUAALkQACBGAAC9EAAgCgAAAK0BACA-AAC9EAAglAUCAKkKACG-BQEAqAoAIcgFAQCoCgAh1QUBAL0KACHWBQEAvQoAIdcFAQC9CgAh2AUBAL0KACHZBQEAvQoAIQiUBQIAqQoAIb4FAQCoCgAhyAUBAKgKACHVBQEAvQoAIdYFAQC9CgAh1wUBAL0KACHYBQEAvQoAIdkFAQC9CgAhBpQFAgAAAAG-BQEAAAAB1QUBAAAAAdkFAQAAAAHaBQEAAAAB2wWAAAAAAQIAAACgBgAgRQAAvhAAIAMAAACrAQAgRQAAvhAAIEYAAMIQACAIAAAAqwEAID4AAMIQACCUBQIAqQoAIb4FAQCoCgAh1QUBAKgKACHZBQEAvQoAIdoFAQCoCgAh2wWAAAAAAQaUBQIAqQoAIb4FAQCoCgAh1QUBAKgKACHZBQEAvQoAIdoFAQCoCgAh2wWAAAAAAQsEAAClCwAglAUCAAAAAakFQAAAAAG1BQIAAAAB4wUAAADjBQLlBQAAAOUFAucFAAAA5wUC6QUAAADpBQLqBQEAAAAB6wUCAAAAAewFAQAAAAECAAAAZwAgRQAAyxAAIAMAAABnACBFAADLEAAgRgAAyhAAIAE-AACtEgAwAgAAAGcAID4AAMoQACACAAAAoQ8AID4AAMkQACAKlAUCAKkKACGpBUAAvgoAIbUFAgCpCgAh4wUAAJ4L4wUi5QUAAJ8L5QUi5wUAAKAL5wUi6QUAAKEL6QUi6gUBAL0KACHrBQIAogsAIewFAQC9CgAhCwQAAKMLACCUBQIAqQoAIakFQAC-CgAhtQUCAKkKACHjBQAAngvjBSLlBQAAnwvlBSLnBQAAoAvnBSLpBQAAoQvpBSLqBQEAvQoAIesFAgCiCwAh7AUBAL0KACELBAAApQsAIJQFAgAAAAGpBUAAAAABtQUCAAAAAeMFAAAA4wUC5QUAAADlBQLnBQAAAOcFAukFAAAA6QUC6gUBAAAAAesFAgAAAAHsBQEAAAABDCIAAMQLACAkAADFCwAglAUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAd4FAQAAAAHfBQQAAAAB7wUCAAAAAfAFIAAAAAHxBQIAAAAB8gUBAAAAAQIAAAB5ACBFAADUEAAgAwAAAHkAIEUAANQQACBGAADTEAAgAT4AAKwSADACAAAAeQAgPgAA0xAAIAIAAADYCwAgPgAA0hAAIAqUBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAId4FAQC9CgAh3wUEAJYLACHvBQIAogsAIfAFIADbCgAh8QUCAKILACHyBQEAvQoAIQwiAAC1CwAgJAAAtgsAIJQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAh3gUBAL0KACHfBQQAlgsAIe8FAgCiCwAh8AUgANsKACHxBQIAogsAIfIFAQC9CgAhDCIAAMQLACAkAADFCwAglAUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAd4FAQAAAAHfBQQAAAAB7wUCAAAAAfAFIAAAAAHxBQIAAAAB8gUBAAAAAQoEAADqCwAgGQAA6wsAICAAAOwLACAhAADoCwAglAUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAbUFAgAAAAHzBQIAAAABAgAAAHIAIEUAAN0QACADAAAAcgAgRQAA3RAAIEYAANwQACABPgAAqxIAMAIAAAByACA-AADcEAAgAgAAAOQLACA-AADbEAAgBpQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAhtQUCAKILACHzBQIAogsAIQoEAADOCwAgGQAAzwsAICAAAMsLACAhAADMCwAglAUCAKkKACGpBUAAvgoAIaoFAQCoCgAhtAVAAL4KACG1BQIAogsAIfMFAgCiCwAhCgQAAOoLACAZAADrCwAgIAAA7AsAICEAAOgLACCUBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAABtQUCAAAAAfMFAgAAAAEFlAUCAAAAAakFQAAAAAH6BQAAAPoFAvsFAQAAAAH8BSAAAAABAgAAAKYBACBFAADpEAAgAwAAAKYBACBFAADpEAAgRgAA6BAAIAE-AACqEgAwCgMAAMAIACCRBQAAvwkAMJIFAACkAQAQkwUAAL8JADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIfoFAADACfoFIvsFAQC_CAAh_AUgAN8IACECAAAApgEAID4AAOgQACACAAAA5hAAID4AAOcQACAJkQUAAOUQADCSBQAA5hAAEJMFAADlEAAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAh-gUAAMAJ-gUi-wUBAL8IACH8BSAA3wgAIQmRBQAA5RAAMJIFAADmEAAQkwUAAOUQADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACH6BQAAwAn6BSL7BQEAvwgAIfwFIADfCAAhBZQFAgCpCgAhqQVAAL4KACH6BQAA-Av6BSL7BQEAqAoAIfwFIADbCgAhBZQFAgCpCgAhqQVAAL4KACH6BQAA-Av6BSL7BQEAqAoAIfwFIADbCgAhBZQFAgAAAAGpBUAAAAAB-gUAAAD6BQL7BQEAAAAB_AUgAAAAAQSUBQIAAAABqQVAAAAAAf0FAQAAAAH-BSAAAAABAgAAAKIBACBFAAD1EAAgAwAAAKIBACBFAAD1EAAgRgAA9BAAIAE-AACpEgAwCQMAAMAIACCRBQAAwQkAMJIFAACgAQAQkwUAAMEJADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIf0FAQC_CAAh_gUgAN8IACECAAAAogEAID4AAPQQACACAAAA8hAAID4AAPMQACAIkQUAAPEQADCSBQAA8hAAEJMFAADxEAAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAh_QUBAL8IACH-BSAA3wgAIQiRBQAA8RAAMJIFAADyEAAQkwUAAPEQADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACH9BQEAvwgAIf4FIADfCAAhBJQFAgCpCgAhqQVAAL4KACH9BQEAqAoAIf4FIADbCgAhBJQFAgCpCgAhqQVAAL4KACH9BQEAqAoAIf4FIADbCgAhBJQFAgAAAAGpBUAAAAAB_QUBAAAAAf4FIAAAAAEClAUCAAAAAakFQAAAAAECAAAAngEAIEUAAIERACADAAAAngEAIEUAAIERACBGAACAEQAgAT4AAKgSADAHAwAAwAgAIJEFAADCCQAwkgUAAJwBABCTBQAAwgkAMJQFAgAAAAGVBQIAhgkAIakFQACHCQAhAgAAAJ4BACA-AACAEQAgAgAAAP4QACA-AAD_EAAgBpEFAAD9EAAwkgUAAP4QABCTBQAA_RAAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIQaRBQAA_RAAMJIFAAD-EAAQkwUAAP0QADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACEClAUCAKkKACGpBUAAvgoAIQKUBQIAqQoAIakFQAC-CgAhApQFAgAAAAGpBUAAAAABFwQAANEMACAJAADQDAAgCwAA0wwAIA0AANQMACAQAADVDAAgEwAA1gwAIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAAJEGAocGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABjQYQAAAAAY4GEAAAAAGPBhAAAAABkQYBAAAAAQIAAAAcACBFAACKEQAgAwAAABwAIEUAAIoRACBGAACJEQAgAT4AAKcSADACAAAAHAAgPgAAiREAIAIAAACyDgAgPgAAiBEAIBGUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACZDJEGIocGAgCiCwAhiQYQALIKACGKBhAAsgoAIYsGEACyCgAhjAYQALIKACGNBhAAmAwAIY4GEACyCgAhjwYQALIKACGRBgEAvQoAIRcEAACbDAAgCQAAmgwAIAsAAJ0MACANAACeDAAgEAAAnwwAIBMAAKAMACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACZDJEGIocGAgCiCwAhiQYQALIKACGKBhAAsgoAIYsGEACyCgAhjAYQALIKACGNBhAAmAwAIY4GEACyCgAhjwYQALIKACGRBgEAvQoAIRcEAADRDAAgCQAA0AwAIAsAANMMACANAADUDAAgEAAA1QwAIBMAANYMACCUBQIAAAABlQUCAAAAAaUFAgAAAAGoBQEAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACRBgKHBgIAAAABiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAY0GEAAAAAGOBhAAAAABjwYQAAAAAZEGAQAAAAEFlAUCAAAAAZcGAQAAAAGYBgEAAAABmQYBAAAAAZoGAQAAAAECAAAAmQEAIEUAAJYRACADAAAAmQEAIEUAAJYRACBGAACVEQAgAT4AAKYSADAKAwAAwAgAIJEFAADDCQAwkgUAAJcBABCTBQAAwwkAMJQFAgAAAAGVBQIAhgkAIZcGAQC_CAAhmAYBAL8IACGZBgEAvwgAIZoGAQC_CAAhAgAAAJkBACA-AACVEQAgAgAAAJMRACA-AACUEQAgCZEFAACSEQAwkgUAAJMRABCTBQAAkhEAMJQFAgCGCQAhlQUCAIYJACGXBgEAvwgAIZgGAQC_CAAhmQYBAL8IACGaBgEAvwgAIQmRBQAAkhEAMJIFAACTEQAQkwUAAJIRADCUBQIAhgkAIZUFAgCGCQAhlwYBAL8IACGYBgEAvwgAIZkGAQC_CAAhmgYBAL8IACEFlAUCAKkKACGXBgEAqAoAIZgGAQCoCgAhmQYBAKgKACGaBgEAqAoAIQWUBQIAqQoAIZcGAQCoCgAhmAYBAKgKACGZBgEAqAoAIZoGAQCoCgAhBZQFAgAAAAGXBgEAAAABmAYBAAAAAZkGAQAAAAGaBgEAAAABBJQFAgAAAAGbBgEAAAABnAYBAAAAAZ0GAQAAAAECAAAAlQEAIEUAAKIRACADAAAAlQEAIEUAAKIRACBGAAChEQAgAT4AAKUSADAKAwAAwAgAIJEFAADFCQAwkgUAAJMBABCTBQAAxQkAMJQFAgAAAAGVBQIAhgkAIZsGAQC_CAAhnAYBAL8IACGdBgEAvwgAIdsGAADECQAgAgAAAJUBACA-AAChEQAgAgAAAJ8RACA-AACgEQAgCJEFAACeEQAwkgUAAJ8RABCTBQAAnhEAMJQFAgCGCQAhlQUCAIYJACGbBgEAvwgAIZwGAQC_CAAhnQYBAL8IACEIkQUAAJ4RADCSBQAAnxEAEJMFAACeEQAwlAUCAIYJACGVBQIAhgkAIZsGAQC_CAAhnAYBAL8IACGdBgEAvwgAIQSUBQIAqQoAIZsGAQCoCgAhnAYBAKgKACGdBgEAqAoAIQSUBQIAqQoAIZsGAQCoCgAhnAYBAKgKACGdBgEAqAoAIQSUBQIAAAABmwYBAAAAAZwGAQAAAAGdBgEAAAABGQQAALkNACAGAAC6DQAgBwAAvA0AIAsAAL0NACAMAADADQAgEAAAvg0AIBcAAL8NACCUBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAAQIAAAASACBFAACrEQAgAwAAABIAIEUAAKsRACBGAACqEQAgAT4AAKQSADACAAAAEgAgPgAAqhEAIAIAAAD-DQAgPgAAqREAIBKUBQIAqQoAIaUFAgCiCwAhqQVAAL4KACG0BUAAvgoAIbUFAgCpCgAh5wUAAJYNswYipwYCAKILACGoBgIAqQoAIakGAQCoCgAhqgYBAKgKACGrBkAAvgoAIawGAQCoCgAhrgYAAJUNrgYirwaAAAAAAbAGQAC-CgAhsQYBAKgKACGzBgEAvQoAIbQGAQC9CgAhGQQAAJcNACAGAACYDQAgBwAAmg0AIAsAAJsNACAMAACeDQAgEAAAnA0AIBcAAJ0NACCUBQIAqQoAIaUFAgCiCwAhqQVAAL4KACG0BUAAvgoAIbUFAgCpCgAh5wUAAJYNswYipwYCAKILACGoBgIAqQoAIakGAQCoCgAhqgYBAKgKACGrBkAAvgoAIawGAQCoCgAhrgYAAJUNrgYirwaAAAAAAbAGQAC-CgAhsQYBAKgKACGzBgEAvQoAIbQGAQC9CgAhGQQAALkNACAGAAC6DQAgBwAAvA0AIAsAAL0NACAMAADADQAgEAAAvg0AIBcAAL8NACCUBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAAQoFAADEDgAgCAAAwA4AIBQAAMEOACAVAADCDgAgFgAAww4AIJQFAgAAAAGpBUAAAAABswUCAAAAAbwGAQAAAAG9BgEAAAABAgAAAJABACBFAAC3EQAgAwAAAJABACBFAAC3EQAgRgAAthEAIAE-AACjEgAwEAMAAMAIACAFAADMCQAgCAAAyAkAIBQAAMkJACAVAADKCQAgFgAAywkAIJEFAADHCQAwkgUAABcAEJMFAADHCQAwlAUCAAAAAZUFAgCGCQAhqQVAAIcJACGzBQIAhgkAIbwGAQC_CAAhvQYBAL8IACHcBgAAxgkAIAIAAACQAQAgPgAAthEAIAIAAAC0EQAgPgAAtREAIAmRBQAAsxEAMJIFAAC0EQAQkwUAALMRADCUBQIAhgkAIZUFAgCGCQAhqQVAAIcJACGzBQIAhgkAIbwGAQC_CAAhvQYBAL8IACEJkQUAALMRADCSBQAAtBEAEJMFAACzEQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhswUCAIYJACG8BgEAvwgAIb0GAQC_CAAhBZQFAgCpCgAhqQVAAL4KACGzBQIAqQoAIbwGAQCoCgAhvQYBAKgKACEKBQAA1w0AIAgAANMNACAUAADUDQAgFQAA1Q0AIBYAANYNACCUBQIAqQoAIakFQAC-CgAhswUCAKkKACG8BgEAqAoAIb0GAQCoCgAhCgUAAMQOACAIAADADgAgFAAAwQ4AIBUAAMIOACAWAADDDgAglAUCAAAAAakFQAAAAAGzBQIAAAABvAYBAAAAAb0GAQAAAAEIBQAA4g4AIAgAAOMOACCUBQIAAAABqQVAAAAAAaoFAQAAAAHCBQEAAAABvgYBAAAAAb8GAQAAAAECAAAAjQEAIEUAAMMRACADAAAAjQEAIEUAAMMRACBGAADCEQAgAT4AAKISADANAwAAzgkAIAUAAMwJACAIAADICQAgkQUAAM0JADCSBQAACwAQkwUAAM0JADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhwgUBANoIACG-BgEAvwgAIb8GAQDaCAAhAgAAAI0BACA-AADCEQAgAgAAAMARACA-AADBEQAgCpEFAAC_EQAwkgUAAMARABCTBQAAvxEAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhwgUBANoIACG-BgEAvwgAIb8GAQDaCAAhCpEFAAC_EQAwkgUAAMARABCTBQAAvxEAMJQFAgCGCQAhlQUCAIYJACGpBUAAhwkAIaoFAQC_CAAhwgUBANoIACG-BgEAvwgAIb8GAQDaCAAhBpQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIcIFAQC9CgAhvgYBAKgKACG_BgEAvQoAIQgFAADLDgAgCAAAzA4AIJQFAgCpCgAhqQVAAL4KACGqBQEAqAoAIcIFAQC9CgAhvgYBAKgKACG_BgEAvQoAIQgFAADiDgAgCAAA4w4AIJQFAgAAAAGpBUAAAAABqgUBAAAAAcIFAQAAAAG-BgEAAAABvwYBAAAAARYEAACPDgAgBwAAkQ4AIAgAAJMOACALAADgDgAgGAAAkg4AIBkAAJQOACCUBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAagGAgAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgIAAAAJACBFAADMEQAgAwAAAAkAIEUAAMwRACBGAADLEQAgAT4AAKESADACAAAACQAgPgAAyxEAIAIAAADgDQAgPgAAyhEAIBCUBQIAqQoAIaUFAgCiCwAhqAUBAL0KACGpBUAAvgoAIbUFAgCpCgAh5wUBAKgKACH6BQEAqAoAIZQGAQCoCgAhqAYCAKkKACHABkAAvgoAIcEGAQCoCgAhwgYBAKgKACHDBiAA2woAIcQGAQC9CgAhxQYgANsKACHHBgAA4g3HBiIWBAAA5A0AIAcAAOYNACAIAADoDQAgCwAA3g4AIBgAAOcNACAZAADpDQAglAUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIagGAgCpCgAhwAZAAL4KACHBBgEAqAoAIcIGAQCoCgAhwwYgANsKACHEBgEAvQoAIcUGIADbCgAhxwYAAOINxwYiFgQAAI8OACAHAACRDgAgCAAAkw4AIAsAAOAOACAYAACSDgAgGQAAlA4AIJQFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG1BQIAAAAB5wUBAAAAAfoFAQAAAAGUBgEAAAABqAYCAAAAAcAGQAAAAAHBBgEAAAABwgYBAAAAAcMGIAAAAAHEBgEAAAABxQYgAAAAAccGAAAAxwYCHwUAANYPACAIAADYDwAgDAAA2g8AIBgAANcPACAcAADZDwAgHQAA2w8AIB4AANwPACAfAADdDwAgJQAA3g8AIJQFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAANgRACADAAAABQAgRQAA2BEAIEYAANcRACABPgAAoBIAMCQDAADACAAgBQAAzAkAIAgAAMgJACAMAADJCQAgGAAAywkAIBwAAKAKACAdAACRCgAgHgAAoQoAIB8AAKIKACAlAADZCQAgkQUAAJ8KADCSBQAAAwAQkwUAAJ8KADCUBQIAAAABlQUCAIYJACGpBUAAhwkAIbQFQACHCQAhwgUBANoIACHFBQEA2ggAIccFAQDaCAAh5wUAAJ0KxwYiqwZAAIgJACGxBgEA2ggAIb8GAQC_CAAhyAYBAL8IACHJBgEAvwgAIcoGAQC_CAAhywYBANoIACHMBgEA2ggAIc0GAQDaCAAhzgYBANoIACHPBgEA2ggAIdAGAQDaCAAh0QYBANoIACHSBgEA2ggAIdMGAQDaCAAhAgAAAAUAID4AANcRACACAAAA1REAID4AANYRACAakQUAANQRADCSBQAA1REAEJMFAADUEQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhtAVAAIcJACHCBQEA2ggAIcUFAQDaCAAhxwUBANoIACHnBQAAnQrHBiKrBkAAiAkAIbEGAQDaCAAhvwYBAL8IACHIBgEAvwgAIckGAQC_CAAhygYBAL8IACHLBgEA2ggAIcwGAQDaCAAhzQYBANoIACHOBgEA2ggAIc8GAQDaCAAh0AYBANoIACHRBgEA2ggAIdIGAQDaCAAh0wYBANoIACEakQUAANQRADCSBQAA1REAEJMFAADUEQAwlAUCAIYJACGVBQIAhgkAIakFQACHCQAhtAVAAIcJACHCBQEA2ggAIcUFAQDaCAAhxwUBANoIACHnBQAAnQrHBiKrBkAAiAkAIbEGAQDaCAAhvwYBAL8IACHIBgEAvwgAIckGAQC_CAAhygYBAL8IACHLBgEA2ggAIcwGAQDaCAAhzQYBANoIACHOBgEA2ggAIc8GAQDaCAAh0AYBANoIACHRBgEA2ggAIdIGAQDaCAAh0wYBANoIACEWlAUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhHwUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAfAAD9DgAgJQAA_g4AIJQFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_BgEAqAoAIcgGAQCoCgAhyQYBAKgKACHKBgEAqAoAIcsGAQC9CgAhzAYBAL0KACHNBgEAvQoAIc4GAQC9CgAhzwYBAL0KACHQBgEAvQoAIdEGAQC9CgAh0gYBAL0KACHTBgEAvQoAIR8FAADWDwAgCAAA2A8AIAwAANoPACAYAADXDwAgHAAA2Q8AIB0AANsPACAeAADcDwAgHwAA3Q8AICUAAN4PACCUBQIAAAABqQVAAAAAAbQFQAAAAAHCBQEAAAABxQUBAAAAAccFAQAAAAHnBQAAAMcGAqsGQAAAAAGxBgEAAAABvwYBAAAAAcgGAQAAAAHJBgEAAAABygYBAAAAAcsGAQAAAAHMBgEAAAABzQYBAAAAAc4GAQAAAAHPBgEAAAAB0AYBAAAAAdEGAQAAAAHSBgEAAAAB0wYBAAAAAQRFAADNEQAw5QYAAM4RADDnBgAA0BEAIOsGAADREQAwBEUAAMQRADDlBgAAxREAMOcGAADHEQAg6wYAANwNADAERQAAuBEAMOUGAAC5EQAw5wYAALsRACDrBgAAvBEAMARFAACsEQAw5QYAAK0RADDnBgAArxEAIOsGAACwEQAwBEUAAKMRADDlBgAApBEAMOcGAACmEQAg6wYAAPoNADAERQAAlxEAMOUGAACYEQAw5wYAAJoRACDrBgAAmxEAMARFAACLEQAw5QYAAIwRADDnBgAAjhEAIOsGAACPEQAwBEUAAIIRADDlBgAAgxEAMOcGAACFEQAg6wYAAK4OADAERQAA9hAAMOUGAAD3EAAw5wYAAPkQACDrBgAA-hAAMARFAADqEAAw5QYAAOsQADDnBgAA7RAAIOsGAADuEAAwBEUAAN4QADDlBgAA3xAAMOcGAADhEAAg6wYAAOIQADAERQAA1RAAMOUGAADWEAAw5wYAANgQACDrBgAA4AsAMARFAADMEAAw5QYAAM0QADDnBgAAzxAAIOsGAADUCwAwBEUAAMMQADDlBgAAxBAAMOcGAADGEAAg6wYAAJ0PADADRQAAvhAAIOUGAAC_EAAg6wYAAKAGACADRQAAuRAAIOUGAAC6EAAg6wYAALgGACADRQAAtBAAIOUGAAC1EAAg6wYAANAGACADRQAArxAAIOUGAACwEAAg6wYAAOgGACADRQAAqhAAIOUGAACrEAAg6wYAAIAHACADRQAApRAAIOUGAACmEAAg6wYAAK4HACAERQAAmRAAMOUGAACaEAAw5wYAAJwQACDrBgAAnRAAMARFAACNEAAw5QYAAI4QADDnBgAAkBAAIOsGAACREAAwBEUAAIEQADDlBgAAghAAMOcGAACEEAAg6wYAAIUQADADRQAA_A8AIOUGAAD9DwAg6wYAAJ4IACAAAAAAAAAAAAAAAAAAAAMDAACsCgAg2QUAALcKACDbBQAAtwoAIAYDAACsCgAg1QUAALcKACDWBQAAtwoAINcFAAC3CgAg2AUAALcKACDZBQAAtwoAIAEDAACsCgAgAQMAAKwKACALAwAArAoAIL4FAAC3CgAgvwUAALcKACDABQAAtwoAIMEFAAC3CgAgwgUAALcKACDDBQAAtwoAIMQFAAC3CgAgxQUAALcKACDGBQAAtwoAIMcFAAC3CgAgAQMAAKwKACAAAAABAwAArAoAIBgDAACsCgAgBQAA8hEAIAgAAPURACAMAAD4EQAgGAAAixIAIBwAAJ0SACAdAAD-EQAgHgAAnhIAIB8AAJ8SACAlAAD8EQAgwgUAALcKACDFBQAAtwoAIMcFAAC3CgAgqwYAALcKACCxBgAAtwoAIMsGAAC3CgAgzAYAALcKACDNBgAAtwoAIM4GAAC3CgAgzwYAALcKACDQBgAAtwoAINEGAAC3CgAg0gYAALcKACDTBgAAtwoAIAAABwMAAKwKACAiAACNEgAgJAAAjhIAIN4FAAC3CgAg7wUAALcKACDxBQAAtwoAIPIFAAC3CgAgBwMAAKwKACAEAACJEgAgGQAA_REAICAAAI0SACAhAAD8EQAgtQUAALcKACDzBQAAtwoAIAACBAAAiRIAIBsAAJASACAACgMAAKwKACAEAACJEgAgBwAAmhIAIAgAAPURACALAACTEgAgGAAAixIAIBkAAJwSACClBQAAtwoAIKgFAAC3CgAgxAYAALcKACANAwAArAoAIAQAAIkSACAGAACREgAgBwAAmhIAIAsAAJMSACAMAACWEgAgEAAAmRIAIBcAAJsSACClBQAAtwoAIKcGAAC3CgAgrwYAALcKACCzBgAAtwoAILQGAAC3CgAgBgMAAKwKACAFAADyEQAgCAAA9REAIBQAAPgRACAVAACKEgAgFgAAixIAIAADCwAAkxIAIBEAAJQSACCoBQAAtwoAIA0EAACJEgAgCQAAkhIAIAoAAKwKACALAACTEgAgDQAAlxIAIBAAAJkSACATAACUEgAgpQUAALcKACCoBQAAtwoAIIcGAAC3CgAgiAYAALcKACCNBgAAtwoAIJEGAAC3CgAgAAwJAACSEgAgDAAAlhIAIA0AAJcSACCjBQAAtwoAIIcGAAC3CgAgkQYAALcKACCgBgAAtwoAIKEGAAC3CgAgogYAALcKACCjBgAAtwoAIKQGAAC3CgAgpQYAALcKACAABQMAAKwKACAFAADyEQAgCAAA9REAIMIFAAC3CgAgvwYAALcKACAAAAAAAgMAAKwKACAEAACJEgAgFpQFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABEJQFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG1BQIAAAAB5wUBAAAAAfoFAQAAAAGUBgEAAAABqAYCAAAAAcAGQAAAAAHBBgEAAAABwgYBAAAAAcMGIAAAAAHEBgEAAAABxQYgAAAAAccGAAAAxwYCBpQFAgAAAAGpBUAAAAABqgUBAAAAAcIFAQAAAAG-BgEAAAABvwYBAAAAAQWUBQIAAAABqQVAAAAAAbMFAgAAAAG8BgEAAAABvQYBAAAAARKUBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAAQSUBQIAAAABmwYBAAAAAZwGAQAAAAGdBgEAAAABBZQFAgAAAAGXBgEAAAABmAYBAAAAAZkGAQAAAAGaBgEAAAABEZQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAAJEGAocGAgAAAAGJBhAAAAABigYQAAAAAYsGEAAAAAGMBhAAAAABjQYQAAAAAY4GEAAAAAGPBhAAAAABkQYBAAAAAQKUBQIAAAABqQVAAAAAAQSUBQIAAAABqQVAAAAAAf0FAQAAAAH-BSAAAAABBZQFAgAAAAGpBUAAAAAB-gUAAAD6BQL7BQEAAAAB_AUgAAAAAQaUBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAABtQUCAAAAAfMFAgAAAAEKlAUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAd4FAQAAAAHfBQQAAAAB7wUCAAAAAfAFIAAAAAHxBQIAAAAB8gUBAAAAAQqUBQIAAAABqQVAAAAAAbUFAgAAAAHjBQAAAOMFAuUFAAAA5QUC5wUAAADnBQLpBQAAAOkFAuoFAQAAAAHrBQIAAAAB7AUBAAAAAQSUBQIAAAABqQVAAAAAAaoFAQAAAAG-BQEAAAABBZQFAgAAAAG0BUAAAAABtQUCAAAAAbYFAQAAAAG3BSAAAAABDZQFAgAAAAGpBUAAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFQAAAAAEhBQAA2hEAIAcAANsRACAIAADdEQAgHQAA5hEAICUAAOQRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAtAADjEQAgLgAA5REAIC8AAOcRACAwAADoEQAgMQAA6REAIDIAAOoRACAzAADrEQAgNAAA7BEAIDUAAO0RACA2AADuEQAgNwAA7xEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAALESACAQlAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAHnBQEAAAAB-gUBAAAAAZQGAQAAAAGoBgIAAAABwAZAAAAAAcEGAQAAAAHCBgEAAAABwwYgAAAAAcQGAQAAAAHFBiAAAAABxwYAAADHBgINlAUCAAAAAaUFAgAAAAGpBUAAAAABngYBAAAAAaIGAQAAAAGjBgEAAAABpwYCAAAAAbUGAQAAAAG2BhAAAAABtwYBAAAAAbgGAQAAAAG6BgAAALoGArsGAQAAAAESlAUCAAAAAZUFAgAAAAGlBQIAAAABqQVAAAAAAbQFQAAAAAHnBQAAALMGAqcGAgAAAAGoBgIAAAABqQYBAAAAAaoGAQAAAAGrBkAAAAABrAYBAAAAAa4GAAAArgYCrwaAAAAAAbAGQAAAAAGxBgEAAAABswYBAAAAAbQGAQAAAAEElAUCAAAAAakFQAAAAAGUBgEAAAABlgYAAACWBgIRlAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG0BUAAAAAB5wUAAACRBgKHBgIAAAABiAYCAAAAAYkGEAAAAAGKBhAAAAABiwYQAAAAAYwGEAAAAAGNBhAAAAABjgYQAAAAAY8GEAAAAAGRBgEAAAABCpQFAgAAAAGVBQIAAAABqQVAAAAAAeMFAAAA4wUC5QUAAADlBQLnBQAAAOcFAukFAAAA6QUC6gUBAAAAAesFAgAAAAHsBQEAAAABCJQFAgAAAAG0BUAAAAAB3AUBAAAAAd0FAQAAAAHeBQEAAAAB3wUEAAAAAeAFAQAAAAHhBUAAAAABBpQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB8wUCAAAAAQMAAAANACBFAACxEgAgRgAAvRIAICMAAAANACAFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAL0SACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhFwMAAJAOACAEAACPDgAgBwAAkQ4AIAgAAJMOACALAADgDgAgGAAAkg4AIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAagGAgAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgIAAAAJACBFAAC-EgAgAwAAAAcAIEUAAL4SACBGAADCEgAgGQAAAAcAIAMAAOUNACAEAADkDQAgBwAA5g0AIAgAAOgNACALAADeDgAgGAAA5w0AID4AAMISACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtQUCAKkKACHnBQEAqAoAIfoFAQCoCgAhlAYBAKgKACGoBgIAqQoAIcAGQAC-CgAhwQYBAKgKACHCBgEAqAoAIcMGIADbCgAhxAYBAL0KACHFBiAA2woAIccGAADiDccGIhcDAADlDQAgBAAA5A0AIAcAAOYNACAIAADoDQAgCwAA3g4AIBgAAOcNACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGoBQEAvQoAIakFQAC-CgAhtQUCAKkKACHnBQEAqAoAIfoFAQCoCgAhlAYBAKgKACGoBgIAqQoAIcAGQAC-CgAhwQYBAKgKACHCBgEAqAoAIcMGIADbCgAhxAYBAL0KACHFBiAA2woAIccGAADiDccGIiEFAADaEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAAwxIAIAsDAAC_DgAgCAAAwA4AIBQAAMEOACAVAADCDgAgFgAAww4AIJQFAgAAAAGVBQIAAAABqQVAAAAAAbMFAgAAAAG8BgEAAAABvQYBAAAAAQIAAACQAQAgRQAAxRIAIAMAAAAXACBFAADFEgAgRgAAyRIAIA0AAAAXACADAADSDQAgCAAA0w0AIBQAANQNACAVAADVDQAgFgAA1g0AID4AAMkSACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGzBQIAqQoAIbwGAQCoCgAhvQYBAKgKACELAwAA0g0AIAgAANMNACAUAADUDQAgFQAA1Q0AIBYAANYNACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGzBQIAqQoAIbwGAQCoCgAhvQYBAKgKACEQlAUCAAAAAZUFAgAAAAGlBQIAAAABqAUBAAAAAakFQAAAAAG1BQIAAAAB5wUBAAAAAfoFAQAAAAGUBgEAAAABwAZAAAAAAcEGAQAAAAHCBgEAAAABwwYgAAAAAcQGAQAAAAHFBiAAAAABxwYAAADHBgISlAUCAAAAAZUFAgAAAAGlBQIAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACzBgKnBgIAAAABqQYBAAAAAaoGAQAAAAGrBkAAAAABrAYBAAAAAa4GAAAArgYCrwaAAAAAAbAGQAAAAAGxBgEAAAABswYBAAAAAbQGAQAAAAEDAAAADQAgRQAAwxIAIEYAAM4SACAjAAAADQAgBQAA5Q8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACA-AADOEgAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADaEQAgBwAA2xEAIAgAAN0RACAdAADmEQAgJQAA5BEAICYAANkRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAAzxIAIBKUBQIAAAABlQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCpwYCAAAAAagGAgAAAAGpBgEAAAABqgYBAAAAAasGQAAAAAGsBgEAAAABrgYAAACuBgKvBoAAAAABsAZAAAAAAbEGAQAAAAGzBgEAAAABtAYBAAAAARGUBQIAAAABlQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAAJEGAocGAgAAAAGIBgIAAAABiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAY0GEAAAAAGOBhAAAAABjwYQAAAAAZEGAQAAAAEFlAUCAAAAAaYFEAAAAAGnBRAAAAABqAUBAAAAAakFQAAAAAENlAUCAAAAAakFQAAAAAG1BQIAAAABngYBAAAAAaIGAQAAAAGjBgEAAAABpwYCAAAAAbUGAQAAAAG2BhAAAAABtwYBAAAAAbgGAQAAAAG6BgAAALoGArsGAQAAAAEJAwAA4Q4AIAgAAOMOACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABwgUBAAAAAb4GAQAAAAG_BgEAAAABAgAAAI0BACBFAADVEgAgIQcAANsRACAIAADdEQAgHQAA5hEAICUAAOQRACAmAADZEQAgJwAA3BEAICgAAN4RACApAADfEQAgKgAA4BEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDcAAO8RACA4AADwEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAADXEgAgIAMAANUPACAIAADYDwAgDAAA2g8AIBgAANcPACAcAADZDwAgHQAA2w8AIB4AANwPACAfAADdDwAgJQAA3g8AIJQFAgAAAAGVBQIAAAABqQVAAAAAAbQFQAAAAAHCBQEAAAABxQUBAAAAAccFAQAAAAHnBQAAAMcGAqsGQAAAAAGxBgEAAAABvwYBAAAAAcgGAQAAAAHJBgEAAAABygYBAAAAAcsGAQAAAAHMBgEAAAABzQYBAAAAAc4GAQAAAAHPBgEAAAAB0AYBAAAAAdEGAQAAAAHSBgEAAAAB0wYBAAAAAQIAAAAFACBFAADZEgAgDZQFAgAAAAGlBQIAAAABqQVAAAAAAbUFAgAAAAGeBgEAAAABogYBAAAAAaMGAQAAAAG1BgEAAAABtgYQAAAAAbcGAQAAAAG4BgEAAAABugYAAAC6BgK7BgEAAAABEpQFAgAAAAGVBQIAAAABpQUCAAAAAakFQAAAAAG0BUAAAAABtQUCAAAAAecFAAAAswYCqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABBJQFAgAAAAHcBQEAAAAB3gUBAAAAAeAFAQAAAAEDAAAACwAgRQAA1RIAIEYAAOASACALAAAACwAgAwAAyg4AIAgAAMwOACA-AADgEgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACHCBQEAvQoAIb4GAQCoCgAhvwYBAL0KACEJAwAAyg4AIAgAAMwOACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIcIFAQC9CgAhvgYBAKgKACG_BgEAvQoAIQMAAAANACBFAADXEgAgRgAA4xIAICMAAAANACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAOMSACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhAwAAAAMAIEUAANkSACBGAADmEgAgIgAAAAMAIAMAAPUOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAfAAD9DgAgJQAA_g4AID4AAOYSACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_BgEAqAoAIcgGAQCoCgAhyQYBAKgKACHKBgEAqAoAIcsGAQC9CgAhzAYBAL0KACHNBgEAvQoAIc4GAQC9CgAhzwYBAL0KACHQBgEAvQoAIdEGAQC9CgAh0gYBAL0KACHTBgEAvQoAISADAAD1DgAgCAAA-A4AIAwAAPoOACAYAAD3DgAgHAAA-Q4AIB0AAPsOACAeAAD8DgAgHwAA_Q4AICUAAP4OACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_BgEAqAoAIcgGAQCoCgAhyQYBAKgKACHKBgEAqAoAIcsGAQC9CgAhzAYBAL0KACHNBgEAvQoAIc4GAQC9CgAhzwYBAL0KACHQBgEAvQoAIdEGAQC9CgAh0gYBAL0KACHTBgEAvQoAIRCUBQIAAAABlQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAagGAgAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgMAAAANACBFAADPEgAgRgAA6hIAICMAAAANACAFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAOoSACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhCwMAAL8OACAFAADEDgAgCAAAwA4AIBQAAMEOACAVAADCDgAglAUCAAAAAZUFAgAAAAGpBUAAAAABswUCAAAAAbwGAQAAAAG9BgEAAAABAgAAAJABACBFAADrEgAgIAMAANUPACAFAADWDwAgCAAA2A8AIAwAANoPACAcAADZDwAgHQAA2w8AIB4AANwPACAfAADdDwAgJQAA3g8AIJQFAgAAAAGVBQIAAAABqQVAAAAAAbQFQAAAAAHCBQEAAAABxQUBAAAAAccFAQAAAAHnBQAAAMcGAqsGQAAAAAGxBgEAAAABvwYBAAAAAcgGAQAAAAHJBgEAAAABygYBAAAAAcsGAQAAAAHMBgEAAAABzQYBAAAAAc4GAQAAAAHPBgEAAAAB0AYBAAAAAdEGAQAAAAHSBgEAAAAB0wYBAAAAAQIAAAAFACBFAADtEgAgFwMAAJAOACAEAACPDgAgBwAAkQ4AIAgAAJMOACALAADgDgAgGQAAlA4AIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtQUCAAAAAecFAQAAAAH6BQEAAAABlAYBAAAAAagGAgAAAAHABkAAAAABwQYBAAAAAcIGAQAAAAHDBiAAAAABxAYBAAAAAcUGIAAAAAHHBgAAAMcGAgIAAAAJACBFAADvEgAgAwAAABcAIEUAAOsSACBGAADzEgAgDQAAABcAIAMAANINACAFAADXDQAgCAAA0w0AIBQAANQNACAVAADVDQAgPgAA8xIAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbMFAgCpCgAhvAYBAKgKACG9BgEAqAoAIQsDAADSDQAgBQAA1w0AIAgAANMNACAUAADUDQAgFQAA1Q0AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbMFAgCpCgAhvAYBAKgKACG9BgEAqAoAIQMAAAADACBFAADtEgAgRgAA9hIAICIAAAADACADAAD1DgAgBQAA9g4AIAgAAPgOACAMAAD6DgAgHAAA-Q4AIB0AAPsOACAeAAD8DgAgHwAA_Q4AICUAAP4OACA-AAD2EgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBwAAPkOACAdAAD7DgAgHgAA_A4AIB8AAP0OACAlAAD-DgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEDAAAABwAgRQAA7xIAIEYAAPkSACAZAAAABwAgAwAA5Q0AIAQAAOQNACAHAADmDQAgCAAA6A0AIAsAAN4OACAZAADpDQAgPgAA-RIAIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIagGAgCpCgAhwAZAAL4KACHBBgEAqAoAIcIGAQCoCgAhwwYgANsKACHEBgEAvQoAIcUGIADbCgAhxwYAAOINxwYiFwMAAOUNACAEAADkDQAgBwAA5g0AIAgAAOgNACALAADeDgAgGQAA6Q0AIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIagGAgCpCgAhwAZAAL4KACHBBgEAqAoAIcIGAQCoCgAhwwYgANsKACHEBgEAvQoAIcUGIADbCgAhxwYAAOINxwYiCwMAAL8OACAFAADEDgAgFAAAwQ4AIBUAAMIOACAWAADDDgAglAUCAAAAAZUFAgAAAAGpBUAAAAABswUCAAAAAbwGAQAAAAG9BgEAAAABAgAAAJABACBFAAD6EgAgCQMAAOEOACAFAADiDgAglAUCAAAAAZUFAgAAAAGpBUAAAAABqgUBAAAAAcIFAQAAAAG-BgEAAAABvwYBAAAAAQIAAACNAQAgRQAA_BIAICEFAADaEQAgBwAA2xEAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAA_hIAIBcDAACQDgAgBAAAjw4AIAcAAJEOACALAADgDgAgGAAAkg4AIBkAAJQOACCUBQIAAAABlQUCAAAAAaUFAgAAAAGoBQEAAAABqQVAAAAAAbUFAgAAAAHnBQEAAAAB-gUBAAAAAZQGAQAAAAGoBgIAAAABwAZAAAAAAcEGAQAAAAHCBgEAAAABwwYgAAAAAcQGAQAAAAHFBiAAAAABxwYAAADHBgICAAAACQAgRQAAgBMAICADAADVDwAgBQAA1g8AIAwAANoPACAYAADXDwAgHAAA2Q8AIB0AANsPACAeAADcDwAgHwAA3Q8AICUAAN4PACCUBQIAAAABlQUCAAAAAakFQAAAAAG0BUAAAAABwgUBAAAAAcUFAQAAAAHHBQEAAAAB5wUAAADHBgKrBkAAAAABsQYBAAAAAb8GAQAAAAHIBgEAAAAByQYBAAAAAcoGAQAAAAHLBgEAAAABzAYBAAAAAc0GAQAAAAHOBgEAAAABzwYBAAAAAdAGAQAAAAHRBgEAAAAB0gYBAAAAAdMGAQAAAAECAAAABQAgRQAAghMAIBCUBQIAAAABowUCAAAAAecFAAAApwYCiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAZEGAQAAAAGeBgEAAAABnwZAAAAAAaAGAQAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBgEAAAABpQYQAAAAAQSUBQIAAAAB3AUBAAAAAd4FAQAAAAHgBQEAAAABAwAAABcAIEUAAPoSACBGAACIEwAgDQAAABcAIAMAANINACAFAADXDQAgFAAA1A0AIBUAANUNACAWAADWDQAgPgAAiBMAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbMFAgCpCgAhvAYBAKgKACG9BgEAqAoAIQsDAADSDQAgBQAA1w0AIBQAANQNACAVAADVDQAgFgAA1g0AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbMFAgCpCgAhvAYBAKgKACG9BgEAqAoAIQMAAAALACBFAAD8EgAgRgAAixMAIAsAAAALACADAADKDgAgBQAAyw4AID4AAIsTACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIcIFAQC9CgAhvgYBAKgKACG_BgEAvQoAIQkDAADKDgAgBQAAyw4AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhwgUBAL0KACG-BgEAqAoAIb8GAQC9CgAhAwAAAA0AIEUAAP4SACBGAACOEwAgIwAAAA0AIAUAAOUPACAHAADmDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAAjhMAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEDAAAABwAgRQAAgBMAIEYAAJETACAZAAAABwAgAwAA5Q0AIAQAAOQNACAHAADmDQAgCwAA3g4AIBgAAOcNACAZAADpDQAgPgAAkRMAIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIagGAgCpCgAhwAZAAL4KACHBBgEAqAoAIcIGAQCoCgAhwwYgANsKACHEBgEAvQoAIcUGIADbCgAhxwYAAOINxwYiFwMAAOUNACAEAADkDQAgBwAA5g0AIAsAAN4OACAYAADnDQAgGQAA6Q0AIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG1BQIAqQoAIecFAQCoCgAh-gUBAKgKACGUBgEAqAoAIagGAgCpCgAhwAZAAL4KACHBBgEAqAoAIcIGAQCoCgAhwwYgANsKACHEBgEAvQoAIcUGIADbCgAhxwYAAOINxwYiAwAAAAMAIEUAAIITACBGAACUEwAgIgAAAAMAIAMAAPUOACAFAAD2DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAfAAD9DgAgJQAA_g4AID4AAJQTACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_BgEAqAoAIcgGAQCoCgAhyQYBAKgKACHKBgEAqAoAIcsGAQC9CgAhzAYBAL0KACHNBgEAvQoAIc4GAQC9CgAhzwYBAL0KACHQBgEAvQoAIdEGAQC9CgAh0gYBAL0KACHTBgEAvQoAISADAAD1DgAgBQAA9g4AIAwAAPoOACAYAAD3DgAgHAAA-Q4AIB0AAPsOACAeAAD8DgAgHwAA_Q4AICUAAP4OACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACG0BUAAvgoAIcIFAQC9CgAhxQUBAL0KACHHBQEAvQoAIecFAADiDccGIqsGQADyCwAhsQYBAL0KACG_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-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAKMTACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKgAA4BEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDcAAO8RACA4AADwEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAACkEwAgAwAAAA0AIEUAAKQTACBGAACoEwAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAAqBMAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEgAwAA1Q8AIAUAANYPACAIAADYDwAgDAAA2g8AIBgAANcPACAdAADbDwAgHgAA3A8AIB8AAN0PACAlAADeDwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAAKkTACAElAUCAAAAAdwFAQAAAAHhBUAAAAABkgYAAQAAAQMAAAADACBFAACpEwAgRgAArhMAICIAAAADACADAAD1DgAgBQAA9g4AIAgAAPgOACAMAAD6DgAgGAAA9w4AIB0AAPsOACAeAAD8DgAgHwAA_Q4AICUAAP4OACA-AACuEwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAdAAD7DgAgHgAA_A4AIB8AAP0OACAlAAD-DgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEGBAAA8gwAIJQFAgAAAAGpBUAAAAABtQUCAAAAAZQGAQAAAAGWBgAAAJYGAgIAAABdACBFAACvEwAgAwAAAFsAIEUAAK8TACBGAACzEwAgCAAAAFsAIAQAAOQMACA-AACzEwAglAUCAKkKACGpBUAAvgoAIbUFAgCpCgAhlAYBAKgKACGWBgAA4wyWBiIGBAAA5AwAIJQFAgCpCgAhqQVAAL4KACG1BQIAqQoAIZQGAQCoCgAhlgYAAOMMlgYiCwMAAL8OACAFAADEDgAgCAAAwA4AIBUAAMIOACAWAADDDgAglAUCAAAAAZUFAgAAAAGpBUAAAAABswUCAAAAAbwGAQAAAAG9BgEAAAABAgAAAJABACBFAAC0EwAgIQUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDcAAO8RACA4AADwEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAAC2EwAgIAMAANUPACAFAADWDwAgCAAA2A8AIBgAANcPACAcAADZDwAgHQAA2w8AIB4AANwPACAfAADdDwAgJQAA3g8AIJQFAgAAAAGVBQIAAAABqQVAAAAAAbQFQAAAAAHCBQEAAAABxQUBAAAAAccFAQAAAAHnBQAAAMcGAqsGQAAAAAGxBgEAAAABvwYBAAAAAcgGAQAAAAHJBgEAAAABygYBAAAAAcsGAQAAAAHMBgEAAAABzQYBAAAAAc4GAQAAAAHPBgEAAAAB0AYBAAAAAdEGAQAAAAHSBgEAAAAB0wYBAAAAAQIAAAAFACBFAAC4EwAgGgMAALsNACAEAAC5DQAgBgAAug0AIAcAALwNACALAAC9DQAgEAAAvg0AIBcAAL8NACCUBQIAAAABlQUCAAAAAaUFAgAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAALMGAqcGAgAAAAGoBgIAAAABqQYBAAAAAaoGAQAAAAGrBkAAAAABrAYBAAAAAa4GAAAArgYCrwaAAAAAAbAGQAAAAAGxBgEAAAABswYBAAAAAbQGAQAAAAECAAAAEgAgRQAAuhMAIAqUBQIAAAABqAUBAAAAAakFQAAAAAH_BQIAAAABgAYBAAAAAYEGEAAAAAGCBhAAAAABhAYAAACEBgKFBkAAAAABhgYBAAAAARoDAAC7DQAgBAAAuQ0AIAYAALoNACAHAAC8DQAgCwAAvQ0AIAwAAMANACAXAAC_DQAglAUCAAAAAZUFAgAAAAGlBQIAAAABqQVAAAAAAbQFQAAAAAG1BQIAAAAB5wUAAACzBgKnBgIAAAABqAYCAAAAAakGAQAAAAGqBgEAAAABqwZAAAAAAawGAQAAAAGuBgAAAK4GAq8GgAAAAAGwBkAAAAABsQYBAAAAAbMGAQAAAAG0BgEAAAABAgAAABIAIEUAAL0TACAKlAUCAAAAAaMFAgAAAAGoBQEAAAABqQVAAAAAAYAGAQAAAAGBBhAAAAABggYQAAAAAYQGAAAAhAYChQZAAAAAAYYGAQAAAAEDAAAAEAAgRQAAvRMAIEYAAMITACAcAAAAEAAgAwAAmQ0AIAQAAJcNACAGAACYDQAgBwAAmg0AIAsAAJsNACAMAACeDQAgFwAAnQ0AID4AAMITACCUBQIAqQoAIZUFAgCpCgAhpQUCAKILACGpBUAAvgoAIbQFQAC-CgAhtQUCAKkKACHnBQAAlg2zBiKnBgIAogsAIagGAgCpCgAhqQYBAKgKACGqBgEAqAoAIasGQAC-CgAhrAYBAKgKACGuBgAAlQ2uBiKvBoAAAAABsAZAAL4KACGxBgEAqAoAIbMGAQC9CgAhtAYBAL0KACEaAwAAmQ0AIAQAAJcNACAGAACYDQAgBwAAmg0AIAsAAJsNACAMAACeDQAgFwAAnQ0AIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIakFQAC-CgAhtAVAAL4KACG1BQIAqQoAIecFAACWDbMGIqcGAgCiCwAhqAYCAKkKACGpBgEAqAoAIaoGAQCoCgAhqwZAAL4KACGsBgEAqAoAIa4GAACVDa4GIq8GgAAAAAGwBkAAvgoAIbEGAQCoCgAhswYBAL0KACG0BgEAvQoAIRCUBQIAAAAB5wUAAACnBgKHBgIAAAABiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAZEGAQAAAAGeBgEAAAABnwZAAAAAAaAGAQAAAAGhBgEAAAABogYBAAAAAaMGAQAAAAGkBgEAAAABpQYQAAAAAQOUBQIAAAABogUCAAAAAaQFEAAAAAEDAAAAFwAgRQAAtBMAIEYAAMcTACANAAAAFwAgAwAA0g0AIAUAANcNACAIAADTDQAgFQAA1Q0AIBYAANYNACA-AADHEwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhswUCAKkKACG8BgEAqAoAIb0GAQCoCgAhCwMAANINACAFAADXDQAgCAAA0w0AIBUAANUNACAWAADWDQAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhswUCAKkKACG8BgEAqAoAIb0GAQCoCgAhAwAAAA0AIEUAALYTACBGAADKEwAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAAyhMAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEDAAAAAwAgRQAAuBMAIEYAAM0TACAiAAAAAwAgAwAA9Q4AIAUAAPYOACAIAAD4DgAgGAAA9w4AIBwAAPkOACAdAAD7DgAgHgAA_A4AIB8AAP0OACAlAAD-DgAgPgAAzRMAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhIAMAAPUOACAFAAD2DgAgCAAA-A4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAfAAD9DgAgJQAA_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-g8AIDgAAPsPACA-AADkEwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADaEQAgBwAA2xEAIAgAAN0RACAdAADmEQAgJQAA5BEAICYAANkRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAA5RMAIAMAAAANACBFAADlEwAgRgAA6RMAICMAAAANACAFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAOkTACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhCwMAAOkLACAEAADqCwAgGQAA6wsAICAAAOwLACCUBQIAAAABlQUCAAAAAakFQAAAAAGqBQEAAAABtAVAAAAAAbUFAgAAAAHzBQIAAAABAgAAAHIAIEUAAOoTACAgAwAA1Q8AIAUAANYPACAIAADYDwAgDAAA2g8AIBgAANcPACAcAADZDwAgHQAA2w8AIB4AANwPACAfAADdDwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAAOwTACAhBQAA2hEAIAcAANsRACAIAADdEQAgHQAA5hEAICYAANkRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAtAADjEQAgLgAA5REAIC8AAOcRACAwAADoEQAgMQAA6REAIDIAAOoRACAzAADrEQAgNAAA7BEAIDUAAO0RACA2AADuEQAgNwAA7xEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAAO4TACAGlAUCAAAAAZUFAgAAAAGpBUAAAAABqgUBAAAAAbQFQAAAAAG1BQIAAAABCpQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB3gUBAAAAAd8FBAAAAAHwBSAAAAAB8QUCAAAAAfIFAQAAAAEDAAAAAwAgRQAA7BMAIEYAAPQTACAiAAAAAwAgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAfAAD9DgAgPgAA9BMAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhIAMAAPUOACAFAAD2DgAgCAAA-A4AIAwAAPoOACAYAAD3DgAgHAAA-Q4AIB0AAPsOACAeAAD8DgAgHwAA_Q4AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhAwAAAA0AIEUAAO4TACBGAAD3EwAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAA9xMAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEDAAAAcAAgRQAA6hMAIEYAAPoTACANAAAAcAAgAwAAzQsAIAQAAM4LACAZAADPCwAgIAAAywsAID4AAPoTACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAhtQUCAKILACHzBQIAogsAIQsDAADNCwAgBAAAzgsAIBkAAM8LACAgAADLCwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAIbUFAgCiCwAh8wUCAKILACELAwAA6QsAIAQAAOoLACAgAADsCwAgIQAA6AsAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAABtQUCAAAAAfMFAgAAAAECAAAAcgAgRQAA-xMAICEFAADaEQAgBwAA2xEAIAgAAN0RACAdAADmEQAgJQAA5BEAICYAANkRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAtAADjEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAA_RMAIAQ-AAEAAAGUBQIAAAABqQVAAAAAAe4FAgAAAAEDAAAAcAAgRQAA-xMAIEYAAIIUACANAAAAcAAgAwAAzQsAIAQAAM4LACAgAADLCwAgIQAAzAsAID4AAIIUACCUBQIAqQoAIZUFAgCpCgAhqQVAAL4KACGqBQEAqAoAIbQFQAC-CgAhtQUCAKILACHzBQIAogsAIQsDAADNCwAgBAAAzgsAICAAAMsLACAhAADMCwAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAIbUFAgCiCwAh8wUCAKILACEDAAAADQAgRQAA_RMAIEYAAIUUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACA-AACFFAAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAIQ0DAADDCwAgIgAAxAsAIJQFAgAAAAGVBQIAAAABqQVAAAAAAaoFAQAAAAG0BUAAAAAB3gUBAAAAAd8FBAAAAAHvBQIAAAAB8AUgAAAAAfEFAgAAAAHyBQEAAAABAgAAAHkAIEUAAIYUACADAAAAdwAgRQAAhhQAIEYAAIoUACAPAAAAdwAgAwAAtAsAICIAALULACA-AACKFAAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhqgUBAKgKACG0BUAAvgoAId4FAQC9CgAh3wUEAJYLACHvBQIAogsAIfAFIADbCgAh8QUCAKILACHyBQEAvQoAIQ0DAAC0CwAgIgAAtQsAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIaoFAQCoCgAhtAVAAL4KACHeBQEAvQoAId8FBACWCwAh7wUCAKILACHwBSAA2woAIfEFAgCiCwAh8gUBAL0KACEhBQAA2hEAIAcAANsRACAIAADdEQAgJQAA5BEAICYAANkRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAtAADjEQAgLgAA5REAIC8AAOcRACAwAADoEQAgMQAA6REAIDIAAOoRACAzAADrEQAgNAAA7BEAIDUAAO0RACA2AADuEQAgNwAA7xEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAAIsUACAgAwAA1Q8AIAUAANYPACAIAADYDwAgDAAA2g8AIBgAANcPACAcAADZDwAgHgAA3A8AIB8AAN0PACAlAADeDwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAAI0UACADAAAADQAgRQAAixQAIEYAAJEUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACA-AACRFAAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAIQMAAAADACBFAACNFAAgRgAAlBQAICIAAAADACADAAD1DgAgBQAA9g4AIAgAAPgOACAMAAD6DgAgGAAA9w4AIBwAAPkOACAeAAD8DgAgHwAA_Q4AICUAAP4OACA-AACUFAAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHgAA_A4AIB8AAP0OACAlAAD-DgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEgAwAA1Q8AIAUAANYPACAIAADYDwAgDAAA2g8AIBgAANcPACAcAADZDwAgHQAA2w8AIB8AAN0PACAlAADeDwAglAUCAAAAAZUFAgAAAAGpBUAAAAABtAVAAAAAAcIFAQAAAAHFBQEAAAABxwUBAAAAAecFAAAAxwYCqwZAAAAAAbEGAQAAAAG_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAAJUUACADAAAAAwAgRQAAlRQAIEYAAJkUACAiAAAAAwAgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB8AAP0OACAlAAD-DgAgPgAAmRQAIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhIAMAAPUOACAFAAD2DgAgCAAA-A4AIAwAAPoOACAYAAD3DgAgHAAA-Q4AIB0AAPsOACAfAAD9DgAgJQAA_g4AIJQFAgCpCgAhlQUCAKkKACGpBUAAvgoAIbQFQAC-CgAhwgUBAL0KACHFBQEAvQoAIccFAQC9CgAh5wUAAOINxwYiqwZAAPILACGxBgEAvQoAIb8GAQCoCgAhyAYBAKgKACHJBgEAqAoAIcoGAQCoCgAhywYBAL0KACHMBgEAvQoAIc0GAQC9CgAhzgYBAL0KACHPBgEAvQoAIdAGAQC9CgAh0QYBAL0KACHSBgEAvQoAIdMGAQC9CgAhIQUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDcAAO8RACA4AADwEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAACaFAAgAwAAAA0AIEUAAJoUACBGAACeFAAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAAnhQAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA2hEAIAcAANsRACAIAADdEQAgHQAA5hEAICUAAOQRACAmAADZEQAgJwAA3BEAICgAAN4RACApAADfEQAgKgAA4BEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMQAA6REAIDIAAOoRACAzAADrEQAgNAAA7BEAIDUAAO0RACA2AADuEQAgNwAA7xEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAAJ8UACADAAAADQAgRQAAnxQAIEYAAKMUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACA-AACjFAAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMQAA9A8AIDIAAPUPACAzAAD2DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADaEQAgBwAA2xEAIAgAAN0RACAdAADmEQAgJQAA5BEAICYAANkRACAnAADcEQAgKAAA3hEAICkAAN8RACAqAADgEQAgKwAA4REAICwAAOIRACAtAADjEQAgLgAA5REAIC8AAOcRACAwAADoEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAgOAAA8BEAIJQFAgAAAAGcBgEAAAABnQYBAAAAAdQGIAAAAAHVBgIAAAAB1gYgAAAAAdcGAgAAAAHYBiAAAAAB2QYCAAAAAdoGAgAAAAECAAAAAQAgRQAApBQAIAMAAAANACBFAACkFAAgRgAAqBQAICMAAAANACAFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AID4AAKgUACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAISEFAADlDwAgBwAA5g8AIAgAAOgPACAdAADxDwAgJQAA7w8AICYAAOQPACAnAADnDwAgKAAA6Q8AICkAAOoPACAqAADrDwAgKwAA7A8AICwAAO0PACAtAADuDwAgLgAA8A8AIC8AAPIPACAwAADzDwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgOAAA-w8AIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDcAAO8RACA4AADwEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAACpFAAgAwAAAA0AIEUAAKkUACBGAACtFAAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAgPgAArRQAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDcAAPoPACA4AAD7DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA2hEAIAcAANsRACAIAADdEQAgHQAA5hEAICUAAOQRACAmAADZEQAgJwAA3BEAICgAAN4RACApAADfEQAgKgAA4BEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgNAAA7BEAIDUAAO0RACA2AADuEQAgNwAA7xEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAAK4UACADAAAADQAgRQAArhQAIEYAALIUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgNAAA9w8AIDUAAPgPACA2AAD5DwAgNwAA-g8AIDgAAPsPACA-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_BgEAAAAByAYBAAAAAckGAQAAAAHKBgEAAAABywYBAAAAAcwGAQAAAAHNBgEAAAABzgYBAAAAAc8GAQAAAAHQBgEAAAAB0QYBAAAAAdIGAQAAAAHTBgEAAAABAgAAAAUAIEUAAL8UACADAAAADQAgRQAAvRQAIEYAAMMUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNwAA-g8AIDgAAPsPACA-AADDFAAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNwAA-g8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAIQMAAAADACBFAAC_FAAgRgAAxhQAICIAAAADACADAAD1DgAgBQAA9g4AIAgAAPgOACAMAAD6DgAgGAAA9w4AIBwAAPkOACAdAAD7DgAgHgAA_A4AICUAAP4OACA-AADGFAAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEgAwAA9Q4AIAUAAPYOACAIAAD4DgAgDAAA-g4AIBgAAPcOACAcAAD5DgAgHQAA-w4AIB4AAPwOACAlAAD-DgAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhtAVAAL4KACHCBQEAvQoAIcUFAQC9CgAhxwUBAL0KACHnBQAA4g3HBiKrBkAA8gsAIbEGAQC9CgAhvwYBAKgKACHIBgEAqAoAIckGAQCoCgAhygYBAKgKACHLBgEAvQoAIcwGAQC9CgAhzQYBAL0KACHOBgEAvQoAIc8GAQC9CgAh0AYBAL0KACHRBgEAvQoAIdIGAQC9CgAh0wYBAL0KACEhBQAA2hEAIAcAANsRACAIAADdEQAgHQAA5hEAICUAAOQRACAmAADZEQAgJwAA3BEAICgAAN4RACApAADfEQAgKgAA4BEAICsAAOERACAsAADiEQAgLQAA4xEAIC4AAOURACAvAADnEQAgMAAA6BEAIDEAAOkRACAyAADqEQAgMwAA6xEAIDQAAOwRACA1AADtEQAgNgAA7hEAIDgAAPARACCUBQIAAAABnAYBAAAAAZ0GAQAAAAHUBiAAAAAB1QYCAAAAAdYGIAAAAAHXBgIAAAAB2AYgAAAAAdkGAgAAAAHaBgIAAAABAgAAAAEAIEUAAMcUACADAAAADQAgRQAAxxQAIEYAAMsUACAjAAAADQAgBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDgAAPsPACA-AADLFAAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEhBQAA5Q8AIAcAAOYPACAIAADoDwAgHQAA8Q8AICUAAO8PACAmAADkDwAgJwAA5w8AICgAAOkPACApAADqDwAgKgAA6w8AICsAAOwPACAsAADtDwAgLQAA7g8AIC4AAPAPACAvAADyDwAgMAAA8w8AIDEAAPQPACAyAAD1DwAgMwAA9g8AIDQAAPcPACA1AAD4DwAgNgAA-Q8AIDgAAPsPACCUBQIAqQoAIZwGAQCoCgAhnQYBAKgKACHUBiAA2woAIdUGAgCpCgAh1gYgANsKACHXBgIAqQoAIdgGIADbCgAh2QYCAKkKACHaBgIAqQoAIQsDAAC_DgAgBQAAxA4AIAgAAMAOACAUAADBDgAgFgAAww4AIJQFAgAAAAGVBQIAAAABqQVAAAAAAbMFAgAAAAG8BgEAAAABvQYBAAAAAQIAAACQAQAgRQAAzBQAIAOUBQIAAAABowUCAAAAAaQFEAAAAAEDAAAAFwAgRQAAzBQAIEYAANEUACANAAAAFwAgAwAA0g0AIAUAANcNACAIAADTDQAgFAAA1A0AIBYAANYNACA-AADRFAAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhswUCAKkKACG8BgEAqAoAIb0GAQCoCgAhCwMAANINACAFAADXDQAgCAAA0w0AIBQAANQNACAWAADWDQAglAUCAKkKACGVBQIAqQoAIakFQAC-CgAhswUCAKkKACG8BgEAqAoAIb0GAQCoCgAhGAQAANEMACAJAADQDAAgCgAA0gwAIAsAANMMACANAADUDAAgEAAA1QwAIJQFAgAAAAGVBQIAAAABpQUCAAAAAagFAQAAAAGpBUAAAAABtAVAAAAAAbUFAgAAAAHnBQAAAJEGAocGAgAAAAGIBgIAAAABiQYQAAAAAYoGEAAAAAGLBhAAAAABjAYQAAAAAY0GEAAAAAGOBhAAAAABjwYQAAAAAZEGAQAAAAECAAAAHAAgRQAA0hQAIAcLAADNCgAglAUCAAAAAaUFAgAAAAGmBRAAAAABpwUQAAAAAagFAQAAAAGpBUAAAAABAgAAADgAIEUAANQUACADAAAAGgAgRQAA0hQAIEYAANgUACAaAAAAGgAgBAAAmwwAIAkAAJoMACAKAACcDAAgCwAAnQwAIA0AAJ4MACAQAACfDAAgPgAA2BQAIJQFAgCpCgAhlQUCAKkKACGlBQIAogsAIagFAQC9CgAhqQVAAL4KACG0BUAAvgoAIbUFAgCpCgAh5wUAAJkMkQYihwYCAKILACGIBgIAogsAIYkGEACyCgAhigYQALIKACGLBhAAsgoAIYwGEACyCgAhjQYQAJgMACGOBhAAsgoAIY8GEACyCgAhkQYBAL0KACEYBAAAmwwAIAkAAJoMACAKAACcDAAgCwAAnQwAIA0AAJ4MACAQAACfDAAglAUCAKkKACGVBQIAqQoAIaUFAgCiCwAhqAUBAL0KACGpBUAAvgoAIbQFQAC-CgAhtQUCAKkKACHnBQAAmQyRBiKHBgIAogsAIYgGAgCiCwAhiQYQALIKACGKBhAAsgoAIYsGEACyCgAhjAYQALIKACGNBhAAmAwAIY4GEACyCgAhjwYQALIKACGRBgEAvQoAIQMAAAA2ACBFAADUFAAgRgAA2xQAIAkAAAA2ACALAAC_CgAgPgAA2xQAIJQFAgCpCgAhpQUCAKkKACGmBRAAsgoAIacFEACyCgAhqAUBAL0KACGpBUAAvgoAIQcLAAC_CgAglAUCAKkKACGlBQIAqQoAIaYFEACyCgAhpwUQALIKACGoBQEAvQoAIakFQAC-CgAhIQUAANoRACAHAADbEQAgCAAA3REAIB0AAOYRACAlAADkEQAgJgAA2REAICcAANwRACAoAADeEQAgKQAA3xEAICoAAOARACArAADhEQAgLAAA4hEAIC0AAOMRACAuAADlEQAgLwAA5xEAIDAAAOgRACAxAADpEQAgMgAA6hEAIDMAAOsRACA0AADsEQAgNQAA7REAIDYAAO4RACA3AADvEQAglAUCAAAAAZwGAQAAAAGdBgEAAAAB1AYgAAAAAdUGAgAAAAHWBiAAAAAB1wYCAAAAAdgGIAAAAAHZBgIAAAAB2gYCAAAAAQIAAAABACBFAADcFAAgAwAAAA0AIEUAANwUACBGAADgFAAgIwAAAA0AIAUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAgPgAA4BQAIJQFAgCpCgAhnAYBAKgKACGdBgEAqAoAIdQGIADbCgAh1QYCAKkKACHWBiAA2woAIdcGAgCpCgAh2AYgANsKACHZBgIAqQoAIdoGAgCpCgAhIQUAAOUPACAHAADmDwAgCAAA6A8AIB0AAPEPACAlAADvDwAgJgAA5A8AICcAAOcPACAoAADpDwAgKQAA6g8AICoAAOsPACArAADsDwAgLAAA7Q8AIC0AAO4PACAuAADwDwAgLwAA8g8AIDAAAPMPACAxAAD0DwAgMgAA9Q8AIDMAAPYPACA0AAD3DwAgNQAA-A8AIDYAAPkPACA3AAD6DwAglAUCAKkKACGcBgEAqAoAIZ0GAQCoCgAh1AYgANsKACHVBgIAqQoAIdYGIADbCgAh1wYCAKkKACHYBiAA2woAIdkGAgCpCgAh2gYCAKkKACEZBYsBAweOAQQIkgEFDgAwHaoBGSWoARwmBgInkQEGKJYBIimaASMqmwEHK58BJCyjASUtpwEmLqkBHS-sAScwrgEoMbABKTKyASoztAErNLYBLDW6AS02vQEbN8EBLjjDAS8LAwABBQoDCFoFDGQHDgAhGFkPHF4WHWgZHm0aH28bJXMcCAMAAQQAAgcMBAhRBQtPBg4AFRhQDxlVFAQDDgEFDwMIEwUOABMJAxUBBAACBhQDBxYECxgGDEoHDgASEEUJF0kRBwMAAQU_AwgZBQ4AEBQdBxU5DBY9DwgEAAIJHgUKHwELIAYNJAgOAA4QLAkTMAsCDAAHDwAJBAklBQwmBw0nCA4ACgENKAACDAAHEgAMAwsABg4ADRExCwERMgADDTMAEDQAEzUAAwQAAgYAAws-BgUFRAAIQAAUQQAVQgAWQwABCQAFAhBLABdMAAIFTQAITgABBgADAwhXABhWABlYAAMEAAIOABgbYhcBGgAWARtjAAIDaQEEAAIBBAACAgMAAQQAAgYDAAEEdgIOACAZeh0gdBwhdRwEAwABDgAfInscJH8eASMAHQEkgAEAAhmCAQAhgQEACAWDAQAIhQEADIcBABiEAQAchgEAHYgBAB6JAQAligEAAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAQEDAAEBAwABAQMAAQEDAAERBcUBAAfGAQAIyAEAHdEBACXPAQAmxAEAJ8cBACjJAQApygEAKssBACvMAQAszQEALc4BAC7QAQA10gEANtMBADfUAQAAAAAFDgA1SwA2TAA3TQA4TgA5AAAAAAAFDgA1SwA2TAA3TQA4TgA5AQMAAQEDAAEFDgA-SwA_TABATQBBTgBCAAAAAAAFDgA-SwA_TABATQBBTgBCBAMAAQQAAgeLAgQLjAIGBAMAAQQAAgeSAgQLkwIGBQ4AR0sASEwASU0ASk4ASwAAAAAABQ4AR0sASEwASU0ASk4ASwEGAAMBBgADBQ4AUEsAUUwAUk0AU04AVAAAAAAABQ4AUEsAUUwAUk0AU04AVAEDuwIBAQPBAgEFDgBZSwBaTABbTQBcTgBdAAAAAAAFDgBZSwBaTABbTQBcTgBdAQMAAQEDAAEFDgBiSwBjTABkTQBlTgBmAAAAAAAFDgBiSwBjTABkTQBlTgBmAwQAAgYAAwvpAgYDBAACBgADC-8CBgUOAGtLAGxMAG1NAG5OAG8AAAAAAAUOAGtLAGxMAG1NAG5OAG8FA4IDAQQAAgaBAwMHgwMEC4QDBgUDiwMBBAACBooDAweMAwQLjQMGBQ4AdEsAdUwAdk0Ad04AeAAAAAAABQ4AdEsAdUwAdk0Ad04AeAIJnwMFDKADBwIJpgMFDKcDBwUOAH1LAH5MAH9NAIABTgCBAQAAAAAABQ4AfUsAfkwAf00AgAFOAIEBAQkABQEJAAUFDgCGAUsAhwFMAIgBTQCJAU4AigEAAAAAAAUOAIYBSwCHAUwAiAFNAIkBTgCKAQEDAAEBAwABBQ4AjwFLAJABTACRAU0AkgFOAJMBAAAAAAAFDgCPAUsAkAFMAJEBTQCSAU4AkwEBAwABAQMAAQUOAJgBSwCZAUwAmgFNAJsBTgCcAQAAAAAABQ4AmAFLAJkBTACaAU0AmwFOAJwBAQQAAgEEAAIFDgChAUsAogFMAKMBTQCkAU4ApQEAAAAAAAUOAKEBSwCiAUwAowFNAKQBTgClAQEaABYBGgAWBQ4AqgFLAKsBTACsAU0ArQFOAK4BAAAAAAAFDgCqAUsAqwFMAKwBTQCtAU4ArgEEBAACCacEBQqoBAELqQQGBAQAAgmvBAUKsAQBC7EEBgUOALMBSwC0AUwAtQFNALYBTgC3AQAAAAAABQ4AswFLALQBTAC1AU0AtgFOALcBAgwABw8ACQIMAAcPAAkFDgC8AUsAvQFMAL4BTQC_AU4AwAEAAAAAAAUOALwBSwC9AUwAvgFNAL8BTgDAAQEDAAEBAwABBQ4AxQFLAMYBTADHAU0AyAFOAMkBAAAAAAAFDgDFAUsAxgFMAMcBTQDIAU4AyQEBAwABAQMAAQUOAM4BSwDPAUwA0AFNANEBTgDSAQAAAAAABQ4AzgFLAM8BTADQAU0A0QFOANIBAQMAAQEDAAEFDgDXAUsA2AFMANkBTQDaAU4A2wEAAAAAAAUOANcBSwDYAUwA2QFNANoBTgDbAQAAAAUOAOEBSwDiAUwA4wFNAOQBTgDlAQAAAAAABQ4A4QFLAOIBTADjAU0A5AFOAOUBAwMAAQS1BQIgtAUcAwMAAQS8BQIguwUcBQ4A6gFLAOsBTADsAU0A7QFOAO4BAAAAAAAFDgDqAUsA6wFMAOwBTQDtAU4A7gECAwABIs4FHAIDAAEi1AUcBQ4A8wFLAPQBTAD1AU0A9gFOAPcBAAAAAAAFDgDzAUsA9AFMAPUBTQD2AU4A9wEBIwAdASMAHQUOAPwBSwD9AUwA_gFNAP8BTgCAAgAAAAAABQ4A_AFLAP0BTAD-AU0A_wFOAIACAgP8BQEEAAICA4IGAQQAAgUOAIUCSwCGAkwAhwJNAIgCTgCJAgAAAAAABQ4AhQJLAIYCTACHAk0AiAJOAIkCAQQAAgEEAAIFDgCOAksAjwJMAJACTQCRAk4AkgIAAAAAAAUOAI4CSwCPAkwAkAJNAJECTgCSAgEDAAEBAwABBQ4AlwJLAJgCTACZAk0AmgJOAJsCAAAAAAAFDgCXAksAmAJMAJkCTQCaAk4AmwIBAwABAQMAAQUOAKACSwChAkwAogJNAKMCTgCkAgAAAAAABQ4AoAJLAKECTACiAk0AowJOAKQCAQMAAQEDAAEFDgCpAksAqgJMAKsCTQCsAk4ArQIAAAAAAAUOAKkCSwCqAkwAqwJNAKwCTgCtAgEDAAEBAwABBQ4AsgJLALMCTAC0Ak0AtQJOALYCAAAAAAAFDgCyAksAswJMALQCTQC1Ak4AtgIBAwABAQMAAQUOALsCSwC8AkwAvQJNAL4CTgC_AgAAAAAABQ4AuwJLALwCTAC9Ak0AvgJOAL8CAQMAAQEDAAEFDgDEAksAxQJMAMYCTQDHAk4AyAIAAAAAAAUOAMQCSwDFAkwAxgJNAMcCTgDIAgEDAAEBAwABBQ4AzQJLAM4CTADPAk0A0AJOANECAAAAAAAFDgDNAksAzgJMAM8CTQDQAk4A0QICAwABBAACAgMAAQQAAgUOANYCSwDXAkwA2AJNANkCTgDaAgAAAAAABQ4A1gJLANcCTADYAk0A2QJOANoCAQMAAQEDAAEFDgDfAksA4AJMAOECTQDiAk4A4wIAAAAAAAUOAN8CSwDgAkwA4QJNAOICTgDjAgELAAYBCwAGBQ4A6AJLAOkCTADqAk0A6wJOAOwCAAAAAAAFDgDoAksA6QJMAOoCTQDrAk4A7AICDAAHEgAMAgwABxIADAUOAPECSwDyAkwA8wJNAPQCTgD1AgAAAAAABQ4A8QJLAPICTADzAk0A9AJOAPUCAQMAAQEDAAEFDgD6AksA-wJMAPwCTQD9Ak4A_gIAAAAAAAUOAPoCSwD7AkwA_AJNAP0CTgD-AjkCATrVAQE71wEBPNgBAT3ZAQE_2wEBQN0BMUHeATJC4AEBQ-IBMUTjATNH5AEBSOUBAUnmATFP6QE0UOoBOlHrAQJS7AECU-0BAlTuAQJV7wECVvEBAlfzATFY9AE7WfYBAlr4ATFb-QE8XPoBAl37AQJe_AExX_8BPWCAAkNhgQIDYoICA2ODAgNkhAIDZYUCA2aHAgNniQIxaIoCRGmOAgNqkAIxa5ECRWyUAgNtlQIDbpYCMW-ZAkZwmgJMcZsCFHKcAhRznQIUdJ4CFHWfAhR2oQIUd6MCMXikAk15pgIUeqgCMXupAk58qgIUfasCFH6sAjF_rwJPgAGwAlWBAbECBIIBsgIEgwGzAgSEAbQCBIUBtQIEhgG3AgSHAbkCMYgBugJWiQG9AgSKAb8CMYsBwAJXjAHCAgSNAcMCBI4BxAIxjwHHAliQAcgCXpEByQIGkgHKAgaTAcsCBpQBzAIGlQHNAgaWAc8CBpcB0QIxmAHSAl-ZAdQCBpoB1gIxmwHXAmCcAdgCBp0B2QIGngHaAjGfAd0CYaAB3gJnoQHfAg-iAeACD6MB4QIPpAHiAg-lAeMCD6YB5QIPpwHnAjGoAegCaKkB6wIPqgHtAjGrAe4CaawB8AIPrQHxAg-uAfICMa8B9QJqsAH2AnCxAfcCBbIB-AIFswH5AgW0AfoCBbUB-wIFtgH9AgW3Af8CMbgBgANxuQGGAwW6AYgDMbsBiQNyvAGOAwW9AY8DBb4BkAMxvwGTA3PAAZQDecEBlQMJwgGWAwnDAZcDCcQBmAMJxQGZAwnGAZsDCccBnQMxyAGeA3rJAaIDCcoBpAMxywGlA3vMAagDCc0BqQMJzgGqAzHPAa0DfNABrgOCAdEBrwMR0gGwAxHTAbEDEdQBsgMR1QGzAxHWAbUDEdcBtwMx2AG4A4MB2QG6AxHaAbwDMdsBvQOEAdwBvgMR3QG_AxHeAcADMd8BwwOFAeABxAOLAeEBxQMi4gHGAyLjAccDIuQByAMi5QHJAyLmAcsDIucBzQMx6AHOA4wB6QHQAyLqAdIDMesB0wONAewB1AMi7QHVAyLuAdYDMe8B2QOOAfAB2gOUAfEB2wMj8gHcAyPzAd0DI_QB3gMj9QHfAyP2AeEDI_cB4wMx-AHkA5UB-QHmAyP6AegDMfsB6QOWAfwB6gMj_QHrAyP-AewDMf8B7wOXAYAC8AOdAYEC8QMWggLyAxaDAvMDFoQC9AMWhQL1AxaGAvcDFocC-QMxiAL6A54BiQL8AxaKAv4DMYsC_wOfAYwCgAQWjQKBBBaOAoIEMY8ChQSgAZAChgSmAZEChwQXkgKIBBeTAokEF5QCigQXlQKLBBeWAo0EF5cCjwQxmAKQBKcBmQKSBBeaApQEMZsClQSoAZwClgQXnQKXBBeeApgEMZ8CmwSpAaACnASvAaECnQQHogKeBAejAp8EB6QCoAQHpQKhBAemAqMEB6cCpQQxqAKmBLABqQKrBAeqAq0EMasCrgSxAawCsgQHrQKzBAeuArQEMa8CtwSyAbACuAS4AbECuQQIsgK6BAizArsECLQCvAQItQK9BAi2Ar8ECLcCwQQxuALCBLkBuQLEBAi6AsYEMbsCxwS6AbwCyAQIvQLJBAi-AsoEMb8CzQS7AcACzgTBAcECzwQkwgLQBCTDAtEEJMQC0gQkxQLTBCTGAtUEJMcC1wQxyALYBMIByQLaBCTKAtwEMcsC3QTDAcwC3gQkzQLfBCTOAuAEMc8C4wTEAdAC5ATKAdEC5QQl0gLmBCXTAucEJdQC6AQl1QLpBCXWAusEJdcC7QQx2ALuBMsB2QLwBCXaAvIEMdsC8wTMAdwC9AQl3QL1BCXeAvYEMd8C-QTNAeAC-gTTAeEC-wQm4gL8BCbjAv0EJuQC_gQm5QL_BCbmAoEFJucCgwUx6AKEBdQB6QKGBSbqAogFMesCiQXVAewCigUm7QKLBSbuAowFMe8CjwXWAfACkAXcAfECkgXdAfICkwXdAfMClgXdAfQClwXdAfUCmAXdAfYCmgXdAfcCnAUx-AKdBd4B-QKfBd0B-gKhBTH7AqIF3wH8AqMF3QH9AqQF3QH-AqUFMf8CqAXgAYADqQXmAYEDqgUcggOrBRyDA6wFHIQDrQUchQOuBRyGA7AFHIcDsgUxiAOzBecBiQO3BRyKA7kFMYsDugXoAYwDvQUcjQO-BRyOA78FMY8DwgXpAZADwwXvAZEDxAUdkgPFBR2TA8YFHZQDxwUdlQPIBR2WA8oFHZcDzAUxmAPNBfABmQPQBR2aA9IFMZsD0wXxAZwD1QUdnQPWBR2eA9cFMZ8D2gXyAaAD2wX4AaED3AUeogPdBR6jA94FHqQD3wUepQPgBR6mA-IFHqcD5AUxqAPlBfkBqQPnBR6qA-kFMasD6gX6AawD6wUerQPsBR6uA-0FMa8D8AX7AbAD8QWBArED8gUZsgPzBRmzA_QFGbQD9QUZtQP2BRm2A_gFGbcD-gUxuAP7BYICuQP-BRm6A4AGMbsDgQaDArwDgwYZvQOEBhm-A4UGMb8DiAaEAsADiQaKAsEDigYawgOLBhrDA4wGGsQDjQYaxQOOBhrGA5AGGscDkgYxyAOTBosCyQOVBhrKA5cGMcsDmAaMAswDmQYazQOaBhrOA5sGMc8DngaNAtADnwaTAtEDoQYn0gOiBifTA6QGJ9QDpQYn1QOmBifWA6gGJ9cDqgYx2AOrBpQC2QOtBifaA68GMdsDsAaVAtwDsQYn3QOyBifeA7MGMd8DtgaWAuADtwacAuEDuQYo4gO6BijjA7wGKOQDvQYo5QO-BijmA8AGKOcDwgYx6APDBp0C6QPFBijqA8cGMesDyAaeAuwDyQYo7QPKBijuA8sGMe8DzgafAvADzwalAvED0QYp8gPSBinzA9QGKfQD1QYp9QPWBin2A9gGKfcD2gYx-APbBqYC-QPdBin6A98GMfsD4AanAvwD4QYp_QPiBin-A-MGMf8D5gaoAoAE5wauAoEE6QYqggTqBiqDBOwGKoQE7QYqhQTuBiqGBPAGKocE8gYxiATzBq8CiQT1BiqKBPcGMYsE-AawAowE-QYqjQT6BiqOBPsGMY8E_gaxApAE_wa3ApEEgQcrkgSCByuTBIQHK5QEhQcrlQSGByuWBIgHK5cEigcxmASLB7gCmQSNByuaBI8HMZsEkAe5ApwEkQcrnQSSByueBJMHMZ8Elge6AqAElwfAAqEEmActogSZBy2jBJoHLaQEmwctpQScBy2mBJ4HLacEoAcxqAShB8ECqQSjBy2qBKUHMasEpgfCAqwEpwctrQSoBy2uBKkHMa8ErAfDArAErQfJArEErwcssgSwByyzBLIHLLQEswcstQS0Byy2BLYHLLcEuAcxuAS5B8oCuQS7Byy6BL0HMbsEvgfLArwEvwcsvQTAByy-BMEHMb8ExAfMAsAExQfSAsEExgcbwgTHBxvDBMgHG8QEyQcbxQTKBxvGBMwHG8cEzgcxyATPB9MCyQTRBxvKBNMHMcsE1AfUAswE1QcbzQTWBxvOBNcHMc8E2gfVAtAE2wfbAtEE3Acu0gTdBy7TBN4HLtQE3wcu1QTgBy7WBOIHLtcE5Acx2ATlB9wC2QTnBy7aBOkHMdsE6gfdAtwE6wcu3QTsBy7eBO0HMd8E8AfeAuAE8QfkAuEE8gcM4gTzBwzjBPQHDOQE9QcM5QT2BwzmBPgHDOcE-gcx6AT7B-UC6QT9BwzqBP8HMesEgAjmAuwEgQgM7QSCCAzuBIMIMe8EhgjnAvAEhwjtAvEEiAgL8gSJCAvzBIoIC_QEiwgL9QSMCAv2BI4IC_cEkAgx-ASRCO4C-QSTCAv6BJUIMfsElgjvAvwElwgL_QSYCAv-BJkIMf8EnAjwAoAFnQj2AoEFnwgvggWgCC-DBaIIL4QFowgvhQWkCC-GBaYIL4cFqAgxiAWpCPcCiQWrCC-KBa0IMYsFrgj4AowFrwgvjQWwCC-OBbEIMY8FtAj5ApAFtQj_Ag"
}
config.compilerWasm = {
getRuntime: async () => require('./query_compiler_fast_bg.js'),
diff --git a/packages/db/generated/prisma/index-browser.js b/packages/db/generated/prisma/index-browser.js
index 28c56bc4..63b16585 100644
--- a/packages/db/generated/prisma/index-browser.js
+++ b/packages/db/generated/prisma/index-browser.js
@@ -413,6 +413,7 @@ exports.Prisma.CommunicationScalarFieldEnum = {
channel: 'channel',
direction: 'direction',
status: 'status',
+ provider: 'provider',
body: 'body',
callDuration: 'callDuration',
twilioSid: 'twilioSid',
@@ -441,6 +442,18 @@ exports.Prisma.TwilioSettingsScalarFieldEnum = {
templates: 'templates'
};
+exports.Prisma.TelnyxSettingsScalarFieldEnum = {
+ id: 'id',
+ userId: 'userId',
+ apiKey: 'apiKey',
+ accountSid: 'accountSid',
+ phoneNumber: 'phoneNumber',
+ texmlApplicationId: 'texmlApplicationId',
+ messagingProfileId: 'messagingProfileId',
+ webhookPublicKey: 'webhookPublicKey',
+ greetingMessage: 'greetingMessage'
+};
+
exports.Prisma.AiSettingsScalarFieldEnum = {
id: 'id',
userId: 'userId',
@@ -660,6 +673,11 @@ exports.CommunicationStatus = exports.$Enums.CommunicationStatus = {
no_answer: 'no_answer'
};
+exports.CommunicationProvider = exports.$Enums.CommunicationProvider = {
+ twilio: 'twilio',
+ telnyx: 'telnyx'
+};
+
exports.Prisma.ModelName = {
User: 'User',
Patient: 'Patient',
@@ -687,6 +705,7 @@ exports.Prisma.ModelName = {
Communication: 'Communication',
PatientDocument: 'PatientDocument',
TwilioSettings: 'TwilioSettings',
+ TelnyxSettings: 'TelnyxSettings',
AiSettings: 'AiSettings',
OfficeHours: 'OfficeHours',
OfficeContact: 'OfficeContact',
diff --git a/packages/db/generated/prisma/index.d.ts b/packages/db/generated/prisma/index.d.ts
index 511726eb..79818590 100644
--- a/packages/db/generated/prisma/index.d.ts
+++ b/packages/db/generated/prisma/index.d.ts
@@ -143,6 +143,11 @@ export type PatientDocument = $Result.DefaultSelection
+/**
+ * Model TelnyxSettings
+ *
+ */
+export type TelnyxSettings = $Result.DefaultSelection
/**
* Model AiSettings
*
@@ -322,6 +327,14 @@ export const CommunicationStatus: {
export type CommunicationStatus = (typeof CommunicationStatus)[keyof typeof CommunicationStatus]
+
+export const CommunicationProvider: {
+ twilio: 'twilio',
+ telnyx: 'telnyx'
+};
+
+export type CommunicationProvider = (typeof CommunicationProvider)[keyof typeof CommunicationProvider]
+
}
export type PatientStatus = $Enums.PatientStatus
@@ -372,6 +385,10 @@ export type CommunicationStatus = $Enums.CommunicationStatus
export const CommunicationStatus: typeof $Enums.CommunicationStatus
+export type CommunicationProvider = $Enums.CommunicationProvider
+
+export const CommunicationProvider: typeof $Enums.CommunicationProvider
+
/**
* ## Prisma Client ʲˢ
*
@@ -749,6 +766,16 @@ export class PrismaClient<
*/
get twilioSettings(): Prisma.TwilioSettingsDelegate;
+ /**
+ * `prisma.telnyxSettings`: Exposes CRUD operations for the **TelnyxSettings** model.
+ * Example usage:
+ * ```ts
+ * // Fetch zero or more TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findMany()
+ * ```
+ */
+ get telnyxSettings(): Prisma.TelnyxSettingsDelegate;
+
/**
* `prisma.aiSettings`: Exposes CRUD operations for the **AiSettings** model.
* Example usage:
@@ -1308,6 +1335,7 @@ export namespace Prisma {
Communication: 'Communication',
PatientDocument: 'PatientDocument',
TwilioSettings: 'TwilioSettings',
+ TelnyxSettings: 'TelnyxSettings',
AiSettings: 'AiSettings',
OfficeHours: 'OfficeHours',
OfficeContact: 'OfficeContact',
@@ -1333,7 +1361,7 @@ export namespace Prisma {
omit: GlobalOmitOptions
}
meta: {
- modelProps: "user" | "patient" | "appointment" | "appointmentFile" | "staff" | "npiProvider" | "appointmentProcedure" | "claim" | "serviceLine" | "claimFile" | "insuranceCredential" | "shoppingVendor" | "pdfGroup" | "pdfFile" | "payment" | "serviceLineTransaction" | "databaseBackup" | "backupDestination" | "notification" | "cronJobLog" | "cloudFolder" | "cloudFile" | "cloudFileChunk" | "communication" | "patientDocument" | "twilioSettings" | "aiSettings" | "officeHours" | "officeContact" | "insuranceContact" | "procedureTimeslot" | "patientConversation" | "labRxTemplate" | "commissionBatch" | "commissionBatchItem" | "seleniumSettings"
+ modelProps: "user" | "patient" | "appointment" | "appointmentFile" | "staff" | "npiProvider" | "appointmentProcedure" | "claim" | "serviceLine" | "claimFile" | "insuranceCredential" | "shoppingVendor" | "pdfGroup" | "pdfFile" | "payment" | "serviceLineTransaction" | "databaseBackup" | "backupDestination" | "notification" | "cronJobLog" | "cloudFolder" | "cloudFile" | "cloudFileChunk" | "communication" | "patientDocument" | "twilioSettings" | "telnyxSettings" | "aiSettings" | "officeHours" | "officeContact" | "insuranceContact" | "procedureTimeslot" | "patientConversation" | "labRxTemplate" | "commissionBatch" | "commissionBatchItem" | "seleniumSettings"
txIsolationLevel: Prisma.TransactionIsolationLevel
}
model: {
@@ -3261,6 +3289,80 @@ export namespace Prisma {
}
}
}
+ TelnyxSettings: {
+ payload: Prisma.$TelnyxSettingsPayload
+ fields: Prisma.TelnyxSettingsFieldRefs
+ operations: {
+ findUnique: {
+ args: Prisma.TelnyxSettingsFindUniqueArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findUniqueOrThrow: {
+ args: Prisma.TelnyxSettingsFindUniqueOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findFirst: {
+ args: Prisma.TelnyxSettingsFindFirstArgs
+ result: $Utils.PayloadToResult | null
+ }
+ findFirstOrThrow: {
+ args: Prisma.TelnyxSettingsFindFirstOrThrowArgs
+ result: $Utils.PayloadToResult
+ }
+ findMany: {
+ args: Prisma.TelnyxSettingsFindManyArgs
+ result: $Utils.PayloadToResult[]
+ }
+ create: {
+ args: Prisma.TelnyxSettingsCreateArgs
+ result: $Utils.PayloadToResult
+ }
+ createMany: {
+ args: Prisma.TelnyxSettingsCreateManyArgs
+ result: BatchPayload
+ }
+ createManyAndReturn: {
+ args: Prisma.TelnyxSettingsCreateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ delete: {
+ args: Prisma.TelnyxSettingsDeleteArgs
+ result: $Utils.PayloadToResult
+ }
+ update: {
+ args: Prisma.TelnyxSettingsUpdateArgs
+ result: $Utils.PayloadToResult
+ }
+ deleteMany: {
+ args: Prisma.TelnyxSettingsDeleteManyArgs
+ result: BatchPayload
+ }
+ updateMany: {
+ args: Prisma.TelnyxSettingsUpdateManyArgs
+ result: BatchPayload
+ }
+ updateManyAndReturn: {
+ args: Prisma.TelnyxSettingsUpdateManyAndReturnArgs
+ result: $Utils.PayloadToResult[]
+ }
+ upsert: {
+ args: Prisma.TelnyxSettingsUpsertArgs
+ result: $Utils.PayloadToResult
+ }
+ aggregate: {
+ args: Prisma.TelnyxSettingsAggregateArgs
+ result: $Utils.Optional
+ }
+ groupBy: {
+ args: Prisma.TelnyxSettingsGroupByArgs
+ result: $Utils.Optional[]
+ }
+ count: {
+ args: Prisma.TelnyxSettingsCountArgs
+ result: $Utils.Optional | number
+ }
+ }
+ }
AiSettings: {
payload: Prisma.$AiSettingsPayload
fields: Prisma.AiSettingsFieldRefs
@@ -4135,6 +4237,7 @@ export namespace Prisma {
communication?: CommunicationOmit
patientDocument?: PatientDocumentOmit
twilioSettings?: TwilioSettingsOmit
+ telnyxSettings?: TelnyxSettingsOmit
aiSettings?: AiSettingsOmit
officeHours?: OfficeHoursOmit
officeContact?: OfficeContactOmit
@@ -5171,6 +5274,7 @@ export namespace Prisma {
cloudFiles?: boolean | User$cloudFilesArgs
communications?: boolean | User$communicationsArgs
twilioSettings?: boolean | User$twilioSettingsArgs
+ telnyxSettings?: boolean | User$telnyxSettingsArgs
aiSettings?: boolean | User$aiSettingsArgs
officeHours?: boolean | User$officeHoursArgs
officeContact?: boolean | User$officeContactArgs
@@ -5238,6 +5342,7 @@ export namespace Prisma {
cloudFiles?: boolean | User$cloudFilesArgs
communications?: boolean | User$communicationsArgs
twilioSettings?: boolean | User$twilioSettingsArgs
+ telnyxSettings?: boolean | User$telnyxSettingsArgs
aiSettings?: boolean | User$aiSettingsArgs
officeHours?: boolean | User$officeHoursArgs
officeContact?: boolean | User$officeContactArgs
@@ -5269,6 +5374,7 @@ export namespace Prisma {
cloudFiles: Prisma.$CloudFilePayload[]
communications: Prisma.$CommunicationPayload[]
twilioSettings: Prisma.$TwilioSettingsPayload | null
+ telnyxSettings: Prisma.$TelnyxSettingsPayload | null
aiSettings: Prisma.$AiSettingsPayload | null
officeHours: Prisma.$OfficeHoursPayload | null
officeContact: Prisma.$OfficeContactPayload | null
@@ -5698,6 +5804,7 @@ export namespace Prisma {
cloudFiles = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null>
communications = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions> | Null>
twilioSettings = {}>(args?: Subset>): Prisma__TwilioSettingsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
+ telnyxSettings = {}>(args?: Subset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
aiSettings = {}>(args?: Subset>): Prisma__AiSettingsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
officeHours = {}>(args?: Subset>): Prisma__OfficeHoursClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
officeContact = {}>(args?: Subset>): Prisma__OfficeContactClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
@@ -6487,6 +6594,25 @@ export namespace Prisma {
where?: TwilioSettingsWhereInput
}
+ /**
+ * User.telnyxSettings
+ */
+ export type User$telnyxSettingsArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ where?: TelnyxSettingsWhereInput
+ }
+
/**
* User.aiSettings
*/
@@ -33453,6 +33579,7 @@ export namespace Prisma {
channel: $Enums.CommunicationChannel | null
direction: $Enums.CommunicationDirection | null
status: $Enums.CommunicationStatus | null
+ provider: $Enums.CommunicationProvider | null
body: string | null
callDuration: number | null
twilioSid: string | null
@@ -33466,6 +33593,7 @@ export namespace Prisma {
channel: $Enums.CommunicationChannel | null
direction: $Enums.CommunicationDirection | null
status: $Enums.CommunicationStatus | null
+ provider: $Enums.CommunicationProvider | null
body: string | null
callDuration: number | null
twilioSid: string | null
@@ -33479,6 +33607,7 @@ export namespace Prisma {
channel: number
direction: number
status: number
+ provider: number
body: number
callDuration: number
twilioSid: number
@@ -33508,6 +33637,7 @@ export namespace Prisma {
channel?: true
direction?: true
status?: true
+ provider?: true
body?: true
callDuration?: true
twilioSid?: true
@@ -33521,6 +33651,7 @@ export namespace Prisma {
channel?: true
direction?: true
status?: true
+ provider?: true
body?: true
callDuration?: true
twilioSid?: true
@@ -33534,6 +33665,7 @@ export namespace Prisma {
channel?: true
direction?: true
status?: true
+ provider?: true
body?: true
callDuration?: true
twilioSid?: true
@@ -33634,6 +33766,7 @@ export namespace Prisma {
channel: $Enums.CommunicationChannel
direction: $Enums.CommunicationDirection
status: $Enums.CommunicationStatus
+ provider: $Enums.CommunicationProvider
body: string | null
callDuration: number | null
twilioSid: string | null
@@ -33666,6 +33799,7 @@ export namespace Prisma {
channel?: boolean
direction?: boolean
status?: boolean
+ provider?: boolean
body?: boolean
callDuration?: boolean
twilioSid?: boolean
@@ -33681,6 +33815,7 @@ export namespace Prisma {
channel?: boolean
direction?: boolean
status?: boolean
+ provider?: boolean
body?: boolean
callDuration?: boolean
twilioSid?: boolean
@@ -33696,6 +33831,7 @@ export namespace Prisma {
channel?: boolean
direction?: boolean
status?: boolean
+ provider?: boolean
body?: boolean
callDuration?: boolean
twilioSid?: boolean
@@ -33711,13 +33847,14 @@ export namespace Prisma {
channel?: boolean
direction?: boolean
status?: boolean
+ provider?: boolean
body?: boolean
callDuration?: boolean
twilioSid?: boolean
createdAt?: boolean
}
- export type CommunicationOmit = $Extensions.GetOmit<"id" | "patientId" | "userId" | "channel" | "direction" | "status" | "body" | "callDuration" | "twilioSid" | "createdAt", ExtArgs["result"]["communication"]>
+ export type CommunicationOmit = $Extensions.GetOmit<"id" | "patientId" | "userId" | "channel" | "direction" | "status" | "provider" | "body" | "callDuration" | "twilioSid" | "createdAt", ExtArgs["result"]["communication"]>
export type CommunicationInclude = {
patient?: boolean | PatientDefaultArgs
user?: boolean | Communication$userArgs
@@ -33744,6 +33881,7 @@ export namespace Prisma {
channel: $Enums.CommunicationChannel
direction: $Enums.CommunicationDirection
status: $Enums.CommunicationStatus
+ provider: $Enums.CommunicationProvider
body: string | null
callDuration: number | null
twilioSid: string | null
@@ -34179,6 +34317,7 @@ export namespace Prisma {
readonly channel: FieldRef<"Communication", 'CommunicationChannel'>
readonly direction: FieldRef<"Communication", 'CommunicationDirection'>
readonly status: FieldRef<"Communication", 'CommunicationStatus'>
+ readonly provider: FieldRef<"Communication", 'CommunicationProvider'>
readonly body: FieldRef<"Communication", 'String'>
readonly callDuration: FieldRef<"Communication", 'Int'>
readonly twilioSid: FieldRef<"Communication", 'String'>
@@ -36886,6 +37025,1154 @@ export namespace Prisma {
}
+ /**
+ * Model TelnyxSettings
+ */
+
+ export type AggregateTelnyxSettings = {
+ _count: TelnyxSettingsCountAggregateOutputType | null
+ _avg: TelnyxSettingsAvgAggregateOutputType | null
+ _sum: TelnyxSettingsSumAggregateOutputType | null
+ _min: TelnyxSettingsMinAggregateOutputType | null
+ _max: TelnyxSettingsMaxAggregateOutputType | null
+ }
+
+ export type TelnyxSettingsAvgAggregateOutputType = {
+ id: number | null
+ userId: number | null
+ }
+
+ export type TelnyxSettingsSumAggregateOutputType = {
+ id: number | null
+ userId: number | null
+ }
+
+ export type TelnyxSettingsMinAggregateOutputType = {
+ id: number | null
+ userId: number | null
+ apiKey: string | null
+ accountSid: string | null
+ phoneNumber: string | null
+ texmlApplicationId: string | null
+ messagingProfileId: string | null
+ webhookPublicKey: string | null
+ greetingMessage: string | null
+ }
+
+ export type TelnyxSettingsMaxAggregateOutputType = {
+ id: number | null
+ userId: number | null
+ apiKey: string | null
+ accountSid: string | null
+ phoneNumber: string | null
+ texmlApplicationId: string | null
+ messagingProfileId: string | null
+ webhookPublicKey: string | null
+ greetingMessage: string | null
+ }
+
+ export type TelnyxSettingsCountAggregateOutputType = {
+ id: number
+ userId: number
+ apiKey: number
+ accountSid: number
+ phoneNumber: number
+ texmlApplicationId: number
+ messagingProfileId: number
+ webhookPublicKey: number
+ greetingMessage: number
+ _all: number
+ }
+
+
+ export type TelnyxSettingsAvgAggregateInputType = {
+ id?: true
+ userId?: true
+ }
+
+ export type TelnyxSettingsSumAggregateInputType = {
+ id?: true
+ userId?: true
+ }
+
+ export type TelnyxSettingsMinAggregateInputType = {
+ id?: true
+ userId?: true
+ apiKey?: true
+ accountSid?: true
+ phoneNumber?: true
+ texmlApplicationId?: true
+ messagingProfileId?: true
+ webhookPublicKey?: true
+ greetingMessage?: true
+ }
+
+ export type TelnyxSettingsMaxAggregateInputType = {
+ id?: true
+ userId?: true
+ apiKey?: true
+ accountSid?: true
+ phoneNumber?: true
+ texmlApplicationId?: true
+ messagingProfileId?: true
+ webhookPublicKey?: true
+ greetingMessage?: true
+ }
+
+ export type TelnyxSettingsCountAggregateInputType = {
+ id?: true
+ userId?: true
+ apiKey?: true
+ accountSid?: true
+ phoneNumber?: true
+ texmlApplicationId?: true
+ messagingProfileId?: true
+ webhookPublicKey?: true
+ greetingMessage?: true
+ _all?: true
+ }
+
+ export type TelnyxSettingsAggregateArgs = {
+ /**
+ * Filter which TelnyxSettings to aggregate.
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of TelnyxSettings to fetch.
+ */
+ orderBy?: TelnyxSettingsOrderByWithRelationInput | TelnyxSettingsOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the start position
+ */
+ cursor?: TelnyxSettingsWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` TelnyxSettings from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` TelnyxSettings.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Count returned TelnyxSettings
+ **/
+ _count?: true | TelnyxSettingsCountAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to average
+ **/
+ _avg?: TelnyxSettingsAvgAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to sum
+ **/
+ _sum?: TelnyxSettingsSumAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to find the minimum value
+ **/
+ _min?: TelnyxSettingsMinAggregateInputType
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
+ *
+ * Select which fields to find the maximum value
+ **/
+ _max?: TelnyxSettingsMaxAggregateInputType
+ }
+
+ export type GetTelnyxSettingsAggregateType = {
+ [P in keyof T & keyof AggregateTelnyxSettings]: P extends '_count' | 'count'
+ ? T[P] extends true
+ ? number
+ : GetScalarType
+ : GetScalarType
+ }
+
+
+
+
+ export type TelnyxSettingsGroupByArgs = {
+ where?: TelnyxSettingsWhereInput
+ orderBy?: TelnyxSettingsOrderByWithAggregationInput | TelnyxSettingsOrderByWithAggregationInput[]
+ by: TelnyxSettingsScalarFieldEnum[] | TelnyxSettingsScalarFieldEnum
+ having?: TelnyxSettingsScalarWhereWithAggregatesInput
+ take?: number
+ skip?: number
+ _count?: TelnyxSettingsCountAggregateInputType | true
+ _avg?: TelnyxSettingsAvgAggregateInputType
+ _sum?: TelnyxSettingsSumAggregateInputType
+ _min?: TelnyxSettingsMinAggregateInputType
+ _max?: TelnyxSettingsMaxAggregateInputType
+ }
+
+ export type TelnyxSettingsGroupByOutputType = {
+ id: number
+ userId: number
+ apiKey: string
+ accountSid: string | null
+ phoneNumber: string
+ texmlApplicationId: string | null
+ messagingProfileId: string | null
+ webhookPublicKey: string | null
+ greetingMessage: string | null
+ _count: TelnyxSettingsCountAggregateOutputType | null
+ _avg: TelnyxSettingsAvgAggregateOutputType | null
+ _sum: TelnyxSettingsSumAggregateOutputType | null
+ _min: TelnyxSettingsMinAggregateOutputType | null
+ _max: TelnyxSettingsMaxAggregateOutputType | null
+ }
+
+ type GetTelnyxSettingsGroupByPayload = Prisma.PrismaPromise<
+ Array<
+ PickEnumerable &
+ {
+ [P in ((keyof T) & (keyof TelnyxSettingsGroupByOutputType))]: P extends '_count'
+ ? T[P] extends boolean
+ ? number
+ : GetScalarType
+ : GetScalarType
+ }
+ >
+ >
+
+
+ export type TelnyxSettingsSelect = $Extensions.GetSelect<{
+ id?: boolean
+ userId?: boolean
+ apiKey?: boolean
+ accountSid?: boolean
+ phoneNumber?: boolean
+ texmlApplicationId?: boolean
+ messagingProfileId?: boolean
+ webhookPublicKey?: boolean
+ greetingMessage?: boolean
+ user?: boolean | UserDefaultArgs
+ }, ExtArgs["result"]["telnyxSettings"]>
+
+ export type TelnyxSettingsSelectCreateManyAndReturn = $Extensions.GetSelect<{
+ id?: boolean
+ userId?: boolean
+ apiKey?: boolean
+ accountSid?: boolean
+ phoneNumber?: boolean
+ texmlApplicationId?: boolean
+ messagingProfileId?: boolean
+ webhookPublicKey?: boolean
+ greetingMessage?: boolean
+ user?: boolean | UserDefaultArgs
+ }, ExtArgs["result"]["telnyxSettings"]>
+
+ export type TelnyxSettingsSelectUpdateManyAndReturn = $Extensions.GetSelect<{
+ id?: boolean
+ userId?: boolean
+ apiKey?: boolean
+ accountSid?: boolean
+ phoneNumber?: boolean
+ texmlApplicationId?: boolean
+ messagingProfileId?: boolean
+ webhookPublicKey?: boolean
+ greetingMessage?: boolean
+ user?: boolean | UserDefaultArgs
+ }, ExtArgs["result"]["telnyxSettings"]>
+
+ export type TelnyxSettingsSelectScalar = {
+ id?: boolean
+ userId?: boolean
+ apiKey?: boolean
+ accountSid?: boolean
+ phoneNumber?: boolean
+ texmlApplicationId?: boolean
+ messagingProfileId?: boolean
+ webhookPublicKey?: boolean
+ greetingMessage?: boolean
+ }
+
+ export type TelnyxSettingsOmit = $Extensions.GetOmit<"id" | "userId" | "apiKey" | "accountSid" | "phoneNumber" | "texmlApplicationId" | "messagingProfileId" | "webhookPublicKey" | "greetingMessage", ExtArgs["result"]["telnyxSettings"]>
+ export type TelnyxSettingsInclude = {
+ user?: boolean | UserDefaultArgs
+ }
+ export type TelnyxSettingsIncludeCreateManyAndReturn = {
+ user?: boolean | UserDefaultArgs
+ }
+ export type TelnyxSettingsIncludeUpdateManyAndReturn = {
+ user?: boolean | UserDefaultArgs
+ }
+
+ export type $TelnyxSettingsPayload = {
+ name: "TelnyxSettings"
+ objects: {
+ user: Prisma.$UserPayload
+ }
+ scalars: $Extensions.GetPayloadResult<{
+ id: number
+ userId: number
+ apiKey: string
+ accountSid: string | null
+ phoneNumber: string
+ texmlApplicationId: string | null
+ messagingProfileId: string | null
+ webhookPublicKey: string | null
+ greetingMessage: string | null
+ }, ExtArgs["result"]["telnyxSettings"]>
+ composites: {}
+ }
+
+ type TelnyxSettingsGetPayload = $Result.GetResult
+
+ type TelnyxSettingsCountArgs =
+ Omit & {
+ select?: TelnyxSettingsCountAggregateInputType | true
+ }
+
+ export interface TelnyxSettingsDelegate {
+ [K: symbol]: { types: Prisma.TypeMap['model']['TelnyxSettings'], meta: { name: 'TelnyxSettings' } }
+ /**
+ * Find zero or one TelnyxSettings that matches the filter.
+ * @param {TelnyxSettingsFindUniqueArgs} args - Arguments to find a TelnyxSettings
+ * @example
+ * // Get one TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findUnique({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findUnique(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Find one TelnyxSettings that matches the filter or throw an error with `error.code='P2025'`
+ * if no matches were found.
+ * @param {TelnyxSettingsFindUniqueOrThrowArgs} args - Arguments to find a TelnyxSettings
+ * @example
+ * // Get one TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findUniqueOrThrow({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findUniqueOrThrow(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Find the first TelnyxSettings that matches the filter.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsFindFirstArgs} args - Arguments to find a TelnyxSettings
+ * @example
+ * // Get one TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findFirst({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findFirst(args?: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Find the first TelnyxSettings that matches the filter or
+ * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsFindFirstOrThrowArgs} args - Arguments to find a TelnyxSettings
+ * @example
+ * // Get one TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findFirstOrThrow({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ */
+ findFirstOrThrow(args?: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Find zero or more TelnyxSettings that matches the filter.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsFindManyArgs} args - Arguments to filter and select certain fields only.
+ * @example
+ * // Get all TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findMany()
+ *
+ * // Get first 10 TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.findMany({ take: 10 })
+ *
+ * // Only select the `id`
+ * const telnyxSettingsWithIdOnly = await prisma.telnyxSettings.findMany({ select: { id: true } })
+ *
+ */
+ findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany", GlobalOmitOptions>>
+
+ /**
+ * Create a TelnyxSettings.
+ * @param {TelnyxSettingsCreateArgs} args - Arguments to create a TelnyxSettings.
+ * @example
+ * // Create one TelnyxSettings
+ * const TelnyxSettings = await prisma.telnyxSettings.create({
+ * data: {
+ * // ... data to create a TelnyxSettings
+ * }
+ * })
+ *
+ */
+ create(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Create many TelnyxSettings.
+ * @param {TelnyxSettingsCreateManyArgs} args - Arguments to create many TelnyxSettings.
+ * @example
+ * // Create many TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.createMany({
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ *
+ */
+ createMany(args?: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Create many TelnyxSettings and returns the data saved in the database.
+ * @param {TelnyxSettingsCreateManyAndReturnArgs} args - Arguments to create many TelnyxSettings.
+ * @example
+ * // Create many TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.createManyAndReturn({
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ *
+ * // Create many TelnyxSettings and only return the `id`
+ * const telnyxSettingsWithIdOnly = await prisma.telnyxSettings.createManyAndReturn({
+ * select: { id: true },
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ *
+ */
+ createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn", GlobalOmitOptions>>
+
+ /**
+ * Delete a TelnyxSettings.
+ * @param {TelnyxSettingsDeleteArgs} args - Arguments to delete one TelnyxSettings.
+ * @example
+ * // Delete one TelnyxSettings
+ * const TelnyxSettings = await prisma.telnyxSettings.delete({
+ * where: {
+ * // ... filter to delete one TelnyxSettings
+ * }
+ * })
+ *
+ */
+ delete(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Update one TelnyxSettings.
+ * @param {TelnyxSettingsUpdateArgs} args - Arguments to update one TelnyxSettings.
+ * @example
+ * // Update one TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.update({
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: {
+ * // ... provide data here
+ * }
+ * })
+ *
+ */
+ update(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+ /**
+ * Delete zero or more TelnyxSettings.
+ * @param {TelnyxSettingsDeleteManyArgs} args - Arguments to filter TelnyxSettings to delete.
+ * @example
+ * // Delete a few TelnyxSettings
+ * const { count } = await prisma.telnyxSettings.deleteMany({
+ * where: {
+ * // ... provide filter here
+ * }
+ * })
+ *
+ */
+ deleteMany(args?: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Update zero or more TelnyxSettings.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsUpdateManyArgs} args - Arguments to update one or more rows.
+ * @example
+ * // Update many TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.updateMany({
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: {
+ * // ... provide data here
+ * }
+ * })
+ *
+ */
+ updateMany(args: SelectSubset>): Prisma.PrismaPromise
+
+ /**
+ * Update zero or more TelnyxSettings and returns the data updated in the database.
+ * @param {TelnyxSettingsUpdateManyAndReturnArgs} args - Arguments to update many TelnyxSettings.
+ * @example
+ * // Update many TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.updateManyAndReturn({
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ *
+ * // Update zero or more TelnyxSettings and only return the `id`
+ * const telnyxSettingsWithIdOnly = await prisma.telnyxSettings.updateManyAndReturn({
+ * select: { id: true },
+ * where: {
+ * // ... provide filter here
+ * },
+ * data: [
+ * // ... provide data here
+ * ]
+ * })
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ *
+ */
+ updateManyAndReturn(args: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "updateManyAndReturn", GlobalOmitOptions>>
+
+ /**
+ * Create or update one TelnyxSettings.
+ * @param {TelnyxSettingsUpsertArgs} args - Arguments to update or create a TelnyxSettings.
+ * @example
+ * // Update or create a TelnyxSettings
+ * const telnyxSettings = await prisma.telnyxSettings.upsert({
+ * create: {
+ * // ... data to create a TelnyxSettings
+ * },
+ * update: {
+ * // ... in case it already exists, update
+ * },
+ * where: {
+ * // ... the filter for the TelnyxSettings we want to update
+ * }
+ * })
+ */
+ upsert(args: SelectSubset>): Prisma__TelnyxSettingsClient<$Result.GetResult, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
+
+
+ /**
+ * Count the number of TelnyxSettings.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsCountArgs} args - Arguments to filter TelnyxSettings to count.
+ * @example
+ * // Count the number of TelnyxSettings
+ * const count = await prisma.telnyxSettings.count({
+ * where: {
+ * // ... the filter for the TelnyxSettings we want to count
+ * }
+ * })
+ **/
+ count(
+ args?: Subset,
+ ): Prisma.PrismaPromise<
+ T extends $Utils.Record<'select', any>
+ ? T['select'] extends true
+ ? number
+ : GetScalarType
+ : number
+ >
+
+ /**
+ * Allows you to perform aggregations operations on a TelnyxSettings.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
+ * @example
+ * // Ordered by age ascending
+ * // Where email contains prisma.io
+ * // Limited to the 10 users
+ * const aggregations = await prisma.user.aggregate({
+ * _avg: {
+ * age: true,
+ * },
+ * where: {
+ * email: {
+ * contains: "prisma.io",
+ * },
+ * },
+ * orderBy: {
+ * age: "asc",
+ * },
+ * take: 10,
+ * })
+ **/
+ aggregate(args: Subset): Prisma.PrismaPromise>
+
+ /**
+ * Group by TelnyxSettings.
+ * Note, that providing `undefined` is treated as the value not being there.
+ * Read more here: https://pris.ly/d/null-undefined
+ * @param {TelnyxSettingsGroupByArgs} args - Group by arguments.
+ * @example
+ * // Group by city, order by createdAt, get count
+ * const result = await prisma.user.groupBy({
+ * by: ['city', 'createdAt'],
+ * orderBy: {
+ * createdAt: true
+ * },
+ * _count: {
+ * _all: true
+ * },
+ * })
+ *
+ **/
+ groupBy<
+ T extends TelnyxSettingsGroupByArgs,
+ HasSelectOrTake extends Or<
+ Extends<'skip', Keys>,
+ Extends<'take', Keys>
+ >,
+ OrderByArg extends True extends HasSelectOrTake
+ ? { orderBy: TelnyxSettingsGroupByArgs['orderBy'] }
+ : { orderBy?: TelnyxSettingsGroupByArgs['orderBy'] },
+ OrderFields extends ExcludeUnderscoreKeys>>,
+ ByFields extends MaybeTupleToUnion,
+ ByValid extends Has,
+ HavingFields extends GetHavingFields,
+ HavingValid extends Has,
+ ByEmpty extends T['by'] extends never[] ? True : False,
+ InputErrors extends ByEmpty extends True
+ ? `Error: "by" must not be empty.`
+ : HavingValid extends False
+ ? {
+ [P in HavingFields]: P extends ByFields
+ ? never
+ : P extends string
+ ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
+ : [
+ Error,
+ 'Field ',
+ P,
+ ` in "having" needs to be provided in "by"`,
+ ]
+ }[HavingFields]
+ : 'take' extends Keys
+ ? 'orderBy' extends Keys
+ ? ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ : 'Error: If you provide "take", you also need to provide "orderBy"'
+ : 'skip' extends Keys
+ ? 'orderBy' extends Keys
+ ? ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ : 'Error: If you provide "skip", you also need to provide "orderBy"'
+ : ByValid extends True
+ ? {}
+ : {
+ [P in OrderFields]: P extends ByFields
+ ? never
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
+ }[OrderFields]
+ >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetTelnyxSettingsGroupByPayload : Prisma.PrismaPromise
+ /**
+ * Fields of the TelnyxSettings model
+ */
+ readonly fields: TelnyxSettingsFieldRefs;
+ }
+
+ /**
+ * The delegate class that acts as a "Promise-like" for TelnyxSettings.
+ * Why is this prefixed with `Prisma__`?
+ * Because we want to prevent naming conflicts as mentioned in
+ * https://github.com/prisma/prisma-client-js/issues/707
+ */
+ export interface Prisma__TelnyxSettingsClient extends Prisma.PrismaPromise {
+ readonly [Symbol.toStringTag]: "PrismaPromise"
+ user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
+ /**
+ * Attaches callbacks for the resolution and/or rejection of the Promise.
+ * @param onfulfilled The callback to execute when the Promise is resolved.
+ * @param onrejected The callback to execute when the Promise is rejected.
+ * @returns A Promise for the completion of which ever callback is executed.
+ */
+ then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise
+ /**
+ * Attaches a callback for only the rejection of the Promise.
+ * @param onrejected The callback to execute when the Promise is rejected.
+ * @returns A Promise for the completion of the callback.
+ */
+ catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise
+ /**
+ * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
+ * resolved value cannot be modified from the callback.
+ * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
+ * @returns A Promise for the completion of the callback.
+ */
+ finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise
+ }
+
+
+
+
+ /**
+ * Fields of the TelnyxSettings model
+ */
+ interface TelnyxSettingsFieldRefs {
+ readonly id: FieldRef<"TelnyxSettings", 'Int'>
+ readonly userId: FieldRef<"TelnyxSettings", 'Int'>
+ readonly apiKey: FieldRef<"TelnyxSettings", 'String'>
+ readonly accountSid: FieldRef<"TelnyxSettings", 'String'>
+ readonly phoneNumber: FieldRef<"TelnyxSettings", 'String'>
+ readonly texmlApplicationId: FieldRef<"TelnyxSettings", 'String'>
+ readonly messagingProfileId: FieldRef<"TelnyxSettings", 'String'>
+ readonly webhookPublicKey: FieldRef<"TelnyxSettings", 'String'>
+ readonly greetingMessage: FieldRef<"TelnyxSettings", 'String'>
+ }
+
+
+ // Custom InputTypes
+ /**
+ * TelnyxSettings findUnique
+ */
+ export type TelnyxSettingsFindUniqueArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter, which TelnyxSettings to fetch.
+ */
+ where: TelnyxSettingsWhereUniqueInput
+ }
+
+ /**
+ * TelnyxSettings findUniqueOrThrow
+ */
+ export type TelnyxSettingsFindUniqueOrThrowArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter, which TelnyxSettings to fetch.
+ */
+ where: TelnyxSettingsWhereUniqueInput
+ }
+
+ /**
+ * TelnyxSettings findFirst
+ */
+ export type TelnyxSettingsFindFirstArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter, which TelnyxSettings to fetch.
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of TelnyxSettings to fetch.
+ */
+ orderBy?: TelnyxSettingsOrderByWithRelationInput | TelnyxSettingsOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for searching for TelnyxSettings.
+ */
+ cursor?: TelnyxSettingsWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` TelnyxSettings from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` TelnyxSettings.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
+ *
+ * Filter by unique combinations of TelnyxSettings.
+ */
+ distinct?: TelnyxSettingsScalarFieldEnum | TelnyxSettingsScalarFieldEnum[]
+ }
+
+ /**
+ * TelnyxSettings findFirstOrThrow
+ */
+ export type TelnyxSettingsFindFirstOrThrowArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter, which TelnyxSettings to fetch.
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of TelnyxSettings to fetch.
+ */
+ orderBy?: TelnyxSettingsOrderByWithRelationInput | TelnyxSettingsOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for searching for TelnyxSettings.
+ */
+ cursor?: TelnyxSettingsWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` TelnyxSettings from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` TelnyxSettings.
+ */
+ skip?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
+ *
+ * Filter by unique combinations of TelnyxSettings.
+ */
+ distinct?: TelnyxSettingsScalarFieldEnum | TelnyxSettingsScalarFieldEnum[]
+ }
+
+ /**
+ * TelnyxSettings findMany
+ */
+ export type TelnyxSettingsFindManyArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter, which TelnyxSettings to fetch.
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
+ *
+ * Determine the order of TelnyxSettings to fetch.
+ */
+ orderBy?: TelnyxSettingsOrderByWithRelationInput | TelnyxSettingsOrderByWithRelationInput[]
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
+ *
+ * Sets the position for listing TelnyxSettings.
+ */
+ cursor?: TelnyxSettingsWhereUniqueInput
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Take `±n` TelnyxSettings from the position of the cursor.
+ */
+ take?: number
+ /**
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
+ *
+ * Skip the first `n` TelnyxSettings.
+ */
+ skip?: number
+ distinct?: TelnyxSettingsScalarFieldEnum | TelnyxSettingsScalarFieldEnum[]
+ }
+
+ /**
+ * TelnyxSettings create
+ */
+ export type TelnyxSettingsCreateArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * The data needed to create a TelnyxSettings.
+ */
+ data: XOR
+ }
+
+ /**
+ * TelnyxSettings createMany
+ */
+ export type TelnyxSettingsCreateManyArgs = {
+ /**
+ * The data used to create many TelnyxSettings.
+ */
+ data: TelnyxSettingsCreateManyInput | TelnyxSettingsCreateManyInput[]
+ skipDuplicates?: boolean
+ }
+
+ /**
+ * TelnyxSettings createManyAndReturn
+ */
+ export type TelnyxSettingsCreateManyAndReturnArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelectCreateManyAndReturn | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * The data used to create many TelnyxSettings.
+ */
+ data: TelnyxSettingsCreateManyInput | TelnyxSettingsCreateManyInput[]
+ skipDuplicates?: boolean
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsIncludeCreateManyAndReturn | null
+ }
+
+ /**
+ * TelnyxSettings update
+ */
+ export type TelnyxSettingsUpdateArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * The data needed to update a TelnyxSettings.
+ */
+ data: XOR
+ /**
+ * Choose, which TelnyxSettings to update.
+ */
+ where: TelnyxSettingsWhereUniqueInput
+ }
+
+ /**
+ * TelnyxSettings updateMany
+ */
+ export type TelnyxSettingsUpdateManyArgs = {
+ /**
+ * The data used to update TelnyxSettings.
+ */
+ data: XOR
+ /**
+ * Filter which TelnyxSettings to update
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * Limit how many TelnyxSettings to update.
+ */
+ limit?: number
+ }
+
+ /**
+ * TelnyxSettings updateManyAndReturn
+ */
+ export type TelnyxSettingsUpdateManyAndReturnArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelectUpdateManyAndReturn | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * The data used to update TelnyxSettings.
+ */
+ data: XOR
+ /**
+ * Filter which TelnyxSettings to update
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * Limit how many TelnyxSettings to update.
+ */
+ limit?: number
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsIncludeUpdateManyAndReturn | null
+ }
+
+ /**
+ * TelnyxSettings upsert
+ */
+ export type TelnyxSettingsUpsertArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * The filter to search for the TelnyxSettings to update in case it exists.
+ */
+ where: TelnyxSettingsWhereUniqueInput
+ /**
+ * In case the TelnyxSettings found by the `where` argument doesn't exist, create a new TelnyxSettings with this data.
+ */
+ create: XOR
+ /**
+ * In case the TelnyxSettings was found with the provided `where` argument, update it with this data.
+ */
+ update: XOR
+ }
+
+ /**
+ * TelnyxSettings delete
+ */
+ export type TelnyxSettingsDeleteArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ /**
+ * Filter which TelnyxSettings to delete.
+ */
+ where: TelnyxSettingsWhereUniqueInput
+ }
+
+ /**
+ * TelnyxSettings deleteMany
+ */
+ export type TelnyxSettingsDeleteManyArgs = {
+ /**
+ * Filter which TelnyxSettings to delete
+ */
+ where?: TelnyxSettingsWhereInput
+ /**
+ * Limit how many TelnyxSettings to delete.
+ */
+ limit?: number
+ }
+
+ /**
+ * TelnyxSettings without action
+ */
+ export type TelnyxSettingsDefaultArgs = {
+ /**
+ * Select specific fields to fetch from the TelnyxSettings
+ */
+ select?: TelnyxSettingsSelect | null
+ /**
+ * Omit specific fields from the TelnyxSettings
+ */
+ omit?: TelnyxSettingsOmit | null
+ /**
+ * Choose, which related nodes to fetch as well
+ */
+ include?: TelnyxSettingsInclude | null
+ }
+
+
/**
* Model AiSettings
*/
@@ -48557,6 +49844,7 @@ export namespace Prisma {
channel: 'channel',
direction: 'direction',
status: 'status',
+ provider: 'provider',
body: 'body',
callDuration: 'callDuration',
twilioSid: 'twilioSid',
@@ -48594,6 +49882,21 @@ export namespace Prisma {
export type TwilioSettingsScalarFieldEnum = (typeof TwilioSettingsScalarFieldEnum)[keyof typeof TwilioSettingsScalarFieldEnum]
+ export const TelnyxSettingsScalarFieldEnum: {
+ id: 'id',
+ userId: 'userId',
+ apiKey: 'apiKey',
+ accountSid: 'accountSid',
+ phoneNumber: 'phoneNumber',
+ texmlApplicationId: 'texmlApplicationId',
+ messagingProfileId: 'messagingProfileId',
+ webhookPublicKey: 'webhookPublicKey',
+ greetingMessage: 'greetingMessage'
+ };
+
+ export type TelnyxSettingsScalarFieldEnum = (typeof TelnyxSettingsScalarFieldEnum)[keyof typeof TelnyxSettingsScalarFieldEnum]
+
+
export const AiSettingsScalarFieldEnum: {
id: 'id',
userId: 'userId',
@@ -49051,6 +50354,20 @@ export namespace Prisma {
+ /**
+ * Reference to a field of type 'CommunicationProvider'
+ */
+ export type EnumCommunicationProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CommunicationProvider'>
+
+
+
+ /**
+ * Reference to a field of type 'CommunicationProvider[]'
+ */
+ export type ListEnumCommunicationProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CommunicationProvider[]'>
+
+
+
/**
* Reference to a field of type 'Float'
*/
@@ -49097,6 +50414,7 @@ export namespace Prisma {
cloudFiles?: CloudFileListRelationFilter
communications?: CommunicationListRelationFilter
twilioSettings?: XOR